第8章数据库系统的概要设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.3.3模块分解时应遵循的准则
在软件分解过程中,须遵循以下原则: (1)满足信息隐蔽原则。 (2)尽量使得模块的内聚度高,模块间的耦合度低。 (3)模块的规模适中(通常一个模块以50~100个语句行为宜) (4)模块的调用深度不宜过大。 (5)模块的扇人应尽量大,扇出不宜过大。 (6)设计单入口和单出口的模块。 (7)模块的作用域应在控制域之内。 (8)模块的功能应是可以预测的。
成 批 成 绩 单 录 入
打 印 班 级 成 绩
打 印 成 绩 统 计 表
图8-19 成绩管理系统层次图
8.4.2
IPO图
IPO图(input process output图)输入—处理—输出图是在层 次结构图的基础上推出的一种描述系统结构和模块内部处理功能 的工具。在总体设计、详细设计、设计、评审、测试和维护的不 同阶段,都可以使用IPO图对设计进行描述。如下图所示的IPO图 :
需求 需求1 需求1.1 需求1.2 需求2.1 需求2 需求2.2
需求分析
。。。。。
概念模式 概念模式 概念模式 概念模式
概念模式1
概念模式n
概念结构设计
。。。。。
全局概念模式
图8-1 自顶向下的分析需求与自底向上设计概念结构
8.2 数据库的概念设计
结构化系统分析和设计方法学强调系统的功能方面,其本质是抽 象和功能分解,如前面章节介绍的数据流图就是一种面向功能的建模 方法,自20世纪70年代中期以来,数据库管理系统尤其是关系数据库 技术的应用,使软件系统的开发重心开始向系统的数据部分转移,而 面向数据的建模方法使用实体-联系图(Entity Relationship Diagram, 也称实体-关系图,简称E-R图)等图形工具来对客观世界进行抽象表 示,有时也称为实体-关系建模方法。在一个数据库应用系统的设计中, 面向功能的建模方法和面向数据的建模方法应相互参照,才能使系统 结构特性和行为特性有效地结合起来,达到系统设计的目标。
学生
m
选 修
n
课程
图8-3 多对多联系
8.2.3数据抽象、局部视图的设计
概念结构是对现实世界的一种抽象,即对实际的人、物、事和概 念进行人为处理,抽取人们关心的共同特性,忽略非本质的细节, 并把这些特性用各种概念精确地加以描述。因此,用自底向上的方 法设计概念结构,首先要根据需求分析的结果(数据流图、数据字 典)等对现实世界的数据进行抽象,设计各个局部视图即分 E-R 图。 设计分E-R图的步骤是: 1.选择局部应用 2.设计分E-R图
8.3.2
内聚与耦合
• • • • • • •
内聚是对模块内部各成分之间关联程度的度量。耦合是模块之间依赖程 度的度量。内聚和耦合是密切相关的,与其他模块存在强耦合的模块通常 意味着弱内聚,而强内聚的模块通常意味着与其他模块之间存在弱耦合。 模块划分的原则是强内聚、弱耦合。 内聚按强度从低到高有以下几种类型: 偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚
8.1.2 数据库系统的概要设计
对于基于结构化的数据库系统开发方法而言,数据库系统在完成 需求分析之后应进入数据库系统的概要设计阶段,此阶段不仅需要 进行数据库概念结构设计(也可简称数据库概念设计)工作,即数 据库结构特性设计;而且还需要确定数据库系统的软件系统结构, 进行模块划分,确定每个模块的功能、接口以及模块间的调用关系, 即进行数据库行为特性的设计过程。 数据库概念结构设计是将系统需求分析得到的用户需求抽象为 信息结构过程。只有将系统应用需求抽象为信息世界的结构,也就 是概念结构后,才能转化为机器世界中的数据模型,并用DBMS实现 这些需求。
8.4.1
层次图
层次图是在概要设计(也称总体设计)阶段最常使用的图形 工具之一,它常用于描绘软件的层次结构。层次图中的每个方框 代表一个模块,方框间的连线表示模块间的调用关系。 如图8-19所示是层次图的一个例子 。
成绩管理系统
查询
录入成绩
打印报表
查 询 课 程
查 询 学 生 成 绩
个 别 成 绩 单 录 入
8.4 概要设计的图形工具
一般地,程序中的一个模块完成一个适当的子功 能。在设计软件结构(即由模块组成的层次系统)时, 应该把模块组织成良好的层次系统,即顶层模块调用 它的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一Leabharlann Baidu子功能, 最下层的模块则完成最具体的功能。软件结构可以用 层次图或结构图来描绘。
8.1.1
软件系统的概要设计
软件系统的生命周期可分为制定计划、需求分析、设计、程序编制、 测试以及运行维护等阶段。在软件系统的开发过程中,经过制定计划、 需求分析阶段后,软件开发的下一阶段就是进行系统设计。 系统设计阶段通常可以划分为两个子阶段:概要设计和详细设计。 概要设计的主要任务是回答“系统总体上应该如何做? ”,即将分析 模型映射为具体的软件系统结构,进行模块划分,确定每个模块的功 能、接口以及模块间的调用关系。详细设计则将概要设计的结果具体 化,即为每个模块设计实现的细节。为了完成系统设计的任务,系统 设计人员通常根据分析阶段采用的分析方法的不同,采用不同的设计 方法。如针对分析阶段系统分析人员采用的分析方法的不同(如面向 数据建模、面向功能建模或面向对象建模等方法),系统设计的方法 也不同(相应的有面向数据的设计,面向功能的设计和面向对象的设 计等)。
1.数据库概念结构的特点 概念结构是独立于数据库逻辑结构和具体DBMS所支持的数据库, 其主要特点是: (1)概念模型是对现实世界的一个抽象描述。 概念模型应能真实、充分地反映现实世界,能满足用户对数据的 处理要求。 (2)概念模型应当易于理解。 概念模型只有被用户理解后,才可以与设计者交换意见,参与数 据库的设计。 (3)概念模型应当易于更改。 由于现实世界(应用环境和应用要求)会发生变化,这就需要 改变概念模型,易于更改的概念模型有利于修改和扩充。 (4)概念模型应易于向数据模型转换 概念模型最终要转换为数据模型。设计概念模型时应当注意, 使其有利于向特定的数据模型转换。
本章要点
• • • • • • 系统概要设计概述 数据库的概念设计 模块化设计 概要设计的图形工具 系统概要设计说明 运用Powerdesigner工具建立概念数据模型
目 录
8.1 系统概要设计概述 8.1.1 软件系统的概要设计 8.1.2 数据库系统的概要设计 8.2 数据库的概念设计 8.2.1 数据库概念设计的步骤 8.2.2 实体-联系图 8.2.3 数据抽象、局部视图的设计 8.2.4 视图的集成 8.3 模块化设计 8.3.1 模块化设计的基本原则 8.3.2 内聚与耦合 8.3.3 模块分解时应遵循的准则 8.4 概要设计的图形工具 8.4.1 层次图 8.4.2 IPO图
8.3.1 模块化设计的基本原则
实现模块化设计的重要指导思想是分解、信息隐藏和模块独立性。 1.分解 分解是指将一个待开发的软件分解成若干个小的简单部分——模块, 每个模块可独立地开发、测试,最后组装成完整的程序。 2.信息隐藏 信息隐藏是指将每个程序的成分隐蔽或封装在一个单一的设计模块 中,定义每一个模块时尽可能少地显露其内部的处理。 3.模块独立性 模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他 模块之间的联系简单。模块独立就是希望每个模块都是高内聚、低耦合 的。
2.数据库概念结构设计的方法 概念模型是数据模型的前身,它比数据模型更独立于机器、更 抽象,也更加稳定。概念设计的方法有以下4种: (1)自顶向下的设计方法。 该方法首先定义全局概念结构的框架,然后逐步细化为完整的全 局概念结构。 (2)自底向上的设计方法。 即首先定义各局部应用的概念结构,然后将它们集成起来,得到 全局概念结构的设计方法。 (3)逐步扩张的设计方法。 此方法首先定义最重要的核心概念结构,然后向外扩充,生成其 他概念结构,直至完成总体概念结构。 (4)自顶向下与自底向上相结合的方法。 最常采用的策略是自底向上的方法,即自顶向下地进行需求分析, 然后再自底向上地设计概念结构,其方法如图8-1所示。其中,概 念模式对应于概念模型。
目 录
8.5 系统概要设计说明 8.6 运用Powerdesigner建立概念数据模型 8.7 应用实例 小结
8.1 系统概要设计概述
经过需求分析阶段以后,已经知道系统 必须“做什么”了,但还不知道系统该“怎 么做”。概要设计的基本目的是要回答“概 括地说,系统应该如何做?”这个问题。因此, 有时也称概要设计为初步设计或总体设 计。
分E-R图
视图集成
总E-R图
No
满意
Yes
逻辑结构设计
图8-2 概念结构的设计步骤
8.2.2
实体-联系图
概念结构设计的结果是数据库的概念模型,它用E-R图进行描述。 E-R 图由三个相互关联的部分构成:实体(即数据实体或数据对 象)、实体之间的联系以及实体和联系的属性。 如图8-3所示, “学生”和“课程”两个实体之间存在多对多的 联系.
1.结构化设计方法的设计步骤: (1)数据设计,数据设计的任务是从分析阶段得到的数据流图和 数据字典出发,设计出相应的数据结构。 (2)软件结构设计,软件结构设计的任务是定义系统的主要结构 元素之间的关系,通常是从数据流图出发,对数据流图进行分析, 得出软件的层次化模块结构图。 (3)接口设计,软件结构设计的任务是描述系统内部、系统与系 统之间以及系统与用户之间如何进行通信,接口包含数据流和控 制流信息。 ( 4 )过程设计,过程设计是从分析阶段得到的过程规格说明出 发,得出系统中各个功能的过程化描述。
2.面向对象设计方法的设计步骤: (1)对象设计,把所有的对象都归为各种类,每个类都定义了一 组数据和方法。数据用于表示对象的静态属性,即描述对象的状 态信息;方法是对象所能执行的操作,也就是类中所能提供的服 务。 (2)子系统设计,子系统设计是根据实际系统的需要,按照子类 (也称为派生类)和父类(也称为基类)的关系,可以把若干个 类组成一个层次结构的系统。 (3)消息设计,消息设计是描述对象之间如何通过传递消息进行 通信,。 (4)方法设计,从系统的功能模型和行为模型出发,得出各个类 的方法及其实现细节。
演示
8.2.4 视图的集成
视图集成就是把设计好的各子系统的分E-R图综合成一个系统的总 E-R图。视图的集成可以有两种方法:一种方法是多个分 E-R图一次 集成,如图8-8 所示;另一种方法是逐步集成,用累加的方法一次 集成两个分E-R图,如图8-9所示。
图8-8 多个分E-R图一次集成
图8-9
多个分E-R图逐步集成
8.2.1 数据库概念设计的步骤
E-R模型工具主要用于描述数据的概念结构。最常用的策略是自底向 上的方法,即自顶向下的需求分析,然后再自底向上的设计概念结构。 采取该概念结构的设计步骤按照图8-2所示的自顶向下分析需求与自底向 上设计概念结构方法。
需求分析 数据流图 数据字典
数据抽象、局部 视图的设计
演示
8.3 模块化设计
把大型软件按照规定的原则划分为一个个较小的、相对独 立但又相关的模块的设计方法,叫做模块化设计。模块是数据说 明和可执行语句等程序对象的集合,每个模块单独命名并且可以 通过名字对模块进行访问。例如,过程、函数、子程序、宏等都 可作为模块。模块化就是把程序划分成若干个模块,每个模块完 成一个子功能,并把这些模块集合起来组成一个整体,以完成指 定的功能来满足问题的要求。
耦合按从强到弱的顺序可分为以下几种类型: •内容耦合 •公共耦合 •控制耦合 •数据耦合 耦合是影响软件复杂程度和设计质量的一个重要因素,在设 计上应采取以下原则:如果模块间必须存在耦合,就尽量使用数 据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内 容耦合。如果模块间若存在多种耦合方式,它们的耦合类型以耦 合最紧的类别确定。
模块名称:
直接调用本模块的上级模块名称: 本模块直接调用的模块名称: 输入: 输出: 与本模块相直接关联的数据结构(数据库、数据文卷):
模块编号:
设计人:
处理描述:
8.5 系统概要设计说明
系统概要设计说明书的主要内容,如下所示: