绅士狗上一篇我们讨论了软件需求的一些概念、涉及的参与方以及一些注意点,本篇将就需求分析的一些内容点做些讨论。
我们先来了解下软件开发流程。
在任何软件项目开发之前,都需要经历如下5阶段:
苏州软件开发指出项目需求分析阶段—项目设计阶段—设计实施阶段—项目测试阶段—项目验收阶段
需求分析的作用及构成
软件工程理论认为,在软件生命周期中,需求分析(requirements analysis)是最重要的一个阶段。软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”。在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。
需求工程的活动,划分为以下5个独立的阶段:
(1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;
(2)需求建模:为最终用户所看到的系统建立一个概念模型(原型设计),作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;
(3)形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;
(4)需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;
(5)需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。
需求的类型
软件需求包括三个不同的层次:业务需求、用户需求和功能需求
1.业务需求(business requirement) 反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
2.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本说明中予以说明。
3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
需求分析的原则
需求工程中的缺陷将给项目成功带来极大风险,这里的“成功”是指推出的产品能以合理的价格、及时地在功能、质量上完全满足用户的期望。下面将讨论一些需求风险。
1. 无足够用户参与
2. 用户需求的不断增加
3. 模棱两可的需求
4. 不必要的特性
5. 过于精简的规格说明
6. 忽略了用户分类
7. 不准确的计划
苏州软件开发指出据统计,导致需求过程中软件成本估计极不准确的原因主要有以下五点:频繁的需求变更、遗漏的需求、与用户交流不够、质量低下的需求规格说明和不完善的需求分析。
对不准确的要求所提问题的正确响应是“等我真正明白你的需求时,我就会来告诉你”。基于不充分信息和未经深思的对需求不成熟的估计很容易为一些因素左右。要作出估计时,最好还是给出一个范围。未经准备的估计通常是作为一种猜测给出的,听者却认为是一种承诺。因此我们要尽力给出可达到的目标并坚持完成它。
下篇我们将继续讨论需求分析的其他方面。