需求分析
软件开发的开始,始于需求分析。需求分析就是要弄明白这几个问题:
- 谁提出的想法?要解决什么问题?
- 需要哪些业务来处理这个想法?
- 这些业务是由什么信息支撑的?
- 这些业务的支撑需要什么样的软硬件问题?
1.需求分析的方法
围绕上面的核心问题,我们来看下我的需求分析方法如下
理清需求涉及的人员,部门及他们的诉求及职责
例如,在围绕校园安全的需求中,那么涉及的人员及部门有:
人员角色 | 诉求及职责 | 备注及其他 |
---|---|---|
学生 | 举报校园暴力;倾述自己的烦恼;寻求心理治疗 | |
宿管 | 举报校园暴力;了解学生在寝状态;做好访客统计 | |
班主任 | 了解学生的在校、在寝状态;批准学生的假条;沟通家长;沟通学生 | |
家长 | 了解学生的在校、在寝状态;学生的请假状态; |
由上可见每个角色及部门的核心诉求都不同的,但是各个需求的核心都是围绕学生的安全这个需求来。在更复制的业务中或许有更多的诉求,甚至部门之间会存在冲突。
2.找到支撑这些诉求及职责的业务或流程
大家的诉求,职责并不是孤立的,需要具体的业务来产生数据,这就是信息化系统产生的根本所在。有些业务之前是不存在的,因为没有使用信息化的设备及手段无法产生数据,有些业务则是一直存在于普通的事务性工作中,我们要做的就是让它电子化。那么什么是业务了?我的理解一般就是大家平常说的做事的流程。根据上述的用户角色及诉求,我梳理了部分如下的业务。这里只做部分列举,不做详细说明。
- 学生出勤业务
- 学生上学通过AI摄像机进行到校,离校签到,系统记录相关数据。
- 学生归寝业务
- 学生上学通过AI摄像机进行归寝,离寝签到,系统记录相关数据。
- 学生请销假业务
- 学生在系统进行请假申请,提交到班主任处;或由班主任直接创建请假申请;通过后学生在非上下学时间离开时,AI摄像头识别到该学生后,会在门卫的PAD上显示该学生的请假信息,核实后允许其离校,离校时会将信息推送给家长。
如上所述,有些业务比较复制,这个时候使用业务流程图可以很清晰的表达出该业务,与客户沟通时可以取得事倍功半的效果。大家分析业务时,都是正常流程很容易,但是一定要考虑其异常流程的处理,因为谁都没有一直顺的时候对把。
3. 找到支撑业务的数据信息
任何业务离开了数据信息,都是瞎说。所以发现业务背后的数据很重要,那么数据从何而来了。不着急,我们可以从相关角色的日常工作中找到,比如XXX单据,XXX报告等等,这些都是可以找到的原始数据,但是这些数据并不是我们系统需要的,我们要把他们转换成对应的数据字典或表格。
数据原始来源 | |||||
数据相关的部门 | |||||
数据字段说明 | |||||
数据名称 | 类型 | 备注说明 | 实例名称 | 是否必填 | |
4.梳理要实现以上业务的环境
按理说,完成了以上的业务梳理后我们对需求有了很深入的了解了,能写出较好的需求文档了。但是我们还有考虑实现这些的业务的软硬件环境,外部接口。
- 系统运行的环境:
- 服务器是物理服务器还是云服务器;
- 操作系统使用的是Linux还是,Windows的某个版本
- 数据库需要使用Mysql Oracle Sqlserver的哪个版本
- 物理服务器是否需要硬件防火墙,是否需要牵专线
- 外部接口
- 罪犯的人脸头像库如何提供
- 学籍信息,教师信息,年级班级信息如何提供
- AI摄像头识别的结果是如何回调的