第5章总体设计结构化设计方法
软件工程导论(第5章)

11
5.1.2 选取若干个合理的方案
至少选取低成本、中等成本和高成本三种方案。
每种方案准备四份资料:
系统流程图; 组成系统的物理元素清单; 成本/效益分析; 实现这个系统的进度计划。
12
5.1.3 推荐最佳方案
分析员应该综合分析对比各种合理方案的利
弊,推荐一个最佳的方案,并且为推荐的方 案制定详细的实现计划。
发出较高质量的软件系统。
7
第一部分:设计过程 第二部分:设计原理 第三部分:启发原则 第四部分:软件结构图 第五部分:面向数据流的设计方法
8
5.1 设 计 过 程
总体设计过程通常由两个主要阶段组成: 系统设计:确定系统的具体实现方案。 结构设计:确定软件结构。 9个步骤: ① 设想供选择的方案 ② 选取合理的方案 ③ 推荐最佳方案 ④ 功能分解 ⑤ 设计软件结构 ⑥ 设计数据库 ⑦ 制定测试计划 ⑧ 书写文档 ⑨ 审查和复审
和理解; 可以使软件容易测试和调试,因而有助于提高软 件的可靠性; 能够提高软件的可修改性; 有助于软件开发工程的组织管理。
32
模块化五条标准
模块可分解性
把问题分解为子问题 模块可组装性 可复用 模块可理解性 无需参考其他模块,易于构造和修改 模块连续性 微小修改只导致对个别模块 模块保护性 异常影响局限在模块内部
“隐蔽”意味着模块彼此间仅仅交换那些为了完成系统功能而 必须交换的信息。 “局部化”是指把一些关系密切的软件元素物理地放得彼此靠 近。局部化有助于实现信息隐蔽。
设计和确定模块时,使得一个模块内包含的信息(过程和 数据)对于不需要这些信息的模块来说,是不能访问的。 模块内部的数据与过程,应该对不需要了解这些数据与过 程的模块隐藏起来。只有那些为了完成软件的总体功能而 必需在模块间交换的信息,才允许在模块间进行传递。
大学计算机基础第5章

时期 阶段
任务
文档
需求分析 系统的目标及应完成的工作 需求规格说明书
开发
总体设计 软件设计
详细设计 软件编码 编写程序代码
总体设计说明书 详细设计说明书 程序、数据注释
黑盒测试、白盒测试、单元 测试后的软件、
软件测试 测试、集成测试、确认测试、大纲、方案与结
系统测试
果
运行 软件维护 运行和维护
维护后的软件
1)软件生命周期模型:是描述软件开发过程 中各种活动如何执行的模型。 2)常见的软件生命周期模型有:瀑布模型、 增量模型、螺旋模型、喷泉模型、变换模型及 基于知识的模型等。
上图是软件生存周期的瀑布模型。
5、软件工具与软件开发环境
软件工具:就是帮助开发软件的软件。 软件开发环境(或称软件工程环境):是全面支 持软件开发全过程的软件工具的集合,这些软 件工具按照一定的方法和模式组合起来,共同 支持软件生命周期内的各个阶段和各项任务的 完成。
结构化方法的软件开发过程
软件计划后 结构化分析
结构化设计
编码并测试 结构化程序设计
面向对象方法的软件开发过程
软件计划后 面向对象分析
面向对象设计
软件测试 面向对象编程
1、结构化分析方法
1)结构化分析(简称SA)方法是面向数据流 进行需求分析的方法。该方法使用简单易读 的符号,运用抽象的概念模型,根据软件内 部数据传递、变换的关系,自顶向下逐层分 解,描绘出满足功能要求的软件模型
DFD图的数据流可分为两种类型:变换流和事务流 变换流:信息沿着输入通路进入系统,同时将信息的外
部形式转换成内部形式,通过变换中心处理之 后,再沿着输出通路转换成外部形式输出 事务流:信息沿着输入通路到达一个事务中心,事务中 心根据输入信息的类型在若干个动作序列中选 择一个来执行,这种信息流称为事务流
第5章 总体设计

8
设计原理(续1)
◆设计示例: “用 AND, OR, and NOT 门构
建的计算机。 ”
chip1
chip2
◆第一种设计:设计师 设计三个功能芯片
chip3
2013-7-16
上海大学计算机学院
9
设计原理(续2)
◆第二种设计:每芯片一种门
2013-7-16
上海大学计算机学院
10
设计原理(续3)
2013-7-16
上海大学计算机学院
16
耦合(续1)
1. 内容耦合
● 一个模块直接引用另一个模块的内容 ● 示例
模块a修改模块b的语句 模块 a的分支转移到模块 b的局部标号
● 缺点
模块b的任何变化都要求变化a
2013-7-16
上海大学计算机学院
17
耦合(续2)
2. 共用耦合
● 两模块存取相同的数据 ● 示例
第5章 总体设计
◆设计任务
◆设计过程
◆设计原理
◆启发规则
◆图形工具 ◆面向数据流的设计
2013-7-16
上海大学计算机学院
1
总体设计的任务
◆“概括地说,系统应该如何实现?”
◆总体设计阶段的任务
●系统划分: 程序、文件、数据库、人工过程和文档等 ●设计软件的结构
每个程序是由哪些模块组成,以及这些模块相互间的关系。
2013-7-16
上海大学计算机学院
26
内聚(续4)
4. 过程性内聚
●一个模块内的处理元素是相关的,而且必须以特定次 序执行. ●示例
Function { read part number from database update repair record on master file }
第5章_总体设计 数据库原理

Contents
5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法
闽南科技学院计算机系
软件设计宣言:Mitch Kapor • “什么是设计?设计是你站在两个世界——技 术世界和人类的目标世界——而你尝试将这两 个世界结合在一起……”。 罗马建筑批评家Vitruvius提出的观念: • “设计良好的建筑应该展示出坚固、适用和令 人赏心悦目”。
• 耦合衡量不同模块彼此间互相依赖(连接)的紧密
程度。耦合要低,即每个模块和其他模块之间的 关系要简单;
• 内聚衡量一个模块内部各个元素彼此结合的紧密
程度。内聚要高,每个模块完成一个相对独立的 特定子功能。
闽南科技学院计算机系
1. 耦合
• 耦合:是对一个软件结构内不同模块之间互连程 • • •
度的度量。 要求:在软件设计中应该追求尽可能松散耦合的 系统。 可以研究、测试或维护任何一个模块,而不需要 对系统的其他模块有很多了解; 模块间联系简单,发生在一处的错误传播到整个 系统的可能性就很小; 模块间的耦合程度强烈影响系统的可理解性、可 测试性、可靠性和可维护性。
A Flag B Flag
f1
f2
„
fn
闽南科技学院计算机系
• • • • • • • • • • • • • • • • • • • • • • • •
#include <stdio.h> static bool Signal; void AdultOrNot(int age) { if (age > 18) { Signal = 1; } else { Signal = 0; } } void WineOrNot() { if (Signal == 1) { printf("%s\n", "您已到达法定饮酒年龄!"); } else { printf("%s\n","您未到达法定饮酒年龄!"); } }
第5章 总体设计

第5章总体设计软件总体设计又称概要设计,它的主要任务就是软件结构的设计,为了提高设计的质量,必须根据软件设计的原理改进软件设计。
本章内容主要内容包括:软件总体设计的基本任务,软件设计的基本原理,软件结构以及软件结构设计优化准则,面向数据流的设计方法,IDEFO图的设计方法,以及表示软件结构的另一种图形工具——HIPO 图。
5.1 基础知识5.1.1 软件总体设计的基本任务软件总体设计阶段是概要地回答系统应该如何实现。
因此要把握与详细设计的区别。
要完成如下任务。
1.软件系统结构设计按照结构化理论,实现一个系统目标需要程序和数据。
所以必须设计出组成这个系统的所用程序结构和数据库(文件)。
具体方法如下:(1)采用某种设计方法,将一个复杂的系统按功能划分成模块。
(2)确定每个模块的功能。
(3)确定模块之间的调用关系。
(4)确定模块之间的接口,即模块之间传递的信息。
(5)评价模块结构的质量。
2.数据结构及数据库设计在结构化理论软件系统中,尤其是对于大型数据处理的软件系统,除了系统结构设计外,数据结构与数据库设计是很重要的。
1)数据结构的设计根据需求分析阶段对系统数据的组成,操作约束和数据之间的描述,确定数据结构特性。
总体设计阶段利用逐步细化的方法对数据结构进行深入的设计。
2)数据库的设计一般的软件系统都有数据的存储,存储要借助数据库技术。
数据库的设计指数据存储文件的设计,设计包括概念设计,逻辑设计和物理设计。
3.网络系统设计如果采用的是网络环境,则要进行网络系统的设计。
4.软件总体设计文档总体设计说明书是总体设计阶段结束时提交的技术文档。
按国际GB8576-88《计算机软件产品开发文件编制指南》的规定,软件设计文档可分为“总体设计说明书”,“详细设计说明书”和“数据库数据说明书”。
5. 评审在该阶段,对涉及部分是否完整地实现需求中的功能,性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性,有效性以及各部分之间的一致性等,都一一进行评审。
软件工程导论第5章 总体的设计

