=Paper= {{Paper |id=Vol-1723/2 |storemode=property |title=Towards a Meta-Model for Quality-aware Self-Adaptive Systems Design |pdfUrl=https://ceur-ws.org/Vol-1723/2.pdf |volume=Vol-1723 |authors=Esma Maatougui,Chafia Bouanaka,Nadia Zeghib |dblpUrl=https://dblp.org/rec/conf/models/MaatouguiBZ16 }} ==Towards a Meta-Model for Quality-aware Self-Adaptive Systems Design== https://ceur-ws.org/Vol-1723/2.pdf
        Towards a Meta-Model for Quality-aware Self-
                  Adaptive Systems Design
                                   Esma Maatougui, Chafia Bouanaka, Nadia Zeghib
                                                    LIRE Laboratory
                                     University of Constantine 2-Abdelhamid Mehri
                                                   Constantine, Algeria.
      esma.maatougui@univ-constantine2.dz, chafia.bouanaka@univ-constantine2.dz, nadia.zeghib@univ-constantine2.dz

  Abstract—Self-adaptation is a promising technique to manage       key issue to be faced concerns the assessment of self-adaptive
software systems maintainability and evolution. A self-adaptive     systems effectiveness, in terms of their ability to meet the
system is able to adapt its structure and behavior autonomously     required QoS under different context conditions. In particular,
at run-time in response to changes in the context in which it is    this assessment should take into account the cost of the
actually running to achieve particular quality goals. However,
                                                                    adaptation process itself. Since, adapting a system can require
designing and verifying quality-aware self-adaptive systems
remains a challenging task. In this paper, we propose a formal      time and system resources to be carried out, and this cost could
approach that combines the advantages of both component-            even outweigh the potential benefit [3]. In addition to
based modeling (e. g., reduces model complexity), MDE (e. g.,       component-based software engineering (CBSE) [4], Model-
facilitates the development process) and Maude (a formal            driven engineering (MDE) [5] is an emerging approach to
language) to define a development process for quality-aware self-   address these and other challenges.
adaptive software. We particularly focus on the specification of        MDE advocates the use of models, not only for capturing
quality-aware adaptation strategies required to ensure              high-level design ideas and documenting the final product, but
continuous satisfaction of non-functional requirements (Quality     as key artefacts throughout the development process. The goal
of service).
                                                                    is to reduce the development time and efforts, and to
  Index Terms— Self-adaptive systems; QoS; Component-Based          increase product quality by raising the level of abstraction
Software Engineering; Model-Driven Engineering; Maude.              and automating some time consuming and error prone
                                                                    activities, e.g., by generating code directly from detailed
                       I. INTRODUCTION                              models instead of implementing it manually [6].
                                                                        One major advantage of MDE is the opportunity to
   Nowadays, users extensively rely on software systems             automatically transform design models into analytical ones,
quality, especially in the presence of parametric and variable      thus enabling formal verification of system properties;
execution contexts. However, ensuring the required qualities        including non-functional ones. A largely adopted approach is
of software systems that might operate in dynamic                   the combination of MDE and formal methods to ensure and
environments, poses severe engineering challenges, since they       guarantee functional correctness of the adaptation logic. This
must become more versatile, flexible, resilient, dependable,        provides a rigorous means for modeling, specifying and
energy-efficient, recoverable, customizable, configurable, and      reasoning about self-adaptive systems’ behavior, both at design
self-optimizing by adapting themselves to changes that may          time and at runtime.
occur in their operational contexts, environments and system            A variety of research work has been realized and significant
requirements. Self-adaptation [1] is generally considered as a      efforts invested to propose models for QoS-aware self-adaptive
promising solution to manage the complexity of such software        systems. However, existing techniques for non-functional
systems since it enables the system to adapt itself to internal     properties analysis rely on very specific quality-related
dynamics and changing conditions in the runtime environment         formalisms such as Petri Nets (PNs), or Markovian models, but
to achieve particular quality goals automatically.                  software systems are rarely represented in these terms [3].
  A key characteristic of self-adaptive systems engineering is      Besides, most of these approaches do not take into account the
to provide guarantees about the required runtime quality            separation of concerns between user requirements in terms of
properties. Nevertheless, the central role of QoS requirements      QoS contract and system QoS parameters. Moreover,
has to be considered at the early stages of design. Hence, the      designers, who usually lack sufficient experience in
emergence of the software system architecture provides the          requirements engineering, prefer design-oriented formalisms
right level of abstraction, sets the basis to achieve both          such as UML [7] which reflects more the modeling intent.
functional and non-functional requirements, and needs to be
supported by methodologies and tools to capture these two               In this paper, we present a component-based contractual
dimensions of the product at the same time which generally can      approach to define a model for designing, specifying and
deal with the challenges of self-adaptation [3]. The component-     verifying self-adaptive systems with respect to QoS contracts.
based approach can provide an appropriate level of abstraction      To address this problem, we define a model for QoS contracts
to describe dynamic changes in a system structure and increase      as a natural and effective way for user requirements.
the reusability and portability of software pieces. However, a
   The remainder of the paper is organized as follows. Section     model reusability and maintainability. Our model for quality-
2 discuses some models for self-adaptive systems that are          aware self-adaptive systems provides a clear satisfaction of
relevant to our work. Section 3 is dedicated to the presentation   QoS contacts by applying adaptation strategies in case of
of our model and the generation of the corresponding formal        violation of QoS constraints.
specification. Section 4 illustrates our proposal via a case
study to validate our model. Finally, Section 5 rounds up the          III. A COMPONENT-BASED CONTRACTUAL
paper.                                                                 APPROACH FOR SELF- ADAPTIVE SYSTEMS
                    II. RELATED WORK
                                                                      We adopt a component-based contractual approach to
    A variety of models for Self-adaptive systems have been        define a model for designing and formally specifying self-
proposed and various modeling methodologies have been              adaptive systems with respect to QoS contracts CBSE can help
adopted, including MDE [7, 8], requirements engineering [9]        in the development of self-adaptive software in two ways.
and component-based development [12].                              First, it is easier to design and implement adaptable software
    Vogel and Giese [8] propose a MDE-based model for Self-        relying on component models. Second, the adaptation engine
Adaptive Software with EUREMA approach that realizes self-         needs to be modular and reusable. Additionally, CBSE can
adaptation using the so-called executable runtime mega-            also be adopted in the development phase of the self-adaptive
models. In [7], a UML-based modelling language called Adapt        system. However, the Component-oriented paradigm still
Case Modeling Language (ACML) is presented. The language           requires comprehensive and sound QoS contract-aware self-
allows a separate and explicit specification of self-adaptivity    adaptation theories, models and mechanisms further
concerns using the concept of the MAPE-K loop. Based on            trustworthy, extensible and reusable in order to realize its
formal semantics, they apply quality assurance techniques to       contract. Moreover, in the CBSE vision, contracts play a
the modeled self-adaptive system.                                  fundamental role, as they must capture the functional and
    Brown and Cheng [9] adopt a Goal-Oriented Requirements         extra-functional user requirements.
Engineering to present the Awareness-Requirement and                  We define a QoS-aware component-based model for self-
propose a way to elicit and formalize such requirements using      adaptive systems where context and functional entities are
the OCL language. A methodology for generating feedback            viewed as components that interact via adaptation strategies,
from such requirements, as well as fragments of a prototype        and designed in an entirely independent manner and only
implementation founded on an existing requirements                 relationships between them are specified, thereby simplifying
monitoring framework is proposed. Elkodary et al. present an       the adaptation mechanisms. To achieve this goal, we model an
approach, named FUSION [10], which uses feature diagrams           adaptation strategy as a pair of elements: an action associated
as a system model where self-adaptation is realized by             with the notification of events that violate their contracted
switching between different system configurations. The self-       QoS constraints. The adaptation strategy adapts system
adaptation in FUSION is goal-driven, i.e., relying on              functionalities according to context changes in terms of
predefined functional or non-functional goals. Each goal           variations on system structure and/or behavior.
consists of a metric and a utility. While the metric is a             The model is designed with a focus on the separation of
measurable entity as response time, a utility is a feature which   concerns between the specification of QoS parameters;
has influence on the metric, and is triggered when FUSION          defining user quality requirements, and software components
detects that a goal is violated. The violation of a goal is        quality parameters (see Figure 1). The first ones are specified
detected via defined monitoring functions.                         in the QoS contract while the second ones are directly defined
    DYNAMICO [11] is a reference model for engineering             of the component specification.
adaptive software aligned with the vision of self-adaptive
systems, where dynamic adaptation is necessary to ensure the
continuous satisfaction of their functional requirements while
preserving the predefined conditions on Quality of Service
levels. These QoS levels are usually represented in the form of
Service Level Agreements (SLAs), and their enforcement
mechanisms are based on contracts and policies. Castaneda
Bueno designs a component-based reference architecture [12]
with distribution and extensible capabilities for self-adaptive
systems according to the reference model DYNAMICO.
    In the present work, we propose a component-based
                                                                               Figure. 1. An Overview of the proposed model.
contractual approach for quality-aware self-adaptive software
systems specification that supports system and QoS contracts           QoS contracts comprise a number of quality of service
modeling together with the corresponding adaptation logic. The     constraints that might be satisfied and preserved by a managed
proposed approach defines QoS constraints in an independent        system. These QoS constraints are specified for each of the
way from system QoS parameters. This separation of                 different context conditions that the managed system is faced
concerns reduces system modeling complexity and increases          with while it is running. Thus, the continuous satisfaction of a
QoS contract (i.e., its preservation) implies satisfying each of      meta-class defines anything that interacts and affects the target
the QoS constraints that the user expects, under each of the          or functional system. The Context is defined by its ContextID
corresponding varying conditions of execution contexts. At            and the corresponding possible values.
runtime, once these conditions actually occur in the execution
context of the managed application, the respective QoS                    C. The third part contains the AdaptationStrategy meta-
constraints must be monitored, and their fulfillment enforced.        class, which represents scenarios of adaptation that will be
    To be able to automatically ensure QoS contracts, a               applied in the case of violation of the QoS Constraints. These
component-based self-adaptive system requires (i) to maintain         scenarios are defined by a set of adaptation rules that can be
a structural representation of itself (ii) to have a representation   of the following types: (i) add a component to the actual system
of the contracted QoS constraints under the different context         configuration, (ii) remove a component, and (iii) replace one
conditions; (iii) to be self-monitoring, that is, to identify and     component by another.
notify events on the QoS constraints violations; and (iv) to
apply the dynamic reconfiguration in response to events                   D. The last part of the meta-model contains necessary
notifying imminent violation of QoS constraints, as specified in      concepts to define the functional system configuration, viewed
the QoS contracts.                                                    as a set of components which require or provide services to
    Based on the previous considerations, we build our                each other through specific interfaces. These components are
component-based QoS-aware model for self-adaptive systems.            represented by the Component meta-class and defined by a
We first present our meta-model-based definitions for                 name specified in the CName attribute. A component
component-based self-adaptive software structure and QoS              comprises a set of Quality attributes (quality attributes of the
contracts respectively. Then, we define transformation rules to       running service), and a set of provided interfaces
be applied to generate automatically a Maude formal                   (ProvidedInterface) and Required ones (RequiredInterface).
specification of models instantiating the already defined meta-       Each interface exposes a set of services that are required or
model.                                                                provided by the component. Connections in our model are
    3.1. Model-based self-adaptive systems design                     dynamic and only established whenever one component is
                                                                      providing the service and the other one is requesting it.
    Our model exploits the MDE techniques to provide a
solution for self-adaptation via meta-models which describe              3.2. Model Transformation for Generating Maude
concepts that can be used for constructing models that conform        specifications
to its definition, and describes in an abstract way, the possible
structure of the underlying models. The meta-model of Figure             Albeit, MDE tries to facilitate software development and
2, specifies the various concepts that intervene to define the        simplify the design process by specifying meta-models
structure of quality-aware self-adaptive systems together with        focusing on the structural and static semantics of software
their pertinent relationships. It is structured in four parts:        systems, it lacks necessary concepts to define the semantics or
                                                                      behavior of software systems and thus verification
    A. The first part contains four meta-classes representing a       mechanisms that are among the major issues in specifying
quality of service contract. A QosContract is defined by its          self-adaptive systems. A reasonable and desirable formal
name and a set of QoS properties. A QoS property denotes a            method to be adopted for this scope should be powerful
specific non-functional characteristic of the considered system       enough to capture the principal models of computation and
such as its performance, reliability, and cost. A QoSproperty         specification methods, and endowed with a meta-model-based
is defined by a name and a weight reflecting the relative             definition conforming to the underlying meta-modeling
importance of the QoSproperty with regards to the user                framework. Additionally, the formal approach should allow
preferences. To facilitate the specification of user preferences,     working at different levels of abstraction, and be executable,
three weight values are predefined in the Weight Enumeration          in order to validate the meta-model semantics. Rewriting logic
(high, low, medium). Each QosProperty needs one or more               [14] via its implementation language Maude [15] is an
metrics to be quantitatively measured. A QosMetric, defined           adequate candidate for the definition of the semantics basis of
by its idMetric, represents a non-functional property which           our meta-model for many reasons. First, the versatility of
belongs to a domain of values as response time. Finally, we           rewrite theories can offer the appropriate level of abstraction
associate a QosConstraint to the entire or a subset of QoS            for addressing the specification, modelling and analysis of
properties in different conditions of context. In general, a          self-adaptive systems and their environment within one single
QosConstraint consists of a relational operator (e.g., <, >, =)       coherent framework. Second, since Maude is a rule-based
and a value representing a threshold.                                 language, the adaptation logic can be naturally expressed as a
    B. The second part contains two meta-classes                      subset of the available rules, and the meta-programming
representing context sensors used to model context sources and        capability of Maude can be exploited to enforce the execution
values. The ContextSensor meta-class is defined by its                of a given adaptation rule to maintain QoS parameters via
SensorID and sensor type. Three types of sensors are identified       Maude strategies. Third, the formal analysis toolset of Maude
in [13] : Physical, Virtual and Logical sensors. Sensor types are     can support simulations and analysis over the self-adaptive
represented via the SensorTypes Enumeration. The Context              system.
                    A                                             B
                                                                                       C                             D




                                                Figure 2.Self-adaptive system meta-model.

   The bridge between MDE and formal methods is                        Strategies respectively. The first mapping of Table 1 concerns
established via model transformation techniques, realized via a        structural concepts that can be defined as an Acceleo template
set of transformation rules. A model transformation consists in        as follows:
general of a computation that applies repeatedly a set of
transformation rules to a model, where the model represents            [template public generateElement(Package : EPackage)]
the structure of a sentence in a given formal language, defined        [comment @main/]
                                                                       [file (Package.name.concat('.maude'), false, 'UTF-8')]
by a meta-model. EMF (Eclipse Modeling Framework) [16]                   (omod [Package.name.toUpperFirst()/] is
and specially Acceleo [17] are used in our case as a modeling                 for (c: EClass | Package.eAllContents(EClass))
framework and code generator implementation of the OMG’s               separator('\t')]
Model-to-text specification for building tools and applications            [if c.name.equalsIgnoreCase('AdaptationStrategy')=
                                                                       false)]
based on models defined in the Ecore meta-model. This tool                  [if(c.name.equalsIgnoreCase('AdaptationRule')=
provides the capability to define advanced code generators for         false)]
transforming models to a target code by defining                           class [c.name.toString()/] | [for (a: EAttribute
transformation templates.                                              |c.eAttributes ) separator(',')] [a.name/] :
                                                                       [if (a.eAttributeType.name='EString')]String [/if]
                                                                       [if (a.eAttributeType.name<>'EString')]
  Table 1 illustrates some results of transformation rules             [a.eAttributeType.name/] [/if] [/for]
defined between the self-adaptive meta-model and the formal            [if (c.eReferences<>null)] ,
semantics. The meta-model and the imposed constraints                  [c.eReferences->first().name/] [/if] : OidList.
provide the capability to achieve a formal specification                    [/if]
                                                                            [/if]
generation through template models. Our goal is to transform                [/for]
EClass, EAttribute, EReference and EOperation of the self-             endom)
adaptive model to Maude constructs to facilitate self-adaptive         [/file]
systems specification.                                                 [/template]

                                                                          The template for structural concepts generates a Maude file,
   Since Maude offers two possible representations, the
                                                                       using a tag [file] to specify the output file, that contains the
