SEMay 2, 2021

Metadata Interpretation Driven Development

arXiv:2105.00534v2
Originality Incremental advance
AI Analysis

This addresses the problem of crosscutting concerns in software development, particularly for developers and engineers dealing with evolving architectures like serverless computing, though it appears incremental as it builds on existing separation-of-concerns principles.

The paper tackles the persistent challenge of achieving separation of concerns in software development by proposing Metadata Interpretation Driven Development (MIDD), which eliminates the need to code functional concerns and uses metadata interpreters for non-functional concerns, resulting in increased reuse of constructs and the ability for a single interpreter to serve multiple business domains without code changes.

Despite decades of engineering and scientific research efforts, separation of concerns in software development remains not fully achieved. The challenge has been to avoid the crosscutting of concerns phenomenon, which has no apparent complete solution. In this paper, we show that business-domain coding plays an even larger role in this challenge. We then introduce a new approach called \emph{Metadata Interpretation Driven Development} (MIDD), which suggests a way to enhance the current way of realizing separation of concerns by eliminating the need to code functional concerns. We propose to code non-functional concerns as metadata interpreters. This interpretation occurs at run-time and is possible because it assumes the existence of such metadata in artefacts created in previous stages of the process, such as the modelling phase. We show how this can increase the (re)use of the constructs. Furthermore, we show that a single interpreter, due to its semantic disconnection from the domain, can simultaneously serve different business domains with no concerns regarding the need to rewrite or refactor code. Although high-reuse software construction is considered a relatively mature field, changes in the software services scenario demand constant evolution of the actual solutions. The emergence of new software architectures, such as serverless computing, reinforces the need to rethink software construction. This approach is presented as a response to this need.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes