Software Life-Cycle and Levels of Abstraction


© Faisal Bin Bashir

To sufficiently describe the idea of software forward and reverse engineering, it is important to fully understand three dependent concepts: the existence of a life-cycle model, the presence of a subject system, and the identification of abstraction levels.

First assumption is that a methodical life-cycle model exists for the software development process. The model can be represented as the traditional waterfall, as a spiral or in another form that can be represented as a directed graph. Intra/inter stage recursion/iteration, whatever the kind of transitions may be, its general directed graph nature permits us sensibly define forward and backward activities.

The subject system may be a single program or code fragment, or even it may be a complex set of interacting programs. In forward engineering, the subject system is the result of the development process. In reverse engineering, the subject system is generally the starting point of the exercise.

Abstraction levels may correspond to different phases of the subject system's life cycle. The higher abstraction levels typically deal with more application- or user-oriented concepts such as the business rules of an enterprise, while lower levels accentuate on implementation details. The transition of increasing detail through the forward progress of life-cycle provides a frame of reference for the relative transformations such as reverse engineering and re-engineering.

Generally speaking, reverse engineering performs transformations from lower abstraction level to a higher one, restructuring performs transformations within the same abstraction level, and forward engineering performs transformations from a higher abstraction level to a lower one. It should be noted that each abstraction level may be further stratified as needed.

These abstractions are more closely related to the business rules of the organization of the procurer. They are usually expressed in a terminology that can be easily understood by the user. If we want to find its analogy with other fields, a blue print is a higher level abstraction of the building it represents.

Go To Page: 1


The copyright of the article Software Life-Cycle and Levels of Abstraction in Software Re-engineering is owned by . Permission to republish Software Life-Cycle and Levels of Abstraction in print or online must be granted by the author in writing.

Post this Article to facebook Add this Article to del.icio.us! Digg this Article furl this Article Add this Article to Reddit Add this Article to Technorati Add this Article to Newsvine Add this Article to Windows Live Add this Article to Yahoo Add this Article to StumbleUpon Add this Article to BlinkLists Add this Article to Spurl Add this Article to Google Add this Article to Ask Add this Article to Squidoo