Software Architecture Recovery
   HOME

TheInfoList



OR:

Software architecture recovery is a set of methods for the extraction of architectural information from lower level representations of a software system, such as source code. The abstraction process to generate architectural elements frequently involves clustering source code entities (such as files, classes, functions etc.) into subsystems according to a set of criteria that can be application dependent or not. Architecture recovery from legacy systems is motivated by the fact that these systems do not often have an architectural documentation, and when they do, this documentation is many times out of synchronization with the implemented system. Software architecture recovery may be required as part of software retrofits.


Approaches

Most approaches to software architecture recovery has been exploring the static analysis of systems. When considering object-oriented software, which employs a lot of polymorphism and dynamic binding mechanisms,
dynamic analysis Dynamic scoring is a forecasting technique for government revenues, expenditures, and budget deficits that incorporates predictions about the behavior of people and organizations based on changes in fiscal policy, usually tax rates. Dynamic scoring ...
becomes an essential technique to comprehend the system behavior, object interactions, and hence to reconstruct its architecture. In this work, the criteria used to determine how source code entities should be clustered in architectural elements are mainly based on the dynamic analysis of the system, taking into account the occurrences of interaction patterns and types (classes and interfaces) in use-case realizations.


See also

*
Reverse engineering Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompli ...
*
Software archaeology Software archaeology or source code archeology is the study of poorly documented or undocumented legacy software implementations, as part of software maintenance. Software archaeology, named by analogy with archaeology, includes the reverse enginee ...
* Software architecture * System appreciation


References

{{reflist Software architecture Data recovery