background image

软件工程中的需求分析

   摘要:软件工程中包含需求、设计、编码和测试四个阶段,其中,软件工程第一个也是很
重要的一个阶段是需求工程,需求分析又是需求工程中重要的一环。它是指理解用户需求,
就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复
杂过程,决不是软件工程中最简单的一个步骤,它包括需求的获取、分析、规格说明、变更、
验证、管理的一系列需求工程。本文就需求分析在软件工程中的作用,层层剥离,深入浅出,
进行了粗浅层次的探讨。

 

  关键词:软件工程;

CMM;需求管理;需求分析 

\  

“软件工程”这个名词是 1968 年美国和西欧的一些科学家在 NATO(北大西洋公约组

织)会议上第一次提出的,是利用工程学的方法开发和维护计算机软件的一门学科。本篇论
文粗浅分析的是软件工程中的需求分析。

 

  软件开发由需求分析、概要设计、详细设计、编码、软件测试、项目维护和软件集成几部分
内容组成。英文中有个全称为

CapabilityMaturityModelforSoftware,缩写为 SW-CMM,简称

CMM,用汉语表达出的意思就是

——“能力成熟度模型”,也就是对于软件组织在定义、

实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。软件开发被

CMM 的核心

视为一个过程,并根据这一核心原则对其进行过程监控与研究,目的是更加科学化、标准化,
在监督过程中发现影响项目的关键问题并予以解决,使企业能够更好地实现商业目标。软件
开发人员开发和维护软件及相关产品的一套行为、方法、实践及变换过程被定义为软件过程,
它包括软件开发过程和软件管理过程。

CMM 把软件开发机构按照不同开发水平划分为 5 个

级别,每个等级被分解为几个

KPA(关键过程域),KPA 是指在某个成熟度等级应重点关

注的区域,也是达到此成熟度等级必须解决的关键点。在

CMM 中成熟度第二等级有 6 个关

键过程域,主要涉及建立软件项目管理控制方面的内容。即:需求管理(

RM)、软件项目

计划(

SPP)、软件项目跟踪与监控(SPTO)、软件子合同管理(SSM)、软件质量保证

SQA)、软件配置管理(SCM)。 

  软件项目管理中还有一个非常关键的步骤

——需求管理。对于计算机系统的认识,很多

用户有很多盲区,对于系统的具体需求往往也比较模糊,经常出现疏漏或者是错误的问题
随着项目的进展,凸现的会愈发明显。对于开发人员来说,软件产品的部分内容必须重新开
发,这就意味着需求的变更。而对于整个软件项目管理而言,势必要重新分配资源、调整计
划、估算成本等等。需求分析的完整与否可以控制软件质量、决定项目周期、增减项目成本。故
而:需求管理工程越来越成为热点。

 

  需求获取的正确性和有效性要求很高:角色的专业化、业务创新的复杂、交付速度等等。
有时缺少特定需求的某些信息。在解决这个不确定性之前,可能必须与客户商议,检查与另
一个系统的接口或者定义另一个需求。使用

“待确定”符号作为标准指示器来强调软件需求规

格说明中的这些需求的缺陷。

 

  设计一个软件应用系统的起点与基本依据是需求分析。对用户来讲最重要的是有效性,
高效性,灵活性,完整性,互操作性,可靠性,健壮性,可用性。对开发者来说最重要的是
可维护性,可移植性,可重用性,可测试性。在属性取舍方面,用户和开发者必须确定属性
优先级,做决策时始终遵照优先级,为了达到产品特性的最佳平衡,必须在需求获取阶段
识别,确定相关的质量属性并为之确定优先级。当为项目定义重要属性时利用属性间正负关
系图可防止发生与目标冲突的行为。通常一个软件项目合同的签订,体现的可能是整个系统
的目标需求,面向用户的需求往往被忽略,对于这种情况一定要注意需求更改的可控性。任
何一个需求分析因客观原因可能存在着需求更改的现象,要使受需求变化影响的产品与需
求变更一致,就要建立需求的基准版本和更改版本,真正了解用户想要解决的实际问题,