OO第四单元作业总结
正向建模与开发
正向建模与开发是软件工程中的一种方法,开发人员从需求分析开始,逐步进行系统设计、实现和测试,最终完成软件系统的开发过程。它是一个自顶向下的开发流程,强调从抽象到具体的逐步细化,直至生成可执行的软件系统。
首先对本次作业的需求进行分析,明确需要实现的功能性和非功能性需求。之后,确定本次作业系统的整体结构和架构,包括模块划分、数据流、控制流、主要接口等。先通过使用UML图(如用例图、类图、顺序图)来构建整体架构,再对每个模块进行详细设计,
定义模块内部的逻辑。
之后,根据构建的uml图进行代码编写,实现系统的各项功能和需求。在完成代码编写后对系统进行测试确保系统能够满足所有需求并且正确。在测试过程中若发现的缺陷,及时修复并进行回归测试。之后,根据作业需求变化,不断迭代和更新系统功能,确保系统持续满足需求。
本单元作业的架构设计
类图

- MainClass类主要负责将所有请求传递给Library类。
- Library类将请求进行分析,并根据相应的请求做出反应。Library类管理着BookShelf、SelfServiceMechine、BookDriftCorner、BookingOffice等所有的类。
- BookingOffice类管理用户预定的书籍,当预定被接受则会新增一个order。
- BorrowAndReturn类管理用户借阅及归还的书籍。
- SortOffice类则是对书籍的整理进行管理,每当close或open时,对BookingOffice和BorrowAndReturn的书进行整理。
总的来所,我觉得还可以进行优化,细节设计上还有一些有待改。
架构设计思维的演进
- 第一个单元是对表达式结构进行括号展开,在该单元中初步体会层次化设计,对面向对象有了初步的了解。将复杂的系统分解为不同的层次架构,并通过定义清晰的接口和关系将它们连接起来。之后通过对数据的抽象,逐步完善作业。
- 第二个单元是多线程,熟悉了线程的创建、运行等基本操作。在这个单元中了解了并发场景的设计模式,并且关注类同步和互斥关系以避免发生错误。经过三次作业熟悉了多线程程序的设计方法。
- 第三个单元是JML的规格理解与代码实现。通过规格化设计以避免二义性,并对代码基于规格进行测试。在本次单元中充分体现了高内聚、低耦合、可扩展和可维护性等设计原则。在仔细阅读jml规格后,通过选择数据结构储存和算法提高系统的性能。
- 第四单元是先根据需求构造层次化的模型即uml类图,再完成系统的开发。在本次作业中我了解到一个好的程序架构对之后的迭代有很好的帮助。先完成整体架构的构思再进行细化能很好的完成作业。
测试思维的演进
在第一和第二单元中主要采用的是黑箱测试,还有对程序进行压力测试和边缘测试。第三单元则是采用白箱测试和单元测试。
- 黑箱测试不需要了解其内部结构或实现细节,关注输入和输出之间的关系,而不考虑软件内部的代码或算法。主要保证代码是否按照规格说明的要求正确地执行功能。
- 通过捏造数据进行压力测试。
- 通过白箱测试验证程序的内部逻辑是否正确,以及代码是否符合预期的标准和最佳实践。
- 通过单元测试用于验证代码中的各个独立单元(如函数、方法或类)是否按照预期工作。
总结课程收获
16周的oo课至此就到了尾声,我也顺利的完成了所有作业终于可以放松下来了。
在本次的课程中还是收获了很多的,我个人感觉相较于培养java的编程能力,本次课程比较注重培养我们的面向对象的思维。通过多次作业引导架构设计思维及数据的抽象能力,也介绍了许多设计模式及原理,让我们具备建立良好架构的能力。课程结束后明显感觉到设计能力有些许进步的,相信在之后的编程也会按照这个课程所培养的思维进行思考。