需求工程导论 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章需求工程导论

1.软件开发中碰到的需求问题的现象是什么

答:(1)用户参与度不够。(2)高层管理支持力度不够。(3)没有清晰的需求说明。(4)没有清晰的目标和前景。(5)期望不切合实际。(6)需求变化影响。(7)增加了无用的额外功能。

2.在需求处理当中要注意哪些非技术性因素,为什么

答:(1)需求处理的任务:需求处理的任务主要是发现问题并解决问题。现实是问题的发生地,软件系统是人们应对问题的手段。但是单纯的软件系统是不能解决问题的。它只有和现实之间形成一种有效的互动才能解决问题。

(2)需求处理的手段:建模与分析技术是进行需求处理的主要手段,这些技术本身都是概念性的,不依赖于某些特殊的应用环境条件。可以被广泛的应用于各种应用场景。

(3)需求处理的过程:试图单纯的通过技术的应用建立一个一致完整的需求模型是不太可能的。因为在现实中,因涉众的不同立场而产生的利益冲突的场景非常常见。这些冲突是根本无法通过技术手段所能解决的。

3.解释需求分析与需求工程之间的联系

答:“需求工程”就是利用工程化的手段进行需求处理,以保证需求处理的正确进行,而“需求分析”是需求处理中的核心活动,他用一些形式化或半形式化的语言进行知识的分析,但是建立需求工程还离不开需求分析。

4.解释软件工程与系统工程之间的联系,这种联系对需求工程的工作有何影响

答:(1)系统工程通常是指计算机引入某一现实系统,并用他来改变现实系统的运作方式,达到一个理想效果的过程。而且系统工程中除了含有处理系统的软件工程之外,还包括硬件工程和人力工程。因此,在系统工程中,虽然应该重点关注软件工程部分的内容,但并不能完全以软件为中心来看待和处理整个系统。

(2)影响:系统需求开发的主要目的是获得整个系统的期望目标,包含功能特性和非功能特性。因此需要判定系统的涉众,采集他们的目标与要求研究系统的环境确定系统的要求,并进行一些整体性的分析。

5.需求工程包括哪些活动软件开发活动当中为什么要重视需求工程

答:需求工程包括(1)需求开发(2)需求管理。需求开发要包括(需求获取、需求分析、需求规格说明、需求验证)

重视需求工程的原因:(1)需求问题是当前软件开发面临的主要问题(2)需求分析是软件开发中的理论约束,他控制着整个软件开发的工程走向。它是非技术人员和技术人员的工程纽带。

6.需求工程师需要具备哪些知识或技能

答:(1)交流技能(2)观察技能(3)抽象分析与问题解决技能(4)写作技能(5)关系协调和团队工作技能。

第二章需求基础

是怎样定义需求的

答:(1)用户为了解决问题或达到某些目标所需要的条件或能力;(2)系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需具备的条件或能力;(3)对(1)或(2)中的一个条件或一种能力的一种文档化表述。

2.解释下列名词:问题域、解系统和共享现象,并结合他们的含义说明软件系统是如何与现实世界形成互动的

答:问题域:问题的发生地,问题的发生范围及解决问题必须涉及的事件或事物。

解系统:软件系统通过影响问题域帮助人们解决问题被称之为解系统。

共享现象:解系统可以对问题域进行模拟的现象称为共享现象。

(2)共享现象是解系统所模拟的问题域的部分,该部分在两个系统中同时存在。除了共享现象外,问题域还有一些没有被解系统模拟的知识,因为在现实世界非常复杂,不可能也没必要在解系统中完全重现。除了包含共享现象的知识模型之外,解系统也有一些并非来自于现实模拟的特征,例如数据库管理系统的选择、模型的规范化、索引的建立等,这些因素并不对应与问题域知识,确是解系统必不可少的部分。

3.解释下列名词:需求、规格说明、问题域特性和约束,并结合他们的含义说明需求工程的主要任务是什么

答:需求:用户为了解决问题或达到某些目标所需要的条件或能力;系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需具备的条件或能力。

规格说明:因为解决方案以对外交互的方式定义了软件的系统功能,所以解决方案被称为软件系统的需求规格说明。

问题域特性和约束:问题域的背景信息又被称为问题域特性而约束是不受解系统影响,却会给解系统带来极大影响的问题域特性。

需求工程的主要任务是解决问题、改善现实、满足用户期望的条件与能力。

4.需求有哪些常见的类别功能需求和非功能需求有什么差异

答;(1)业务需求(2)用户需求(3)系统级需求

差异:功能需求是用户对软件系统的显示要求,用户在软件系统创建之前就可以向开发者表达这种要求。非功能需求属于隐式要求,用户在系统创建之前无法清晰的告诉开发者他们希望该系统具备什么样的功能性特征。

5.描述业务需求、用户需求和系统级需求的区别与联系

答:区别:业务需求是针对整个业务的期望,用户需求是针对具体任务的期望,系统级需求是针对用户与系统的一次交互的期望。

联系:他们都是问题解决的期望,只不过是不同抽象层次罢了。

6.优秀的需求特性有哪些请为每一个特性都举出一个不符合的事例

(1)完备性eg:在收银员输入商品时,系统显示商品信息。而不是商品价格。

(2)正确性eg:用户的问题是A,但用户认为提供了方法B,则问题A自然可以得到解决,为此用户向需求工程师反映的便是B,而不是真实的A。

(3)可行性eg :用户并不了解软件系统构建的相关技术知识,所以用户可能会提出一些已有软件技术无法实现的期望。

(4)必要性eg:用户在交流中总是害怕信息有所遗漏,并因此产生不利后果,因此用户总是倾向于表达各种各样的需要,但是多种需要并没有必要。

(5)无歧义性eg:用户可能在可能需求或者重大需求上采用,大概可行,差不多等词汇造成歧义。

(6)可验证性eg:如果需求不可验证,无法判断完成的系统是否满足了该需求。

第三章

1.需求工程过程的工作基础(即输入)有哪些他的工作成果(即输出)有哪些答:输入:系统的业务需求,系统的用户需求,用户的期望。

输出:项目前景和范围文档,用户需求文档,需求规格说明文档。

2.描述需求工程的各个活动,说明他们各自的工作基础、工作目标和工作成果。

(1)需求获取:(收集背景资料,获取问题与目标),(定义项目前景与范围),(记录获取结果)

相关文档
最新文档