⑵内聚:衡量一个模块内部各个元素彼此结合的紧密 程度。
5.2 续
耦合
软件结构中各个模块之间相互关联程度的度量。 常见的耦合: • ⑴非直接耦合 • ⑵数据耦合 • ⑶控制耦合 • ⑷特征耦合 • ⑸公共环境耦合 • ⑹内容耦合 设计原则:尽量使用数据耦合,少用控制耦合, 限制公共耦合的范围,避免使用内容耦合。
划分模块时尽量做到高内聚,低耦合,保持模块相对 独立性,并以此原则优化初始的软件结构。
⑴如果若干模块之间耦合强度过高,每个模块内功能 不复杂,可将它们合并,以减少信息的传递和公共区 的引用。
⑵若有多个相关模块,应对它们的功能进行分析,消 去重复功能。
设计准则
5.3 续
⑵模块规模应该适中
过大的模块往往是由于分解不充分。 过小的模块开销大于有效操作。
设计方法:定义一些不同的“映射”,把数据流 图变换成软件结构。
结构化设计方法——面向数据流的设计方法。
变换流
5.5 续
信息沿输入通路进入系统,同时由外部形式变换 成内部形式,进入系统的信息通过变换中心,经 加工处理以后再沿输出通路变换成外部形式离开 软件系统。当数据流图具有这些特征时,这种信 息流就叫作变换流。
B
C
D
(a) 基 本 形 式
(b) 顺 序
B
C
(c) 选 择
B
(d) 重 复
结构图
5.4 续
判定为真时调用A,为假时调用B
结构图
5.4 续
模块M循环调用模块A、B、C
概念
5.5 面向数据流的设计方法
定义:把信息流映射成软件结构,信息流的类型 决定了映射的方法。
目标:给出设计软件结构的一个系统化的途径。
软件工程第五章结构化设计

服务注册中心
发现
注册
服务消费者 调用
服务提供者
并发系统的集中式控制模型
传感器进程 用户界面Fra bibliotek传动装置进程 系统控制器
计算进程 故障处理器
系统控制模型
事件驱动系统
广播模型:发生的事件广播到所有子系统,任何能处理 该事件的子系统都会响应。该模型适用于基于网络的分 布式系统。
广播模型中的子系统注册其感兴趣的特别事件 广播模型的优点是进化比较简单
软件模块化设计
模块是一个独立命名的,拥有明确定义的输入、输出 和特性的程序实体。
软件的模块化设计(Modular Design)。系统是有 一个个模块组装而成。
软件模块化设计优点
可以简化软件的设计和实现 提高软件的可理解性和可测试性 软件更容易得到维护。
软件模块化设计缺点
结构化设计阶段 数据流设计方法 面向数据的设计 结构化程序设计 案例分析
结构化设计概述
结构化设计方法(Structured Design, SD)是基于模 块化、自顶向下细化、结构化程序设计等程序设计技 术基础上发展起来的。
结构化设计方法用模块结构图来表达程序模块之间的 关系。
缺点是子系统都知道是否和什么时候处理事件,这可能会引 起冲突。
中断驱动模型:由中断处理器对来自外部的中断进行检 测,然后在其他组件中处理这些中断。该模型适用于对 定时有严格要求的实时系统。
只用在硬件实时系统中,要求对一些事件能做出及时响应
总线架构
像水管一样随意接入 像PCI总线一样即插即用
第三部分软件设计与建模
结构化软件设计
阳王东
回答问题
什么是软件设计?有哪些阶段和任务? 什么是模块化设计?有哪些原理? 什么是软件结构和体系结构?二者有什么区别? 数据流有哪些类型?如何区分? 数据流映射的步骤是什么? 什么是结构化程序设计?有哪些工具? 什么是JSD方法?具体步骤是什么?
第5章总体设计

