需求分析是发现、求精、建模、规格说明和复审的过程;...

95
需需需需需需需 需需需 需需需 需需需需需需需需需需需 、、、; 需需需需需需需需需需需需 需需需需需需需需需需需需需需需需需 ,。 需需需 需需需需 需需 , 需需需需 需 需需需需需需需需需( 需需需需 ) 需需需需需需需需 ( 需需需需 ) 需需需需需需需需需需需需需 需需需需需需 第第第第第第第

Upload: keon

Post on 23-Jan-2016

148 views

Category:

Documents


0 download

DESCRIPTION

第五章软件需求. 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。. 重要性. 一是用户需求的动态性 ( 不稳定性 ). 需求获取 困难 , 原因有三. 二是需求的模糊性 ( 不准确性 ). 三是需求必须得到用户的确认,否则毫无意义. 第五章软件需求. 需求分析的任务 准确地 定义 未来系统的目标,确定为了满足用户的需求系统必须做什么 用 < 需求规格说明书 > 规范的形式准确地表达用户的 需求 。. 软件需求分析的几个阶段. 问题分析 问题评估和方案综合 建模 规约 复审. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求分析是发现、求精、建模、规格说明和复审的过程;需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

重要性

需求获取困难

, 原因有三

一是用户需求的动态性 ( 不稳定性 )

二是需求的模糊性 ( 不准确性 )

三是需求必须得到用户的确认,否则毫无意义

第五章软件需求

Page 2: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求分析的任务需求分析的任务 准确地准确地定义定义未来系统的目标,确定为未来系统的目标,确定为

了满足用户的需求系统必须做什么了满足用户的需求系统必须做什么用 用 << 需求规格说明书需求规格说明书 > > 规范的形规范的形

式准确地表达用户的式准确地表达用户的需求需求。。

第五章软件需求

Page 3: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

软件需求分析的几个阶段软件需求分析的几个阶段• 问题分析问题分析• 问题评估和方案综合问题评估和方案综合• 建模建模• 规约规约• 复审复审

系统分析员的主要焦点是 “做什么( what )” ,不是 “怎样做( how )”

Page 4: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求获取需求获取

需求获取的目的需求获取的目的

• 清楚地理解所要解决的问题清楚地理解所要解决的问题

• 完整地获取用户需求完整地获取用户需求

Page 5: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求获取的内容需求获取的内容

1.1. 用户需求分类用户需求分类 (1)(1) 功能性需求功能性需求 : : 定义了系统做什么(描述系统必须支持 定义了系统做什么(描述系统必须支持 的功能和过程)的功能和过程) (2)(2) 非功能性需求(技术需求)非功能性需求(技术需求) :: 定义了系统工作时的特性定义了系统工作时的特性 (描述操作环境和性能目标)(描述操作环境和性能目标)

Page 6: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

两类需求包括的内容两类需求包括的内容(1) (1) 功能功能(2) (2) 性能性能(3) (3) 环境环境(4) (4) 界面界面(5) (5) 用户或人的因用户或人的因

素素(6) (6) 文档 文档

(7) (7) 数据数据(8) (8) 资源资源(9) (9) 安全保密安全保密(10)(10) 软件成本软件成本消耗与开发进消耗与开发进度度(11)(11) 质量保证质量保证

Page 7: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

功能需求功能需求 • 系统做什么?系统做什么?• 系统何时做什么?系统何时做什么?• 系统何时及如何修改系统何时及如何修改 或升级?或升级?

Page 8: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

性能需求性能需求 软件开发的技术性指标软件开发的技术性指标例如:例如:• 存储容量限制存储容量限制• 执行速度、相应时间执行速度、相应时间• 吞吐量吞吐量

Page 9: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

环境需求环境需求 •硬件设备:硬件设备:机型、外设、接口、机型、外设、接口、 地点、分布、温度、 地点、分布、温度、 湿度、磁场干扰等湿度、磁场干扰等

