《第四章 总体设计概要设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第四章 总体设计概要设计精选文档.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章总体设计概要设计本讲稿第一页,共六十九页4.1总体设计的过程总体设计的过程总体设计过程通常由两个主要阶段组成:1.系统设计,确定系统的具体实现方案;2.结构设计,确定软件结构。本讲稿第二页,共六十九页总体设计的过程:总体设计的过程:确定方案确定结构 一、设想供选择的方案二、选择合理的方案三、推荐最佳方案四、功能分解五、设计软件结构六、数据库设计七、制定测试计划八、书写文档九、审查复审本讲稿第三页,共六十九页概要设计的任务概要设计的任务1将系统划分成模块;将系统划分成模块;2确定每个模块的功能;确定每个模块的功能;3确定模块的调用关系;确定模块的调用关系;4确定模块的界面,即模块间传递的数
2、据。确定模块的界面,即模块间传递的数据。本讲稿第四页,共六十九页.2软件设计基本概念软件设计基本概念一一 模模 块块 化化 与与 信信 息息 隐隐 藏藏(Modularization,InformationHiding)本讲稿第五页,共六十九页1分解(分解(Decomposition)设C(x)为问题x的复杂程度,E(x)为解决x的工作量(时间)。若C(p1)C(p2),则E(p1)E(p2)实践证明:C(p1+p2)C(p1)+C(p2)E(p1+p2)E(p1)+E(p2)模块化 本讲稿第六页,共六十九页2信息隐藏信息隐藏模模块块内内部部的的数数据据与与过过程程,应应该该对对不不需需要要了
3、了解解这这些些数数据据与与过过程程的的模模块块隐隐藏藏起起来来,只只有有为为了了完完成成软软件件的的总总体体功功能能而而必必需需在在模模块块间间交交换换的的信信息息,才才允允许许在在模模块块间间进进行传递。行传递。本讲稿第七页,共六十九页模块独立性模块独立性 (ModuleIndependence)模块独立的概念是模块化、抽象、信息隐藏和局部化的直接结果。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。为什么模块独立性很重要呢?有效的模块化的软件比较容易开发出来;独立的模块比较容易测试和维护。本讲稿第八页,共六十九页(1).内聚(内聚(Cohesion)内聚标志
4、一个模块内各个元素彼此结合的紧密程度。它是信息隐藏和局部化概念的自然扩展。内聚度越高越好。本讲稿第九页,共六十九页.偶然性内聚(CoincidentalCohesion)所谓偶然性内聚是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。.逻辑性内聚(LogicalCohesion)如果一个模块完成的任务逻辑上相关(例如,一个产生所有与类型无关的输出),则称为逻辑性内聚。.时间性内聚(TemporalCohesion)如果一个模块内包含的任务必须在一个时间段内执行(例如一个初始化模块),则称之为时间性内聚。.过程性内聚(ProceduralCohesion)模块的过
5、程性内聚是指,模块内成分彼此相关,并且必须按特定的次序执行。本讲稿第十页,共六十九页5.通讯性内聚(CommunicationalCohesion)模块的通讯性内聚是指,模块中各成分都将对数据结构的同一区域进行操作,以达到通讯的目的。6.顺序性内聚(SequentialCohesion)如果一个模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,则称为顺序性内聚。7.功能性内聚(FunctionalCohesion)如果模块内所有成分形成一个整体,完成单个功能,则称为功能内聚。功能内聚是最高的内聚形式。本讲稿第十一页,共六十九页(2).耦合(耦合(Coupling)耦耦合合是是对对一一
6、个个软软件件结结构构内内不不同同模模块块之之间间互互连连程程度度的的度度量量。耦耦合合度度越越弱弱越越好好。耦耦合合度度的的强强弱弱取取决决于于模模块块间间接接口口的的复复杂杂性性、进进入入或或调调用用模模块块的的位位置置以以及及通通过过界界面面传传送送数数据的多少等。据的多少等。本讲稿第十二页,共六十九页.非直接耦合非直接耦合(NoDirectCoupling)如如果果两两模模块块中中任任一一个个都都不不依依赖赖对对方方能能独独立立工工作作,则则称称这这两两模模块块为为非非直直接接耦耦合合,这这类类耦耦合度最低。合度最低。.数据耦合数据耦合(DataCoupling)如如果果两两模模块块间间
7、通通过过参参数数交交换换信信息息,而而信信息息仅仅限于数据,则称这两模块为数据耦合。限于数据,则称这两模块为数据耦合。.特征耦合特征耦合(StampCoupling)介介于于数数据据耦耦合合和和控控制制耦耦合合之之间间的的是是特特征征耦耦合。合。本讲稿第十三页,共六十九页4.控制耦合控制耦合(ControlCoupling)如如果果两两模模块块间间通通过过参参数数交交换换信信息息,而而信信息息仅仅限限于于数数据据,此此时时若若传传递递的的信信息息中中包包含含控控制制信信息息,则耦合度上升为控制耦合。则耦合度上升为控制耦合。5.外部耦合外部耦合(ExternalCoupling)当当若若干干模模
8、块块均均与与同同一一个个外外部部环环境境关关联联(例例如如I/O处处理理使使所所有有模模块块与与特特定定I/O设设备备、格格式式和和通通讯讯协协议相关联),它们之间便存在外部耦合。议相关联),它们之间便存在外部耦合。6.公共耦合公共耦合(CommonCoupling)当当若若干干模模块块通通过过全全局局的的数数据据环环境境相相互互作作用用时时,它们之间存在公共耦合。它们之间存在公共耦合。本讲稿第十四页,共六十九页 7.内容耦合(ContentCoupling)最高耦合度是内容耦合,出现内容耦合的情形包括:当一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一模块内部,等。本讲稿第
9、十五页,共六十九页二抽象与逐步求精二抽象与逐步求精抽抽象象是是一一个个心心理理学学概概念念,即即将将注注意意力力集集中中在在某某一一层层次次上上考考虑虑问问题题,而而忽忽略略那那些些低低层层次次的的细细节节,软软件件工工程程过过程程的的每每一一步步都都是是对对较较高高一一级抽象的解级抽象的解,作一次较具体的描述作一次较具体的描述逐逐步步求求精精与与抽抽象象密密切切相相关关,是是一一种种自自顶顶向向下下设设计计策策略略,其其主主要要思思想想是是:针针对对某某个个功功能能的的宏宏观观描描述述用用逐逐步步求求精精的的方方法法不不断断地地分分解解。逐逐步步确确定定过过程程细细节节直直至至该该功功能能用
10、用程程序序描描述述的的算算法法实实现现为为止止。这这种种分分解解是是逐逐步步的的,即即每每一一步步分分解解仅仅较较其其前前一一步步增增加加“少少量量”的的细细节节。这这样样在在相相连连两两步步之之间间只只有有微微小小的的变变化化,不不难难验验证证它们的内容是否等效。它们的内容是否等效。本讲稿第十六页,共六十九页例:求五边形的面积,边长由例:求五边形的面积,边长由L1L7由键盘读入由键盘读入 解:一级抽象(求精)解:一级抽象(求精)1.1.输入长度输入长度L1L7;2.由由L1、L5、L6求三角形面积求三角形面积S1;3.由由L2、L6、L7求三角形面积求三角形面积S2;4.由由L3、L4、L6
11、求三角形面积求三角形面积S3;5.S=S1+S2+S3;6.输出输出S;二级求精:已知三边二级求精:已知三边a、b、c,求三角形面积求三角形面积TsP=(a+b+c)/2;Ts=SQRT(P(P-a)(P-b)(P-c)三级求精:写出程序。三级求精:写出程序。本讲稿第十七页,共六十九页4.启发式规则启发式规则 在软件开发的长期时间中人们积累了在软件开发的长期时间中人们积累了丰富的经验,总结这些经验得出了一些有丰富的经验,总结这些经验得出了一些有用的启发式规则。它能给软件工程师以有用的启发式规则。它能给软件工程师以有用的启示,帮助他们找到改进软件设计提用的启示,帮助他们找到改进软件设计提高软件质
12、量的途径。高软件质量的途径。本讲稿第十八页,共六十九页一改进软件结构提高模块独立性;设计出软件的初步结构后,应该审查分析这个结构,通过模块分解和合并,力求降低耦合提高内聚。二模块规模应该适中;(通常为60行语句)三深度、广度、扇出和扇入都应适中(增加中间层);深度表示软件结构中控制的层数,能粗略地标志一个系统的大小和复杂程度。广度是软件结构内同一个层次上的模块总数的最大值。一般来说,广度越大系统越复杂。对广度影响最大的因素是模块的扇出。扇入(fan-in)是指模块的上级模块数,即共有多少模块需要调用这个模块。扇出(fan-out)是指模块调用下属模块的数目,或者说这个模块具有多少个下属模块。本
13、讲稿第十九页,共六十九页四模块的作用域应该在控制域之内模块的作用域定义为受该模块一个判定影响的所有模块的集合;模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。如下图:本讲稿第二十页,共六十九页五力争降低模块接口的复杂程度;五力争降低模块接口的复杂程度;模模块块接接口口复复杂杂是是软软件件发发生生错错误误的的主主要要原原因因。应应该该仔仔细细设设计计模模块块接接口口,使使得得信信息息传传递递简简单单并并且且和模块的功能一致。和模块的功能一致。接接口口复复杂杂或或不不一一致致是是紧紧耦耦合合或或低低内内聚聚的的征征兆兆,应该重新分析这个模块的独立性。应该重新分析这个模块的独立性。
14、六设计单入口单出口的模块;六设计单入口单出口的模块;这这条条启启发发式式规规则则警警告告软软件件工工程程师师不不要要使使模模块块间间出出现现内内容容耦耦合合。当当从从顶顶部部进进入入模模块块并并且且从从底底部部退退出出来来时时,软软件件是是比比较较容容易易理理解解的的,因因此此也也是是比比较容易维护的。较容易维护的。本讲稿第二十一页,共六十九页七模块功能应该可以预测。七模块功能应该可以预测。模模块块的的功功能能应应该该可可以以预预测测,但但也也要要防防止止模模块块功能过分局限。功能过分局限。如如果果一一个个模模块块可可以以当当作作一一个个黑黑盒盒子子,也也就就是是说说,只只要要输输入入数数据据
15、相相同同就就产产生生同同样样的的输输出出,这这个个模块就是可以预测的。模块就是可以预测的。以以上上列列出出的的启启发发式式规规则则多多数数是是经经验验规规律律,对对改改进进设设计计,提提高高软软件件质质量量,往往往往有有重重要要的的参参考考价价值值。但但是是,它它们们既既不不是是设设计计的的目目标标也也不不是是设设计计时时应该普遍遵循的原则。应该普遍遵循的原则。本讲稿第二十二页,共六十九页.4设计文档及其复审设计文档及其复审一一.总体及详细设计说明书总体及详细设计说明书在在设设计计阶阶段段,设设计计人人员员要要完完成成两两种种文文档档:概概要要设设计计说说明明书书和和详详细细设设计计说说明明书
16、书。前前者者确确定定软软件件结结构构(softwarestructure),后后者者则则着着重描述程序的过程重描述程序的过程(programprocedure)。本讲稿第二十三页,共六十九页总体设计说明书应包括:总体设计说明书应包括:)以图表形式表示的软件总体结构;)以图表形式表示的软件总体结构;)模模块块的的外外部部设设计计,包包括括关关于于各各模模块块功功能能、性能与接口的简要描述;性能与接口的简要描述;)数数据据结结构构设设计计,包包括括数数据据模模式式、访访问问方方法和存储要求。法和存储要求。详细设计说明书应包括:详细设计说明书应包括:)表示软件结构的图表;)表示软件结构的图表;2 2
17、)对逐个模块的程序描述,包括算法和逻辑)对逐个模块的程序描述,包括算法和逻辑流程、输入输出项与外部接口等。流程、输入输出项与外部接口等。本讲稿第二十四页,共六十九页 二设计表达工具二设计表达工具 1.1.层次图和层次图和HIPO图图本讲稿第二十五页,共六十九页层层次次图图(HierarchyChartHC图图)表表示示软软件件的的分分层层结结构构。层层次次图图中中的的一一个个矩矩形形框框代代表表一一个个模模块块,方方框框间间的的连连线线表表示示调调用用关关系系而而不不像像层层次次方方框框图那样表示组成关系。图那样表示组成关系。本讲稿第二十六页,共六十九页IPO(输入、加工、输出图)(输入、加工
18、、输出图)本讲稿第二十七页,共六十九页IPO图图=HC图图+IPO图图用用HC图图描描述述软软件件结结构构,用用IPO图图描描述程序过程。述程序过程。本讲稿第二十八页,共六十九页 2.2.结构图结构图本讲稿第二十九页,共六十九页SC图图是SD方法在概要设计中使用的主要表达工具,用来显示软件的组成模块及其调用关系。SD方法约定,用矩形框来表示模块,用箭头的连线表示模块间的调用关系。在调用线的两旁,应标出传入和传出模块的数据流。本讲稿第三十页,共六十九页1).1).模块的表示符号模块的表示符号本讲稿第三十一页,共六十九页2).2).简单调用简单调用本讲稿第三十二页,共六十九页3).选择调用选择调用
19、本讲稿第三十三页,共六十九页4).循环调用循环调用本讲稿第三十四页,共六十九页三设计复审(三设计复审(DesignReview)概概要要设设计计复复审审应应该该把把重重点点放放在在系系统统的的总总体体结结构构,模模块块划划分分,内内外外接接口口等等方方面面。例例如如软软件件的的结结构构能能否否满满足足需需求求?结结构构的的形形态态是是否否合合理理,层层次次是是否否清清晰晰?模模块块的的划划分分是是不不是是符符合合模模块块化化和和信信息息隐隐藏藏的的思思想想等等优优化化原原则则?系系统统的的人人机机界界面面、各各模模块块的的接接口口以以及及出出错错处处理理是是否否恰恰当当?模模块块的的设设计计能
20、能否否满满足足功功能能与与性性能能要要求求?选选择择的的算算法法与与数数据结构是否合理,能否适应编程语言等?据结构是否合理,能否适应编程语言等?复复审审包包括括软软件件总总体体结结构构、数数据据结结构构、界界面面以以及及模模块过程细节四个方面。块过程细节四个方面。本讲稿第三十五页,共六十九页.5面向数据流的设计方法面向数据流的设计方法面面向向数数据据流流的的设设计计方方法法(DataFlow-orientalDesign)也也 称称 结结 构构 设设 计计 方方 法法(StructuredDesignSD),是是根根据据需需求求阶阶段段对对数数据据流流的的分分析析(用用数数据据流流图图和和数数
21、据据字字典典表表示示)设设计计软软件结构。件结构。本讲稿第三十六页,共六十九页一概念和设计过程一概念和设计过程为为了了有有效效地地实实现现从从DFD图图到到SD图图的的映映射射,SD方方法法规规定定了了下下列列五五个步骤:个步骤:用用SD方法将数据流图转换为软件结构,其过程为:方法将数据流图转换为软件结构,其过程为:本讲稿第三十七页,共六十九页2).事务流事务流这这 种种 类类 型型 至至 少少 有有 一一 条条 接接 受受 路路 径径(ReceptionPath);一个事物中心一个事物中心(TransactionCenter);与若干条动作路径与若干条动作路径(ActionPath);本讲稿
22、第三十八页,共六十九页.划定流界;划定流界;3.将数据流图映射为程序结构;将数据流图映射为程序结构;4.提取层次控制结构;提取层次控制结构;5.通过设计复审和使用启发式策略进通过设计复审和使用启发式策略进一步精化所得到的结构。一步精化所得到的结构。(如下图如下图)本讲稿第三十九页,共六十九页本讲稿第四十页,共六十九页本讲稿第四十一页,共六十九页本讲稿第四十二页,共六十九页本讲稿第四十三页,共六十九页本讲稿第四十四页,共六十九页本讲稿第四十五页,共六十九页本讲稿第四十六页,共六十九页本讲稿第四十七页,共六十九页本讲稿第四十八页,共六十九页本讲稿第四十九页,共六十九页本讲稿第五十页,共六十九页二变
23、换分析二变换分析第一步:复查基本系统模型;第一步:复查基本系统模型;第二步:复查并精化数据流图;第二步:复查并精化数据流图;第第三三步步:确确定定数数据据流流图图具具有有变变换换特特性性还还是是事事物物特性;特性;第第四四步步:输输入入流流和和输输出出流流的的边边界界,从从而而孤孤立立变变换中心;换中心;第五步:完成第五步:完成“第一级分解第一级分解”;第六步:完成第六步:完成“第二级分解第二级分解”;第七步:采用启发式设计策略,精华所得程序第七步:采用启发式设计策略,精华所得程序结构雏形,改良软件质量。结构雏形,改良软件质量。本讲稿第五十一页,共六十九页四设计优化四设计优化对对软软件件结结构
24、构的的修修改改越越早早越越好好,人人们们把把软软件件总总体体结结构构设设计计与与详详细细过过程程设设计计分分开开正正是是为为了了提提供供尽尽早早优优化化结结构构的的可可能能性性。有有时时,甚甚至可以并行地开发若干个软件结构,通过评比求得至可以并行地开发若干个软件结构,通过评比求得“最佳最佳”结果。结果。考考虑虑设设计计优优化化问问题题是是应应该该记记住住,“一一个个不不能能工工作作的的最最佳佳设设计计的的价价值值是是值值得得怀怀疑疑的的”。软软件件设设计计人人员员应应该该致致力力于于开开发发能能满满足足所所有有功功能能和和性性能能要要求求,而而且且按按照照设设计计原原理理和和启启发发式式设设计
25、计规则衡量是值得接受的条件。规则衡量是值得接受的条件。应应该该在在设设计计的的早早期期阶阶段段尽尽量量对对软软件件结结构构进进行行精精化化。可可以以导导出出不不同同的的软软件件结结构构,然然后后对对它它们们进进行行评评价价和和比比较较,力力求求得得到到“最最好好”的的结结果果。这这种种优优化化的的可可能能,是是把把软软件件结结构构设设计计和和过程设计分开的真正优点之一。过程设计分开的真正优点之一。本讲稿第五十二页,共六十九页注注意意,结结构构简简单单通通常常既既表表示示设设计计风风格格优优雅雅,又又表表明明效效率率高高。设设计计优优化化应应该该力力求求做做到到在在有有效效的的模模块块化化的的前
26、前提提下下使使用用少少量量的的模模块块,以以及及在在能能满满足足信息要求的前提下使用最简单的数据结构。信息要求的前提下使用最简单的数据结构。对于时间是决定性因素的应用场合,可能有对于时间是决定性因素的应用场合,可能有必要在详细设计阶段,也可能在编写程序的过程必要在详细设计阶段,也可能在编写程序的过程中进行优化。软件开发人员应该认识到,程序中中进行优化。软件开发人员应该认识到,程序中相对说比较小的部分(典型地,)相对说比较小的部分(典型地,),通常占用全部处理时间的大部分(,通常占用全部处理时间的大部分()。)。本讲稿第五十三页,共六十九页用用下下述述方方法法对对时时间间起起决决定定性性作作用用
27、的的软软件件进进行行优优化化是是合合理理的的:()在不考虑时间因素的前提下开发并精化软件结构;()在不考虑时间因素的前提下开发并精化软件结构;()在在详详细细设设计计阶阶段段选选出出最最耗耗费费时时间间的的那那些些模模块块,仔细地设计它们的处理过程(算法),以求提高效率;仔细地设计它们的处理过程(算法),以求提高效率;()()使用高级程序设计语言编写程序;使用高级程序设计语言编写程序;()在软件中孤立出那些大量占用处理机资源的模块;()在软件中孤立出那些大量占用处理机资源的模块;()必必要要时时重重新新设设计计或或用用依依赖赖于于机机器器的的语语言言重重写写上上述述大大量量占占用资源的模块的代
28、码,以提高效率。用资源的模块的代码,以提高效率。上上述述优优化化方方法法遵遵守守了了一一句句格格言言:“先先使使它它能能工工作作,然然后后再使它快起来。再使它快起来。”本讲稿第五十四页,共六十九页结构图的改进一模块大小一模块大小1.当当模模块块长长度度超超过过条条语语句句时时,其其可可理理解解性性迅迅速速降降低低。模模块块长长度度可可选选在在句句左左右右,一一种种为为多多数数所所接接受受的的意意见见是是,模模块块的的适适当当长长度度宜宜选选在在到到条语句之间。条语句之间。坚坚持持模模块块的的独独立立性性,是是划划分分模模块块的的最最高高准准则则。对对于于一一个个设设计计合合理理的的功功能能模模
29、块块,即即使使长长达达千千句句以以上上,或或者者小小到到仅仅有有几几条条语语句句,也也允允许许保保留留原原状状,不不再再分分解解或或者者合合并并。所所以以在在改改进进初初始始图图时时,对对于于其其中中甚甚大大和和甚甚小小的的模模块块,都都应应该该找找一一找找原原因因,并并确确定定要要不要重新划分。不要重新划分。本讲稿第五十五页,共六十九页2一一个个甚甚大大的的模模块块,可可能能是是由由于于包包含含了了若若干干并并列列的的功功能能,或或者者是是块块内内仍仍会会有有可可以以分分离离出出去去的的子子功功能能。通通过过再再分分解解把把一一些些并并列列功功能能或或者者字字功功能能分分离离出出来来,就就可
30、可以以合合理地降低模块的长度。理地降低模块的长度。3.3.对处在图底层的甚小模块,如果其对处在图底层的甚小模块,如果其上级模块仅有一个。当然可将它并入上级模上级模块仅有一个。当然可将它并入上级模块。块。本讲稿第五十六页,共六十九页4如如果果有有多多个个模模块块调调用用它它,则则合合并并该该模模块块将将意意味味着着在在它它的的所所有有上上级级模模块块中中添添上上这这个个模模块块的的内内容容,从从而而将将明明显显增增加加软软件件的的开开发发成成本本。解解决决的的方方法法之之一一,是是把把这这个个甚甚小小模模块块独独立立编编码码和和调调试试,然然后后以以“内内联联(IN-LINE)子子程程序序”的的
31、形形式式提提供供给给需需要要调调用用它它们们所所有有模模块块使使用用。诸诸如如某某些些高高级级语语言言设设置置的的INCLUDE之之类的语句,就可实现对内联子程序的调用。类的语句,就可实现对内联子程序的调用。本讲稿第五十七页,共六十九页5假假如如甚甚小小模模块块不不是是处处在在图图的的底底层层,则则是是否否合合并并,如如果果合合并并该该并并入入它它的的上上级级模模块块还是下级模块,需要作具体分析。还是下级模块,需要作具体分析。显显然然,在在完完成成编编码码以以前前,对对模模块块长长度度仅仅能能估估计计。当当然然这这种种估估计计是是粗粗略略的的,但但用用来来指指示示对初始图的改进,是完全足够了。
32、对初始图的改进,是完全足够了。本讲稿第五十八页,共六十九页二扇入和扇出二扇入和扇出在在模模块块调调用用中中,扇扇入入(fan-in)是是指指模模块块的的上上级级模模块块数数,即即共共有有多多少少模模块块需需要要调调用用这这个个模模块块。扇扇出出(fan-out)是是指指模模块块调调用用下下属属模模块块的的数数目目,或或者者说说这这个个模模块块具具有有多多少个下属模块。少个下属模块。本讲稿第五十九页,共六十九页.当当两两个个模模块块具具有有一一部部分分相相同同的的功功能能时时,把把这这部部分分相相同同功功能能分分离离为为一一个个单单独独的的模模块块,可可以以免免除除对对这这一一部部分分内内容的重
33、复编码和测试,节约开发费用。容的重复编码和测试,节约开发费用。.值值得得注注意意的的是是,一一个个模模块块的的扇扇入入数数愈愈高高,则则共共享享这这一一模模块块的的上上级级模模块块愈愈多多,消消除除重重复复的的效效果果也也更更明明显显。如如果果说说高高扇扇入入是是争争取取的的目目标标,则则高高扇扇出出却却恰恰好好相相反反,常常常常暴暴露露出出初初始始SC图图中中存存在在得得分分解解太太快快的的缺缺点点。常常用用的的改改进进方方法法,是是在在图图中中两两层层模模块块间间增增加加一一个个中中间间层层。一一般般地地说说,对对于于扇扇出出数数超超过过的的模模块块,都都需需要要查查一一查查原原因因,找找
34、出出改改进进的的途途径径。还还要要提提一一下下高高扇扇入入模模块块的的一一种种画画法法。最最好好把把下下属属模模块块就就近近画画在在它它的的上上级级模模块块下下面面,以以便便缩缩短短调调用用线线的的长长度度,为为了了避避免免同同一一模模块块在在图图上上多多次次出出现现时时被被误误认认为为不不同同的的模块。模块。本讲稿第六十页,共六十九页三作用范围和控制范围三作用范围和控制范围.两个范围的定义控制范围包括模块本身及其下属模块,不论这些下属模块系由该模块直接调用,还是间接调用。作用范围是一个与条件判定相联系的概念。从一般的意义来说,一个判定作用范围内的模块可能会有下面三种情况:整个模块是否执行,依
35、赖于判定的结果;上述模块的下属模块;模块内有部分功能的执行依赖于这一判定。本讲稿第六十一页,共六十九页2作用控制原则作用控制原则把把一一个个判判定定的的作作用用范范围围限限制制在在判判定定所所在在的的控控制制范围之内,是改进模块结构的又一原则。范围之内,是改进模块结构的又一原则。理理想想的的情情况况,是是使使判判定定的的作作用用范范围围和和判判定定所所在在模模块块的的控控制制范范围围尽尽可可能能地地吻吻合合。把把在在系系统统中中有有较较大大影影响响的的判判定定放放在在层层次次结结构构中中较较低低的的位位置置,可可能能是是导导致致违违反反作作用用范范围围控控制制范范围围原原则则的的主主要要原原因
36、因。因因此此,要要么么把把这这类类重重要要的的判判定定从从低低层层次次上上移移到到足足够够高高的的上上层层模模块块中中,要要么么把把受受这这些些判判定定影影响响的模块调整并下移到控制范围之内。的模块调整并下移到控制范围之内。本讲稿第六十二页,共六十九页第一级分解第一级分解:本讲稿第六十三页,共六十九页传入分支分解传入分支分解:本讲稿第六十四页,共六十九页传出传出:本讲稿第六十五页,共六十九页加工中心加工中心本讲稿第六十六页,共六十九页初始的结构图初始的结构图本讲稿第六十七页,共六十九页作业:作业:开发一个带有微处理器的汽车数字面板控制系统。驾驶员可以按动功能选择按钮,得到汽车的不同功能。点火按钮:按下按钮启动汽车。从保证汽车安全角度考虑,有一排数字按钮配合点火按钮。用数字按钮可以设置一个密码,只有密码对上了,汽车才能安全启动。雷达探测按钮:它可以给出障碍物的距离,如太近了,就发出警告,有利于防止事故的发生。显示发动机工作状态:如油压、油温、水箱温度等。显示行程计算机信息:启动行程计算机输入数据:清除上一键。该系统的数据流图如下图所示。图中详细地画出了按钮1和2的路径。其它路径简化为只用一个处理表示。请采用面向数据流的设计方法设计该软件的模块结构 本讲稿第六十八页,共六十九页本讲稿第六十九页,共六十九页