第5章总体设计基本概念模块化抽象信息隐藏和局部化耦合、内聚软件结构的深度、宽度、扇入、扇出模块的作用域和控制域层次图结构图知识点总体设计过程设计原理启发式规则面向数据流的设计方法习题一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内)1.软件概要设计结束后得到(B)。
A.初始化的软件结构图B.优化后的软件结构图C.模块详细的算法D.程序编码2.软件设计阶段一般又可分为(B)。
A.逻辑设计与功能设计B.概要设计与详细设计C.概念设计与物理设计D.模型设计与程序设计3.软件设计中划分模块的一个准则是(C)。
A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合4.SA方法的基本思想是(C)A.自底向上逐步抽象B.自底向上逐步分解C.自顶向下逐步分解D.自顶向下逐步抽象5.软件结构图中,模块框之间若有直线连接,表示它们之间存在着(A)关系。
A.调用B.组成C.链接D.顺序执行6.为了提高模块的独立性,模块内部最好是(C)。
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚7.面向数据流的设计方法把(C)映射成软件结构。
A、数据流B、模块化C、控制结构D、信息流8.软件结构使用的图形工具,一般采用(C)图。
A.DFDB.PADC.SCD.ER9.在面向数据流的软件设计方法中,一般将信息流分为(A)A、变换流和事务流B、变换流和控制流C、事务流和控制流D、数据流和控制流10、结构设计是一种应用最广泛的系统设计方法,是以(A)为基础、自顶向下、逐步求精和模块化的过程。
A、数据流B、数据流图C、数据库D、数据结构11、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。
A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚12、在软件结构化设计中,好的软件结构设计应该力求做到(B)。
A、顶层扇出较少,中间层扇出较高,底层模块低扇入B、顶层扇出较高,中间层扇出较少,底层模块高扇入C、顶层扇入较少,中间层扇出较高,底层模块高扇入D、顶层扇入较少,中间层扇入较高,底层模块低扇入13、结构图(SC)和层次方框图是不同的,前者(B)。
《软件工程与项目管理》课件_第5章

图5.6 信息内聚模块
(7) 功能内聚。若一个模块中各个部分都是为完成一项 具体功能而协同工作、紧密联系、不可分割的,则称该模块 为功能内聚模块。功能内聚模块是内聚性最强的模块。
2.耦合性 耦合性是对模块之间的相对独立性(互相连接的紧密程 度)的度量。它取决于各个模块之间接口的复杂程度、调用 模块的方式以及哪些信息通过接口。 一般模块之间可能的连接方式有七种,构成耦合性的七 种类型。不同类型耦合的强弱关系如图5.7所示。
析,确定系统具体的实施方案,然后进行结构设计,确定软件结构。 总体设计的一般步骤如下:
(1) 设计系统方案。 (2) 选取一组合理的方案。 (3) 推荐最佳实施方案。 (4) 功能分解。 (5) 设计软件结构。 (6) 设计数据库和文件结构。 (7) 制定测试计划。 (8) 编写概要设计文档。 (9) 审查与复审概要设计文档。
(5) 标记耦合。如果一组模块通过参数表传递记录信息, 则它们之间的耦合称为标记耦合。事实上,这组模块共享了 某一数据结构的子结构,而不是简单变量。这就要求这些模 块都必须清楚该记录的结构,并按结构要求对记录进行操作。
图5.9 控制耦合
(6) 数据耦合。如果一个模块访问另一个模块时,彼此 之间通过数据参数(不是控制参数、公共数据结构或外部变 量)来交换输入、输出信息,而且交换的信息仅限于数据, 则称这种耦合为数据耦合。数据耦合是松散的耦合,模块之 间的独立性比较强。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块的控制型参数来确定该模块应 执行哪一种功能。逻辑内聚模块比巧合内聚模块的内聚程度 要高,因为它表明了各部分之间在功能上的相关关系。
(3) 时间内聚(经典内聚)。这种模块大多为多功能模块, 但要求模块的各个功能必须在同一时间段内执行,例如初始 化模块和终止模块。时间内聚模块比逻辑内聚模块的内聚程 度又稍高一些。在一般情况下,时间内聚模块各部分可以以 任意的顺序执行,所以它的内部逻辑更简单。
系统总体设计方法

