软件工程需求工程

上传人:mg****85 文档编号:49949426 上传时间:2018-08-05 格式:PPT 页数:59 大小:411KB
返回 下载 相关 举报
软件工程需求工程_第1页
第1页 / 共59页
软件工程需求工程_第2页
第2页 / 共59页
软件工程需求工程_第3页
第3页 / 共59页
软件工程需求工程_第4页
第4页 / 共59页
软件工程需求工程_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《软件工程需求工程》由会员分享,可在线阅读,更多相关《软件工程需求工程(59页珍藏版)》请在金锄头文库上搜索。

1、第三章 需求工程n需求阶段是软件开发的关键阶段。n该阶段的主要任务: 必须回答一个问题:“系统 应该做什么(what)”。n所涉及的人员有:领域专家、领域用户、软件投 资人、系统分析员和需求分析员。该阶段的工作量约占总工作量的10%以上。13.1 软件需求IEEE软件工程标准词汇表(1997年)将需求定义为: (1)用户解决问题或达到目标所需的条件或能力; (2)系统或系统部件要满足合同、标准、规范或其它正式规定 文档所需具有的条件或能力。 (3)一种反映(1)或(2)所描述的条件或能力的文档说明。3.1.1 软件需求的定义定义从两个角度阐述需求: 用户角度 系统的外部行为 开发者角度 系统的

2、内部特性 其关键的问题:编写需求文档。 23.1.2 需求的层次软件需求包括四个不同的层次:1.业务需求:描述了组织结构或客户对系统的高层次的目标要求。2.用户需求:描述了用户使用产品必须要完成的任务,使用实例模型描述。3.功能需求:定义了开发人员实现的软件的功能。4.业务需求:描述系统的约束和限制条件。注:以上需求应详细的写到软件需求规格说明书里。33.1.3 3.1.3 需求错误的原因需求错误的原因n需求描述模棱两可,有时写的过于简单;n用户的要求不断变换,需求也不断变化;n参与的用户过少,而且忽略了用户的分类;n追求个性化,添加不必要的特性。需求越来越复杂,但很重要,现在提出了采用工 程

3、化的思想对需求进行分析,引出需求工程的概念。43.2 3.2 需求工程概述需求工程概述定义:指应用已证实有效的技术、方法进行需求分析,确定 客户需求,帮助分析人员理解问题并定义目标系统的所有 外部特征的一门学科。主要活动: 需求获取 需求建模(需求分析) 需求传递:编写规格(规约)说明书 需求验证 需求管理5需求工程的层次分解示意图需求工程需求开发 需求管理 问题获取需求分析编写规格说明 验证63.2.1 需求开发从用户获得需求,并整理成文档。 注:分析员与各种层析的客户进行交流,如决策人,具体 使用人,系统维护人员等等。 OOA中常采用方法:用例方法获取需求。一. 需求获取二. 需求分析对上

4、阶段获取的需求进行分析、提炼,并用相应的分析模 型 描述出来,分析出高质量的需求。7n需求分析研究的对象是软件项目的用户要求n准确地表达被接受的用户要求n确定被开发软件系统的系统元素n将功能和信息结构分配到这些系统元素中n深入描述软件的功能和性能n确定软件设计的约束和软件同其它系统元素的接口 细节n定义软件的其它有效性需求1 1 主要任务:主要任务:82.2.需求分析的过程需求分析的过程(1) (1) 问题识别问题识别n从系统的角度来理解软件并评审软件范围是否恰当n确定对目标系统的综合要求,即软件的需求n提出这些需求实现条件,以及需求应达到的标准 资源使用需求资源使用需求 成本消耗需求成本消耗

5、需求 开发进度需求开发进度需求 预先估计以后系预先估计以后系 统可能达到的目统可能达到的目 标标软件的需求包括:软件的需求包括:n n功能需求功能需求n n性能需求性能需求n n环境需求环境需求n n可靠性需求可靠性需求n n安全保密要求安全保密要求n n用户界面需求用户界面需求 9问题识别的另一项工作是建立分析所需要的通信途径, 以保证能顺利地对问题进行需求分析。10A.A.主要任务(建立系统的逻辑模型)主要任务(建立系统的逻辑模型)从信息流和信息结构出发,逐步细化所有的软件功能 ,找出系统各元素之间的联系、接口特性和设计上的 约束,分析它们是否满足功能要求,是否合理。剔除 其不合理的部分,

