第5章结构化分析方法

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


核心思想:抽象与分解
◦ 抽象:从作为整体的软件系统开始(第一层),每一抽象层次 上只关注于系统的输入输出 ◦ 分解:将系统不断分解为子系统、模块……
X
3
4
1
2
随着分解层次的增 加,抽象的级别越 来越低,也越接近 问题的解(算法和数 据结构)
2.2 2.4
1.1
2.1
1.2
1.3
2.3

基本特征 :“数据流图”
数据流图的画法
5.1 结构化分析方法概述
5.2 数据流图
5.3 数据字典 5.4 加工逻辑说明 5.5 实例:供销管理系统的需求

发展历史
◦ 提出:20世纪60年代末到70年代初 ◦ 成熟:20世纪70年代末到80年代中期

一种面向数据流的传统软件开发方法 以数据流为中心、构建软件的分析模型和设计模型

第四步:为目标系统的逻辑模型作补充

数据流图(Data Flow Diagram,DFD) 数据字典(Data Dictionary,DD)
结构化语言、判定表和判定树。
实体—关系图 、状态转换图。

数据字典:核心,包含了软件使用和产生所有 数据的描述 数据流图:功能建模,描述系统的输入数据流 如何经过一系列的加工变换逐步变换成系统的 输出数据流

顶层图
◦ 确定源或宿:考生、阅卷站和考试中心
它们都既是源又是宿
◦ 顶层图唯一的加工:软件系统(考务处理系统) ◦ 确定数据流:系统的输入/输出信息
输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合 格标准(来自考试中心) 输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考 生通知书(送往考生)、统计分析表(送往考试中心)
•子图的父图号就是父图中相应数据处 4)尽量简化加工间的联系
数据不守恒的实例
成绩清单 2.1 检查 成绩清单 2.5 分析 试题难度 难度分析表
错误成绩清单 正 确 成 绩 清 单 试题得分清单 2.4 分类 统计成绩 分类统计表
考生名册 正式成绩清单 2.3 制作 通知单
合格标准
2.2 审定 合格者
报名单
1 考试 报名
考 生 名 单 考生名册
2 统计 成绩
统计分析表
准考证 合 格 标 准
错误成绩清单 成绩清单

内部加工
◦ 将复杂的加工可以继续分解成1张DFD子图 ◦ 分解方法

描述一个加工的多个数据流之间的关系
◦ 星号(*):表示数据流之间存在“与”关系
所有输入数据流同时存在时,才能进行加工处理 或加工处理的结果是同时产生所有输出数据流
◦ 加号(+):表示数据流之间存在“或”关系
至少存在一个输入数据流时才能进行加工处理 或加工处理的结果是至少产生一个输出数据流
结构化分析方法的实质:一种强烈依赖数据流的 自顶向下的建模方法,采用一组分层的数据流图 以及相应的数据字典作为系统的逻辑模型。

第一步:理解当前的现实环境,获得当前系统的具 体模型(物理模型)

第二步:从当前系统的具体模型抽象出当前系统的 ①确定“变化的范围”。 逻辑模型

②将识别出来的“变化的部分”当成一个“加工”,画出 第三步:分析目标系统与当前系统逻辑上的差别, 已确定的输入输出数据流。 建立目标系统的逻辑模型 ③借助“分解”技术,对“变化的部分”进行分析创造。
1) 父图与子图平衡 2)局部数据存储 •子图中的编号为父图号和子数据处理
分解应自然,概念上要合理、清晰。 3)合理的编号 的编号组成。
• 上层可分解得快些(即分解成的子数据处理 个数多些),这是因为上层是综合性描述, 理的编号。 5)分解的程度 对可读性的影响小。而下层应分解得慢些。 • 在不影响可读性的前提下,应适当多分解 成几部分,以减少分解层数。


用户称述
问题定义
软件定义 阶段
可行性分析
需求分析
我们现在的 位置
编码
软件开发 阶段
设计
测试
运行维护 阶段
维护

教学目的: 1.理解结构化分析方法基本思想
2.掌握结构化分析方法分析过程、使用的工具
教学重点: 结构化分析方法使用的工具 (数据流图、数据字典) 教学难点:
考生通知单
由于“正式成绩清单”中缺少“考生通知单”中的姓 名、通信地址等数据,这些数据也无法由加工2.3自己产 生,因此,加工2.3不满足数据守恒的条件
பைடு நூலகம்

