1、What is Legacy Software? Legacy software may be defined informally as “software we dont know what to do with, but its still performing a useful job.“ Legacy software systems are programs that are critical to the operation of companies, but that were developed years ago using early programming langua
2、ges such as Cobol and Fortran. These programs have been maintained for many years by hundreds of programmers, and while many changes have been made to the software, the supporting documentation may not be current. These factors contribute to the staggering cost of maintaining legacy systems. Consequ
3、ently, there is an urgent need to find ways to make these programs more maintainable without disrupting the operation of the company. The Need to Re-engineer The implication is that the preferred solution is to discard the software completely, and start again with a new system. This may not be appro
4、priate in all cases, for example: 1. The software represents years of accumulated experience, which is not represented elsewhere, so discarding the software will also discard this knowledge, however inconveniently it is represented. 2. The manual system that was replaced by the software no longer ex
5、ists, so system analysis must be undertaken on the software itself. 3. The software may actually work well, and its behavior may be well understood. A new replacement system may perform much more badly, at least in the early days. Hence it may be worth recovering some of the good features of the leg
6、acy system. 4. A typical large legacy software system has many users, who typically have exploited undocumented “features“ and side effects in the software. It may not be acceptable to demand that users undertake a substantial rewrite for no discernable benefit. Therefore, it may be important to ret
7、ain the interfaces and exact functionality of the legacy code, both explicit and implicit. 5. Users may prefer an evolutionary rather than a revolutionary approach. 1、之所以称为遗产软件 ,是因为软件系统在使用过程中,经历了几十年的应用积累.同时近年来,应用软件系统的规模越来越大,功能越来越复杂,从而蕴含了大量的领域知识,包括需求设计、商业规则、历史数据,具有可以重复利用的价值2、许多组织都面临着要维护一些老化的软件系统(称为遗产软件)的问题,这些软件系统建构在不同的硬“遗产软件“ 在学术文献中的解释件之上,用一些陈旧的语言来编写,由于长期得不到维护正面临着系统崩溃的危机