软件需求工程
软件需求工程

软件需求工程软件需求工程是指在软件开发过程中对软件需求进行系统化、规范化的管理和处理的过程。
它包括软件需求的获取、分析、规范化、验证和管理等环节。
在整个软件开发生命周期中,软件需求工程起着至关重要的作用,它直接影响到软件开发质量和项目进展。
一、软件需求工程的定义软件需求工程是指在软件开发过程中对软件需求进行系统化、规范化的管理和处理的过程。
它包括软件需求的获取、分析、规范化、验证和管理等环节。
软件需求工程的目标是确保软件开发团队理解用户需求,并能够根据用户需求开发出满足其期望的软件产品。
二、软件需求工程的重要性软件需求工程在软件开发过程中具有重要的地位和作用,主要体现在以下几个方面:1. 确保项目顺利进行:软件开发过程中,需求不明确或者需求变更频繁往往会导致项目进展受阻。
通过对软件需求进行有效的工程化管理,可以确保项目按计划进行,减少开发过程中的不确定性。
2. 提高软件质量:软件需求工程能够对软件需求进行全面、准确的描述和规范化处理,使开发团队对用户需求有明确的认识。
这样可以避免开发过程中的误解和偏差,从而提高软件的质量和用户满意度。
3. 降低开发成本:软件需求工程能够在软件开发初期就发现和解决潜在的问题,避免在后期进行大幅度的修改和调整。
这样可以降低开发成本,并节约开发团队的时间和资源。
4. 加强项目管理:软件需求工程作为软件开发的基础,能够帮助项目经理对项目进展、人力资源和进度进行有效的管理。
通过对软件需求的追踪和管理,项目经理能够及时发现问题并做出相应的调整和决策。
三、软件需求工程的主要过程软件需求工程包含以下主要过程:1. 需求获取:通过与用户交流、访谈、需求调研等方式,获取用户的需求信息。
需求获取是软件需求工程的第一步,也是最关键的一步,它直接关系到后续工作的开展和软件开发质量。
2. 需求分析:在需求获取的基础上,进行需求分析工作,主要包括需求划分、需求描述、需求模型化等。
通过需求分析,将用户需求转化为开发团队所理解的形式,为后续的开发工作提供参考依据。
软件工程与需求工程

软件工程与需求工程引言软件工程和需求工程是软件开发过程中的两个重要概念。
软件工程是一门综合性学科,涉及软件开发生命周期的各个阶段。
需求工程是软件工程的一个重要组成部分,它关注于收集、分析、规范和管理软件项目的需求。
本文将介绍软件工程和需求工程的概念、目标、关键任务和发展趋势。
软件工程概述软件工程是指将工程原则应用于软件开发和维护的过程。
其目标是通过系统化和标准化的方法来设计、实现、测试和维护高质量的软件产品。
软件工程包括多个阶段,如需求分析、设计、编码、测试和维护。
它的核心是确保软件的质量、可靠性和可维护性。
软件工程的关键任务包括需求工程、软件设计、软件构建、软件测试和软件维护。
其中,需求工程是软件开发过程中的第一步,它关注于获取和明确用户的需求,并将其转化为可量化和可测试的软件功能和性能要求。
需求工程的目标是确保软件项目的成功与满足用户的期望。
需求工程概述需求工程是软件工程的一个重要组成部分,它是软件开发过程中的一个关键环节。
需求工程的目标是确保软件项目满足用户的需求,同时满足工期和成本的要求。
需求工程的主要任务包括需求收集、需求分析、需求规范和需求验证。
需求收集是指通过与用户和相关利益相关者进行交流和沟通,收集和理解他们的需求。
需求分析是在需求收集的基础上,对需求进行深入分析和抽象,以确定软件项目必须满足的功能和性能要求。
需求规范是在需求分析的基础上,将需求规范化和形式化,以便软件开发团队理解和实现。
需求验证是指验证软件开发过程中所产生的软件系统是否满足用户的需求。
软件工程与需求工程的关系软件工程和需求工程是紧密相关的概念,两者相互依赖。
软件工程是一个包含多个阶段的过程,而需求工程是其中的一个重要环节。
需求工程是软件工程的第一阶段,它的目标是确定软件项目的需求,为后续的设计、编码、测试和维护提供基础。
软件工程其他阶段都以需求工程的结果为基础进行工作。
需求工程的目标是确保软件项目满足用户期望,而软件工程的目标是确保整个软件开发过程的质量和可靠性。
软件需求工程实验报告

