2006 年 2 月 6 日 星期一 16:00-17:30
第三章 软件的可维护性与复用
l 为了让软件更好地被维护和重用à面向对象技术à为了更好的实现面向对像技术à设计原则à设计模式
l 文献WR[00]指出,西方国家一个软件项目在生命周期内,花在维护上的钱,是花在原始开发上的钱的两倍.(调整自己和客户的思维,让客户接受并愿意接受)
l 软件的维护的正确理解(与传统思维不同)
n 一个家用电器比如TV,买回来之后基本无须维护.而且维护内容仅是修理
n 但是软件需要不断维护,因为需求在不断变更.并且维护是不断往里面加入新的功能.好比把黑白电视改造成彩色电视,在不断升级.
n 因此在软件原始设计的时候应考虑到后期的的可维护性。能够让后期的维护容易、准确、经济、安全。
n 应该认识到:软件维护就是软件的再生
l 软件系统的需求总是在不断变化的,这一定会导致系统最后烂掉吗?一个系统的设计不能为以后的变化预留出空间吗?
n 真正的原因:
u 过于僵硬(可扩展性)
u 过于脆弱(灵活性)
u 复用率低
u 黏度过高(可插入性)
n 设计目标[COAD99]Peter Coad
u 可扩展性
u 灵活性
u 可插入性
l 软件的复用(reuse)
n 好处:a.较高在生产率 b.较高的软件质量 c.较好的维护性
n 面向对像设计的复用(抽象、继承、封装、多态等语言特性)
n 业务逻辑的复用(抽象层次是稳定的)
n 提高可维护性和复用性的设计原则