软件工程课件第07章

上传人:aa****6 文档编号:57662616 上传时间:2018-10-23 格式:PPT 页数:54 大小:427.50KB
返回 下载 相关 举报
软件工程课件第07章_第1页
第1页 / 共54页
软件工程课件第07章_第2页
第2页 / 共54页
软件工程课件第07章_第3页
第3页 / 共54页
软件工程课件第07章_第4页
第4页 / 共54页
软件工程课件第07章_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件工程课件第07章》由会员分享,可在线阅读,更多相关《软件工程课件第07章(54页珍藏版)》请在金锄头文库上搜索。

1、ZhangLingling,BeiHuaZLL,软件工程,主编 曹哲 高诚中国水利水电出版社,是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构,软 件 设 计:,BeiHuaZLL,ZhangLingling,ZhangLingling,BeiHuaZLL,软 件 工 程,第 7 章 软 件 设 计 基 础,7.1.1 软件设计过程,Text,Text,BeiHuaZLL,ZhangLingling,7.1.2 抽象与逐步求精,BeiHuaZLL,ZhangLingling,抽象1: 该CAD软件系统配有与绘图员进行可视化通信的图 形界面,能用鼠标代替绘图工具画各

2、种直线和曲线; 能完成所有几何计算以及所有截面视图和辅助视图的 设计。图形设计的结果保存在图形文件中,图形文件 可以包含几何的、正文的和其他各种补充设计信息。,例7.1 考虑适用于低级CAD的图形软件包,CAD软件任务,创建二维图形,管理图形文件,用户界面,抽象2:CAD软件任务;用户界面子任务;创建二维图形子任务;显示图形子任务;管理图形文件子任务;end CAD.,抽象3(仅以“创建二维图形任务”为例)PROCEDURE创建二维图形REPEAT UNTILEND REPETITION; END PROCEDURE.;,BeiHuaZLL,ZhangLingling,数据对象:TYPE dr

3、awing IS STRUCTURE DEFINEDnumber IS STRING LENTH(12);geometry DEFINEDnotes IS STRING LENTH(256);bom DEFINEDEND drawing TYPE;,数据抽象,blueprint IS INSTANCE OF drawing;或 schematic IS INSTANCE OF drawing;,BeiHuaZLL,ZhangLingling,逐步求精,抽 象,求精,BeiHuaZLL,ZhangLingling,7.1.3 模块化与信息隐藏,模块,理论 依据,属性,I/O、功能,程序、数据,程