软件需求工程实验报告软件需求工程实验报告摘要:本篇实验报告旨在介绍软件需求工程的基本概念、方法和实践过程。
通过对需求工程实验的设计和执行,我们深入了解了需求工程的重要性和应用价值。
本实验以一个虚拟的在线购物平台为例,通过需求分析、需求建模、需求验证等环节,详细描述了软件需求工程的实践过程,并总结了实验中遇到的问题和解决方案。
1. 引言软件需求工程是软件开发过程中至关重要的一环。
它旨在明确用户和系统之间的需求,为软件开发提供明确的目标和方向。
本实验以一个在线购物平台为例,通过需求工程的实践过程,展示了如何从用户需求到系统需求的转化过程。
2. 需求分析需求分析是软件需求工程的第一步。
通过与用户的沟通和交流,我们了解到用户对于在线购物平台的期望和需求。
在需求分析阶段,我们采用了面谈、问卷调查等方法,收集了用户的意见和建议。
通过分析用户需求,我们确定了在线购物平台的基本功能和特性。
3. 需求建模需求建模是将用户需求转化为系统需求的过程。
在本实验中,我们采用了用例图、活动图和类图等建模工具,对在线购物平台的功能和流程进行了详细描述。
通过用例图,我们清晰地展示了用户和系统之间的交互关系。
通过活动图,我们详细描述了用户在购物平台上的操作流程。
通过类图,我们定义了系统中各个对象的属性和行为。
4. 需求验证需求验证是确保需求的正确性和完整性的过程。
在本实验中,我们通过模拟用户操作和系统响应,验证了在线购物平台的功能和性能。
我们对系统进行了功能测试、性能测试和用户体验测试等,确保系统能够满足用户的需求和期望。
通过需求验证,我们发现了一些问题和不足,并及时进行了修正和改进。
5. 实验总结通过本次实验,我们深入了解了软件需求工程的实践过程和方法。
通过需求分析、需求建模和需求验证等环节,我们成功地将用户需求转化为系统需求,并验证了系统的功能和性能。
在实验过程中,我们也遇到了一些问题和挑战,但通过团队合作和不断努力,我们最终解决了这些问题,并取得了令人满意的结果。
软件工程需求工程基础知识

软件工程需求工程基础知识软件工程是一门综合性的学科,其中需求工程是软件开发过程中至关重要的一部分。
在软件工程领域,需求工程基础知识的掌握对于确保软件项目成功和满足用户需求至关重要。
本文将介绍软件工程需求工程的基础知识。
一、需求工程的定义和重要性需求工程是通过与相关利益相关方沟通、分析和建模,以及定义软件需要满足的功能和性能等客观和主观需求的过程。
在软件开发过程中,需求工程是确保软件项目成功和满足用户需求的关键环节。
需求工程的目标是建立正确、一致、可追溯和可验证的需求规格说明,以确保软件开发团队理解用户需求,并能将其转化为可实现的软件系统。
二、需求工程过程需求工程过程包括需求获取、需求分析、需求规格说明、需求验证和需求管理等阶段。
1. 需求获取:需求获取是通过与相关利益相关方进行沟通和交流,从不同角度了解用户需求的过程。
常用的需求获取技术包括访谈、问卷调查、观察等。
2. 需求分析:需求分析是对获取到的需求进行梳理和整理的过程。
通过需求分析,可以识别出需求之间的关联性、冲突以及优先级等。
3. 需求规格说明:需求规格说明是对需求进行详细描述和规范化的过程。
常见的需求规格说明技术包括用例图、用例描述、数据流图等。
4. 需求验证:需求验证是确保需求规格说明的正确性和完整性的过程。
在需求验证阶段,可以通过检查、测试、评审等方式验证需求是否满足系统性能和用户需求。
5. 需求管理:需求管理是对需求进行跟踪、变更控制和配置管理的过程。
通过需求管理,可以确保需求在软件开发生命周期内得到有效管理和控制。
三、需求工程的关键技术1. 需求建模:需求建模是用于描述和分析软件需求的技术。
常见的需求建模技术包括数据流图、用例图、类图等。
2. 需求跟踪:需求跟踪是通过定义需求和设计元素之间的关系,实现对需求变更的管理和控制。
需求跟踪能够帮助开发团队追踪需求实现的状态和进程。
3. 用户界面设计:用户界面设计是通过用户友好的界面来满足用户需求的过程。
软件工程专业优质课软件需求工程

