9传统设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢其标出整个系统的文件、程序及人工处理部分。 通过确认文件媒介(磁盘、磁带)来增加物理实 现的描述。
➢提供整个系统的总体情况。 ➢描述多层系统中层与层之间的交互。 ➢其重点放在物理对象的实现上(如可执行的程
序、文件和文档等)(与DFD不同)。
14/109
系 统 流 程 图 的 常 用 符 号
该图是工资系
➢伪码:与结构化编程类似地语句,描述模块的 逻辑。
5/109
2020年7月7日星期二
第9章 传统设计方法
模块
➢具有输入/输出、逻辑功能、运行程序、内部数 据属性的一组程序语句。
➢模块的输入来源和输出去向都是同一个调用者, 模块从调用者那里获得输入,然后再把产生的数 据返回给调用者;
➢逻辑功能:指它能够做什么事情,表达了它把输 入转换成输出的功能;
➢表达系统执行过程;描述所有I/O和与之有 关的处理;包括所有文件的建立过程;表 达数据在系统中的流向。
➢生成时应考虑:信息处理的步骤和内容; 每一步骤所涉及的物理过程;各步骤间的 物理和逻辑关系。
12Biblioteka Baidu109
2020年7月7日星期二
第9章 传统设计方法
➢根据相似特点把处理过程分:程序组和 子系统。
➢检查系统流程图和每一个大的程序块。
➢识别每个独立的事务,这些事务必须由程序支 持且必须为每一个单独的事务建立一个分支。
➢该程序至少在最高层有一个简单的用户界面, 并允许用户选择一种事务处理方式,然后激活 相应的模块来执行这个处理。
➢每个按其完成的功能来命名的处理模块都是这 些功能子树的主模块。每个子树都是根据该事 件的DFD片段建立的。
第9章 传统设计方法
2020年7月7日星期二
第9章 传统设计方法
本章内容
先导案例
概述
9.1 采用结构化方法进行应用程序结构的设计
9.2 自动化系统边界
9.3 系统流程图
9.4 结构图
9.5 模块算法设计:伪码
9.6 结构化应用程序设计与其他设计任务的集成
9.7 三层设计
要点回顾
阅读章节要求
2/109
➢相似特点:时间间隔相同(如按月执行的 处理)、存取数据相同(如更新员工信息的 所有处理)、用户相同(如生成市场部报表 的所有处理)等。
➢产生的程序组和子系统有:数据流、控
制流、永久存储数据间的交互等复杂的
依赖关系。
13/109
2020年7月7日星期二
第9章 传统设计方法
➢系统流程图用图形的方式描述哪些子系统是系 统自动完成的,哪些需要人工的参与,画出数 据流和控制流。
模式进行处理。
9/109
2➢020该年7月图7日展星示期二了
➢自 界➢了也序工所处➢整系➢带自动化系统是该前该动的系说 界有理资统个一图者图化典统明线主过单,自后幅说标是系型界了。要程程动者包明识设统D程线的。序化将F括边,D。 D计边F的D第划一分步成, 独它 是 这 包界的数立确 什 含些的认么哪程程些,序及序处中。 理据过程。 流 部分输入、部 图 分输出的过程
果(如通过有效性测试的结果)。 ➢另一常用作用:标识文件已经到了结尾。
31/109
2020年7月7日星期二
第9章 传统设计方法
整个工资系统的结构图
32/109
2020年7月7日星期二
第9章 传统设计方法
➢该图所示的完整结构图是基于“产生工 资表事件”这个临时事件之后的系统活 动的。
➢在工资系统的分析阶段,分析员要确认 结算职工工资这一事件每周末要发生一 次,即系统每周运行一次。
合起来。 ➢用传统方法设计三层结构。
4/109
2020年7月7日星期二
第9章 传统设计方法
9.1 采用结构化方法进行应用程序结构的设计
➢模块:计算机程序的可标识部分,用来完成具 体定义的功能。
➢计算机程序:由一系列模块组成的可执行实体。
➢系统流程图:描述系统内计算机程序间所有控 制流的图,标识每段程序及其所存取的数据, 表明不同程序、子系统、相关文件和DB间的关 联关系。它记录整个系统的体系结构。
➢靠近结构图顶端的模块,它们的耦合往往使用高 度集中的数据结构,结构图底端的耦合往往是一 些单独的数据项、标记和相对较小的数据结构。
30/109
2020年7月7日星期二
第9章 传统设计方法
控制耦合
➢带实心圆的箭头。 ➢在模块间使用的标识是一个表示某种结
果的内部信息。 ➢经常使用低层模块产生的标识来表示结
➢内部数据:指属于该模块自己的数据;
➢运行程序:指它如何用程序实现这种逻辑功能。
6/109
2020年7月7日星期二
第9章 传统设计方法
模块的外、内部属性
➢外部属性:输入/输出和逻辑功能是模块的外部 属性,是在系统设计阶段所要讨论的问题;
➢内部属性:内部数据和运行程序是模块的内部属 性,它应该放在程序设计中进行讨论。
第9章 传统设计方法
2020年7月7日星期二
第9章 传统设计方法
1. 结构图
➢结构图的层次描述系统每部分的功能和子 功能。
➢例如,某程序有计算工资总额的功能函数, 它可能的子功能函数是计算基本工资、计 算加班费和计算税费。在结构图上用矩形 框表示功能,每个矩形框代表一个模块。
➢结构图:用来展示一个计算机程序模块间 关系的层次图。
27/109
2020年7月7日星期二
第9章 传统设计方法
2. 程序调用
➢当一个模块激活一个低层模块以便执行所 需的服务或计算时,就发生程序调用。
➢每一次调用中,控制由调用模块传向被调 用模块,被调用模块接着执行一系列程序 语句,当调用过程结束后,被调用模块立 即把控制权返回给调用模块,程序紧接着 执行下面的声明或指令。
39/109




