目录

软件工程3:设计也可以按图索骥

软件工程:3.设计也可以按图索骥

1. 前言:

如果说需求分析是画饼,设计分析就是把我们画的这个饼的制作过程细化,最起码也是让它看起来是能做出来,可以吃到的。

2. 心路历程:

2.1. 设计思路:

设计分析三步走:抽象、分解、协议

抽象和分解的关键在于粒度的把握,可以从数据流或是从控制出发,把握抽象和分解。

最后协议的部分,用不变式和OCL来细化约束,执行协议。

我们在设计部分主要抓住这两个工具来进行设计,在已有的类图基础上,抓主要流程,继续细化分析、迭代

2.2 细化分析:

核心业务,主要流程,系统价值。

仍然是这一阶段不断在脑海里浮现的提示。

在不断细化的过程中,一些问题也暴露出来,而我们甚至已经习以为常,细化修改、在细化再修改。

小组合作让迭代和重构的魅力充分展现,如果是我自己一个人的话,很难坚持这么多的改动。不过确实一个有经验的人带领一些没有经验的人,将模块清晰的划分会让任务更加明确,降低沟通的成本和工作的耦合,这在大家都没什么经验的时候,不可避免的需要集中讨论,否则很容易出现理解偏差。这也就老师常提到的经验传递和教授的困难性吧,即使从我们从原理上明白应该划分,但对于划分的正确性和目标的产出在没有经验指导之下是不明确的,因此需要不断和团队同步以确保思路的正确。耦合还是没有充分解开。

2.3 进入开发:

负责的前端不是实际上不是核心业务,不实现我们主要设计的部分,因此对于设计分析的结果还是有距离感。

另外设计可能更多的是需要有一定开发经验后,对整个流程有个完整把控之后才会设计的部分,首先如果基础不扎实就会导致开发的进展举步维艰,如果仅仅是实现基本功能都已经比较困难,按照设计实现可能仍存在一定的难度,主要难度还是在于没有参考的示例。其次对于技术栈本质的把握,即将设计对应到开发框架,也是需要经指导的。

2.4 项目管理

在整个项目过程中,充分到了一个好的管理方法在项目进展中的作用,我们在这一点上只能说是运气比较好,大家都积极参与、作为,融入感和参与感都很强,投入了120%的时间和力量克服了很多困难才发挥体现了团队大于个体的力量,但实际中如果没有这样的自觉性,很难到达有效的合作,进入这样一个小组是相当幸运的,但在实际中应当是有严格的规定和制度以确保合作的基准线的。

3. 感想

到了尾声,大家也都很忙压力很大,但群里大家还是互相鼓励,不论结果如何,我们坚持到底,纵使课程就应当是以设计和项目去评估,但我的收获远远不止课上所学和项目经验。