软件工程专业优质课软件需求工程软件工程专业优质课——软件需求工程软件需求工程是软件工程领域的一门重要课程,它主要关注软件项目中的需求分析、规划与管理。
通过系统地收集、分析和定义用户对软件系统的需求,软件需求工程可以帮助开发团队更好地理解用户需求,并将其转化为可执行的开发计划。
下面将从需求工程的基本概念、流程和关键技术等方面进行论述。
一、需求工程的基本概念软件需求工程是指在软件开发或系统维护过程中,对需求进行收集、分析、定义、验证与管理等一系列活动的过程。
它的目标是构建一个正确、完整、准确、一致和可追踪的需求规格说明,为软件开发提供基础。
需求工程的核心是要确保需求的正确性和完整性。
只有对用户需求进行准确的理解和把握,才能保证软件开发过程中的目标和结果与用户的期望保持一致。
因此,需求工程在整个软件开发过程中具有举足轻重的地位。
二、需求工程的流程需求工程的流程可以分为需求获取、需求分析、需求定义、需求验证和需求管理等五个阶段。
1. 需求获取阶段需求获取阶段主要通过面对面交流、问卷调查、访谈和文献分析等方式,与用户直接沟通以获取需求信息。
在这个阶段中,需求工程师需要充分了解用户的背景、目标和需求,明确项目的范围和目标,以确保需求的准确性和一致性。
2. 需求分析阶段需求分析阶段是对需求进行详细分析和整理的过程。
在这个阶段中,需求工程师会对需求进行分类、排序和整理,以便更好地理解和表达需求。
同时,需求工程师还需要识别需求之间的相互关联和依赖,并找出潜在的冲突和问题。
3. 需求定义阶段需求定义阶段是将需求转化为可执行的设计和规划的过程。
在这个阶段中,需求工程师需要将需求进行详细描述,并明确需求的优先级和可实现性。
同时,还需要与开发团队共同讨论和协商,确立一个合理的开发计划和时间表。
4. 需求验证阶段需求验证阶段是对需求的正确性和完整性进行验证的过程。
在这个阶段中,需求工程师会与用户进行沟通和协商,共同确认和验证需求的准确性和可行性。
《软件需求工程》课件

需求变更管理
需求变更分类
将需求变更分为功能性需求变更、非功 能性需求变更和设计约束变更等。
变更影响分析
对需求变更的影响进行分析,评估变 更对项目进度、成本和风险等方面的
影响。
变更控制流程
建立严格的变更控制流程,包括变更 申请、审批、实施和验证等阶段。
变更实施与跟踪
实施需求变更,并对变更实施过程进 行跟踪,确保变更的有效性和正确性 。
用于记录和管理需求变更,确保需求的一致性和完整性。
如Enterprise Architect、Visio等,用于绘制数据流图、实体关 系图等,帮助分析人员更好地理解和管理需求。
通过建立需求与设计、代码、测试用例之间的关联,确保需求 的实现和验证。
如录音笔、屏幕录制软件等,用于记录用户的原始需求和问题 ,便于后续分析和整理。
风险识别
识别需求工程中可能出现的风险,如需求变 更频繁、需求不清晰等。
风险应对措施
制定风险应对计划,包括风险预防、减轻和 转移等措施。
风险评估
对识别出的风险进行评估,分析风险发生的 概率和影响程度。
风险监控与报告
对风险应对措施的实施过程进行监控,定期 报告风险状态和应对效果。
06 软件需求工程实践
需求分析的步骤
01
需求获取
通过与用户沟通、观察用户操作 等方式,了解用户的需求和期望
。
03
需求评审
对已定义的需求进行审查和评估 ,确保需求的准确性和完整性。
02
需求分析和定义
对获取的需求进行整理、分类和 细化,明确需求的范围、功能、
性能等要求。
04
需求变更管理
建立需求变更的流程和机制,确 保在项目过程中对需求的变更进
软件需求工程

