gb-0526

 

面向可维护性的构造技术学习概要(上)

Outline:

1.软件维护和演化;

2.维护性中的准则;

3.模块化设计及其准则;

4.OO设计准则:SOLID;

5.基于语法的构建;

2022-06-01 20:18:59

 



1.软件维护和演化

软件维护:修复错误、改善性能。软件超过90%的成本来自维护阶段。

软件维护性的几种类型:纠错性、适应性、完善性、预防性。其中纠错性所占比例较低的话,代表程序员代码编写水平较高。

软件演化:对软件进行持续的更新。

面向维护性的软件构造技巧:模块化、OO设计原则(SOLID、GRASP)、OO设计模式、基于状态的构造技术、表驱动的构造技术、基于语法的构造技术。

 


2.维护性中的准则

一些关于维护的名词:可维护性、可扩展性、灵活性、可适应性、可管理性、支持性。

一些常见的用于度量可维护性的准则:圈/环复杂度(CC)、代码行数、可维护性指数(MI)、继承的层次数、类之间的耦合度、单元测试的覆盖度。

 


 

3.模块化设计及其准则

基本的要求:高内聚、低耦合,分离关注点,信息隐藏。

评价模块化的五个标准:可分解性、可组合性、可理解性、可持续性、出现异常之后的保护。

  1. 可分解性:使模块之间的依赖关 系显式化和最小化。

     

  2. 可组合性:使模块可在不同的环境下复用。
  3. 可理解性:每个子模块都可被系统设计者容易的理解。
  4. 可持续性:规格说明小的变化将只影响一小部分模块,而不会影响整个体系结构。
  5. 出现异常之后的保护:运行时的不正常将局限于小范围模块内。

模块化设计的五个规则:直接映射、尽可能少的接口、尽可能小的接口、显示接口、信息隐藏。

  1. 直接映射:模块的结构与现实世界中问题领域的结构保持一致。对持续性和可分解性产生影响。
  2. 尽可能少的接口:模块应尽可能少的与其他模块通讯。对可持续性、保护性、可理解性、可组合性产生影响。
  3. 尽可能小的接口:如果两个模块通讯,那么它们应交换尽可能 少的信息。对可持续”和保护性产生影响。
  4. 显示接口:当A与B通讯时,应明显的发生在A与B的接口之间。对可分解性、可组合性、可持续性、 可理解性产生影响。
  5. 信息隐藏:经常可能发生变化的设计决策应 尽可能隐藏在抽象接口后面。对可持续性产生影响。

内聚性:模块中各个函数和类之间的相关性。

耦合性:模块间的接口数目,每个接口的复杂度。

最好的设计是高内聚并且低耦合:

 

 内聚性和耦合性往往也有一定的关系:当耦合性很高时,内聚性会很低,反之亦然。

 

 

 

 

posted on   GloamingBlue  阅读(52)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

统计

点击右上角即可分享
微信分享提示