4.3 A General Model For Software Reengineering - Coggle Diagram
4.3 A General Model For Software Reengineering
accepts as input the existing code of a system and produces the code of the renovated system.
may be as straightforward as translating with a tool the source code from the given language to source code in another language.
may be very complex
Reengineering = Reverse engineering + Δ + Forward engineering.
definitions of reengineering
The definition by Chikofsky and Cross II: Software reengineering is the analysis and alteration of an operational system to represent it in a new form and to obtain a new implementation from the new form. Here, a new form means a representation at a higher level of abstraction.
The definition by Byrne: Reengineering of a software system is a process for creating a new software from an existing software so that the new system is better than the original system in some ways.
The definition by Arnold: Reengineering of a software system is an activity that: (i) improves the comprehension of the software system, or (ii) raises the quality levels of the software, namely, performance, reusability, and maintainability.
Eric J. Byrne suggests that reengineering is a sequence of three activities
reverse engineering, re-design, and forward engineering
strongly founded in three principles, namely, abstraction, alteration, and refinement.
horseshoe - developed by Kazman et al. to describe a three-step architectural reengineering process
segments / three steps of the reengineering process.
4.3.1 Types of Change
4.3.2 Software Reengineering Strategies
4.3.3 Reengineering Variations