收藏 分享(赏)

软件工程第7章.ppt

上传人:Facebook 文档编号:2699118 上传时间:2018-09-25 格式:PPT 页数:48 大小:390.50KB
下载 相关 举报
软件工程第7章.ppt_第1页
第1页 / 共48页
软件工程第7章.ppt_第2页
第2页 / 共48页
软件工程第7章.ppt_第3页
第3页 / 共48页
软件工程第7章.ppt_第4页
第4页 / 共48页
软件工程第7章.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、北华大学计算机学院,软件工程,软 件 工 程,第 7 章 软 件 设 计 基 础,北华大学计算机学院,软件工程,8.1.1 软件设计过程,Text,Text,北华大学计算机学院,软件工程,8.1.2 抽象与逐步求精,北华大学计算机学院,软件工程,逐步求精,抽 象,求精,北华大学计算机学院,软件工程,信息隐藏,模块内所含信息对那些不需要这些信息的模块不可访问,每个模块只完成一个相对独立的特定功能。,模块独立性(Module independence) 好设计的关键:每个模块完成一个相对独立的子功能, 并且与其它模块间的接口简单。,独立性的度量:耦合(Coupling)&内聚(Cohesion),

2、北华大学计算机学院,软件工程,低级内聚度(3个),北华大学计算机学院,软件工程,中级内聚度(2个),北华大学计算机学院,软件工程,高级级内聚度(2个),北华大学计算机学院,软件工程,七种“内聚模块”的性能比较,北华大学计算机学院,软件工程,模块间的耦合,耦合:表示一个软件结构内各个模块之间的互连程度,尽量选用松散耦合的系统,1.非直接耦合: 两个模块中任一个,都不依赖于对方能独立工作,1.非直接耦合 - 2.数据耦合,2.数据耦合 两个模块间通过参数交换信息, 而信息仅限于数据,北华大学计算机学院,软件工程,3.特征耦合,住户详情数据结构中包括:“本月用水量”、“本月用电量”。 “特征耦合”图

3、可改进“数据耦合”图,如果两个模块都与同一个数据结构有关,则为特征耦合。,北华大学计算机学院,软件工程,4.当模块A向模块B所传递的信息控制了B的内部逻辑。,4.控制耦合-5.外部耦合,5.若干模块均与同一个外部环境关联。 如:I/O、格式、通信协议,北华大学计算机学院,软件工程,6.公共耦合-7.内容耦合(病态耦合)6.如果两个模块都和同一个公共数据域有关,7.一个模块和另一个模块的内部属性有关(运行程序和内部数据) 。如:一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块。,模块A中 TRC:模块B中 GO TO TRC,北华大学计算机学院,软件工程,设计模块时,应以

4、数据耦合为主,辅以特征耦合与控制耦合, 消除公共耦合和内容耦合。,七种“耦合模块”的性能比较,北华大学计算机学院,软件工程,耦合、内聚与模块独立性的关系,北华大学计算机学院,软件工程,7.1.4 软件总体结构设计(software architecture),目标:模块化的程序结构、明确各模块之间的控制 关系、说明程序的输入输出数据流、进一步协调程 序结构和数据结构。,北华大学计算机学院,软件工程,结构设计原则,2. 模块规模适中: 过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。,提高模块独立性争取低耦合、高内聚(增加内聚 减少耦合),北华大学计算机学院,软件工程, 深度

5、= 分层的层数。过大表示分工过细。 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。,3. 选择适当的深度、宽度、扇出和扇入,北华大学计算机学院,软件工程, 扇出 = 一个模块直接调用控制的模块数。 3 fan-out 9, 扇入 = 直接调用该模块的模块数 在不破坏独立性的前提下,fan-in 大的比较好。,北华大学计算机学院,软件工程,4、作用域在控制域内 控制域,M的控制域为 M,A,B,C, 作用域:M中的一个判定所影响的模块。 例如:,上例中A的作用超出了控制域。改进方法之一,可以把A中的 if 移到M中;方法之二,可以把C移到A下面。,北华大学计算机学院,软件工程,5、降低