软件需求工程软件需求工程是软件开发过程中的重要环节,它涉及从需求收集、分析和规划到需求验证和确认的全过程。
作为软件工程的核心阶段之一,软件需求工程直接影响着最终软件产品的质量和用户满意度。
本文将重点介绍软件需求工程的概念、流程和方法,以及其在软件开发过程中的重要性。
一、软件需求工程的概念软件需求工程是指在软件开发过程中,对用户需求进行系统分析和定义,以明确软件功能、性能、用户界面等方面的要求,并将其规范化和文档化的过程。
它是软件工程的前期工作,旨在确保软件项目的成功与用户需求的一致性。
软件需求工程的主要任务包括需求收集、需求分析、需求规格说明和需求验证。
需求收集是通过与用户、利益相关者进行交流和对现有业务流程进行调研,获取相关需求信息。
需求分析是对收集到的需求进行整理、筛选和抽象,以明确软件系统的功能和性能特性。
需求规格说明是将需求信息进行形式化描述和文档化,为后续的软件设计和开发提供依据。
需求验证是通过与用户和开发团队的沟通和确认,确保需求规格的准确和完整。
二、软件需求工程的流程软件需求工程的流程可以分为五个主要阶段:需求识别、需求分析、需求规格、需求验证和需求管理。
1. 需求识别阶段:在这个阶段,软件工程师与用户、业务专家等进行沟通交流,明确软件开发的目标和范围,识别出相关需求和约束条件。
2. 需求分析阶段:在需求分析阶段,软件工程师对需求进行详细的分析和整理,识别出需求的优先级和复杂性,规划开发过程中的需求分解和优化策略。
3. 需求规格阶段:需求规格阶段是将需求进行形式化描述和文档化的过程。
软件工程师使用UML、数据流图等工具,以及规格文档进行需求描述和建模,明确功能模块、界面设计和数据结构等。
4. 需求验证阶段:需求验证是通过与用户和开发团队的沟通和确认,确保需求规格的准确和完整。
这个阶段通常包括需求评审、原型演示和用户反馈等活动,以验证需求是否满足用户期望。
5. 需求管理阶段:需求管理是软件开发过程中对需求的追踪和控制,确保软件开发的目标和需求的一致性。
软件需求工程