6、增加其需要部分。最终综合成系统 的解决方案,给出目标系统的详细逻辑模型。(2) (2) 分析与综合分析与综合B.B.常用的分析方法常用的分析方法n面向数据流的结构化分析方法 (SA)n面向数据结构的Jackson方法 (JSD)n面向数据结构的结构化数据系统开发方法 (DSSD)n面向对象的分析方法 (OOA) 等11C.C.创建数据字典创建数据字典数据字典是对系统所用到的所有数据项和结构的定 义,以确保开发人员使用统一的数据定义。12n软件需求说明书n数据要求说明书n初步的用户手册n修改、完善与确定软件开发实施计划注:格式见附录三三 需求传递需求传递(编制需求文档)(编制需求文档)四四 需求

7、验证需求验证(需求评审)(需求评审)n系统定义的目标是否与用户的要求一致;n系统需求分析阶段提供的文档资料是否齐全;n文档中的所有描述是否完整、清晰、准确反映用户要求 ;n与所有其它系统成分的重要接口是否都已经描述;13n被开发项目的数据流与数据结构是否足够,确定;n所有图表是否清楚,在不补充说明时能否理解;n主要功能是否已包括在规定的软件范围之内,是否都已 充分说明;n设计的约束条件或限制条件是否符合实际;n开发的技术风险是什么;n是否考虑过软件需求的其它方案;n是否考虑过将来可能会提出的软件需求;n是否详细制定了检验标准,它们能否对系统定义是否成 功进行确认;14需求开发流程需求开发流程1

8、5需求管理从形成需求基线开始,分析变更影响并控制变更过 程。 主要包括变更控制、版本控制和需求跟踪等活动。变更控制就是在一定的程序下有效地实施整个变更过程;版本管理保证了在需求文档中记录和反映所有的需求变化;需求跟踪帮助人们全面地分析变更带来的影响,从而作出正确 的变更决策。 三者统一起来,真正做到了管理需求变化过程,以及维护需求 变化后的一致性和完整性。 3.2.2 需求管理161.需求变更控制 一些需求的改进是合理的且不可避免。 不被控制的变更是项目陷入混乱、不能按进度执行或软件质量 低劣的共同原因,因此,需求变更应该实现以下要求: 应仔细评估已建议的变更; 挑选合适的人选对变更做出决定;

9、 变更应及时通知所有涉及的人员; 项目要按一定的程序来采纳需求变更。17版本控制是管理需求的一个必要方面。需求文档的每一个 版本必须被统一确定,小组内每个成员必须能够得到需求的当 前版本,必须清楚地将变更写成文档,并及时通知到项目开发 所涉及的人员。为了尽量减少困惑、冲突、误传,应仅允许指 定的人来更新需求。每一个公布的需求文档的版本应该包括一个修正版本的历 史情况,即已做变更的内容、变更日期、变更人姓名以及变更 原因,可以考虑给每个需求标记上版本号,当修改满足需求后就增加版本号。 2.需求文档的版本控制版本控制的最有力方法是用一个商业需求管理工具的数据库 存储需求,这些工具可以跟踪和报告每个

10、需求的变动历史, 特别是当需要恢复早期的需求时非常有意义。18当某项业务需求发生变化时,可能会影响到系统需求和功能需 求的变化,并且连带地影响到设计、测试、实现、项目计划等 各方面的变化,从而构成了一个跟踪能力联系链。如下图显示需求跟踪的任务: 编制每个需求同系统元素之间的联系文档,这些元素包括别的 需求、体系结构、其他设计部件、源代码模块、测试、帮助文 件、文档等,从而建立了需求的跟踪联系链。当需求发生变化 时,使用需求跟踪可以确保不忽略每个受到影响的系统元素, 实现需求变更的正确实施,降低由此带给项目的风险等。3.需求跟踪1920(1).建立了需求的跟踪联系链当需求发生变化时,使用需求跟踪

