第六章 系统分析 系统分析概述 组织结构与功能分析 业务流程分析 数据与数据流程分析 功能/数据分析 新系统逻辑方案的建立 1 2 3 4 5 新系统逻辑方案的建立 6
6.1 系统分析概述 系统分析的主要任务 系统分析的主要内容 结构化系统分析方法
6.1 系统分析概述 系统分析的主要任务 具体化为用户需求 新系统 目标 新系统逻辑模型 (系统分析报告) 用户需求 逻辑模型
6.1 系统分析概述 系统分析的主要内容 详细调查、收集和分析用户需求 确定初步的逻辑模型 编制系统分析报告
6.2 组织结构与功能分析 组织结构图 组织/业务关系分析 业务功能一览表
6.2 组织结构与功能分析 组织结构图
6.2 组织结构与功能分析 组织/业务关系分析 计划 × * 销售 √ 供应 生产 经营科 销售科 技术科 生产科 计划科 材料 供应科 …… 计划 × O * 销售 √ 供应 生产
6.3 业务流程分析 业务流程图的基本符号及含义 绘制举例
6.3 业务流程分析 业务流程图的基本符号及含义 业务处理单位 处理、加工 数据或单据 信息流或物流的输入与输出 文档
6.3 业务流程分析 例一: 销售人员接到顾客填好的订单后对订单进行核对,如果发现订单不合格则将订单退回客户,否则将订单交给库管员处理。库管员接到订单后,核对库存,对可供货的订单进行供货处理,对缺货的订单交给采购部门进行采购处理,同时将订单交给销售部门。采购部门根据缺货订单进货,将进货单及货物交给库管员,库管员进行入库处理,修改库存台账,并通知销售人员已经备货。销售人员将缺货订单再次交给库管员,进行供货处理。供货单由库管员交财务人员,财务再向客户发付款通知,客户将付款通知和款项交给财务人员,财务人员开发票及付款凭证给客户。客户将付款凭证交给库管员,库管员将货物及交货凭证给客户。试画出业务流程图。
会计 取消合同通知 出库单 出库单 推销员 计划员 发货通知 发货员 客户 合同 厂长办公室 销售统计表 合同台帐 出库单 车间 库存台帐 销售及库存子系统的业务流程图 会计 取消合同通知 出库单 出库单 推销员 计划员 发货通知 发货员 客户 合同 厂长办公室 销售统计表 合同台帐 出库单 车间 库存台帐 负责人 保管员 入库单 需求预测 生产科 系统中人员 单据、报表 系统外实体
表格分配图 采购部门 财会部门 收购部门 准备采购单 供货单位 采购单1 登记待收货 2 3 4 应付款处理 待收费登记表 应付帐 存档
例二:工票系统业务流程
6.3 业务流程分析 例三: 教务处对学生成绩进行分析,打印出补缓考学生名单,将补缓考学生名单下发到各系部,各系部有关教师出题、判卷
教务管理子系统业务流程图 开会讨论 教学 计划 教学计划 日常事务管理 打印教学计划 排课 各 教学 专业 计划 课程表 教师任务 教师情况 分配表 教师情况 登记表 各 系部 教改 立项 有关领导 统计 报表 教师 学生
例四:
现行系统业务流程图
表 百货商店现行系统概况表
6.4 数据与数据流程分析 数据的汇总分析 数据流程分析 数据字典 加工说明
6.4 数据流程图(DFD) ER图 —— 建立系统的数据模型 数据流程图 —— 建立系统需求的过程模型
6.4 数据与数据流程分析 数据的汇总分析 数据汇总 数据正确性分析 数据项特征分析
表示系统功能模块处理、数据的存储和数据在功能模块之间的流动 6.4.1 DFD的作用 表示系统功能模块处理、数据的存储和数据在功能模块之间的流动 尤其可以跟踪和记录数据和数据在特定的过程中的流动
是结构化分析与设计建立过程模型的主要工具,采用一系列分层次的数据流图描述系统 6.4.2 DFD的层次模型 是结构化分析与设计建立过程模型的主要工具,采用一系列分层次的数据流图描述系统 每一个层次都代表了系统的一个抽象水平 高层次DFD中的处理可以进一步分解成低层次、更详细的DFD
DFD的层次模型示意图 顶层 第一层分解 第二层分解
P1 P2 P3 P4 P41 P42
利用分解和抽象这两个基本手段控制系统的复杂性 DFD层次模型的作用 通过这种自顶向下、逐层分解的方法 利用分解和抽象这两个基本手段控制系统的复杂性 把大问题分解成小问题,然后分别解决
用处理过程、外部实体、数据流以及数据存储表示系统需求的图形模型 6.4.3 DFD的基本成分 外部实体 数据处理 p1 数据存储 数据流 用处理过程、外部实体、数据流以及数据存储表示系统需求的图形模型
外部实体 系统以外又与系统有联系的人或事物 例如:人、组织、外部系统等等 外部实体是数据的来源,也是数据的去处 顾客 职工 经理 职工 顾客
也就是对数据的变换功能(功能、处理过程) 数据处理 对数据的逻辑处理功能 也就是对数据的变换功能(功能、处理过程) P2 识别读者身份 管理员 标识部分(功能编号) 功能描述部分(动宾词组) 功能执行的角色(人,部门,计算机程序)
处理功能的输入或输出(箭头表示数据流向) 例如:数据,订单,查询要求等等 编制财务报表 编 辑 订货单 计 算 应收款 经理 合格订单
可能的数据流 系统向外部输出数据 外部项向系统输入数据 向处理传送数据,经处理后形成新的数据 数据存储可以采用双箭头,其它采用单箭头 审核 学籍卡 学生 统计 学籍 变动 领导 系统向外部输出数据 外部项向系统输入数据 数据存储名称 标识 合格订货单 编辑 订货单 计算 应收款 向处理传送数据,经处理后形成新的数据 数据存储可以采用双箭头,其它采用单箭头
例某公司的顾客可能寄来订货单、支票、退货请求,或前来询问某件事,如果把这些数据全部表达出来,这个数据流程图就不好看了。 多个数据流的表示 例某公司的顾客可能寄来订货单、支票、退货请求,或前来询问某件事,如果把这些数据全部表达出来,这个数据流程图就不好看了。 顾客 处理顾客事务 订货单 支票 退货单 询问
多个数据流的表示 第一种解决方法: 订货单 顾客 处理顾客事务 支票 退货单 询问
多个数据流的表示 第二种解决方法: 顾客 订货单 支票 退货单 查询信息 编辑订货单 开 收据 处理 询问 退货分析处理
这里“地方”并不是指保存数据的物理地点或物理介质,而是指数据存贮逻辑描述 流入数据存储的数据流:将处理后的数据写入或修改到数据存储中 表示数据保存的地方 这里“地方”并不是指保存数据的物理地点或物理介质,而是指数据存贮逻辑描述 流入数据存储的数据流:将处理后的数据写入或修改到数据存储中 流出数据存储的数据流:从数据存储中查询获取数据 D2 D5 D2 产品 职工 产品 销售量 D2 产品销售帐 计算 累计销售量单价 计算销售总额 商品编号#_
其它图形表示 数据流图中的图形元素有不同的画法 下例使用Gane-Sarson画法 储户 业务 处理 帐目 存折 存取要求
6.4 数据与数据流程分析 数据流程图绘制例一:
数据流程图绘制例二: 借书的DFD
还书的DFD 借书证
DFD组合
按照功能表,对每一个功能建立一个DFD片段图 把所有的DFD片段进行分组,归纳为大的处理逻辑,形成一级DFD 根据功能表,从下向上进行抽象归纳: 按照功能表,对每一个功能建立一个DFD片段图 把所有的DFD片段进行分组,归纳为大的处理逻辑,形成一级DFD 将属于一组内的DFD片段放在一张图上,形成二级DFD图 对二级DFD图进一步细化,分解
真正进行结构化系统建模过程中,应该采用自顶向下的分解方法,功能表只是寻找需求的辅助工具 完整的DFD 真正进行结构化系统建模过程中,应该采用自顶向下的分解方法,功能表只是寻找需求的辅助工具 建模是一个从具体到抽象,又从抽象到具体的过程,需要反复多次
例一:分层DFD图 顶层图(又称0层图) 图6.1 顶层流程图
一层图: 图6.2系统数据流程图一级分解
二层图: 图6.3 二级数据流程(销售处理)
二层图; 图6.4二级数据流程(采购处理)
二层图: 图6.5二级数据流程(会计处理)
学籍管理系统顶层DFD 以高等学校学籍管理系统为例说明画数据流图的方法 报表 教委 学籍管理系统 新生名单 招生办 毕业生登记表 用人 单位 学籍表 学籍管理系统顶层DFD
顶层DFD可以作为系统边界的描述,此时可以不画数据存储 招生办 教委 新生名单 学籍管理系统 报表 教师 毕业生登记表 用人 单位 新生名单
第一层
第二层 —— “成绩管理”框(P2)的展开
第三层——“处理期末成绩”框(P2.1)的展开
第三层——“分析期末成绩”框(P2.3)的展开 学籍管理规定补考不及格课程连同下一学期期末不及格课程(未经补考)合计达三门考试课程或四门考试考查课程者作留降级处理。因此期末成绩分析时“产生留退名单”还需要统计往次补考不及格的情况后综合考虑,
第三层——“分析补考成绩”框(P2.5)的展开
使用Microsoft Visio画DFD 工具软件演示 使用Microsoft Visio画DFD
6.4.5 画数据流图的注意事项 合理的层次划分 正确性检查 提高易读性 确定系统边界
(1)展开的层次与管理层次一致,也可以划分得更细 1、合理的层次划分 (1)展开的层次与管理层次一致,也可以划分得更细 (2)一个处理框经过展开,一般以分解为4~10处理框为宜(最好5-9个) (3)最下层的处理过程用几句话,或者用几张判定表,或一张简单的HIPO图能表达清楚
一个处理框经过展开,一般以分解为4~10处理框为宜 如果一次分解后仅有两个处理框,为减少数据流图的层次,可以考虑将它们直接并入上一层中 处理框的合并 一个处理框经过展开,一般以分解为4~10处理框为宜 如果一次分解后仅有两个处理框,为减少数据流图的层次,可以考虑将它们直接并入上一层中
通常可以从以下几个方面检查DFD的正确性: (1)数据守恒,或称为输入数据与输出数据匹配 处理有输入就应该有输出 有输出就肯定有输入 2、正确性检查 通常可以从以下几个方面检查DFD的正确性: (1)数据守恒,或称为输入数据与输出数据匹配 处理有输入就应该有输出 有输出就肯定有输入 输入的数据应该全部流出该处理或者要用于产生流出该处理的数据 输出的所有数据必须曾经流入过该处理或者是由流入该处理的数据产生
(2)在一套DFD中的任何一个数据存贮,必定有流入的数据流和流出的数据流 正确性检查 (2)在一套DFD中的任何一个数据存贮,必定有流入的数据流和流出的数据流 (3)父图中某一处理框的输入、输出数据流必须出现在相应的子图中 (4)任何一个数据流至少有一端是处理框
3、提高易读性 提高数据流图的易理解性 (1)简化处理间的联系(利用数据存储) (2)均匀分解 (3)适当的命名
(3)和系统外的外部实体之间的接口通过数据流实现 4、确定系统边界 只关注本系统要解决的问题 重点是系统中的数据处理和流动 (1)排除纯手工活动 (2)排除其它外部系统的活动 (3)和系统外的外部实体之间的接口通过数据流实现
(1)把需要重新分解的某张图的所有子图连接成一张 (2)把图分成几部分,使各部分之间的联系最少 (3)重新建立父图 (4)重新画子图 6.4.6 优化 DFD也常常要重新分解 重新分解可以按下述方法进行 (1)把需要重新分解的某张图的所有子图连接成一张 (2)把图分成几部分,使各部分之间的联系最少 (3)重新建立父图 (4)重新画子图 (5)为所有处理重新命名,编号
数据流图的分解每个人可能有所不同,画出的数据流图也会因人而异,并一定谁画的对,谁画的错 没有标准答案 数据流图的分解每个人可能有所不同,画出的数据流图也会因人而异,并一定谁画的对,谁画的错
有层次性,允许系统分析员由上至下逐步分析系统,不会受困于太多复杂的细节 6.4.7 数据流图的优缺点 图形元素少,易学易读,容易与用户沟通 有层次性,允许系统分析员由上至下逐步分析系统,不会受困于太多复杂的细节 不能描述系统的控制流 潜在的非语法错误不易发现,复核困难,需要有丰富的设计经验
6.4.8 常犯错误 P1.1 验证身份 P1.2 核对帐户余额 顾客 帐户 取款 P1.4 打印存折 P1.3 登记取款事务 P1.1 验证身份 P2.2 登记存款事务 顾客 存款 帐户 还比如图书馆借书系统中有三个处理逻辑:“p1借书”、“p2还书”和“p3查询服务”,但借书处理的“检查库存”,不应理解为“P3查询服务”
配送中心管理系统(纠错) 订单到供应商(数据存储到外部实体)
库存管理(纠错) 缺货单不见了? 在库指什么(库存查询吗),数据去向哪里 入库要修改库存,出库不修改吗?
入库的功能分解 通常如果需要跟踪订单执行情况,在送货后可以记录一些信息到订单中
采购管理(纠错) 入库表是什么?是入库单吗? 订单制作后本身不保存吗?否则如何跟踪其执行情况呢?如何知道是否已经完成了呢?此外跟踪通常不是在制作后立即执行,实际上是由外部实体提供订单号来进行查询
为学校图书馆出纳台设计一个自动化管理系统 读者可以由书名(或书名的一部分)、作者名查馆藏书号 课堂练习 为学校图书馆出纳台设计一个自动化管理系统 读者可以由书名(或书名的一部分)、作者名查馆藏书号 出纳台可由馆藏书号查书的去向;读者借书时,登录有关信息 读者还书时,检查是否有逾期及其他违规行为,并记录有关信息
6.4.9数据字典 数据字典概述 数据字典的概念 数据字典的建立方式 数据字典的定义 数据字典的作用
6.4.9.1数据字典概述 数据流程图抽象地描述了系统数据处理的概貌,描述了系统的分解,即系统由哪些部分组成,各部分之间的联系 但它不能说明系统中各成分是什么,也不能表达系统中各个处理(加工)的详细内容,这就要用数据字典
6.4.9.2数据字典 数据字典就是将数据元素、数据结构、数据流、数据存储、加工处理和外部项等的详细情况加以记录,并按照一定方式进行排列所形成的一部关于数据的字典
6.4.9.3数据字典的建立方式 人工方式 自动化方式 半自动化方式
数据字典的建立方式 人工方式,即把各类数据字典条目,如数据元素、数据结构、数据流、数据存储处理逻辑、外部项定义在一张张的卡片上或按其定义的格式写在纸上,并对这六项条目分别建立一览表
数据字典的建立方式 自动化方式,即将数据字典建立在计算机的数据库中去 采用人机交互方式将所需的信息录入到系统中 运用该系统来完成数据字典的各项维护工作 优点:便于修改; 便于查询,并且随时可以打印出来,发给所有的开发人员
数据字典的建立方式 半自动方式,即利用现有的文字处理软件和制图软件在计算机上建立数据字典 这种方式只能完成数据字典的编辑功能 而关于数据的维护工作还必须靠人来完成
6.4.9.4数据字典的定义 数据元素的定义 数据结构的定义 数据流的定义 处理逻辑的定义 数据存储的定义 外部项的定义
系统名称: CE公司工程项目管理系统 数据元素的定义 数据元素编号: 001 数据元素名称:工程项目号 别名(程序数据文件内部用名):工程项目号 类型:字符型 长度:6各字节 取值/含义
系统名称: CE公司工程项目管理系统 数据元素一览表 编号 数据元素名称 别名 类型 长度 小数点位数 编号 数据元素名称 别名 类型 长度 小数点位数 001 工程项目号 工程项目号 字符型 6 002 工程项目名称 工程项目名 字符型 20 …… ……
系统名称: CE公司工程项目管理系统 数据结构的定义 数据结构编号: 001 数据结构名称:工程项目目录 别名(程序数据文件内部用名):工程项目 简述:用于建立工程项目档案 类型:字符型 长度:26(字节) 组成:1.工程项目号(数据元素) 2.工程项目名称(数据元素)
系统名称: CE公司工程项目管理系统 数据结构一览表 编号 数据结构名称 别名 类型 长度 001 工程项目目录 工程项目 字符型 6 编号 数据结构名称 别名 类型 长度 001 工程项目目录 工程项目 字符型 6 002 单项工程项目 单项工程 字符型 20 …… ……
数据结构在计算机中的实现 数据结构内容 数据结构名称索引 数据结构编号 数据结构编号 数据结构名称 别名 包含的数据元素/ 数据结构编号
数据流的定义 系统名称: CE公司工程项目管理系统 数据流编号: 001 数据流名称:设备订货合同单 别名(程序数据文件内部用名):设备合同单 简述:CE公司向供应商签订的设备订购合同单 来源:CE公司设备处(外部项) 去处:登录合同单(处理逻辑) 组成:1.供应商目录 2.设备目录 3.设备合同单(数据结构) 4.设备订货量(数据结构) 并附以原始合同单样本
注:De:数据元素 DS:数据结构 DF:数据流 数据流一览表 系统名称: CE公司工程项目管理系统 编号 数据流名称 别名 来源 去处 001 设备订购合同单 设备合同单 设备处(E) 登录合同单 002 材料订货合同单 材料合同单 材料处(E) 登录合同单 …… …… 注:De:数据元素 DS:数据结构 DF:数据流 DB:数据存储 E:外部项 P:处理逻辑
数据流在计算机中的实现 数据流名称索引 数据流内容 数据流编号 数据流名称 来源、去处 流通量 高峰流通量 数据流编号 包含的数据元素/数据结构编号
处理逻辑的定义 系统名称: CE公司工程项目管理系统 处理逻辑编号:2.1 处理逻辑名称:登录合同单 输入数据流:材料/设备订货合同单 输出数据流:数据文件 D201“订货合同单” 处理:将合同单上的数据经验证后写到订货合同文件 D201中,若是新供应商则写到供应商目录文件中,若是新材料/新设备则写到材料设备目录文件中
处理逻辑一览表 系统名称: CE公司工程项目管理系统 序号 处理逻辑编号 名称 001 2.1 登录合同号 002 2.2 修改合同 …… ……
处理逻辑在计算机中的实现 如果把这张表建到数据库文件中,就需稍加改动,最好建立三个文件。 处理逻辑名称索引 处理逻辑编号 处理逻辑名称 处理逻辑层次号
处理逻辑有关的数据存储 处理逻辑输入输出 处理逻辑在计算机中的实现 处理逻辑编号 输入/输出标识 数据流 处理逻辑编号 来源/去处 数据存储编号
数据存储的定义 系统名称: CE公司工程项目管理系统 数据存储编号:D201 数据存储名称:订货合同 简述:CE公司向供应商签订的设备合同单 输入数据流:设备订货合同单,合同变更要求 输出数据流:设备订货合同单,合同执行动态 立即存取要求:有 组成:合同号(数据元素) 日期(数据元素) 供应商(数据结构) 设备(数据结构) 数量(数据元素)
数据存储一览表 系统名称: CE公司工程项目管理系统 序号 数据存储编号 名称 001 D201 订货合同 002 D202 材料/设备库存 …… ……
数据存储内容 数据存储名称索引 数据存储在计算机中的实现 数据存储编号 数据存储编号 包含的数据元素/数据结构编号 数据存储名称 立即查询标志
系统名称: CE公司工程项目管理系统 外部项的定义 外部项编号: 01 外部项名称:预算员 简述:编制工程预算的技术人员 输入数据流:施工图定额数据 输出数据流:工程预算说明书
外部项一览表 系统名称: CE公司工程项目管理系统 编号 名称 01 预算员 02 计划员 03 供应商 …… ……
外部项在计算机中的实现 外部项名称索引 外部项内容 外部项编号 包含的数据元素/ 数据结构编号 数据结构名称 别名
6.4.9.5数据字典的作用 数据字典是进一步定义和描述所有数据项的工具,是关于数据的数据(Data about Data) 它包括对一切动态数据(数据流)和静态数据(数据存储)的数据结构和相互关系等的说明,是数据分析和数据管理的重要工具 数据字典把数据流程图上所有的数据都加以定义,并按特定格式予以记录,以备随时查询和修改
数据字典的作用 数据字典是数据流程图的辅助资料,对数据流程图起注解作用 结构化系统分析中,数据字典主要用于描述数据流和数据存储的逻辑内容以及外部项和处理过程中的数据特性 在整个系统的开发过程中,包括系统交付运行使用后的维护阶段,一直在充实和修改这部数据字典,始终保持它的一致性和完整性
数据字典的作用 它是系统开发人员在各个阶段的必不可少的依据。系统设计人员要根据它制订系统设计方案 程序设计人员在对系统进行修改或扩充功能时,必须以这部数据字典为依据,必要时要修改或充实它 数据字典是所有开发人员共同的依据,统一的标准
数据字典的作用 它能按各种要求列表 能提供标准的术语和词汇,指出系统内各种数据、各个处理逻辑之间的关系,只有它才能确保数据在系统中的完整性和一致性
6.5功能分析 加工说明 结构化语言 判定表 判定树 比如,某商业批发公司本着薄利多销的原则制定了折扣政策,规定在与客户成交时,可根据不同情况对客户应交货款打一定折扣。 ①年交易额在5万以下,则不给予折扣; ②年交易额在5万或5万以上时: 如果最近3个月无欠款,则折扣为15%; 如果最近3个月有欠款,而且与本公司的交易关系在20年以上,则折扣为10%; 如果最近3个月有欠款,而且与本公司的交易关系在20年及以下,则折扣为5%。
6.5功能分析 加工说明 结构化语言 If 交易额 >= 5万 Then if 最近3个月无欠款 Then 折扣率=15% Else
6.5功能分析 加工说明 判定表 判断条件 不同条件的组合 C1 C2 … 处理行动 采取的行动 A1 A2
6.5功能/数据分析 不同条件组合 条件和行动 1 2 3 4 5 6 7 8 条件 C1:交易额在¥50,000元以上 Y N A1:折扣率15% X A2:折扣率10% A3:折扣率5% A4:无折扣
6.4 数据与数据流程分析 加工说明 判定树
6.6 新系统逻辑方案的建立 新系统逻辑方案 系统分析报告
6.6 新系统逻辑方案的建立 新系统逻辑方案 A 新系统 逻辑方案 B C D 确定合理的业务处理流程 确定合理的数据流程 确定新系统的逻辑结构和数据分布 确定新系统的管理模型 新系统 逻辑方案 确定合理的业务处理流程
6.6 新系统逻辑方案的建立 系统分析报告 现行系统概况 新系统目标 新系统逻辑方案 新系统功能模型 组织情况简述 现行系统运行状况 依据用户或组织的总目标确定新系统的功能目标,并与现行系统进行比较分析,重点要突出计算机软件系统处理的优越性 新系统功能模型 新系统信息模型 新系统拟采用的管理方法、算法或模型 新系统开发资源与开发进度估计
Thank You ! 本 章 完!