《软件工程与项目管理》软件需求分析

上传人:宝路 文档编号:50648913 上传时间:2018-08-09 格式:PPT 页数:70 大小:917.08KB
返回 下载 相关 举报
《软件工程与项目管理》软件需求分析_第1页
第1页 / 共70页
《软件工程与项目管理》软件需求分析_第2页
第2页 / 共70页
《软件工程与项目管理》软件需求分析_第3页
第3页 / 共70页
《软件工程与项目管理》软件需求分析_第4页
第4页 / 共70页
《软件工程与项目管理》软件需求分析_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《《软件工程与项目管理》软件需求分析》由会员分享,可在线阅读,更多相关《《软件工程与项目管理》软件需求分析(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用户应

3、抽出时间清楚地说明并完善需求 13准确而详细地说明需求14及时做出决定 15尊重开发人员的需求可行性及成本评估 16划分需求的优先级 17评审需求文档和原型 18需求变更要立即联系 19遵照开发小组处理需求变更的控制过程 20尊重开发人员采用的需求分析过程3.1.3 需求分析的步骤(1)归纳整理用户提出的各种问题和要求,弄清用 户企图通过软件达到的目的,并把它作为要求和条件 予以明确。分析人员借助各种工具和方法,获得对用 户需求的基本理解,然后在需求获取方法的驱动和指 导下,从非正式需求陈述中提取出用户的实际需求, 由此确定软件的功能、性能、接口关系及有关属性、 限制和边界等,标定软件的作用范

4、围,确认支持性的 软硬件环境及辅助工具与条件。此阶段还为软件需求 分析活动提供了相应的过程控制机制。(2)在需求获取的基础上建立逻辑模型,使用自顶 向下、逐层分解的方法,把用户对软件的需求分解成 若干子系统或软件成分,定义软件成分的内部功能, 并标定它们之间的接口。(3)用准确、简练、无二义性的语言将用户需求规 格化为软件需求规格说明,使用户和开发人员对拟开 发的软件有共同的理解。软件需求规格说明同时还是 软件测试、验收和交付的基准。(4)通过需求评审,对需求获取、需求定义等进行 全面审查,力图发现需求分析中的错误和缺陷,最终 确认软件需求规格说明。同时,以需求规格说明为输 入,通过模拟或快速

5、原型等方法,向用户展示需求规 格说明所描述的系统外部行为和相应特征。3.2 结构化分析方法及工具3.2.1 概述 结构化分析(简称SA 法)方法是面向数 据流的需求分析方法,由Yourdon, Constaintine 及DeMarco 等人于70 年代 末提出,并得到广泛的应用。结构化分 析方法适合于分析大型的数据处理系统 ,特别是企事业管理系统。 结构化分析的步骤如下: (1)分析当前的情况,做出反映当前物理模型的数据流图。 (2)推导出等价的逻辑模型的数据流图。 (3)设计新的逻辑系统,生成数据字典和基元描述。 (4)建立人机接口,提出可供选择的目标系统物理模型的数 据流图。 (5)确定

6、各种方案的成本和风险等级,据此对各种方案进行 分析。 (6)选择一种方案。 (7)建立完整的需求规约。3.2.2 数据流图数据流图,简称DFD(Data Flow Diagraph),是采用图形方式来表达系 统的逻辑功能、数据在系统内部的逻辑 流向和逻辑变换过程,是结构化系统分 析方法的主要表达工具及用于表示软件 模型的一种图示方法。数据流图由以下4部分组成:1数据流数据流由一组固定成分的数据组成,表示数据的流 向。值得注意的是,数据流图中描述的是数据流,而 不是控制流。除了流向数据存储或从数据存储流出的 数据不必命名外,每个数据流必须要有一个合适的名 字,以反映该数据流的含义。 2加工加工描

7、述了输入数据流到输出数据之间的变换,也 就是输入数据流经过什么处理后变成了输出数据。每 个加工都有一个名字和编号。编号能反映该加工位于 分层的数据流图的哪个层次和哪张图中,能够看出它 是由哪个加工分解出来的子加工。 3数据存储数据存储表示暂时存储的数据。每个数据存 储都有一个名字。 4外部实体外部实体是存在于软件系统之外的人员或组 织,它指出数据的发源地或系统所产生的数据 的归属地。符号命名代表的意 义 矩形或立方 体数据的源点 /终点 圆角矩形或 圆形变换 数据 的处理 缺右边的矩 形或平行线数据存储箭头数据流在实际应用中,一般是采用分层的数据流图来描述 软件系统,其步骤如下:(1)从问题描

8、述中分析出4种基本组成成分(外部 实体、加工、数据存储、数据流)。(2)根据(1)的结果画出基本系统数据流图,称 为顶层图。(3)把(2)得到的基本系统模型细化为功能级数 据流图。(4)对功能级数据流图中的主要功能进一步细化, 直至满意为止。根据数据处理对象和处理方式的不同,通常 又将数据流图分为变换型数据流图和事务型数 据流图:(1)变换型数据流图具有较明显的输入、变换(或主加工)和输 出的数据流图称为变换型数据流图。在变换型 数据流图中,主加工是系统的中心。如图3-2 所示的是一个典型的变换型数据流图,图中“发 卡”是主加工,“现金”是输入,“IC卡”是输出。图3-2 IC卡管理系统的顶层

9、数据流图(2)事务型数据流图某个加工将它的输入分离成一串发散的数据 流,形成许多活动路径,并根据输入的值选择 其中一条路径,具有这样特征的数据流图是事 务型数据流图。图3-1 事务型数据流图的一个例子以下以某商场顾客IC卡管理系统为例,来说 明数据流图的画法。顾客持IC卡进行购物,其中负责管理IC卡的 业务包括发卡、维护、对账及错误处理、发票 打印、结算。发卡需要向卡内写入发卡信息; 维护是指对卡的修复、初始化、读取、查询的 操作;对账及错误处理指将IC卡帐户主记录中 的金额与帐户流水账中的消费明细进行核对, 如发现账目不同,则进行错误处理;发票打印 是打印当前IC卡所产生金额的发票;结算指当

10、 前IC卡操作员对购物进行结算。1)从问题描述中分析出4种基本组成成分 (1)外部实体:顾客。 (2)数据流:顾客ID、现金、IC卡信息、购物 单、发票信息、维护结果、对账结果、结账信 息、正确的帐户信息。 (3)加工:发卡、维护、对账及错误处理、发 票打印、结算。 (4)数据存储:发卡记录、结账记录。2)画出系统的基本模型图3-2 IC卡管理系统的顶层数据流图3)将基本系统模型细化为成功能级模型根据系统个描述,在“发卡”后,还应有“充值” ,“购物”后还应有“收费”。图3-3 对IC卡管理系统基本模型形成功能级模型4)对系统主要功能进一步细化以“发卡”模块为例,可细化为“发卡”、“打印” 、