发送












2020年7月7日星期二
第9章 传统设计方法
用户订单程序的高层结构图
➢ 数据耦合较少。所传递的惟一信息来自于事务处理选择 模块的事务选择。
➢ 控制模块用这个信息来选择正确的处理模块。
➢ 在处理模块下的子树将显示一个适当的界面来接收和传 递所要求的细化的信息。
自动化系 统边界
10/109
程序边界
第9章 传统设计方法
跨过边界的 数据流是I/O
2020年7月7日星期二
第9章 传统设计方法
数据流
➢ 可在系统内部、外部,或穿过系统界线和程序界线。
➢ 穿过系统界线的数据流是格外重要的,它们代表了系 统的输入和输出。
➢ 程序接口的设计(包括用户界面设计和与其他系统的 接口设计)是由穿过边界的数据流定义的。
2020年7月7日星期二
第9章 传统设计方法
1. 事务分析
➢事务分析使用作为输入的系统流程图和 事件表建立树型结构的顶端模块,即产 生主程序的主模块和第一层被调用模块。
➢事务分析:基于DFD的结构图开发,用 来描述多种事务类型的处理。
38/109
2020年7月7日星期二
第9章 传统设计方法
事务分析过程
➢从结构图上不能了解模块内部的内容,但 可知道模块以何种方式实现其名称所表示 的功能,如何使用输入数据,以及如何产 生输出数据。
23/109
2020年7月7日星期二
结 构 图 符 号
24/109
第9章 传统设计方法
2020年7月7日星期二
第9章 传统设计方法
模块结构图的标准形式
⑴变换型结构 ⑵事务型结构
21/109
2020年7月7日星期二
第9章 传统设计方法
一个计算工资总额的简单结构图
22/109
2020年7月7日星期二
第9章 传统设计方法
建立结构图的规则和方针
➢程序是分层的,而且模块按高内聚、低耦 合的方式组织在一起。
➢模块之间的连线表示高层模块对低层模块 调用的某种结构,其上的小箭头表示在模 块间传递的数据,以及各个模块的输入和 输出。
➢模块结构图中用矩形表达一个模块,模块的名称 写在矩形框的里面。
➢模块的名称必须表达该模块的功能,即每一次调 用时该模块应该完成的任务。
7/109
2020年7月7日星期二
结构化设计模型
第9章 传统设计方法
➢分析员用自顶向下的方法进行设计。
➢以DFD、用结构化英语描述的详细文档,
以及详细的数据流定义来作为设计模型和
➢ 在最终系统中,数据流将是用户界面中的表单、报表, 或者是与其他系统进行转换的文件或通信。
➢ 穿过边界的数据流,表示程序间的通信。在最终系统 中,这些数据流仍是程序之间转换的文件或通信。
11/109
2020年7月7日星期二
第9章 传统设计方法
9.3 系统流程图
➢对组成一个完整系统的各计算机程序、文 件、DB,以及相关手工过程的表示。
1. 事务分析 2. 变换分析
35/109
系统流程图
对应每个子系统的事件表
➢ 系统流程图中每个主要程序对应按事件划分的子系统,每个程序 有自己的结构图。
➢ 事件表中每个程序,即子系统包含若干个事件。 ➢ 每个事件对应按事件划分的DFD中的一个处理。 ➢ 每个处理进一步描述在基于事件表的DFD片段。
2020年7月7日星期二
第9章 传统设计方法
先导案例
➢剧院系统有限公司:新事物,旧事物
3/109
2020年7月7日星期二
第9章 传统设计方法
概述
➢结构化模型、模型开发过程及其相关术语。 ➢如何用系统流程图、结构图和模块伪码把
从分析阶段模型得来的信息转到设计模块。 ➢把传统软件设计和其他设计阶段的内容整

