热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BUAAOO第四单元作业总结及课程总结

BUAAOO第四单元作业总结及课程总结一、本单元架构设计本单元作业内容为对UML进行建模解析,从而完成后续查询。需要我们完成对UML图中信息的解析存储,是更加纯粹的面向对象设计。第

BUAA OO 第四单元作业总结及课程总结

一、本单元架构设计

本单元作业内容为对UML进行建模解析,从而完成后续查询。需要我们完成对UML图中信息的解析存储,是更加纯粹的面向对象设计。


第十三次作业

本单元第一次作业只针对类图进行解析,在官方已给的包中已有部分可直接用的元素,在此基础上增加一些官方包中存储信息不够的类,例如ClassInterface之类,以便更好地存储UML信息。


第十四次作业

第二次作业增加了状态图和顺序图的查询,类似于上一次作业,把三种类型的图各自存储,便于解析查询。


第十五次作业

此次作业架构和上一次完全相同,只是增加了对UML中存在的错误进行检查的方法,故不再放出类图。


二、四个单元中架构设计思维及OO方法理解的演进


第一单元--表达式求导

第一单元的前两次作业是最让人头疼的,在初步解除面向对象方法时并没有对架构设计有一个清晰的想法,在借助了训练和试验后豁然开朗,对架构有了清晰的认识,在学习面向对象过程中是一次大的飞跃,知道了继承和多态在解析表达式中的重要作用,完成了对整体架构的设计,也正因此,在第三次作业中基本没有改变第二次的架构就能完成。


第二单元--电梯

这个单元主要学习了多线程开发方式,加入了线程并发冲突的各种模型,整体架构也是以其中的“生产者消费者”模型来构建,在架构上并不需要特别设计,主要是处理多线程并发时出现的一些不可描述的错误。


第三单元--JML

这单元不需要架构设计,只要理解规格并将其实现,并且保证一定的复杂度即可,出错也主要在方法的时间复杂度上,虽说需要我们完成的任务体现面向对象思维并不多,但整体的社交网络就是一个面向对象很好的实例。


第四单元--UML

最后一单元相较前面单元的作业是更加纯粹的面向对象,实现了对UML的解析和查询,对架构的设计其实题目已经大致框定了,要做的设计知识解耦和降低复杂度。

面向对象方法不仅仅是为了代码复用,而更多的是为了封装代码,对整体设计进行解耦,降低复杂度,将大的任务拆分成小的部分来完成。


三、四个单元中测试理解与实践的演进


第一单元

在第一单元中使用了Python进行数据生成,配合 Sympy库对程序运行结果进行检验,但针对于一些临界情况还是不能很好的生成数据,还需要手动生成。


第二单元

在第二单元完成主要功能的测试比较简单,依靠Python生成的数据即可,但一些极端的数据较难想到。


第三单元

在第三单元使用了Junit单元测试和黑盒测试,针对每次作业的核心算法构造出相应的数据点进行性能测试,但是忽略了部分看起来不复杂但时间复杂度较高的方法。


第四单元

在第四单元仍使用了Junit进行测试,但数据的构造较为麻烦,故没有特意构造数据。


四、课程收获



  • 学习了面向对象这一新的编程思想,理解了面向对象的特点及好处。

  • 学习了JAVA多线程开发,学会了处理线程并发导致的冲突。

  • 学会了规格的表示,能读懂并自己书写部分规格。

  • 应用了多种测试手段,丰富了测试的能力。


五、改进建议

在博客周提前发布一些可选的预习任务或者资料,让同学们提前了解下一单元的内容

减轻互测的强度和次数,部分人不想耗费过多时间,而部分人多次hack甚至恶意hack,在同一组时搞心态

实验增加结果反馈



推荐阅读
  • 第四单元和课程总结:简单的架构设计意识
    一、第四单元架构设计总结第一次作业由于需要按名查找类图模型,于是建立"Class"类进行管理由于方法具有参数导致类中存在二级结构 ... [详细]
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 软件测试工程师,需要达到什么水平才能顺利拿到 20k+ 无压力?
    前言最近看到很多应届生晒offer,稍有名气点的公司给出的价格都是一年30多W或者月薪20几k,相比之下工作几年的自己薪资确实很寒酸.根据我自己找工作经历,二线城市一般小公司招聘 ... [详细]
  • Unit4博客&课程总结Unit4作业的架构设计本单元作业的设计我分为了三个模块处理:模型构建+预处理+任务函数,前两部分即为整个图的完整构建,第三部分即为实现题目要求的查询方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • Spring MVC 浅谈
    大学时写的的文章,当时文章水平略差,大家见谅。MVC这个词儿,最早的定义应该是作为一种软件架构设计模式出现在软工里面的,即使用model、view、controller来设计及定 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了Java虚拟机中的垃圾收集器,包括年轻代收集器Serial收集器、ParNew收集器、Parallel Scavenge收集器,以及老年代收集器Serial Old收集器、Parallel Old收集器和CMS收集器。对每种收集器的算法和特点进行了详细解析,希望对读者有参考价值。 ... [详细]
author-avatar
mobiledu2502860217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有