软件工程导论第5章总体设计ppt课件

上传人:工**** 文档编号:568331432 上传时间:2024-07-24 格式:PPT 页数:65 大小:702.50KB
返回 下载 相关 举报
软件工程导论第5章总体设计ppt课件_第1页
第1页 / 共65页
软件工程导论第5章总体设计ppt课件_第2页
第2页 / 共65页
软件工程导论第5章总体设计ppt课件_第3页
第3页 / 共65页
软件工程导论第5章总体设计ppt课件_第4页
第4页 / 共65页
软件工程导论第5章总体设计ppt课件_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《软件工程导论第5章总体设计ppt课件》由会员分享,可在线阅读,更多相关《软件工程导论第5章总体设计ppt课件(65页珍藏版)》请在金锄头文库上搜索。

1、 软件工程导论软件工程导论第第5 5版版 普通高校本科计算机专业特征教材精选张海藩 编著第第5章章 总体设计总体设计主要内容5.1 设计过程5.2 设计原理5.3 启发规那么5.4 图形工具5.5 面向数据流的设计方法教学重点设计原理、 图形工具。总体设计总体设计又称为概要设计或初步设计。总体设计要着手实现软件的需求,即要着手处理“怎样做的问题。根本目的:回答“概括地说,系统应该如何实现?这个问题。义务:划分出组成系统的物理元素 设计软件构造必要性:从较笼统的层次上分析对比多种能够的系统实现方案和软件构造,从中选出最正确方案和最合理的软件构造,从而用较低本钱开发出较高质量的软件系统。5.1设计

2、过程设计过程步骤: 系统设计阶段确定系统的总体实现方案。 构造设计阶段确定软件构造典型过程:想象供选择的方案 选取合理的方案引荐最正确的方案 -系统设计 功能分解 设计软件构造 设计数据库 制定测试方案书写文档 审查和复审 -构造设计5.1 续续想象供选择的方案出发点:需求分析阶段得出的数据流图方法:想象把数据流图中的处置分组的各种能够的方法,丢弃在技术上行不通的分组方法。5.1 续续选取合理的方案从前一阶段提供的方案中选取假设干个合理的方案,通常至少选取低本钱、中等本钱和高本钱的三种方案。 对每个合理方案要提供以下几方面资料:1系统流程图;2组成系统的物理元素清单;3本钱效益分析;4实现这个

3、系统的进度方案。5.1 续续引荐最正确的方案分析员从合理方案中选择一个最正确方案向用户引荐,并为引荐的方案制定详细的实现方案。对于分析员引荐的最正确方案,用户和有关专家应该仔细审查。提请运用部门担任人进一步审批。5.1 续续 功能分解从实现角度把复杂的功能进一步分解。分析员结合算法描画仔细分析数据流图中的每个处置,并进展适当地分解。普通说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。数据流图的进一步细化。借助适当的工具简要描画细化后每个处置的算法。5.1 续续设计软件构造对于大型系统的设计,通常分为两个阶段:构造设计和过程设计。构造设计:确定系统由哪些模块组成,以及这些模块之

4、间的相互关系。 -总体设计阶段过程设计:确定每个模块的处置过程。 -详细设计阶段软件构造是由模块组成的层次系统,用层次图或构造图来描画。面向数据流的设计方法:数据流图-软件构造5.1 续续设计数据库针对需求运用数据库的运用系统。数据库设计是一项专门的技术,包括方式设计、子方式设计、完好性和平安性设计和优化处置等。 5.1 续续制定测试方案目的:促使软件设计人员在设计时留意软件的测试问题,从而有利于提高软件的可测试性。 5.1 续续书写文档系统阐明用户手册详细的实现方案测试方案数据库设计阐明书5.1 续续审查和复审软件设计人员对总体设计的结果进展严厉的技术审查。由运用部门的担任人从管理角度进展复

5、审。5.2 设计原理设计原理模块化模块:又称构件,是可以单独命名并独立地完成一定功能的程序语句的集合。模块化:指处理一个复杂问题时自顶向下逐层把软件系统划分成假设干模块的过程。每个模块完成一个特定的子功能,一切的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件处理复杂问题所具备的手段,为了阐明这一点,可将问题的复杂性和任务量的关系进展推理。5.2 续续问题的复杂性和任务量的关系 设问题x,C(x)表示问题x的复杂程度;E(x)表示处理问题x所需求的任务量时间。对于问题P1和P2,假设 CP1CP2 即P1比P2复杂那么 EP1EP2 即问题越复杂,任务量越大。根据处

