软件总体设计课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件总体设计课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 总体 设计 课件
- 资源描述:
-
1、0总体设计的任务总体设计的任务第5章总体设计1)系统设计系统设计确定系统的具体实现方案,由需求分析阶段得确定系统的具体实现方案,由需求分析阶段得到的数据流图导出。到的数据流图导出。若干合理的方案若干合理的方案系统流程图系统流程图组成系统组成系统的物理元素、成本效益分析、进度计划的物理元素、成本效益分析、进度计划最佳方最佳方案案数据库设计、测试计划等数据库设计、测试计划等引言12总体设计的任务总体设计的任务第5章总体设计2)结构设计结构设计确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。引言3主要内容主要内容主要内容 5.1 5.1 设计过程设计过程 5.2 5.2 设计原理设计
2、原理 5.3 5.3 启发规则启发规则 5.4 5.4 描绘软件结构的图形工具描绘软件结构的图形工具 5.5 5.5 面向数据流的设计方法面向数据流的设计方法 第5章总体设计4主要内容主要内容 5.1 5.1 设计过程设计过程 5.2 5.2 设计原理设计原理 5.3 5.3 启发规则启发规则 5.4 5.4 描绘软件结构的图形工具描绘软件结构的图形工具 5.5 5.5 面向数据流的设计方法面向数据流的设计方法 5.1 设计过程第5章总体设计55.1 设计过程5.15.1 设计过程设计过程总体设计过程系统设计阶段结构设计阶段1.设想供选择的方案2.选取合理的方案3.推荐最佳方案4.功能分解5.
3、设计软件结构6.设计数据库7.制定测试计划8.书写文档9.审查和复审第5章总体设计65.15.1 设计设计过程过程典型的总体设计步骤典型的总体设计步骤1. 设想供选择的方案设想供选择的方案在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。需求分析阶段得出的数据流图是总体设计的极好的出发点。5.1 设计过程第5章总体设计75.15.1 设计设计过程过程2.选取合理的方案选取合理的方案选取若干个合理的方案选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的3种方案。在判断哪些方案合理时应该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用
4、户的意见。对每个合理的方案,分析员都应该准备下列4份资料。(1) 系统流程图。(2) 组成系统的物理元素清单。(3) 成本/效益分析。(4) 实现这个系统的进度计划。5.1 设计过程第5章总体设计85.15.1 设计设计过程过程3.推荐最佳方案推荐最佳方案用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审批审批。在使用部门的负责人也接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段结构设计。5.1 设计过程第5章总体设计95.15.1 设计设计过程过程4.功能分解功能分解为了最终
5、实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成:首先进行结构设首先进行结构设计(模块组成及相互之间的关系),然后进行过程设计计(模块组成及相互之间的关系),然后进行过程设计(模块内部的处理过程)(模块内部的处理过程)。5.1 设计过程第5章总体设计105.15.1 设计设计过程过程5. 设计软件设计软件结构结构通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,完成程序的一个子功能,最下层的模块完成最具体的功能
6、。5.1 设计过程第5章总体设计115.15.1 设计设计过程过程6. 设计数据库设计数据库对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。5.1 设计过程第5章总体设计125.15.1 设计设计过程过程7.制定制定测试计划测试计划在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。第7章具体讨论第5章总体设计5.1 设计过程135.15.1 设计设计过程过程8. 书写书写文档文档应该用正式的文档记录总体设计的结果,在这个阶段应该完成的文档通常有下述几种。1)系统说明:)系统说明:最佳方案、系统流程图
7、、精化的数据流最佳方案、系统流程图、精化的数据流程图、模块算法等程图、模块算法等2)用户手册)用户手册3)测试计划:)测试计划:测试策略,测试方案,预期的测试结果,测试进度计划等4)详细的实现计划)详细的实现计划5)数据库)数据库设计设计结果结果第5章总体设计5.1 设计过程145.15.1 设计设计过程过程9.审查和复审审查和复审最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由客户从管理角度进行复审。5.1 设计过程第5章总体设计15主要内容主要内容 5.1 5.1 设计过程设计过程 5.2 5.2 设计原理设计原理 5.3 5.3 启发规则启发规则 5.4 5.4 描绘软
8、件结构的图形工具描绘软件结构的图形工具 5.5 5.5 面向数据流的设计方法面向数据流的设计方法 5.2 设计原理第5章总体设计165.25.2 设计原理设计原理5.2.15.2.1 模块化模块化模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件模块是构成程序的基本构件。模块化模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。第5章总体设计5.2.1 模块化17为什么要进行模块化? 跟人类思维模式相关 考虑实际例子:设计一条路径,
9、考虑因素分别为1个4个。 得到结论:越复杂的问题解决所花费的时间也很长185.25.2 设计原理设计原理函数C(x):定义问题x的复杂程度,函数E(x):解决问题x需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)C(P2)显然 E(P1)E(P2) 越复杂的问题,所需要的工作量越多。越复杂的问题,所需要的工作量越多。第5章总体设计5.2.1 模块化195.25.2 设计原理设计原理根据人类解决一般问题的经验,一个有趣的规律是:C(P1+P2)C(P1)+C(P2)也就是说,如果一个问题由P1和P2两个问题两个问题组合而成,那么它的复杂程度大于分别考虑每个问题复杂程度大于分别考虑每个
10、问题时的复杂程度之和。时的复杂程度之和。第5章总体设计5.2.1 模块化205.25.2 设计原理设计原理 两个问题两个问题组合的复杂程度大于分别考虑每个问复杂程度大于分别考虑每个问题时的复杂程度之和。题时的复杂程度之和。C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)这个不等式导致“各个击破各个击破”的结论把复杂的问题把复杂的问题分解成许多容易解决的小问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。第5章总体设计5.2.1 模块化215.25.2 设计原理设计原理无限地分割软件:开发软件而需要的工作量也就小得可以忽略了,但是设计模块间
11、接口所需要的工作量也将增加。第5章总体设计5.2.1 模块化225.25.2 设计原理设计原理虽然目前还不能精确地决定M的数值,但是在考虑模块化的时候总成本曲线确实是有用的指南。在第六章和5.3节讲解。采用模块化原理可以使软件结构清晰,不仅容采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。模块化也有助于软件开易设计也容易阅读和理解。模块化也有助于软件开发工程的组织管理,发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。第5章总体设计5.2.1 模块化235.25.2 设计原理设计原理5.2.25.2.2 抽
12、象抽象在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出抽象就是抽出事物的本质特性而暂时不考虑它们的细节。事物的本质特性而暂时不考虑它们的细节。处理复杂系统的唯一有效方法是用层次的层次的方式构造和分析方式构造和分析。第5章总体设计5.2.2 抽象24抽象的层次 解决实际问题时常用不同层次的抽象: 1)最高层次的抽象最高层次的抽象:使用问题环境语言,以概况方式叙述问题; 2)较低层次较低层次:采用更加过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法; 3)最低层次最低层次:
13、源程序25【例】考虑适用于低级【例】考虑适用于低级CAD的图形软件包的图形软件包抽象抽象 该该CAD软件系统配有能与绘图员进行可软件系统配有能与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工具视化通信的图形界面,能用鼠标代替绘图工具,画各种直线和曲线;能完成所有几何计算以,画各种直线和曲线;能完成所有几何计算以及所有截面视图和辅助视图的设计。图形设计及所有截面视图和辅助视图的设计。图形设计的结果存在图形文件中,图形文件可包含几何的结果存在图形文件中,图形文件可包含几何的、正文的和其他各种补充设计信息。的、正文的和其他各种补充设计信息。 在这一抽象级别上,用问题域本身的术语来描在这一抽象级别
14、上,用问题域本身的术语来描述问题的解。述问题的解。26【例】考虑适用于低级【例】考虑适用于低级CAD的图形软件包的图形软件包抽象抽象 CAD软件任务;软件任务; 用户界面子任务;用户界面子任务; 创建二维图形子任务;创建二维图形子任务; 显示图形子任务;显示图形子任务; 管理图形文件子任务;管理图形文件子任务; end CAD. 在这一抽象级别上,给出了组成在这一抽象级别上,给出了组成CAD软件任务软件任务的所有主要子任务,尽管术语已与问题域有所的所有主要子任务,尽管术语已与问题域有所不同,但仍然不是实现所用的语言。不同,但仍然不是实现所用的语言。27【例】考虑适用于低级【例】考虑适用于低级C
15、AD的图形软件包的图形软件包抽象抽象(仅以(仅以“创建二维图形子任务创建二维图形子任务”为例)为例) PROCEDURE 创建二维图形创建二维图形 REPEAT UNTIL DO WHILE 数字仪接口任务;数字仪接口任务; 判断作图请求:判断作图请求: 线:画线任务;线:画线任务; 圆:画圆任务;圆:画圆任务; END;28【例】考虑适用于低级【例】考虑适用于低级CAD的图形软件包的图形软件包 DO WHILE 键盘接口任务;键盘接口任务; 选择分析或计算:选择分析或计算: 辅助视图:辅助视图任务;辅助视图:辅助视图任务; 截面视图:截面视图任务;截面视图:截面视图任务; END; END
16、REPEAT;END PROCEDURE.29【例】考虑适用于低级【例】考虑适用于低级CAD的图形软件包的图形软件包 在这一抽象级别上,给出了初步的过程性表示在这一抽象级别上,给出了初步的过程性表示,此时所有术语都是面向软件(比如采用,此时所有术语都是面向软件(比如采用do while结构)并且模块结构也开始明朗。结构)并且模块结构也开始明朗。求精过程还可继续下去,直至产生源代码。求精过程还可继续下去,直至产生源代码。305.25.2 设计原理设计原理5.2.25.2.2 抽象抽象软件工程过程的每一步都是对软件解法的软件工程过程的每一步都是对软件解法的抽象层次的一次精化。抽象层次的一次精化。在
17、可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述的;当由总体设计向详细设计过渡时,抽象的程度也就随之减少了;最后,当源程序写出来以后,也就达到了抽象的最低层。第5章总体设计5.2.2 抽象315.25.2 设计原理设计原理5.2.25.2.2 抽象抽象逐步求精和模块化的概念与抽象是紧密结合的。层次结构的上一层是下一层的抽象,下一层次结构的上一层是下一层的抽象,下一层是上一层的求精。层是上一层的求精。第5章总体设计5.2.2 抽象325.25.2 设计原理设计原理5.2.35.2.3 逐步求精逐步求精逐步求精定义为:为了能集中精力解决主集中精力
18、解决主要问题要问题而尽量推迟对问题细节的考虑。逐步求精最初是由Niklaus Wirth提出的一一种自顶向下的设计策略种自顶向下的设计策略。第5章总体设计5.2.3 逐步求精33逐步求精逐步求精N.Wirth曾经做过如下说明:曾经做过如下说明: “我们对付复杂问题的重要办法是抽象,因此我们对付复杂问题的重要办法是抽象,因此,对一个复杂的问题不应该立即用计算机指令,对一个复杂的问题不应该立即用计算机指令、数字和逻辑符号来表示,而应该用较自然的、数字和逻辑符号来表示,而应该用较自然的抽象语言来表示,从而得出抽象程序。抽象程抽象语言来表示,从而得出抽象程序。抽象程序对抽象的数据进行某些特定的运算并用
19、某些序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。对抽合适的记号(可能是自然语言)来表示。对抽象程序做进一步分解,进入下一个抽象层次,象程序做进一步分解,进入下一个抽象层次,重复这一精化过程直到程序能被计算机接受为重复这一精化过程直到程序能被计算机接受为止。这时的程序可能是用某种高级语言或机器止。这时的程序可能是用某种高级语言或机器指令书写的。指令书写的。”345.25.2 设计原理设计原理5.2.35.2.3 逐步求精逐步求精一种自顶向下的设计策略:一种自顶向下的设计策略:按照这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。通过逐步分解对功
20、能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。p求精实际上是细化过程。p抽象与求精是一对互补的概念。第5章总体设计5.2.3 逐步求精355.25.2 设计原理设计原理5.2.45.2.4 信息信息隐藏和局部化隐藏和局部化 1)信息隐藏原理信息隐藏原理:应该这样设计和确定模块,使得:应该这样设计和确定模块,使得一个一个模块内包含的信息模块内包含的信息( (过程和数据过程和数据) )对于不需要这些信息的模块对于不需要这些信息的模块来说,是不能访问的来说,是不能访问的。(仅仅公开必须要让外界知道的信息)。(仅仅公开必须要让外界知道的信息) 2) 局部化局部化是指把一些是指把一
21、些关系密切的关系密切的软件元素物理地放得软件元素物理地放得彼彼此靠近此靠近。 如果在测试期间和以后的软件维护期间需要修改软件,如果在测试期间和以后的软件维护期间需要修改软件,使用信息隐藏原理作为模块化系统设计的标准就会带来极大使用信息隐藏原理作为模块化系统设计的标准就会带来极大好处。好处。第5章总体设计5.2.4 信息隐藏和局部化365.25.2 设计原理设计原理5.2.55.2.5 模块独立模块独立模块的独立性很重要,因为 有效的模块化(即具有独立的模块)的软件比较容易开发出来。 独立的模块比较容易测试和维护。第5章总体设计5.2.5 模块独立375.25.2 设计原理设计原理 模块的独立程
22、度可以由两个定性标准度量,这两个标准分别称为耦合和内聚耦合和内聚。 1)耦合 衡量不同模块彼此间互相依赖的紧密程度模块彼此间互相依赖的紧密程度; 2)内聚 衡量一个模块内部各个元素彼此结合的紧密程度内部各个元素彼此结合的紧密程度。上一页 下一页返回381耦合 耦合是对一个软件结构内各个模块之间互连程度的度量各个模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度、调用模块的方式及通过接口的信息。 在软件设计中应该尽可能采用松散耦合尽可能采用松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统的其他模块有很多了解和影响。此外,由于模块间联系简单,发生在一处的错误传
23、播到整个系统的可能性就很小。因此,模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。上一页 下一页返回39 具体区分模块间耦合程度强弱的标准如下。 1)非直接耦合 如果两个模块都能够独立地工作而不需要另一个的存在,那么它们彼此完全独立,模块间无任何连接,耦合程度低。上一页 下一页返回40 fac与prt之间为非直接耦合41 2)数据耦合 两个模块彼此之间通过参数交换信息(仅为数据),即为数据耦合。也是低耦合。上一页 下一页返回42 main与prt之间为数据耦合;43返回 3)控制耦合 如果传递的信息中有控制信息,则这种耦合称为控制耦合。控制耦合是中等程度的耦合,增加了系统的
24、复杂程度。通常把模块适当分解之后可以用数据耦合代替控制耦合。44454 4)特征耦合)特征耦合特征耦合(特征耦合(stamp coupling)介于数据耦合介于数据耦合和控制耦合之间。特征耦合只需要参数传和控制耦合之间。特征耦合只需要参数传递中的一部分数据。例如,传递了求平均递中的一部分数据。例如,传递了求平均成绩以外的参数:成绩以外的参数:producereport cardscalculateaverage printreport cardstudent recordaveragestudent recordaverage46 main和add3之间为特征耦合47 5)公共环境耦合 当两个
25、或多个模块通过一个公共环境相互作用时,它们之间的耦合称为公共环境耦合。公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等。公共环境耦合的复杂程度随耦合的模块个数而变化,当耦合的模块个数增加时复杂程度显著增加。上一页 下一页返回48 如果只有两个模块有公共环境,那么这种耦合有下述两种可能: 一个模块往公共环境送数据,另一个模块从公共环境取数据。这是数据耦合的一种形式,是比较松散的耦合。 两个模块都既往公共环境送数据又从里面取数据,这种耦合比较紧密,介于数据耦合和控制耦合之间。如果两个模块共享的数据很多,都通过参数传递可能很不方便,这时可以利用公共环境耦合。上
展开阅读全文