elivators

Sunday 25 December 2011

Systems Engineering:

Systems Engineering:
"The top level process of engineering a system to meet overallrequirements."
Software Reengineering:
"The examination and alteration of an existing subject system toreconstitute it in a new form. This process encompasses a combination of sub-processes such as reverse engineering, restructuring, redocumentation, forward engineering, and retargeting."
Aside: The new form of the subject system could be structured code - from "spaghetti" code; design information in graphical form - from input code; or the translation of the source code from one language to another while preserving the system's functionality.



Reverse Engineering:
"The engineering process of understanding, analyzing, and abstracting the system to a new form at a higher abstraction level."
Aside: This higher abstraction level is understood within the context of the software system's lifecycle. The classic waterfall development lifecycle calls for requirements/specifications followed by design, code, test, implement, and maintain. Thus, if we start with the code, reverse engineering will extract design information which is at a higher abstraction level in the lifecycle.

Forward Engineering:
"Forward engineering is the set of engineering activities that consume the products and artifacts derived from legacy software and new requirements to produce a new target system."
Aside: Notice the difference between software engineering and forward engineering. A hot topic within software reengineering circles is whether we even need the term "forward engineering" since this implies the normal development lifecycle sequence of events. If this was the extent of forward engineering, then forward engineering and software engineering can be considered identical terms. But we define forward engineering as using the output of reengineering. This implies that some reengineering must have occurred prior to the forward engineering activity. For example, the most common forward engineering activity involves the generation of source code from design information which was captured by a previous reverse engineering activity.

No comments:

Post a Comment