软件工程05

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安徽理工大学软件教研室 软件工程课程 18/110
分层数据流图示例—— 分层数据流图示例—— 资格和水平考试的考务处理系统
• 简化的资格和水平考试的考务处理系统 • 分成多个级别,如初级程序员、程序员、 分成多个级别,如初级程序员、程序员、 高级程序员、系统分析员等, 高级程序员、系统分析员等,凡满足一定 条件的考生都可参加某一级别的考试 • 考试的合格标准将根据每年的考试成绩由 考试中心确定 • 考试的阅卷由阅卷站进行,因此,阅卷工 考试的阅卷由阅卷站进行,因此, 作不包含在软件系统中
• 源或宿用相同的图形符号表示
– 当数据流从该符号流出时表示是源 – 当数据流流向该符号时表示是宿 – 当两者皆有时表示既是源又是宿
安徽理工大学软件教研室 软件工程课程 11/110
加工和文件
• 加工:描述输入数据流到输出数据流 加工: 的变换
– 每个加工用一个定义明确的名字标识 – 至少有一个输入数据流和一个输出流 – 可以有多个输入数据流和多个输出数据流
安徽理工大学软件教研室 软件工程课程
15/110
对数据流图进行分层
• George Miller在著名的论文“神奇的数 在著名的论文“ 在著名的论文 加减2: 字7加减 :我们处理信息的能力的某种 加减 限制”中指出: 限制”中指出:人们在一段时间内的短期 记忆似乎限制在5~ 件事情之内 记忆似乎限制在 ~9件事情之内 • 根据自顶向下逐层分解的思想将数据流图 画成层次结构 • 每个层次画在独立的数据流图中,加工个 每个层次画在独立的数据流图中, 大致控制在 加减2”的范围中 数可大致控制在“ 加减 数可大致控制在“7加减 的范围中
软件工程
第5章 结构化分析与设计
结构化方法
• 一种面向数据流的传统软件开发方法 • 以数据流为中心构建软件的分析模型 和设计模型 • 分为: 分为:
– 结构化分析(Structured Analysis 简称SA) – 结构化设计(Structuresd Design 简称SD) – 结构化程序设计(Structured Programmin 简称SP)
安徽理工大学软件教研室 软件工程课程 21/110
系统的输入输出(顶层图) 系统的输入输出(顶层图)
• 确定源或宿:考生、阅卷站和考试中心 确定源或宿:考生、
– 它们都既是源又是宿
• 顶层图唯一的加工:软件系统 考务处理系统 顶层图唯一的加工:软件系统(考务处理系统 考务处理系统) • 确定数据流:系统的输入/输出信息 确定数据流:系统的输入 输出信息
X
3
4
1
2
1.1
2.1
2.2
1.2
1.3
2.3
2.4
安徽理工大学软件教研室 软件工程课程
6/110
结构化分析过程
• 理解当前的现实环境,获得当前系统的具 理解当前的现实环境, 体模型(物理模型 物理模型) 体模型 物理模型 • 从当前系统的具体模型抽象出当前系统的 逻辑模型 • 分析目标系统与当前系统逻辑上的差别, 分析目标系统与当前系统逻辑上的差别, 建立目标系统的逻辑模型 • 为目标系统的逻辑模型作补充
• Data Flow Diagram(简称 简称DFD):描述输入 : 简称 数据流到输出数据流的变换(即加工 过程, 数据流到输出数据流的变换 即加工)过程, 即加工 过程 用于对系统的功能建模,基本元素包括: 用于对系统的功能建模,基本元素包括:
数据流(data flow):由一组固定成分的数据组成,代表 数据流 :由一组固定成分的数据组成, 数据的流动方向 加工(process):描述了输入数据流到输出数据流的变换, 加工 :描述了输入数据流到输出数据流的变换, 即将输入数据流加工成输出数据流 文件(file):使用文件、数据库等保存某些数据结果供以 文件 :使用文件、 后使用 源或宿(source or sink):由一组固定成分的数据组成, 源或宿 :由一组固定成分的数据组成, 代表数据的流动方向
安徽理工大学软件教研室 软件工程课程
5/110
结构化分析方法中的抽象与分解
• 抽象:从作为整体的软件系统开始 第一层 每一 抽象:从作为整体的软件系统开始(第一层 第一层),每一 抽象层次上只关注于系统的输入输出 • 分解:将系统不断分解为子系统、模块 分解:将系统不断分解为子系统、模块…… • 随着分解层次的增加,抽象的级别越来越低,也 随着分解层次的增加,抽象的级别越来越低, 越接近问题的解(算法和数据结构 越接近问题的解 算法和数据结构) 算法和数据结构
顾客 帐 单 数 据 制作 图书 费 订购 单 图书 收 订购 核准的订 购单 制作 发书单 发书 单 顾客

