个人博客-设计建模阶段小结
随着课程的推进,我们的项目到了设计建模阶段,小结如下。
1. 理论知识
老师在课上教授了设计建模的概念和方法,首先是设计原则,指出我们要从上一阶段的application domain转移到solution domain,也就是说我们要从之前定义这个系统是什么(能做什么)将重心转移到如何实现这个系统上来。设计建模有若干原则需要遵守,例如效率、可理解、可扩展、时空复杂度低和可复用等。在实际建模时,我们应由顶到底式设计,将系统一步步地划分为子系统、模块/组件、类和接口等,具体如下图所示。


随后,老师具体讲解了我们在设计建模时需要用到的思想、方法等,比如抽象、解耦、协议的设计、如何设计模块/组件等,更进一步,老师还阐述了区分子系统的方法如基于数据流的、基于控制的方法等。因为有解耦、子系统和组件等组成部分,所以在一个系统中定义协议是很有必要的,老师讲解了协议的设计原则和方法。最终的目标是整个系统要实现高内聚低耦合的效果。然后老师介绍了contract的概念,最后老师介绍了OCL表达式进一步规范我们的设计模型。

2. 设计建模
在学习完理论知识后,我们正式进入设计建模阶段。首先我们小组一起复盘了需求建模中的主要问题和改进,明确了以核心业务为中心的建模和开发模式,也就是围绕着一个项目的完整生命周期去细化业务中的每一个流程,再由这些具体的业务流程推导出我们需要怎样的设计模型。在上次的设计建模阶段,我们主要提出了QA角色的引入、里程碑模块的增加和策略系统的提出,这是我们设计建模需要围绕的重点业务。当然,我们还需要兼顾设计建模的原则和整个系统层面的考虑,所以我们先开了个共享文档,共同协商出了具有我们共识的项目的生命周期,在这期间我们经历了若干次讨论。当项目的生命周期确定后,我们进行了项目分工,具体分工为将整个系统划分为4个模块,分别是用户管理模块、项目管理模块、里程碑管理模块、策略管理模块,其中,里程碑管理模块是从项目管理模块解耦出来的单独模块,其主要功能是对项目的分阶段交付过程进行控制,这是对项目管理模块的解耦,策略管理模块则集中了整个系统中的所有策略,包括项目推荐策略、开发者推荐策略等,我负责系统的整体架构和组件图部分,系统的整体架构如图所示。

围绕该系统架构,我设计了系统的组件图如下:
当然,在这期间我们进行了很多次沟通,力争对项目的具体细节认知一致,保证系统功能模块不冲突,实现高内聚低耦合的设计原则。
3. 反馈与改进
在设计建模完成后,我们在课堂上进行了展示和讲解,老师对我们设计建模整体上较为肯定,在模型图的规范性上、策略管理的具体细节上提出了进一步的要求和建议。随后我们完成了小组互评,对其他小组的建议和疑问进行了解答和改进,提交了对于小组互评的反馈,举例如下:
4. 总结
在本次设计建模阶段,我充分参考了老师上课时讲解的理论知识,将其应用于实际项目的建模,认识到了设计建模的重要性,根据老师和同学们的建议进一步优化了设计建模,为下一步的开发提供了重要参考。

浙公网安备 33010602011771号