6、接口的复杂程度:接口复杂可能表明模块的独立性差。6、单出单入,避免内容耦合。7、模块功能可预测 相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。,北华大学计算机学院,软件工程,7.2 软件过程设计技术和工具 7.2.1 结构化程序设计,结构化设计图形表示法,北华大学计算机学院,软件工程,7.2.2 图形表示法,1流程图(也称为程序框图)是最常用的一种表示法, “顺序”、“分支”和“循环”三个基本控制构件用流程图表达的形式如图8-2-1所示。,F,第二个任务,顺序结构,then部分,else部分,dowhile循环,第一个任务,T,分支条件,Ifthenelse结

7、构,循环条件,循环体,T,F,图8-2-1 流程图构件,北华大学计算机学院,软件工程,7.2.2 图形表示法,2盒图也称为N-S图或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。,第一个任务 第二个任务 第三个任务,顺序结构,else 部分,then 部分,条件,F,T,if-then-else结构,do-while 部分,循环条件,循环结构,图8-2-3 盒图的构件,北华大学计算机学院,软件工程,7.2.3 判定表与判定树,判定表由四部分组成:,用于:条件复杂,根据这些条件的组合选择动作,判定表的每一列可解释为一条处理规则,北华大学计算机学院,软件工程,7

8、.2.3 判定表与判定树,【例7.2】问题处理描述:耗电记费系统可以采用固定价格收费、浮动价格收费和其他方式收费三种方式。若采用固定价格方式收费,对每月耗电100kWh以下的用户只征收最低标准费,超过100kWh的用户按价格表A收费;若采用浮动价格方式收费,则每月耗电100kWh以下的用户按价格A收费,超过100kWh的用户按价格B收费。,北华大学计算机学院,软件工程,表71 判定表,条件,动作,北华大学计算机学院,软件工程,【例7.2】判定树,耗电100kWh 收取最低标准费固定方式耗电100kWh 按价格表A收费耗电100kWh 按价格表A收费 耗电收费 浮动方式耗电100kWh 按价格表

9、B收费其他方式 其他处理图8-2-5 用判定树表示计算耗电收费的算法,北华大学计算机学院,软件工程,7.2.3 判定表与判定树,判定树的优点:形式简单,直观明了,易于掌握。 判定树的缺点: 存在着数据冗余的问题,相同的数据元素往往要重复多次,而且越接近树的叶端重复的次数越多。判定树要求对条件进行层次划分,若条件所处层次不对,可能会导致增加判定树的复杂性。,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),PDL(Procedure Design Language)也称为结构英语或伪码,是所有正文形式的过程设计工具的统称。 PDL经常表现为一种“混杂”的形式,允许自然语言(如英语

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

11、结构。 数据说明的形式为:TYPE IS 其中: 局部变量或全局变量; 某个特定关键字(例如,SCALAR,ARRAY,LIST,STRING,STRUTURE等); 说明此处定义的变量在该过程或整个程序中应如何使用。,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),可进行抽象数据类型的定义,例如 : TYPE table_1 IS INSTACE OF symbol_table 而symbol_table在另一处已定义如下: TYPE symbol_table IS STRUCTURE DEFINED,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),该PD

12、L的块结构描述一个过程元素,即一个块内的所有语句将作为一个整体执行,形式为BEGIN END 该PDL的分支结构有if-then-else和case两种形式,分别为IF THEN ELSE ENDIF,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),CASE OF WHEN SELECT WHEN SELECT WHEN SELECT DEFAULT: ENDCASE,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),循环结构包括三类,表达形式分别为 : DO WHILE ENDWHILEREPEAT UNTIL ENDREPEATDOFOR = ENDFOR

13、,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),此PDL还提供了NEXT和EXIT两种语句:EXIT语句,退出本层循环;NEXT语句强迫本次循环结束,新一轮循环开始。 在该PDL中,子程序说明为:PROCEDURE INTERFACE END其中属性表指明该子程序的引用特性(比如,是INTERNAL还是EXTERNAL模式)和其他依赖于实现(即程序设计语言)的特性。,北华大学计算机学院,软件工程,7.2.4 过程设计语言(PDL),输入/输出说明部分常用的形式有READ/WRITE TO 或ASK ANSWER 后一种形式多用于人机交互部分的设计。,北华大学计算机学院,软件