4、序、程序段、子程序,一个功能、易理解、独立,例:库存管理系统的模块划分 事务接收模块 更新库存清单 订货处理 生成报表 例:人事管理系统,信息隐藏 内聚度 耦合度,分 治 法: C(P1+P2)C(P1)+C(P2) E(P1+P2)E(P1)+E(P2,BeiHuaZLL,ZhangLingling,信息隐藏,模块内所含信息对那些不需要这些信息的模块不可访问,每个模块只完成一个相对独立的特定功能。,模块独立性(Module independence) 好设计的关键:每个模块完成一个相对独立的子功能, 并且与其它模块间的接口简单。,独立性的度量:耦合(Coupling)&内聚(Cohesion

5、),BeiHuaZLL,ZhangLingling,低级内聚度(3个),BeiHuaZLL,ZhangLingling,中级内聚度(2个),BeiHuaZLL,ZhangLingling,高级级内聚度(2个),BeiHuaZLL,ZhangLingling,七种“内聚模块”的性能比较,BeiHuaZLL,ZhangLingling,模块间的耦合,耦合:表示一个软件结构内各个模块之间的互连程度,尽量选用松散耦合的系统,1.非直接耦合: 两个模块中任一个,都不依赖于对方能独立工作,1.非直接耦合 - 2.数据耦合,2.数据耦合 两个模块间通过参数交换信息, 而信息仅限于数据,BeiHuaZLL,Z

6、hangLingling,3.特征耦合,住户详情数据结构中包括:“本月用水量”、“本月用电量”。 “特征耦合”图可改进“数据耦合”图,如果两个模块都与同一个数据结构有关,则为特征耦合。,BeiHuaZLL,ZhangLingling,4.当模块A向模块B所传递的信息控制了B的内部逻辑。,4.控制耦合-5.外部耦合,5.若干模块均与同一个外部环境关联。 如:I/O、格式、通信协议,BeiHuaZLL,ZhangLingling,6.公共耦合-7.内容耦合(病态耦合)6.如果两个模块都和同一个公共数据域有关,7.一个模块和另一个模块的内部属性有关(运行程序和内部数据) 。如:一个模块使用另一个模块

7、内部的数据或控制信息;一个模块直接转移到另一个模块。,模块A中 TRC:模块B中 GO TO TRC,BeiHuaZLL,ZhangLingling,设计模块时,应以数据耦合为主,辅以特征耦合与控制耦合, 消除公共耦合和内容耦合。,七种“耦合模块”的性能比较,BeiHuaZLL,ZhangLingling,耦合、内聚与模块独立性的关系,BeiHuaZLL,ZhangLingling,7.1.4 软件总体结构设计(software architecture),目标:模块化的程序结构、明确各模块之间的控制 关系、说明程序的输入输出数据流、进一步协调程 序结构和数据结构。,BeiHuaZLL,Zha

8、ngLingling,结构设计原则,BeiHuaZLL,ZhangLingling,结构设计原则,2. 模块规模适中: 过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。,提高模块独立性争取低耦合、高内聚(增加内聚 减少耦合),BeiHuaZLL,ZhangLingling, 深度 = 分层的层数。过大表示分工过细。 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。,3. 选择适当的深度、宽度、扇出和扇入,BeiHuaZLL,ZhangLingling, 扇出 = 一个模块直接调用控制的模块数。 3 fan-out 9, 扇入 = 直接调用该模块的模块数 在不破坏独立性

9、的前提下,fan-in 大的比较好。,BeiHuaZLL,ZhangLingling,4、作用域在控制域内 控制域,M的控制域为 M,A,B,C, 作用域:M中的一个判定所影响的模块。 例如:,上例中A的作用超出了控制域。改进方法之一,可以把A中的 if 移到M中;方法之二,可以把C移到A下面。,BeiHuaZLL,ZhangLingling,5、降低接口的复杂程度:接口复杂可能表明模块的独立性差。6、单出单入,避免内容耦合。7、模块功能可预测 相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。,BeiHuaZLL,ZhangLingling,7.2 软件过程设计

10、技术和工具 7.2.1 结构化程序设计,结构化设计图形表示法,BeiHuaZLL,ZhangLingling,7.2.2 图形表示法,1流程图(也称为程序框图)是最常用的一种表示法, “顺序”、“分支”和“循环”三个基本控制构件用流程图表达的形式如图8-2-1所示。,F,第二个任务,顺序结构,then部分,else部分,dowhile循环,第一个任务,T,分支条件,Ifthenelse结构,循环条件,循环体,T,F,图8-2-1 流程图构件,BeiHuaZLL,ZhangLingling,7.2.2 图形表示法,2盒图也称为N-S图或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构

11、化方式思考和解决问题。,第一个任务 第二个任务 第三个任务,顺序结构,else 部分,then 部分,条件,F,T,if-then-else结构,do-while 部分,循环条件,循环结构,图8-2-3 盒图的构件,BeiHuaZLL,ZhangLingling,7.2.3 判定表与判定树,判定表由四部分组成:,用于:条件复杂,根据这些条件的组合选择动作,判定表的每一列可解释为一条处理规则,BeiHuaZLL,ZhangLingling,7.2.3 判定表与判定树,【例7.2】问题处理描述:耗电记费系统可以采用固定价格收费、浮动价格收费和其他方式收费三种方式。若采用固定价格方式收费,对每月耗电

12、100kWh以下的用户只征收最低标准费,超过100kWh的用户按价格表A收费;若采用浮动价格方式收费,则每月耗电100kWh以下的用户按价格A收费,超过100kWh的用户按价格B收费。,BeiHuaZLL,ZhangLingling,表71 判定表,条件,动作,BeiHuaZLL,ZhangLingling,【例7.2】判定树,耗电100kWh 收取最低标准费固定方式耗电100kWh 按价格表A收费耗电100kWh 按价格表A收费 耗电收费 浮动方式耗电100kWh 按价格表B收费其他方式 其他处理图8-2-5 用判定树表示计算耗电收费的算法,BeiHuaZLL,ZhangLingling,7

13、.2.3 判定表与判定树,判定树的优点:形式简单,直观明了,易于掌握。 判定树的缺点: 存在着数据冗余的问题,相同的数据元素往往要重复多次,而且越接近树的叶端重复的次数越多。判定树要求对条件进行层次划分,若条件所处层次不对,可能会导致增加判定树的复杂性。,BeiHuaZLL,ZhangLingling,7.2.4 过程设计语言(PDL),PDL(Procedure Design Language)也称为结构英语或伪码,是所有正文形式的过程设计工具的统称。 PDL经常表现为一种“混杂”的形式,允许自然语言(如英语)的词汇与某种结构化程序设计语言(如Pascal、C、Ada等)的语法结构交织在一起

14、,BeiHuaZLL,ZhangLingling,7.2.4 过程设计语言(PDL),PDL应具有下述特点: 1关键字采用固定语法并支持结构化构件、数据说明机制和模块化; 2处理部分采用自然语言描述; 3允许说明简单(标量、数组等)和复杂(链表、树等)的数据结构; 4子程序的定义与调用规则不受具体接口方式的影响。,BeiHuaZLL,ZhangLingling,7.2.4 过程设计语言(PDL),考察一个PDL的原型,它可以建立在任意一个通用的结构化程序设计语言之上。基本成分包括:子程序定义、界面描述、数据说明、块结构、分支结构、循环结构和I/O结构。 数据说明的形式为:TYPE IS 其中:

15、 局部变量或全局变量; 某个特定关键字(例如,SCALAR,ARRAY,LIST,STRING,STRUTURE等); 说明此处定义的变量在该过程或整个程序中应如何使用。,BeiHuaZLL,ZhangLingling,7.2.4 过程设计语言(PDL),可进行抽象数据类型的定义,例如 : TYPE table_1 IS INSTACE OF symbol_table 而symbol_table在另一处已定义如下: TYPE symbol_table IS STRUCTURE DEFINED,BeiHuaZLL,ZhangLingling,7.2.4 过程设计语言(PDL),该PDL的块结构描述一个过程元素,即一个块内的所有语句将作为一个整体执行,形式为BEGIN END 该PDL的分支结构有if-then-else和case两种形式,分别为IF THEN ELSE ENDIF,BeiHuaZLL,ZhangLingling,7.2.4 过程设计语言(PDL),CASE OF WHEN SELECT WHEN SELECT WHEN SELECT DEFAULT: ENDCASE,BeiHuaZLL,ZhangLingling,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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