软件构造 总结6

软件构造第六章
第六章主要有三讲内容
1.第一节介绍了什么是软件维护,以及可维护性的度量和可维护性的设计原则。
2.第二节介绍了可维护性的设计模式。
3.第三节介绍了oo设计模式以外的其他能够提升软件可维护性的构造技术:基于状态、表驱动、基于语法的构造技术。
本文主要讲第一节

一 可维护性的范畴
1.可维护性
软件系统或者组件可以轻松的修改以纠正错误,性能和属性或适应变化的环境。
2.可拓展性
软件设计、实现将未来的发展考虑在内,并被视为系统扩展能力的系统测量和实现扩展所需的工作量。
3.灵活性
软件根据用户需求,外部技术和社会环境等容易改变的能力。
4.可适应性
交互式系统(自适应系统)能够根据获取的有关用户及其环境的信息,使其行为适应个人用户的能力。
5.可管理性
能够有效和轻松地监控和维护软件系统,以保持系统的正常运行,安全并平稳运行。
二 一些评估可维护性的常用标准
1.圈复杂性
衡量代码的结构复杂性;分支(if-else,switch)越多,控制流程越复杂,越难维护,圈复杂度越高。
2.代码行数
指示代码大致的行数,行数太多,表明该类或方法做了太多工作,应该将不同的工作分离到多个类中实现。
3.可维护性指数
计算0到100之间的索引值,表示维护代码的相对容易性,越高意味着更好的可维护性。
4.继承的层数
通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及属性修饰来测量对唯一类的耦合。良好的软件设计决定了类型和方法应该具有高内聚性和低耦合性(可以理解为是否相互联系紧密,相互影响,如果一个类与其他类是基本相互独立的,不相互影响,有较少的依赖关系,则具有低耦合性。
5.测试覆盖度
表示代码库的哪些部分被自动化单元测试覆盖。
三 实现模块化的五个标准
1.可分解性
将问题分解为各个可独立解决的子问题,将问题分解为各个可独立解决的子问题。
2.可组合性
可以容易的将模块组合起来形成新的系统,使得模块可在不同环境下复用。
3.可理解性
每个子模块都可被设计者容易的理解。
4.可持续性
小的变化将只影响一小部分模块,而不会影响整个体系结构,例如:宏常量的使用;统一接入模式。
5.出现异常之后的保护
运行时的不正常将局限于小范围模块内,主要在源处进行验证输入。
四 五个模块化设计的原则
1.直接映射
模块的结构与需要解决的实际问题领域的结构保持一致(对持续性和可分解性有影响)。
2.尽可能少的接口
模块尽可能少的与其他模块通讯(对可持续性、保护性、可理解性、可组合性产生影响)。
3.尽可能小的接口
如果两个模块通讯,那么它们应交换尽可能少的信息。
4.显示接口
当A与B通讯时,应明显的发生在A与B的接口之间(不要直接使用类,通过接口调用,eg. superInterface a = new subclass(), 在每个subclass变量声明为superInterface类型对象;对可分解性、可组合性、可持续性、 可理解性产生影响)。
5.信息隐藏
经常可能发生变化的设计决策应尽可能隐藏在抽象接口后面。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值