资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章总体设计(SystemDesign)开始考虑“How“,但仍属高层设计(确定黑盒关系)81.过程1、确定最佳方案:从DFD出发进行任务分解,不同的划分方法即对应不同的方柳。梅个合理的方案应职会下列4份资料:(系统流程图(2)组成系统的物理元素清单(3)成本/效益分析(4)进度计划4选择最佳方案并制定详细的实现计划(主要技术详见第十三章)1过程2、结构设计一一模块化思想:将DFD细化,至每个子功能都明白易懂;每个模块完成一个子功能;每层模块合成一个高一级的功能。主要工具有层次图及HIPO图等。3、数据序设计骅)4、测试计划(详见第七章)5、文档、审查82.设计原理工原理:经验1:工作量E(Pi+P,)E(P1)+E(P,)经验2:P.84图5.1,软件总成本最小成本区E一In模块数目2.设计原理2、才白象、(Abstr霾ctiu):忽略细节,分层理解问题,自顶向下层层加细。软件工程过程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶殴,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熠悉的方式描述的;当由总体设计向详细设计过渡时,抽象的程度也就随之减少了;最后当源程序写出来以后,也就达到了抽象的最低逐步求精和棋块化的概含,与抽象是紧密相关的。3、逐步求精(step-wiserefining)2“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。“逐步求精最初是由NiklausWirth提出的一种自顶向下的设计策略。“我们对付复杂问题的最重要的办法是抽象,因此,对一个复杂的问题不应该立刻用计算机指令、数字和递辑符名来袁示,而应该用缘自然的抽刹语句来表示,从而得出抽象程序。抽象程序对抽象的数据进行栋些特定的运算并用栋些合适的记号(可能是自然语言)来表示。对抽象程序做进一步的分解,并进入下一个抽象层次,这样的精细化过程一直进行下去,直到程序能被计算机接受为止。这时的程序可能是用某种高级语言或机器指令书写的。“2.设计原理抽象与求精是一对互补的概念。抽豫使得设计者能够说明过程和数据,同时却忽略低层细节。可以把抽豫看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。辜精则捍助设计考在设计过程中逐步描示出低层细这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。82.设计原理4、信息隐蔽(Informationhiding)信息隐藏原理指出:一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的.局部化的概念和信息隐藏概念是密切相关的。所谓局部化是指把一步关系嘉切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。2.设计原理5、模块独立性(Moduleindependence)好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这斧设计歇件标构,使得每个祖块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。2.设计原理第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。第二,独立的模块比较宰易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小.霁要扩交功能时能够“插入“模狩s总之,模块独立是好设计的关键,而设计又是决定软件质量的关键环节2.设计原理独立性的度量:韬合(Coupling)&内聚(Cohesion)(Yourdon&Constantine,1978)(耦合(Coupling):不同模块间互连程度的度量GreatdealofdependenceIndependentH一的LHighiycoupledLooselycoupledUncoupledGoal:尽可能松散=尽可能独立非直接耦合:块间无联系(不可能存在、调用)
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号