•软件: 软件: 操作系统操作系统 网络网络 数据库数据库

Page 10: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

界面需求界面需求 • 有来自其它系统的输入吗?有来自其它系统的输入吗?• 到自其它系统的输出吗?到自其它系统的输出吗?• 对数据格式有规定吗?对数据格式有规定吗?• 对数据存储介质有规定吗?对数据存储介质有规定吗?

Page 11: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

用户或人的因素用户或人的因素 • 用户类型?用户类型?• 各种用户熟练程度?各种用户熟练程度?• 需受何种训练?需受何种训练?• 用户理解、使用系统的难度?用户理解、使用系统的难度?• 用户错误操作系统的可能性?用户错误操作系统的可能性?

Page 12: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

文档需求文档需求 • 需哪些文档?需哪些文档?

• 文档针对哪些读者文档针对哪些读者??

Page 13: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据需求数据需求 • 输入、输出数据的格式?输入、输出数据的格式?• 接收、发送数据的频率?接收、发送数据的频率?• 数据的准确性和精度?数据的准确性和精度?• 数据流量?数据流量?• 数据需保持的时间?数据需保持的时间?

Page 14: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

资源需求资源需求 • 软件运行时所需的数据、软件。软件运行时所需的数据、软件。 内存空间等资源。内存空间等资源。

• 软件开发、维护所需的人力、软件开发、维护所需的人力、 支撑软件、开发设备等。支撑软件、开发设备等。

Page 15: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

安全保密要求安全保密要求 • 需对访问系统或系统信息加以控 需对访问系统或系统信息加以控 制吗?制吗?• 如何隔离用户之间的数据?如何隔离用户之间的数据?• 用户程序如何与其它程序和操作 用户程序如何与其它程序和操作 系统隔离?系统隔离?• 系统备份要求?系统备份要求?

Page 16: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

软件成本消耗软件成本消耗 与开发进度需求 与开发进度需求

•开发有规定的时间表吗?开发有规定的时间表吗?•软硬件投资有无限制软硬件投资有无限制??

Page 17: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

质量保证质量保证• 系统的可靠性要求?系统的可靠性要求?• 系统必须监测和隔离错误吗?系统必须监测和隔离错误吗?

• 规定系统平均出错时间?规定系统平均出错时间?• 出错后,重启系统允许的时间?出错后,重启系统允许的时间?• 系统变化如何反映到设计中?系统变化如何反映到设计中?• 维护是否包括对系统的改进?维护是否包括对系统的改进?• 系统的可移植性?系统的可移植性?

Page 18: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求分析的步骤需求分析的步骤

当前系统

目标系统

物理模型

逻辑模型

逻辑模型

物理模型

模型化 抽象化

具体化 实例化

怎么做

做什么

当前系统

目标系统

需求定义

Page 19: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

逻辑模型和物理模型 模型是对对象系统的形式化的特征 抽象,概括性或近似地表示; 构造模型的过程是一个抽象、分 析的过程。

对象系统

模型模型系统系统

抽象(映射)

模型应用模型应用

模型构造的过程模型构造的过程模型构造的过程模型构造的过程

Page 20: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

逻辑模型 物理模型逻辑模型 物理模型 (( 本质模型、概念模型本质模型、概念模型 )) ((实施模型、技术模型实施模型、技术模型 ))

现现行行系系统统

目目标标系系统统

描述重要的业描述重要的业务功能,无论务功能,无论系统是如何实系统是如何实施的。施的。

描述现实系统是描述现实系统是如何在物理上实如何在物理上实现的。现的。

描述新系统的主描述新系统的主要业务功能和用要业务功能和用户新的需求,无户新的需求,无论系统应如何实论系统应如何实施。施。

描述新系统是如描述新系统是如何实施的(包括何实施的(包括技术)。技术)。

Page 21: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求建模建模的原因:

•在建模过程中了解系统在建模过程中了解系统

•通过抽象降低复杂性通过抽象降低复杂性

