an_architectural_revere_engineering_environment
Differences
This shows you the differences between two versions of the page.
| Previous revision | |||
| — | an_architectural_revere_engineering_environment [2025/01/15 21:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Fiutem, R.; Antoniol, G.; Tonella, P. & Merlo, E. ART: An Architectural Revere Engineering Environment. Journal of Software Maintenance: | ||
| + | ===== Abstract ===== | ||
| + | |||
| + | When programmers perform maintenance tasks, program understanding is often required. One of the first activities in understanding a software system is identifying its subsystems and their relations, i.e., its software architecture. Since a large part of the effort is spent in creating a mental model of the system under study, tools can help maintainers in managing the evolution of legacy systems by showing them architectural information. | ||
| + | |||
| + | This paper describes an environment for the architectural recovery of software systems called the architectural recovery tool (ART). The environment is based on a hierarchical architectural model that drives the application of a set of recognizers, | ||
| + | |||
| + | To test the accuracy and effectiveness of the ART, a suite of public domain applications containing interesting architectural organizations was selected as a benchmark. Results are presented by showing ART performance in terms of precision and recall of the architectural concept retrieval process. | ||
| + | |||
| + | The results obtained show that cliché-based architectural recovery is feasible and the recovered information can be valuable support in reengineering and maintenance activities. | ||
| + | |||
| + | ===== Comments ===== | ||
| + | |||
| + | // | ||
| + | |||
| + | In this paper, the authors introduce the problem of architecture recovery. They also recall the problem of identifying the connections among components. To recover components and their connections, | ||
| + | * **Shared-file**: | ||
| + | * **Shared-memory**: | ||
| + | * **Remote-procedure call**: a procedure call-like mechanism between components. Nowadays, most components interact through RPC, in particular with the advent of service-oriented architectures. **How components can know about one another and invoke their procedures are interesting questions. Also interesting questions pertain to the data passed back and forth among components and the use of this data by components.** | ||
| + | * **Stream**: a unidirectional or bidirectional ordered exchange of data between components. This is implemented through " | ||
| + | * **Message**: | ||
| + | * **Invocation**: | ||
| + | |||
| + | This set of types of connections can account for the interactions among components in simultaneous mixed-language software systems (SIMILAS) through the " | ||
| + | |||
| + | The hierarchical component model is not recursive, meaning that it is truly hierarchical, | ||
| + | |||
| + | The detection of the types of connections and components is performed on an AST, which hint at a unified AST among components to recognise, for example, occurrences of the " | ||
| + | |||
| + | The experiments report occurrences of various implementation patterns found in systems written in the same programming language, C (for Unix). It is unclear how the tool would work on components written in (very) different programming languages, such as JavaScript and C/C++. | ||
