解决需求工程中的基本问题

原创 2002年09月12日 17:14:00

AmosJuly2002

解决需求工程中的基本问题

引言

当今,经济和社会生活对软件的依赖程度急剧增长,软件需求日益复杂,软件开发成为一项跨越技能,职责范围和时间阶段的综合团队活动。实践证明,良好的需求工程对于降低开发成本和保障项目成功至关重要。根据权威机构的统计,在全世界范围,仅有四分之一的软件开发项目能在规定的时间和预算内达到客户的目标。纵观这些项目成功的项目,过硬的需求工程是成功经验中少有的共通部分。

需求是系统或软件必须达到的目标和能力;开发团队的成功就是满足软件项目的需求。软件需求工程化问题有综合的内涵:包括基于问题的需求捕获、建立简单原型、建立分析模型、开发需求归约、相应的审核以及综合的管理。

国内的软件行业起步晚,起点高,任务急,时间短,在软件需求工程方面暴露出很多问题。千头万绪之中,首要的着力点应该落实在基础层面,具体讲有两方面问题:捕获方法(elicitation)和内容组织(specification)。解决基本问题不仅能够作到短期见效,而且为围绕需求问题的整体水平提升奠定坚实的基础

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

image002.gif

图表 1 软件需求工程总览

捕获方法

捕获需求就是引导客户说出他们想要的东西,并确认被记录下来的内容确实是他们想要的东西。如果需求的捕获方法选择不当或使用不当,通常会暴露出两方面问题。

第一,软件需求不能如实反映用户的真正需要。比较常见的一种误解是需求的简单和复杂程度决定了用户是否能够真正理解相应的内容:误认为客户只能看懂简单的需求,但是对开发没有直接帮助;只有复杂的需求才有用,但是大多用户又不可能看得懂。事实上,造成这类问题的主要原因是捕获的需求不能反映用户的视角,因而,用户站在自己的立场上很难判断需求是否完备和正确,特别是在开发活动的早期。

第二,软件需求不能被开发团队的不同工种直接共用。理论上,开发团队所有成员的工作内容都受软件需求制约;现实中,如果不采用理想的需求捕获方式,只有分析人员的工作看起来和软件需求的内容直接关联,其它人的工作内容和软件需求的关联并不直观,形式上的差异或转述往往不易察觉地造成了诸多歧义、冗余或者缺失。

Use Case作为软件需求的捕获方法,在利用的当的情况下,能够很好地解决以上两方面问题。

第一,Use Case是软件需求的载体,也是和用户关于软件需求进行讨论的沟通方式,Use Case方法的最大特色就是充分反映软件使用者的视角。以Use Case方法组织的需求内容既有一目了然的图形,又有深入细致的文字描述,从宏观到微观,无论繁简,都能反映出用户的视角,因而能够被用户充分的理解。换言之,用户有可能判断被捕获的软件需求是否能够满足他们的真正需要,从而加速双方在早期达成共识。参见下图。

 

image004.gif

图表 2 Use Case图形描述示意

第二,基于Use Case组织的软件需求具有显著的外向型特征,是高度可复用的劳动成果。Use Case支撑分析人员帮助用户理解系统能做些什么,帮助设计人员在适中的问题范围内识别基本元素的行为,帮助项目经理预测开发任务的工作量,为测试活动和用户文档编辑提供了直接可用的依据和蓝本。参见下图。

 

image006.jpg

图表 3 Use Case内容被多工种直接共用

内容组织

需求内容的具体组织形式主要针对软件需求归约(SRS),存在两个比较突出的问题。

第一,不符合国际通行的规范。主要症状表现为需求内容的层次不清晰,往往是庞杂软件需求细节的简单堆砌,很难从高层次上理解软件产品“为什么做和做什么?”。

第二,与软件需求归约相关的流程指导薄弱。一方面,获得高质量软件需求归约过分依赖于分析师自身的经验,限制了并行开发需求内容的可行性;另外,面对有价值的软件需求内容,团队成员并不能充分地利用。

Rational Unified Process作为软件开发流程的行业事实标准,其成熟的文档体系及其相应的流程辅导,在利用的当的情况下,能够很好地解决以上两方面的问题。

第一,Rational Unified Process中的软件需求归约符合国际规范IEEE830-1998,内容划分为概述、总体说明,详细说明和支持信息等几部分,各个部分内容之间层次分明、关联清晰。以Use Case描述的功能需求被平滑地融合在软件需求归约当中。于此同时,Rational Unified Precess为软件需求归约的编制提供了详细的指南和检查点,能够保障协同作业的质量。参见下图。

 

image008.jpg

图表 4 与软件需求归约相关的指导

