第3章需求工程概论

第3章需求工程概论3.1 软件需求的概念

3.2需求工程的预备知识3.3需求工程的过程模型

3.1 软件需求的概念

●需求的任务:

?回答“系统必须做什么?”的问题

?What?

●软件需求的定义:

?是利益相关方(stakeholder,也称“筹码持有者”)

对目标软件系统在功能、质量等方面的期望,以及对目

标软件系统在运行环境、资源消耗等方面的要求或约束。

3.1.1软件需求的分类

?软件需求:

①功能需求

②质量需求

③约束性需求

质量需求和约束性需求可统称为非功能需求。

3.1.1 软件需求的分类

?功能需求:指利益相关方要求目标软件系统应该具有的功能。(主体)

◆如“制订选课计划”、“接收并处理传感器数据”等。?功能需求还包括软件系统在业务处理过程中完成这些功能

时必须遵守的约定或限制。

?质量需求:利益相关方对目标软件系统的质量要求。

◆性能:所有界面操作的响应时间小于1.5秒”、

◆可靠性:任何故障不可导致用户已提交的数据丢失”。

3.1 软件需求的概念

3.1.1 软件需求的分类

?约束性需求:利益相关方对目标软件系统在项目预算、完成时间、技术选型、遵循的标准与规范等方面提出的要求,以及由预期的开发、运行环境的特征而导致的针对目标软件系统的约束。

◆如家庭保安系统中可供软件使用的内存为1M、

◆必须采用特定的操作系统

3.1 软件需求的概念

3.1.2 软件需求的质量要素

?正确性包含真实性、一致性、精确性、无冗余四个质量指标。

?完全性指,所有需求项构成的全集完整地覆盖所有必须在目标软件产品中实现的利益相关方需求,不能遗漏重要或者紧迫的需求。

?可行性是指,在实际资源约束条件下,软件需求能够被完整实现的可能性。

3.2.1与用户交流的技巧

?利益相关方代表和需求工程师组成联合工作组?克服沟通障碍

?消弥利益冲突

3.2.2需求调查的基本方法

?访谈和会议

系统分析员将提出一些事先准备好的具体问题。

?调查问卷

经过仔细考虑写出的书面回答可能比被访者对问题的

口头回答更准确。

?业务文档分析

?现场观摩

3.2.3需求建模的基本方法

?抽象

?分解

?多视点分析

3.3.1 需求工程中的活动

●一个完整的需求工程过程一般包含以下活动:

?需求工程策划

?需求获取

◆需求获取的结果是软件需求的最初模型。

?需求分析

?需求规范化

?需求验证

?总结

图3.1 用UML活动图表示的需求工程过程的工作流图3.2 单次子过程中的缺陷追踪及返工

3.3.2迭代式的过程模型

?对于大中型软件项目,前述的单次需求工程过程几乎不可能获得完整的、高质量的软件需求。

图3.3迭代式的需求工程过程模型

3.3.2迭代式的过程模型

?进入每次迭代前,应检查入口条件是否满足、输入文档是否齐备。

?在完成每次迭代前,应检查出口条件是否达到、输出文档是否齐备并符合预定的质量标准。

?首次迭代的输入为有关项目目标、范围的陈述性文档;后续迭代时,输入文档还可以包括缺陷描述、待新增的需求项的概略性描述文档,或者需求变更申请书。

?需求获取活动必须针对前次迭代的工作成果、需求变更或缺陷报告进行理解和分析,由此导出新的需求获取动作。?在一次迭代完成后进入后续迭代的条件是,所有参与者对新需求的获取或针对已有需求的变更之必要性达成共识。

3.3.3过程模型的裁剪

?在实际的软件项目中,针对前述的迭代式过程模型可以进行因地制宜的裁剪或具体化。

(1)应用场景1

?对于小型软件项目或软件需求容易确立的项目,迭代仅需进行一次。

3.3.3过程模型的裁剪

(2)应用场景2

?如果一个软件能够分解成多个子系统,那么,针对各子系统的需求工程活动可以并行地在各自的迭代子过程中进行。?此前必须通过至少一个迭代子过程给出整个软件的概略性需求并确定分解结构;

?最后必须通过至少一个迭代子过程对各部分的需求进行整合并给出完整的软件需求规约。

图3.4系统分解后针对子系统并行迭代的需求工程过程模型示意图

