- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习目标及要求 掌握: 软件设计过程中应遵循的基本原理和相关概念; 描绘软件结构的图形工具的运用; 面向数据流设计方法概念;变换分析、事务分析法过程和应用。 理解: 典型的总体设计过程包括的步骤; 设计中的启发式规则; 重点与难点: 重点: 软件设计过程中应遵循的基本原理 面向数据流的设计方法 难点: 变换分析、事务分析法的过程和应用 第四章 总体设计 总体设计过程 2 软件设计原理 (1)模块化: 什么是模块? 模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体的标识符代表它。 过程、函数、子程序和宏等,都可作为模块。 面向对象方法学中的对象是模块,对象内的方法也是模块。 模块化 不能无限分割 模块化原理的作用 模块化使得软件不仅容易设计还容易阅读和理解 模块化使软件容易测试和调试,从而提高软件的可靠性; 模块化能提高软件的可修改性 模块化也有助于软件开发工程的组织管理。 (3)逐步求精 为了能集中精力解决主要问题而推迟对问题细节的考虑。 Miller法则: 一个人在任何时候都只能把注意力集中在(7+-2)知识块上。 逐步求精的例子 (4)信息隐蔽和局部化 信息隐蔽原理:要求一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。 局部化:把一些关系密切的软件元素物理地放的彼此靠近,更有助于实现信息隐蔽。 局部化与信息隐蔽是密切相关的 (5)模块独立 模快独立:每个模块完成一个相对独立的子功能,并且和其他模块之间的关系很简单。 模块独立性的概念是模块化、抽象、信息隐藏和局部化的直接结果。 模块的独立性可以由两个定性标准度量: 耦合 用于衡量不同模块彼此间互相依赖(连接)的紧密程度; 内聚 用于衡量一个模块内部各个元素间彼此结合的紧密程度。 耦合 耦合的六种类型 1.非直接耦合 2.数据耦合 3.特征耦合 4.控制耦合 5.公共耦合 6.内容耦合 1、非直接耦合(NondirectCoupling ) 如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。 2、数据耦合(Data Coupling) 两个模块之间只是通过参数交换信息,而且交换的信息仅仅是数据 3.特征耦合(标记耦合) 当把整个数据结构(如高级语言的数组名,记录名,文件名)作为参数传递而被调用的模块只需要使用其中一部分数据元素时,就出现了特征耦合。 这种情况下,被除数调用的模块可以使用的数据多于它确实需要的数据,这将导致对数据的访问失去控制,从而给计算机犯罪提供了机会。 特征耦合举例 说明: “住户情况”是一个数据结构,包含了姓名,本月用水量,本月用电量信息,图中模块都与此数据结构有关。 “计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。 4、控制耦合(Control Coupling) 如果一个模块通过传送控制信息(如开关、标志、名字等),明显地控制选择另一模块的功能,就是控制耦合。 5、公共耦合(Common Coupling) 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。 公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等 公共耦合存在的问题 ( 1 )软件可理解性降低 ( 2 )诊断错误困难 ( 3 )软件可维护性差 ( 4 )软件可靠性差 6、内容耦合(Content Coupling) 如果发生下列情形,两个模块之间就发生了内容耦合: 一个模块直接访问另一个模块的内部数据; 一个模块不通过正常入口转到另一模块内部; 两个模块有一部分程序代码重迭(只可能出现在汇编语言中); 一个模块有多个入口。 耦合性强弱 七种内聚: 1.偶然内聚 2.逻辑内聚 3.时间内聚 4.过程内聚 5.通信内聚 6.顺序内聚(信息内聚) 7.功能内聚 1、偶然内聚(Coincidental Cohesion) 又称巧合内聚当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为偶然内聚模块。它是内聚程度最低的模块。 2、逻辑内聚(Logical Cohesion) 这种模块把逻辑相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。 例如一个模块读取各种不同类型外设的输入。 3、时间内聚(Classical Cohesion) 时间内聚又称为经典内聚,或瞬时内聚。 这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。 4、过程内聚(Procedural Cohesion) 如果一个模块内部的各个
原创力文档


文档评论(0)