《软件工程》结构化设计概念和原理_第1页
《软件工程》结构化设计概念和原理_第2页
《软件工程》结构化设计概念和原理_第3页
《软件工程》结构化设计概念和原理_第4页
《软件工程》结构化设计概念和原理_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8讲设计概念与原理编辑ppt数据设计体系结构设计接口设计需求模型翻译到软件设计需求分析模型

设计模型数据对象描述处理规格说明控制规格说明E-RDFDSTDDD过程设计编辑ppt翻译分析模型到软件设计数据设计将分析时创建的信息域模型变换为软件所需的数据结构,侧重于数据结构的定义。体系结构设计定义软件系统各主要结构构件之间的关系。过程设计则是把结构构件转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。接口设计是建立软件内部的关系以及软件人-机之间的交互机制。编辑ppt1.设计过程从项目管理的角度来看,软件设计分两步完成。概要设计,将软件需求转化为数据结构和软件体系结构。详细设计,即过程设计。通过对体系结构表示进行细化,得到软件的详细的数据结构和算法。编辑ppt概要设计从回答“做什么”到回答“怎样做”划分出组成系统的物理元素——程序、文件、数据库、过程和文档等等每个元素还是黑盒子---“全局高度,抽象层次”体系结构设计编辑ppt体系结构设计文学中有科学,音乐中有数学,漫画中有现代数学的拓扑学。漫画家可以“几笔”就把一个人画出来,不管怎么美化或丑化,就是活像。为什么?因为那“几笔”不是别的,而是拓扑学中的特征不变量,这是事物最本质的东西。——杨叔子编辑ppt(1)体系结构是对复杂事物的一种抽象。(2)体系结构在一定的时间内保持稳定。体系结构设计编辑ppt2.设计基本原理1.模块化:Modularity模块是数据说明、可执行语句等程序对象的集合,是单独命名的并且可以通过名字来访问,例如过程、函数、子程序、宏、modula等。软件被划分成独立命名和可独立访问的被称作模块的构件,每个构件完成一个子功能,它们集成到一起满足问题需求。easiertobuild,easiertochange,easiertofix...编辑ppt模块化模块化论据: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)不要过度模块化!每个模块的简单性将被集成的复杂性所掩盖。编辑ppt模块化模块化和软件本如何确定地预测最小成本区?成本/模块最小成本区接口成本软件总成本成本模块数目编辑ppt设计基本原理2.抽象Abstraction:忽略细节,分层理解问题,自顶向下层层细化,包括对过程、数据和控制的抽象。过程抽象:一个命名的指令序列,具有特定和有限的功能。数据抽象是命名的数据集合,描述一个数据对象。控制抽象隐含了不必说明的内部细节的程序控制机制。是实现模块化的手段之一。编辑ppt设计基本原理3.求精Refinement自顶向下的设计策略。doorimplementedasadatastructuremanufacturermodelnumbertypeswingdirectioninsertslights

type

numberweightopeningmechanismopenimplementedwitha"knowledge"oftheobjectthatisassociatedwithenterdetailsofenteralgorithmwalktodoor;reachforknob;Switchtheknob;opendoor;walkthrough;closedoor.repeatuntildooropensturnknobclockwise;ifknobdoesn'tturn,then

takekeyout;

findcorrectkey;

insertinlock;endifpull/pushdoormoveoutofway;endrepeat编辑ppt设计基本原理4.信息隐藏informationhiding信息隐藏:在设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不可访问的。每个客户只能通过接口来了解该模块,而所有的实现都隐藏起来。编辑ppt信息隐藏modulecontrolledinterface"secret"•algorithm•datastructure•detailsofexternalinterface•resourceallocationpolicyclientsaspecificdesigndecision“信息隐藏”,更准确地描述应是“细节隐藏”,因为隐藏的不是信息,而是实现的细节。编辑ppt3、模块化设计模块独立性度量标准:内聚

cohesion和耦合

coupling内聚是一个模块内部的交互程度;耦合是模块之间交互的程度。功能独立性是良好设计的关键,设计又是软件质量的关键。编辑ppt耦合耦合(couple)是度量系统中模块之间的交互程度。Goal:

模块之间尽可能独立耦合从低到高依次为:非直接耦合(最好),数据耦合,标记耦合,控制耦合,外部耦合,公共耦合和内容耦合(最差)。GreatdealofdependenceIndependent

HighlycoupledLooselycoupledUncoupled

编辑ppt耦合内容耦合contentcoupling如果两个模块中的一个直接引用了另一个模块的内容,则它们之间是内容耦合。Onemodulemodifiesanother.……ABCDA:……………………gotoC1……………………C:……………………C1:…………例1:A访问C的内部数据或不通过正常入口而转入C的内部。编辑ppt耦合例2:部分代码重叠(常出现在汇编程序中)B

A例3:一个模块有多个入口(功能)A:………………………………entry1:………………………………entry2:………………………………编辑ppt耦合公共耦合commoncoupling如果两个模块都可以存取相同的全局数据,则它们之间是公共耦合。acommondatastore.Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Global:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………编辑ppt耦合公共耦合存在的问题:公共部分的改动将影响所有调用它的模块;公共部分的数据存取无法控制;复杂程度随耦合模块的个数增加而增加。解决方法:通过使用信息隐藏来避免公共耦合。编辑ppt耦合控制耦合controlcoupling

如果两个模块中的一个模块给另一个模块传递控制信息,则它们具有控制耦合。Onemodulepassesparameterstocontroltheactivityofanothermodule.ABFlagF2F1Fn…………Flag特点:接口单一,但仍然影响被控模块的内部逻辑。编辑ppt耦合标记耦合stampcoupling如果两个模块都要使用同一数据结构的一部分,不是采用全局公共数据区共享,而是通过模块结构传递数据结构的一部分,则它们之间为标记耦合。数据耦合datacoupling被调用模块的输入与输出是简单的参数或者是数据结构(该数据结构中的所有元素为被调用的模块使用),则它们之间为数据耦合。非直接耦合nodirectcoupling两个模块之间没有联系,则它们之间为非直接耦合。编辑ppt耦合实现低耦合,采取下列措施:耦合方式采用非直接耦合,不采用内容耦合。传递信息类型尽量使用数据耦合,少采用控制耦合,外部耦合和公共耦合限制使用。耦合数量模块间相互调用时,传递参数最好只有一个。原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。编辑ppt内聚内聚:cohesion.Goal:

尽可能高内聚.内聚级别:偶然内聚逻辑内聚时间内聚

过程内聚

通信内聚顺序内聚功能内聚最差最好编辑ppt低内聚偶然内聚(Coincidentalcohesion):指一个模块内的各处理元素之间没有任何联系。例:readdiskfile;calculatecurrentvalues;produceuseroutput;

…严重的缺点:产品的可维护性退化;模块是不可复用的,增加软件成本。解决途径:将模块分成更小的模块,每个小模块执行一个操作。编辑ppt低内聚逻辑内聚(Logicalcohesion):逻辑上相关的功能或数据放在一个模块中。问题:接口难于理解;完成多个操作的代码互相纠缠在一起,导致严重的维护问题。A:Readinputsfromdiskfromtapefromkeyboard编辑ppt低内聚时间内聚(Temporalcohesion):如果一个模块包含的任务必须在同一段时间内执行。例如:系统的初始化

openoldmasterfile;newmasterfile,transactionfileandprintfile;initializesalesregiontable;readfirsttransactionrecordandfirstoldmasterfilerecord;问题:不同的功能混在一个模块中,有时共用部分编码,使局部功能的修改牵动全局。编辑ppt中内聚过程内聚(Proceduralcohesion):Functionsaregroupedtogetherinamoduletoensureacertainorderofperformance.例子:Readpartnumberfromdatabaseandupdaterepairrecordonmaintenancefile.enterdatacheckdatamanipulatedata编辑ppt中内聚通信内聚(Communicationalcohesion):Allthefunctionsinamoduleoperateonorproducethesamedataset.例如:从数据库的操作——可能破坏独立性。编辑ppt高内聚顺序内聚(Sequentialcohesion):一个处理元素的输出数据作为下一个处理元素的输入数据。

功能内聚(Functionalcohesion):模块内的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论