软件工程--总体设计说明

上传人:l**** 文档编号:136713159 上传时间:2020-07-01 格式:PPT 页数:84 大小:1.80MB
返回 下载 相关 举报
软件工程--总体设计说明_第1页
第1页 / 共84页
软件工程--总体设计说明_第2页
第2页 / 共84页
软件工程--总体设计说明_第3页
第3页 / 共84页
软件工程--总体设计说明_第4页
第4页 / 共84页
软件工程--总体设计说明_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《软件工程--总体设计说明》由会员分享,可在线阅读,更多相关《软件工程--总体设计说明(84页珍藏版)》请在金锄头文库上搜索。

1、西北师大数学与信息科学学院,1,第八章基于构件的软件工程,第五章系统设计,第五章系统设计,第五章系统设计,西北师大数学与信息科学学院,2,4,5.1 设计过程,5.2 设计原理,5.3 启发规则,5.4 描绘软件结构的图形工具,5.5 面向数据流的设计方法,西北师大数学与信息科学学院,3,软件设计阶段要解决“怎么做”的问题,是整个软件开发过程的核心问题,所有的开发工作都将根据设计的方案进行。系统的总体结构在该阶段决定,因此软件的总体设计决定了系统的质量。软件设计分为总体设计和详细设计两个阶段。,1、设计阶段结束要交付的文档是设计说明书,根据设计方法的不同,有不同的设计文档。 2、每个设计步骤完

2、成后,都应进行复审。,软件设计,西北师大数学与信息科学学院,4,软件开发阶段的信息流,软件设计的过程,西北师大数学与信息科学学院,5,任务:确定系统的软件结构,分解模块 ,确定系统的模块层次关系。 目标: 编写软件的 “总体设计说明书” 工具:采用的工具 数据流图 层次图 HIPO图 软件结构图,总体设计的任务,西北师大数学与信息科学学院,6,结构化设计(SD)技术,软件设计的目标,1、确定系统的软件结构,分解模块 ,确定系统的模块层次关系 2、确定每个模块功能的算法、数据结构,确定每个模块功能的算法、数据结构,(事务型、变换型(特征) ),(层次图表示),西北师大数学与信息科学学院,7,软件

3、设计分为: 结构设计 总体设计(概要设计) 过程设计 详细设计 总体设计过程分两个阶段: 系统设计阶段:确定系统的具体设计方案; 结构设计阶段:确定软件结构(划分模块)。,5.1 设计过程,西北师大数学与信息科学学院,8,系统设计过程,西北师大数学与信息科学学院,9,5.2 系统设计的基本原则,5.2.1 模块化,5.2.2 抽象,5.2.3 信息隐蔽,退出,5.2.4 模块独立性,西北师大数学与信息科学学院,10,5.2.1 软件设计原理,1、模块 是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。即能够单独命名并独立地完成一定功能的程序语

4、句的集合。,模块化:把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集成起来组成一个整体,可以完成指定的功能,满足问题的功能。,过程、函数、子程序和宏等,都可作为模块。面向对象范型中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。,西北师大数学与信息科学学院,11,根据前面的结论,我们可以得出下面的不等式: E(P1P2)E(P1)E(P2) 这个不等式表明:单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决时所需的工作量要少。,有两个函数:C(x)表示问题x的复杂程度;E(x)表示解决问题x所需要的工作量(时间)。 对于两个问题P1和P2,

5、如果:C(P1)C(P2) 则:E(P1)E(P2),另一个有趣的特性是:C(P1P2)C(P1)C(P2),3、模块化原理,西北师大数学与信息科学学院,12,模块化和软件成本的关系,西北师大数学与信息科学学院,13,我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。,5.2.2 抽象,5.2.3 逐步求精 逐步求精是人类解决复杂问题时采用的基本技术,也是许多软件工程技术(例如,规格说明技术,设计和实现技术、测试和集成技术)的基础。逐步求精定义为:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑

6、。”,西北师大数学与信息科学学院,14,信息隐蔽指:是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说, 是不能访问的;即将那些自身的实现细节与数据“隐藏”起来。 信息局部化指:局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。 信息隐蔽 局部和的关系?,5.2.4 信息隐蔽和局部化,西北师大数学与信息科学学院,15,5.2.5 模块独立,模块独立概念是模块化、抽象、逐步求精和信息隐藏等概念的直接结果,也是完成有效的模块设计的基本标准。,模块的独立程度可以由两个定性标准来度量,这两个标准分别称为内聚和

7、耦合。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。,西北师大数学与信息科学学院,16,耦合性是程序结构中各个模块之间相互关联的度量 它取决于各个模块之间接口的复杂程度、调用模块的方 式以及那些信息通过接口。,低,高,弱,强,耦合性,模块独立性,模块间的耦合,西北师大数学与信息科学学院,17,1、耦合,非直接耦合 数据耦合 特征耦合 控制耦合 外部耦合 公共耦合 内容耦合,弱耦合,中耦合,强耦合,模块1,模块2,模块3,模块4,数据耦合 通过简单变量交换数据,特征耦合 通过数据结构交换数据,非直接耦合 模块之间没有信息传递,

8、模块A,模块B,模块C,模块D,模块L,模块N,全局性数据结构 公共耦合,Flag=1?,S1,S2,模块1,控制耦合 模块之间传递的是控制信息,T,F,全 局 性简单变量 外部耦合,模块A,模块B,内容耦合 访问其它模块的内部数据 直接跳到其他模块内部执行,西北师大数学与信息科学学院,18,设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。,西北师大数学与信息科学学院,19,内 聚,低,高,强,弱,内聚性,模块独立性,软件设计,西北师大数学与信息科学学院,20,2、内聚,内聚:一个模块内各个元素彼此结合的紧密程度。 偶然内聚:一个模块完成一组任务,任务之间的关系很

