【HITSC】软件构造笔记五

本文探讨了软件可维护性的重要性,包括纠错性、适应性、完善性和预防性维护。模块化编程的目标是实现高内聚低耦合,通过直接映射、少接口、小接口、显式接口和信息隐藏原则来提高设计质量。高内聚意味着模块内部功能紧密相关,低耦合则确保模块间关系松散。SOLID原则是软件设计的基石,包括单一责任原则、开放-封闭原则、里氏替换原则、依赖倒置原则和接口隔离原则,这些原则有助于创建更可维护、可扩展的代码结构。
摘要由CSDN通过智能技术生成

目录

5.1 可维护性的度量与构造原则

1、可维护性:

2、可维护性关注的问题:

3、模块化编程:

4、模块化设计的五个原则:

5、高内聚、低耦合:

6、SOLID原则:


5.1 可维护性的度量与构造原则

1、可维护性:

  • 指可以扩展,可以改变
  • 又称可扩展性,灵活性,可适应性,可管理性,支持性等
  • 类型:纠错性维护(25%)、适应性维护(21%)、完善性维护(50%)、预防性维护(4%)

2、可维护性关注的问题:

  • 设计结构的简洁性
  • 模块之间的离散性、聚合性
  • 继承与委派
  • 代码的圈/环复杂度
  • 重复代码的问题

3、模块化编程:

  • 目的:高内聚低耦合;分离关注点 (通过delegation等机制分离功能);信息隐藏 (避免表示泄露、静态工厂方法等等)

评估标准:

  • 可分解性(Decomposability):

     

    • 将问题分解为各个可独立解决的子问题
    • 目标:使模块之间的依赖关系显示化和最小化
  • 可组合性(Composability):
    • 可容易地将模块组合起来形成新的系统
    • 目标:使模块可在不同的环境下复用
  • 可理解性(Understandability):
    • 每个 子模块都可被系统设计者容易地理解
  • 可持续性(Continuity):发生变化时受影响范围最小
    • 模块提供的所有服务应该通过统一标识提供
  • 出现异常之后的保护:出现异常后受影响范围最小

4、模块化设计的五个原则

  • Direct Mapping (直接映射)
  • Few Interfaces (尽可能少的接口)
  • Small Interfaces (尽可能小的接口)
  • Explicit Interfaces (显式接口)
  • Information Hiding (信息隐藏)

5、高内聚、低耦合:

  • 高内聚:模块内部的功能之间的联系要紧密,无关的功能之间要分离成不同的模块

  • 低耦合:模块之间的关系要越松散越好

6、SOLID原则:

  • (SRP) The Single Responsibility Principle --------- 单一责任原则
  • (OCP) The Open-Closed Principle ------------------- 开放-封闭原则
  • (LSP) The Liskov Substitution PrincipleLiskov ---- 替换原则
  • (DIP) The Dependency Inversion Principle -------- 依赖转置原则
  • (ISP) The Interface Segregation Principle ---------- 接口隔离原则
  1. 2.单一责任原则(SRP):​​​​
    1. ADT中不应该有多于一个原因让其发生变化,否则就拆分开
    2. 责任:变化的原因
    3. 反例:

一个类,一个责任

2.开放-封闭原则(OCP):

  • 对扩展性的开放:
    • 模块的 行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化
  • 对修改的封闭:
    • 模块自身的代码是不应被修改的
    • 扩展模块行为的一般途径是修改模块的内部实现
    • 如果一个模块不能被修改,那么它通常被认为是具有固定的行为
  • 关键的解决方案:抽象技术
  •  

对扩展性的开放,对修改的封闭

 3.替换原则(LSP):

派生类必须能够通过其基类的接口使用,客户端无需了解二者之间的差异

子类型必须能够替换其基类型

4.依赖转置原则(DIP)

  • 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
  • 抽象不应该依赖于实现细节,实现细节应该依赖于抽象

具体的模块应该依赖于抽象的模块,但抽象的模块不应依赖于具体的模块

5.接口隔离原则(ISP):

避免接口污染,避免胖接口

大接口分解为多个小的接口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值