3.3.3过程模型的裁剪

需求工程各阶段中的某些子活动可以并行开展

?如,可以将课程注册管理系统划分为面向学生、面向教师和面向教务管理员的三个子系统,安排三轮迭代分别针对它们进行需求获取和分析,最终整合为完整的需求规约。

3.3.3过程模型的裁剪

(3)应用场景3

?在本次迭代的需求验证阶段,如果发现了缺陷,或认为某些需求项需要新增或变更,可以形成缺陷分析报告或需求变更申请报告,以此为输入启动下次迭代。

?在迭代式过程模型中,缺陷更正和需求变更可以很自然地在后续迭代过程中实现。

图3.5 通过迭代支持缺陷更正和需求变更的需求工程过程模型

例3.1家庭保安系统需求工程过程

?成立由需求工程师和利益相关方代表组成的联合工作组?制定工作制度,如,每次会议开始前必须有确定的议程,参加者必须针对各项议程进行充分的准备,这种准备不仅是思想上的,还应形诸文字。

?经过数次会议讨论,明确待解软件问题的范围、业务背景,并就开发软件产品的必要性达成共识后,工作组负责人要求每位参加者列出应用问题及环境中有关的对象,这些对象所施行的操作以及对象间的相互作用。

这种列举不一定完全,但应尽可能全面地反映用户熟悉

的某个问题侧面。

需求工程课后重点答案解析

1.需求分析与系统设计之间的界限是什么?何时从分析阶段进入设计阶段? 需求分析关注系统“做什么”,系统设计关注“如何做”。 当分析阶段完成后才能进入到设计阶段 2.需求处理要注意哪些非技术因素?为什么? 要注意的非技术因素:组织机构文化、社会背景、商业目标、利益协商等。 因为利用建模与分析技术构建的解决方案一定要和具体的应用环境相关,不存在不依赖具体应用环境的解决方案,因此,在利用建模分析技术进行要求处理是不能忽视具体应用环境的相关因素 3.需求分析与需求工程之间的关系 那就是需求工程含义更广,包括需求获取、需求分析、需求定义 第二章: 1.解释名词:问题域,解系统和共享现象,并结合他们的含义说明软件系统如何与现实世界形成互动的 问题域:现实的状况与人们期望的状况产生差异就产生问题。 解系统:软件系统通过影响问题域,能够帮助人们解决问题称为解系统 通过共存现象仅仅是问题域和姐系统的一个部分。而不是他们的全部。 软件系统仅仅是现实世界的一种抽象。所以问题除了共享现象之外。还有很多在进行模型抽象时忽略的其他现实因素。 2.解释下列名词,需求,规格说明,问题域特性和约束,并结合他们的含义说明需求工程的主要任务是什么? 需求是用户对问题域中的实体状态或事件的期望描述 规格说明:规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。

问题域的特性:在和解系统相互影响的同时,问题域是自治的,它有自己的运行规律,而且这些规律不会因解系统的引入而发生改变,这种自治的规律性称为问题域特性,当这些特性非常明确时称之为约束。 需求工程的主要任务:1.需求工程必须说明软件系统将应用的环境及目标,说明用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用的方式、方法所施加的限制和约束。2需求工程必须将目标、功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明。3需求工程还要妥善处理目标、功能和约束随着时间的演化情况。 第三章: 一、.需求工程过程的工作基础(即输入)存在哪些?他的工作成果(即输出)有哪些?? 答:需求过程的工作基础是获取用户面临的业务问题,用户期望系统表现出来的各种行为,即需求获取 工作成果:产生一个能够在用户环境下解决用户业务问题的系统方案,并将其文档化为明确的规格说明。 二.、描述需求工程的各个活动,说明他们各自的工作基础,工作目标和工作成果 需求获取: 工作基础:1.收集背景资料2.定义项目前景和范围3.选择信息的来源4.选择获取方法,执行获取5.记录获取结果 工作目标:获取用户需求,了解用户在完成任务的时候遇到的问题与期望 工作成果:业务需求,项目的前景和范围,用户需求以及问题域的特征 需求分析: 工作基础:1背景分析 2.确定系统边界3.需求建模 4.需求细化 5.确定优先权 6.需求协商 工作目标:1.通过建模整合各种信息,是人们更好地理解问题 2.定义一个需求集合,能够为问题界定一个游戏的解决方案 工作成果:产生一个需求的基线集,它指定了系统或当前版本的系统开发需完成的任务 3.需求规格说明: 工作基础1.定制文档模板 2.编写文档 工作目标:为了系统涉众之间交流需求信息 工作成果:需求规格文档说明 4.需求验证 工作基础1.执行验证 2问题修改 工作目标:为了尽量不给设计实现测试后续开发活动带来不必要的影响。需求规格说明文档定义必须正确准确地反映用户的意图 工作成果:验证之后,问题得以修正 需求管理: 工作基础:1.建立和维护需求基线集2.建立需求跟踪信息 3进行变更控制 工作目标:保证需求作用的持续稳定和有效发挥 工作成果:需求管理会进变更控制和实现合理的变更请求 拒绝不合理的变更请求,控制变更的成本和影响范围 三、需求工程师需求具备的技能