选择调用
根据条件满足情况决定调
也称为条件调用 用哪一个模块
循环调用
上层模块对下层模块的多
也称为重复调用 次反复的调用
结构化设计的分解原则
一是把密切相关的子问题划归为系统的同一部分 二是把不相关的子问题划归为系统的不同部分
模块之间的联系,模块间的联系是衡量模块独立性大小的一个方面 模块内部的联系,是指一个模块内部各个组成部分之间的联系。它是衡量模块独
结构化设计方法的优点是可变更性强,能适应系统环境的变化, 每一模块功能单一,模块之间相互独立,便于比较、编程、测试、 修改、维护和排错等。
结构化设计的工具—系统结构图
系统结构图是系统设计阶段描述系统结构的主要工具。
它作为一种文档,不仅包括了系统由哪些模块组成,而
且还包括了模块与模块之间及每个模块内部各组成部分
结构化设计方法的基本思想
结构化设计方法的基本思想是使系统模块化,在这一思想的指导 下,设计人员根据系统的数据流程图,自顶向下,层层分解,步 步求精,最后建立起一个结构良好的模块化系统。
结构化设计的主要内容,包括下列三个方面:研究系统分解成一 个个模块的方法;评价模块的方法;从数据流程图导出系统模块 结构图的方法。
立性的又一方面
系统设计的总要求是尽量减小模块之间的联系,使模块的独立性达到最大
管理信息系统
管理信息系统
系统总体设计方法
结构化设计方法的基本思想 结构化设计的工具 结构化设计的分解原则
系统总体设计方法——结构化设计方法
结构化系统设计方法是在结构化思想的基础上,发展起来的一种用于复杂 系统结构设计的技术,它是运用一套标准的设计准则和工具,采用模块化 的方法进行系统结构设计。
结构化设计方法适用于任何信息系统的总体设计,它可以和分析阶段的结 构化分析方法以及实施阶段的结构化程序设计方法前后衔接起来。
软件工程简答题答案第五版