algebraic and the object-oriented ones, we have adopted an
                                                                       various classes and their attributes as specified in Table 1. It
object-oriented representation in order to reflect the
                                                                       begins by testing if the considered element is not a behavioral
hierarchical structure of self-adaptive systems and avoid the
                                                                       concept, i.e., neither an adaptation rule nor an adaptation
flat structure while adopting algebraic terms. In addition, all
                                                                       strategy. Such verification is realized via the conditional
structural concepts are transformed to Maude classes while
                                                                       statement [if]. Then, it generates a class from each EClass of
behavioral concepts as Adaptation Rules and Adaptation
                                                                       the meta-model via the [for] bloc, together with the
Strategies are transformed to rewriting rules and Maude
                                                                       corresponding attributes.
                                                  TABLE 1. Transformation results.

                                                         Structural concepts
      Eclass                                                       Maude specification
QosContract           class QosContract | name : String , QosProperties : OidListe .
QosProperty           class QosProperty | name : QosPropertyName , Weight : Weight , Qosmetrics : OidListe .
QosMetric             class QosMetric | idMetric : String , QosContraints : OidListe .
                      class QosConstraint | value : Float , operator : String , contextValue : Oid.
QosConstraint
FonctionnelSys        class FonctionnelSystem | Components : OidListe .
Component             class Component | Cname : String , QualityAttribute : Oid , ProvidedInterfaces : OidListe ,
                      RequiredInterfaces : OidListe .
                      class ProvidedInterface | ProvidedServices : OidListe .