统的系统流程 图, 在前面给

出它的DFD。










RM O的 系 统 流 程 图
➢该➢图该增实加例了中在,项R目M组O定
子出➢自 销系 现义 不 存R售动统的一是在M分化的 子O个 把的析程决事 系新 报子度报定件 统的 表系,告采以。图子 增统。用取没系加上更得有统到。高几而己的个
41/109
2020年7月7日星期二
第9章 传统设计方法
事务型的DFD
25/109
2020年7月7日星期二
第9章 传统设计方法
⑴变换型结构
➢变换型系统由三部分组成:输入、数据加 工(中心变换)和输出;
➢功能:将输入的数据经过加工后输出。
26/109
2020年7月7日星期二
第9章 传统设计方法
⑵事务型结构
➢事务型系统由三层组成:事务层、操作层和细节 层;
➢功能:对接收的事务,按其类型选择某一类事务 处理。
RM O子 系 统 和 对 应 每 个 子 系 统 的 事 件
2020年7月7日星期二
第9章 传统设计方法
9.4 结构图
9.4.1 概念 9.4.2 开发一个结构图 9.4.3 评价结构图的质量
19/109
2020年7月7日星期二
9.4.1 概念
1. 结构图 2. 程序调用 3. 数据耦合
20/109
2020年7月7日星期二
第9章 传统设计方法
两种方法
➢事务分析使用作为输入的系统流程图和 事件表建立树型结构的顶端模块,即产 生主程序的主模块和第一层被调用模块。
➢变换分析使用作为输入的数据流片段去 建立子树,程序中的每个事件建立一棵 子树。
➢每棵子树的主模块对应于主程序结构图 的第一层分支。
37/109
3. 数据耦合
➢数据耦合:在一个程序调用中, 模块间传递数据 项个数。
➢带空心圆的箭头叫数据耦合, 表示I/O模块的数据。
➢数据耦合可以是一个单独的数据项(如一个客户 的账号),也可以是更高层次的数据结构(如一个 数组、记录或其他数据结构)。
➢结构图中每一层所用耦合类型,往往与细节分层 的有关原则相一致。
➢不同的编程语言中,程序调用的方式不同。
28/109
2020年7月7日星期二
第9章 传统设计方法
➢从高层模块到低层模块的箭头表示程序 调用,调用的顺序总是从左到右的。
➢结构图在表示调用结构时仍是具有严格 的层次。
➢一个低层的模块永远不会调用高层模块。
29/109
2020年7月7日星期二
第9章 传统设计方法
开发文档的输入部分。
8/109
2020年7月7日星期二
第9章 传统设计方法
9.2 自动化系统边界
➢自动化系统边界将DFD的处理划分成手工处理 部分和系统处理部分。
➢处理过程可在系统边界内,也可在系统边界外。 ➢系统边界外的处理是一些手工处理(如排序并审
核文件资料、输入用户订单或查看刚到的货物)。 ➢边界里面的处理过程能够以在线处理或批处理
➢当然同时还要确认许多其他的事件。
33/109
2020年7月7日星期二
第9章 传统设计方法
注意
➢结构图还必须与系统流程图相一致。 ➢如果在开发中结构图发生了改变,项目
组也要相应地更新系统流程图。
34/109
2020年7月7日星期二
第9章 传统设计方法
9.4.2 开发一个结构图
➢设计结构图是为给程序建立模块层次结构。 ➢结构图是树型结构,有根模块和分支模块。 ➢逐一地建立结构图,再组成完整的结构图。 ➢结构图开发方法:
相关文档
最新文档