分解原则
• 分解应自然,概念上要合理、清晰。
• 上层可分解得快些,而下层应分解得慢些。 • 在不影响可读性的前提下,应适当多分解成几部分,以减少分解层数。
◦ 异或(⊕):表示数据流之间存在“异或”(互斥)关系
必须存在且仅存在一个输入数据流时,才能进行加工处理 或加工处理的结果是产生且仅产生一个输出数据流

不可能将全部的加工和数据流放在一张图中,需要 按照问题的层次结构逐步进行分解,从简单到复杂 ,以分层的数据流图反映出这种关系。
体现了抽象和信息隐藏 分层DFD 图包括顶层DFD、中间层DFD 和底层 DFD
注意:
新文件(首次出现的文件)至少应有一个加工为其写入记录,同 时至少存在另一个加工来读该文件的记录
从父图中继承下来的文件在子图中可能只对其进行读,或只 进行写

0层图
◦ 确定源和宿
0层图和其它子图中通常不必画出源和宿 有时为了提高可读性,可以将顶层图中的源和宿画在0层图中
不合格报名单 考生通知单

部分数据流的组成
◦ 报名单:地区+序号+姓名+文化程度+职业+考试级别+通信地 址
◦ 正式报名单:准考证号+报名单
◦ 准考证:地区+序号+姓名+准考证号+考试级别+考场 ◦ 考生名单:{准考证号+考试级别} 其中{w}表示w重复多次 ◦ 考生名册:正式报名单 ◦ 统计分析表:分类统计表+难度分析表 ◦ 考生通知单:准考证号+姓名+通信地址+考试级别+考试成绩+ 合格标志



功能需求
◦ 1.对考生送来的报名单进行检查 ◦ 2.对合格的报名单编好准考证号后将准考证送给考生, 并将汇总后的考生名单送给阅卷站 ◦ 3.对阅卷站送来的成绩清单进行检查,并根据考试中心 制订的合格标准审定合格者 ◦ 4.制作考生通知单送给考生 ◦ 5.进行成绩分类统计(按地区、年龄、文化程度、职业、 考试级别等分类)和试题难度分析,产生统计分析表
同一个源或加工可以有多个数据流流向一个加工,如果它们不是 一起到达和一起加工的,那么可以将它们分成若干个数据流,例 如:
读取 银行卡信息 银行卡数据 密码
客户

0层图
◦ 确定文件
如果父图中该加工存在读写文件的数据流,则相应的文件和 数据流都应画在子图中 在分解子图中,如果需要保存某些中间数据以备后用,则可 以将这些数据组成一个新的文件

对数据流的表示有以下约定:
◦ 数据流至少有一个端点必须与数据处理符号连接。 ◦ 对流入或流出数据存储的数据流可以不标注名字。 ◦ 数据流不允许同名。 ◦ 两个数据处理之间可以有几股不同的数据流。 ◦ 数据流图描述的是数据流而不是控制流。
数据存储在数据流图中起保存数据的作用。 数据存储是计算机系统中的外部或者内部文件、文件的一 部分、数据库的元素或记录的一部分等,还可以是一个人 工系统中的表册、账单等。分层数据流图中,通常是局部 于某一分解层次的。数据存储可用名词或名词短语命名

顶层图只有代表整个软件系统的1个加工,描述了 软件系统与外界(源或宿)之间的数据流

顶层图中的加工经分解后的图称为0层图(只有1张)
中间层图中至少有一个加工(也可以有多个)在下层 图中分解成一张子图

处于最底层的图称为底层图,其中所有的加工不再 分解成新的子图
当分解一直进行到每个加工的功能独立, 中间层DFD是对上层父图的分解,它的每 顶层DFD 一般只有一张,它描绘整个系统 简单明确,数据流被严格定义时,即得一 一个加工还可继续分解细化。 的作用范围,可以将整个系统看做是一个 组底层DFD。每张底层DFD 是由一些不 加工,其加工名就是系统名,它的输入和 能再分解的加工和简单数据流组成,这些 输出数据反映系统与外界环境的接口。 加工被称为基本加工。
额外的输出流(考虑系统的健壮性):不合格报名单(返回给考 生),错误成绩清单(返回给阅卷站)
◦ 顶层图通常没有文件

