文章目录
BUAA-OO-第四单元总结
正向建模与开发
正向建模与开发是指在工程项目开发的过程中,
先分析具体的需求,然后设计整体架构,最后实现代码的一个过程。这是一种将最终需求一步步从抽象细化到具体实现的过程,是一种科学合理的开发方式。
在本单元中,类图、状态图以及顺序图都是有助于实现正向建模与开发的辅助工具。它们关注的是代码设计的不同方面,但是在整个过程中互相补充,从而能够确保设计的一致性和完整性。
架构
架构设计
本次作业实现的架构设计相对比较简单。一共只有5
个类,并且直接将MainClass
当做图书馆系统,没有设计单独的Library
作为“图书馆”。
个人认为本单元最难的地方不在于架构设计,在课程组的描述下,其实很容易能够创建出相应的类并明确类和类之间的关联。本单元最难的地方在于能够准确把握指导书的内容并将所有的要求通过相对统一的方式实现。
追踪关系
代码设计和UML模型设计之间的追踪关系表现为程序中的类、方法、属性等与UML图的一致性,以及正确的路线关系。通过课程组网站的评测我们就能体会到这一点。
架构设计思维的演进
Unit 1 – 递归下降法
在OO课程启程之初,我对于架构设计几乎是一头雾水。第一单元的任务是对表达式进行化简,要使用递归下降法一步步对表达式进行拆解,并且还需要一些类如Lexer
对表达式进行同步的处理。递归下降法的使用对于架构设计本身就是一项挑战,我们需要有明确清晰的架构设计。通过这一单元作业,我还明白了我们可以设计一些“处理类”。虽然这在今天看来像是一句废话,但是我真切地从第一单元作业中体会到了这一点。
Unit 2 – 电梯调度
第二单元是设计一个电梯调度系统。在没有进行当周的OO实验时,我对于架构设计完全没有思路,对线程的认识也十分有限。在完成了周三的实验课之后,我决定套用实验的架构,将其应用到本单元的作业之中。本单元分为三类线程,分别是输入线程、调度线程以及电梯运行的线程。这样一来,架构设计的思路相对比较清晰,各个线程之间的关系也就十分明确。
Unit 3 – JML
第三单元的架构设计基本按照课程组的要求实现,本单元主要考察的是我们阅读JML语言的能力以及解读代码要求之后对代码要求进行实现的能力。
Unit 4 – UML
第四单元的架构设计也相对比较简单,本单元主要是培养我们实现正向建模和开发的能力,即先确定大体框架再具体实现代码。
测试思维的演进
本学期OO课程中测试主要依靠的是同学的评测机(十分感谢为我提供过评测机的同学,没有你们我完全活不过强测)以及在Unit3单元中编写的Junit测试代码。
课程收获
一转眼,本学期就要结束了,而OO无疑是本学期最让我印象深刻的课程之一。OO课程不仅让我们丰富了知识,提高了我们编程的能力,而且还锻炼了我们的心态,我觉得这是最重要的。虽然每一次作业开始之前,同学们都说着“不想思考”,但是真正开始之后,大家都十分认真和专注。不记得有多少次和同学深夜探讨;不记得有多少次一遍遍重复的调试;不记得有多少次越思考越觉得实在是山重水复,但是就在一刹那又柳暗花明……
让我记忆最深刻的还是第二单元的第二次作业。我发现在第一次作业的基础上进行修改有点问题,但是我无法妥善进行解决。苦苦思考无果后,我开始和同学一起探讨,但依然没有解决办法。那一天熬到凌晨四点半,感觉自己这次作业已经没救了,加油站向我招手了XD。好在第二天最终还是解决了这个问题。这次经历告诉我,任何时候都不能放弃,坚韧是计算机人的首要素质。
OO虽然结束,但是我们的旅程还在继续,加油!