301
社区成员
发帖
与我相关
我的任务
分享正向设计是以系统工程理论、方法和过程模型为指导,面向复杂产品和系统的改进改型、技术研发和原创设计等场景,旨在提升企业自主创新能力和设计制造一体化能力。对应到本单元的作业中,即为先进行架构设计,再根据设计的架构进行编程的过程。

对于图书管理系统中的各个部门,本人设计了对应的类实现部门中的功能,并使用Book类存储每一本书的编号和种类,User类存储用户的Id、持有的书籍信息、书籍的应还日期和信用积分。用户在图书管理系统中的行为统一由Library类进行管理。
对于开馆前和闭馆后的整理功能,设计了Management类进行实现。每次整理过程中,对用户尚未扣除过信用分的书籍进行延期检查:如果书籍延期未归还,且未扣过信用分,则扣除用户的信用分并将该书籍进行标注,避免后续重复扣分。
在本单元的三次迭代中,第一次作业的架构被沿用到最后。每次新增的要求都通过在上次的架构中进行补充来实现。
在设计架构时,本人先根据题目要求画出大致的UML类图并写出主要的成员和方法,之后按照大致架构编写代码,并在编写代码的过程中逐步对UML类图进行完善和丰富,以保持代码设计和UML模型设计之间一致性。
主要采用黑盒测试与白盒测试结合的策略,先通过黑盒测试检验代码的正确性,再通过构造针对性数据的白盒测试检验逻辑的正确性。
第二单元的多线程具有较大的不确定性,对于线程不安全问题导致的bug,需要进行复现并针对性构造类似的数据进行多次验证。
第三单元和第四单元的测试中,本人主要采用针对性构造数据的方式。随机生成数据检测bug的能力有限,在规格设计和架构设计清晰的前提下,白盒测试用例更容易构造且效果更好。
通过一学期的学习,本人对面向对象的编程思想有了深入的理解,并学会了如何设计合理的类层次结构,以便于迭代开发和复用。在开发过程中,本人了解了SOLID设计原则,学习了常见的设计模式(如工厂模式、单例模式等),掌握了JML规格语言和UML类图两大工具,并将其应用于实践中。此外,四个单元的作业也提升了本人的程序设计和构造测试用例等基本能力,为今后的开发与设计提供了坚实基础。