9、松散。公共语句。 逻辑内聚:若干个逻辑功能类似的任务组成一个模块。 时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。,低内聚,中内聚,高内聚,过程内聚:模块内的处理元素是相关的,且必须以特定次序执行。 通信内聚:模块中所有元素都使用同一个输入数据,和/或产生同一个 输出数据。,顺序内聚:模块中所有处理元素和同一个功能密切相关,且这些处理必 须顺序执行。 功能内聚:所有处理元素属于一个整体,完成一个单一的功能。,西北师大数学与信息科学学院,21,5.3 启发式规则,1改进软件结构提高模块独立性 合并和分解 2模块规模应该适中 一个模块的规模不应过大,通常能写在一页纸内。从心理学角度研究

10、得知,当一个模块包含语句数超过30以后,模块的可理解程度迅速下降。,西北师大数学与信息科学学院,22,3模块的深度、宽度、扇出和扇入应适当 深度:表示软件结构中的控制层数,它往往能粗略的标志一个系统的大小和复杂度。 宽度:是软件结构内同一个层次上的模块总数的最大值。 扇出:是一个模块直接控制的模块数。 扇入:一个模块的扇入表明有多少个上级模块直接调用它。,西北师大数学与信息科学学院,23,尽可能减少高扇出结构,随着深度增大扇入。 如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。,西北师大数学与信息科学学院,24,4模块的作用范围应

11、该在控制范围之内 作用范围:一个模块的作用范围指受该模块内一个判定影响的所有模块的集合。 控制范围:一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。,图 模块的判定作用范围 (a) 差的结构图; (b) 不理想的结构图; (c) 理想的结构图,西北师大数学与信息科学学院,25,5.力争降低模块接口的复杂程度。 模块接口复杂是软件发生错误的一个主要原因。 6设计单入口单出口的模块,避免“病态连接” 7模块功能应该可以预测 。 防止模块功能过分局限,西北师大数学与信息科学学院,26,5.4 表示软件结构的图形工具,5.4.1 层次图,5.4.2 HIPO图,5.4

12、.3 结构图,西北师大数学与信息科学学院,27,5.4.1 层次图和HIPO图 通常使用层次图描绘软件的层次结构。 1、层次图 层次图用来描绘软件的层次结构,很适于在自顶向下设计软件的过程中使用。 在层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。,西北师大数学与信息科学学院,28,学生成绩管理系统层次图,西北师大数学与信息科学学院,29,HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的方框之外,每个方框都加了编号。,2、HIPO图,西北

13、师大数学与信息科学学院,30,描绘软件结构的图形工具,在层次图(H图)里除了最顶层的方框之外,每个方框都加编号。编号规则和数据流图的编号规则相同,例如,图加了编号后得到图0。像这样带编号的层次图称为HIPO图(层次图加输入/处理/输出图的英文缩写)。,图学生成绩管理系统HIPO图,西北师大数学与信息科学学院,31,图4.6 IPO图的一个例子,西北师大数学与信息科学学院,32,图4.7 改进的IPO图(IPO表)的形式,西北师大数学与信息科学学院,33,方框代表模块,框内注明模块的名字或主要功能; 箭头表示模块的调用关系,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。 尾部是空心圆

14、表示传递的是数据 实心圆表示传递的是控制信息,5.4.2 结构图,结构图的基本符号,结构图和层次图类似也是描绘软件结构的图形工具。,西北师大数学与信息科学学院,34,方框代表模块,框内注明模块的名字或主要功能; 箭头表示模块的调用关系,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。 尾部是空心圆表示传递的是数据 实心圆表示传递的是控制信息,5.4.1 结构图,结构图的基本符号,结构图和层次图类似也是描绘软件结构的图形工具。,西北师大数学与信息科学学院,35,描绘软件结构的图形工具,结构图的组成 有6种类型的模块:传入模块、传出模块、变换模块、协调模块,如下图所示,还有两种: 源模块

15、:不调用其它模块的传入模块,只适用于传入部分的始端。最初的输入; 漏模块:不调用其它模块的传出模块,只适用于传出部分的末端。最后的输出。,系统结构图中的模块类型,西北师大数学与信息科学学院,36,结构图的图形符号,西北师大数学与信息科学学院,37,软件结构图的基本符号,结构图的三种基本结构,西北师大数学与信息科学学院,38,4.3 选择调用和循环调用的表示 (a) 选择调用; (b) 循环调用,西北师大数学与信息科学学院,39,产生最佳解的结构图,西北师大数学与信息科学学院,40,例:学生成绩管理系统的结构图,西北师大数学与信息科学学院,41,5. 5 面向数据流的设计方法,5.5.1 数据流

16、图的类型,5.5.2 设计步骤,5.5.3 变换设计,退出,5.5.4 事务设计,5.5.5 设计的后处理,西北师大数学与信息科学学院,42,一、总体设计步骤 从DFD图导出初始的模块结构图。 按照SD法设计总则(启发式规则),改进模块结构图。,注意:模块结构图不同于“框图”。,二、DFD图的分类 一般将DFD图分为两种典型的类型,分析系统的 DFD 图类型的目的,是为了采用不同的技术将其转换为初始的模块结构图。 中心变换型(transform center) _ 变换分析 事务处理型(transaction) _ 事务分析,5.5.1 数据流图的类型,西北师大数学与信息科学学院,43,SD方法的两种映射过渡方法,三、面向数据流的设计方法,西北师大数学与信息科学学院,44,面向数据流的设计方法,概念

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号