•有助于回忆所有的细节有助于回忆所有的细节

•有助于开发小组间的交流有助于开发小组间的交流

•有助于与用户的交流有助于与用户的交流

•为系统的维护提供文档

Page 22: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构)相同的另一对象或问题,从而加以解决的方法。

模型化方法要求所建立的模型能真实反映所研究对象的整体结构、关系或某一过程、某一局部、某一侧面的本质特征和变化规律。

需求建模

Page 23: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

模型的类型•数学模型数学模型

•描述模型描述模型

•图形模型图形模型

Page 24: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求分析过程示意需求分析过程示意

学生学生

(1) (1) 通过对现实环境的调查,通过对现实环境的调查, 获得当前系统的物理模型获得当前系统的物理模型

学生

购书申请

购书单

发票

领书单 书

107张

教务科206王

会计室206李

出纳员303赵

教材科

学生购买教材的物理模型学生购买教材的物理模型

Page 25: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求分析过程示意需求分析过程示意(2) (2) 去掉具体模型中的非本质因素,去掉具体模型中的非本质因素, 抽抽象象出当前系统的逻辑模型出当前系统的逻辑模型

学生购买教材的逻辑模型学生购买教材的逻辑模型

学生学生

学生

购书申请

购书单

发票

领书单 书

审查有效性 开发票 开领

书单 发书

Page 26: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

需求分析过程示意需求分析过程示意(3) (3) 分析当前系统与目标系统的差别,分析当前系统与目标系统的差别, 建立目标系统的逻辑模型建立目标系统的逻辑模型

计算机售书系统的逻辑模型计算机售书系统的逻辑模型

学生学生

学生购书单 发票 领书单审查并

开发票开领书单

无效书单

Page 27: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

分析阶段中常用的模型(逻辑模型)•数据流图(数据流图( DFDDFD ))•实体―联系图( 实体―联系图( ERD ERD ))•类图类图•实例图实例图•时序图时序图•状态图状态图•协作图协作图•事件列表事件列表•数据流定义数据流定义•数据元素定义数据元素定义• …… ……

Page 28: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

客户

保险销售人员

签订一份保险单

销售统计

客户统计

使用用例图举例

Page 29: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

状态图

例:状态 1

Do:活动 1状态 2

.…...

事件 1[条件 1] / 动作1

结束事件

初始事件

空闲 可视菜单左边按钮按下 /显示弹出菜单左边按钮弹起 /擦除弹出菜单

光标移动 /高亮菜单项

弹出菜单动作

Page 30: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

接电话的顺序图 :受话者 交换机 远程交换机 受话者

拿起话筒

听通话声拨号码

......

铃响信号 铃响

铃响停止信号

拿起话筒

铃响停止

<10

de

a

bc

{b-a<1}

{e-d<5}

{c-b<10}

路径

Page 31: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

合作图举例

打印机忙保存打印文件

队列 计算机

打印机空闲打印文件 打印机打印服务器

打印文件

Page 32: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

电梯状态图举例

在一楼 上升

停滞下降回到一楼

回一楼

想要到达楼层

想要到达楼层

电梯行程

开始 向上

向上

向下

Page 33: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

§3.4 分析建摸方法结构化分析 (传统建模方法 )

面向对象分析

Page 34: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

§3.4.1 结构化分析方法 (Structured Analisys, SA)

基于数据流技术的分析方法 基于数据流技术的分析方法 需求获取应遵循的三条基本原则:需求获取应遵循的三条基本原则:

分解分解 抽象抽象 投影投影

Page 35: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

分析模型的主要目标分析模型的主要目标•描述用户需要描述用户需要•建立创建软件设计的基础建立创建软件设计的基础•定义软件完成后可被确认的定义软件完成后可被确认的一组需求一组需求

Page 36: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

分析模型的结构分析模型的结构

数据数据字典字典

数据数据流图流图E-RE-R

图图

状态状态变变迁图迁图

加加工工

规规约约

控制规约控制规约

数数据据

