z-logo
Premium
The human in model‐driven engineering loop: A case study on integrating handwritten code in model‐driven engineering repositories
Author(s) -
Rahad Khandoker,
Badreddin Omar,
Mohsin Reza Sayed
Publication year - 2021
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.2957
Subject(s) - computer science , executable , code (set theory) , context (archaeology) , code smell , code generation , model driven architecture , codebase , code review , kpi driven code analysis , maintainability , software engineering , software quality , programming language , source code , software , software development , key (lock) , operating system , paleontology , set (abstract data type) , biology
In model‐driven engineering (MDE) software projects, large portions of the executable code are automatically generated from designs and models. This generated code may or may not be edited by the developers to achieve their development objectives. MDE projects also include a significant amount of handwritten code (HC). This handwritten code is developed under unique constraints, as it must integrate with generated artifacts and code elements that are not directly developed by the engineers. These constraints adversely affect codebase quality and maintainability. This case study aims to investigate the hypothesis pertaining to the handwritten code quality developed in the context of MDE. The study analyzes these unique code fragments and compares their characteristics to handwritten code in repositories where code generation is not present. The study finds that handwritten code quality in the MDE context suffers from elevated technical debt and code smells. We observe key code smells that are particularly evident in this handwritten code. These findings imply that code generators must optimize for human comprehension, prioritize extensibility, and must facilitate integration with handwritten code elements.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here