1、需求工程过程概念介绍工具
(一)概述测试
1.规格说明优化
需求工程过程是系统开发中需求开发活动的集成,它以用户所面临的业务问题为出发点进行分析和各类转换,最终产生一个能在用户环境下解决用户业务问题的系统方案,并将其文档化为明确的规格说明。spa
2.生命周期设计
需求工程也有属于它本身的生命周期模型,即存在针对需求开发的需求工程过程,这个过程又做为系统工程和软件工程的一个子过程部署在系统开发的初期阶段。版本控制
3.活动分类排序
需求获取、需求分析、需求规格说明、需求验证为需求开发活动,需求管理为项目管理活动。生命周期
(二)需求开发活动成果文档类型简述项目管理
1.项目前景和范围文档开发
定义系统业务需求,明确系统开发的努力方向和工做范围。
2.用户需求文档
定义系统用户需求,以用户立场表达行为指望。例如,用例文档就属于用户需求文档中的一种。
3.需求规格说明文档
定义系统的系统级需求,指出开发者应该完成的任务。需求规格说明文档按照需求范围大体能够分为如下两类:
(1)系统规格说明文档
定义软、硬件需求、其余需求。
(2)软件规格说明文档
仅仅用于描述软件需求。
(三)系统开发后续阶段
在全部的系统开发活动结束以后,定义良好的需求被转入系统开发的后续阶段——设计、实现和测试等,这时每每会面对一个重要问题——需求变化。所以,在需求开发结束以后,在后续阶段中采起有效的方法统一管理开发的需求和需求变化,进行需求管理和变化控制。
2、需求工程过程分步介绍
(一)需求获取
需求获取主要包含五个步骤:
收集背景材料->获取问题与目标,定义项目前景与范围->识别涉众,选择信息的来源->选择获取方法,执行获取,获取功能与非功能要求->记录获取结果。
下面对每一个过程的注意事项进行简要介绍:
1.收集背景材料
此阶段主要是经过与用户交流,发现用户的问题,通过需求分析步骤转化为用户的需求。
2.获取问题与目标,定义项目前景与范围
需求获取中面对的信息比较普遍,所以,为保证获取信息的有效性须要保证:
(1)不在无关内容上花费太多时间。
(2)不遗漏应该获取的重要内容。
3.识别涉众,选择信息的来源
此过程将涉及众多用户的需求采集,可是为了便于实现和收集信息的准确性,须要将用户按角色不一样进行大体分类,分类后选择用户表明尽量采集到全面的信息。这个过程叫作“涉众分析”。
4.选择获取方法,执行获取,获取功能与非功能要求
需求获取有许多技巧与方法,利用表单、报表、备忘录等硬数据进行需求获取,经常使用的获取方法还有面谈、调查表、观察和原型等。应该根据实际场景和业务类型选择合适的采集方法。
5.记录获取结果
对以上获取到的信息,须要对每一个阶段进行记录,以便后期进行分析和处理,所以,获取笔录记录的内容每每具备凌乱、模糊、冗余和遗漏等诸多问题。
(二)需求分析
其主要工做为经过建模来整合各类信息、检查需求中存在的错误、遗漏和不一致等各类缺陷,并加以修正。这其中主要包含了六个方面的内容:
背景分析->问题分析、目标分析、业务分析,肯定系统边界->软件需求建模->细化需求->肯定优化级->需求协商。
1.背景分析
主要适用于大规模的系统中,由于系统环境难以梳理,此时就须要进行背景分析。例如,领域分析、企业建模等。
这个步骤在通常的项目中被省略,以避免花费太多没必要要的精力。
2.问题分析、目标分析、业务分析,肯定系统边界
系统边界须要保证系统可以和周围环境造成有效互,而且在互动中解决用户问题,知足业务需求,这些都将依赖于分析技术与方法的使用。例如,系统用例图和上下文图。
3.软件需求建模
为了展示和解释信息而进行的抽象描述活动,经常使用技术包括数据流图、实体关系图、状态转换图、类图等半形式化建模技术。须要注意的是,对于一些要求严格的项目(医疗器械控制),还须要利用严格形式化的技术进行建模。例如,Z模型。
4.细化需求
对于有模糊、有歧义的用户需求,经过系统建模,转化为一些有良好粒度和特性的需求细节,即“系统型需求”。
5.肯定优化级
对于用户众多的需求,需求工程师须要对需求进行排序。
6.需求协商
当用户需求出现冲突时,须要与用户进行协商,对冲突的需求进行选择。
(三)需求规格说明
1.定制文档模板
一般组织会参考[IEEE 1998]推荐的规格说明文档,再根据本身的特色和须要进行调整,创建组织的参考模板。
2.编写文档
通常会同时使用模型语言(图形、表达式等)和天然语言(文本)两种表达方式,以确保文档内容准确、易读。
(四)需求验证
验证需求说明文档是否知足如下标准:
l 真实反映用户意图
l 记录的需求总体上具备完整性和一致性
l 组织方式和书写方式具备可读性和可修改性
需求验证主要包含如下任务:
1.执行验证
最好采起同级评审,若是必要的话,可采起原型或模拟但代价较高。
2.问题修正
对发现的问题,在验证以后须要及时修正。并对修正进行跟踪,以保证修正的落实。
(五)需求管理
在需求开发创建需求基线,在设计、实现等后续活动中处理来自客户、管理层、营销部门及其余涉众群体的变动需求。需求管理在项目的各项管理活动中具备很是重要的做用,CMMI(capability Maturity Model Integration,软件能力成熟度模型集成)将其做为全部二级成熟度企业都应该具有的一个关键过程域。
主要包含如下任务:
1.创建和维护需求基线集
创建良好的配置管理,对需求基线进行版本控制。首先要标识每项需求,记录相关属性。基线的版本控制工做可使用版本管理工具来进行。
2.创建需求跟踪信息
系统的可跟踪性要求以系统级需求为出发点进行双向跟踪。
(1)后向跟踪
跟踪系统级需求被设计、实现为何制品,并回溯到每一个设计、实现制品是为什么而存在。
(2)前向跟踪
回溯每一个系统级需求是为支持哪些用户需求及业务需求存在。
3.进行变动控制
需求基线创建以后,仍应该积极接受来自外界的需求变化请求,并做出及时调整与反馈。