对对象象描描 述述

Page 37: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

分析模型的元素分析模型的元素• 数据字典数据字典 (DD)(DD) ::模型核心模型核心 ((中心库中心库 ))• E-RE-R 图图 (ERD)(ERD) ::• 数据流图数据流图 (DFD)(DFD)

• 指明数据在系统中移动时如何被变换指明数据在系统中移动时如何被变换 ;;• 描述对数据流进行变换的功能描述对数据流进行变换的功能 ;;

DFDDFD 中每个功能的描述包含在加工规约中每个功能的描述包含在加工规约 ((小说明小说明 )) 。。•状态变迁图状态变迁图 (STD)(STD) 指明作为外部事件的结果指明作为外部事件的结果 ,,系统将如何系统将如何 动作。动作。

Page 38: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

3.4.3 数据建模 E-R 图是数据建模的基础

Page 39: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

将分析模型转换为软件设计将分析模型转换为软件设计

数据数据字典字典

数据数据流图流图

E-RE-R 图图

状态变迁图状态变迁图

加加工工

规规约约

控制规约控制规约

数数据据

对对

描描 述述

象象

数 据 设 计

体系结构设计

接口设计

过程设计

分析模型分析模型 设计模型设计模型

Page 40: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

将设计模型将设计模型金字塔倒立金字塔倒立的后果是什么?的后果是什么?

数 据 设 计

体系结构设计

接口设计

过程设计

Page 41: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

讨论要点

SA 方法建立功能模型的描述方法• DFD

• DD

• 其他描述方法

Page 42: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

3.4.4 功能建模和信息流

基于计算机的系统

输入信息

信息流模型

输出信息 外部实体外部实体

外部实体 输入信息

外部实体

外部实体

输出信息

输出信息

Page 43: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

一 . 数据流图 (DFD , Data Flow Diagram)

描述逻辑模型的图形工具, 表示数据在系统内的变化。

Page 44: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

实例 考务处理系统功能 (1) 对考生送来的报名单进行检查 ;(2) 对合格的报名单编好准考证号后将准考

证送给考生,并将汇总后的考生名单送给阅卷站 ;

(3) 对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者 ;

Page 45: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

实例 考务处理系统功能 (4) 制作考生通知单 (含成绩及合格 /不合格

标志 ) 送给考生 ;(5)按地区进行成绩分类统计和试题难度分

析,产生统计分析表。

Page 46: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

考务处理系统的分层DFD

Page 47: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

顶层数据流图

考生

考务处理系统

考试中心

阅卷站

不合格报名单

报名单准考证

考生通知单 成绩清单

合格标准

错误成绩清单

考生名单

统计分析表

Page 48: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

登记报名单

报名单

准考证

1统计成绩

2不合格报名单

考生通知单

统计分析表

0 层数据流图

考生名册

绩清单

合格标准

考生名单

成绩

清单

错误

Page 49: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

一层数据流图 (a)

检查报名单

报名单

准考证1.1编准考

证号

1.2不合格报名单

考生名册

考生名单

合格报名单

登记考生

1.3

Page 50: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

一层数据流图 (b)

检查成绩清单

2.1审定

合格者

2.2

考生名册

正确成绩清单

制作通知单

2.3分析统计成绩

2.4分析

试题难度

2.5

试题得分清单

考生通知单

难度分析表

合格标准

分类统计表

成绩清单

错误成绩清单 经审定的

成绩清单

Page 51: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

DFD可以用来表示一个系统或软件在任何层次上的抽象。 较大型软件系统 DFD分成多层 (子图、父图概念 ),可以表示数据流和功能的进一步的细节。

Page 52: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

SS

2211

33

2.22.22.12.1

2.32.33.13.1 3.23.2

顶层顶层(不编号)(不编号)

00 层层

11层层

Page 53: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据流和控制流举例 (使用Ward和mellor符号)

监控固件和

操作接口

每个固件状态动作警告

机器人初始化

控制

操作命令