顶层图
不合格报名单 统计分析表 考务 处理系 统 考 生 名 单 成 绩 清 单 错 误 成 绩 清 单
考生
报名单
准考证 考生通知单
考试中心
合格标准
阅卷站

0层图
◦ 确定加工:将父图中某加工分解成子加工 ◦ 根据功能分解来确定加工:将一个复杂的功能分解成若干 个较小的功能,较多应用于高层DFD中的分解 ◦ 根据业务处理流程确定加工:分析父图中待分解加工的业 务处理流程,业务流程中的每一步都可能是一个子加工 ◦ 特别注意:在业务流程中数据流发生变化或数据流的值发 生变化的地方,应该存在一个加工,例如:

结构化系统软件开发方法主要包括
◦ 结构化分析(Structured Analysis,SA) ◦ 结构化设计(Structured Design,SD)
◦ 结构化程序设计(Structured Programming)

核心思想:抽象与分解 (控制复杂性的两个基本手 段)
◦ 抽象:在每个抽象层次上忽略问题的内部复杂性,只关注 整个问题与外界的联系 ◦ 分解:将问题不断分解为较小的问题,直到每个最底层的 问题都足够简单为止
实体-关系图 数据流图 数据 字典 状态转换图


实体—关系图:数据建模,描述数据字典中数 据之间的关系
状态转换图:行为建模,描述系统接收哪些外 部事件,以及在外部事件的作用下的状态迁移 情况


信息系统=数据流+转换 Data Flow Diagram(简称DFD):
◦ 描述输入数据流到输出数据流的变换(即加工)过程,用于 对系统的功能建模
编制 正式报名单 准考证号
合格报名单

0层图
◦ 确定数据流
在父图中某加工分解而成的子图中,父图中相应加工的输入/输 出数据流都是且仅是子图边界上的输入/输出数据流 分解后的子加工之间应增添相应的新数据流表示加工过程中的中 间数据
如果某些中间数据需要保存以备后用,那么可以成为流向文件的 数据流

需求分析是承上启下(衔接可行性分析与系统设计)的重要活动 在项目需求阶段发现并修复错误所花费的成本与维护阶段发现并修复 错误的成本比例可能达:1:200

需求工程是建立并使用完善的工程化方法,以较经济的手段获得准确 表达用户需求的软件需求规格说明的一个学科
需求工程的主要关注点:需求开发和需求管理 需求开发的四步:需求获取、需求建模与分析、需求文档化、需求评 审 需求管理主要包括:需求变更控制、需求版本控制、需求跟踪、需求 状态跟踪

神奇的数字7加减2:人们在一段时间内的短期记忆 似乎限制在5~9件事情之内
--------George Miller

根据自顶向下逐层分解的思想将数据流图画成层次 结构

每个层次画在独立的数据流图中,加工个数可大致 控制在“7加减2”的范围中

由外向里,自顶向下,逐层细化,完善求精
◦ 步骤一:找外部实体,确定系统边界,确定数据源点和数 据终点。 ◦ 步骤二:从数据源出发,按照系统的逻辑需要,逐步绘制 出一系列逻辑加工框,直至数据终点。 ◦ 步骤三:对数据流图进行复审求精。

注意
当数据处理可用一页纸明确表述时,或数据处理只有单一输入/输出数 据流时(出错处理不包括在内),就应停止对该数据处理的分解。 对数据流图中不再做分解的数据处理(即功能单元),必须做出详细的数 据处理说明,并且每个数据处理说明的编号必须与功能单元的编号一致。

分成多个级别,如初级程序员、程序员、高级程序 员、系统分析员等,凡满足一定条件的考生都可参 加某一级别的考试 考试的合格标准将根据每年的考试成绩由考试中心 确定 考试的阅卷由阅卷站进行,因此,阅卷工作不包含 在软件系统中
输入数据流
转换
输出数据流
数据流用带有数据流标识的箭头表示,表示系统处理的数 加工也称为数据处理或数据变换,是对数据进行处理的逻辑单元。 外部实体:数据源或终点 据对象和数据流动的方向。 动词短语:打印发票、计算总金额、验证订货单

数据流的方向可以是:
◦ 从一个加工流向另一个加工; ◦ 从加工流向数据存储(写)或数据存储流向加工(读); ◦ 从源点流向加工或从加工流向终点。
相关文档
最新文档