Please enable JavaScript.
Coggle requires JavaScript to display documents.
4.2 Reengineering Concepts - Coggle Diagram
4.2 Reengineering Concepts
Key concepts in software development
Abstraction
enables software maintenance personnel
Reduce the complexity of understanding a system
focusing
more significant information about the system
Hiding
the irrelevant details at the moment
Principle
The level of abstraction of the representation of a system can be gradually increased by successively replacing the details with abstract information
one can produce a view that focuses on selected system characteristics by hiding information about other characteristics.
Refinement
reverse of abstraction.
Principle
The level of abstraction of the representation of the system is gradually decreased by successively replacing some aspects of the system with more details.
levels of abstraction and refinement
Conceptual,
Requirements,
Design
Implementation.
forward engineering
A new software is created by going downward from the top, highest level of abstraction to the bottom, lowest level
follows a sequence of activities
formulating concepts about the system
to identifying requirements
to designing the system
to implementing the design.
Reverse engineering
the upward movement through the layers of abstractions
a process comprising
analyze the software to determine its components and the relationships among the components,
represent the system at a higher level of abstraction or in another form.
Example
Decompilation
object code is translated into a high-level program
alteration
Principle
The making of some changes to a system representation is known as alteration.
Alteration does not involve any change to the degree of abstraction, and it does not involve modification, deletion, and addition of information.
non-essential for reengineering.