部件状态缓冲器

位置命令

开始 /停止

处理机器人命令

机器人命令文件

操作设置

处理活动

记录机器人动作

位串

Page 54: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据和控制模型的关系

DFDDFD

加工规约加工规约

加工模型加工模型

DFDDFD

控制规约控制规约

控制模型控制模型

数据输出数据输出

数据条件数据条件

数据输入数据输入

控制输入控制输入控制输出控制输出

加工加工激活者激活者

Page 55: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

二 . 数据字典 (DD) DD是对所有与系统相关的数

据元素的一个有组织的列表 ,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解

Page 56: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据字典的作用 DFD中的数据流、数据存储表示某

个有组织的数据集合,它们要由 SA 的其他描述工具 -需求字典 ( 数据字典 )来描述,包括:

•词条描述•数据结构描述•加工逻辑说明

Page 57: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

DD中数据结构的描述方式 定义式 Warnier 图 巴科斯范式( BNF)

Page 58: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

F1: 航班信息文件= { 航空公司名称+航班号+起点+终点+日期 +起飞时间+降落时间 }

航空公司名称= 2{字母 }4 航班号= 3{ 十进制数字 }3 字母=“ A”…“Z”

十进制数字=“ 0”…“9”起点=终点= 1{ 汉字 }10

起飞时间=降落时间=时+分 时=“ 00”…“23”   分=“ 00”…“59” 日期=年+月+日 年= [2000| 2001 | 2002 | 2004] 月=“ 01”…“12”   日=“ 01”…“31”

Page 59: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

重复项:起点=终点= 1{ 汉字 }10 航空公司名称= 2{字母 }4

航班号= 3{ 十进制数字 }3 组合项:日期=年+月+日 起飞时间=降落时间=时+分选择项:年= [2000| 2001 | 2002 | 2004]

原数据项:字母=“ A”…“Z” 十进制数字=“ 0”…“9”

时=“ 00”…“23”   分=“ 00”…“59”

月=“ 01”…“12”   日=“ 01”…“31”

Page 60: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

定义式中使用的符 操作符 含义描述 = 定义为 + 与 (顺序结构 ) { ... } 重复 (循环结构 ) 〔 .. | .. 〕 或 ( 选择结构 ) 〔 .. , .. 〕 ( ... ) 任选 m..n 界域 * ...,* 注释符

Page 61: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

限制重复次数举例 :

