软件工程概论-4需求过程
在软件开发过程中,软件需求是决定软件开发成功的一个关键因素。通常软件需求可以划分为以下几个类型:
(1)业务需求:组织或客户对于系统的高层次目标要求,定义了项目的远景和范围,即确定软件产品的发展方向,功能范围,目标客户和价值来源。
(2)用户需求:从用户角度描述的系统功能需求和非功能需求通常只涉及系统的外部行为,不涉及系统的内部特性。
(3)功能需求:描述系统应该提供的功能和服务,通常涉及用户或外部系统与该系统之间的交互。
(4)非功能需求:从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
(5)系统需求:详细地描述系统应该做什么,通常包括许多分析模型,诸如对象模型,数据模型和状态模型等。
需求工程过程为:1.需求获取 2.需求分析 3.需求规格说明 4.需求验证 5.需求管理:(1)需求变更控制(2)需求文档的版本控制(3)需求跟踪(4)需求管理工具。
为了更好地理解用户的要求,可以采用以下几种不同的技术进行需求获取:
(1)面谈:一种非常重要和直接的需求获取方法,实际上是一种任何情况下都可以使用的简单而直接的方法。
(2)需求专题讨论会:需求获取的一种最有力的技术,项目的主要风险承担人在短暂而紧凑的时间段内集中在一起,与会者可以在应用需求上达成共识,对操作过程尽快取得统一意见。
(3)观察用户工作流程:分为被动观察和主动观察两种形式。
(4)原型化方法:通过使系统或者系统一部分可视化以获得客户的反馈,从而有效地解决在软件开发的早期阶段需求不确定的问题。
(5)基于用例的方法:以任务和用户为中心,可以使用户更清楚地认识到新系统允许他们做什么,有助于开发人员理解用户的业务和应用领域,并可以运用面向对象分析和设计方法将用例转化为对象模型。