关于软件设计臭味的一些解释
2012-02-28 01:38 宅的一米 阅读(338) 评论(0) 编辑 收藏 举报
1. 僵化性
a) 定义:僵化性是指难以对软件进行修改,即使是简单的改动.
b) 表现:如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计是僵化的.必须要改动的模块越多,设计就越僵化
2. 脆弱性
a) 定义:脆弱性是指,在进行一个改动时,可能会导致程序的许多地方出现问题
b) 表现:出现新问题的地方与改动的地方没有概念上的关联,要修正这些问题又会引起其他问题
3. 顽固性
a) 定义:设计中包含了对其他系统有用的部分,但是要把这些部分从系统中分离出来所需要的努力和风险是巨大的.
b) 表现:
4. 粘滞性
a) 定义:保持原有设计的修改比拼凑的修改更难应对时,就表明设计具有高的粘滞性
b) 表现:当面临一个修改时,开发人员尝尝发现会有多种改动的办法,其中一些方法会保持设计,而另一些会破坏设计.当保持原有设计的修改比拼凑的修改更难应对时,就表明设计具有高的粘滞性
5. 不必要的复杂性
a) 定义:如果软件中包含了当前没有用的组成部分,它就含有不必要的复杂性
b) 表现:为过多的可能性做准备,致使设计中含有绝不会用到的结构,从而变得混乱,一些准备也许会带来回报,但更多的不会
6. 不必要的重复
a) 定义:到处复制相似的代码
b) 表现:当同样的代码以稍微不同的形式一再出现时,开发人员忽视抽象,反而以拷贝复和简单修改的方式完成需要的功能
7. 晦涩性
a) 定义:模块难以理解
b) 表现:
一个模块在开发时,代码对于开发人员来说看起来是清晰的.但是经过一段时间之后,连最初的开发人员也不能理解为什么会编写这样的代码,说明模块有很强的晦涩性.