6、理普通问题的阅历得出: CP1P2CP1CP2即一个问题由两个问题组合而成的复杂度大于分别思索每个问题的复杂度之和。可推出: EP1P2EP1EP2即单独处理问题P1和P2所需的任务量之和,比把P1和P2合起来作为一个问题来处理时所需的任务量要少。5.2 续续模块化和软件本钱的关系 5.2 续续模块化优点采用模块化原理可以使软件构造明晰,不仅容易设计也容易阅读和了解。模块化使软件容易测试和调试,从而有助于提高软件的可靠性。模块化可以提高软件的可修正性。模块化也有助于软件开发工程的组织管理。 5.2 续续笼统笼统:是认识复杂景象过程中运用的思想工具,即抽出事物本质的共同特性而暂不思索它的细节,不

7、思索其它要素。在模块化解法中,可以提出许多笼统的层次。在笼统的最高层次运用问题环境的言语,以概括的方式表达问题的解法;在较低笼统层次采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来表达问题的解法;最后在最低的笼统层次用可直接实现的方式表达问题的解法优点:简化了软件的设计和实现,提高了软件的可了解性和可测试性,并使软件容易维护。5.2 续续笼统软件工程过程的每一步都是对软件解法的笼统层次的一次精化。在可行性研讨阶段,软件作为系统的一个完好部件;在需求分析期间,软件解法是运用在问题环境内熟习的方式描画的;当由总体设计向详细设计过渡时,笼统的程度随之减少;当源程序写出来以后,即到达了笼统

8、的最低层。在软件构造每一层中的模块,表示了对软件笼统层次的一次精化。顶层的模块控制系统的主要功能并且影响全局;底层的模块完成对数据的详细处置。5.2 续续逐渐求精定义:为了集中精神处理主要问题而尽量推迟对问题细节的思索。Miller法那么:一个人在任何时候都只能把留意力集中在72个知识块上。逐渐求精方法确保每个问题都将被处理,而且每个问题都将在适当的时候被处理。求精实践上是细化过程。笼统与求精是一对互补的概念。笼统使得设计者可以阐明过程和数据,同时却忽略低层细节。求精那么协助设计者在设计过程中逐渐提示出低层细节。5.2 续续信息隐藏和部分化信息隐蔽:在设计和确定模块时,使得一个模块内包含的信息

9、过程或数据,对于不需求这些信息的其他模块来说,是不能访问的。模块所包含的信息过程和数据对于其他模块来说是隐蔽的。部分化:指把一些关系亲密的软件元素物理地放得彼此接近。部分化有助于实现信息隐藏。有效的模块化可以经过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换为了完成系统功能而必需交换的信息。优点:方便软件测试与维护。5.2 续续模块独立模块独立性:每个模块只完成系统要求的独立的子功能,并且与其他模块的联络最少且接口简单。 模块的独立性是软件质量的关键:模块化程度较高的软件容易开发;模块化程度较高的软件比较容易测试和维护。模块独立性的衡量规范:耦合:衡量不同模块彼此间相互依赖(衔接)的严

10、密程度;内聚:衡量一个模块内部各个元素彼此结合的严密程度。5.2 续续耦合软件构造中各个模块之间相互关联程度的度量。常见的耦合:非直接耦合数据耦合控制耦合特征耦合公共环境耦合内容耦合设计原那么:尽量运用数据耦合,少用控制耦合,限制公共耦合的范围,防止运用内容耦合。5.2 续续内聚模块内部各个元素彼此结合的严密程度的度量。常见的内聚:偶尔内聚 过程内聚 顺序内聚逻辑内聚 通讯内聚 功能内聚时间内聚“一个模块,一个功能,已成为模块化设计的一条准那么,也是设计人员争取的目的。5.3 启发规那么启发规那么设计准那么改良软件构造提高模块独立性划分模块时尽量做到高内聚,低耦合,坚持模块相对独立性,并以此原

11、那么优化初始的软件构造。假设假设干模块之间耦合强度过高,每个模块内功能不复杂,可将它们合并,以减少信息的传送和公共区的援用。假设有多个相关模块,应对它们的功能进展分析,消去反复功能。5.3 续续设计准那么模块规模应该适中 过大的模块往往是由于分解不充分。过小的模块开销大于有效操作。深度、宽度、扇入和扇出都应适当深度表示软件构造中控制的层数。宽度是软件构造内同一个层次上模块总数的最大值。扇出是一个模块直接控制(调用)的模块数目。一个模块的扇入阐明有多少个上级模块直接调用它。5.3 续续设计准那么模块的作用域应该在控制域之内模块的作用域定义为受该模块内一个断定影响的一切模块的集合。模块的控制域是这

