软件构造 ,第四章~第六章

第四章:面向可理解的软件构造

四种注释类型:
方法前,使用/**……*/标明@params
在各种成员变量后,在构造函数前使用//
在测试类的顶部记录/*……*/
在相应的测试函数记录,覆盖测试部分//

第五章:面向复用的软件构造方法

复用:开发出可复用的软件
利:降低重复开发成本,经过充分测试可靠,标准化
弊:性能差,针对普适场景没有针对性
(measure)复用性(reusability)
高复用性软件的特点:

  1. 小,简单
  2. 与标准兼容
  3. 灵活可变
  4. 可拓展
  5. 泛型,参数化
  6. 模块化
  7. 变化的局部性
  8. 稳定
  9. 丰富的文档

Liskov替换原则(LSP):

  1. 子类型可以无条件替换父类型
  2. 子类型需要实现抽象类型种的所有未实现方法
  3. 子类型中重写的方法必须有相同或子类型的返回值
  4. 子类型中重写的方法必须使用同样类型的参数
  5. 子类型中重写的方法不能抛出额外的异常

delegation和继承的区别
15. delegeation对子类只需要父亲一小部分代码(委派实现)
16. 委派发生在Object level,而继承发生在class level

在这里插入图片描述

第六章:面向可维护性的软件构造方法

软件维护:修复错误、改善性能
25%纠错性 21%适应性 50%完善性 4%预防性
可维护性的衡量指标

  1. 圈复杂度(cyclomatic Complexity,cc)
  2. 代码行数(Lines of Code ,Loc)
  3. Halstead Volume(根据操作符个数生成综合指标)
  4. 可维护性指数(Maintainability Index,MI)
    涉及到123和COM(comments of module)
  5. 继承的层次数
  6. 类之间的耦合度
  7. 单元测试覆盖率

模块化编程 :高内聚,低耦合,分离关注点,信息隐藏
5大标准:可分解性,可组合性,可理解性,可持续性,出现异常之后的保护
耦合度:衡量模块间的依赖性,耦合度的高低取决于 ① 模块间的接口数量②每个接口的复杂度(由类之间交流决定)
聚合度:衡量模块内部函数的相关程度,高聚合度意味着模块内的元素朝同一个目标努力
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值