《《软件工程与项目管理》第3章 软件需求分析.ppt》由会员分享,可在线阅读,更多相关《《软件工程与项目管理》第3章 软件需求分析.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 软件需求分析掌握:掌握:需求分析的重要性、需求分析的任务、需求分析的步骤、数据流图、数据字典、判定表和判定树、软件需求分析规格说明书。3.1 需求分析概述3.1.1 需求分析的重要性 通俗地说,需求分析就是分析软件用户的需求是什么。试想一下,如果投入大量的人力、物力、财力和时间,开发出的软件却满足不了客户的要求,那所有的投入都是徒劳。如果费了很大的精力,开发一个软件,最后却因不满足用户的要求,而要重新开发,这种返工同样也是让人痛心疾首的。3.1.2 需求分析的任务 需求分析阶段的任务主要要解决的是系统“做什么”的问题。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整地、准确地
2、表达出来,也不知道怎样用计算机解决他们的问题。而软件开发人员虽然知道怎样用软件完成人们提出的各种功能要求,但是,对用户的具体业务和需求不完全清楚,这是需求分析阶段的困难所在。3.1.2 需求分析的原则1分析人员要使用符合用户语言习惯的表达2分析人员要了解用户的业务及目标3分析人员必须编写软件需求报告4要求得到需求工作结果的解释说明5开发人员要尊重客户的意见6开发人员要对需求及产品实施提出建议和解决方案7描述产品使用特性8允许重用已有的软件组件9要求对变更的代价提供真实可靠的评估10获得满足客户功能和质量要求的系统11给分析人员讲解业务12用户应抽出时间清楚地说明并完善需求13准确而详细地说明需
3、求14及时做出决定15尊重开发人员的需求可行性及成本评估16划分需求的优先级17评审需求文档和原型18需求变更要立即联系19遵照开发小组处理需求变更的控制过程20尊重开发人员采用的需求分析过程3.1.3 需求分析的步骤 (1)归纳整理用户提出的各种问题和要求,弄清用户企图通过软件达到的目的,并把它作为要求和条件予以明确。分析人员借助各种工具和方法,获得对用户需求的基本理解,然后在需求获取方法的驱动和指导下,从非正式需求陈述中提取出用户的实际需求,由此确定软件的功能、性能、接口关系及有关属性、限制和边界等,标定软件的作用范围,确认支持性的软硬件环境及辅助工具与条件。此阶段还为软件需求分析活动提供
4、了相应的过程控制机制。(2)在需求获取的基础上建立逻辑模型,使用自顶向下、逐层分解的方法,把用户对软件的需求分解成若干子系统或软件成分,定义软件成分的内部功能,并标定它们之间的接口。(3)用准确、简练、无二义性的语言将用户需求规格化为软件需求规格说明,使用户和开发人员对拟开发的软件有共同的理解。软件需求规格说明同时还是软件测试、验收和交付的基准。(4)通过需求评审,对需求获取、需求定义等进行全面审查,力图发现需求分析中的错误和缺陷,最终确认软件需求规格说明。同时,以需求规格说明为输入,通过模拟或快速原型等方法,向用户展示需求规格说明所描述的系统外部行为和相应特征。3.2 结构化分析方法及工具3
5、.2.1 概述结构化分析(简称SA 法)方法是面向数据流的需求分析方法,由Yourdon,Constaintine 及DeMarco 等人于70 年代末提出,并得到广泛的应用。结构化分析方法适合于分析大型的数据处理系统,特别是企事业管理系统。结构化分析的步骤如下:(1)分析当前的情况,做出反映当前物理模型的数据流图。(2)推导出等价的逻辑模型的数据流图。(3)设计新的逻辑系统,生成数据字典和基元描述。(4)建立人机接口,提出可供选择的目标系统物理模型的数据流图。(5)确定各种方案的成本和风险等级,据此对各种方案进行分析。(6)选择一种方案。(7)建立完整的需求规约。3.2.2 数据流图 数据流
6、图,简称DFD(Data Flow Diagraph),是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。数据流图由以下4部分组成:1数据流 数据流由一组固定成分的数据组成,表示数据的流向。值得注意的是,数据流图中描述的是数据流,而不是控制流。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。2加工 加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流
7、图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。3数据存储 数据存储表示暂时存储的数据。每个数据存储都有一个名字。4外部实体 外部实体是存在于软件系统之外的人员或组织,它指出数据的发源地或系统所产生的数据的归属地。符号命名代表的意义矩形或立方体数据的源点/终点圆角矩形或圆形变换数据的处理缺右边的矩形或平行线数据存储箭头数据流 在实际应用中,一般是采用分层的数据流图来描述软件系统,其步骤如下:(1)从问题描述中分析出4种基本组成成分(外部实体、加工、数据存储、数据流)。(2)根据(1)的结果画出基本系统数据流图,称为顶层图。(3)把(2)得到的基本系统模型细化为功能级数据流图。(
8、4)对功能级数据流图中的主要功能进一步细化,直至满意为止。根据数据处理对象和处理方式的不同,通常又将数据流图分为变换型数据流图和事务型数据流图:(1)变换型数据流图 具有较明显的输入、变换(或主加工)和输出的数据流图称为变换型数据流图。在变换型数据流图中,主加工是系统的中心。如图3-2所示的是一个典型的变换型数据流图,图中“发卡”是主加工,“现金”是输入,“IC卡”是输出。图3-2 IC卡管理系统的顶层数据流图 (2)事务型数据流图 某个加工将它的输入分离成一串发散的数据流,形成许多活动路径,并根据输入的值选择其中一条路径,具有这样特征的数据流图是事务型数据流图。图3-1 事务型数据流图的一个
9、例子 以下以某商场顾客IC卡管理系统为例,来说明数据流图的画法。顾客持IC卡进行购物,其中负责管理IC卡的业务包括发卡、维护、对账及错误处理、发票打印、结算。发卡需要向卡内写入发卡信息;维护是指对卡的修复、初始化、读取、查询的操作;对账及错误处理指将IC卡帐户主记录中的金额与帐户流水账中的消费明细进行核对,如发现账目不同,则进行错误处理;发票打印是打印当前IC卡所产生金额的发票;结算指当前IC卡操作员对购物进行结算。1)从问题描述中分析出4种基本组成成分(1)外部实体:顾客。(2)数据流:顾客ID、现金、IC卡信息、购物单、发票信息、维护结果、对账结果、结账信息、正确的帐户信息。(3)加工:发
10、卡、维护、对账及错误处理、发票打印、结算。(4)数据存储:发卡记录、结账记录。2)画出系统的基本模型图3-2 IC卡管理系统的顶层数据流图 3)将基本系统模型细化为成功能级模型 根据系统个描述,在“发卡”后,还应有“充值”,“购物”后还应有“收费”。图3-3 对IC卡管理系统基本模型形成功能级模型 4)对系统主要功能进一步细化 以“发卡”模块为例,可细化为“发卡”、“打印”、“维护”、“结账”、“对账”几个功能模块。图3-4 IC卡管理系统模型的进一步细化3.2.3 数据字典 分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需对图中的每个数据和加工给出解释。数据字典的作用就是对
11、数据流图进行描述,它是数据流图中包含的所有元素的定义的集合,是对数据流图的补充。数据字典包括了4类条目:数据流、数据项、文件及基本加工。1数据流条目 它给出了数据流图中数据流的定义,通常将数据流简单描述为该数据流的各组成数据项。例如,数据流“乘客名单”由“乘客姓名”、“单位名”和“等级”组成,则数据字典中的“乘客名单”条目是:乘客名单=乘客姓名+单位名+等级 又如,报名单=姓名+单位名+年龄+性别+课程名。数据流名:查询简 述:系统处理的一个命令别 名:无组 成:学生查询|教师查询|课程查询注 释:至2010年底还将增加3 4 种查询 2文件条目 给出某个文件的定义。文件的定义通常是列出文件记
12、录的组成数据流,还可指出文件的组织方式。例如,某销售系统的订单文件:订单文件=订单编号+顾客名称+产品名称+订货数量+交货日期 3数据项条目 给出某个数据单项的定义,通常是该数据项的值类型、允许值等。例如,账号=00000 99999;存款期=1|3|5 (单位:年)4加工条目 加工条目就是“加工小说明”,是对“加工”的注释。由于“加工”是DFD 图的重要组成部分,一般应单独进行说明。符号含义例子及说明=被定义为报名号=学名,表示报名单被定义为学号+与报名单=报名号+姓名,表示报名单由报名号和姓名组成|或性别=男|女,表示性别是男或女重复X=a,表示X由0个或多个a组成mn重复X=2a6,表示
13、重复2-6次a()可选X=(a),表示a可在X中出现,也可不出现“”基本数据元素X=“a”,表示X是取值为字符a的数据元素.连接符X=1.9,表示X可取1到8中的任意一个值表3-2 在数据字典的定义中出现的符号3.2.4 结构化语言 结构化语言是介乎自然语言和形式语言之间的一种半形式语言,它是自然语言的一个受限制的子集。结构化语言一般分为两层结构:外层语法较具体,为控制结构;内层较灵活,表达要做什么。一般来说,外层的控制结构可参考编程语言中的顺序、选择和循环结构。以火车票售票为例,如果是学生,并且每年累计的乘车次数少于4次,则售半票,否则售全票。用形式化语言可描述如下:IF 乘客是学生THEN
14、 IF 每年累计的乘车次数少于4次 THEN 售半票 ELSE 售全票 ENDIFELSE 售全票ENDIF 结构化语言的特点是简单直观,且容易转化为程序,但它不方便处理组合条件。3.2.5 判定表和判定树 判定表和判定树都是用于描述加工的图形工具。判定表采用表格形式来表达逻辑判断问题,表格分成4个部分:左上角为条件说明,左下角为行动说明,右上角为各种条件的组合说明,右下角为各条件组合下相应的行动。以某校教师的课时津贴为例,课时津贴标准是由教师的职称及类别(本校、外聘)来决定的,本校教师:教授50元,副教授40元,讲师35元,助教30元。外聘:教授60元,副教授50元,讲师40元,助教35元。
15、用判定表表达如表3-3所示。条件说明教授YY副教授YY讲师YY助教YY本校YYYY行动说明60*50*40*35*30*表3-3 教师课时津贴的判定表表示图3-5 教师课时津贴的判定树表示判定表虽然能清晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的,初次接触这种工具的人要理解它需要有一个简短的学习过程。判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。虽然判定树比判定表更直观,但简洁性却不如判定表3.2.6 层次方框图 层次方框图用树形结构的一系列多层次的矩形框描述数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完
16、整的数据结构,下面的各层矩形框代表这个数据结构的子集,最底层的各个框代表组成这个数据结构的实际数据元素。例如,描绘一家计算机公司的产品的数据结构可用如图3-6所示的层次方框图来表示。图3-6 计算机公司产品结构的层次方框图3.2.7 Warnier图 法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具Warnier图。与层次方框图类似,Warnier图也用树形结构描绘信息。图3-7是用Warnier图描绘软件概念的例子,它说明了这种图形工具的用法。图3-7 软件概念的Warnier图3.2.8 IPO图 IPO图是输入/处理/输出图的简称,它是由美国IBM公司发展完善起来的
17、一种图形工具,能够方便地描绘输入数据、数据处理和输出数据的关系。IPO图使用的基本符号既少又简单,因此很容易学会。IPO图的基本形式是在左边的框中列出有关的输入数据,在中间的框中列出主要的处理,在右边的框中列出产生的输出数据。图3-8 数据库更新记录的IPO图 IPO图的不足之处在于:(1)它没有验证功能。(2)它没有反映软件的性能要求。(3)对于一些大型软件,资料量太大。例如,如果程序有1000个模块,则仅IPO图就需1000张。3.3 需求评审3.3.1 需求评审的原则1分层次评审2正式评审与非正式评审结合3分阶段评审4精心挑选评审员5对评审员进行培训6充分利用需求评审检查单7建立标准的评审流程8做好评审后的跟踪工作9充分准备评审3.4 软件需求分析规格说明书3.4.1 软件需求分析规格说明书的内容1引言1.1编写目的1.2背景1.3定义1.4参考资料2任务概述2.1目标2.2用户的特点2.3假定和约束3需求规定3.1对功能的规定3.2对性能的规定3.2.1精度3.2.2时间特性要求3.2.3灵活性3.3输人输出要求3.4数据管理能力要求3.5故障处理要求3.6其他专门要求4运行环境规定4.1设备4.2支持软件4.3接口4.4控制 3.4.2 案例分析图3-9 学生成绩管理系统数据流图第第3章章 结束结束 谢谢!
限制150内