软件再工程(Software Re-engineering)是一种对现有软件系统进行修改、更新和重构的过程,旨在提高软件的质量、性能、可维护性和可扩展性。它通常包括以下活动:
逆向工程:
分析已有的程序,以获得比源代码更高级别的抽象表现形式。
设计恢复:
从逆向工程获得的信息中恢复出原始的设计意图。
代码重构:
对现有代码进行优化和重构,以提高代码的可读性和可维护性。
数据重构:
对软件中的数据结构进行优化和重构。
正向工程:
根据重构后的设计重新实现软件。
软件再工程的目标是通过对现有软件系统的深入分析和改造,使其更加符合现代需求,提高软件的可理解性、可维护性、可复用性或演化性。这可能涉及到将旧软件从一种编程语言转换为另一种更流行的语言,或者将软件从单机版升级为网络版等。
软件再工程不仅包括技术层面的改进,还涉及到管理层面的考量,如需求分析、系统设计、编码实现等环节,以确保新软件能够满足当前和未来的需求。