11、可以确保不忽略每个受 到影响的系统元素。使用需求跟踪能力矩阵 分析变更产生的影响CMM:软件能力成熟度模型的目标之一:进行需求管理 212.需求管理工具 需求管理工具有两种类型: a.以文档为核心的 b.以数据库核心的22结构化分析方法最早开始于20世纪60年代末和70年代 初。DeMaro在1979年出版的Structured Analysis and System Specification一书中,给出了数据流 图等结构化分析工具,并使用数据字典和加工说明等 作为图形工具的补充。 3.3 分析建模 现在在主导地位的分析方法为: 结构化分析方法(SA)和面向对象的分析方法(OOA) 本节主要

12、讲SA。23结构化分析方法特点结构化分析方法特点n n面向面向数据流数据流进行需求分析的方法进行需求分析的方法n n结构化分析方法适合于结构化分析方法适合于数据处理数据处理类型软件的需求分析类型软件的需求分析n n结构化分析方法就是用结构化分析方法就是用抽象模型抽象模型的概念,按照软件内部的概念,按照软件内部 数据传递数据传递、变换变换的关系,的关系,自顶向下逐层分解自顶向下逐层分解,直到找到,直到找到 满足功能要求的所有可实现的软件为止满足功能要求的所有可实现的软件为止结构化分析方法使用工具结构化分析方法使用工具uuERD ERD uuSTDSTDuu数据流图数据流图uu数据词典数据词典uu

13、判定表与判定树、判定表与判定树、 结构化英语结构化英语uu层次方框图、层次方框图、WarnierWarnier图、图、IPOIPO图图24结构化分析导出的分析模型包括数据模型、功能模型和行为模型 ,该模型以“数据字典”为核心,它描述了软件使用的所有数据 对象。3.3.1 分析模型 25实体关系图(实体关系图(Entity-Relationship DiagramEntity-Relationship Diagram,ERDERD):):作为数作为数 据建模的基础,描述数据对象及其关系;据建模的基础,描述数据对象及其关系;数据流图(数据流图(Data Flow DiagramData Flow

14、Diagram,DFDDFD):):作为功能建模的基础作为功能建模的基础 ,描述数据怎样转换以及转换的功能;,描述数据怎样转换以及转换的功能;状态转换图(状态转换图(State-Transition DiagramState-Transition Diagram,STDSTD):):作为行为建作为行为建 模的基础,表示系统的各种行为状态以及状态间的转换方式。模的基础,表示系统的各种行为状态以及状态间的转换方式。26 Entities 例: , ,StudentInstructorClass Attributes 例: ,NameI D# Relations 例:Enrolled inTeach

15、111NMN一.实体 -联系图(Entity-Relationship Diagram)数据模型有三种基本元素:数据对象、属性、关系。27InstructorStudentEnrolled inTeachClassI D #I D #NameNameSexSexTitleInstructor IDClass IDGradeStudent IDClass IDCreditI D #Subjectmn1n例如:28二.数据流图数据流图信息流和数据转换。对加工进行细化获得数据流图。 从数据传递和加工的角度看,其以图形的方式刻画数据流从输 入到输出的传递变换过程,描绘信息在系统中流动和处理的情 况。

16、表示了系统内部信息的流向和系统的逻辑处理功能。1.1.作用作用292. 2.数据流图中的主要图形元素数据流图中的主要图形元素数据加工数据加工 ( (数据变换数据变换) )数据源点或终点数据源点或终点 ( (外部实体外部实体) )数据流数据流数据存储文件数据存储文件30描述银行取款过程的数据流图描述银行取款过程的数据流图313. 3.数据流与数据加工之间的关系数据流与数据加工之间的关系324.4.数据流图的层次结构数据流图的层次结构n为了表达数据处理过程的数据加工情况,需要采用 层次结构的数据流图。按照系统的层次结构进行逐 步分解,并以分层的数据流图反映这种结构关系, 能清楚地表达和容易理解整个系统。n在多层

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号