12、个模块本身以及一切直接或间接从属于它的模块的集合。在一个设计得很好的系统中,一切受断定影响的模块应该都从属于做出断定的那个模块,最好局限于做出断定的那个模块本身及它的直属下级模块。改良方法:把断定的点往上移。把那些在作用域内但不在控制域内的模块移到控制域内。5.3 续续设计准那么模块的作用域和控制域5.3 续续设计准那么力争降低模块接口的复杂程度设计模块接口时应使信息传送简单并且和模块的功能一致。接口复杂或不一致(即看起来传送的数据之间没有联络),是紧耦合或低内聚的征兆。设计单入口单出口的模块防止使模块间出现内容耦合。模块功能应该可以预测只需输入的数据一样就产生同样的输出,这个模块的功能就是可

13、以预测的。模块的功能应该可以预测,但也要防止模块功能过分局限。5.4 描画软件构造的图形工具描画软件构造的图形工具层次图层次图用来描画软件的层次构造。层次方框图描画数据的层次构造。层次图适用于自顶向下的软件设计过程。5.4 续续HIPO图5.4 续续HIPO图HIPO图是美国IBM公司发明的“层次图加输入/处置/输出图的英文缩写。在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。和H图中每个方框相对应,有一张IPO图描画这个方框代表的模块的处置过程。HIPO图中的每张IPO图内都应该明显地标出它所描画的模块在H图中的编号,以便追踪了解这个模块在软件构造中的位置。5.4 续续构造图5.

14、4 续续构造图5.4 续续构造图断定为真时调用A,为假时调用B5.4 续续构造图模块M循环调用模块A、B、C5.5 面向数据流的设计方法面向数据流的设计方法概念定义:把信息流映射成软件构造,信息流的类型决议了映射的方法。目的:给出设计软件构造的一个系统化的途径。设计方法:定义一些不同的“映射,把数据流图变换成软件构造。构造化设计方法面向数据流的设计方法。5.5 续续变换流信息沿输入通路进入系统,同时由外部方式变换成内部方式,进入系统的信息经过变换中心,经加工处置以后再沿输出通路变换成外部方式分开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。5.5 续续变换流5.5 续续变换流5.

15、5 续续事务流数据沿输入通路到达一个处置T,这个处置根据输入数据的类型在假设干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。事务中心的义务: 接纳输入数据(输入数据又称为事务);分析每个事务以确定它的类型;根据事务类型选取一条活动通路。5.5 续续事务流5.5 续续变换分析5.5 续续例:汽车数字仪表板的设计假设的仪表板将完成下述功能: 经过模数转换实现传感器和微处置机接口;在发光二极管面板上显示数据;指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;指示加速或减速;超速警告:假设车速超越55英里/小时,那么发出超速警告铃声。在需求分析阶

16、段对上述每项性能和其它要求进展全面的分析,建立起必要的文档资料,特别是数据流图。5.5 续续设计步骤:目的:开发出软件的整体表示。也就是说,一旦确定了软件构培育可以把它作为一个整体来复查,从而可以评价和精化软件构造。共分七个步骤:复查根本系统模型确保系统的输入数据和输出数据符合实践。复查并精化数据流图确保数据流图给出了目的系统的正确的逻辑模型;使数据流图中每个处置都代表一个规模适中相对独立的子功能。5.5 续续设计步骤:5.5 续续设计步骤:确定数据流图具有变换特性还是事务特性。普通地说,一个系统中的一切信息流都可以以为是变换流。当遇到有明显事务特性的信息流时,应采用事务分析方法进展设计。把具

17、有和全局特性不同的特点的部分区域孤立出来。确定输入流和输出流的边境,从而孤立出变换中心。输入流和输出流的边境和对它们的解释有关。把边境沿着数据流通路挪动一个处置框的间隔,通常对最后的软件构造只需很小的影响。5.5 续续设计步骤4:5.5 续续设计步骤:完成“第一级分解。软件构造代表对控制的自顶向下的分配。对于变换流的情况,数据流图被映射成一个特殊的软件构造,控制输入、变换和输出等信息处置过程。第一级分解:最顶层的主控模块协调其从属的控制功能:输入流控制模块,接纳一切输入数据;变换流控制模块,对内部方式数据进展加工、处置;输出流控制模块,协调输出信息的产生过程。5.5 续续设计步骤5:变换流变换

