Journal Article Open Access

A Model-Driven Approach for the Management and Enforcement of Coding Conventions

PDF Online

Authors Elder de Oliveira Rodrigues Jr. José D'Abruzzo Pereira Leonardo Montecchi
Abstract
Coding conventions are a means to improve the reliability of software systems, and they are especially useful to avoid the introduction of known bugs or security flaws. However, coding rules typically come in the form of text written in natural language, which makes them hard to manage and to enforce. Following the model-driven engineering principles, in this paper we propose an approach for the management and enforcement of coding conventions using structured models. We define the Coding Conventions Specification Language (CCSL), a language to define coding rules as structured specifications, from which checkers are derived automatically by code generation. To evaluate our approach, we run a thorough experiment on 8 real open-source projects and 77 coding rules for the Java language, comparing the violations identified by our checkers with those reported by the PMD static analysis tool. The obtained results are promising and confirm the feasibility of the approach. The experiment also revealed that textual coding rules rarely document all the necessary information to write a reliable checker.
DOI 10.1109/ACCESS.2023.3256886
Journal IEEE Access
Volume 11
Month March
Year 2023
Pages 25735-25754
Publisher IEEE
ISSN ELECTRONIC: 2169-3536
Citation
Bibtex
@article{2023ACCESS1,
  author = {de Oliveira Rodrigues Jr., Elder and D'Abruzzo Pereira, José and Montecchi, Leonardo},
  title = {{A Model-Driven Approach for the Management and Enforcement of Coding Conventions}},
  journal = {IEEE Access},
  publisher = {IEEE},
  volume = {11},
  pages = {25735-25754},
  month = {3},
  year = {2023}
}

Plain Text
E. Rodrigues Jr., J. Pereira, L. Montecchi. A Model-Driven Approach for the Management and Enforcement of Coding Conventions. In: IEEE Access, Vol. 11, pp. 25735-25754 (March 2023).
 
 

© 2017-2022 Leonardo Montecchi