《软件需求分析的任务课件.ppt》由会员分享,可在线阅读,更多相关《软件需求分析的任务课件.ppt(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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 需求工程概述定义:指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。主要活动:需求获取需求建模(需求分析)需求传递:编写规格(规约)说明书需求验证需求管理5需求工程的层次分解示意图 需求工程需求开发 需求管理 问题获取 需求分析编写规格说明 验证63.2.1 需求开发从用户获得需求,并整理成文档。注:分析员与各种层析的客户进行交流,如决策人,具体使用人,系统维护人员等等。OOA中常采用方法:用例方法获取需求。一.需求获取二.需求分析对上阶段获取的需求进行分析、提炼,并用相应的分析模型描
4、述出来,分析出高质量的需求。7n 需求分析研究的对象是软件项目的用户要求n 准确地表达被接受的用户要求n 确定被开发软件系统的系统元素n 将功能和信息结构分配到这些系统元素中n 深入描述软件的功能和性能n 确定软件设计的约束和软件同其它系统元素的接口细节n 定义软件的其它有效性需求1 1 主要任务:主要任务:82.2.需求分析的过程 需求分析的过程(1)(1)问题识别 问题识别n 从系统的角度来理解软件并评审软件范围是否恰当n 确定对目标系统的综合要求,即软件的需求n 提出这些需求实现条件,以及需求应达到的标准n n 资源使用需求 资源使用需求n n 成本消耗需求 成本消耗需求n n 开发进度
5、需求 开发进度需求n n 预先估计以后系统可 预先估计以后系统可能达到的目标 能达到的目标软件的需求包括:软件的需求包括:n n功能需求 功能需求n n性能需求 性能需求n n环境需求 环境需求n n可靠性需求 可靠性需求n n安全保密要求 安全保密要求n n用户界面需求 用户界面需求9 问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行需求分析。10 A.A.主要任务(建立系统的逻辑模型)主要任务(建立系统的逻辑模型)从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,
6、增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。(2)(2)分析与综合 分析与综合B.B.常用的分析方法 常用的分析方法n面向数据流的结构化分析方法(SA)n面向数据结构的Jackson方法(JSD)n面向数据结构的结构化数据系统开发方法(DSSD)n面向对象的分析方法(OOA)等1 1C.C.创建数据字典 创建数据字典 数据字典是对系统所用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。12n 软件需求说明书n 数据要求说明书n 初步的用户手册n 修改、完善与确定软件开发实施计划 注:格式见附录三 三 需求传递 需求传递(编制需求文档)(编制需求文档)四
7、四 需求验证 需求验证(需求评审)(需求评审)n系统定义的目标是否与用户的要求一致;n系统需求分析阶段提供的文档资料是否齐全;n文档中的所有描述是否完整、清晰、准确反映用户要求;n与所有其它系统成分的重要接口是否都已经描述;13n 被开发项目的数据流与数据结构是否足够,确定;n 所有图表是否清楚,在不补充说明时能否理解;n 主要功能是否已包括在规定的软件范围之内,是否都已充分说明;n 设计的约束条件或限制条件是否符合实际;n 开发的技术风险是什么;n 是否考虑过软件需求的其它方案;n 是否考虑过将来可能会提出的软件需求;n 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;14需求开
8、发流程需求开发流程15 需求管理从形成需求基线开始,分析变更影响并控制变更过程。主要包括变更控制、版本控制和需求跟踪等活动。变更控制就是在一定的程序下有效地实施整个变更过程;版本管理保证了在需求文档中记录和反映所有的需求变化;需求跟踪帮助人们全面地分析变更带来的影响,从而作出正确的变更决策。三者统一起来,真正做到了管理需求变化过程,以及维护需求变化后的一致性和完整性。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)本节主要讲SA。23结构化分析方法特点 结构化分析方法特点n
12、n 面向 面向数据流 数据流进行需求分析的方法 进行需求分析的方法n n 结构化分析方法适合于 结构化分析方法适合于数据处理 数据处理类型软件的需求分析 类型软件的需求分析n n 结构化分析方法就是用 结构化分析方法就是用抽象模型 抽象模型的概念,按照软件内部 的概念,按照软件内部数 数据传递 据传递、变换 变换的关系,的关系,自顶向下逐层分解 自顶向下逐层分解,直到找到满足,直到找到满足功能要求的所有可实现的软件为止 功能要求的所有可实现的软件为止结构化分析方法使用工具 结构化分析方法使用工具u uERD ERD u uSTD STDu u数据流图 数据流图u u数据词典 数据词典u u判定
13、表与判定树、判定表与判定树、结构化英语 结构化英语u u层次方框图、层次方框图、Warnier Warnier图、图、IPO IPO图 图24结构化分析导出的分析模型包括数据模型、功能模型和行为模型,该模型以“数据字典”为核心,它描述了软件使用的所有数据对象。3.3.1 分析模型 25实体关系图(实体关系图(Entity-Relationship Diagram Entity-Relationship Diagram,ERD ERD):):作为数 作为数据建模的基础,描述数据对象及其关系;据建模的基础,描述数据对象及其关系;数据流图(数据流图(Data Flow Diagram Data Fl
14、ow Diagram,DFD DFD):):作为功能建模的基础,作为功能建模的基础,描述数据怎样转换以及转换的功能;描述数据怎样转换以及转换的功能;状态转换图(状态转换图(State-Transition Diagram State-Transition Diagram,STD STD):):作为行为建 作为行为建模的基础,表示系统的各种行为状态以及状态间的转换方式。模的基础,表示系统的各种行为状态以及状态间的转换方式。26 Entities 例:,Student Instructor Class Attributes 例:,NameI D#Relations 例:Enrolled in Te
15、ach1 1 1 N M N一.实体-联系图(Entity-Relationship Diagram)数据模型有三种基本元素:数据对象、属性、关系。27 InstructorStudentEnrolled inTeachClassI D#I D#NameNameSexSexTitleInstructor IDClass IDGradeStudent IDClass IDCreditI D#Subjectmn1n例如:28二.数据流图数据流图信息流和数据转换。对加工进行细化获得数据流图。从数据传递和加工的角度看,其以图形的方式刻画数据流从输入到输出的传递变换过程,描绘信息在系统中流动和处理的情况
16、。表示了系统内部信息的流向和系统的逻辑处理功能。1.1.作用 作用292.2.数据流图中的主要图形元素 数据流图中的主要图形元素数据加工 数据加工(数据变换 数据变换)数据源点或终点 数据源点或终点(外部实体 外部实体)数据流 数据流数据存储文件 数据存储文件30描述银行取款过程的数据流图313.3.数据流与数据加工之间的关系 数据流与数据加工之间的关系324.4.数据流图的层次结构 数据流图的层次结构n 为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。n 在多层数据流图中,顶层
17、流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据n n 底层流图 底层流图是指其 是指其加工不需再做分解 加工不需再做分解的数据流图 的数据流图,它,它处 处在最底层 在最底层n n 中间层流图 中间层流图则表示 则表示对其上层父图的细化 对其上层父图的细化。它的每一加 它的每一加工可能继续细化,形成子图。工可能继续细化,形成子图。33分层的数据流图 分层的数据流图34三 三.状态迁移图 状态迁移图最常用的动态分析方法 最常用的动态分析方法n n 状态迁移 状态迁移图 图n n 时序图 时序图n n Petri Petri网 网n n 系统的需求规格说
18、明通常是用自然语言来叙述的,系统的需求规格说明通常是用自然语言来叙述的,但是用自然语言描述往往会出现歧义性。但是用自然语言描述往往会出现歧义性。n n 为了直观地分析系统的动作,从特定的视点出发描 为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。述系统的行为,需要采用动态分析的方法。35n n 状态迁移图是描述系统的状态如何相应外部的信 状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图形表示。号进行推移的一种图形表示。u u 圆圈 圆圈“”表示可得到的系统 表示可得到的系统状态 状态u u 箭头 箭头“”表示从一种状态向另一种状态的 表示从一种状态
19、向另一种状态的迁 迁移 移。36例如 例如,当有多个申请占用 当有多个申请占用CPU CPU运行的进程时 运行的进程时,有关 有关CPU CPU分 分配的进程的状态迁移。配的进程的状态迁移。37n n 可得到的状态就绪,运行,等待 可得到的状态就绪,运行,等待n n 生成的事件 生成的事件t1 t1,t2 t2,t3 t3,t4 t4 t1 t1 中断事件 中断事件 t2 t2 中断已处理 中断已处理 t3 t3 分配 分配CPU CPU t4 t4 用完 用完CPU CPU时间 时间38状态迁移图的优点 状态迁移图的优点n n 状态之间的关系能够直观地捕捉到 状态之间的关系能够直观地捕捉到n
20、 n 由于状态迁移图的单纯性,能够机械地分析许多情 由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具 况,可很容易地建立分析工具39 3.3.2 结构化分析方法结构化分析过程是创建数据模型、功能模型和行为模型的过程数据模型功能模型行为模型E-R图DFD图STD图下面结合学生成绩管理系统的子系统查询系统,讲解如何画DFD。40(1)第0层DFD将整个系统表示成一个加工;(2)确定并标记主要的输入和输出;(3)分离出下一层中的加工、数据对象和存储,并对其进行细化,一次细化一个加工;(4)标记所有加工和箭头;(5)重复步骤(3)和(4),直到所有的加工只执行一个简单的操作,可以
21、很容易地用程序实现。在该系统中,教务人员录入学生信息、课程信息和成绩信息。学生可以随时查询自己所选课程的成绩。学生在查询成绩时应该具有相应的权限。数据流图是分层绘制的,使自顶向下对功能分解和细化的过程。41 第0层DFD图教务人员维护学生信息和课程信息,并登录学生的选课成绩;学生查询自己的成绩单。42 第1层DFD图对第0层DFD图中的一个加工“学生成绩管理”进行展开。43 第2层DFD图对第1层DFD图中的一个加工“查询学生成绩”进行展开。44绘制数据流图应当遵循以下原则:(1)分层时,子图的输入、输出数据流必须和父图中相应加工的输入、输出数据流一致;(2)加工的编号应唯一且具有层次性;(3
22、)加工不应该只有输入或只有输出,通常既有输入又有输出;(4)数据流图不应反映处理的顺序;(5)加工之间应通过数据存储进行通信,避免从一个加工直接流到另一个加工;(6)数据应通过加工进行流动,避免从一个数据存储直接流到另一个数据存储;(7)数据流图中所有元素的命名应当对客户有意义,且与业务相关;(8)不要在一个图中绘制7个以上的加工,否则难于绘制和理解。45结构化分析方法步骤示例 结构化分析方法步骤示例 商店业务处理系统 商店业务处理系统46n n 这个数据流图只是一个高层的系统逻辑模型,它反映了 这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能 目标系统要实现的功能n n
23、数据流图绘制步骤 数据流图绘制步骤u u 首先确定系统的输入和输出 首先确定系统的输入和输出u u 根据商店业务,画出顶层数据流图,以反映最主要 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程 业务处理流程u u 经过分析,商店业务处理的 经过分析,商店业务处理的主要功能 主要功能应当有 应当有销售 销售、采购 采购、会计 会计三大项。三大项。主要数据流输入的源点 主要数据流输入的源点和 和输出 输出终点 终点是 是顾客 顾客和 和供应商 供应商。u u 然后从输入端开始,根据商店业务工作流程,画出 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得
24、到第 数据流流经的各加工框,逐步画到输出端,得到第一层数据流图 一层数据流图47第一层数据流图48加细每一个加工框 销售细化49采购细化50检查和修改数据流图的原则 检查和修改数据流图的原则n n 数据流图上所有图形符号 数据流图上所有图形符号只限于 只限于前述四种基本图形元 前述四种基本图形元素 素n n 数据流图的 数据流图的主图必须包括前述四种基本元素 主图必须包括前述四种基本元素,缺一不,缺一不可 可n n 数据流图的主图上的数据流必须封闭在外部实体之间 数据流图的主图上的数据流必须封闭在外部实体之间n n 每个加工 每个加工至少有一个输入数据流和一个输出数据流 至少有一个输入数据流和
25、一个输出数据流n n 在数据流图中,需 在数据流图中,需按层给加工框编号 按层给加工框编号。编号表明该加。编号表明该加工所处层次及上下层的亲子关系 工所处层次及上下层的亲子关系n n 规定任何一个数据流子图必须与它上一层的一个加工 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此 对应,两者的输入数据流和输出数据流必须一致。此即 即父图与子图的平衡 父图与子图的平衡51n n 图上每个元素都必须有名字 图上每个元素都必须有名字n n 数据流图中不可夹带控制流 数据流图中不可夹带控制流n n 初画时可以忽略琐碎的细节,以集中精力于主要数据 初画时可以忽
26、略琐碎的细节,以集中精力于主要数据流 流52数据流图与其他流程图的区别1、数据流图与系统流程图 系统流程图中不仅有数据流,还有物流、资金流。DFD将物流、资金流排除在外,或者将它们抽象为数据流的形式。DFD仅以数据流的形态反映一个组织中整个管理业务的流程。2、数据流图与程序流程图 程序流程图的处理框之间有严格的时间顺序;DFD只反映数据的流向、处理逻辑和必要的数据存储,它不反映处理逻辑的先后时间顺序。数据流与控制流533.3.3 3.3.3 数据词典数据词典n n 数据词典与数据流图配合,能清楚地表达数据处理的要 数据词典与数据流图配合,能清楚地表达数据处理的要求。求。n n 内容:内容:数据
27、流、数据元素、数据文件 数据流、数据元素、数据文件加工、外部实体、数据结构 加工、外部实体、数据结构n n 词条描述 词条描述 对于在数据流图中每一个被命名的图形 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有 元素,均加以定义,其内容有:名字 名字,别名或编号 别名或编号,分类 分类,描述 描述,定义 定义,位置 位置,其它 其它,等等 等等.54(1 1)数据流词条描述)数据流词条描述n n 数据流名:数据流名:n n 说明:简要介绍作用即它产生的原因和结果 说明:简要介绍作用即它产生的原因和结果n n 数据流来源:来自何方 数据流来源:来自何方n n 数据流去向:去向何处
28、数据流去向:去向何处n n 数据流组成:数据结构 数据流组成:数据结构n n 数据量流通量:数据量,流通量 数据量流通量:数据量,流通量(2 2)数据元素词条描述)数据元素词条描述n n 数据元素名:数据元素名:n n 类型:数字(离散值,连续值),文字(编码类型)类型:数字(离散值,连续值),文字(编码类型)n n 长度:长度:n n 取值范围:取值范围:n n 相关的数据元素及数据结构:相关的数据元素及数据结构:55(3 3)数据文件词条描述)数据文件词条描述n n 数据文件名:数据文件名:n n 简述:存放的是什么数据 简述:存放的是什么数据n n 输入数据:输入数据:n n 输出数据:
29、输出数据:n n 数据文件组成:数据结构 数据文件组成:数据结构n n 存储方式:顺序,直接,关 存储方式:顺序,直接,关键码 键码n n 存取频率:存取频率:(4 4)加工逻辑词条描述)加工逻辑词条描述n n 加工名:加工名:n n 加工编号:反映该加工的 加工编号:反映该加工的层次 层次n n 简要描述:加工逻辑及功 简要描述:加工逻辑及功能简述 能简述n n 输入数据流:输入数据流:n n 输出数据流:输出数据流:n n 加工逻辑:简述加工程序,加工逻辑:简述加工程序,加工顺序 加工顺序56(5 5)源点及汇)源点及汇(终 终)点词条描述 点词条描述n n 名称:外部实体名 名称:外部实
30、体名n n 简要描述:什么外部实体 简要描述:什么外部实体n n 有关数据流:有关数据流:n n 数目:数目:576 6 数据结构的描述 数据结构的描述 符 符 号 号 含 含 义 义 举 举 例 例 被定义为 被定义为 与 与 x x=a a b b.,.,.或 或.|.|.或 或 x x=a a,b b,x x=a a|b b.或 或 m.n m.n 重复 重复 x x=a a,x x=3 3 a a 8 8(.)(.)可选 可选 x x=(=(a a)“.”“.”基本数据元素 基本数据元素 x x=“=“a a”.连结符 连结符 x x=1.9=1.958作业1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?2.为什么数据流图要分层?画数据流图要遵循那些原则?3.教材p58 19 4.图书管理系统需求分析报告59