학술논문

eknows: Platform for Multi-Language Reverse Engineering and Documentation Generation
Document Type
Conference
Source
2021 IEEE International Conference on Software Maintenance and Evolution (ICSME) ICSME Software Maintenance and Evolution (ICSME), 2021 IEEE International Conference on. :559-568 Sep, 2021
Subject
Computing and Processing
Computer languages
Visualization
Software maintenance
Reverse engineering
Documentation
Tools
Maintenance engineering
reverse engineering
documentation generation
Language
ISSN
2576-3148
Abstract
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.