14、工程,7.3 设计规格说明与评审,软件设计阶段的输出主要是设计规格说明书: 第一节:描述与设计活动有关的各个方面,该节中许多信息取自系统规格说明书和系统定义阶段产生的其他文档。 第二节:具体指明引用信息的出处。 第三节:设计描述,是概要设计的产物,此时设计由信息驱动,即软件总体结构主要受数据流程、数据结构的影响,需求分析时产生的DFD或其他某种形式的数据表示将在这一节中进一步精化,用于确定软件结构。当信息流程确定后,界面亦可作为整个软件的一部分进行描述。,北华大学计算机学院,软件工程,7.3 设计规格说明与评审,第四、五两节是概要设计向详细设计过渡后形成的。 第四节:模块指软件中可单独编址的部

15、件,如函数和过程,最初用自然语言描述它们的功能,随后采用某种过程设计工具将这些自然语言描述转换为结构化描述。 第五节:主要描述数据组织结构,包括辅存的文件结构、全局数据(例如FORTRAN公共区)的赋值以及这些文件与全局数据的交叉访问关系。,北华大学计算机学院,软件工程,7.3 设计规格说明与评审,第六节:是与需求规格说明书的交叉访问表,根据交叉访问表可断定设计是否满足所有需求,这对于完成某个具体需求的模块来说十分重要。 第七节:是测试的初步计划。一旦软件结构和模块间界面确定下来之后,即可制定模块单元测试和联调的计划。某些场合,要求同时开发测试规格说明书与设计规格说明书,此时第七节可从设计规格

16、说明书中删去。 第八节:将逐条说明各种限制和造成的影响。 第九、十两节:包括若干辅助数据,如从其他文档中节选的算法描述、候选的过程、表格化数据和其他相关信息,这些信息是对设计的一种特殊注释 最后开发一基本操作规格说明或安装手册作为附录。,北华大学计算机学院,软件工程,设计规格说明书示例,.作用范围A. 系统目标B. 硬件、软件和人机界面C. 主要的系统功能D. 外部数据库定义E. 主要的设计约束和限制 .文档A. 现有的软件文档B. 系统文档C. 卖主(硬件的和软件的)的有关文档D. 技术参考书,北华大学计算机学院,软件工程,设计规格说明书示例,.设计描述A.数据描述1.数据流复审2.数据结构

17、复审B. 导出的程序结构C. 结构之间的界面,北华大学计算机学院,软件工程,设计规格说明书示例,. 模块描述;针对每个模块给出A. 处理过程陈述B. 接口描述C. 设计语言(或其他形式)描述D. 引用的模块E. 数据组织F. 注释,北华大学计算机学院,软件工程,设计规格说明书示例,.文件结构及全局数据A. 外部文件结构1.逻辑结构2.逻辑记录描述3.访问方式B. 全局数据C. 文件与数据的交叉访问表 .需求交叉访问矩阵,北华大学计算机学院,软件工程,设计规格说明书示例,. 测试准备A. 测试指南B. 集成策略C. 特殊考虑 . 装配A. 特殊的程序覆盖要求B. 转换方面的考虑 . 特别注释 .

18、 附录,北华大学计算机学院,软件工程,设计规格说明的评审,为了确保文档的质量,还必须对设计文档进行评审。评审的目的在于及早发现设计中的缺陷和错误。 评审包括软件总体结构、数据结构、结构之间的界面以及模块过程细节四个方面,重点考虑:软件结构能否满足需求?结构的形态是否合理?层次是否清晰?模块的划分是否遵循模块化和信息隐蔽的思想?系统的人机界面、各模块的接口以及出错处理是否恰当?模块的设计能否满足功能与性能要求?选择的算法与数据结构是否合理,能否适应编程语言,等等。,北华大学计算机学院,软件工程,设计规格说明的评审,评审分正式与非正式的两种方式。 正式评审除软件开发人员外,还邀请用户代表和领域专家参加,通常采用答辩形式,与会者有备而来(即提前审阅了文档),设计人员在对设计方案详细说明后,答复与会者的问题并记下各种重要的评审意见。 非正式评审多少有些同行切磋的性质,不拘时间,不拘形式。 需求阶段使用的“走查”法同样适用于设计评审,此时由一名设计人员带领到会的同事逐行审阅文档,记录发现的问题。 评审应对事不对人,防止把评审变为质询或辩论。最后,对评审中提出的问题应详细记录。评审结束前,还应对本次评审做出结论。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报