第四章_总体设计.ppt
《第四章_总体设计.ppt》由会员分享,可在线阅读,更多相关《第四章_总体设计.ppt(129页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章总体设计第四章总体设计第四章:总体设计第四章:总体设计学习目标学习目标:1.1.了解;总体设计的文档与评审了解;总体设计的文档与评审 2.2.掌掌握握:总总体体设设计计的的步步骤骤、软软件件设设计计的的概概念念和和原原理理、启发规则、图形工具、变换分析、事物分析启发规则、图形工具、变换分析、事物分析学习要点学习要点:软件设计的概念和原理、面向数据流的设计过程。软件设计的概念和原理、面向数据流的设计过程。学习目标与学习要点学习目标与学习要点第四章:总体设计第四章:总体设计总体设计总体设计(System Design)System Design)又称又称概要设计概要设计,初步设计初步设计基本
2、目的:基本目的:回答回答“概括地说,系统应该如何实现概括地说,系统应该如何实现?”?”在总体设计阶段,应划分出组成系统的物理元在总体设计阶段,应划分出组成系统的物理元素素程序、文件、数据库、人工过程和文档等,并程序、文件、数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以及这些模块相确定系统中每个程序由哪些模块组成以及这些模块相互间的关系。互间的关系。第四章:总体设计第四章:总体设计第四章:总体设计第四章:总体设计系统设计:系统设计:从数据流图出发,确定系统的具体实现方案从数据流图出发,确定系统的具体实现方案软件结构设计:软件结构设计:确定软件由哪些模块组成,以及这些模确定软件由哪
3、些模块组成,以及这些模块之间的动态调用关系。块之间的动态调用关系。4.1总体设计的步骤总体设计的步骤第四章:总体设计第四章:总体设计1.设想供选择的方案设想供选择的方案从数据流图出发,设想将数据流图中的处理分从数据流图出发,设想将数据流图中的处理分组的各种可能的分组方法,抛弃技术上不可行的方组的各种可能的分组方法,抛弃技术上不可行的方法,余下的为可能的实现策略。法,余下的为可能的实现策略。第四章:总体设计第四章:总体设计2.选取合理的方案选取合理的方案选择若干个合理方案(低成本、中等成本、选择若干个合理方案(低成本、中等成本、高成本高成本),每个合理的方案应配备下列),每个合理的方案应配备下列
4、4份资料:份资料:n系统流程图系统流程图n组成系统的物理元素清单组成系统的物理元素清单n成本成本/效益分析效益分析n实现这个系统的进度计划实现这个系统的进度计划第四章:总体设计第四章:总体设计3.推荐最佳实施方案推荐最佳实施方案分析员从若干个方案中推荐最佳一个方案。分析员从若干个方案中推荐最佳一个方案。根据最佳方案制定详细的实现计划术。根据最佳方案制定详细的实现计划术。最后使用部门负责人审批。最后使用部门负责人审批。若接受、进入结构设计阶段若接受、进入结构设计阶段第四章:总体设计第四章:总体设计4.功能分解功能分解从实现角度把复杂的功能进一步分解从实现角度把复杂的功能进一步分解分析数据流图中的
5、每个处理,把复杂的功能分析数据流图中的每个处理,把复杂的功能分解成一个个较简单的功能,这样程序员容易读懂。分解成一个个较简单的功能,这样程序员容易读懂。功能分解使得数据库流图进一步细化,同时要功能分解使得数据库流图进一步细化,同时要用用IPO简单描述细化后的算法。简单描述细化后的算法。第四章:总体设计第四章:总体设计5.软件结构设计软件结构设计软件结构:由模块组成的层次系统软件结构:由模块组成的层次系统可用图形工具(层次图,结构图)描绘。可用图形工具(层次图,结构图)描绘。可从数据流图映射出软件结构可从数据流图映射出软件结构第四章:总体设计第四章:总体设计6.数据库设计数据库设计数据库设计数据
6、库设计4个步骤:个步骤:模式设计:模式设计:确定物理数据库结构。处理数据库管理确定物理数据库结构。处理数据库管理系统的结构约束。系统的结构约束。子模式设计:子模式设计:子模式是用户使用的数据视图。子模式是用户使用的数据视图。完整性和安全性设计完整性和安全性设计优化优化:改进模式和子模式以优化数据的存取。改进模式和子模式以优化数据的存取。第四章:总体设计第四章:总体设计7.制定测试计划制定测试计划8.书写文档书写文档系统说明,用户手册,测试计划,详细的实施计系统说明,用户手册,测试计划,详细的实施计划,数据库设计结果划,数据库设计结果9.9.审查与复审概要设计文档审查与复审概要设计文档对总体设计
7、的结果进行严格的技术审查对总体设计的结果进行严格的技术审查,使用部门的负责人从管理角度进行复审使用部门的负责人从管理角度进行复审第四章:总体设计第四章:总体设计数据数据字典字典数据数据流图流图E-RE-R图图状态变迁图状态变迁图加加加加工工工工规规规规约约约约控制规约控制规约控制规约控制规约数数据据对对描描 述述象象数数 据据 设设 计计体系结构设计体系结构设计接口设计接口设计过程设计过程设计分析模型分析模型分析模型分析模型设计模型设计模型设计模型设计模型第四章:总体设计第四章:总体设计4.24.2软件设计的原理软件设计的原理4.2.14.2.1模块化模块化1.模块模块(module)模块模块
8、(组件组件)是由边界元素限定的相邻的程序元素的是由边界元素限定的相邻的程序元素的序列,而且有一个总体标识符来代表它。序列,而且有一个总体标识符来代表它。模块可以单独被命名的而且可通过名字来访问。模块可以单独被命名的而且可通过名字来访问。模块的三个属性:模块的三个属性:功能功能:描述该模块实现什么功能,做什么事情。:描述该模块实现什么功能,做什么事情。逻辑逻辑:描述模块内部怎么做。:描述模块内部怎么做。状态状态:描述模块使用时的环境和条件:描述模块使用时的环境和条件第四章:总体设计第四章:总体设计把程序划分成若干个模块,每个模块完成一个把程序划分成若干个模块,每个模块完成一个子功能,这些模块组成
9、一个整体,完成一个指定的总子功能,这些模块组成一个整体,完成一个指定的总功能。功能。2.模块化:模块化:第四章:总体设计第四章:总体设计(1)设函数设函数C(X)定义问题定义问题X的复杂程度,函数的复杂程度,函数E(X)确定解决问题确定解决问题X需要的工作量。对于问题需要的工作量。对于问题P1、P2如果:如果:C(P1)C(P2)那么:那么:E(P1)E(P2)根据经验根据经验C(P1+P2)C(P1)+C(P2)那么:那么:E(P1+p2)E(P1)+E(p2)(2)但并不是软件可以无限分割,分割的块越多,工作量但并不是软件可以无限分割,分割的块越多,工作量就越小。模块数量多了模块接口的设计
10、工作量也将增加就越小。模块数量多了模块接口的设计工作量也将增加分割时,模块数目分割时,模块数目m取值适当,使成本最小的取值适当,使成本最小的m值还值还不能精确确定,但有指南作用不能精确确定,但有指南作用3.模块化原理模块化原理(Modularization)第四章:总体设计第四章:总体设计模块大小、模块数目与费用的关系图模块大小、模块数目与费用的关系图 第四章:总体设计第四章:总体设计软件结构清晰,易设计、易阅读理解、易修改。软件结构清晰,易设计、易阅读理解、易修改。(1)程序错误通常局限在有关模块及其接口中;程序错误通常局限在有关模块及其接口中;(2)修改错误只会涉及少数模块;修改错误只会涉
11、及少数模块;(3)可以由许多程序员同时协同完成大型程序可以由许多程序员同时协同完成大型程序采用模块化的原理的优点采用模块化的原理的优点第四章:总体设计第四章:总体设计抽象:抽出事物的本质特性而暂时不考虑它们的细节。抽象:抽出事物的本质特性而暂时不考虑它们的细节。抽象的最高层次:抽象的最高层次:使用问题环境语言,以概括的方式叙述问题的解法。使用问题环境语言,以概括的方式叙述问题的解法。抽象的较低层次:抽象的较低层次:采用更过程化的方法,把面向问题的术语和面向实采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来,叙述问题的解法。现的术语结合起来,叙述问题的解法。抽象的最低层次:抽象的最低
12、层次:用可以直接实现的方式叙述问题的解法。用可以直接实现的方式叙述问题的解法。忽略细节,分层理解问题,自顶向下层层加细忽略细节,分层理解问题,自顶向下层层加细 4.2.2 4.2.2抽象抽象(Abstraction)Abstraction)第四章:总体设计第四章:总体设计例:例:开发一个开发一个CAD软件,实现一个二维绘图系统的全软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。部功能,供低级计算机辅助设计使用。抽象层次抽象层次1 1:用问题所处环境的术语来描述这个软件。用问题所处环境的术语来描述这个软件。该软件包括一个计算机绘图界面该软件包括一个计算机绘图界面,向绘图员显示图向
13、绘图员显示图形形,以及一个数字化仪界面以及一个数字化仪界面,用以代替绘图板和丁字尺。用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个计算、所有的剖面图和辅助视图都可以用这个CADCAD软件软件实现实现第四章:总体设计第四章:总体设计抽象层次抽象层次2 2:任务需求的描述。任务需求的描述。CADSOFTWARETASKS:userinteractiontask;2-Ddrawingcreationtask;graphicsdisplaytask;drawingfilemanagemen
14、ttask;END 在这个抽象层次上在这个抽象层次上,未给出未给出“怎样做怎样做”的信息的信息,不能直接实现不能直接实现 第四章:总体设计第四章:总体设计抽象层次抽象层次3 3:程序过程表示。以程序过程表示。以2-2-D D绘图生成任务为例绘图生成任务为例PROCEDURE2-DdrawingcreationREPEATUNTILE(drawingcreationtaskterminates)DOWHILE(digitizerinteractionoccurs)Digitizerinterfacetask;DETERMINEdrawingrequestCASELine:linedrawingt
15、ask;Rectangle:rectangledrawingtask;Circle:circledrawingtask;END;在这个抽象层次上在这个抽象层次上,给出了初步的过程表示,所用的术语都给出了初步的过程表示,所用的术语都已面向软件,且模块化的工作已经开始显露。已面向软件,且模块化的工作已经开始显露。第四章:总体设计第四章:总体设计“为了能集中精力解决主要问题而尽量推迟对问为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。题细节的考虑。”人的认知:人的认知:(7/2)个知识块)个知识块逐步求精是把问题的求解过程分成若干步骤或阶逐步求精是把问题的求解过程分成若干步骤或阶段,每个步骤或
16、阶段都比上一个更精化,更接近问题段,每个步骤或阶段都比上一个更精化,更接近问题的解法。的解法。注:逐步求精是和抽象化紧密结合的概念,是一个注:逐步求精是和抽象化紧密结合的概念,是一个从从抽象到具体抽象到具体的过程。的过程。4.2.3 4.2.3逐步求精(逐步细化)逐步求精(逐步细化)第四章:总体设计第四章:总体设计信息隐蔽信息隐蔽(Information hiding)Information hiding)每个模块的实现细节对于其他模块来说是隐蔽的,每个模块的实现细节对于其他模块来说是隐蔽的,一个模块中所包含的信息不允许其他不需要这些信息的一个模块中所包含的信息不允许其他不需要这些信息的模块使
17、用。模块使用。局部化局部化 把一些关系密切的软件元素物理地放得彼此靠近。把一些关系密切的软件元素物理地放得彼此靠近。局部化有利于实现信息隐蔽局部化有利于实现信息隐蔽。4.2.4 4.2.4信息隐蔽和局部化信息隐蔽和局部化第四章:总体设计第四章:总体设计软件系统中每个模块只涉及软件要求的具体子功软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。能,而和软件系统中其他的模块接口是简单的。模块独立的概念是模块化、抽象、信息隐蔽和局部模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。化概念的直接结果。4.2.5 4.2.5模块独立性模块独立性(Module
18、 Module independence)independence)第四章:总体设计第四章:总体设计(1)具有独立的模块的软件比较容易开发出来。)具有独立的模块的软件比较容易开发出来。(2)独立的模块比较容易测试和维护。)独立的模块比较容易测试和维护。度量模块独立性有两个定性标准:度量模块独立性有两个定性标准:a.模块间的耦合模块间的耦合b.模块内的内聚模块内的内聚耦合:耦合:衡量不同模块彼此间互相依赖的紧密程度。衡量不同模块彼此间互相依赖的紧密程度。内聚:内聚:衡量一个模块内各个元素彼此结合的紧密程度。衡量一个模块内各个元素彼此结合的紧密程度。独立性比较强独立性比较强的模块应是的模块应是高内
19、聚低耦合高内聚低耦合的模块的模块1.模块独立性的重要性模块独立性的重要性第四章:总体设计第四章:总体设计耦合是对一个软件结构内各个模块之间互连耦合是对一个软件结构内各个模块之间互连程度的度量。程度的度量。耦合强弱取决于模块间接口的复杂程度,调用耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的数据模块的方式,以及通过接口的数据。软件设计中应该追求模块间尽可能软件设计中应该追求模块间尽可能松散耦合松散耦合的系统的系统。2.耦合耦合(Coupling)第四章:总体设计第四章:总体设计无耦合没有依赖关系无耦合没有依赖关系紧密耦合有紧密耦合有很多依赖关系很多依赖关系松散耦合有松散耦合有
20、少量依赖关系少量依赖关系第四章:总体设计第四章:总体设计模块间的耦合模块间的耦合第四章:总体设计第四章:总体设计模块间不传递任何信息,它们之间的联系完全是模块间不传递任何信息,它们之间的联系完全是通过主模块的控制和调用来实现的通过主模块的控制和调用来实现的。非直接耦合模块非直接耦合模块:独立性最强,耦合度最低独立性最强,耦合度最低(1 1)非直接耦合()非直接耦合(NoDirectCoupling)第四章:总体设计第四章:总体设计两个模块之间通过简单的数据参数两个模块之间通过简单的数据参数(不是控制参数、不是控制参数、公共数据结构或外部变量公共数据结构或外部变量)来交换信息,而且来交换信息,而
21、且交换的信息交换的信息仅仅是数据仅仅是数据。数据耦合数据耦合:松散的耦合,模块之间的独立性比较强。松散的耦合,模块之间的独立性比较强。开发票开发票计算水费计算水费单价数量单价数量金额金额(2)数据耦合()数据耦合(DataCoupling)第四章:总体设计第四章:总体设计一组模块通过一组模块通过数据结构数据结构(不是简单数据,而是记不是简单数据,而是记录、数组等录、数组等)作为参数表传递记录信息作为参数表传递记录信息。计算水电费计算水电费计算水费计算水费计算电费计算电费住户情况住户情况水费水费 电费电费住户情况住户情况“住户情况住户情况”是一个数据结构是一个数据结构(3)标记耦合)标记耦合(S
22、tampCoupling)第四章:总体设计第四章:总体设计将标记耦合修改为将标记耦合修改为数据耦合举例数据耦合举例计算水电费计算水电费计算水费计算水费计算电费计算电费本月本月用水量用水量本月本月用电量用电量水费水费电费电费第四章:总体设计第四章:总体设计两个模块间传递的信息中含有控制信息两个模块间传递的信息中含有控制信息(如开如开关量、标志值、名字等关量、标志值、名字等)。控制耦合控制耦合:中等程度的耦合中等程度的耦合控制耦合增加了理解和编程的复杂性,调用模控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖块必须知道被调模块的内部逻辑,增加了相互依赖(4)控制
23、耦合()控制耦合(ControlCoupling)第四章:总体设计第四章:总体设计接口单一,但仍然影响被控模块的内部逻辑接口单一,但仍然影响被控模块的内部逻辑第四章:总体设计第四章:总体设计A A计算平均分计算平均分或最高分或最高分B B平均平均/最高最高(控制信号控制信号)成绩成绩读入分数读入分数输出结果输出结果计算平均分计算平均分计算最高分计算最高分平均平均/最高最高?B B第四章:总体设计第四章:总体设计去除模块间控制耦合的方法:去除模块间控制耦合的方法:n(1)将被调用模块内的判定上移到调用模块中进行将被调用模块内的判定上移到调用模块中进行n(2)被调用模块分解成若干单一功能模块被调用
24、模块分解成若干单一功能模块 A A计算平均分计算平均分B1B1平均成绩平均成绩最高成绩最高成绩计算最高分计算最高分B2B2第四章:总体设计第四章:总体设计一组模块都访问一组模块都访问同一全局简单变量同一全局简单变量而不是同一而不是同一全局数据结构,而且不是通过参数表传递该全局变量全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。的信息,则称之为外部耦合。例如例如:I/O模块与特定的设备、格式和通信协议相关联。模块与特定的设备、格式和通信协议相关联。外部偶合必不可少外部偶合必不可少,但这种模块数目应尽量少。但这种模块数目应尽量少。(5)外部耦合()外部耦合(External
25、Coupling)第四章:总体设计第四章:总体设计若一组模块都访问同一个公共数据环境,则它们若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合之间的耦合就称为公共耦合公共的数据环境公共的数据环境:全局数据结构、共享的通信区、内全局数据结构、共享的通信区、内存的公共覆盖区等。存的公共覆盖区等。两个模块之间公共耦合:两个模块之间公共耦合:松散公共耦合松散公共耦合,紧密公共耦合紧密公共耦合注意:注意:只有在模块之间共享的数据很多,且通过参数表只有在模块之间共享的数据很多,且通过参数表传递不方便时,才使用公共耦合传递不方便时,才使用公共耦合(6)公共耦合)公共耦合(CommonCoup
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 总体 设计
限制150内