软件工程简答题答案第五版软件工程简答题第一章绪论1.什么是软件危机?软件危机有什么表现?软件危机产生的原因是什么?答:所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是指如何开发软件,怎样满足对软件日益增长的需求,如何维护数量不断膨胀的先有软件。
表现:(1)对于软件开发的成本和进度的估计很不准确。
(2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。
(3)开发的软件可靠性差。
(4)软件通常没有适当的文档资料。
(5)软件的可维护性差。
(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
原因:软件开发中遇到的问题因找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,导致了软件危机。
2.简述软件的发展过程。
答:软件生产的发展划分为三个年代:(1)程序设计时代:这一时期,软件的生产主要是个体手工劳动的生产方式。
(2)程序系统时代:由于计算机的应用领域不断扩大,软件的需求也不断增长,软件由于处理的问题域扩大而使程序变得复杂,设计者不得不由个体手工劳动组成小集团合作,形成作坊式生产方式小集团合作生产的程序系统时代。
(3)软件工程时代:软件工程时代的生产方式是采用工程的概念、原理、技术和方法,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3.什么叫软件工程?软件工程是如何克服软件危机的?答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件。
4.软件工程的目标是什么?软件工程有哪些原则?答:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
原则如下:抽象、模块化、信息隐藏、局部化、完整性、一致性和可验证性。
软件工程导论课件第5章

4
主要工作
完成模块分解,确定系统的模块层次结构
文档 数据结构的描述部分
模块说明部分,包括模块结构以及每个模块的 功能说明
5
总体设计的过程
总体设计通常由系统设计和结构设计两个阶段组成。 系统设计阶段确定系统的具体实现方案,结构设计阶段确 定软件的结构。
实施总体设计的过程如下:
1.设想供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.数据库设计 7.制定测试计划 8.书写文档 9.审查和复审
27
(7)功能内聚 如果一个模块中的所有处理元素都完成一个, 而且仅完成一个功能 比如:一个模块只完成矩阵加法运算或只打印 输出一种特定的表格功能
对于一个模块而言,模块自身的内聚越 强,模块间的耦合就越小,模块所具有的独 立性就越好,可以说高内聚低耦合是我们进 行软件设计的一贯原则。
28
启发规则
12
9. 审查和复审
最后应该对总体设计的结果进行严格的技术 审查,在技术审查通过之后再由使用部门的负责人 从管理角度进行复审。
13
设计原理
模块
模块是数据说明、可执行语句等程序对象的 集合,它是单独命名的,可通过名字来进行访问。 例如:汇编语言中的子程序,Pascal语言中的过程, C语言中的函数等。
32
描绘软件结构的图形工具
在总体设计阶段,我们经常使用以下几种 图形工具: 层次图 HIPO图 结构图
33
(一)层次图
层次图中的每个方框代表一个模块,方框间 的连线表示调用关系,不同于层次方框图那样表示 组成关系。 例如:正文加工系统调用编辑模块,编辑模 块依需要调用添加、删除、插入、修改、合并、列 表模块。
《软件工程学》第05章 详细设计

5.1 详细设计的目的与任务
该阶段工作具体包括以下几方面:
2.为数据库进行物理设计 为数据库进行物理设计,确定数据库的物理结构。物理结
构主要指数据库的存储记录格式、存储记录安排和存储方法, 这些都依赖于具体所使用的数据库系统。
3.其它设计 (1)输入/输出格式设计:针对各个功能,根据界面设计风
5.1 详细设计的目的与任务
根本目标:
应该‘怎样具体地实现’系统?
详细设计是软件设计的重要阶段,主要确定每 个模块的具体执行过程,也称为“过程设计” Note:
任务:设计程序的“蓝图”,供编码时“翻译”使用; 详细设计≠编写程序; 详细设计结果决定着程序代码的质量; 让机器、人都看得懂。
5.1 详细设计的目的与任务
基本单元:矩形框; 算法:矩形框的组装。 N-S图适合结构化程序设计方法,对于非结构化 程序无法表示。
5.3.2 盒图
图5.13 盒图的基本符号 (a)顺序型;(b)IF选择型;(c)CASE型多分支;(d)循环型;(e)调用子程序
5.3.2 盒图
优点:
不能任意转移控制; 功能域(特定控制结构的作用域)明确; 很容易确定局部和全程数据的作用域; 很容易表现嵌套关系,也可表示模块的层次结构。
软件工程导论
天津市大学软件园
第5章 详细设计
➢ 理解详细设计的目的与任务 ➢ 理解面向数据结构的Jackson方法
➢ 熟练掌握结构化的详细设计方法及
其设计工具
第5章 详细设计
➢ 5.1 详细设计的目的与任务 ➢ 5.2 详细设计方法 ➢ 5.3 详细设计工具 ➢ 5.4 习题
第5章 详细设计
➢ 5.1 详细设计的目的与任务 ➢ 5.2 详细设计方法 ➢ 5.3 详细设计工具 ➢ 5.4 习题
电子商务网站设计原理(五)

2、系统设计的主要工作
(1)总体设计,包括信息系统流程图设计、功能结构图设计和功能模块图设计等。
(2)模块结构图
模块:是组成目标系统逻辑模型和物理模型的基本单位,特点是可以组合、分解和更换。
A、一个模块应具备以下4个要素:a、输入和输出 b、处理能力 c、内部数据 d、程序代码
(3)系统流程图
系统流程图:系统流程图(System Flowchart)是用来描述系统物理模型的一种传统工具。
1、系统设计的主要内容。
(1)总体设计,总体设计包括系统模块结构设计和计算机物理系统的配置方案设计。
(2)详细设计,详细设计主要有处理过程设计以确定每个模块内部的详细执行过程,包括局部数据组织、控制流、每一步的具体加工要求等,常用的有流程图、问题分析图、IPO图和过程设计语言来描述每个模块的执行过程;除了处理过程设计,还有代码设计、界面设计、数据库设计、输入/输出设计等。
D、UI的界面设计与评价。 对界面的质量评估通常可用以下4项基本要求衡量:(1)界面设计是否有利于用户目标的完成。(2)界面学习和使用是否容易。(3)界面使用效率高低(4)设计的潜在问题
面对界面的总体设计和具体功能块设计,可面品质则以以下特点为准: (1)实用性 (2)有效性 (3)易学习性 (4)系统设备及功能使用面 (5)用户满意程序
H、数据库设计的特点如下: 数据库设计是硬件和软件的结合。数据库应用系统的设计包括两个部分:结构设计和行为设计。结构设计就是设计各级数据库模式,决定数据库系统的信息内容。行为设计他决定数据库系统的功能,是事务处理等应用程序的设计。
第5章 总体设计

5.2.4 信息隐藏和局部化
信息隐藏原理指出:应该这样设计和确定模块,使 得一个模块内包含的信息(过程和数据)对于不需要 这些信息的模块来说,是不能访问的。 局部化是指把一些关系密切的软件元素物理地放得 彼此靠近。在模块中使用局部数据元素是局部化的 一个例子。显然,局部化有助于实现信息隐藏。
5.2.5 模块独立
图5.11数字仪表板系统的数据流图
图5.12具有边界的数据流图
图5.13 第一级分解的方法
图5.14 数字仪表板系统的第一级分解
第6步 完成“第二级分解”。 所谓第二级分解就是把数据流图中的每个处理映射 成软件结构中一个适当的模块。完成第二级分解的 方法是,从变换中心的边界开始沿着输入通路向外 移动,把输入通路中每个处理映射成软件结构中 Ca控制下的一个低层模块;然后沿输出通路向外 移动,把输出通路中每个处理映射成直接或间接受 模块Ce控制的一个低层模块;最后把变换中心内 的每个处理映射成受Ct控制的一个模块。图5.15表 示进行第二级分解的普遍途径。
开发具有独立功能而且和其他模块之间没有过多的 相互作用的模块,就可以做到模块独立。换句话说, 希望这样设计软件结构,使得每个模块完成一个相 对独立的特定子功能,并且和其他模块之间的关系 很简单。 模块的独立程度可以由两个定性标准度量,这两个 标准分别称为内聚和耦合。
1.耦合度 耦合度是对一个软件结构内部不同模块间联系紧 密程度的度量指标。 由于模块间的联系是通过模块接口实现的,因此, 模块耦合性的高低主要取决于模块接口的复杂程度、 调用模块的方式以及通过模块接口的数据。模块间 的耦合性主要可划分为如下几种类型。
3. 深度、宽度、扇出和扇入都应适当 深度表示软件结构中控制的层数,它往往能粗略地 标志一个系统的大小和复杂程度。 宽度是软件结构内同一个层次上的模块总数的最大 值。一般说来,宽度越大系统越复杂。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A 模块A调用模块B
B
方框代表一个模块,框内注明模块的名字或 主要功能,方框之间的箭头或直线表示模块 的调用关系。在结构图中带注释的箭头表示 模块调用过程中来回传递的信息或数据。箭 头尾部是空心圆表示传递的是数据,箭头尾 部是实心圆表示传递的是控制信息。
当一个模块调用另一个模块时,调用模块把 数据或控制信息传给被调用模块,以使被调用 模块能够运行。另方面被调用模块在执行过 程中又把它产生的数据或控制信息送回给调 用模块。
面向数据流的设计方法
基本概念和设计过程
SD根据DFD的特性定义变换映射与事务映射。 变换映射与事务映射可以机械地把DFD转换成 初始SC图或程序结构。
变换型DFD图
变换映射
初始SC图
事务型DFD图
事务映射
初始SC图
变换流
如果数据流图中输入信息流沿传入路径进入系统,
同时由外部形式变换为内部形式,经过系统变换中
反映了既有控制信息
又有数据信息的情况。
报表加工程序结构图
符号 信息名
f1 读入信息 f2 最后输入信息 f3 已编辑信息 f4 已检验信息 f5 有效信息 f6 处理结果 f7 日期 f8 信息行 f9 最后结果
报表加工
f2
f5 f5
f6 f2
合法性检验 计算
f6
印报表
f2
f4
f3
采集信息 f3 检验
结构图的主要质量指标是模块内聚度和偶 合度。
获取结构图
根据需求规格说明书建立初始结构图;按高 内聚、低藕合的标准修改初始结构图;反复 修改调整直至获得满意的最终结构图。
层次图(H图)
用于描绘软件的层次结构,层次图中一个矩形框 代表一个模块,框间的连线表示调用关系,位于上 方的矩形框所代表的模块调用位于下方的矩形框所 代表的模块
结构化设计(SD)的基本观念
认为程序或系统是由一组功能操作构成的, 需要实现的系统是逻辑功能(模块)的抽象 集合,着重分析模块之间关系,忽视模块内 部的情况。
软件应该设计为结构简单,功能单一、相 互独立的模块组织。
重视“模块度”(软件系统中的模块数目) 概念。
内聚和耦合是评价软件设计质量的标准。
图形工具
逻辑输出
距离物理输出端(输出末端)最远的但仍 可以被视为系统输出的那些数据流。 数据通过变换中心时被加工,其内容和形 式可能会发生变化,数据在传入和传出的路 径上,其内容和形式也可能会发生变化。
模块间的调用关系和接口表示
A
A
查找学生成绩
x,y z
x,y y,z
学号
查找成功
B
B
查找学生记录
A 调 用 B, 传 递 参 数 是 x,y,z,其中x,y是B的 输 入 参 数 ,z 是 B 输 出 参数,存放结果值
A 调 用 B 时 ,y 既 是 B 的 输入参数,又是B输出 参数, B修改了y的值
事务
接受路径
传
动
入
T
事务
。
作
中心
。 。
路 事务中心
径
变 换
传 出
事务型结构的基本模型
同时存在两类结构的模型
结构化设计方法的设计过程
精化数据流图
事务
确定事务中心和动作路径
流类
变换 确定输入输出流界
映射为事务结构
映射为变换结构
提取控制结构
事务分析
用启发式规则精化软件结构 描述接口和全局数据结构
变换分析
心加工或处理后,再沿输出通道变换成外部形式离
开系统,则称数据流图所描述的信息流是变换流。
变换流型数据流图有明显的输入、加工/变换、输出 三部分。
信息流
外部表示
输入流
输出流
传入路径
变换 中心ห้องสมุดไป่ตู้
传出路径
信 息 内部表示
变换流
基本系统模型模型
时间
变换(流)结构
事务流
信息沿传入路径进入系统,由外部形式变换为内 部形式后到达一个事务中心,事务中心根据输入信 息的类型,在若干个动作路径或活动流中选择一个 来执行,这种信息流称为事务流。
结构化设计方法
第5章 总体设计
设计举例
结构化设计方法
无论是何种类型的设计,都要从需求分析 获得的分析模型导出软件的设计模型。
数据对象说明
E-R图
STD图
DD
DFD图
控制说明
加工说明 (PSPEC)
分析模型
过程设计 接口设计 结构设计
数据设计
设计模型
结构化设计方法的特点是面向软件系 统结构,采用结构图来描述程序的结构。 根据需求分析阶段对数据流的分析结果 来设计软件结构,把数据流图变换成程 序结构。理论上,结构化设计方法可以 用于任何软件系统的开发。由于结构化 设计的工作与结构化分析工作相衔接, 所以又说它是一种面向数据流的设计方 法。
输入 1.0
输出 2.0
编辑 3.0
加标题 4.0
存储 5.0
检索 编目录 格式化 6.0 7.0 8.0
添加 3.1
删除 3.2
插入 3.3
修改 3.4
合并 3.5
列表 3.6
层次图描绘软件的层次结构 层次图适用于自顶向下的设计软件 过程。 书写文档时,常用层次图描绘软件 结构而不是结构图。因为结构图上包 含的信息太多,清晰程度有时反倒不 如层次图。
f7
f9
印表头 f8 印表尾
f2
读入 f1 f1
f3
编辑
f8
f8
打印
M
M
A
B
A
B
C
模块M有条件地调用模块A与B。 模块M反复调用模块A、B、C。 判定为真时调用A,为假时调 模块M循环调用模块A,B,C 用B
结构图的辅助符号
结构图描述了模块间的调用关系,揭示了 模块结构的偶合和内聚关系,这种关系代表 系统的一种静态结构,表明模块间是否有关 系,是否相互发生影响,但没有说明如何发 生影响。
结构图(SC)
结构图是描绘系统结构的图形工具,描述 系统由哪些模块组成、程序中模块之间的调 用关系、每个模块“做什么”以及每个模块 输入和输出。
结构图是结构化设计中的重要的结果。
结构图的基本成分有方框、箭头或直线以 及带注释的箭头。
结构图的基本成分
模块 调用
数据信息 控制信息
已定义模块 例如程序库中的函数
复审 详细设计
变换分析
变换分析是一系列设计步骤的总称,它是 指经过这一系列设计步骤把具有变换流特性 的数据流图按预先确定的模式映射成软件结 构。
变换结构由传入、传出和变换中心三个部 分组成。
变换中心(中心加工)的任务是把系统的 逻辑输入加工为系统的逻辑输出。
逻辑输入
距离物理输入端(输入始端)最远的但仍 可以被视为系统输入的那些数据流。
正文加工系统
输入 输出 编辑 加标题 存储 检索 编目录 格式化
添加 删除
插入
修改 合并 列表
HIPO图
H图里除了顶层的方框之外,每个方框都加编号, H图中的每个方框配置一张IPO图,该IPO图描述对应 方框代表的模块的处理过程,每张IPO图内都标有它 所描绘的模块在H图中的编号。
正文加工系统
加编号的H图