高等软工第三次作业——设计也可以按图索骥
前言
我们小组的题目是《社区疫情防控系统》,经过前面的领域分析和需求分析,我们小组对整个疫情系统的方方面面都进行了详细的讨论,本意是展现一个完善的周到的疫情防控系统,所以在一些细节方面我们进行了着重的讨论和设计分析,但可能因为过于重视细节,而忽略了一些宏观的设计完整性。
设计建模
设计建模是什么?我的理解是设计建模是在进行实际开发之前对整个系统进行一个完整的指引,就像盖房子需要房屋设计图一样,设计产品也需要一个设计图,有了设计图之后我们才能判别我们的开发是否能够达到预期的效果,如果没有达到又是哪一个具体的功能模块出了问题这样的问题追踪流程。如果没有设计建模这一阶段,当开发人员拿到需求分析后,按照自己的理解去实现需求,等到最终花了几周开发完了整个系统发现整个产品与实际需求并不匹配,这时候再去修改产品可能就是亡羊补牢了。
所以,设计的最大作用不是解释软件如何解释的,而是解释业务流程是如何在系统中体现的。在设计中并不需要体现太多的业务知识或者详细的技术分析等等具体到业务细节的东西,而是给出一个具体的指引,根据老师所说:
任何一个不熟悉相关领域的开发者都可以根据设计建模文档开发出符合需求的系统或软件
所以领域分析回答了为什么要做这个软件,需求分析阐述了软件是什么,而设计建模要做的就是回答这个软件怎么做,正如标题所说,设计也可以按图索骥,设计也是有章可循的,设计定了下来,那么开发流程同样也就定了下来。
建模过程
根据需求分析阶段的反馈,在设计建模之前,我们对先前的模型进行了很多反思。正如之前提到的问题,我们的模型存在着模块过于分散,数据流向不清等问题,我们在设计建模阶段重点想要解决这些问题,所以我们再一次明确了每个人的职责,每个人之间都互相了解各自的设计,所以每个人都会参与整个系统的完整的流程,这样的好处就是我们的设计变得十分完整,考虑到了每个人之前没考虑到点。但是因此又带了一个潜在的问题:整个系统过于复杂。我们着重于系统的设计,便减少了对系统的抽象,这样看起来我们整个系统就像是一份完整的代码,而不是一份完整的设计,这个问题在答辩的时候便被指出来了。
结语
通过这次设计答辩,我们明确了设计中最根本需要的是什么:化繁为简,设计最重要的是从繁杂的业务逻辑中抽象出最核心的点和线,将这些业务串联起来,而不是思考业务如何实现、代码如何编写等具体的工程问题。所以我们接下来的计划就是化简我们的设计,同时再明确业务逻辑,争取在最后一次答辩之前将整个系统再原有的基础上再进步一点。