ProvidedInterface
                      class RequiredInterface | RequiredServices : OidListe .
RequiredInterface     class Service | Servicename : String ,QualityAttribute : Oid , isActive : Bool ,Parameters :
Service               OidListe.
                      class QualityAttribute | name : String , value : Float .
                                                        Behavioral concepts
AdaptationRule        crl [ReplaceComponent] :
                      < F : FonctionnelSystem | Components : C CL >
                      < C : Component | Cname : name , QualityAttribute: Q1 ,ProvidedInterfaces: I PIL ,RequiredInterfaces
                      : RIL >
                      < C' : Component |Cname: name2 ,QualityAttribute: Q2 ,ProvidedInterfaces: IL ,RequiredInterfaces: L >
                      < Q1 : QualityAttribute | name : QN , value : V1 >
                      < Q2 : QualityAttribute | name : QN , value : V2 >
                      =>
                      < F : FonctionnelSystem | Components : (del(C, (add(C' , CL )) )) >
                      < Q2 : QualityAttribute | >
                      < C' : Component |Cname: name2 ,QualityAttribute: Q2 ,ProvidedInterfaces: IL , RequiredInterfaces: L
                      >
                      if V2 < V1 .
AdaptationStrategy    (fmod SelfAdapt-STRA is
                      pr REW-SEQ .
                      op SelfAdaptStrat : -> List{Tuple{Qid, Substitution}} [memo] .
                      eq SelfAdaptStrat = ('ReplaceComponent, 'F:Oid <- ''F.Qid ; 'C:Oid <- '' FireManComp.Qid ;
                      'C':Oid <- '' FireEngComp.Qid ) .


   IV. MOTIVATING ADAPTATION SCENARIO                                 adaptation objectives, we should identify detectable contexts
                                                                      reflecting the software running state or physical
    The scenario of a firefighting system [18, 19] is used as         environment, and then identify adaptive actions that can be
an example. Fire fighters often work in dangerous and                 performed at runtime to change the system behavior. In this
dynamic environments. Moreover, a fire accident is one of             example, the detectable fire signals (contexts) are various,
the most frequent incident types. The early detection and             such as CO, CO2, along with high temperature, and strong
timely preventive measures are effective methods for                  flame. Therefore, the context to be chosen depends on the
limiting fire damage and reducing casualties. In this                 occurring place and the fire disaster type.
example, the firefighting system is a component-based
software system designed to detect fire signals and make                 Self-adaptive Firefighting System is used to monitor
effective fire-management strategies. When fire danger                indoor fire disasters. It is composed of two essential parts,
occurs, these components dynamically restructure into a               see Figure 3: context layer and functional one. We identify
firefighting plan by choosing appropriate firefighting                Temperature, Smoke Concentration, CO Concentration and
resources from the component library. These well-                     Infrared Wavelengths as different contexts. The
restructured components then drive the corresponding fire-            corresponding Maude specification of the available contexts
extinguishing installations to perform the firefighting plan.         is given by the following fragment of code:

    The Firefighting System automatically takes effective             < 'CTXS1 : ContextSonsor | SonsorID : "FireMonitor_TEM" , Type :
measures to prevent the fire disaster (Goal). This goal can be        PhysicalSonsor , context : 'CTX1 >
further decomposed into: (G1) detect fire signals in the early        < 'Temperature : Context | ContextID : "Temperature" ,ContextValue : "65" >
                                                                      < 'CTXS2 : ContextSonsor | SonsorID : "FireMonitor_CO" , Type :
stage and (G2) assemble a set of fire-fighting devices in
                                                                      PhysicalSonsor , context : 'CTX1 >
response to a real-time fire situation. To achieve these self-        < 'CO-Con : Context | ContextID : "CO-Con" , ContextValue : "70%" >
                                                         Figure 3. Self-adaptive Firefighting System model.

   We also identify three types of components: Fireman,                                this QosContract is given by the following fragment of
Fire Engine and Extinguisher. In the example, fire-                                    code:
prevention measures are made by dynamically restructuring
the firefighting components. The corresponding Maude                                   < 'QosContract : QosContract | name : "FireFighting" , QosProperties : 'P1 >
specification of these components is given by the following                            < 'P1 : QosProperty | name : "Performance" , Weight : hight , Qosmetrics :
                                                                                       'M >
fragment of code:
                                                                                       < 'M : QosMetric | idMetric : "ResponseTime" , QosContraints : 'C1 'C2 >
                                                                                       < 'C1 : QosConstraint | value : 30.0 , operator : "<" , contextValue :
< 'F : FonctionnelSystem | Components : 'FireManComp 'ExgComp >                        'Temperature >
                                                                                       < 'C2 : QosConstraint | value : 20.0 , operator : "<" ,contextValue : 'Co-Con >
< 'FireManComp : Component | Cname : "FireMan" , QualityAttribute : 'Q1 ,
ProvidedInterfaces : 'FM_Interface >
< 'FireEngComp : Component | Cname : "FireEngineComp" , QualityAttribute                  As an example of adaptation strategies application, we
: 'Q2 , ProvidedInterfaces : 'FE_Interface >                                           consider the case of a violation of the response time in the
< 'ExgComp : Component | Cname : "Extinguisher_Comp" , QualityAttribute :              Temperature context by the actually running component
'Q3 , ProvidedInterfaces : 'EX_Interface >                                             "FireManComp". In this case, the system detects a violation
< 'FM_Interface : ProvidedInterface | ProvidedServices : 'StartCompFM >                of QoS Constraint and applies the adaptation strategy that
< 'FE_Interface : ProvidedInterface | ProvidedServices : 'StartCompFE >                replaces the "FireManComp" by "FireEngineComp"
< 'EX_Interface : ProvidedInterface | ProvidedServices : 'StartCompEX >
                                                                                       component. Figure 4 shows the result of the adaptation
< 'StartCompFM : Service | Servicename : "StartCompFM" , QualityAttribute :
                                                                                       strategy. "FireEngineCom” component that respects the
'Q1 , isActive : true , Parameters : 'PL >
                                                                                       QosConstraint “C1” (reponse time of FireEngineComp =
< 'StartCompFE : Service | Servicename : "StartCompFE" , QualityAttribute :
Q2 , isActive : false , Parameters : 'PL >
                                                                                       20ms), is added to the list of components in the functional
< 'Q1 : QualityAttribute | name : "ResponseTime" , value : 50.0 >
                                                                                       system and its service “StartCompFE” becomes running
< 'Q2 : QualityAttribute | name : "ResponseTime" , value : 20.0 >                      (isActive : true). It replaces “FireManComp” which does
                                                                                       not meet the quality requirements.
   The “FireManComp” component has “Q1” as a quality
                                                                                       Maude> …
attribute which represents the response time of 50 sec and a                           Introduced module SelfAdapt-STRA
Provided Interface “FM_Inerface” that proposes a unique
running service “StartCompFM”.                                                         result Configuration : …
                                                                                       < 'F : FonctionnelSystem |
                                                                                           Components :('ExgComp 'FireEngComp)> <
   In the firefighting system, we are concerned with the                               'FE_Interface : ProvidedInterface | ProvidedServices :
analysis of the performance quality parameters in terms of                             'StartCompFE >
the response. For this reason, we identify the                                         < 'FireEngComp : Component | Cname :
Firefighting_Contract which comprises the Performance                                      "FireEngineComp",ProvidedInterfaces :
                                                                                       'FE_Interface,QualityAttribute : 'Q2 >
as a QosProperty and ResponseTime, see Figure 3, as a
                                                                                       < 'StartCompFE : Service | Parameters : 'PL,
metric that is used to evaluate the performance. We propose                            QualityAttribute : 'Q2, Servicename : "StartCompFE",
two QosConstraint in this example: The response time in the                            isActive : true > < 'StartCompFM : Service | Parameters
Temperature context must not exceed 30 sec. But, in the                                : 'PL, QualityAttribute : 'Q1,Servicename :
context of CO-Concentration, the response time might not                               “StartCompFM",isActive : false >
exceed 20 sec. The corresponding Maude specification of
                                                                                                          Figure. 4. A strategy application result.
                        V. Conclusion                                     International Symposium on Software Engineering for
                                                                          Adaptive and Self-Managing Systems , ser. SEAMS ’2013.
                                                                     [8] T. Vogel and H. Giese. Model-driven engineering of self-
   In this paper, we have proposed a component-based                      adaptive software with EURUMA. ACM Trans. Auton Adapt.
contractual approach for designing and specifying self-                   Syst., Jan. 2014.
adaptive systems with respects to Quality of Service                 [9] Brown, G., Cheng, B.H., Goldsby, H., Zhang, J.: Goal-
contracts. The approach establishes a clear separation of                 oriented specification of adaptation requirements engineering
concerns between the specification of user definable QoS                  in adaptive systems. In: ACM 2006 , Shanghai, China, 2006.
quality parameters and quality parameters of the software            [10] A. Elkhodary, N. Esfahani, and S. Malek. FUSION: a
                                                                          framework for engineering self-tuning self-adaptive software
components. To implement the proposed approach, we have                   systems. In Proceedings of the eighteenth ACM SIGSOFT
combined the MDE techniques and a formal method in                        international symposium on foundations of software
order to provide an intuitive modeling notation, supporting a             engineering, FSE '10, pages 7-16, New York, NY, USA,
graphical view, but still having a rigorous syntax and                    2010.
semantics. Such combination also facilitates the use of              [11] N. M. Villegas, G. Tamura, H. A. M̈uller, L. Duchien, and R.
                                                                          Casallas, DYNAMICO: A Reference Model for Governing
formal methods in many stages of the development process                  Control Objectives and Context Relevance in Self-Adaptive
including the analysis phase that includes validation and                 Software Systems , ser. LNCS. Springer, 2013.
verification techniques.                                             [12] L.Castaneda Bueno, A Reference Architecture for
As future work, we intend to exploit main characteristics of              Component-Based Self-Adaptive Software Systems. Magister
                                                                          Graduation Project. Department of Information and
formal methods to rigorously verify the behaviors of model-               communication           Technologies         Faculty       of
based self-adaptive systems, formal specifications are                    Engineering.Universidad ICESE. 2012
automatically generated. We will mainly adopt a stochastic           [13] J. Zhang and B. Cheng. Model-based development of
model-checking technique to ensure quality properties of                  dynamically adaptive software. In 28th International
self-adaptive systems. Besides, we plan to develop a                      Conference on Software Engineering . ACM, 2006
modeling tool that facilitates the creation and the                  [14] Meseguer, J., Conditional rewriting logic as a unified model
                                                                          of concurrency. Theor. Comput. Sci. 96 (1), 73–155. 1992.
implementation of quality-aware self-adaptive systems. We
                                                                     [15] Clavel, M., Durn, F., Eker, S., Lincoln, P., Mart-oliet, N.,
aim to integrate formal techniques within the MDE ones.                   Meseguer, J., Talcott, C.,. Maudemanual.version 2.6. 2011
The role of MDE is the definition of system graphical                [16] Steinberg D, Budinsky F, Paternostro M, Merks E, Eclipse
models and formal methods serve to validate and verify the                EMF. Modeling framework. 2nd editionAddison-Wesley;
self-adaptive system in order to guarantee that system model              2009.
satisfies global properties and particularly quality ones.           [17] http://www.eclipse.org/acceleo.
Furthermore, we aim to apply our approach on                         [18] D Han, Q Yang, J Xing, J Li, H Wang, FAME: A UML-based
                                                                          framework for modeling fuzzy self-adaptive software, Article
supplementary case studies in the goal of optimizing the                        in Information and Software Technology. April 2016.
existing quality properties modeling, the verification and
                                                                     [19] C An, Y Luo, A Timm-Giel.Adaptive Routing in Wireless
implementation capabilities of the self-adaptive systems                  Sensor Networks for Fire Fighting. - Information and
modeling framework.                                                       Communication Technologies, Springer, 2012.

                 ACKNOWLEDGMENTS

    This work is published through funding provided under
the CMEP/TASSILI project N°08MDU945.


                       REFERENCES
[1] R. Laddaga , P. Robertson , Self-adaptive software: a position
    paper, in: Proceed-ings of International Workshop onSelf-Star
    Properties in Complex Information Systems, Bertinoro, 2004.
[2] Cheng, B., et al. . Software Engineering for Self-Adaptive
    Systems: A Research Roadmap. Software Engineering for
    Self-Adaptive Systems, 2009.
[3] V.Grassi,     R.Mirandola,      E.Randazzo,    Model-Driven
    Assessment of QoS-Aware Self-Adaptation, Software
    Engineering for Self-Adaptive Systems, 2009.
[4] George T. Heineman and William T. Councill, editors.
    Component-Based Software Engineering: Putting the Pieces
    Together. Addison-Wesley Longman, 2001.
[5] R. da Silva, Model-driven engineering: a survey supported by
    a unified conceptual model, Comput. Lang. Syst. Struct. 2015.
[6] J.Carlson & al. Deployment Modelling and Synthesis in a
    Component Model for Distributed Embedded Systems; 2010.
[7] M. Luckey and G. Engels, “High-quality specification of self-
    adaptive software systems,” in Proceedings of the 8th