250 likes | 377 Vues
第 3 章 总体设计. 本章主要内容: 软件设计的概念与原则;总体设计的步骤和方法;面向数据流的设计方法;总体设计的文档与评审。 本章重点: 总体设计的步骤和方法;面向数据流的设计方法 本章难点: 软件设计的原则,内聚和耦合,系统结构图 。. 第 3 章 总体设计. 本章结构: 3.1 总体设计的任务和步骤 3.2 总体设计的概念与原则 3.3 面向数据流的设计方法 3.4 总体设计规格说明书与评审 3. 5 总体设计文档写作范例. 3.1 总体设计的任务和步骤. 3.1.1 总体设计的任务
E N D
第3章 总体设计 • 本章主要内容:软件设计的概念与原则;总体设计的步骤和方法;面向数据流的设计方法;总体设计的文档与评审。 • 本章重点:总体设计的步骤和方法;面向数据流的设计方法 • 本章难点:软件设计的原则,内聚和耦合,系统结构图 。
第3章 总体设计 • 本章结构: • 3.1总体设计的任务和步骤 • 3.2总体设计的概念与原则 • 3.3面向数据流的设计方法 • 3.4 总体设计规格说明书与评审 • 3. 5总体设计文档写作范例
3.1总体设计的任务和步骤 • 3.1.1总体设计的任务 • 第一个任务是将系统划分成物理元素,即程序、文件、数据库、文档等等。 • 第二个任务是设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成,模块间的相互关系。 • 第三个任务是编写总体设计说明书,用户手册,测试计划,用结构图来描述软件结构。 • 3.1.2 总体设计的步骤 • 1. 设计供选择的方案 • 2. 推荐最佳实现方案 • 3. 设计软件结构 • 4. 数据库设计 • 5. 制定测试计划 • 6. 编写总体设计文档 • 7. 审查与复审总体设计文档
3.2总体设计的概念与原则 • 3.2.1 模块化 • 模块化设计在软件开发过程中有着广泛的应用,进行模块化设计的好处有:一方面,降低了系统的复杂性,便于修改;另一方面,推动了系统各个部分的并行开发,提高了软件的生产效率。
3.2总体设计的概念与原则 • 3.2.2 抽象 • 即抽出事物的本质特性而暂时不考虑它们的细节。 • 抽象的思想在软件开发中起着重要作用。 • 3.2.3信息隐蔽 • 每一个模块的实现细节对于其他模块来说是隐蔽的,也就是说,模块中所包含的信息不允许其它不需要这些信息的模块调用。 • 信息隐蔽对于软件的测试与维护都有很大的好处。 • 3.2.4模块独立性 • 模块独立性是软件质量的关键,它指软件系统中的每个模块只涉及软件要求的具体子功能,而和系统中其他模块接口是简单的。 • 模块的独立性可以用两个定性标准度量:耦合和内聚。 • 耦合是模块之间相互连接的紧密程度的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱。
3.2总体设计的概念与原则 • 内聚是一个模块内部各个元素彼此结合的紧密程度的度量。一个模块内部各个元素之间的联系越紧密,内聚性就越高,相对与其它模块之间的耦合性就会降低,而模块独立性就越强。 • 1.耦合 • 耦合有七种类型 : • (1)非直接耦合 :两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用实现的,这就是非直接耦合。 • (2)数据耦合 :两个模块彼此间通过数据参数(不是控制参数、公共数据结构或外部变量)交换信息,这种耦合称为数据耦合。 • (3)标记耦合 :模块之间通过参数表传递记录信息,就是标记耦合。 • (4)控制耦合 :模块传递的信息中有控制信息,就称作控制耦合。 • (5)公共耦合 :一组模块通过同一个公共数据环境相互作用,则它们之间的耦合称为公共耦合。
3.2总体设计的概念与原则 • (6) 内容耦合 :如果发生下列情形之一,两个模块之间就发生了内容耦合。 • 一个模块直接访问另一个模块的内部数据。 • 一个模块不能通过正常入口转到另一模块的内部。 • 两个模块有一部分程序代码重叠(只可能出现在汇编语言中) • 一个模块有多个入口。 • (7) 外部耦合 :如果一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称为外部耦合。
3.2总体设计的概念与原则 • 2.内聚 • 内聚性也有七种类型 : • (1) 偶然内聚 :如果一个模块各部分之间没有关系,或者即使有关系,这种关系也是很松散的,则称作偶然内聚。 • (2) 逻辑内聚 :如果一个模块中包含多个逻辑上相关的功能,每次被调用时,根据传递给该模块的判定参数来确定模块应执行的功能,称作逻辑内聚。 • (3)时间内聚:如果一个模块所包含的任务必须在同一时间内执行,称作时间内聚。 • (4)过程内聚:如果一个模块内的处理是相关的,而且必须以特定次序执行,则称为过程内聚。 • (5)通信内聚:如果一个模块各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称为通信内聚。 • (6)信息内聚:如果一个模块能够完成多个功能,各个功能都在同一数据结构上操作,每一项功能有唯一的入口点,称作信息内聚。
3.2总体设计的概念与原则 • 7)功能内聚:如果一个模块内各个部分都是完成某一具体功能必不可少的组成部分,称作功能内聚。 • 以上七种内聚之间的关系如图3.3所示。
3.2总体设计的概念与原则 • 3.2.5 结构设计准则 • 1. 提高模块独立性 • 2. 选择合适的模块规模 • 3. 适当选择模块的深度、宽度、扇入和扇出 • 4. 模块的作用范围应在控制范围之内 • 5.降低模块接口的复杂程度 • 6. 设计单入口单出口且功能可预测的模块
3. 3 面向数据流的设计方法 • 3.3.1系统结构图(SC图) • 系统结构图(SC图)是SD方法使用的主要描述工具,它用来显示软件的组成模块及其调用关系。 • 1. SC图的组成符号 • SD方法约定,用矩形框来表示模块,用带箭头的连线表示模块之间的调用关系,在调用线的两旁,应标出传入和传出模块的数据流。
3. 3 面向数据流的设计方法 • 2. SC图中的模块调用 • 简单调用 :
3. 3 面向数据流的设计方法 • 选择调用: • 循环调用:
3. 3 面向数据流的设计方法 • 3.3.2数据流图的类型 • 1. 变换型数据流图
3. 3 面向数据流的设计方法 • 2. 事务型数据流图
3. 3 面向数据流的设计方法 • 3.3.4变换分析 • 变换分析是一系列设计步骤的总称,经过这些步骤把变换型数据流图按预先确定的模式映射成软件结构。具体的设计步骤如下: • 1. 复查并精化数据流图 • 2. 鉴别数据流图的类型并区分系统的输入流、输出流和变换中心三个部分 • 3. 进行一级分解 • 4. 进行第二级分解 • 5. 精化软件结构 • 3.3.5事务分析 • 事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于由数据流图到软件结构的映射方法不同。
3.3 面向数据流的设计方法 • 3.3.6设计优化 • 3.3.7教材购销系统的结构设计示例 • 【例3.1】 通过前一章结构化分析,已获得教材购销系统第三层的两张DFD图,即销售子系统DFD图和采购子系统DFD图。试用结构化设计方法,从上述两张DFD图导出教材,购销系统的总体结构图,包括初始终的SC图和按改进规则进行修改后的最终SC图。 • 第一步:细化并修改DFD图。
3.3 面向数据流的设计方法 • 第二步:鉴别DFD图的类型。 • 第三步:画出SC图的框架。
3.3 面向数据流的设计方法 • 第四步:分解动作分支,补充动作层与细节层。
3.4 总体设计规格说明书与评审 • 在总体设计阶段设计人员完成的主要文档是总体设计说明书,它主要规定软件的结构。 • 1.引言 • 2.任务概述 • 3.总体设计 • 4.接口设计 • 5.数据结构设计 • 6.运行设计 • 7.出错处理设计 • 8.安全保密设计
3. 5总体设计文档写作范例 • 某高校教材管理系统中教材购销子系统的总体设计说明书。