27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

deployment view) that is r eified in a physical network.<br />

Properties such as reliability and bandwidth of this connector<br />

may be subject to change over time. This kind of changes in<br />

properties of architectural elements is often ignored in the<br />

architectural models. We advocate that the evolution of these<br />

properties should be reflected in the models, as it allows us to<br />

(i) monitor the evolution of these properties, which in turn can<br />

be used to t rigger adaptations, and to (ii) analyze the actual<br />

characteristics of a system using its architectural models. This<br />

alignment between what was designed (the initial model) and<br />

the actual implementation/deployment can help identify and<br />

reduce architectural erosion [15]. A particular research field<br />

that considers the evolution of the properties of architectural<br />

elements is that of service-oriented architectures. For instance<br />

[4][8] match services properties with non-functional<br />

requirements for selecting which services to use.<br />

Some modeling languages that are not considered ADL can<br />

also be used for architectural modeling. Architectural behavior<br />

has been defined in languages such as Statecharts,<br />

ROOMcharts, SDL, Z, Use-Case, Use-Case Maps, Sequence<br />

diagrams, Collaboration diagrams and MSCs [2]. For instance,<br />

Statecharts can be used to describe the different states of a<br />

component, as well the transitions between them; Use-Case<br />

diagrams can express the different activities performed by an<br />

element of a system, from the user’ point-of-view. Thus, when<br />

dealing with architectural evolution, we cannot neglect these<br />

languages. Similarly, the use of goal-based notations such as<br />

Kaos and i* for architectural modeling has been promoted in<br />

some research endeavors [12][18].<br />

III. CONCEPTUAL FRAMEWORK<br />

Based on a review of the architectural modeling approaches<br />

mentioned in the previous section, we devised a framework for<br />

empowering architectural evolution through model<br />

transformations, which can be applied to different modeling<br />

languages. This framework comprises a conceptual model,<br />

used to classify the different constructs of a modeling language,<br />

as well as a set of basic architectural evolution operations<br />

defined upon the conceptual model.<br />

Architectural models are composed of architectural<br />

elements – e.g., components, services, classes and states – and<br />

links that define connections between these elements – e.g.,<br />

connectors, requests, association links and events. Both<br />

elements and links may have properties, which can be used to<br />

provide a detailed description of elements and links. Moreover,<br />

elements may have sub-elements, i.e., elements that are part of<br />

them. Fig. 1 shows a model that represents these concepts.<br />

Using the graph terminology, elements can be considered typed<br />

nodes, links can be considered directed edges and properties<br />

can be considered labels of a node/edge.<br />

This conceptual model can be applied to different<br />

architectural description languages, as well as to other<br />

modeling languages that are used for architectural modeling<br />

(e.g., Statecharts, Sequence diagrams, Use-Case and i*). The<br />

(meta-)metamodel of the VPM language [3] resembles our<br />

conceptual model, being essentially composed by elements<br />

(entities) and links (relations) but neglecting their properties.<br />

That work provides a metamodeling language, whereas our<br />

conceptual model is used to classify the constructs of existing<br />

<br />

<br />

<br />

Figure 1. Conceptual Model<br />

metamodels in o rder to guide the creation of transformation<br />

rules. Thus, our approach is n ot tied to any particular<br />

metamodeling nor transformation specification language.<br />

A. Basic Architectural Evolution Operations<br />

This conceptual model enabled us to define 7 basic<br />

operations required to s upport architectural evolution with<br />

model transformations: Add Element, Remove Element, Add<br />

Link, Remove Link, Add Property, Remove Property and<br />

Change Property. These operations support the 2 different<br />

types of architectural model changes described in Section 2 –<br />

structural/topology changes and property changes. These<br />

operations are described next.<br />

1) Add Element<br />

Inserts a new element in a model. A particular case is when<br />

the new element is a sub-element of another element. Usually,<br />

an element has a name or an identifier.<br />

2) Remove Element<br />

Deletes an element from a model. Caution should be taken<br />

when removing elements from a model, as it is important to<br />

maintain the integrity of the model. For instance, if an element<br />

is removed, it is most likely that it will also be necessary to<br />

remove the links associated with that element.<br />

3) Add Link<br />

Inserts a new link connecting elements of the model.<br />

4) Remove Link<br />

Deletes a link from a model. Here again caution should be<br />

taken, as elements without links may result in invalid models.<br />

5) Add Property<br />

Inserts a property in an element or in a link. Usually, the<br />

property has a name or an identifier, as well as other attributes<br />

such as value, default value and type.<br />

6) Remove Property<br />

Deletes a property from an element or from a link.<br />

7) Change Property<br />

Modifies the content of an attribute of a property, e.g., the<br />

actual value, or its type. A similar effect could be achieved by<br />

combining the Remove Property and the Add Property<br />

operations. However, as modifying a property is conceptually<br />

449

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!