The topics of this session were how to extract architectural information from an existing system and how to present it in a way that either enables further automatic processing or visualizing the structure for architectural reasoning. The main objectives of architecture recovery are:
Current approaches in architecture recovery are directed
towards both raising the level of abstraction in the source code and trying to
map architectural elements to the implementation. Such approaches are called
hybrid, or mixed bottom-up and top-down. In the paper "A Framework for Software
Architecture Recovery" a methodology based on a hybrid approach is described.
The authors use some conventional reverse engineering tools to generate
different views of the source code, as well as try to develop some views
manually, due to limitations of automatic tools. At the same time, they create
architectural hypotheses and map them to the intermediate representations and
the source code parts. One of the open problems is how to integrate different,
manually and automatically, generated software views in order to obtain a
qualitatively new view on the system under consideration, and thus support a
domain engineer in architectural reasoning. In the paper "Architectural
Visualization and Analysis" a visualization tool is described that can be used
as support in checking the consistency between high level and low level system
views. The tool can be extended to enable manipulation and integration of
different views. The paper "Information Needs in Performance Analysis of
Telecommunication Software" addresses the problem of recovering information
about system performance, and analyzing it at the architectural level. They
also emphasize the need of having multiple views and a tool to manipulate them.
Specifically for execution architectures there is a lack of specification
methods that are powerful enough to enable the analysis of the run-time
behavior. Later in the discussion one participant suggested that design review
documents could also provide a valuable input for the process of reverse
architecting.
(Bandinelli paper was not considered
because it belongs to either variance or product lines session)
Further research issues can be summarized as follows: