buaa面向对象第四单元

面向对象设计与构造第四单元

你航OO课最后一篇博客当然要彻底放飞自我

UML简介

UML是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。UML由一组集成图组成,旨在帮助系统和软件开发人员指定、可视化、构建和记录软件系统的工件,以及用于业务建模和其他非软件系统. UML包括以下几个部分:用例图、静态结构图、活动图、顺序图、状态图、类图、接口图等。关于具体的语法直接参考由碾压MIT的世界第一面向对象课程组编写的第四单元手册

UML4+1视图

666
逻辑视图关注的静态元素是:层、子系统、类、接口,用类图来描述。关注的动态因素是协作关系,用时序图、协作图、状态图等来描述。是否需要在架构设计中体现类和类之间的关系?这取决于设计的层级。

开发视图(实现实体)关注的元素是程序包(SDK、解析器、中间件)、文件组织结构、编译依赖关系、目标单元(jar、exe、dll等)。它和逻辑视图的静态元素通常有映射关系。

运行视图(进程视图)关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。运行架构和开发架构的关系:开发架构一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题。

部署视图关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。部署视图和运行视图的关系:运行视图特别关注目标程序的动态执行情况,而部署视图重视目标程序的静态位置问题;部署视图还要考虑软件系统和包括硬件在内的整个IT系统之间是如何相互影响的。

正向建模

正向建模与开发要求我们首先根据模型需求和描述构建与设计模型,并将设计通过类图、状态图和时序图直观地表示,然后再根据设计编写代码实现模型。

666

三次作业的架构设计

迭代都比较easy,直接展示最终版的类图。

666

很简单直接的设计,直接看类图应该也能明白意思,就是纯纯牛马大模拟,没啥意思,不过多介绍了。

666

上图是书籍状态图的展示。

架构设计思维的演进

第一单元,数据结构题比上学期数据结构大作业码量大
第二单元,并发编程
第三单元,算法设计与分析思维
第四单元,基于语文阅读理解的架构设计思维

测试思维的演进

第一单元,纯纯摆烂不测,过了中测万事大吉,强测得分随缘。
第二单元,和同学写了一个评测机,checker的编写比较考验对细节的把控。
第三单元,和同学对拍,难点在于测试数据的构造。
第四单元,纯纯摆烂不测,过了中测万事大吉,强测得分随缘。

感想

首先助教学长学姐们真的都很认真负责,感谢助教们的辛苦付出,笔者作为学生能感受到这门课上被倾注了很多他们的心血

但是感觉OO课程除了多线程设计单元学到了一点东西,其他单元几乎毫无作用,对代码能力提升毫无帮助,对架构设计思维的提升也没有什么帮助,有这时间不如自己自学感兴趣别的学校的开源课程或者codeforces上多刷几题,第一单元表达式化简,毫无技术含量的数据结构问题,硬要套上所谓的架构设计。第三单元表面上是教了一个已经淘汰的没有任何实际作用的JML规格(这里并不是说规格没用,而是JML),实际上则是实打实的算法单元。第四单元则充分体现了课程组优秀的出题能力。这样的课程设计泰裤辣!!!

放一张神图镇楼(PS:真想学东西还是出门左转MIT):

666

毕竟MIT这样的漂亮国大专怎么能与咱们世一大抗衡

第二单元的多线程设计的确是打开了新世界的大门,这边来个引流buaa面向对象第二单元

对于JML单元算法单元的介绍,引流buaa面向对象第三单元

第一单元,引流buaa面向对象第一单元

至于建议,简单直接,抄MIT就可以了,人家标准答案就开源的放在那里,抄作业总会抄吧

哦还有一句名人名言没有放出来,《你们学好OO暑假找个相关实习非常简单》,各种框架、容器、分布式你是一个都不教,那上哪找实习去啊。

posted @ 2023-06-16 21:31  clapp  阅读(44)  评论(0编辑  收藏  举报