TY - CONF
T1 - eknows - Platform for Multi-Language Reverse Engineering and Documentation Generation.
AU - Moser, Michael
AU - Pichler, Josef
N1 - Publisher Copyright:
© 2021 IEEE.
PY - 2021
Y1 - 2021
N2 - Software documentation is an asset for many activities in maintenance and evolution of software. To alleviate the problem of outdated or lost documentation and to improve program understanding, reverse engineering tools and documentation generators have been developed and used during development, maintenance, and evolution of software systems. In this paper, we report on the development of six tools that address different programming languages (e.g. COBOL, Java, and C), problem domains (e.g. banking, insurance, and engineering), and SE activities (e.g. maintenance and migration). While the development of these tools was driven by domain-specific requirements, an architecture that supports reuse of components for the analysis and visualization of software from different programming languages was pursued from the beginning. This resulted in a polyglot software platform for building reverse engineering tools and documentation generators. The software platform provides a modular set of programming language frontends, static program analysis components and document/diagram generators. To evaluate effectiveness of the platform for tool creation, we conducted an industrial case study and discuss results on reuse potential, adoption of new languages and usage of a generic intermediate representation.
AB - Software documentation is an asset for many activities in maintenance and evolution of software. To alleviate the problem of outdated or lost documentation and to improve program understanding, reverse engineering tools and documentation generators have been developed and used during development, maintenance, and evolution of software systems. In this paper, we report on the development of six tools that address different programming languages (e.g. COBOL, Java, and C), problem domains (e.g. banking, insurance, and engineering), and SE activities (e.g. maintenance and migration). While the development of these tools was driven by domain-specific requirements, an architecture that supports reuse of components for the analysis and visualization of software from different programming languages was pursued from the beginning. This resulted in a polyglot software platform for building reverse engineering tools and documentation generators. The software platform provides a modular set of programming language frontends, static program analysis components and document/diagram generators. To evaluate effectiveness of the platform for tool creation, we conducted an industrial case study and discuss results on reuse potential, adoption of new languages and usage of a generic intermediate representation.
KW - documentation generation
KW - reverse engineering
UR - http://www.scopus.com/inward/record.url?scp=85123381362&partnerID=8YFLogxK
U2 - 10.1109/ICSME52107.2021.00057
DO - 10.1109/ICSME52107.2021.00057
M3 - Paper
SP - 559
EP - 568
ER -