软件工程总体设计(PPT111页).pptx
《软件工程总体设计(PPT111页).pptx》由会员分享,可在线阅读,更多相关《软件工程总体设计(PPT111页).pptx(111页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信息科学与技术学院 闵笛软件工程软件工程第五章总体设计第五章总体设计v5 . 1 设计过程设计过程 v5 . 2 设计原理设计原理 v5 . 3 启发规则启发规则 v5 . 4 描绘软件结构的图形工具描绘软件结构的图形工具v5 . 5 面向数据流的设计方法面向数据流的设计方法 v5 . 6 小结小结v习题习题信息科学与技术学院 闵笛软件工程软件工程学习要求学习要求v掌握:掌握: v1 、软件设计过程中应遵循的基本原理和相、软件设计过程中应遵循的基本原理和相关概念;关概念; v2 、描绘软件结构的图形工具的运用;、描绘软件结构的图形工具的运用; v3 、面向数据流设计方法概念;变换分析、面向数据
2、流设计方法概念;变换分析、事务分析法过程和应用。事务分析法过程和应用。v理解:理解: v1 、典型的总体设计过程包括的步骤;、典型的总体设计过程包括的步骤; v2 、设计中的启发式规则、设计中的启发式规则;信息科学与技术学院 闵笛软件工程软件工程重点和难点重点和难点v重点重点:v软件设计过程中应遵循的基本原理;软件设计过程中应遵循的基本原理;v面向数据流的设计方法面向数据流的设计方法v难点难点:v变换分析、事务分析法的过程和应用变换分析、事务分析法的过程和应用信息科学与技术学院 闵笛软件工程软件工程软件设计的目标和任务软件设计的目标和任务v软件需求:解决软件需求:解决“做什么做什么”v软件设计
3、:解决软件设计:解决“怎么做怎么做”v软件设计的任务:软件设计的任务:以软件需求规格说明书为以软件需求规格说明书为依据,着手实现软件的需求,并将设计的结依据,着手实现软件的需求,并将设计的结果反映在果反映在“设计规格说明书设计规格说明书”文档中。文档中。v软件设计的重要性:软件设计的重要性:是软件开发阶段的第一是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的步,最终影响软件实现的成败和软件维护的难易程度。难易程度。信息科学与技术学院 闵笛软件工程软件工程软件设计的两个阶段软件设计的两个阶段v第一阶段:概要设计(总体设计)第一阶段:概要设计(总体设计)v根据软件需求,设计软件系统结构和
4、数据结根据软件需求,设计软件系统结构和数据结构,确定程序的组成模块及模块之间的相互构,确定程序的组成模块及模块之间的相互关系。关系。v回答回答“概括地说,系统应该如何实现?概括地说,系统应该如何实现?”。v其重要性是:站在全局高度,从较抽象的层其重要性是:站在全局高度,从较抽象的层次上分析对比多种可能的系统实现方案和软次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软结构,从而用较低成本开发出较高质量的软件系统。件系统。信息科学与技术学院 闵笛软件工程软件工程软件设计的两个阶段软件设计的两个阶
5、段v第二阶段:详细设计(过程设计)第二阶段:详细设计(过程设计)v确定模块内部的算法和数据结构;选定某种确定模块内部的算法和数据结构;选定某种过程的表达形式来描述各种算法;产生精确过程的表达形式来描述各种算法;产生精确描述各模块程序过程的详细文档,并进行评描述各模块程序过程的详细文档,并进行评审。审。信息科学与技术学院 闵笛软件工程软件工程将需求分析模型转换为软件设计将需求分析模型转换为软件设计v软件结构设计以需求分析中得到的数据流图软件结构设计以需求分析中得到的数据流图为基础而进行。为基础而进行。信息科学与技术学院 闵笛软件工程软件工程第一个阶段总体设计的任务第一个阶段总体设计的任务v 制定
6、规范制定规范 v 设计软件系统结构(简称软件结构)设计软件系统结构(简称软件结构) v 处理方式设计处理方式设计v数据结构及数据库设计数据结构及数据库设计 v 可靠性设计可靠性设计 v 编写概要设计文档编写概要设计文档v 概要设计评审概要设计评审信息科学与技术学院 闵笛软件工程软件工程 制定规范制定规范v为软件开发小组制定在进行软件设计时,应为软件开发小组制定在进行软件设计时,应该共同遵守的标准,以便协调组内各成员的该共同遵守的标准,以便协调组内各成员的工作。工作。信息科学与技术学院 闵笛软件工程软件工程 软件结构设计软件结构设计v包括:包括:v将系统按功能划分成模块将系统按功能划分成模块v确
7、定每个模块的功能确定每个模块的功能v确定模块之间的调用关系确定模块之间的调用关系v确定模块之间的接口,即模块之间传递的信息确定模块之间的接口,即模块之间传递的信息v评价模块结构的质量评价模块结构的质量信息科学与技术学院 闵笛软件工程软件工程 处理方式设计处理方式设计v包括:包括:v功能设计:功能设计:确定实现功能算法,评估算法的确定实现功能算法,评估算法的性能性能v性能设计:性能设计:确定实现性能需求必须的算法和确定实现性能需求必须的算法和模块间的控制方式模块间的控制方式信息科学与技术学院 闵笛软件工程软件工程5.1 设计的过程设计的过程信息科学与技术学院 闵笛软件工程软件工程5. 2 设计原
8、理设计原理v5.2.1模块化模块化v5.2.2抽象抽象v5.2.3逐步求精逐步求精v5.2.4信息隐蔽和局部化信息隐蔽和局部化v5.2.5模块独立模块独立信息科学与技术学院 闵笛软件工程软件工程5 . 2 . 1 模块化模块化(Modularity )v 什么是模块和模块化思想?什么是模块和模块化思想?v采取自顶向下的方式,逐层把软件系统划分采取自顶向下的方式,逐层把软件系统划分成若干可单独命名和可编址的部分成若干可单独命名和可编址的部分 “ 模模块块” ,每个模块完成一个特定的子功能每个模块完成一个特定的子功能;所;所有模块按某种方法组成一个整体,完成整个有模块按某种方法组成一个整体,完成整
9、个系统所要求的功能。系统所要求的功能。v软件系统就是通过这些模块的组合来实现软件系统就是通过这些模块的组合来实现。信息科学与技术学院 闵笛软件工程软件工程 模块化的优点模块化的优点v模块化是软件解决复杂问题所具备的手段,模块化是软件解决复杂问题所具备的手段,可降低软件复杂性,减少开发工作量,从而可降低软件复杂性,减少开发工作量,从而降低开发成本,提高软件生产率,以下是模降低开发成本,提高软件生产率,以下是模块化的依据。块化的依据。信息科学与技术学院 闵笛软件工程软件工程 模块化与软件成本的关系模块化与软件成本的关系接口接口信息科学与技术学院 闵笛软件工程软件工程 模块的基本属性模块的基本属性v
10、接口:接口:指模块的输入与输出。指模块的输入与输出。v功能:功能:指模块实现什么功能。指模块实现什么功能。v模块化好处模块化好处:v模块化使软件容易测试和调试,因而有助提模块化使软件容易测试和调试,因而有助提高软件的可靠性。高软件的可靠性。v模块化能提高软件的可修改性。模块化能提高软件的可修改性。v模块化有助于软件开发工程的组织管理。模块化有助于软件开发工程的组织管理。信息科学与技术学院 闵笛软件工程软件工程5.2.2 抽象(抽象( Abstraction )v 什么是抽象?什么是抽象?v认识复杂事物和现象时,认识复杂事物和现象时,抽出事物本质的共同特抽出事物本质的共同特 性而暂不考虑它们的细
11、性而暂不考虑它们的细节。节。v 软件开发中的抽象软件开发中的抽象v过程的抽象过程的抽象v数据的抽象数据的抽象学生学生大学生大学生湛江师范学院的学生湛江师范学院的学生湛师信息学院的学生湛师信息学院的学生湛师信息学院湛师信息学院11计本的学计本的学生生信息科学与技术学院 闵笛软件工程软件工程抽象抽象v什么是抽象思想什么是抽象思想?在认识事物、分析和解决问题的过程中,在认识事物、分析和解决问题的过程中,忽略忽略那那些与当前研究目标些与当前研究目标不相关不相关的部分的部分, 以便将注意力以便将注意力集中于集中于与当前目标与当前目标相关相关的方面的方面v软件开发实际上就是一个从软件开发实际上就是一个从高
12、层次抽象高层次抽象到到低低层次抽象层次抽象逐步过渡的过程。逐步过渡的过程。v一个复杂的系统先用一些高级的抽象概念构一个复杂的系统先用一些高级的抽象概念构造和理解,这些高级概念又用较低级的概念造和理解,这些高级概念又用较低级的概念构造和理解,如此进行下去,直到具体元素。构造和理解,如此进行下去,直到具体元素。信息科学与技术学院 闵笛软件工程软件工程形体形体衣着衣着性格性格抽象抽象抽象例子抽象例子外表外表信息科学与技术学院 闵笛软件工程软件工程5 . 2. 3 逐步求精逐步求精v逐步求精:逐步求精:为了能集中精力解决主要问题而为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。尽量推迟对问题细节
13、的考虑。v可把逐步求精看作是一项把一个时期内必须可把逐步求精看作是一项把一个时期内必须解决的种种问题解决的种种问题按优先级排序按优先级排序的技术。的技术。v逐步求精是一种逐步求精是一种自顶向下自顶向下的设计策略,按这的设计策略,按这种设计策略,程序的体系结构是通过逐步精种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。化处理过程的层次而设计出来的。信息科学与技术学院 闵笛软件工程软件工程逐步求精逐步求精外表外表形体形体衣着衣着性格性格头发头发脸形脸形领带领带抽象抽象逐步求精的例子逐步求精的例子信息科学与技术学院 闵笛软件工程软件工程自顶向下,逐步求精的基本思想自顶向下,逐步求
14、精的基本思想v将功能、信息的说明分为多个层次,将功能、信息的说明分为多个层次,最高层最高层也最抽象也最抽象 仅仅只是仅仅只是概念性概念性地描述功能或信地描述功能或信息,息,不不提供功能的内部工作情况或信息的内提供功能的内部工作情况或信息的内部结构;部结构;v设计者从最高层开始,仔细推敲,进行功能设计者从最高层开始,仔细推敲,进行功能和信息的细化,给出下和信息的细化,给出下层实现的细节层实现的细节;v随着每个后续细化逐步的完成,提供越来越随着每个后续细化逐步的完成,提供越来越多的细节,最终得出用程序设计语言表达的多的细节,最终得出用程序设计语言表达的程序。程序。信息科学与技术学院 闵笛软件工程软
15、件工程结合了模块化和逐步细化思想建立的软件结构图结合了模块化和逐步细化思想建立的软件结构图信息科学与技术学院 闵笛软件工程软件工程5.2.4 信息隐蔽和局部化信息隐蔽和局部化v信息隐蔽:信息隐蔽:在设计和确定模块时,使得一个在设计和确定模块时,使得一个模块模块内内包含的信息(过程或数据),不允许包含的信息(过程或数据),不允许其它其它不需要不需要这些信息的这些信息的模块访问模块访问,独立的模,独立的模块间仅仅交换为完成系统功能而必须交换的块间仅仅交换为完成系统功能而必须交换的信息。信息。v局部化:局部化:将一些关系密切的软件元素物理地将一些关系密切的软件元素物理地放得彼此靠近。放得彼此靠近。信
16、息科学与技术学院 闵笛软件工程软件工程5.2.5 模块独立模块独立v1 、什么是模块独立性(、什么是模块独立性( module independence)v模块只完成系统要求的相对独立的功能模块只完成系统要求的相对独立的功能v符合信息隐蔽原则符合信息隐蔽原则v模块间关联和依赖程度尽量小模块间关联和依赖程度尽量小 v2 、模块独立的优点、模块独立的优点v容易开发、测试和维护容易开发、测试和维护信息科学与技术学院 闵笛软件工程软件工程3 、衡量模块独立性的两个准则、衡量模块独立性的两个准则v 耦合性(耦合性( coupling ) v 内聚性(内聚性( cohesion )信息科学与技术学院 闵笛
17、软件工程软件工程 耦合性(耦合性( coupling )v也称块间的联系。是对软件系统结构中,各也称块间的联系。是对软件系统结构中,各模块间相互联系紧密程度的一种度量。模块间相互联系紧密程度的一种度量。v设计目标:低耦合设计目标:低耦合信息科学与技术学院 闵笛软件工程软件工程无直接耦合无直接耦合v两个模块没有直接关系,模块独立性最强。两个模块没有直接关系,模块独立性最强。信息科学与技术学院 闵笛软件工程软件工程数据耦合数据耦合v属松散耦合。一模块访问另一模块时,通过属松散耦合。一模块访问另一模块时,通过数据参数交换输入、输出信息。数据参数交换输入、输出信息。信息科学与技术学院 闵笛软件工程软件
18、工程控制耦合控制耦合v模块之间传递的是控制信息(如开关、标志、模块之间传递的是控制信息(如开关、标志、名字等),名字等),控制被调用模块的内部逻辑控制被调用模块的内部逻辑。信息科学与技术学院 闵笛软件工程软件工程控制耦合举例控制耦合举例信息科学与技术学院 闵笛软件工程软件工程去除模块间控制耦合的方法去除模块间控制耦合的方法v控制耦合增加了理解和编程的复杂性,调用控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了模块必须知道被调模块的内部逻辑,增加了相互依赖。解决方法:相互依赖。解决方法:v(1)将被调用模块内的判定上移到调用模块)将被调用模块内的判定上移到调用模块中进
19、行中进行 v(2)被调用模块分解成若干单一功能模块)被调用模块分解成若干单一功能模块信息科学与技术学院 闵笛软件工程软件工程改控制耦合为数据耦合举例改控制耦合为数据耦合举例信息科学与技术学院 闵笛软件工程软件工程特征耦合特征耦合v两个模块通过传递两个模块通过传递数据结构数据结构加以联系,或都加以联系,或都与一个与一个数据结构数据结构有关系,则称这两个模块间有关系,则称这两个模块间存在特征耦合。存在特征耦合。v可能出现的情况:当把可能出现的情况:当把整个数据结构作为参整个数据结构作为参数数传递时,被调用的模块虽然只需要使用其传递时,被调用的模块虽然只需要使用其中的一部分数据元素,但实际可以使用的
20、数中的一部分数据元素,但实际可以使用的数据多于它真正需要的数据,这将导致对数据据多于它真正需要的数据,这将导致对数据访问失去控制。访问失去控制。信息科学与技术学院 闵笛软件工程软件工程特征耦合举例特征耦合举例v说明:说明: v “住户情况住户情况”是一个是一个数据结构数据结构,图中模块都与此数,图中模块都与此数据结构有关。据结构有关。 v “计算水费计算水费”和和“计算电费计算电费”本无关,由于引用了本无关,由于引用了此数据结构产生依赖关系,它们之间也是此数据结构产生依赖关系,它们之间也是特征偶合特征偶合。信息科学与技术学院 闵笛软件工程软件工程将特征耦合修改为数据耦合举例将特征耦合修改为数据
21、耦合举例信息科学与技术学院 闵笛软件工程软件工程公共环境耦合公共环境耦合v一组模块引用同一个公用数据区(也称全局一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。数据区、公共数据环境)。v公共数据区公共数据区指:指:v全局数据结构。全局数据结构。v共享通讯区。共享通讯区。v内存公共覆盖区等。内存公共覆盖区等。信息科学与技术学院 闵笛软件工程软件工程公共环境耦合举例公共环境耦合举例v模块模块 A 、 B 、 C 间存在错综复杂的联系间存在错综复杂的联系信息科学与技术学院 闵笛软件工程软件工程公共耦合存在的问题公共耦合存在的问题v( 1 )软件可理解性降低软件可理解性降低 v( 2 )
22、诊断错误困难诊断错误困难 v( 3 )软件可维护性差软件可维护性差v( 4 )软件可靠性差软件可靠性差信息科学与技术学院 闵笛软件工程软件工程内容耦合内容耦合v有下列情况之一的。是最不好的耦合形式!有下列情况之一的。是最不好的耦合形式!信息科学与技术学院 闵笛软件工程软件工程模块间耦合强度模块间耦合强度信息科学与技术学院 闵笛软件工程软件工程耦合强度依赖的因素:耦合强度依赖的因素:v一模块对另一模块的引用一模块对另一模块的引用v一模块向另一模块传递的数据量一模块向另一模块传递的数据量v一模块施加到另一模块的控制的数量一模块施加到另一模块的控制的数量v模块间接口的复杂程度模块间接口的复杂程度信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 总体 设计 PPT111
限制150内