BUAA_OO_Unit4 & 学期 总结「建议收藏」

BUAA_OO_Unit4 & 学期 总结「建议收藏」BUAA_OO_Unit4 & 学期 总结

大家好,又见面了,我是你们的朋友全栈君。

BUAA_OO_Unit4 &学期 总结

UML单元作业架构设计

       本单元学习了对UML模型的理解和解析,了解了UML模型的语义规则,主要是针对类图、时序图和状态图进行了学习。两次作业是在对UML模型理解的基础上,根据课程组发放的开源包,对UML模型进行不同程度上的解析。

       本单元的两次作业架构如下:

      

       第一次作业是构建自己的UmlClass类、UmlInterface类等,在相应的类内保存了所需要的关联对端、操作、属性等。在写相应的方法时,感觉有点大一在上数据结构时,学习“指针“部分的操作。

      

       第二次作业按照第一次作业的思想,但是架构有所改变。关于时序图和状态图的部分相对简单,与链表的数据结构类似,并且由于作业要求没有考察其与类图的一致性,相应结构做的较为粗糙。关于类图的三个新的方法,很遗憾的是考虑不够全面,没有找到合适的解法。

架构设计与OO认知

       在我的印象中,第一单元是开始了OO方法的认知,了解“对象“及有关概念;架构的有关强调应该是在第二、三单元。那就先从对OO方法的理解说起吧,第一单元的起步感觉很困难,虽然老师和同学尽可能得将这个抽象的概念讲得简单一点,但是在代码中还是没有办法找到面向对象的方法。就算是现在来说自己对OO的理解,恐怕也只是”对象是什么、它们的接口是什么“这种浅显的深度上。很多介绍书本的第一章或第二章都会讲关于”对象“的理解,如何构建程序。我认为对OO方法的理解也就体现在怎么样去分析和设计程序。

       首先是找到问题域,然后归纳问题域中的实体,找到实体间的联系图(这里就可以使用uml类图),最后构建相应的类,进行一些优化措施。这是对设计程序过程的简单概括。在后面单元学到的UML类图反过来应该是设计时就可能需要引入的概念了。

       在这几单元作业中,程序的架构设计都有考察,因为作业是逐次扩展形式展开的。其次,除了扩展的便捷性之外,还有对程序可维护性等方面的考察。印象深刻的是老师在第二单元总结中,让我们针对程序复杂度进行分析,观察bug出现位置与程序较复杂的部分的关系。很显然,如果程序部分复杂度过高,出现bug的概率就会越大。这也是架构设计要考虑的一部分。具体的内容就是第七讲的《面向对象程序的需求分析与设计原则》,这部分内容看起来较为抽象,落实在代码设计中有相当重要的作用。这部分内容练习还是不够,缺乏有效的考核形式,SOLID原则的使用仍然缺乏熟练度。

测试理解与实践

       四单元作业的测试环节占有相当大的比例,但是自己对于这部分内容做的很差。

       第一单元是多项式的求导,测试即需要我们寻找不同的多项式的样例。我在寻找样例时,是针对不同单项式的形式寻找若干样例,之后再进行一些排列组合。手工制造样例,类型有欠缺,且样例数量较少。这部分最严重的问题是:自己找样例的思维与自己设计代码的思维是一致的,如果在设计代码时忽略了某种情况,在寻找样例时也大概率地会忽略这些情况。

       第二单元的输入是包括输出时间的输出,相比于第一单元的输入更多元化,情况也更多。样例的选择自然是根据指导书的功能要求寻找样例,但是由于输入有时间的要求,在IDEA的run界面输入肯定是不行的。我自己的做法是改变输入流,选择文本输入,这也可以在0时刻同时输入若干条命令,这样就可以满足大多数的情况要求了。

       第三单元作业是关于JML的内容,测试更具单元化的特征,也逐步掌握了Junit的使用。

       第四单元作业是关于UML的内容,测试样例需要根据uml图并且由课程组提供的工具进行解析。关于图形化的不同样例我感觉是很难找的,这部分没有进行多种样例测试。

课程收获

       这学期虽然自己做的不是很好,但是仍然有了相当多的收获。在知识层次上,主要是了解了Java语言的使用,程序设计上了解了面向对象编程的思想。另外跟着课程组的安排,对完成项目时间规划有了一定的认识。根据自己这学期的表现和作业,希望能在“补给站”里,把这些知识进行巩固,尽量的熟练起来。这学期的OO内容还是很多的。

改进建议

①    作业的起点难度略高。在接触java的第一次作业与假期的预习感觉难度差距很大,没有合适的样例去模仿学习,感觉很困难。

②    实验课内容缺乏及时反馈。感觉实验课的知识考察点更针对当周新学习的知识,但是上机没有反馈,上机内容感觉没有很好地利用。

③    上课知识密度过大。可能只是我个人的想法,可能是单节课时间的减少等原因,感觉单次理论课内容太多,不能有效理解。可以考虑减少上机或者研讨课内容。

转载于:https://www.cnblogs.com/JunHaoo/p/11079603.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106757.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 阿里巴巴矢量图标库_阿里 矢量图

    阿里巴巴矢量图标库_阿里 矢量图阿里矢量图库使用方法:https://blog.csdn.net/tanx17/article/details/74357626

    2022年10月23日
    0
  • NTP协议详解_ntp是安全协议吗

    NTP协议详解_ntp是安全协议吗前言NTP(NetworkTimeProtocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务器,利用NTP服务器提供的对时功能,可以使我们的设备时钟系统能够正确运行。NTP报文格式NTP报文格式如上图所示,它的字段含义参考如下:L…

    2022年10月12日
    0
  • freemarker把从后台传来的uct时间格式化展现到前台

    freemarker把从后台传来的uct时间格式化展现到前台freemarker把从后台传来的uct时间格式化展现到前台

    2022年4月23日
    45
  • 彻底卸载Symantec Endpoint Protection之另类办法「建议收藏」

    彻底卸载Symantec Endpoint Protection之另类办法「建议收藏」诺顿卸载需要输入密码,网上一篇文章说终结进程的办法不适合v11,机器是单位的,所以开始并没有想到完全卸载,怕起不来,于是进入安全模式禁用所有服务,下个卡巴斯基安装,结果一安装,卡巴斯基就提示先卸载诺顿,太可爱了,点击确认之后,卸载之后再重启就卸得干干净净了,装上卡巴斯基,好几天也没死一次机,而以前一天要死一两次,诺顿真垃圾,而且卸载也卸不干净。卡巴斯基还有这个妙用啊,即使你不想安卡巴斯基,也可以用它来删诺顿,而且不用输密码,强。

    2022年5月27日
    58
  • matlab中直方图的定义_matlab绘制直方图

    matlab中直方图的定义_matlab绘制直方图MATLAB中直方图均衡化和规定化处理函数格式如下:(1)J=imhist(I,n)(2)J=imhist(I,map)(3)[counts,X]=imhist(I,?)(4)J=histeq(I,n)(5)J=histeq(I,map,n)(6)[J,counts]=histeq(I,?)说明:对于…

    2022年10月19日
    0
  • Java程序设计(基础)- 流程控制

    Java程序设计(基础)- 流程控制

    2021年7月21日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号