文档介绍:第四部分
现代软件工程的需求过程
《现代软件工程》
传统的需求分析方法-1
面向对象的需求分析方法-2
基于UML的需求分析方法-3
需求工程与需求管理的实现-4
第四部分现代软件工程的需求过程
第四章需求工程与需求管理的实现
需求工程与需求管理的概念-
需求开发阶段的需求管理-
需求实现阶段的需求管理-
需求变更控制管理-
第四部分现代软件工程的需求过程
需求工程与需求管理的概念
需求的噩梦
需求与需求管理的概念
现代软件工程的需求工程
传统软件工程的局限性
对大多数软件和系统开发团队来说,与过去自由的日子相比,20 世纪 90 年代是一个强调流程的时代。评测和验证有效的软件开发流程的标准得到推广和普及。许多论述软件开发流程的书籍和文献以及关于业务建模和重构的相关材料纷纷出版。不断涌现出的软件工具已经帮助人们制定和应用有效的软件开发流程。在这十年内,全球经济对软件的依赖程度加深,它推动着开发流程的发展,提高了系统质量。 既然如此,那么今天频频发生的软件项目失败的事件又如何解释呢? 即使不是大多数,但为什么仍有那么多的项目受到延期、预算超支和质量问题的困扰呢?随着我们的业务、国家经济和日常活动越来越依赖于系统,如何才能提高系统的质量?
需求工程与需求管理的概念
为什么要管理需求?
简单地说,系统开发团队之所以管理需求,是因为他们想让项目获得成功。满足项目需求即为成功打下了基础。若无法管理需求,达到目标的几率就会降低。
也就是说:好的需求管理是项目成功的第一位因素。采用需求管理可以给项目组带来很多的好处,直至项目取得成功。
Brooks[1987]:不能得到完整、正确以及无二义性的软件需求仍然是如今导致软件开发失败的一个重大原因
需求的噩梦
一组数字
据Standish Group(1994)的研究表明,在美国:
每年大约花2500亿美元,
另一方面:
大约31%的项目在完成之前被取消
%的项目成本是项目原来预算的189%
因此, Standish Group估计,美国公司和政府机构
在被取消软件项目上的花费,每年大约是810亿美元
同样,他们为超过交付时间而需要多支付590亿美元
软件开发的问题分类
1、需求规格说明 4、软件和测试
2、管理客户需求 5、项目管理
3、建档 6、编码
问题的重要性依次降低
ESPITI(欧洲软件过程改进培训倡议)(1995)所作的一个调查,3800个被调查者认为,软件开发的主要问题、次要问题和不是问题的问题如图。
一半以上的人认为,软件的二个最大问题是:
1、需求规格说明
2、管理客户需求
相对而言,编码不是问题
项目失败的根本原因
Standish Group的研究表明,对软件项目的评价因素,可以归纳为:
成功(大公司只占9%、小公司有16%)
有异议(推迟且没有达到预期的目标)
失败(取消)
而有异议的三个主要原因是:
1、缺乏用户的参与(占所有项目的13%)
2、不完整的需求和规格说明(占所有项目的12%)
3、不断改变的需求和规格说明(占所有项目的12%)
而其他因素,则比例较小,例如:
不合理的时间进度和时间分段(4%)
人和资源不足(6%)
技术技能不够(7%)
结论:1/3的项目直接与需求的获取、建档和管理有关
需求变化
合理范围内的变化:
用户不了解自己的需求
需求本身易变,市场、技术、竞争因素
不合理的变化:
需求文档质量不高
需求分析技能、技术和管理上的缺陷
需求变化的原因:
未受控制的需求变更
遗漏需求
用户交流不够
需求规约质量差
低效的需求分析