设计也可以按图索骥

        在设计阶段,我们从系统需求规格说明书出发,根据需求分析阶段确定的功能来进行系统的整体架构设计、划分功能模块、划分组件、确定每个模块用到的组件以及确定组件之间交互的接口。软件设计的过程即为软件结构设计、数据结构设计、接口设计及过程设计的过程。经过小组的讨论,大家一致同意由我负责完成系统组件图和时序图的设计。一开始,对于模块和组件的理解很不到位,不明白组件和模块的区别。当然这也不是什么难事,归根到底还是没有认真上课。直到现在终于弄懂了组件是可重用的代码块,而模块则是分属同一业务的代码进行封装后得到的独立块,同一组件可以被不同模块调用,实现了代码重用。

       现在就对绘制组件图和时序图做一个大致的回顾和总结。根据系统架构图对系统的功能模块进行详尽的划分,把复杂的大问题分解为若干小问题,复杂的功能分解为各个简单功能之和,隐蔽模块内的数据和过程,抽取出各模块中重复编写的代码形成组件,同时定义模块或组件之间交互的接口。在划分模块时尽可能做到各个模块之间的彼此独立,达到高内聚、低耦合的设计要求。 将这一抽象的思维过程反映到图上便是我们的组件图。组件封装了可执行特定功能的单位,组件的类型包括可执行文件、文档、数据库表格、文件和库文件,组件图表示组件是如何交互以构建更大的组件、模块及软件系统。内在的要求是这样的,但是正真地实现对业务功能模块进行良好的划分以及提取出可重用的组件是一个十分困难的过程,需要具备良好的抽象思维和丰富的实战经验。从用例图和类图绘制系统主要业务的对象交互信息,即时序图,对用例的具体过程用对象之间的交互加以描述,确定消息传递的顺序。一个时序图由若干个子流程组成,不同的角色在流程中扮演着不同的功能。

       尽管最后的答辩没有出现什么大的问题,但是很多问题后知后觉,很多问题没有弄懂,稀里糊涂间就把一张图给拼出来了,以应付暂时遇到的考核。如果再来一次,头脑或许会更清晰,更能规范思考问题,得到更好的解。设计的意义或许不在于几张能表达系统功能的图,而是一个思维锤炼的过程。

posted @ 2021-01-08 20:41  onexy  阅读(75)  评论(0)    收藏  举报