Information Technology Reference
In-Depth Information
Source code may be generated from UML using templates and translation tools.
These tools can automate a large share of the source code generation, but fall short
of 100 % automation (Eriksson et al. n.d.). However, many case studies show that
costs and turnaround times are shortened using UML to source code tools. In turn,
maintenance of software systems can be eased using reverse engineering. As
software products make it to the market with little or no proper documentation,
even internally documentation may be lacking. Reverse engineering provides a
mechanism to turn compiled code into models. These models allow developers to
more easily understand the system. Reverse engineering objects provides insight
more quickly and accurately than black-box investigation techniques.
8.7.1 Forward Engineering
Forward engineering most simply stated takes a higher level of abstraction to that
of a lower level (Schach 2008 ). This engineering process provides source code
from models. Software engineers find that this sort of engineering is very bene-
ficial for the accuracy and speed of which objects may be constructed from
models.
8.7.2 Reverse Engineering
Reverse engineering is exactly the opposite of forward engineering; reverse
engineering can turn the objects and low level executable code to high level
pictorial representations. Collectively, reverse and forward engineering is termed
restructuring (Schach 2008 ). As reverse engineering produces models and for-
ward engineering can create executable code, software maintainers can rely on
improved code generation algorithms to generate better code than the original
developers produced. This improvement of implementation without modification
of a function is the essence of restructuring.
8.8 Design Tips
This section contains a brief overview of object-oriented design methods that
allow for the most reliable and productive development. The following is a brief
list of the most important concepts and ideas required for object-oriented design.
1. Keep close to the problem domain. Do not stray too far or the scope of the
project will grow to an uncontrollable size.
Search WWH ::




Custom Search