11、“维护”、“结账”、“对账”几个功能模块。图3-4 IC卡管理系统模型的进一步细化3.2.3 数据字典分层数据流图只是表达了系统的“分解 ”,为了完整地描述这个系统,还需对图 中的每个数据和加工给出解释。数据字 典的作用就是对数据流图进行描述,它 是数据流图中包含的所有元素的定义的 集合,是对数据流图的补充。数据字典包括了4类条目:数据流、数 据项、文件及基本加工。1数据流条目它给出了数据流图中数据流的定义,通常将 数据流简单描述为该数据流的各组成数据项。例如,数据流“乘客名单”由 “乘客姓名”、“单 位名”和“等级”组成,则数据字典中的“乘客名单 ”条目是:乘客名单=乘客姓名+单位名+等级又

12、如,报名单=姓名+单位名+年龄+性别+ 课程名。数据流名:查询 简 述:系统处理的一个命令 别 名:无 组 成:学生查询|教师查询|课程查询 注 释 : 至2010年底还将增加3 4 种查询2文件条目给出某个文件的定义。文件的定义通 常是列出文件记录的组成数据流,还可 指出文件的组织方式。例如,某销售系统的订单文件:订单文件=订单编号+顾客名称+产品 名称+订货数量+交货日期3数据项条目给出某个数据单项的定义,通常是该 数据项的值类型、允许值等。例如,账号= 00000 99999;存款 期= 1 | 3 | 5 (单位:年)4加工条目加工条目就是“加工小说明”,是对“加 工”的注释。由于“加

