第一讲需求工程导论
- 格式:ppt
- 大小:2.41 MB
- 文档页数:74
第一章需求工程导论1.软件开发中碰到的需求问题的现象是什么?答:(1)用户参与度不够。
(2)高层管理支持力度不够。
(3)没有清晰的需求说明。
(4)没有清晰的目标和前景。
(5)期望不切合实际。
(6)需求变化影响。
(7)增加了无用的额外功能。
2.在需求处理当中要注意哪些非技术性因素,为什么?答:(1)需求处理的任务:需求处理的任务主要是发现问题并解决问题。
现实是问题的发生地,软件系统是人们应对问题的手段。
但是单纯的软件系统是不能解决问题的。
它只有和现实之间形成一种有效的互动才能解决问题。
(2)需求处理的手段:建模与分析技术是进行需求处理的主要手段,这些技术本身都是概念性的,不依赖于某些特殊的应用环境条件。
可以被广泛的应用于各种应用场景。
(3)需求处理的过程:试图单纯的通过技术的应用建立一个一致完整的需求模型是不太可能的。
因为在现实中,因涉众的不同立场而产生的利益冲突的场景非常常见。
这些冲突是根本无法通过技术手段所能解决的。
3.解释需求分析与需求工程之间的联系答:“需求工程”就是利用工程化的手段进行需求处理,以保证需求处理的正确进行,而“需求分析”是需求处理中的核心活动,他用一些形式化或半形式化的语言进行知识的分析,但是建立需求工程还离不开需求分析。
4.解释软件工程与系统工程之间的联系,这种联系对需求工程的工作有何影响?答:(1)系统工程通常是指计算机引入某一现实系统,并用他来改变现实系统的运作方式,达到一个理想效果的过程。
而且系统工程中除了含有处理系统的软件工程之外,还包括硬件工程和人力工程。
因此,在系统工程中,虽然应该重点关注软件工程部分的内容,但并不能完全以软件为中心来看待和处理整个系统。
(2)影响:系统需求开发的主要目的是获得整个系统的期望目标,包含功能特性和非功能特性。
因此需要判定系统的涉众,采集他们的目标与要求研究系统的环境确定系统的要求,并进行一些整体性的分析。
5.需求工程包括哪些活动?软件开发活动当中为什么要重视需求工程?答:需求工程包括(1)需求开发(2)需求管理。
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
需求工程通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。
[编辑] 需求工程是随着计算机的发展而发展的,在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。
后来软件开发引入了生命周期的概念,需求分析成为其第一阶段。
随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。
人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。
80年代中期,形成了软件工程的子领域——需求工程(requirement engineering,RE)。
进入90年代以来,需求工程成为研究的热点之一。
从1993年起每两年举办一次需求工程国际研讨会(ISRE),自1994年起每两年举办一次需求工程国际会议(ICRE),在1996年Springer-Verlag发行了一新的刊物——《Requirements Engineering》。
一些关于需求工程的工作小组也相继成立,如欧洲的RENOIR(Requirements Engineering Network of International Cooperating Research Groups),并开始开展工作。
需求分析是介于系统分析和软件设计阶段之间的桥梁。
一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。
良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。
[编辑] 需求工程(RE)可分为 1.系统需求工程(如果是针对由软硬件共同组成的整个系统) 2.软件需求工程(如果仅是专门针对纯软件部分)。
需求工程金芝中国科学院数学与系统科学研究院zhijin@本讲内容♦课程目的和背景♦教学和考试方式♦教学大纲和主要内容课程的目的♦了解需求工程中的研究和实践的现状⏹需求工程在软件和软件工程中的地位和角色⏹需求工程中当前常用的技术、方法和工具♦选择一种或多种需求工程技术,获得对这些技术的实践经验♦理解需求工程的基本本质♦获得对在需求工程领域进行进一步研究的背景知识⏹对需求工程研究的方法学的观点⏹该领域当前的研究的观点和方向⏹对相关文献的了解教学和考试方式♦每星期1 3小时的课(13个星期),其中:⏹1~2次文献阅读和课程设计⏹1次课程设计报告♦考试和评分⏹30%课堂学习、讨论、课程设计报告等⏹70%课程设计报告为什么需要需求工程?♦工程:有用的人工制品的构建,强调最终产品的实用性和目的性(而不是创造性,对比与艺术)♦需求:构造任何人工制品之前,首先要弄清楚的是——意图(为什么需要它)♦其它大部分工程学科都不需要需求工程♦软件工程的特殊性:如何配置通用的机器去实现特定的目的(产品是无形的,但是是有目的的)软件工程的特殊性带来对软件的意图的理解上的困难:软件问题往往包含了最复杂的难题现实世界也没有对之进行任何物理上的约束需求工程有多重要?♦需求工程是软件工程的根基,项目规模的大小决定错误的代价♦失败项目的例子:⏹Performing Rights Society(演出权益协会), PROMS项目,花费1100万英镑之后被放弃(1992年)。
其中糟糕的需求工程是项目失败的一个主要因素,包括未能以常人能够理解和检查的形式表达软件需求。
⏹Wessex Regional Information Systems Plan(地区信息系统), RISP项目,花费了4300万英镑之后被放弃(1990年)。
其主要原因包括缺乏对RISP项目范围的清晰定义。
⏹London Stock Exchange(伦敦股票交易), TAURUS项目,花费了7500万英镑后被取消(1993年)。
v v
v
v v v v
需求问题。
v
v
v
事出必有因,如果能先看到自己的不是,答案就会不一样。
!
v
v
v v
v
v
v
v
义)
v
v
v
分析)
v v
v v
v
1)忽视软件开发前期的需求分析;
2)开发过程缺乏统一的、规范化的方法论的指导;
3)文档资料不齐全或不准确;
4)忽视与用户之间、开发组员之间的交流;
5)忽视测试的重要性;
6)不重视维护或由于上述原因造成维护工作的困难。
v
v
“可靠的需求工程过程”是v
v
v需求的主要症状与本质分析v不同软件项目的需求视图
信息系统
v
v业务事件为中心
v Report为中心
v v
v
v
v
v v
v模型为中心
v决策模型为中心
v v v
v v v
ØØØ。
第一章:需求工程导论1.需求工程定义:是所有需求处理活动的和,它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终反映软件被应用后与其环境互动形成的期望效应。
2.需求工程的基本活动:1)需求开发:需求获取,需求分析,需求规格说明,需求验证2)需求管理3.1)需求获取的目的是从项目的战略规划开始建立最初的原始需求;2)需求分析的目的是保证需求的完整性和一致性;3)需求规格说明的目的是将完整、一致的需求与能够满足需求的软件行为以文档的方式明确地固定下来;4)需求验证的首要目的是保证需求及其文档的正确性,即需求正确的反映了用户的真实意图;另一个目标是通过检查和修正,保证需求及其文档的完整性和一致性;5)需求管理的主要工作是跟踪后继阶段中的需求实现与需求变更情况,确定需求得到了正确的理解并被正确的是想到了软件产品中。
4.软件需求规格说明定义:软件需求开发用来确定系统需求中应该由软件满足的部分,将其映射为软件行为,产生软件需求规格说明。
第二章:需求基础5.软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对问题域中的某些部分具有模拟特性。
6.需求分类:1)功能需求:业务需求,用户需求,系统需求2)性能需求3)质量属性4)对外接口5)约束第三章:(不考)第四章:需求获取概述7.需求工程需要获取的内容主要有三种:1)需求2)问题域描述3)环境与约束8.需求获取信息的主要来源:1)涉众2)硬数据3)相关产品4)重要文档5)相关技术标准和法规9.获取信息的方法:1)传统方法:问卷调查,面谈,文档分析,文档检查,需求剥离2)集体获取方法:头脑风暴,专题讨论会,JAD,JRP3)原型4)模型驱动方法:基于场景,基于用例5)认知方法:任务分析,协议分析6)基于上下文的方法:观察,民族志,话语分析10.常见的组织方式是依照系统特性,确定系统的边界,建立上下文图或系统用例图,然后按照遍历上下文图和系统用例图的方式开展获取活动.第五章:确定项目的前景和范围11.前景:描述了产品的作用以及最终的功能,它将所有涉众都统一到一个方向上。