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."

No comments:

Post a Comment