特色:
描述了怎样反向工程一个巨大的系统,从而理解它是如何工作的;以及怎样才能发现它潜在的问题。包含了在面向对象编程中经常会遇到的、某些著名再工程技术所涉及的再工程模式,例如引入多态、提取公共行为、检测重复代码和理解设计。展示了如何为获得灵活和可维护的面向对象系统而建立一种不断再工程的文化。
面对遗留系统,人们经常遇到的情况是:文档丢失或过时了;原有的开发人员不知去向;现有的开发团队对系统知之甚少;系统组件有很多都没有经过单元测试;修改了一处错误,又出现了另一种错误;系统重建时间很长,以至于对系统做任何改进都很困难。然而,遗留软件又是业务工作所必需的,不能简单丢弃,需要继续使用或升级更新。这时,开发人员要如何理解系统,充分降低遗留系统的复杂性,以便能以可接受的代价继续使用和改进原有系统呢?这就是本书要传达给读者的技术。如何对遗留系统进行反向工程以理解系统中的问题,然后对系统进行再工程以满足新的需求。本书就是一本关于这方面内容的指南。再工程模式清晰地界定和解释了如何理解现有大型代码库,如何转换它们以满足新的需求。关键是要认识到,系统的正确设计和组织,并非简单地因为理解了系统的初始需求,而是由于认识到这些需求是不断变化的。