第二,围绕软件需求归约,Rational Unified Process提供了丰富的流程指导。软件需求归约的基本内容取材于“涉众请求”,确保需求内容反映使用者的要求;软件需求归约的指导原则依据“前景”,确保具体内容和高层定位吻合;软件需求归约的文字描述严格遵守“词汇表”,屏蔽来自微观层面的歧义。在Rational Unified Process中,软件需求归约的内容作为软件开发计划、软件构架文档、分析模型、设计模型和测试模型的直接依据,流程不仅描述这些关键工件之间的关联,而且对于内容的映射和转换给出了具体的建议和验证点。参见下图。

 

image010.jpg 

图表 5 Rational Unified Process 的成熟文档体系

总结

需求的捕获方法和内容组织是需求工程中的基础问题,相应的工作内容体直接反映件需求的核心价值,也为展开和完成需求工程中其它任务建立了良好开端。在基础问题没有得以解决之前盲目强调所谓的“管理”只可能作一些表面文章,甚至适得其反。

当然,能解决问题的办法并不唯一,本文介绍的方案具有深厚的底蕴,是基于Rational Software专注软件工程领域二十多年所积累的最佳经验,更是被行业接受的主流方向。

 

 

数据链路层的有那三个基本问题?为什么都必须加以解决?

数据链路层的有那三个基本问题?为什么都必须加以解决? 数据链路层的三个基本问题:封装成帧、透明传输、差错检测。 ⑴封装成帧就是在一段数据前后分别添加首部和尾部。接收端以便从收到的比特流中识别帧的开...
  • u011329762
  • u011329762
  • 2014年10月28日 07:43
  • 10030

计算机网络的数据链路层的三个基本的问题

1.封装成帧     指的是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。 2.透明传输。     帧的开始和结束的标记是使用专门指明的控制字符。如开头用SOH,结尾用EOT。 3....
  • yt2054
  • yt2054
  • 2016年04月20日 17:00
  • 176

数据链路层—三个基本问题

本文主要介绍数据链路层传输数据需要注意的最基本的三个问题  当我们需要传输数据的时候,我们应该这考虑:首先,将数据封装成帧(帧是数据链路层的基本单位),考虑去怎么封装,才能让接受端识别一个完整的帧,...
  • nineteen_
  • nineteen_
  • 2015年11月24日 17:47
  • 2014

数据链路层的三个问题

今天学习了关于数据链路层的知识,数据链路层使用的信道主要有以下的两种类型: 1. 点对点信道。这种信道使用一对一的点对点信道方式。 2. 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复...
  • qq_26768741
  • qq_26768741
  • 2017年03月01日 19:05
  • 785

软件需求工程(摘抄)

1、需求获取 可以通过用户访谈,问卷调查,采样,清洁串联板,联合需求计划,需求记录技术 2、需求分析 2-1、结构化分析方法 通过数据流图,状态转换图,数据字典 2-...
  • define_us
  • define_us
  • 2016年04月26日 21:49
  • 241

软件需求和需求工程

一、软件需求的定义      在IEEE软件工程标准词汇表(1997年)中定义软件需求为:  (1)用户解决问题或达到目标所需的条件或能力。  (2)系统或系统部件要满足合同、标准、规范或其它正式规定...
  • kaffeel
  • kaffeel
  • 2010年04月04日 18:56
  • 2166

学术笔记·计算机领域的若干个基本问题·十二

计算机领域的若干个基本问题·十二 1、computer一种现代化的信息处理工具 信息:人根据需要对数据的抽象 数据:对象的表示 处理:变化(transformation) 工具:(equip...
  • a1456123a
  • a1456123a
  • 2017年04月02日 22:00
  • 241

面向目标的需求工程方法

KAOS是一种面向目标的需求工程方法,可以对系统进行需求建模和分析。本文将描述使用KAOS对网上预约挂号系统进行目标建模的过程和结果。...
  • EdithXing
  • EdithXing
  • 2017年01月05日 22:36
  • 1918

软件需求工程--KAOS建模

1.(10%)说明你目前研究的系统的问题描述(参考附件第11页) 研究的系统是教学楼中放置的自动咖啡贩卖机系统。该系统的工作流程是,首先用户通过点击贩卖机上的触摸屏选择购买的咖啡种类,然后根据提示完成...
  • u011281853
  • u011281853
  • 2017年01月05日 20:25
  • 644

软件需求工程课程总结

软件需求工程课程的小结: Topic 1:Systematic Literature Review Topic 2:Game about Potential Threat Topic 3:Goal-o...
  • u011441843
  • u011441843
  • 2017年01月06日 21:11
  • 142
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决需求工程中的基本问题
举报原因:
原因补充:

(最多只允许输入30个字)