- 满足需求就是解决问题
需求分析是介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。
需求调查与问题定义:
在做需求调查时需要做到两W一H即 What、Where、How
(1)What-----应该收集什么信息
(2)Where----从什么地方收集
(3)How-------用什么机制或技术来收集
需求分析通常包括几个方面:
(1)绘制系统上下文范围关系图:主要用于定义系统与系统外部实体间的界限和接口的简单模型,他可以为需求确定一个范围。其实就是DFD的0层图。
(2)创建用户接口原型:这里我们可以把他看成是用户操作的一个雏形,什么意思呢就是我们通常所说的界面用户通过一系列的操作完成他想达到的效果的接口。
(3)分析需求的可行性:这个需求我们应该用什么技术解决,他实现后的性能怎么样,是否与其他需求相重合或是矛盾,这里一定要注意不要把系统的这个需求怎么用代码实现想进去。在需求分析时应多注意需求本身是否有用不必考虑怎么实现
(4)确定需求的优先级:可采用满意度/不满意度指标来说明(满意度1-5 表示当需求被实现时用户的满意程度;不满意度取值同理)
(5)为需求建立模型:这里可以用UML创建用例图或是E-R图再加上少量的文字描述。
(6)使用质量功能调配(QFD):这里我的理解是分析员根据需求的理解发现隐藏需求而这些需求是用户也没有想到的需求,系统实现后会给用户一个惊喜,而没实现用户也不会有抱怨。
- 需求分类
软件需求分为三大部分:
I. 功能需求:指系统需要完成那些事情,即向用户提供那些功能。
II. 非功能需求:指产品所具备的品质和属性,比如可靠性、扩展性、响应时间、性能等等。。。
III. 设计约束:也称条件约束、补充规则。比如用户要安装该产品他需要有什么样的必备条件。(系统对操作系统的要求、硬件环境的要求等等…..)