软件需求工程
第1章 软件需求工程概述 IEEE 关于软件需求的定义 1) 用户解决问题或达到目标所需的条件或能力;(用户的角度 ) 2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条 ቤተ መጻሕፍቲ ባይዱ或能力。(软件系统的角度 ) 软件需求的分类 1) 目标需求; 2) 业务需求; 3) 功能需求; 4) 性能需求; 5) 约束与限制。 6) 软件需求间的层次关系
复杂的软件系统的描述方法
?当前系统:已经存在的人工系统 ?目标系统:待开发的计算机系统 SA方法的分析步骤如下: 1)理解和分析当前的现实环境,以获得当前系统的具体模型。具体模型必须忠 实地反映人工系统的实际情况,软件开发人员在获得需求信息的基础上,利用DFD将现实环境中的人工系统表达出来。 2)建立当前系统的逻辑模型。从系统的具体模型中抽象出当前系统的逻辑模 型,当前系统的逻辑模型应反映当前系统必须满足的性质。 3)建立目标系统的逻辑模型。主要是分析目标系统与当前系统在逻辑系统的差 别,并建立目标系统的逻辑模型。 4)进一步完善目标系统的逻辑模型,完善的工作大致为: ①至今尚未说明的处理细节,如出错处理 ②某些需要的输入/输出格式或用户界面的说明 ③增加性能需求和其它一些约束限制等 状态转换图 P60-图5-18、P61-图5-19 第6章需求定义 需求规格说明的作用 需求规格说明的作用主要体现在: 1)需求规格说明是软件设计和实现的基础 2)需求规格说明是测试和用户验收软件系统的重要依据 3)需求规格说明能为软件维护提供重要的信息 一个软件系统能否满足用户需求,主要是用户的需求能否全部反映在需求规格说明中。因此,需求规格说明作为需求工程的最 终成果必须具有综合性,必须包括所有的需求,开发人员与客户不能做任何假设。 除了设计和实现的限制,需求规格说明不应包括假设、构造或维护阶段的细节; 需求规格说明=技术合同,是软件开发方与用户达成的一致性文档,是基准的规格说明。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 软件需求工程概述IEEE 关于软件需求的定义1) 用户解决问题或达到目标所需的条件或能力;(用户的角度 )2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。
(软件系统的角度 )软件需求的分类1)目标需求; 2)业务需求; 3)功能需求; 4)性能需求; 5)约束与限制。
6)软件需求间的层次关系需求规格说明需求规格说明是软件所应满足的全部需求,并可以文档的方式完整和精确陈述这些需求。
一个好的需求规格说明应该具有的特征1)完整性。
2)正确性。
3)可行性。
4)必要性。
5)划分优先级。
6)无二义性。
7) 可验证性。
第2章 软件工程与需求工程软件开发过程模型1) 瀑布式模型2) 快速原型模型3) 渐增式模型4)螺旋式模型5)面向对象的开发模型所谓面向对象就是应用对象、类、继承、封装、消息、对象或类之间的关系等面向对象的概念对问题进行分析和求解的软件开发技术,或者说,是以对象(类)为数据中心、对象之间的动态行为模式作为运行机制的一种问题求解方法。
软件需求工程特点1)有一部分分析工作必须在设计之前进行,而另外一些分析工作则需与其他部分的设计与实现工作并行地进行,因而呈现出非线性的工作方式。
2)软件系统的表达形式在整个开发模型中都是相同的,即面向对象方法中把类及其结构作为系统的表达单元,无论哪一个阶段都以渐增的方式不断地进化或细化这些表达单元。
3)开发模型支持软件的重用。
需求工程对软件开发的影响如下:1)需求是制定项目计划的基础。
2)需求工程所产生的最终产物——需求规格说明——是软件设计和软件实现的基础。
3)需求规格说明也是测试工作和用户验收软件系统的依据。
4)需求规格说明也是软件维护工作的依据。
软件需求的开发和管理过程软件需求的开发和管理过程是由导出、确认和维护软件系统需求规格说明的一系列活动组成的。
根据需求工程开发和管理过程可大致划分需求开发和需求管理两个阶段。
其中需求开发主要产生正式的需求规格说明,需求管理主要是根据需求的变化对需求规格说明的内容及版本进行管理。
第3章需求获取实地收集需求信息面临的困难1)能提出软件需求的用户没有时间与开发人员进行交流和讨论。
2)有时用户不愿意花费太多的时间进行讨论。
3)用户和开发人员考虑自身利益,对需求信息的手机工作采取消极的态度。
4)用户对所面临的工作没有系统的认识和整理,使得开发人员无法整理和分析。
5)开发人员缺乏用户的业务常识,双方交流困难,收集工作难以进行。
实地调查的步骤要想获得充分的用户需求信息,就必须实地进行调查并与用户交流。
实地调查通常分为三个步骤:1)向掌握“全局”的负责人调查。
2)向部门负责人调查。
3)向业务人员调查。
2、3步骤是一个反复的过程,调查前应有提纲,调查要有记录,调查后要核实。
实地收集需求信息的方式开发人员与用户的交流可采取如下几种方式:1)座谈会的方式:参加人数不宜过多,避免拖延会议速度或偏离会议主题,应该有人主持会议,提前发给参加人员有关会议的议题和内容等材料,有助于提高会议效率。
2)书面咨询的方式:由软件开发人员将所关心的和有待澄清的问题以书面形式提交给用户,软件开发人员通过理解和分析用户的回答来收集他们的真正的需求。
3)利用用例表示方法:用例是了解用户的业务流程和澄清含糊细节的好方法。
所谓用例是用于描述软件系统与一个外部“执行者”的交互顺序,体现执行者完成一次任务的过程。
场景的定义及构成所谓场景是指用户与软件系统实现某个目标而进行交互活动过程的描述。
可视为使用系统经历的解释。
由以下几个方面的内容构成:1)执行者2)进入场景前系统状态描述3)执行者的目的4)动作和事件系列(包括正常和非正常事件流)场景的表示场景的表示出了可用自然语言表示外,也可用图形、动画等其它形式。
场景也可与快速原型方法结合使用。
场景可利用一些已有的半形式化的图形表示方法和技术。
1)非形式化的表示:自然语言、结构化语言、图形、动漫画等。
2)形式化的表示:状态图、流程图、时序图、代数描述图等。
场景技术还具有如下特点:1)可把当前系统存在的问题作为实例记录下来。
2)可成为项目相关人员间的共同语言3)由于描述了软件系统的操作,比较具体,易理解性较好4)通过场景使得提出和获得需求的双方之间能建立起相应的理解。
使用场景技术还应注意以下问题:1)场景的数量,场景数量过大,易加大分析和理解的难度。
2)场景的冗余问题,应尽量避免场景描述的内容发生重叠。
3)应防止场景描述的内容冗长。
第4章需求分析需求分析与需求获取的关系:需求分析和需求获取是密切相关的两个过程。
需求分析的基本任务就是提炼、分析和仔细审查已收到的需求信息,找出真正的和具体的需求,以确保所有项目相关人员都明白其含义。
此外,在分析过程中,通过建立软件系统的逻辑模型,发现或找出需求信息中存在的冲突、遗漏、错误或含糊问题等。
需求分析的具体工作包括:1)建立系统关联图;2)构建用户接口原型;3)分析需求可行性;4)确定需求的优先级别;5)需求建模;6)建立数据字典。
上述列举的所有工作要视具体的软件系统规模而施行。
第5章需求建模方法与技术需求建模的概念需求建模是需求分析中最重要的工作。
需求建模主要是根据待开发软件系统的需求利用某种建模方法建立该系统的逻辑模型,也称需求模型或分析模型,以帮助软件开发人员检测软件需求的一致性、完整性、二义性和错误。
需求建模方法的特点1)提供描述手段:描述形式对人员间的交流和继续进行下一步的工作非常重要。
2)提供基本步骤:将问题按先后次序进行分解,每一步集中精力解决某个问题,直至解决所有问题。
需求建模的方法在目前的需求建模方法中,主要使用的描述手段和技术是自然语言、图形符号语言和形式语言等。
SA方法采用分解策略,把大型和复杂的软件系统分解成若干个易于理解和易于分析的子系统。
在分解过程中,被分解的上层是下层的抽象,下层为上层的具体细节。
SA方法的基本思想是按照由抽象到具体、逐层分解的方法,确定软件系统内部的数据流、变换或加工的关系,并用数据流图表示。
复杂的软件系统的描述方法⏹当前系统:已经存在的人工系统⏹目标系统:待开发的计算机系统SA方法的分析步骤如下:1)理解和分析当前的现实环境,以获得当前系统的具体模型。
具体模型必须忠实地反映人工系统的实际情况,软件开发人员在获得需求信息的基础上,利用DFD将现实环境中的人工系统表达出来。
2)建立当前系统的逻辑模型。
从系统的具体模型中抽象出当前系统的逻辑模型,当前系统的逻辑模型应反映当前系统必须满足的性质。
3)建立目标系统的逻辑模型。
主要是分析目标系统与当前系统在逻辑系统的差别,并建立目标系统的逻辑模型。
4)进一步完善目标系统的逻辑模型,完善的工作大致为:①至今尚未说明的处理细节,如出错处理②某些需要的输入/输出格式或用户界面的说明③增加性能需求和其它一些约束限制等状态转换图P60-图5-18、P61-图5-19第6章需求定义需求规格说明的作用需求规格说明的作用主要体现在:1)需求规格说明是软件设计和实现的基础2)需求规格说明是测试和用户验收软件系统的重要依据3)需求规格说明能为软件维护提供重要的信息一个软件系统能否满足用户需求,主要是用户的需求能否全部反映在需求规格说明中。
因此,需求规格说明作为需求工程的最终成果必须具有综合性,必须包括所有的需求,开发人员与客户不能做任何假设。
除了设计和实现的限制,需求规格说明不应包括假设、构造或维护阶段的细节;需求规格说明=技术合同,是软件开发方与用户达成的一致性文档,是基准的规格说明。
需求规格说明的特性软件的开发是以说明为基础的,如果需求规格说明中出现错误或需求不可能实现等都将导致软件开发工作的返工或失败,因此,需求规格说明必须满足各种各样的特性。
1)正确性:需求规格说明中对每一项需求必须准确地陈述。
2)无含糊性:对所有需求规格说明只能有一种明确和统一的解释。
避免自然语言容易导致的含糊性。
3)完整性:每一项需求都必须将所要实现的功能描述清楚,以便软件开发人员获得设计和实现这些功能所需的必要信息。
4)一致性:需求规格说明内部要一致,与其它的规格说明不发生矛盾。
5)可验证性:当需求规格说明中所有的需求都可检测时,则该需求规格说明是可验证的。
6)可行性:每一项需求都必须在已知系统和环境的限制范围内是可以实施的。
7)必要性:每一项需求都会把用户真正所需要的和最终系统所需遵从的标准记录下来。
即每一项需求都是用来授权编写文档的“根据”,要使每项需求都能回溯到某个或某些需求来源。
第8章需求验证需求验证的目的和任务需求验证所包括的活动是为了确认以下几个方面的内容:1)软件需求规格说明是否正确描述了目标系统的行为和特征;2)从其它来源中(包括硬件的系统需求规格说明书)得到软件需求;3)需求是完整的和高质量的;4)需求为进一步的软件开发和测试提供了足够的基础。
上述内容使得需求验证的目的就是要确保需求规格说明具有良好的特性(如完整性与正确性)。
需求验证的任务1)需求认证的任务就是要求各方人员从不同的技术角度对需求规格说明文档做出综合性评价。
2)在收集需求并且编写成需求规格说明文档后进行需求验证并不仅是一个独立的阶段,某些验证活动(如对渐增式软件需求规格说明的初审工作)将在需求获取、需求分析和定义需求规格说明的整个过程中反复进行。
3)大部分需求验证只能通过人工进行检测,以表明需求规格说明将是用户实际需要的系统。
需求验证的内容一般包括:1)一致性:所有需求必须是一致的,任何一条需求不能与其它需求相矛盾;2)完整性:需求必须是完整的,软件需求规格说明应包括用户需要的每一个功能和性能;3)现实性:指定的需求应该在现有的硬件基础或软件技术的基础上是可行的;4)有效性:必须验证需求是正确有效的,确实能解决用户需求间的矛盾。
5)一般可根据软件系统的特点和用户的要求增加一些检验内容,如软件的安全性、可靠性、正确性等。
需求验证方法:主要靠人工技术审查和验证软件需求规格说明、形式化验证方法。
第9章需求管理需求变更的内容主要涉及两个方面一方面是需求变更只对软件系统内部产生影响,而不影响其它需求;另一方面是在原有软件需求的基础上提出扩充软件系统功能的需求,亦即扩展需求。
扩展需求是指在基准的需求规格说明已确定后,又要增添新的功能或进行较大的功能扩充。
控制变更范围扩展的方法:1)把扩充系统的视图、范围和限制等文档化,作业务需求或功能需求的一部分,对新增的每个功能进行评估。
2)利用原型化方法实现扩充部分的预览,以帮助用户与开发人员进行交流和沟通,准确把握用户需求。
3)应充分考虑需求变更的难度,不能一味应和用户需求。
变更控制策略变更控制策略与变更的过程和标准相关。
这些策略描述了变更以何种形式提出、分析和处理。