软件工程课件第07章_第1页
软件工程课件第07章_第2页
软件工程课件第07章_第3页
软件工程课件第07章_第4页
软件工程课件第07章_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

ZhangLingling,BeiHuaZLL,软件工程,主编曹哲高诚中国水利水电出版社,ZhangLingling,BeiHuaZLL,是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构,软件设计:,ZhangLingling,BeiHuaZLL,软件工程,第7章软件设计基础,ZhangLingling,BeiHuaZLL,7.1.1软件设计过程,Text,Text,ZhangLingling,BeiHuaZLL,7.1.2抽象与逐步求精,ZhangLingling,BeiHuaZLL,抽象1:该CAD软件系统配有与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工具画各种直线和曲线;能完成所有几何计算以及所有截面视图和辅助视图的设计。图形设计的结果保存在图形文件中,图形文件可以包含几何的、正文的和其他各种补充设计信息。,例7.1考虑适用于低级CAD的图形软件包,CAD软件任务,创建二维图形,管理图形文件,用户界面,抽象2:CAD软件任务;用户界面子任务;创建二维图形子任务;显示图形子任务;管理图形文件子任务;endCAD.,抽象3(仅以“创建二维图形任务”为例)PROCEDURE创建二维图形REPEATUNTILENDREPETITION;ENDPROCEDURE.;,ZhangLingling,BeiHuaZLL,数据对象:TYPEdrawingISSTRUCTUREDEFINEDnumberISSTRINGLENTH(12);geometryDEFINEDnotesISSTRINGLENTH(256);bomDEFINEDENDdrawingTYPE;,数据抽象,blueprintISINSTANCEOFdrawing;或schematicISINSTANCEOFdrawing;,ZhangLingling,BeiHuaZLL,逐步求精,抽象,求精,ZhangLingling,BeiHuaZLL,7.1.3模块化与信息隐藏,模块,理论依据,属性,I/O、功能,程序、数据,程序、程序段、子程序,一个功能、易理解、独立,例:库存管理系统的模块划分事务接收模块更新库存清单订货处理生成报表例:人事管理系统,信息隐藏内聚度耦合度,分治法:C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2,ZhangLingling,BeiHuaZLL,信息隐藏,模块内所含信息对那些不需要这些信息的模块不可访问,每个模块只完成一个相对独立的特定功能。,模块独立性(Moduleindependence)好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。,独立性的度量:耦合(Coupling)&内聚(Cohesion),ZhangLingling,BeiHuaZLL,低级内聚度(3个),ZhangLingling,BeiHuaZLL,中级内聚度(2个),ZhangLingling,BeiHuaZLL,高级级内聚度(2个),ZhangLingling,BeiHuaZLL,七种“内聚模块”的性能比较,ZhangLingling,BeiHuaZLL,模块间的耦合,耦合:表示一个软件结构内各个模块之间的互连程度,尽量选用松散耦合的系统,1.非直接耦合:两个模块中任一个,都不依赖于对方能独立工作,1.非直接耦合-2.数据耦合,2.数据耦合两个模块间通过参数交换信息,而信息仅限于数据,ZhangLingling,BeiHuaZLL,3.特征耦合,住户详情数据结构中包括:“本月用水量”、“本月用电量”。“特征耦合”图可改进“数据耦合”图,如果两个模块都与同一个数据结构有关,则为特征耦合。,ZhangLingling,BeiHuaZLL,4.当模块A向模块B所传递的信息控制了B的内部逻辑。,4.控制耦合-5.外部耦合,5.若干模块均与同一个外部环境关联。如:I/O、格式、通信协议,ZhangLingling,BeiHuaZLL,6.公共耦合-7.内容耦合(病态耦合)6.如果两个模块都和同一个公共数据域有关,7.一个模块和另一个模块的内部属性有关(运行程序和内部数据)。如:一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块。,模块A中TRC:模块B中GOTOTRC,ZhangLingling,BeiHuaZLL,设计模块时,应以数据耦合为主,辅以特征耦合与控制耦合,消除公共耦合和内容耦合。,七种“耦合模块”的性能比较,ZhangLingling,BeiHuaZLL,耦合、内聚与模块独立性的关系,ZhangLingling,BeiHuaZLL,7.1.4软件总体结构设计(softwarearchitecture),目标:模块化的程序结构、明确各模块之间的控制关系、说明程序的输入输出数据流、进一步协调程序结构和数据结构。,ZhangLingling,BeiHuaZLL,结构设计原则,ZhangLingling,BeiHuaZLL,结构设计原则,2.模块规模适中:过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。,提高模块独立性争取低耦合、高内聚(增加内聚减少耦合),ZhangLingling,BeiHuaZLL,深度=分层的层数。过大表示分工过细。宽度=同一层上模块数的最大值。过大表示系统复杂度大。,3.选择适当的深度、宽度、扇出和扇入,ZhangLingling,BeiHuaZLL,扇出=一个模块直接调用控制的模块数。3fan-out9,扇入=直接调用该模块的模块数在不破坏独立性的前提下,fan-in大的比较好。,ZhangLingling,BeiHuaZLL,4、作用域在控制域内控制域,M的控制域为M,A,B,C,作用域:M中的一个判定所影响的模块。例如:,上例中A的作用超出了控制域。改进方法之一,可以把A中的if移到M中;方法之二,可以把C移到A下面。,ZhangLingling,BeiHuaZLL,5、降低接口的复杂程度:接口复杂可能表明模块的独立性差。6、单出单入,避免内容耦合。7、模块功能可预测相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。,ZhangLingling,BeiHuaZLL,7.2软件过程设计技术和工具7.2.1结构化程序设计,结构化设计图形表示法,ZhangLingling,BeiHuaZLL,7.2.2图形表示法,1流程图(也称为程序框图)是最常用的一种表示法,“顺序”、“分支”和“循环”三个基本控制构件用流程图表达的形式如图8-2-1所示。,F,第二个任务,顺序结构,then部分,else部分,dowhile循环,第一个任务,T,分支条件,Ifthenelse结构,循环条件,循环体,T,F,图8-2-1流程图构件,ZhangLingling,BeiHuaZLL,7.2.2图形表示法,2盒图也称为N-S图或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。,第一个任务第二个任务第三个任务,顺序结构,else部分,then部分,条件,F,T,if-then-else结构,do-while部分,循环条件,循环结构,图8-2-3盒图的构件,ZhangLingling,BeiHuaZLL,7.2.3判定表与判定树,判定表由四部分组成:,用于:条件复杂,根据这些条件的组合选择动作,判定表的每一列可解释为一条处理规则,ZhangLingling,BeiHuaZLL,7.2.3判定表与判定树,【例7.2】问题处理描述:耗电记费系统可以采用固定价格收费、浮动价格收费和其他方式收费三种方式。若采用固定价格方式收费,对每月耗电100kWh以下的用户只征收最低标准费,超过100kWh的用户按价格表A收费;若采用浮动价格方式收费,则每月耗电100kWh以下的用户按价格A收费,超过100kWh的用户按价格B收费。,ZhangLingling,BeiHuaZLL,表71判定表,条件,动作,ZhangLingling,BeiHuaZLL,【例7.2】判定树,耗电100kWh收取最低标准费固定方式耗电100kWh按价格表A收费耗电100kWh按价格表A收费耗电收费浮动方式耗电100kWh按价格表B收费其他方式其他处理图8-2-5用判定树表示计算耗电收费的算法,ZhangLingling,BeiHuaZLL,7.2.3判定表与判定树,判定树的优点:形式简单,直观明了,易于掌握。判定树的缺点:存在着数据冗余的问题,相同的数据元素往往要重复多次,而且越接近树的叶端重复的次数越多。判定树要求对条件进行层次划分,若条件所处层次不对,可能会导致增加判定树的复杂性。,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),PDL(ProcedureDesignLanguage)也称为结构英语或伪码,是所有正文形式的过程设计工具的统称。PDL经常表现为一种“混杂”的形式,允许自然语言(如英语)的词汇与某种结构化程序设计语言(如Pascal、C、Ada等)的语法结构交织在一起,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),PDL应具有下述特点:1关键字采用固定语法并支持结构化构件、数据说明机制和模块化;2处理部分采用自然语言描述;3允许说明简单(标量、数组等)和复杂(链表、树等)的数据结构;4子程序的定义与调用规则不受具体接口方式的影响。,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),考察一个PDL的原型,它可以建立在任意一个通用的结构化程序设计语言之上。基本成分包括:子程序定义、界面描述、数据说明、块结构、分支结构、循环结构和I/O结构。数据说明的形式为:TYPEIS其中:局部变量或全局变量;某个特定关键字(例如,SCALAR,ARRAY,LIST,STRING,STRUTURE等);说明此处定义的变量在该过程或整个程序中应如何使用。,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),可进行抽象数据类型的定义,例如:TYPEtable_1ISINSTACEOFsymbol_table而symbol_table在另一处已定义如下:TYPEsymbol_tableISSTRUCTUREDEFINED,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),该PDL的块结构描述一个过程元素,即一个块内的所有语句将作为一个整体执行,形式为BEGINEND该PDL的分支结构有if-then-else和case两种形式,分别为IFTHENELSEENDIF,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),CASEOFWHENSELECTWHENSELECTWHENSELECTDEFAULT:ENDCASE,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),循环结构包括三类,表达形式分别为:DOWHILEENDWHILEREPEATUNTILENDREPEATDOFOR=ENDFOR,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),此PDL还提供了NEXT和EXIT两种语句:EXIT语句,退出本层循环;NEXT语句强迫本次循环结束,新一轮循环开始。在该PDL中,子程序说明为:PROCEDUREINTERFACEEND其中属性表指明该子程序的引用特性(比如,是INTERNAL还是EXTERNAL模式)和其他依赖于实现(即程序设计语言)的特性。,ZhangLingling,BeiHuaZLL,7.2.4过程设计语言(PDL),输入/输出说明部分常用的形式有READ/WRITETO或ASKANSWER后一种形式多用于人机交互部分的设计。,ZhangLingling,BeiHuaZLL,7.3设计规格说明与评审,软件设计阶段的输出主要是设计规格说明书:第一节:描述与设计活动有关的各个方面,该节中许多信息取自系统规格说明书和系统定义阶段产生的其他文档。第二节:具体指明引用信息的出处。第三节:设计描述,是概要设计的产物,此时设计由信息驱动,即软件总体结构主要受数据流程、数据结构的影响,需求分析时产生的DFD或其他某种形式的数据表示将在这一节中进一步精化,用于确定软件结构。当信息流程确定后,界面亦可作为整个软件的一部分进行描述。,ZhangLingling,BeiHuaZLL,7.3设计规格说明与评审,第四、五两节是概要设计向详细设计过渡后形成的。第四节:模块指软件中可单独编址的部件,如函数和过程,最初用自然语言描述它们的功能,随后采用某种过程设计工具将这些自然语言描述转换为结构化描述。第五节:主要描述数据组织结构,包括辅存的文件结构、全局数据(例如FORTRAN公共区)的赋值以及这些文件与全局数据的交叉访问关系。,ZhangLingling,BeiHuaZLL,7.3设计规格说明与评审,第六节:是与需求规格说明书的交叉访问表,根据交叉访问表可断定设计是否满足所有需求,这对于完成某个具体需求的模块来说十分重要。第七节:是测试的初步计划。一旦软件结构和模块间界面确定下来之后,即可制定模块单元测试和联调的计划。某些场合,要求同时开发测试规格说明书与设计规格说明书,此时第七节可从设计规格说明书中删去。第八节:将逐条说明各种限制和造成的影响。第九、十两节:包括若干辅助数据,如从其他文档中节选的算法描述、候选的过程、表格化数据和其他相关信息,这些信息是对设计的一种特殊注释最后开发一基本操作规格说明或安装手册作为附录。,ZhangLingling,BeiHuaZLL,设计规格说明书示例,.作用范围A.系统目标B.硬件、软件和人机界面C.主要的系统功能D.外部数据库定义E.主要的设计约束和限制.文档A.现有的软件文档B.系统文档C.卖主(硬件的和软件的)的有关文档D.技术参考书,ZhangLingling,BeiHuaZLL,设计规格说明书示例,.设计描述A.数据描述1.数据流复审2.数据结构复审B.导出的程序结构C.结构之间的界面,ZhangLingling,BeiHuaZLL,设计规格说明书示例,.模块描述;针对每个模块给出A.处理过程陈述B.接口描述C.设计语言(或其他形式)描述D.引用的模块E.数据组织F.注释,ZhangLingling,BeiHuaZLL,设计规格说明书示例,.文件结构

温馨提示

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

评论

0/150

提交评论