Chinaunix首页 | 论坛 | 博客
  • 博客访问: 502155
  • 博文数量: 78
  • 博客积分: 1271
  • 博客等级: 中尉
  • 技术积分: 1108
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-14 14:39
文章分类

全部博文(78)

文章存档

2015年(2)

2014年(6)

2013年(15)

2012年(18)

2011年(37)

分类: Java

2011-10-16 20:17:23

   软件的可维护性,可复用性对于系统设计而言是一个核心问题,我们都希望能够做出一个既易于维护,复用率又较高的系统。
   导致一个软件设计的可维护性较低,Robert C.Martin指出,有四个原因:
   (1)过于僵硬(Rigidity):很难在一个软件系统中加入一个新的功能,按个人的看法,因为使用了类似SSH的底层框架,加上约定优于配置的模式在软件结构上的应用,这种情况应该是缓解不少;

   (2)过于脆弱(Fragility):对一个地方的修改,会出现很多故障点。这种情况时有发生,例如之前所做的人力资源系统,现在通过测试用例,持续集成手段希望降低这种情况,但这个也的确和设计有关。

   (3)复用率低(Immobility):一段代码被重复粘贴到多个地方,更不要说一个模块在不同项目中重用,高层次的角度,当然希望可以实现模块级的重用,但最起码应做到方法级的代码重用,这个可以借助代码重构。

   (4)黏度过高(Viscosity):一个改动可以按原设计意图进行,但也可以以破坏原意图去进行,这种情况时有发生,因为我们都不想去理解其它人写的东西,导致破坏越来越严重。约定优于配置在结构上能解决一些问题,但代码层次上,在系统维护时,就必需去深入代码才可以降低黏度。

   根据Peter Coad提出,一个好的系统设计应该包括以下三个性质:
   (1)可扩展性:新的性能很容易加入到,基本的手段,当然是定义接口,抽象类;
   (2)灵活性:允许代码修改比较平稳,这点比较依赖设计,单元测试可以为修改提供一定保障;
   (3)可插入性:可以容易地将一个类抽出去,同时将另一个有同样接口的类加入来;

阅读(3677) | 评论(0) | 转发(0) |
0

上一篇:Ant通配符

下一篇:软件的可复用性

给主人留下些什么吧!~~