An Executable Design Decision Representation using Model Transformations Matthias Biehl Embedded Control Systems Royal Institute of Technology Stockholm, Sweden [email protected]

Abstract Design decisions are often tacit knowledge of an architecture and consequently they are easily lost during software evolution, a phenomenon known as knowledge vaporization. As a countermeasure, design decisions can be documented explicitly. However, documenting design decisions is expensive because they need to be captured in addition to the changes in the architecture. We propose an executable representation for design decisions using model transformations, which is independent of a particular component model or architectural description language. As a result, we provide the possibility to reduce knowledge vaporization. At the same time we prevent the high capturing cost, since the corresponding architectural change can be computed automatically.

1

Introduction

During the development and design of a software architecture important decisions about the resulting system are made. These architectural design decisions determine the quality characteristics of the system. The outcome of the design decisions is described explicitly in the form of architectural models that have their own representations such as domain specific languages, architecture description languages, metamodels and domain models. A number of different languages exist, each targeting different domains and particular quality attributes. However, the root causes for the form of the architecture, the design decisions themselves, are usually not explicitly represented in those languages. As a result the architectural knowledge inherent in the design decisions gets lost. This loss of architectural knowledge creates problems during evolution and maintenance [5] and may eventually lead to design erosion [11]. Explicit knowledge about the design decisions would be desirable during later lifecycle phases of the system, when the architecture evolves and needs to be maintained. Under-

Martin T¨orngren Embedded Control Systems Royal Institute of Technology Stockholm, Sweden [email protected]

standing the intent behind the existing architecture is a very time and cost intensive task. Nevertheless, understanding what is already there and which design decisions have been made previously is a vitally important part of maintenance. It is a prerequisite for changing and evolving the architecture in harmony with the original intent. Another reason for capturing design decisions in safety critical systems is given by the need to justify and document that best practices have been applied. Usually knowledge about design decisions is tacit and design decisions stay in the heads of the architect. Knowledge about the design decisions is dependent on the person, managed by the strategy of personalization [6]. The disadvantage of this personalization strategy of architectural knowledge management surfaces when personnel changes, when new architects work on existing systems or when legacy systems have to be maintained. The knowledge of design decisions is neither codified in the architecture nor in the documentation, and the architectural decision cannot be deduced from a single architectural model either. As a result the knowledge about design decisions gets lost during development and evolution. This phenomenon has been identified in industrial settings and has been named knowledge vaporization [7]. To mitigate this problem, several approaches have been proposed that capture architectural knowledge, e.g. Leveson proposes to capture the intent [10] and Burge proposes to capture software engineering rationale [2]. Due to the central role design decisions have in the development of an architecture, Bosch proposes to document design decisions explicitly [1]. The explicit representation of design decisions has the potential to improve the quality of software architectures by reducing knowledge vaporization. Different representations for design decisions were proposed, most of them are information models based on metamodels. These approaches however share the problem that the design decisions need to be captured in addition to the architecture. This creates overhead for the decision maker and thus design decisions are not widely documented in prac-

tice. Further inhibitors have been identified [4], such as the potential inconsistency between the architecture and the documentation of design decisions. The associated overhead reduces the likelihood of design decisions being captured. This problem is known as the capture problem, one of the major hindrances for explicitly capturing rationale and design decisions. Kruchten et al. discuss the need to reduce the double effort that is currently required when capturing design decision and the need for suitable representations and tools for design decisions [9]. We identify the following desirable objectives for the representation of design decisions: Objective 1: The design decision should be captured and described using an appropriate representation. Objective 2: Design decisions change an architecture. Thus introducing a new design decision requires a double effort, (1) for capturing the changes in the architecture and (2) for documenting the design decision. It is desirable to leverage the same representation for both efforts. Objective 3: The design decision representation should be compatible with existing metamodels, architecture description languages and domain specific languages. This allows users of existing, widespread and accepted languages to add a decision view to their architecture [3]. To be able to be used as an add-on, design decision need to be independent of the architecture description language used. We propose a representation of design decisions in section 2 that fulfills the above criteria. In section 3 we report a case study we performed with our representation. We conclude the paper in section 4 with a summary and ideas for future work.

2

Approach

The documentation of design decisions is a doubleedged sword. On the one hand it is desirable, since it reduces knowledge vaporization and has the potential to improve the system quality during software evolution. On the other hand it is costly, since it creates an overhead for the architect and is thus seldom performed in practice. This problem can be alleviated by an executable representation for design decisions. When a design decision is made in a given architecture, the result is a new architecture that is equal to the first one but additionally incorporates the changes induced by the design decision. If we interpret the design decision as a function, the input of the function is the previous architecture, the output is a new architecture. During architectural refinement several design decisions are made, resulting in a sequence of intermediate architectural models being created. This can be formalized as follows: A design decision d : M → M made on a given architectural model A0 ∈ M

