《软件设计重构》读书笔记(1)

看过许多关于面向对象软件设计方面的书籍,那些书里面告诉我如何利用面向对象的设计原则和设计模式,去设计出高内聚,低耦合的软件系统。而《软件设计重构》一书却是从另外一个角度出发,通过分类的方式向我展示了什么样的设计是有缺陷的,这种缺陷违反了那些设计原则和模式,如何将这种有缺陷的设计重构成好的软件系统。

质量指标

一个软件系统的设计包括如下的质量指标。

质量指标定义
可理解性设计片段能够被理解的难易程度。简洁的设计能够更容易的被理解。
可修改性需要修改bug时,在不影响其他功能的前提下,对设计片段修改的难易程度。
可扩展性需要增加新功能时,在不影响其他功能的前提下,对设计片段进行扩展的难易程度。
可重用性在其他地方使用设计片段解决相同问题的难易程度。耦合度越底的模块可重用性越好。
可测试性通过测试找出设计片段缺陷的难易程度。
可靠性在正确地实现功能并防止引入运行阶段问题上,设计片段能够提供多大的帮助。

技术债务

软件系统的技术债务指有意或无意的做出错误或非最优的设计决策所导致的债务。技术债务包括:代码债务,设计债务,测试债务,文档债务等。技术债务主要是由于在特定的条件下,由于项目经理,项目架构师和项目开发人员的错误决策所导致的。如果软件系统的技术债务不能即使被偿还,会导致技术债务越积越多,到最后无力偿还而整个软件系统失败,即技术破产。

设计缺陷

设计缺陷是特定的设计结构,这些设计结构违反和基本的设计原则,给设计质量带来了负面的影响。导致软件系统发生设计缺陷的原因大概有如下几种:

1)违反了软件的设计原则。(参见OOD常用的软件设计原则

2)不恰当的使用设计模式

3)未遵循最佳的实践和过程

4)在面向对象设计过程中,使用过程性思维方式。

5)粘滞性,即为完成某项工作而遇到的阻力,需要付出的更多的时间和精力。包括软件粘滞性和环境粘滞性。为了避免这些阻力,开发人员可能会采用权益之计,而不遵守正确的流程。


软件设计就是一组设计决策,设计缺陷就是在设计过程中采用了错误的或不好的设计决策而导致的,进而导致了设计质量不好的软件系统。如果对这些设计缺陷不能及时的发现并改正,就会导致技术债务的产生。技术债务的积累会导致最终的软件项目的失败。


对象模型

设计缺陷的分类基于对象模型的4个主要元素:抽象,封装,模块化和层次结构。

1)抽象:倡导通过精简和概括来简化实体。精简指删除不必要的细节,概括指找出并定义通用的主要特征。

2)封装:通过隐藏抽象的实现细节和隐藏变化来实现关注点分离和信息隐藏。

3)模块化:通过集中和分解等方法创建高内聚低耦合的抽象。

4)层次结构:倡导通过分类,归并,替换和排序等方法一层次方式组织抽象。

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值