A Layered Reference Architecture for Metamodels to Tailor Quality Modeling and Analysis
Total Page:16
File Type:pdf, Size:1020Kb
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, PREPRINT 1 A Layered Reference Architecture for Metamodels to Tailor Quality Modeling and Analysis Robert Heinrich, Misha Strittmatter, Ralf Reussner Abstract—Nearly all facets of our everyday life strongly depend on software-intensive systems. Besides correctness, highly relevant quality properties of these systems include performance, as directly perceived by the user, and maintainability, as an important decision factor for evolution. These quality properties strongly depend on architectural design decisions. Hence, to ensure high quality, research and practice is interested in approaches to analyze the system architecture for quality properties. Therefore, models of the system architecture are created and used for analysis. Many different languages (often defined by metamodels) exist to model the systems and reason on their quality. Such languages are mostly specific to quality properties, tools or development paradigms. Unfortunately, the creation of a specific model for any quality property of interest and any different tool used is simply infeasible. Current metamodels for quality modeling and analysis are often not designed to be extensible and reusable. Experience from generalizing and extending metamodels result in hard to evolve and overly complex metamodels. A systematic way of creating, extending and reusing metamodels for quality modeling and analysis, or parts of them, does not exist yet. When comparing metamodels for different quality properties, however, substantial parts show quite similar language features. This leads to our approach to define the first reference architecture for metamodels for quality modeling and analysis. A reference architecture in software engineering provides a general architecture for a given application domain. In this paper, we investigate the applicability of modularization concepts from object-oriented design and the idea of a reference architecture to metamodels for quality modeling and analysis to systematically create, extend and reuse metamodel parts. Thus, the reference architecture allows to tailor metamodels. Requirements on the reference architecture are gathered from a historically grown metamodel. We specify modularization concepts as a foundation of the reference architecture. Detailed application guidelines are described. We argue the reference architecture supports instance compatibility and non-intrusive, independent extension of metamodels. In four case studies, we refactor historically grown metamodels and compare them to the original metamodels. The study results show the reference architecture significantly improves evolvability as well as need-specific use and reuse of metamodels. Index Terms—Domain-Specific Modeling Language, Reference Architecture, Metamodel, Quality Analysis F 1 INTRODUCTION OFTWARE is an essential part not only of information early on qualities of a system. Of course, for such mod- S systems but various facets of our daily life. Mobility, els, specific modeling languages are needed. Examples for energy, economics, production and infrastructure strongly modeling languages and formalisms to reason on quality depend on software which is not always of high quality. are queuing networks, Petri nets, markov chains, fault trees Critical performance and security issues, for instance, may or the Palladio Component Model (PCM) [3]. arise from bad software quality [1]. Examples can be found In Model-Driven Engineering (MDE), graphical and tex- manifold in the press, like when Denver International Air- tual modeling languages are often defined through a meta- port opened 16 months delayed and almost $2 billion over model. A metamodel is a model which defines the structure budget due to lack of performance and scalability of the and characteristics of other models. The background of our baggage-handling software system or when 6.5 million user research is the model-based analysis of software-intensive account credentials were leaked from LinkedIn. systems for various quality properties. A plethora of dif- A system on which software contributes essential in- ferent metamodels for modeling the quality of software- fluence is called a software-intensive system [2]. Software- intensive systems exist. Such metamodels are specific to intensive systems comprise besides software other domains, different quality properties (e.g., performance versus re- such as electronics and mechanics. To specify a software- liability), tools (e.g., the Palladio bench [3] versus QPN- intensive system in the form of a model promises many Tool [4]) or analysis tasks (e.g., mean time analysis versus benefits like a better understanding due to abstraction, prediction of a statistical distribution). Approaches to come platform independence, model-based analysis for behavior to unified models, such as extending an existing well- and quality. Many quality properties mainly depend on a proven metamodel, showed that metamodels for quality good architectural design, such as performance, availability modeling and analysis are prone to growth due to features and maintainability. Therefore, models are needed to reason (e.g., new quality properties to be analyzed) being added to the modeling language over time. For example, the PCM • Robert Heinrich, Misha Strittmatter and Ralf Reussner are with the was initially designed as a metamodel for performance Karlsruhe Institute of Technology, Karlsruhe, Germany analysis of software architectures. Over time, the PCM has E-mail: {heinrich,strittmatter,reussner}@kit.edu been extended for modeling reliability, costs, maintainabil- https://doi.org/10.1109/TSE.2019.2903797 c 2019 IEEE IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, PREPRINT 2 ity, energy consumption and many other quality proper- with the base language. They do not support extending the ties. These modifications may lead to degradation of the language externally and independently. Further, they are structure of the metamodel [5]. Feature overload, feature designed for language engineering in general and do not scattering and unconstrained creation of dependencies harm take into account specifics of a given domain or quality. the evolvability and reusability of the metamodel. In this paper, we investigate the applicability of modu- When comparing metamodels for different quality prop- larization concepts as known from object-oriented design erties, substantial parts of the models for the specification of and reference architectures as known from architectural structure and behavior of the system show similar language design to metamodels. We do this by presenting the first features. For example, in [6] modeling performance and reference architecture for metamodels for quality modeling reliability rely on the same language features for structure and analysis to address shortcomings in extension and reuse and behavior and merely differ in quality-specific extensions that we mentioned earlier. The reference architecture lever- to this features. However, metamodels are seldom designed ages patterns that reoccur for several domains. It proposes so that parts (or the entire metamodel) can be reused in a top-level decomposition of metamodels for quality mod- different contexts. This is because to reuse a metamodel, eling and analysis into four layers — paradigm, domain, the whole metamodel and all of its dependencies must be quality and analysis. A layer is a set of metamodel modules reused. Otherwise, dependencies are left unresolved which which can be extended by lower-level layers and reused results in an invalid metamodel. Reusing the whole meta- in different metamodels. Metamodel modules are assigned model and all its dependencies is not suitable if only a to a specific layer depending on the features they offer to subset is required. Just ignoring the irrelevant parts of the the language. The modularization concepts and reference metamodel is not a feasible way either as they unnecessarily architecture are a substantial step towards our research increase complexity and reduce understandability when vision of tailored quality modeling and analysis proposed evolving the metamodel. in [9]. Both, extension and reuse bloat the metamodel with The modularization concepts are applicable to metamod- plenty of unnecessary complexity if the metamodel is not els in general. They are independent of quality modeling well modularized. A systematic way of extending and and analysis. Also the idea of a reference architecture can reusing metamodels for quality modeling and analysis, or be applied to any kind of metamodels as long as they face parts of them, while preserving their structure is required to variation and extension of basic language features. The lay- reduce complexity. ers specification, however, strongly depends on the specific In software engineering, reference architectures provide metamodels. Other scopes would result in other reference a general architecture for applications in a particular do- architectures. We believe metamodels for various purposes main, which partially or fully implement the reference archi- can benefit from a reference architecture. Nevertheless, our tecture [7]. For example, the Java EE architecture is a layered research focuses on metamodels for quality modeling and reference architecture which can be used as a template analysis as this kind of metamodels face high variability for for various systems developed in Java. Other examples of several quality properties. This is because when applying established reference architectures are the ISO/OSI