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