单 图书
安徽理工大学软件教研室 软件工程课程
14/110
数据流图的扩充符号
• 描述一个加工的多个数据流之间的关系
– 星号(*):表示数据流之间存在“与”关系
• 所有输入数据流同时存在时,才能进行加工处理 所有输入数据流同时存在时, • 或加工处理的结果是同时产生所有输出数据流
安徽理工大学软件教研室 软件工程课程
7/110
结构化分析Байду номын сангаас型的描述
• 数据字典是模型的核心,它 数据字典是模型的核心, 包含了软件使用和产生所有 数据的描述 实体-关系图 实体 关系图 数据流图 • 数据流图:用于功能建模, 数据流图:用于功能建模, 数据 描述系统的输入数据流如何 字典 经过一系列的加工变换逐步 变换成系统的输出数据流 状态转换图 • 实体 关系图:用于数据建 实体—关系图 关系图: 模,描述数据字典中数据之 间的关系 • 状态转换图:用于行为建模,描述系统接收哪些外 状态转换图:用于行为建模, 部事件, 部事件,以及在外部事件的作用下的状态迁移情况
安徽理工大学软件教研室 软件工程课程 16/110
数据流图的各个层次
• 顶层图只有代表整个软件系统的 个加工, 顶层图只有代表整个软件系统的1个加工, 个加工 描述了软件系统与外界(源或宿 源或宿)之间的数 描述了软件系统与外界 源或宿 之间的数 据流 • 顶层图中的加工经分解后的图称为 层图 顶层图中的加工经分解后的图称为0层图 (只有 张) 只有1张 只有 • 中间层图中至少有一个加工 也可以有多 中间层图中至少有一个加工(也可以有多 个)在下层图中分解成一张子图 在下层图中分解成一张子图 • 处于最底层的图称为底层图,其中所有的 处于最底层的图称为底层图, 加工不再分解成新的子图
安徽理工大学软件教研室 软件工程课程 8/110
内容摘要
• • • • • • • • • 结构化分析方法概述 数据流图 分层数据流图的审查 数据字典 描述基本加工的小说明 结构化设计概述 数据流图到软件体系结构的映射 初始结构图的改进 小结
安徽理工大学软件教研室 软件工程课程 9/110
数据流图
• • • • • • • • • 结构化分析方法概述 数据流图 分层数据流图的审查 数据字典 描述基本加工的小说明 结构化设计概述 数据流图到软件体系结构的映射 初始结构图的改进 小结
安徽理工大学软件教研室 软件工程课程 4/110
结构化分析方法
• 发展历史
– 提出:20世纪60年代末到70年代初 – 成熟:20世纪70年代末到80年代中期
– 如:运动会管理系统中,报名单(数据流)由队名、姓 名、性别、参赛项目等数据组成
• 数据流的流向
– – – – – 从一个加工流向另一个加工 从加工流向文件(写文件) 从文件流向加工(读文件) 从源流向加工 从加工流向宿
安徽理工大学软件教研室 软件工程课程
13/110
示例:图书订购系统DFD 示例:图书订购系统DFD
安徽理工大学软件教研室 软件工程课程 17/110
图和加工的编号
• 顶层图只有一个代表整个软件系统的加工, 顶层图只有一个代表整个软件系统的加工, 该加工不必编号。 该加工不必编号。 • 0层图中的加工编号分别为 ,2,3,… 层图中的加工编号分别为1, , , 层图中的加工编号分别为 • 子图号:若父图中的加工号 分解成某一 子图号:若父图中的加工号x分解成某一 子图,则该子图号记为“ 子图,则该子图号记为“图x” • 子图中加工的编号:若父图中的加工号为 子图中加工的编号: x的加工分解成某一子图,则该子图中的 的加工分解成某一子图, 的加工分解成某一子图 加工编号分别为x.1、x.2、x.3… 加工编号分别为 、 、
安徽理工大学软件教研室 软件工程课程 19/110
资格和水平考试的考务处理系统 —功能需求 • 1.对考生送来的报名单进行检查 . • 2.对合格的报名单编好准考证号后将准考证送 . 给考生,并将汇总后的考生名单送给阅卷站 给考生, • 3.对阅卷站送来的成绩清单进行检查,并根据 .对阅卷站送来的成绩清单进行检查, 考试中心制订的合格标准审定合格者 • 4.制作考生通知单送给考生 . • 5.进行成绩分类统计 按地区、年龄、文化程 按地区、 .进行成绩分类统计(按地区 年龄、 职业、考试级别等分类)和试题难度分析 和试题难度分析, 度、职业、考试级别等分类 和试题难度分析, 产生统计分析表
• 主要思想:抽象与自顶向下的逐层分解 主要思想:抽象与自顶向下的逐层分解 与自顶向下的逐层 (控制复杂性的两个基本手段 控制复杂性的两个基本手段) 控制复杂性的两个基本手段
– 抽象:在每个抽象层次上忽略问题的内部复杂性, 只关注整个问题与外界的联系 – 分解:将问题不断分解为较小的问题,直到每个最 底层的问题都足够简单为止
• 文件:保存数据信息的外部单元 文件:
– 每个文件用一个定义明确的名字标识 – 由加工进行读写 – DFD中称为文件,但在具体实现时可以用文件系统 实现也可以用数据库系统等实现
安徽理工大学软件教研室 软件工程课程 12/110
数据流
• 每个数据流用由一组固定成分的数据组成 并拥有一个定义明确的名字标识
– 加号(+):表示数据流之间存在“或”关系
• 至少存在一个输入数据流时才能进行加工处理 • 或加工处理的结果是至少产生一个输出数据流
– 异或(⊕):表示数据流之间存在“异或”(互斥)关系
• 必须存在且仅存在一个输入数据流时,才能进行加工处理 必须存在且仅存在一个输入数据流时, • 或加工处理的结果是产生且仅产生一个输出数据流
安徽理工大学软件教研室 软件工程课程
2/110
内容摘要
• • • • • • • • • 结构化分析方法概述 数据流图 分层数据流图的审查 数据字典 描述基本加工的小说明 结构化设计概述 数据流图到软件体系结构的映射 初始结构图的改进 小结
安徽理工大学软件教研室 软件工程课程 3/110
内容摘要
安徽理工大学软件教研室 软件工程课程
10/110
源或宿
• 存在于软件系统之外的人员或组织,表示软件 存在于软件系统之外的人员或组织, 系统输入数据的来源和输出数据的去向, 系统输入数据的来源和输出数据的去向,因此 也称为源点和终点
– 例如,对一个考务处理系统而言
• 考生向系统提供报名单 输入数据流),所以考生是考试系统 考生向系统提供报名单(输入数据流 , 输入数据流 (软件 的一个源 软件)的一个源 软件 • 考务处理系统要将考试成绩的统计分析表 输出数据流 传递 考务处理系统要将考试成绩的统计分析表(输出数据流 输出数据流)传递 给考试中心, 给考试中心,所以考试中心是该系统的一个宿
安徽理工大学软件教研室 软件工程课程 20/110
资格和水平考试的考务处理系统 —部分数据流的组成 • 报名单=地区+序号+姓名+文化程度+职业 报名单=地区+序号+姓名+文化程度+ 考试级别+ +考试级别+通信地址 • 正式报名单=准考证号+报名单 正式报名单=准考证号+ • 准考证=地区+序号+姓名+准考证号+考试 准考证=地区+序号+姓名+准考证号+ 级别+ 级别+考场 • 考生名单={准考证号+考试级别} 考生名单={准考证号+考试级别} ={准考证号 其中{ }表示w重复多次 其中{w}表示 重复多次 • 考生名册=正式报名单 考生名册= • 统计分析表=分类统计表+难度分析表 统计分析表=分类统计表+ • 考生通知单=准考证号+姓名+通信地址+考 考生通知单=准考证号+姓名+通信地址+ 试级别+考试成绩+ 试级别+考试成绩+合格标志
相关文档
最新文档