需求工程第二章第三章作业

第二章 1.IEEE是怎样定义需求的? ①用户为了解决问题或达到某些目标所需要的条件或能力; ②系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力; ③对或中的一个条件或一种能力的一种文档化表述。 2.解释下列名词:问题域、解系统和共享现象,并结合它们的含义说明软件系统是如何与现实世界形成互动的。 解决问题必须涉及的事件和事物,将它们称为问题域。 软件系统通过影响问题域帮助人们解决问题,称之为解系统。 问题域与解系统能够形成互动的基础是解系统部分模拟了问题域,将这种模拟性成为共享现象。 通过共存现象仅仅是问题域和姐系统的一个部分。而不是他们的全部。软件系统仅仅是现实世界的一种抽象。所以问题除了共享现象之外。还有很多进行模型抽象时忽略的其他现实因素。 3.解释下列名词:需求、规格说明、问题域特性和约束,并结合它们的含义说明需求工程的任务是什么。 需求是用户对问题域中的实体状态或事件的期望描述。 规格说明是规定系统或部件的需求的文档。 问题域的背景信息被称为问题域特性,是既定事实,可以改善但不能忽视和违背。 约束是不受解系统影响,却会给解系统带来极大的影响的问题域特性。 需求工程的主要任务:1.需求工程必须说明软件系统将应用的环境及目标,说明用来达成这些目标的软件功能用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用的方式、方法所施加的限制和约束。2需求工程必须将目标、功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明。3需求工程还要妥善处理目标、功能和约束随着时间的演化情况。 4.需求有哪常见的类别?功能需求和非功能需求有什么差异? 功能需求、性能需求、质量属性、对外接口、约束 差异在于功能需求是软件需求中最常见和最重要的需求,可能占所有需求的90%以上。 5.描述业务需求、用户需求和系统级需求的区别和联系?

软件工程课后作业第三章

3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。 答:可以确定客户需求,帮助分析人员理解问题,评估可行性,协商合理的解决方法,无歧义的规约方案、确认规约以及将规约转换到可运行的系统时的管理要求。 3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么? 答:①需求获取:系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析。 ②需求分析与协商:需求获取结束后,分析活动对需求进行分类组织,分析 每个需求其它需求的关系来,检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。 ③系统建模:建模工具的使用在用户和系统分析人员之间建立了统一的语言 和理解的桥梁,同时系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。 ④需求规约:软件需求规约是分析任务的最终产物,通过建立完整的信息描 述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。 ⑤需求验证:作为需求开发阶段工作的复查手段,需求验证对功能的正确性、 完整性和清晰性,以及其它需求给予评价。 ⑥需求管理:需求工程包括获取、分析、规定、验证和管理软件需求,而“软 件需求管理”则是对所有相关活动的规划和控制。 3.3一个系统分析员应该具备哪些思想素质和基本知识?请说明理由。 答:①能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。 ②善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新 整理成为各种逻辑成分,并给出简明、清晰的描述。 ③善于从相互冲突或混淆的原始资料中抽出恰当的条目来。 ④善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条 件。 ⑤能够倾听他人的意见,注意发挥其它人员的作用。 ⑥具有良好的书面和口头交流表达能力。 3.4列出在制定需求或的策略时的3种主要考虑因素。 答:①功能需求。考虑系统要做什么,在何时做,在何时及如何修改或升级: ②性能需求。考虑软件开发的技术性指标。 ③用户或人对因素。考虑用户的类型。 3.5对于下面的每个场景,思考在需求获取器件什么是最有用的信息来源。(1)开发一个系统取代现有的销售订单处理系统。 (2)开发软件控制充当外科医生的机器人。 (3)开发软件操作出租车仪表。 (4)为国防部开发一个安全的战场通信系统。 3.6举例说明一个系统的3个不同类型的非功能需求。 3.7开发一个便利的应用规约技术(FAST)“工具箱”,该工具箱应该包括一组指导FAST会议的指南、可用于帮助床简历表的材料以及任何其他的可能对需求定义有帮助的事项。 3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? 答:所有的需求分析方法操作性原则:

习题-3-需求工程

第三章习题 一、选择题(单选题) 1.软件需求工程阶段的工作可以划分以下四个方面:对问题的识别、分析与综合、制定需 求规格说明和____。 A.总结 B.阶段性报告 C.需求分析评审 D.以上答案都不正确 2.各种需求分析方法都有它们共同适用的_____。 A.说明方法 B.描述方法 C.准则 D.基本原则 3.软件需求规格说明书的内容不应该包括对____的描述。 A.主要功能 B.算法的详细过程 C.用户界面和运行环境 D.软件的性能 4.需求分析产生的文档是____。 A.项目开发计划 B.可行性分析报告 C.需求规格说明书 D.软件设计说明书 5.需求分析中,分析人员要从用户那里解决的最重要的问题是____。 A.要让软件做什么 B.要给该软件提供什么信息 C.要求软件工作效率如何 D.要让该软件具有何种结构 6.需求规格说明书的作用不应包括_____。 A.软件设计的依据 B.用户与开发人员对软件要做什么的共同理解 C.软件验收的依据 D.软件可行性研究的依据 7.在结构化分析方法中,用以表达系统内部数据的运行情况的工具有_____。 A.数据流图 B.数据字典 C.结构化英语 D.判定树与判定表 8.需求分析最终结果是产生_____。 A.项目开发计划 B.可行性分析报告 C.需求规格说明书 D.设计说明书 9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层数据流图描述了系统的 _____。 A.细节 B.输入与输出 C.软件的作者 D.绘制的时间 10.一个局部数据存储当它作为____时就把它画出来。 A.某些加工的数据接口 B.某个加工的特定输入 C.某个加工的特定输出 D.某些加工的数据接口或某个加工的特定输入/输出 11.对于分层的数据流图,父图与子图的平衡是指子图的输入、输出数据流同父图的输入、 输出数据流_____。

软件需求工程课后作业答案解析

第一章 1.需求分析与系统设计之间的界限是什么?何时从分析阶段进入设计阶段? 需求分析关注系统“做什么”,系统设计关注“如何做”。 当分析阶段完成后才能进入到设计阶段 2.需求处理要注意哪些非技术因素?为什么? 要注意的非技术因素:组织机构文化、社会背景、商业目标、利益协商等。 因为利用建模与分析技术构建的解决方案一定要和具体的应用环境相关,不存在不依赖具体应用环境的解决方案,因此,在利用建模分析技术进行要求处理是不能忽视具体应用环境的相关因素 3.需求分析与需求工程之间的关系 那就是需求工程含义更广,包括需求获取、需求分析、需求定义 第二章 1.解释名词:问题域,解系统和共享现象,并结合他们的含义说明软件系统如何与现实世界形成互动的 问题域:现实的状况与人们期望的状况产生差异就产生问题。 解系统:软件系统通过影响问题域,能够帮助人们解决问题称为解系统 通过共存现象仅仅是问题域和姐系统的一个部分。而不是他们的全部。 软件系统仅仅是现实世界的一种抽象。所以问题除了共享现象之外。还有很多在进行模型抽象时忽略的其他现实因素。 2.解释下列名词,需求,规格说明,问题域特性和约束,并结合他们的含义说明需求工程的主要任务是什么? 需求是用户对问题域中的实体状态或事件的期望描述 规格说明:规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。 问题域的特性:在和解系统相互影响的同时,问题域是自治的,它有自己的运行规律,而且这些规律不会因解系统的引入而发生改变,这种自治的规律性称为问题域特性,当这些特性非常明确时称之为约束。 需求工程的主要任务:1.需求工程必须说明软件系统将应用的环境及目标,说明

相关主题
相关文档
最新文档