yields a new architectural model A1 ∈ M , where M is the set of possible architectures described according to a common metamodel. The design decision can be interpreted as a function over architectural models, where an execution of the design decision creates a new architecture incorporating the changes induced by the design decision d, in short A1 = d(A0 ). Several design decisions d1 ...dn are made during architectural refinement, formalized as a composition of functions An = (dn ◦ dn−1 ◦ ... ◦ d1 )(A0 ). As a result we can describe the design process explicitly as dn ◦ dn−1 ◦ ... ◦ d1 , i.e. the sequence of steps by which the architecture is refined, instead of the outcome An of the design process. In this work we propose an executable representation of design decisions, allowing us to generate architectural models automatically as described in the last paragraph. To achieve executability of design decisions, a couple of things have to be in place. The design decisions need to be described with sufficient detail so they can be executed. An interpreter needs to be available that can execute the description of a design decision and can produce a modified architecture as output. We propose to use model transformations as an executable representation of design decisions. Model transformations can be executed, the result of the execution reflects a changed architecture. This has the advantage that design decisions only need to be captured as a transformation and the change in the architecture is merely a cause of the execution of the transformation. Since model transformations can be used for models conforming to different metamodels, this approach is not bound to a specific notation and can be applied to architectural models that are described using existing metamodels or architecture description languages. Model transformations provide a mechanism for representing design decisions.

2.1

Mapping between Design Decisions and Model Transformations

In order to identify to what extent design decisions can be represented by model transformations, we examine which information is required for the representation of design decisions. As an orientation we use the ontology of architectural design decisions by Kruchten [8]. According to the ontology a design decision comprises the decision itself, the scope of the decision, the rationale of the decision, cost, risk, author, timestamp and state. We found that the elements of the design decision ontology can be partly represented by model transformations. The scope of the decision describes the context in which the decision is defined. In the ontology Kruchten lists different interpretations of the scope, such as system scope, time scope and organization scope. We focus here on the system

scope, the non-technical interpretations of the scope can be represented in the design decision rationale. The system scope is the precondition under which the design decision can be applied and executed. The scope corresponds to the matching patterns or the left-hand-sides of all the rules of the model transformation. The outcome of the decision can be expressed by the right-hand-side of a model transformation, it will be introduced into the architecture. In summary the core of the design decision, consisting of the decision itself and its application context, can be described with model transformations. The additional elements mentioned in the ontology of design decisions can be regarded as an extension to the core of the decision. We store them textually in a separate data structure called Design Decision Management Container (DDMC). It is used for managing the metadata of each design decision in textual form, such as rationale, cost, risk, author, timestamp and state. Furthermore the DDMC points to the model transformation realizing the decision. The relationship between pairs of design decisions can be documented in DDMCs. Examples of the relationships between design decisions include conflicting design decisions, alternative design decisions and dependencies. Multiple design decisions can be managed as a sequence of DDMCs. A DDMC sequence describes the order in which design decisions are made. In pure information models for design decisions the issue of linking design decisions to the architecture arises. It requires effort, to keep the information about design decisions consistent with the architecture. With executable design decisions this link is created automatically through the pattern matching algorithm of the transformation engine. The transformation engine identifies all the occurrences of the left hand side, when the model transformation is applied.

2.2

Representation of Multiple Design Decisions

Several design decisions are made during the development of an architecture. To record the evolution or history of an architecture a sequence of design decisions has to be recorded. The decisions in this sequence can be represented by several model transformations or by several model transformation rules. Representing a sequence of design decisions by model transformation rules has the disadvantage that single design decisions cannot be executed separately and the execution order of rules may be indeterministic (e.g. for ATL), making it impossible to coerce an ordering. As the order in which the design decisions are executed is relevant when constructing the architecture, we represent multiple design decisions as a sequence of separate model transformations. Moreover, using the latter approach each intermediate architectural model is explicitly constructed and

available as an artifact. The intermediate architectural models can be inspected and analyzed. For each design decision a number of alternative design decisions exist that have been rejected and consequently do not have an effect on the architecture. In this work, however, we focus on documenting the design decisions that are realized in the architecture.

2.3

Requirements for the Model Transformation Language

A number of different model transformation languages exist. A challenge is finding the right model transformation language for the purpose of representing design decisions. To be able to make a suitable selection, we identify the following requirements. The model transformation language needs to be a model-to-model transformation, because both input and output of the transformation are architectural models. Further, the transformation engine needs to support in-place transformations. Most transformation engines generate a completely new target model, whereas inplace transformations create the target model by modifying specific parts in the existing source model.

