高等软工第二次作业-从需求分析看软件开发的挑战
项目简述
我们小组的题目是《社区疫情防控系统》,这个项目和当前的大环境息息相关,非常有生活气息,可以从生活经验来对系统进行设计,也可以从设计中领会到疫情防控的困难,体会国家防控的政策。这里就课程几个关键时间节点谈谈我在高等软件工程课程中的一些感悟
领域分析
在正式需求分析之前首先是领域分析,并完成了一个领域分析报告。因为身为非软件工程专业的学生,虽然有过代码开发经验,但没有形式化的软件开发理论基础,第一次接触到领域分析的时候显得十分陌生和生涩。老师的目的是想通过领域分析设计对我们想要实现的系统有一个完整的概括。一开始我以为领域分析会画什么各种各样的图之类的,但在组长的指导下我明白了领域分析实质上是需要我们对我们要做的项目有一个清晰的轮廓,他类似于项目指导书,首先给项目的背景和相关工作做出了一个细致的轮廓,然后指导我们后续设计方向,使我们不至于设计着设计着就跑偏了。
为了使小组成员都对整个领域都有所了解,组长组织了一次线下小组讨论大家一起讨论整个领域的需求,在这次讨论中大家意见比较一致,说明我们小组成员对疫情防控这一项目都有了一个比较清晰的认知,然后组长给每个成员分配了一部分任务,大家都很好的完成了这一次领域分析。
第一次需求分析
第一次需求分析老师要求准备系统的用例图、类图、时序图以及状态图,因为时间有限没有得到老师的课堂上的点评,我们小组在后续的分工中按照之前的惯性做法,首先组长划分整个系统成不同的模块,接着每个小组成员负责理解自己负责的各个模块,并对自己的模块进行设计。这种做法的好处是使得我们每个人对自己负责的部分都比较了解,但这样做的同时也为后面需求评审的失误埋下了伏笔。我的任务是理解并划分临时进出人员的行为,按照我们之前的讨论,临时进出人员主要分为短期临时进出人员(如外卖员)和长期临时进出人员(如装修工)两大类,两类人员虽然都是临时进出人员,但在疫情管理逻辑上却稍有些不同,我们对两种管理逻辑进行了仔细的讨论,最终一致同意了最终的解决方案:由二维码的有效时间来管理两类人员,并对短期临时进出人员给予更少的审核限制。
需求评审
因为在需求评审之前我们小组成员都比较忙,所以各个小组成员之间对于之前所做的部分沟通是比较少的,所以我们还是承接着第一次需求分析的思路对每个人自己负责的部分进行细化,我对临时进出人员的各种图进行了仔细的拓展,就这个过程而言,我的收获还是比较大的,对我负责的模块有了相当深入的了解:我明白了临时出入人员具体申请二维码的流程,二维码失效的处理情况,疫情对二维码该如何进行响应。然后我们各自完成了各自的部分后由组长对我们的工作进行了整合并在需求评审中进行汇报。但在需求评审的过程中问题就暴露出来了:
- 因为每个人独立负责了自己模块后,每个人不清楚其他人的模型,导致每个人建模的模型与其他人的模型数据流不一致,这一点在老师的反馈中有所提到
- 虽然每个人独立的模块功能相对完善,但是对于疫情防控这一个整体来说,对于防和控它在每个模块体现的程度是不同的,像我的模块对于防和控都需要有所涉及,但有些模块并不会涉及到控。所以这样会导致整体的设计看起来会非常割裂
总结
经历这次需求评审后,我们小组暴露出了很多问题,我们会继续改进,争取在下次评审中尽量少犯错。总的来说,通过大半学期的软件工程课程学习,我已经逐渐有了软件开发的系统性思维,有点明白了一个成熟的软件工程该做什么,也渐渐明白了团队协作的重要性,软件开发中各种设计的重要性。接下来我们会完善并整合我们目前的疫情防控系统,针对老师提出的问题逐一进行改正。