需求分析作为软件工程中不可或缺的一项重要的内容,在许多的方面都有重要的作用,可以说需求分析做不好,将来的软件验收和维护都会遇到很大的困难甚至要进行软件的重构,下面来看一下我的导图:
(一)需求分析的任务:
1、构造模型
首先就是要构造目标的业务模型,从原系统的模型出发经过转化最后形成现有系统的模型
2、分析需求
软件的需求包括:
——功能需求 ——用户界面需求
——性能需求 ——资源使用需求
——环境需求 ——成本消耗需求
——可靠性需求 ——开发进度需求
——安全保密要求 ——预计系统达到的目标
3、分析综合
此阶段为逐步细化功能,找出系统元素之间的联系、接口特性,分析它们是否满足功能要求的阶段,若此阶段出现问题,则需要重新与客户进行需求的分析或对系统的模块进行重新设计。
(二)结构化分析法
1、数据流图
数据流图是分析一个需求具体要做什么的一个很好地的工具,具体涉及到使用什么文件,以及配合数据字典有很好的诠释性,下面是数据流图的元素符号
从信管的第五章可以了解到,在画数据流图之前要先把业务流图也画出来,以便于业务的分析和数据流向的确定。
2、数据字典
数据字典和数据流图是相辅相成的,有了数据流图就应该有与之相对应的数据字典来解释里面的数据来源。
3、判定树和判定表
判定树和判定表都可以很好的从另一个方面来表示数据流图的逻辑关系,下面为两者之间的应用区别。
如果数据流图的技工粗腰依赖多个逻辑条件,则用判定表来描述比较合适:
判定树对于判定逻辑较简单和条件较少的逻辑来说比判定表要直观
(三)原型化方法
原型化方法是了让用户和开发者更好的沟通而存在的,用来让用户对未来的软件功能有一个直观的了解,以便于程序员修改收集到的需求和用户明确自己的需求。
注意:这里的原型指的是一个框架程序,让用户了解预期模型,并没有实际功能
(四)动态分析法
主要涉及到了三种图的画法:状态迁移图、时序图、Petri网
状态迁移图有点像我们学过的数电里面的时序分析图,都展现了从一个状态到一个状态的经历过程,类比来看相对要简单一点,只要弄清楚了来龙去脉就可以画这个图了。
时序图和迁移图之间的区别是他描述了时间上的消息传递顺序,关键线索是时间,类目为类名和对象,而迁移图为对象的状态,所以说是从根本上的两个方面的图。
petri网是对象类之间的动作关系的一张网,主要也是表达了整体业务的详细逻辑图,主要适用于并发处理的系统,可以清晰的看到里面对象之间的动作。