《清华软件工程:第03章-需求工程ppt课件.ppt》由会员分享,可在线阅读,更多相关《清华软件工程:第03章-需求工程ppt课件.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2需求工程概述需求工程概述需求获取需求获取需求分析、协商与建模需求分析、协商与建模需求规约与验证需求规约与验证需求管理需求管理我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3需求获取需求获取需求分析、协商与建模需求分析、协商与建模需求规约与验证需求规约与验证需求管理需求管理我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证
2、实我的猜测没有错:表里边有一个活的生物4 Alan Davis 把需求工程定义为把需求工程定义为“直到直到(但不包括)把软件分解为实际架构构(但不包括)把软件分解为实际架构构件之前的所有活动件之前的所有活动” Herb Krasner定义了需求工程的五阶段定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、生命周期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求形成需求规格、需求实现与验证、需求演进管理演进管理 Matthias Jarke和和Klaus Pohl提出了三提出了三阶段周期的说法:获取、表示和验证阶段周期的说法:获取、表示和验证 我吓了一跳,蝎子是多么丑恶和恐
3、怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5 本书将软件需求工程细分为:本书将软件需求工程细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和和需求管理六个阶段。六个阶段。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物6 系统分析人员通过与用户的交流、对现有系统的系统分析人员通过与用户的交流、对现有系统的观察及对任务进行分析,确定系统或产品范围的观察及对任务进行分析,确定系统或产品范围的限制性描述、与系统或产品有关的人员及特征列限
4、制性描述、与系统或产品有关的人员及特征列表、系统的技术环境的描述、系统功能的列表及表、系统的技术环境的描述、系统功能的列表及应用于每个需求的领域限制、一组描述不同运行应用于每个需求的领域限制、一组描述不同运行条件下系统或产品使用状况的应用场景以及为更条件下系统或产品使用状况的应用场景以及为更好地定义需求而开发的任意原型。好地定义需求而开发的任意原型。 需求获取的工作产品为进行需求分析提供了基础需求获取的工作产品为进行需求分析提供了基础 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物7 需求获取结束后,分析
5、活动对需求进行分需求获取结束后,分析活动对需求进行分类组织,分析每个需求其它需求的关系来,类组织,分析每个需求其它需求的关系来,检查需求的一致性、重叠和遗漏的情况,检查需求的一致性、重叠和遗漏的情况,并根据用户的需要对需求进行排序。并根据用户的需要对需求进行排序。 在需求获取阶段,经常出现以下问题:在需求获取阶段,经常出现以下问题: 用户提出的要求超出软件系统可以实现的范围或实现能力; 不同的用户提出了相互冲突的需求 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物8 建模工具的使用在用户和系统分析人员之建
6、模工具的使用在用户和系统分析人员之间建立了统一的语言和理解的桥梁,同时间建立了统一的语言和理解的桥梁,同时系统分析人员借助建模技术对获取的需求系统分析人员借助建模技术对获取的需求信息进行分析,排除错误和弥补不足,确信息进行分析,排除错误和弥补不足,确保需求文档正确反映用户的真实意图。保需求文档正确反映用户的真实意图。 常用的分析和建模方法有面向数据流方法、常用的分析和建模方法有面向数据流方法、面向数据结构方法和面向对象的方法。面向数据结构方法和面向对象的方法。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生
7、物9 软件需求规约是分析任务的最终产物,通软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需适的验收标准,给出对目标软件的各种需求。求。 需求规约作为用户和开发者之间的一个协需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要议,在之后的软件工程各个阶段发挥重要作用。作用。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1
8、0 作为需求开发阶段工作的复查手段,需求作为需求开发阶段工作的复查手段,需求验证对功能的正确性、完整性和清晰性,验证对功能的正确性、完整性和清晰性,以及其它需求给予评价。为保证软件需求以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负定义的质量,评审应以专门指定的人员负责,并按规程严格进行。责,并按规程严格进行。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物11 在实际的开发过程中,获取、分析、建在实际的开发过程中,获取、分析、建模、编写规约和验证这些需求开发活动模、编写规约和验证
9、这些需求开发活动不会是线性地、顺序地完成。实际上,不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。这些活动是交叉的、递增的和反复的。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物12 需求工程包括获取、分析、规定、验证和需求工程包括获取、分析、规定、验证和管理软件需求,而管理软件需求,而“软件需求管理软件需求管理”则是则是对所有相关活动的规划和控制。对所有相关活动的规划和控制。 换句话说,需求管理就是:一种获取、组换句话说,需求管理就是:一种获取、组织并记录系统需求的系统化方案,以及一
10、织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。求达成并保持一致的过程。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物13需求工程概述需求工程概述需求分析、协商与建模需求分析、协商与建模需求规约与验证需求规约与验证需求管理需求管理我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物14 功能需求功能需求 性能需求性能需求 用户或人的因素用
11、户或人的因素 环境需求环境需求 界面需求界面需求 文档需求文档需求 数据需求数据需求 资源使用需求资源使用需求 安全保密要求安全保密要求 可靠性需求可靠性需求 软件成本消耗与开软件成本消耗与开发进度需求发进度需求 其他非功能性要求其他非功能性要求 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物15 建立顺畅的通信途径建立顺畅的通信途径 访谈与调查访谈与调查 观察用户操作流程观察用户操作流程 组成联合小组组成联合小组 用况用况(Use Case) 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一
12、个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物16 建立分析所需要的通信途径,以保证能建立分析所需要的通信途径,以保证能顺利地对问题进行分析。顺利地对问题进行分析。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物17 在具体的实践中,通常采用折衷的方法,即适当在具体的实践中,通常采用折衷的方法,即适当地计划好面谈,但不要过于详细,允许有一定的地计划好面谈,但不要过于详细,允许有一定的灵活性。一般按照如下原则进行准备:灵活性。一般按照如下原则进行准备: 所提问的问题应该循序渐进,
13、从整体的方面开始提问,接下来的问题应有助于对前面的问题更好的理解和细化; 不要限制用户对问题的回答,这有可能会引出原先没有注意的问题; 提问和回答在汇总后应能够反映用户需求的全貌。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物18 例子:例子:“赛艇比赛成绩计算系统赛艇比赛成绩计算系统”的第的第一次面谈的准备计划一次面谈的准备计划 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物19 到用户的实际工作环境中对用户的工
14、作流到用户的实际工作环境中对用户的工作流程进行观察,了解用户实际的操作环境、程进行观察,了解用户实际的操作环境、操作过程和操作要求,对照用户提交的问操作过程和操作要求,对照用户提交的问题陈述,对用户需求可以有更全面、更细题陈述,对用户需求可以有更全面、更细致的认识。致的认识。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物20 便利的应用规约技术(Facilitated Application Specification Techniques , FAST) :打破用户(需方)和开发者:打破用户(需方)和
15、开发者(供方)的界限,共同组成一个联合小(供方)的界限,共同组成一个联合小组,发挥各自的长处,共同负责项目的组,发挥各自的长处,共同负责项目的推进,这样有助于发挥各自优势并增进推进,这样有助于发挥各自优势并增进解和协调解和协调 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物21在中立的地点举行由开发者和用户出席的会议;在中立的地点举行由开发者和用户出席的会议;建立准备和参与会议的规则;建立准备和参与会议的规则;建议一个足够正式的议程以便可以进行自由的交流;建议一个足够正式的议程以便可以进行自由的交流;一个
16、一个“协调者协调者”(他可以是用户、开发者或其他外人他可以是用户、开发者或其他外人)来控制会议;来控制会议;使用一种使用一种“定义机制定义机制”(它可以是工作表、图表、墙它可以是工作表、图表、墙上胶黏纸或墙板上胶黏纸或墙板);目标是标识问题、提出解决方案的要素、商议不同的目标是标识问题、提出解决方案的要素、商议不同的方法、以及在有利于完成目标的氛围中刻画出初步的方法、以及在有利于完成目标的氛围中刻画出初步的需求。需求。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物22 1)当举行了开发者和用户之间的初步访
17、谈后,确定当举行了开发者和用户之间的初步访谈后,确定一个一个FAST会议的时间地点,并在会议日之前将产品会议的时间地点,并在会议日之前将产品请求发布给所有的与会者。请求发布给所有的与会者。 2)要求每个要求每个FAST 出席者会前列出一组围绕系统环出席者会前列出一组围绕系统环境的对象,以及对这些对象的操作或对象之间的交互境的对象,以及对这些对象的操作或对象之间的交互功能,并开发出约束列表功能,并开发出约束列表(如,成本、规模大小、权重如,成本、规模大小、权重)和性能标准列表和性能标准列表(如,速度、精度如,速度、精度)。这些列表可以不。这些列表可以不是穷尽的,但是,希望每套列表反映的是每个人对
18、系是穷尽的,但是,希望每套列表反映的是每个人对系统的感觉。统的感觉。 3)进行进行FAST 会议时,当团队的每个成员提出单个会议时,当团队的每个成员提出单个列表后,整个团队将创建一个组合的列表,该组合列列表后,整个团队将创建一个组合的列表,该组合列表删去冗余项,并加入在表达过程中出现的新思想。表删去冗余项,并加入在表达过程中出现的新思想。在建好所有主题的组合列表后,开始讨论活动。缩短、在建好所有主题的组合列表后,开始讨论活动。缩短、加长或重新组合列表以适当地反映将被开发的产品。加长或重新组合列表以适当地反映将被开发的产品。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界
19、里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物23 4)一旦创建了意见一致的列表,应该将团队分为更小一旦创建了意见一致的列表,应该将团队分为更小的小组,每个小组力图为每个列表中的一个或多个项开的小组,每个小组力图为每个列表中的一个或多个项开发出小型的规约(即对包含在列表中的单词或短语的精发出小型的规约(即对包含在列表中的单词或短语的精细化)。每个小组然后将他们开发的每个小规约提交给细化)。每个小组然后将他们开发的每个小规约提交给所有的所有的FAST 出席者讨论,进行添加、删除或进一步的出席者讨论,进行添加、删除或进一步的精化等工作。(在所有讨论过程中,团队可能提出某些精化等工
20、作。(在所有讨论过程中,团队可能提出某些不能在会议过程中解决的问题,此时要保留问题列表以不能在会议过程中解决的问题,此时要保留问题列表以使这些思想在以后的活动中产生作用。)使这些思想在以后的活动中产生作用。) 5)在小规约完成后,每个在小规约完成后,每个FAST 的出席者提出一个针的出席者提出一个针对产品的确切标准列表,并将该列表提交给团队,然后对产品的确切标准列表,并将该列表提交给团队,然后创建一个意见一致的确定的标准列表。这个列表作为需创建一个意见一致的确定的标准列表。这个列表作为需求获取的结果,为需求分析和建模提供基础信息。求获取的结果,为需求分析和建模提供基础信息。我吓了一跳,蝎子是多
21、么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物24 当需求作为非正式会议、当需求作为非正式会议、Fast的一部分而收集的一部分而收集起来之后,分析员就可以创建一组标识一串待起来之后,分析员就可以创建一组标识一串待建造系统的使用场景。建造系统的使用场景。 创建用况模型的主要步骤如下:创建用况模型的主要步骤如下: 确定谁会直接使用该系统,即参与者(Actor) 选取其中一个参与者 定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况 对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 1)描述
22、该用况的基本过程我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物25需求工程概述需求工程概述需求获取需求获取需求规约与验证需求规约与验证需求管理需求管理我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物26 1必须能够表示和理解问题的信息域必须能够表示和理解问题的信息域 2必须能够定义软件将完成的功能必须能够定义软件将完成的功能 3必须能够表示软件的行为必须能够表示软件的行为(作为外部事件作为外部事件的结果的结果) 4必须
23、划分描述数据、功能和行为的模型,必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节从而可以分层次地揭示细节 5分析过程应该从要素信息移向细节信息分析过程应该从要素信息移向细节信息我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物27 信息域:包括信息内容、信息流、以及信包括信息内容、信息流、以及信息结构。息结构。 信息内容信息内容表示了单个数据和控制对象,目标软件所有处理的信息集合由它们构成。 例如,数据对象“工资”是一组重要数据体的组合:领款人的姓名、净付款数、付款总额、扣除额等等 我吓了一跳,蝎
24、子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物28 信息流信息流表示了数据和控制在系统中流动时的变化方式,输入对象被变换为中间信息(数据和/或控制),然后进一步被变换为输出 信息结构信息结构表示了各种数据和控制项的内部组织 数据或控制项将被组织为数据或控制项将被组织为n维表还是树形结构?维表还是树形结构? 在结构的语境内,什么信息是和其他信息相关的?在结构的语境内,什么信息是和其他信息相关的? 信息包含在单个结构中,还是使用不同的结构?信息包含在单个结构中,还是使用不同的结构? 在某信息结构中的信息如何和在另一个结构中
25、的在某信息结构中的信息如何和在另一个结构中的信息相关?信息相关? 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物29 问题抽象方法要求分析人员在分析过程中要求分析人员在分析过程中捕捉用户描述或问题本身固有的捕捉用户描述或问题本身固有的一般-特殊关系 首先关注一般问题的解决途径,进而指导首先关注一般问题的解决途径,进而指导特殊问题的解决方法。特殊问题的解决方法。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物30 问题
26、分解的目的是要能以层次化的方式的目的是要能以层次化的方式对问题进行分解和不断细化。对问题进行分解和不断细化。 较大规模或较为复杂的问题可以被分解为若干子问题进行理解和分析 分解可以逐级进行,直至子问题被分解为一个容易分析理解的部分 例如横向分解横向分解纵向分解纵向分解我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物31 协商的过程就是讨论需求冲突,找出每协商的过程就是讨论需求冲突,找出每个人都满意的折衷方案个人都满意的折衷方案 协商不是简单的逻辑或技术上的争论协商不是简单的逻辑或技术上的争论 要注意组织和行
27、政方面的因素要注意组织和行政方面的因素 不一致的目标 责任的丧失或转移 组织文化 组织管理态度和士气 部门差异 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物32 通常会议是解决冲突最快的方式通常会议是解决冲突最快的方式 参加者应该包括发现冲突、遗漏或重叠参加者应该包括发现冲突、遗漏或重叠的分析员,以及可以解决发现的问题的的分析员,以及可以解决发现的问题的项目相关人员项目相关人员 会议应该讨论那些非正式讨论不能解决会议应该讨论那些非正式讨论不能解决的问题的问题 通常会议分为三个阶段:通常会议分为三个阶段:
28、 叙述阶段 讨论阶段 决策阶段 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物33 在软件需求分析阶段,所创建的模型,要在软件需求分析阶段,所创建的模型,要着重于描述系统要着重于描述系统要做什么做什么,而不是,而不是如何去如何去做做 目标软件的模型不应涉及软件实现细节目标软件的模型不应涉及软件实现细节 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物34常用的分析方法:常用的分析方法: 面向数据流的结构化分析方法 (S
29、A) 面向数据结构的分析方法 面向对象的分析方法 (OOA)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物35需求工程概述需求工程概述需求获取需求获取需求分析、协商与建模需求分析、协商与建模需求管理需求管理我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物36 1从现实中分离功能,即描述要从现实中分离功能,即描述要“做什做什么么”而不是而不是“怎样实现怎样实现”。 2要求使用面向处理的规约语言(或称要求使用面向处理的规约
30、语言(或称系统定义语言),讨论来自环境的各种刺激可系统定义语言),讨论来自环境的各种刺激可能导致系统做出什么样的功能性反应,来定义能导致系统做出什么样的功能性反应,来定义一个行为模型,从而得到一个行为模型,从而得到“做什么做什么”的规约。的规约。 3如果被开发软件只是一个基于计算机如果被开发软件只是一个基于计算机的系统中的一个元素,那么整个大系统也包括的系统中的一个元素,那么整个大系统也包括在规格说明的描述之中。在规格说明的描述之中。 4规约必须包括系统运行环境。规约必须包括系统运行环境。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜
31、测没有错:表里边有一个活的生物37 5规约必须是一个认识模型,而不是设规约必须是一个认识模型,而不是设计或实现的模型。计或实现的模型。 6规约必须是可操作的,以便能够利用规约必须是可操作的,以便能够利用它决定对于任意给定的测试用例,已提出的解它决定对于任意给定的测试用例,已提出的解决方案是否都能满足规约。决方案是否都能满足规约。 7规约必须允许不完备性并允许扩充。规约必须允许不完备性并允许扩充。 8规约必须局部化和松散耦合。它所包规约必须局部化和松散耦合。它所包括的信息必须局部化,这样当信息被修改时,括的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落(理想情况)。同时,只要修改某个
32、单个的段落(理想情况)。同时,规约应被松散地构造(即松耦合),以便能够规约应被松散地构造(即松耦合),以便能够很容易地加入和删去一些段落。很容易地加入和删去一些段落。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物38我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物39引言:陈述软件目标,在基于计算机的系统语境内:陈述软件目标,在基于计算机的系统语境内进行描述。进行描述。信息描述:给出软件必须解决问题的详细描述,记:给出
33、软件必须解决问题的详细描述,记录信息内容和关系、流和结构。录信息内容和关系、流和结构。功能描述:描述解决问题所需的每个功能。其中包:描述解决问题所需的每个功能。其中包括,为每个功能说明一个处理过程;叙述设计约束;括,为每个功能说明一个处理过程;叙述设计约束;叙述性能特征;用一个或多个图形来形象地表示软叙述性能特征;用一个或多个图形来形象地表示软件的整体结构和软件功能与其他系统元素间的相互件的整体结构和软件功能与其他系统元素间的相互影响。影响。行为描述:描述作为外部事件和内部产生的控制特:描述作为外部事件和内部产生的控制特征的软件操作。征的软件操作。检验标准:描述检验系统成功的标志。即对系统进:
34、描述检验系统成功的标志。即对系统进行什么样的测试,得到什么样的结果,就表示系统行什么样的测试,得到什么样的结果,就表示系统已经成功实现了。它是已经成功实现了。它是“确认测试确认测试”的基础。的基础。参考书目:包含了对所有和该软件相关的文档的引:包含了对所有和该软件相关的文档的引用,其中包括其他的软件工程文档、技术参考文献、用,其中包括其他的软件工程文档、技术参考文献、厂商文献以及标准。厂商文献以及标准。附录:包含了规约的补充信息,表格数据、算法的:包含了规约的补充信息,表格数据、算法的详细描述、图表以及其他材料。详细描述、图表以及其他材料。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在
35、这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物40 需求验证目的是要检验需求是否能够反映用户的意愿需求验证目的是要检验需求是否能够反映用户的意愿 评审人员评审时往往需要检查以下内容:评审人员评审时往往需要检查以下内容: 系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全;文档中的描述是否完整、清晰、准确地反映了用户要求; 被开发项目的数据流与数据结构是否确定且充足; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明; 设计的约束条件或限制条件是否符合实际; 开发的技术风险是什么;1. 是否详细制定了检验标准,它们能否对系统定
36、义是否成功进行确认。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物41需求工程概述需求工程概述需求获取需求获取需求分析、协商与建模需求分析、协商与建模需求规约与验证需求规约与验证我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物42 需求管理是一组用于帮助项目组在项目进需求管理是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求展中的任何时候去标识、控制和跟踪需求的活动的活动 需求跟踪有两种方式,正向跟踪与逆向跟需求跟踪有两种方式,正向跟踪与逆向跟踪踪 正向跟踪:以用户需求为切入点,检查需求规约中的每个需求是否都能在后继工作产品中找到对应点 逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在需求规约中找到出处