13、工”是DFD 图的重要 组成部分,一般应单独进行说明。符号含义例子及说明=被定义为报名号=学名,表示报名单被定义为学号+与报名单=报名号+姓名,表示报名单由报名号和姓 名组成 |或性别=男|女,表示性别是男或女重复X=a,表示X由0个或多个a组成mn重复X=2a6,表示重复2-6次a()可选X=(a),表示a可在X中出现,也可不出现“”基本数据元素X=“a”,表示X是取值为字符a的数据元素连接符X=19,表示X可取1到8中的任意一个值表3-2 在数据字典的定义中出现的符号3.2.4 结构化语言结构化语言是介乎自然语言和形式语言之间的一种 半形式语言,它是自然语言的一个受限制的子集。结 构化语言

14、一般分为两层结构:外层语法较具体,为控 制结构;内层较灵活,表达要做什么。一般来说,外 层的控制结构可参考编程语言中的顺序、选择和循环 结构。以火车票售票为例,如果是学生,并且每年累计的 乘车次数少于4次,则售半票,否则售全票。用形式化 语言可描述如下:IF 乘客是学生 THEN IF 每年累计的乘车次数少于4次THEN 售半票ELSE 售全票ENDIF ELSE售全票 ENDIF结构化语言的特点是简单直观,且容 易转化为程序,但它不方便处理组合条 件。3.2.5 判定表和判定树判定表和判定树都是用于描述加工的图形工具。判定表采用表格形式来表达逻辑判断问题,表格分 成4个部分:左上角为条件说明

15、,左下角为行动说明, 右上角为各种条件的组合说明,右下角为各条件组合 下相应的行动。以某校教师的课时津贴为例,课时津贴标准是由教 师的职称及类别(本校、外聘)来决定的,本校教师 :教授50元,副教授40元,讲师35元,助教30元。外 聘:教授60元,副教授50元,讲师40元,助教35元。 用判定表表达如表3-3所示。条 件 说 明教授YY副教授YY讲师YY助教YY本校YYYY行 动 说 明60*50*40*35*30*表3-3 教师课时津贴的判定表表示图3-5 教师课时津贴的判定树表示 判定表虽然能清晰地表示复杂的条件组合与应做的动 作之间的对应关系,但其含义却不是一眼就能看出来 的,初次接触

16、这种工具的人要理解它需要有一个简短 的学习过程。 判定树的优点在于,它的形式简单到不需任何说明, 一眼就可以看出其含义,因此易于掌握和使用。 虽然判定树比判定表更直观,但简洁性却不如判定表3.2.6 层次方框图层次方框图用树形结构的一系列多层次的矩 形框描述数据的层次结构。树形结构的顶层是 一个单独的矩形框,它代表完整的数据结构, 下面的各层矩形框代表这个数据结构的子集, 最底层的各个框代表组成这个数据结构的实际 数据元素。例如,描绘一家计算机公司的产品的数据结 构可用如图3-6所示的层次方框图来表示。图3-6 计算机公司产品结构的层次方框图3.2.7 Warnier图法国计算机科学家Warnier提出了表示 信息层次结构的另外一种图形工具 Warnier图。与层次方框图类似, Warnier图也用树形结构描绘信息。图3- 7是用Warnier图描绘软件概念的例子, 它说明了这种图形工具的用法。图3-7 软件概念的Warnier图3.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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