3

Case Study

To validate our proposal of using model transformations to represent design decisions we performed a case study on design decisions in an automotive brake-by-wire system. In this case study we explored modeling a design decision using different model transformation languages. We examine both ATL and Tiger EMF, two different transformation languages to model design decisions. ATL is a representative from the class of hybrid (declarative and imperative) model transformation languages and Tiger EMF as a representative from the class of model transformations based on triple graph grammars. The intention is to explore the feasibility and usability of different model transformation approaches for representing design decisions, not to provide an exhaustive list of suitable model transformation languages. The details of the case study are left out due to space constraints, we instead focus in the following on the lessons learned. After conducting the case study using two different model transformation formalisms to represent design decisions, we can check the objectives stated in section 1: Objective 1: We demonstrated that it is feasible to express design decisions using different model transformation formalisms. The design decision can be described using endogenous, in-place model-to-model transformations. We used both ATL and Tiger EMF in the case study. Objective 2: The model transformation as a representation of design decisions fulfills two functions simultane-

ously: documenting the design decision and changing the architecture by executing the transformation. Objective 3: The design decision representation is compatible with existing metamodels, as long as they can be processed by model transformation tools. We used the architecture description language EAST-ADL2 in the case study. We noticed that writing up the design decision as a general transformation rule forces the decision maker to think clearly about the decision, i.e. in which context it may be applied and which exceptions have to be made. If the design decision is stated in a general way, it can be applied in several places of the architecture. In the brake-by-wire case study the redundancy design decision could be applied for several sensors in the architecture. The understandability of the model transformations is a question of appropriate training and tools and on the size of the design decision. As one model transformation captures only one single design decision, the size of the model transformation rule is relatively small and limited. We noticed differences between the languages. Creating the model transformation graphically, such as in Tiger EMF, resembles modeling the architecture directly. Textual model transformation descriptions such as those by ATL are verbose and possibly harder to understand.

4

Conclusions and Future Work

Documenting architectural design decisions is an attempt to minimize knowledge vaporization and its undesirable effects during system evolution. In practice, however, design decisions are seldomly captured, despite the large number of benefits. One of the major reasons is the double effort required in capturing both the changes in the architecture and documenting the design decision. In this work we proposed model transformations as an executable representation for documenting design decisions. If design decisions are executable, we can generate their effects on the architecture without needing to change the architecture manually. In addition, any intermediate version of the architecture can be reconstructed by replaying the design decisions up to that point. In a case study we have shown that it is feasible to represent executable design decisions using different model transformations. Model transformations offer a mechanism for capturing design decisions that is independent of a particular architecture description language, metamodel or component model. By using model transformations the concept of design decisions can be added to existing modeling languages. We would like to allow people to change the graphical architecture models in the way they are used to and create the model transformation automatically. Such a tool can hide the model transformation from the user but still use model

transformations as an underlying mechanism for documenting the design decision. The tool creates two snapshots of the architecture, one before the design decision was applied and one afterwards. The tool computes the delta and based on the delta it creates a model transformation describing the design decision. Some design decisions can solve recurring problems. These decisions are in fact application-specific customizations of general design patterns. If design decisions are captured as general rules, they can be reused, and thus reduce the effort for modeling the architecture. A design decision that is created once, can be applied in several places of the architecture. Libraries of such general executable design decisions that only need to be customized when they are applied, can further lower the amount of effort necessary for documenting design decisions.

References [1] J. Bosch. Software architecture: The next step. Software Architecture, 3047:194–199–199, 2004. [2] J. E. Burge and D. C. Brown. An integrated approach for software design checking using rationale. In Proc. Design Computing and Cognition Conference, Cambridge, MA, 2004. [3] J. C. Due˜nas and R. Capilla. The decision view of software architecture. Software Architecture, pages 222–230, 2005. [4] D. Falessi, G. Cantone, and P. Kruchten. Value-based design decision rationale documentation: Principles and empirical feasibility study. In WICSA ’08: Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), pages 189–198, Washington, DC, USA, 2008. IEEE Computer Society. [5] B. Graaf. Maintainability through architecture development. In EWSA 2004, pages 206–211, 2004. [6] M. T. Hansen, N. Nohria, and T. Tierney. What’s your strategy for managing knowledge? Harvard Business Review, 77(2), 1999. [7] A. Jansen and J. Bosch. Software architecture as a set of architectural design decisions. In Software Architecture, 2005. WICSA 2005. 5th Working IEEE/IFIP Conference on, pages 109–120, Washington, DC, USA, 2005. IEEE. [8] P. Kruchten. An ontology of architectural design decisions in software intensive systems. In 2nd Groningen Workshop Software Variability, pages 54–61, October 2004. [9] P. Kruchten, R. Capilla, and J. C. Due˜nas. The decision view’s role in software architecture practice. IEEE Softw., 26(2):36–42, 2009. [10] N. G. Leveson. Intent specifications: An approach to building human-centered specifications. IEEE Transactions on Sw. Eng., 26(1):15–35, January 2000. [11] D. E. Perry and A. L. Wolf. Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes, 17(4):40–52, October 1992.

