- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构化设计原理 模块独立 启发规则 表示软件结构的图形工具 4.1 结构化设计概述 任务:回答How to do? 阶段划分:概要设计、详细设计 主要内容: 体系结构设计 数据设计 接口设计 过程设计 结构化设计模型与结构化分析模型的关系: 软件设计必须依据对软件的需求分析来进行的,而结构化分析的结果为结构化设计提供了最基本的输入信息。 软件开发阶段的信息流 4.2 软件设计的概念和原理 模块化 抽象 逐步求精 信息隐藏 1. 模块化 模块(Modular): 独立命名,可独立访问的具有一定功能的一段程序。 模块化设计(Modular Design): 按适当的原则把软件划分为一个个较小的、相关而又相对独立的模块。每个模块可独立开发、测试,最后组装成完整的软件。 在结构化方法中,过程、函数和子程序等都可作为模块;在面向对象方法中,对象是模块,对象内的方法也是模块。 模块分解并不是越小越好。 理想模块 理想模块的特点: 只解决一个问题。 功能都应该明确,使人容易理解。 理想模块之间的连接关系简单,具有独立性。 由理想模块构成的系统,容易使人理解,易于编程,易于测试,易于修改和维护。 对用户来说,其感兴趣的是模块的功能,而不必去理解模块内部的结构和原理。 模块分解(Decomposition) 软件工程基本定理 有关模块化 模块化考虑因素: 模块数目 怎样定义一个给定大小的模块 评价模块系统设计方法的标准: 可分解性、可组装性、可理解性、连续性、保护性 模块化的优点: 易阅读和理解,可靠性,可修改性 2. 抽象(Abstraction) 抽象即提取出本质而暂不考虑细节。是认识复杂现象过程中使用的思维工具。 在进行软件设计时,抽象与逐步求精、模块化密切相关,可提高软件的可理解性。 高层次抽象 使用问题环境的语言,以概括的方式叙述问题的解决。 较低层次抽象 更过程化的方法 面向问题+面向实现术语结合 最低层次抽象 直接实现的方式叙述问题的解法。 3. 逐步求精 细化 为了集中精力解决主要问题而尽量推迟对问题细节的考虑。 软件工程过程的每一步都是对软件解法的抽象层次的一次精化。 求精是帮助设计者在设计过程中提示出低层细节。 4. 信息隐藏(Information Hiding) 又称数据封装(Data Encapculation) 指在设计和确定模块时,使得一个模块内包含的信息(过程和数据),对于不需要这些信息的其他模块来说,是不可访问的。 为软件系统的修改、测试及以后的维护都带来好处 目的 为了提高模块的独立性。 4.3 模块独立性(Module Independence) 模块独立性: 是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块接口是简单的。 模块完成独立的功能 符合信息隐蔽和信息局部化原理 模块间关连和依赖程度尽量小 两个定性的度量标准: 耦合性:模块之间的依赖程度。取决于接口的复杂性、调用的方式及传递的信息。 内聚性:模块内部各成分之间的关联程度。 1. 耦合(Coupling) 耦合性: 是程序结构中各个模块之间相互关联的度量。 取决于各个模块之间接口的复杂程序、调用模块的方式以及哪些信息通过接口。 耦合性越高,模块独立性越弱。 非直接耦合(Nondirect Coupling) 非直接耦合: 模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。 这种耦合的模块独立性最强。 例如下图中,模块1和2是非直接耦合 数据耦合(Data Coupling) 数据耦合: 在两个模块间往返传递的只有数据(或变量或记录或文件),这种耦合称数据耦合。 在模块间只有数据传输,模块接口简单。 在不可避免的耦合中是耦合力最低的,也是较理想的耦合。 如:编程语言中的传值函数。 标记耦合(Stamp Coupling) 标记耦合(又称特征耦合): 指两个模块之间传递的是数据结构(如记录、数组等)。其实传递的是这个数据结构的地址。 两个模块必须清楚这些数据结构,并按要求对其进行操作,这样就降低了可理解性。 如: 住户详情中包含了“本月用电量”和“本月用水量” 将标记耦合改为数据耦合 控制耦合(Control Coupling) 控制耦合: 如果一个模块通过传送控制信息(开发、标志、名字等),明显地控制选择另一模块的功能就是控制耦合。 病态耦合 控制耦合举例 去除模块间控制耦合的方法 去除模块间控制耦合的方法: 将被调用模块内的判定上移到调用模块中进行; 被调用模块分解成若干单一功能模块。 将控制耦合改为数据耦合又例 外部耦合 外部耦合: 当模块受外部环境的约束时就会发生外部耦合。 例如:I/O模块与特定设备,格式与通信协议相关联。 外部耦合必不可少,但这种模块数目应尽量少。 公共耦
您可能关注的文档
最近下载
- 工程施工样板引路制度.docx VIP
- 小天鹅TG70-1411LPD(S)洗衣机使用说明书.pdf
- 用电安全培训资料幻灯片详解演示文稿.ppt VIP
- 小学心理健康教育主题班会 课件(共23张PPT).pptx VIP
- 心理学研究方法:从选题到论文发表课件-第5章 撰写研究论文.pptx VIP
- GB-T 7217-2013 滚动轴承 凸缘外圈向心球轴承 凸缘尺寸.pdf
- 北师大版高中英语选择性必修一 Unit1 Relationships 第3课时.docx VIP
- 重庆市住宅建筑群电信用户驻地网建设规范DBJ50-056-2011.pdf
- 心理学研究方法:从选题到论文发表课件-第4章 完成研究过程.pptx VIP
- 开启窗防脱落安装技术要求、外窗安装构造节点示意.pdf VIP
文档评论(0)