软件需求分析(第三章)
程序流程图用于表示程序的过程设计; 程序流程图用于表示程序的过程设计; DFD用作描述软件的逻辑功能, DFD用作描述软件的逻辑功能,不能表 用作描述软件的逻辑功能 示程序的控制结构。 示程序的控制结构。
DFD只考虑软件 干什么” DFD只考虑软件“干什么” 只考虑软件“ 不必问“怎样干” 不必问“怎样干”
2011-9-15
3.6 状态转换图
问题: 问题:
如何选择事件? 如何选择事件? 如何描述系统的行为模型? 如何描述系统的行为模型?即: 状态—变迁图(STD)? 状态—变迁图(STD)? 参看教材P38) (参看教材P38)
2011-9-15
4、数据字典(Data Dictionary) 数据字典(
在中立地点举行由开发者和用户双方出席的会议 制定准备会议和参加会议的规则 提出一个议事日程 由“协调人”主持会议 协调人” 使用一种“定义机制” 使用一种“定义机制” 目标是标识问题、提出解决方案要素, 目标是标识问题、提出解决方案要素,商讨不同方 法以及在有利于实现目标的氛围中指定初步需求
2011-9-15
2011-9-15
DFD图中各元素的作用和命名 DFD图中各元素的作用和命名 方法: 方法:
数据存储: 数据存储:
分层数据流图中, 分层数据流图中, 数据存储一般局限 在某一层或某几层; 在某一层或某几层 命名方法与数据流 相似。 相似。
加工: 加工: 顶层的加工名就是 软件项目的名字; 软件项目的名字; 最好使用动宾词组, 最好使用动宾词组, 也可用主谓词组; 也可用主谓词组; 不要使用意义不明 确的动词。 确的动词。
通信途径:访谈、调查、 通信途径:访谈、调查、情景分析
某图书馆系统调查表
编号 1 2 3 4 5 6 7 8 9 2011-9-15
问
题
您在哪个部门工作? 您在哪个部门工作? 您每天必须做哪些事?顺序是什么? 您每天必须做哪些事?顺序是什么? 您每天要处理那些文件、数据、报表? 您每天要处理那些文件、数据、报表? 您感到工作中特别麻烦的事情是什么? 您感到工作中特别麻烦的事情是什么? 工作中什么问题用手工方法解决不了? 工作中什么问题用手工方法解决不了?影响效 率的问题有哪些? 率的问题有哪些? 您认为提高工作效率,节省工作时间, 您认为提高工作效率,节省工作时间,减轻工 作强度可采取哪些办法? 作强度可采取哪些办法? 您的部门需要成本核算和统计的内容有哪些? 您的部门需要成本核算和统计的内容有哪些? 您的部门采用计算机管理工作情况如何? 您的部门采用计算机管理工作情况如何? 如何改进业务流程使之更合理? 如何改进业务流程使之更合理?
2011-9-15
职称 教师 性别 姓名
职工号
姓名 学分 教
性别 学生 学
学号 系 年级 成绩
课程 教学ER图 课程号 课名 学时 学分
2011-9-15
信息变换
输入信息 外部实体 输入信息 外部实体 输出信息 信息流模型 信息流模型
2011-9-15
输出信息 基于 计算机 的系统
外部实体 输出信息 外部实体 外部实体
2011-9-15
数据字典完成以下任务: 数据字典完成以下任务:
词条描述; 词条描述; 数据结构描述; 数据结构描述; 加工逻辑说明。 加工逻辑说明。
数据字典包含以下信息: 数据字典包含以下信息:
所有元素的名称:(数据流、数据项、 所有元素的名称:(数据流、数据项、 :(数据流 加工和数据存储) 加工和数据存储) 别名 使用位置和作用 内容描述 补充信息(数据类型、预设值、限制等) 补充信息(数据类型、预设值、限制等)
2011-9-15
示例
去掉具体模型中的非本质因素, 去掉具体模型中的非本质因素, 抽象出当前系统的 抽象出当前系统的逻辑模型
购 书 申 学 请 生 购 书 单 审查 开 发 票 开领 领 书 单 书 学 生
当前系统逻辑模型
2011-9-15
示例
分析当前系统与目标系统的差别, 分析当前系统与目标系统的差别,建立 目标系统的 目标系统的逻辑模型 学 审查并 发票 生 开发票 无效书单 购书单 领书单 学 生
第三章 结构化分析
(Structured Analysis,SA)
本章要解决的问题: 本章要解决的问题:
软件需要“做什么”? 如何描述“做什么”? 即:需求分析的基本概念、任务、 原则和方法是什么?
2011-9-15
需求分析的任务
需求分析是对问题进一步发现、求精、建模、 需求分析是对问题进一步发现、求精、建模、 发现 规格说明和复审的过程 的过程。 规格说明和复审的过程。
2011-9-15
分析模型的结构
软件需求规格说明的原则
从现实中分离功能,即描述要“做什么” 从现实中分离功能,即描述要“做什么” 而不是“怎样实现” 而不是“怎样实现” 要求使用面向处理的规格说明语言( 要求使用面向处理的规格说明语言(或称 系统定义语言) 系统定义语言) 如果被开发软件只是一个大系统中的一个 元素, 元素,那么整个大系统也包括在规格说明 的描述之中
准确地定义未来系统的目标,确定为了满 足用户的需求,系统必须“做什么”。 “做什么” 用 <需求规格说明书> 规范的形式准确地 描述用户的需求。
做什么(what) 怎么做(how) 做什么(what) ≠怎么做(how)
2011-9-15
任务:
描述软件的功能和性能 确定软件设计的约束、 确定软件设计的约束、软件同其它 系统元素的接口细节 定义软件的其它有效性需求 如何完成任务? 如何完成任务?
2011-9-15
3.2 与用户通信技术(需求获取)
如何从用户得到完整且正确的 需求? 需求?
2011-9-15
存在的问题:
专业差距 人与人之间的通信方式 需求的不断变化
2011-9-15
需求获取方法 建立分析所需要的通信途径, 建立分析所需要的通信途径,以保证能顺 利地对问题进行分析。 利地对问题进行分析。
DFD仅仅是一种流模型, DFD仅仅是一种流模型,其符号本身并不 仅仅是一种流模型 能充分地描述软件的需求。 能充分地描述软件的需求。 数据字典用于精确地定义系统中每一个数 据对象和控制信息的特性。 据对象和控制信息的特性。数据字典与数 据流图配合, 据流图配合,能清楚地表达数据处理的要 求,使用户和分析员对系统中每一个环节 的输入、输出和存储有共同的理解。 的输入、输出和存储有共同的理解。 数据字典是描述数据信息的集合。 数据字典是描述数据信息的集合。
2011-9-15
规格说明必须包括系统运行环境 规格说明必须是一个认识模型 规格说明必须是可操作的 规格说明必须容许不完备性并允许扩充 规格说明必须局部化和松散耦合
2011-9-15
3.4实体 关系图 实体-关系图 实体 (Entity-Relation Diagram)
数据模型包含的三种相互关联的信息: 数据模型包含的三种相互关联的信息: 数据对象 数据属性 数据对象之间的关系 ERD(实体-关系)图是数据建模的基础, ERD(实体-关系)图是数据建模的基础, 简单明了地表达了三种相互关联的信息。 简单明了地表达了三种相互关联的信息。
录取通知
确定 名额
确定退档
考生档案
高考招生录取数据流程图(录取部分)
2011-9-15
2011-9-15
注意: 注意: 用名词,不要使用意义不明确的名词 用名词 不要使用意义不明确的名词 尽量使用现实系统已有的名字,命名困难 尽量使用现实系统已有的名字 命名困难 时要考虑数据流划分是否恰当。 时要考虑数据流划分是否恰当。 不要把控制流作为数据流
2011-9-15
2011-9-15
结构化分析是一种建模的活动
准则: 准则:
必须理解和表示问题的信息域, 必须理解和表示问题的信息域,根据这条准则 应该建立数据模型 数据模型; 应该建立数据模型; 必须定义软件应完成的功能, 必须定义软件应完成的功能,这条准则要求建 功能模型; 立功能模型; 必须表示作为外部事件结果的软件行为, 必须表示作为外部事件结果的软件行为,这条 准则要求建立行为模型 行为模型; 准则要求建立行为模型; 必须对描述信息、功能和行为的模型进行分解, 必须对描述信息、功能和行为的模型进行分解, 用层次的方式展示细节; 用层次的方式展示细节; 分析过程应该从要素信息移向实现细节; 分析过程应该从要素信息移向实现细节;
2011-9-15
模型转换过程
2011-9-15
示例
学生购买教材系统模型转换: 学生购买教材系统模型转换:
购 领 购 书 发 书 书 申 票 书 单 单 请 教务科 会计室 出纳员 库房 107 206 206 303 王 刘 李 赵
通过对现实环境的调查,获得 通过对现实环境的调查, 当前系统的 当前系统的物理模型
打印 书单
计算机售书系统的逻辑模型
2011-9-15
逻辑模型 物理模型 (本质模型、概念模型 (实施模型、技术模型 本质模型、 实施模型、 本质模型 概念模型) 实施模型 技术模型)
现 行 系 统 目 标 系 统
描述重要的业务功 描述现实系统是如何 在物理上实现的。 能,不管系统是如 在物理上实现的。 何实施的。 何实施的。 描述新系统的主要 业务功能和用户新 的需求, 的需求,无论系统 应如何实施。 应如何实施。 描述新系统是如何实 施的(包括技术)。 施的(包括技术)。
2011-9-15
无输入
举例:以下是错误的表示! 举例:以下是错误的表示! 无输出
数据源 加工 数据源 数据源
数据存储 数据存储
2011-9-15
加工 数据源 数据源
数据存储
加工至少有 一个输入流和 一个输出流 数据流必须 起于或 止于加工
数据源
数据存储
DFD与程序流程图的区别: DFD与程序流程图的区别: 与程序流程图的区别