An Executable Design Decision Representation using ...

design decisions in an automotive brake-by-wire system. In this case study we ... tive from the class of model transformations based on triple graph grammars.

130KB Sizes 2 Downloads 196 Views

Recommend Documents

REPRESENTATION OF GRAPHS USING INTUITIONISTIC ...
Nov 17, 2016 - gN ◦ fN : V1 → V3 such that (gN ◦ fN )(u) = ge(fe(u)) for all u ∈ V1. As fN : V1 → V2 is an isomorphism from G1 onto G2, such that fe(v) = v′.

Executable instructions.pdf
Sign in. Loading… Whoops! There was a problem loading more pages. Whoops! There was a problem previewing this document. Retrying... Download. Connect ...

Testing Executable Themes
encapsulate the standard UML structural and behavioural diagrams required to .... [7] UML Superspec p107-115, http://www.omg.org/, 2004. [8] Xu D., Xu W., ...

An executable operational semantics for Python
Python is an imperative, dynamic, object-oriented programming language ...... is called with the operands as its arguments. 〈Θ, Γ, S|al. ◦, ar. 〉 ⇒. {〈Θ, Γ, S.

An executable operational semantics for Python
1.1 Python. Python is an imperative, dynamic, object-oriented programming language originally devel- ...... When the yield marker Γ ⊣ agen is on top of the stack, the generator's body has been executed. ...... gideon@gideon-desktop:~$ minpy.

XCorpus – An executable Corpus of Java Programs
Mar 17, 2017 - related work in section 3, followed by a discussion of the various aspects of ... the precision of call graphs in languages that use dynamic dispatch, and the .... Donnell et al. on API stability of Android applications using projects

Testing Executable Themes
:DataBase. . Persistency. Customer. DataBase save. DataBase save. Server. . Log in. :Customer. :Server log in no bsd retry.

Froctomap: An efficient spatio-temporal environment representation ...
Nov 2, 2017 - Full-text (PDF) | Froctomap: An efficient spatio-temporal environment representation. ... spatio-temporal mapping framework is available as an open-source C++ library. and a ROS module [3] which allows its easy integration in robotics p

Representation of Urban Buildings Using Modified ... - Springer Link
Previous approaches, which visualize geo-spatial information for ... Supported by the Ministry of Science and Technology of Korea under management No.

Retrieval of 3D Articulated Objects using a graph-based representation
called protrusion function, pf() [APP. ∗ ... the minimum cost paths between the representative salient .... The optimal cost of the optimization process is the EMD.

Sparse Representation based Anomaly Detection using ...
HOMVs in given training videos. Abnormality is ... Computer vision, at current stage, provides many elegant .... Global Dictionary Training and b) Modeling usual behavior ..... for sparse coding,” in Proceedings of the 26th Annual International.

temperature controller using an ac heater: design and ...
2.1. Temperature & Temperature Scale. 13. 2.2. Temperature Scale. 14. 2.3. Temperature Sensors. 15. CHAPTER THREE: TEMPERATURE CONTROLLERS. 23. 3.1. Introduction. 23. 3.2. Kinds of ... instruments. 3. Significant figures: the number of significant fi

Handover Decision Using Fuzzy.pdf
Whoops! There was a problem loading this page. Retrying... Whoops! There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Handover Decision Using Fuzzy.pdf. Handov

A Circuit Representation Technique for Automated Circuit Design
automated design, analog circuit synthesis, genetic algorithms, circuit .... engineering workstations (1996 Sun Ultra), we present evolved circuit solutions to four.

A Graphical Representation of an Estimated DSGE Model
∗Economic Research Department, Reserve Bank of Australia. ... the impact of productivity and mark-up shocks and the role of fiscal multipliers.2 ... Conversely as the cost of price adjustment rises, ψ → 0, implying that the .... On the aggregate

a web portal for creating and sharing executable ...
called mutable (and private) access. .... Supporting the internet-based evaluation of research software with cloud infrastructure, Software and Systems Modeling.

33_From Conceptual to Executable BPMN Process Models.pdf ...
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. 33_From ...

man-105\executable-outlines-luke.pdf
Connect more apps... Try one of the apps below to open or edit this item. man-105\executable-outlines-luke.pdf. man-105\executable-outlines-luke.pdf. Open.