高等软工第二次作业——从需求分析看软件开发的挑战

一 前言

本博文为软工项目需求阶段的博客总结。我们12345组的选题是“基于订单的家庭工厂协作系统”。

1.1 项目需求简述

典型的生活日用品制造业往往由一组家庭式工厂协同配合,共同生产和组装,完成最终订单。系统有几个关键功能:下单(接单)、订单分解、订单分配、订单进度追踪、订单完成风险评估、订单完成效果分析等。要求实现基于网页或手机端的系统。

二 领域分析报告

因为组的野队,大家的时间不好协调。第一次领域分析的时候大家还摸不着头脑,开了两次紧张的线下讨论会后简单粗暴地分任务,把领域分析赶了出来。这时我们的系统中还是有“顾客”这一角色的,伴随这个角色的还有传统商城的商品展览、购物车等功能的设计(之后为突出核心价值去掉了)。而订单到达后的主流程具体怎么走还是没有很清晰,几个关键的点还未确定,如家庭工厂能否取消订单、家庭生产状态表内的属性如何设计来提高通用性(描述某个家庭工厂对某一类产品的生产能力)?

 

有点伤心,作为被公开处刑的第一组,当时感觉这些内容我们大部分都讨论过,只是文档可能没组织好。但站在最后一版修改结果处,回过头去看,发现确实好多东西没填充上去。

有点惊喜,老师们会看每一组的报告并一一点评,有些建议也帮我们明确了方向。

三 需求分析报告——需求评审的前夜

在领域分析的基础上,我们又赶着ddl做需求分析。先是每个图分到个人身上,再开会讨论,统一细节,不断迭代修改。有的图画了几版,讨论的过程中队友都很给力,大家意见渐渐明确统一。

 

这次报告后,我们又重点围绕以下部份进行修改补充:

1用例图: 体现价值:进到系统里的工厂、顾客、订单更多。

控制家庭工厂怎么注册注销?不能随便来个人就注册(算管理)

家庭工厂还是要体现接受/拒绝

2类图:产品组合成产品(去掉“组件”概念,增强通用性)

缺了个组件是不是生产完全瘫痪了

四 正式需求评审

站在前两次报告的基础上,我们又进化了,得到了不错的评价,之后还是要继续进化:

1拆解订单:依据产品、产能,工序为products(产品组成产品,产品类属性包含products)

2评估时定下来签不签(订单下达的时候不是直接生效,之后相当于是真订单查询进度追踪和完成风险,系统再依据这些评估数据定下订单是否生效)

3具体非功能需求:比如具体处理多少单(非功能需求写更详细,补环境)

4钱/价格去掉?因为没体现在调度的影响因素里

5状态图里“生产计划”要和类图对应上(后续还要视情况将各类图迭代修正,并统一对应上)

新开了一个号放这门课的图,这是部分中间文件,和最后PPT上的图比,可以看到我们组修改还是挺多的。

 

五 工作计划

1.设计和编程:接下来重点是详细设计和编程了。队友们给力,讨论了很多流程上的细节,还加了个类似滑动窗口的设计,处理意愿值生效时间问题(意愿值指工厂接下来承诺生产某产品的数量,是生产能力类的属性)。但这些设计导致了对象实例间要实时传递的消息很多,相应的编程也要接受这些挑战。之前用AKKA做了个demo模拟工厂和任务间的通信,但现在发现跟设计没对上,最近别的课作业也多(本人老拖延症了),希望最后能尽量完成我们组的设计。

2.任务分配:这次想试试前后端分离+结对编程,设计部份也还摸不着头脑,较难规划。协作系统中怎么分解分配生产任务是我们的挑战,设计、开发过程中怎么分解分配任务也是我们的挑战。

 

posted @ 2020-12-13 14:43  hhhhhejiahui  阅读(128)  评论(1编辑  收藏  举报