18、流控制模块控制模块输入流输入流控制模块控制模块主控模块主控模块输出流输出流控制模块控制模块输入流输入流ABCD变换流变换流输出流输出流EFGH第一级分解的方法5.5 续续设计步骤5:数字仪表板系统的第一级分解5.5 续续设计步骤:完成“第二级分解。义务:把数据流图中每个处置框映射为软件构造中一个适当的模块。方法:从变换中心的边境开场沿着输入通路向外挪动,把输入通路中每个处置映射成软件构造中输入流控制模块下的一个低层模块;沿输出通路向外挪动,把输出通路中每个处置映射成直接或间接受输出流控制模块下的一个低层模块;把变换中心内的每个处置映射成受变换流控制模块下的一个模块。5.5 续续设计步骤6输入流

19、输入流变换流变换流输出流输出流ABCDEFGHBDACEFGH输入流控制输入流控制模块模块主控模块主控模块变换流控制变换流控制模块模块输出流控制输出流控制模块模块5.5 续续设计步骤6未经精化的输入构造5.5 续续设计步骤6未经精化的变换构造5.5 续续设计步骤6未经精化的输出构造5.5 续续设计步骤6第一代设计规格阐明:进出该模块的信息(接口描画);模块内部的信息;处置过程陈说,包括义务和主要的判别点的位置、条件;对有关限制和一些专门特性的简要阐明例如,文件I/O,独立于硬件的特性,特殊的实时要求等。二级分解后得到的仅仅是程序构造的“雏形。5.5 续续设计步骤:运用设计度量和启发式规那么对第

20、一次分割得到的软件构造进一步精化。对于程序构造的雏形,以“模块独立为指点思想,对模块进展整合或分解,旨在追求高内聚、低耦合,以及易实现、易测试、易维护的软件构造。对数字仪表板例如的修正:输入构造中的模块“转换成rpm和“搜集sps可以合并;模块“确定加速/减速可以放在模块“计算mph下面,以减少耦合;模块“加速/减速显示可以相应地放在模块“显示mph的下面。5.5 续续设计步骤7:精化后的数字仪表板系统的软件构造5.5 续续事务分析当数据流具有明显的事务特征时,即能找到一个事务亦称触发数据项和一个事务中心,采用事务分析法更为适宜。事务分析的设计步骤和变换分析的设计步骤主要差别仅在于由数据流图到

21、软件构造的映射方法不同。对于一个大系统,经常把变换分析和事务分析运用到同一个数据流图的不同部分,共同构造完好的软件构造。5.5 续续事务分析事务分析法可概括为七个步骤:复审根本系统模型;复审并精化软件数据流图;确定数据流图的特征;指出事务中心,确定接纳分支和发送分支;映射出系统上层模块构造;分解并精化事务构造以及每条动作途径所对应的构造。运用启发式设计战略,精化所得程序构造雏形,改良软件质量。5.5 续续事务分析映射方法映射出接纳分支构造的方法是从事务中心的边境开场,把沿着接纳流通路的处置映射成模块。发送分支的构造包含一个调度模块,它控制下层的一切活动模块;把数据流图中的每个活动流通路映射成与

22、它的流特征相对应的构造。5.5 续续事务分析映射方法5.5 续续设计优化在设计的早期阶段尽量对软件构造进展精化,导出不同的软件构造,然后对它们进展评价和比较,得到“最好的结果。软件设计人员应该努力于开发可以满足一切功能和性能要求,而且按照设计原理和启发式设计规那么衡量是值得接纳的软件。设计优化应该力求做到在有效的模块化的前提下运用最少量的模块,以及在可以满足信息要求的前提下运用最简单的数据构造。“先使它能任务,然后再使它快起来。5.5 续续设计优化对时间起决议性作用的软件进展优化的方法: 在不思索时间要素的前提下开发并精化软件构造;在详细设计阶段选出最耗费时间的那些模块,仔细地设计它们的处置过程(算法),以求提高效率;运用高级程序设计言语编写程序;在软件中孤立出那些大量占用途置机资源的模块;必要时重新设计或用依赖于机器的言语重写上述大量占用资源的模块的代码,以求提高效率。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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