[架构之路-183]-《软考-系统分析师》-13-系统设计

目录
第1章 什么是高内聚低耦合
1.1 概念
1.2 目的
1.3 什么时候需要进行高内聚低耦合
1.4 什么系统需要关注高内聚、低耦合
第2章 分类
2.1内聚的分类
2.2耦合的分类
第3章 增加高内聚降低耦合度的方法
3.1增加高内聚
3.2降低耦合度
第1章 什么是高内聚低耦合 1.1 概念
高内聚低耦合,是软件工程中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的内聚性是否高,耦合度是否低 。
内聚是从功能角度来度量模块内部的各子模块之间的相似性的程度,一个好的内聚模块应当恰好做一件事,它描述的是模块内的功能联系;
耦合是从接口角度来度量模块与外界之间的相互连接、相互依赖、相互影响的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据 。
1.2 目的
目的是增加程序模块的可重用性、增强程序的移植性,同时也有助于系统的有序性、
通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低 。
高内聚具备可靠性,可重用性,可读性等优点,模块设计推荐采用高内聚 。
1.3 什么时候需要进行高内聚低耦合
在系统设计的概要设计阶段,对软件进行模块切分时,会使用到该概念 。
需要注意的是,当你在做「分解」这个操作的时候,务必要关注每一次的「分解」是否满足一个最重要的条件:不同分支上的子问题,不能相互依赖,需要各自独立 。
因为一旦包含了依赖关系,子问题和父问题之间就失去了可以被「归并」的意义 。
比如,一个「问题Z」被分解成了两个子问题,「子问题A」和「子问题B」 。但是,解问题A依赖于问题B的答案,解问题B又依赖于问题A的答案 。这不就等于没有分解吗?
架构是指可以预制和重构的软件框架结构 。普遍指通过某种特定平台,而达到完成整体软件的功能 。架构设计是指对软件、硬件、网络、运营、政策等软件设计中的需求和要素进行决策,主要包括体系结构设计和各个层的模块设计 。
架构设计目标有个能够最大化的重用 。
首先,要在架构的设计中灵活地使用各种共享的,特别是开源的框架技术因为共享的架构可以方便开发组分解问题,从而对项目中的功能模块分为需要内部解决和使用已有外部服务两类,避免了重复开发实现 。
其次,尽量使用成熟的框架 。由于服务器端软件系统的开发,涉及的知识、内容、要解决的技术问题很多,在某些方面使用第三方成熟的框架,相当于让别人帮助开发者完成了一些基础性的工作,此时开发者只需要集中精力完成系统业务逻辑的设计和实现 。使软件系统实现可扩展性在技术上灵活地使用各种架构模式和代码设计模式,并且在使用代码设计模式的同时,使用其所提倡的面向接口编程,会对软件系统的可扩展性和可移植性的提高有所帮助 。
希望能够设计出“高内聚、低耦合”的应用系统 。这是架构设计最主要的目标,实现系统的高内聚、低耦合遵从以下原则:
1.4 什么系统需要关注高内聚、低耦合
只有一个大型的软件系统,需要对软件系统进行大量的模块切分时,才会需要到高内聚、低耦合设计思想 。
一个小型的软件系统,是不需要考虑高内聚、低耦合 。
第2章 分类 2.1内聚的分类
内聚:故名思议,表示内部间聚集、关联的程度,那么高内聚就是指要高度的聚集和关联 。
内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展 。