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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fedora14安装教程_Linux下zip安装使用方法

    fedora14安装教程_Linux下zip安装使用方法LinuxFedora12下,安装SAMBA ,使用以下命令:yuminstallsambayuminstallsamba

    2022年9月19日
    0
  • IntelliJ idea自定义模板Live Templates[通俗易懂]

    IntelliJ idea自定义模板Live Templates[通俗易懂]1、点击File–>Setting(Ctrl+Alt+S)–>Live Template,点击右侧的+号,选择Template Group2、输入MyGroup(也可以输入自定义的名称。我写的是My),然后点击OK3、选中My之后,再次点击右侧的+号,选择Live Template下图是 正确是 public static void main(String[] args)   粗心…

    2022年6月13日
    53
  • jquery获取iframe的src(input标签type属性有哪些)

    一句搞定,不搞那些花里胡哨的$(‘#InformationURL’).attr(‘src’,’https://www.baidu.com’);//#InformationURL:iframe的id=”InformationURL”,注意这里的#是后加上的//这里将src设置为百度,当然你也可以设置为参数形式//其他的为固定写法…

    2022年4月15日
    37
  • borrow用法及短语(that is ok用法)

    publicclassMainActivityextendsAppCompatActivity{Stringpath=”https://www.zhaoapi.cn/ad/getAd”;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(

    2022年4月10日
    52
  • 配置监听_1521端口占用问题

    配置监听_1521端口占用问题声明:原创作品,出自“深蓝的blog”博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。深蓝的blog: 前提回现修改了主机名,由hyldb修改为hyl。问题现象配置监听,警告提示,如下所示:解决方法1、检查1521端口[root@hyl~]#netstat-a–查看端口占用情况,查明1521端口并未被占用ActiveInte

    2022年6月5日
    40
  • RSA加密算法的java实现

    RSA加密算法的java实现最近有一个外部合作项目要求在数据传输过程中使用RSA加密算法对数据进行加密,所以需要编写一个加解密的工具类,因为对方不是java语言,所以是各自实现的这个工具,本文主要讨论实现以及双方调试过程中的一些插曲,希望给大家不要再次踩坑。关于加解密的核心部分,网上有很多博主都有实现过,我也是参考了一些博主的方法自己实现了一个加解密的工具。packagecom.chen.test;importorg.

    2022年5月1日
    37

发表回复

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

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