{ 33 5 5 或或 5533{ }表示允许重复 3-5次{ }

33 3 3 或或 3333{ }表示恰好重复 3 次{ }

{ }

{ }

11 表示至少出现 1 次

表示允许重复 0至任意次

Page 62: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据流条目给出 DFD中某个数据流的定义,通常包括:• 数据流标识• 数据流来源• 数据流去向• 数据流的数据组成• 流动属性描述:频率、数据量

Page 63: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

购书单 发票 领书单

审查并开发票

开领书单

无效书单

学生1 2

各班学生用 书 表

举例:

学生

教材存量表

Page 64: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据流条目说明举例数据流名 : 发票别名 : 无简述 : 学生购书时填写的项目来源 : 学生去向 : 加工 1“ 审查并开发票”组成 : (学号 ) +姓名+{书号+数量}数据流量 :1000 次 /周 高峰值:开学期间 1000 次 /天

Page 65: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据存储条目 ( 数据文件词条 )对某个文件的定义,包括:• 文件名• 描述• 数据结构• 数据存储方式• 关键码• 存取频率和数据量• 安全性要求

Page 66: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据存储条目说明举例

文件名 : 库存记录别名 : 无简述 : 存放库存所有可供货物的信息组成:货物名称+编号+生产厂家 +单价+库存量组织方式:索引文件,以货物编号为 关键字查询要求 : 要求能够立即查询

Page 67: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据项条目 ( 数据元素词条 )

不可再分解的数据单位,包括:• 名称• 描述• 数据类型• 长度 ( 精度 )• 取值范围及缺省值• 计量单位• 相关数据元素及数据结构

Page 68: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

数据项条目说明举例

数据项名 : 货物编号别名 :G-No,G-num简述 : 本公司的所有货物的编号类型 :字符串长度: 10取值范围及含义 : 第 1 位: [J | G] ( 进口 /国产 ) 第 2 4∼ 位: LB01.. LB29 ( 类别 ) 第 5 7∼ 位:“ A00”..“A99” ( 规格 ) 第 8 10∼ 位:“ 001”..“999”( 品名编号 )

Page 69: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

F1: 航班信息文件= { 航空公司名称+航班号+起点+终点+日期 +起飞时间+降落时间 }

航空公司名称= 2{字母 }4 航班号= 3{ 十进制数字 }3 字母=“ A”…“Z”

十进制数字=“ 0”…“9”起点=终点= 1{ 汉字 }10

起飞时间=降落时间=时+分 时=“ 00”…“23”   分=“ 00”…“59” 日期=年+月+日 年=“ 00”…“99”   月=“ 01”…“12”   日=“ 01”…“31”

Page 70: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

存折=户名+所号+帐号+开户日期+性质 +(印密)+ 1{ 存取行 }50户名= 2{字母 }24所号=“ 001”..“999”( 注:储蓄所编码, 规定三位数字 )帐号=“ 00000001”..“99999999” ( 注:帐号规定由八位数字组成 )开户日期=年+月+日性质=“ 1”..“6”( 注:“ 1” 表示普通户, “5” 表示工资户等 )印密=“ 0”( 注:印密在存折上不显示 )存取行=日期+(摘要)+指出+存入+余额 +操作+复核

Page 71: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

年= [2001 | 2002 | 2003 | 2004]月=“ 01”..“12”  日=“ 01”..“31”摘要= 1{字母 }4( 注:表明该存取是存?是取?

还是换? )支出=金额 ( 注 :金额规定不超过 9999999.99元 )

存入=金额余额=金额 金额=“ 0000000.01”..“9999999.99”操作=“ 00001”..“99999”复核=“ 00001”..“99999”字母= [“a”..“z” |“ A”..“Z”]

Page 72: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

购书单 缺书单销售 采购

1 2

第二层 DFD( 0层 ) 教材购销系统 

教材存量表

学生

F1

缺书登记表F2

书库保管员

进书通知

教材入库信息

领书单

Page 73: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

DF01-10

DF20-02销售 采购

1.0 2.0

第二层 DFD( 0层 ) 教材购销系统 

教材存量表

学生

F1

缺书登记表F2

书库保管员

DF02-20DF20-10

DF10-01

12

XSMD CGMD

Page 74: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

DD 数据流条目说明举例〔图号〕DF01-10 /* 有效购书单 */DF01-10 = 学号+姓名 + { 书号+数量 }

Page 75: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

加工条目 ( 加工逻辑说明 ) 加工类条目即数据处理描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。

小说明可认为是 DD的组成部分。 也可在DD中定义只说明每个加工的组

成 (每个处理分解成多少小处理 ), 而在

小说明中详细描述它的处理逻辑 .

Page 76: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

加工条目 ( 加工逻辑说明 )

加工逻辑名 :登记报名单 编号: 1.0 激活条件:收到报名单 加工逻辑: {1.1 检查报名单 + 1.2 编准考证号 + 1.3 登记考生 } 执行频率: 2000 次 /日

Page 77: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

DD定义方法

•找出所有数据元素( 数据流,数据存储,数据项,加工 )•对数据项分类•作结构定义•排序•DD的分类•DD中的命名 (遵守系统开发规范规

定 )

Page 78: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

DD的实现(1) 人工方法(2) 自动方法 ( 利用字典管理程序 ) DD应具特点

(1)通过名字可方便查阅数据定义(2) 无冗余 (3) 易更新修改

Page 79: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

3.小说明 ( 加工逻辑说明的另一种形式 )

描述的内容:(1) 处理逻辑 描述基本加工如何把输入数据流变化

为输出数据流的加工原则,不涉及具体处理方法。

(2) 执行条件

Page 80: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

3.小说明 ( 加工逻辑说明的另一种形式 )

描述的内容:(3) 输入(4) 输出(3) 优先级(4) 执行频率(5) 出错处理对策

Page 81: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

小说明举例

加工名 : 分类采购 (CG111MD)编号 : 1.1.1加工激活条件 : 受到图书采购员分类 采购操作命令

Page 82: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

小说明举例

加工逻辑 : (1) 1.1.1.1 预定图书 (2) 1.1.1.2 外采图书 (3) 1.1.1.3 赠送图书 执行频率 : 随时

Page 83: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

小说明举例处理名 : 月票额统计 (MHCW713MD)编号 : 7.1.3激活条件 : 收到每日售票额信息

Page 84: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

小说明举例处理逻辑 :1 统计月保险金总合 月保险金信息 =每日日保险 金信息之和 2 统计月合计 月合计信息 =每日日合计信息之和执行频率 : 1次 /月

Page 85: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

描述加工逻辑的工具:• 结构化语言• 判定表• 判定树

Page 86: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

结构化语言

介于自然语言和形式语言之间的语言结构化语言的特点:•无确定语法•可分层、嵌套

Page 87: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

处理名 :核实订票处理 (MHGP3200MD)编号 : 3.2激活条件 : 收到取订票信息处理逻辑 :1 读订票旅客信息文件 2 搜索此文件中是否有与输入信息 中姓名及身份证号相符的项

Page 88: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

处理名 :核实订票处理 (MHGP3200MD)

IF 有 THEN 判断余项是否与文件中信

息相符 IF 是 THEN 输出已订票信息 ELSE 输出未订票信息 ELSE 输出未订票信息执行频率 : 实时

Page 89: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

判定表 ( 决策表 )描述多条件、多目标动作的形式化工具

判定表举例 (计算机票折扣率 )

旅游时间订 票 量

折 扣 量

7- 9 , 12 月≤20 ≤20> 20 > 20

15% 5% 20% 30%

条件类别 四种条件组合

操作 条件组合下操作的执行

1 - 6,10,11 月

Page 90: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

处理名 :计算折扣率 (MHGP534MD)编号 : 5.3.4

激活条件 : 收到预订票信息处理逻辑 :计算折扣率

执行频率 : 实时

旅游时间

订 票 量

折 扣 量

7- 9 , 12月

1 - 6,10,11月

≤20

≤20> 20

> 20

15%

5% 20% 30%

Page 91: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

判定树 (Decision 决策树 ) 条件 1 条件 2 结果计 7- 9, 订票量 >20: 15%算 12 月 订票量≤ 20: 5%折扣 1 - 6, 订票量 >20: 30%量 10,11 月 订票量≤ 20: 5%

Page 92: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

二 . 结构化分析实施步骤

1. 确定系统边界 , 画出系统环境图

2. 自顶向下,画出各层数据流图

3. 定义数据字典

4. 定义小说明

Page 93: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

三 . 需求规格说明书 (SRS) (Software Requirement Specification)

需求分析阶段要完成的文档。

SRS的作用:•开发者与用户间事实上的技术合同书

•开发者下一步设计和编码的基础

•测试验收目标系统的依据

Page 94: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

SRS大纲(模板)

• 引言• 任务概述 (项目概述 )• 数据描述 (DFD、 DD)• 功能描述• 接口• 性能需求• 属性• 其它需求

Page 95: 需求分析是发现、求精、建模、规格说明和复审的过程; 需求分析是系统设计的基础,关系到工程的成败和软件产品的质量。

三 . 需求验证

(1) 正确性(2) 无二义性(3) 完整性(4) 可验证性(5) 一致性(6) 可理解性

(7) 可修改性(8) 可被跟踪性(9) 可跟踪性(10) 设计无关性(11) 注释