Mdd approach for the design of context aware applications
Download
1 / 27

MDD approach for the Design of Context-Aware Applications - PowerPoint PPT Presentation


  • 116 Views
  • Uploaded on

MDD approach for the Design of Context-Aware Applications. Outline. Problem Objectives MDD approach: overview MDD approach phases / UML profile for context-aware applications Conclusion, Future Work. Problem (1). Design and development of context-aware applications is complex. Context:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MDD approach for the Design of Context-Aware Applications' - ratana


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Mdd approach for the design of context aware applications

MDD approach for the Design of Context-AwareApplications


Outline
Outline

  • Problem

  • Objectives

  • MDD approach: overview

  • MDD approach phases / UML profile for context-aware applications

  • Conclusion, Future Work


Problem 1
Problem (1)

  • Design and development of context-aware applications is complex.

  • Context:

    • Acquired from heterogeneous and distributed sources (sensors, files, applications)

    • Dynamic, require an additional interpretation

  • Adaptation process:

    • Can be based on different types of mechanisms

    • Can be related to the semantics of the application.

  • Context-aware applications need specific development mechanisms.


Problem 2
Problem (2)

  • Several middleware products have been defined to ease the development of context-aware applications

  • Applications developed with the existing middleware:

    • not portable

    • Include technical details that are specific to a given technology

    • their reuse on a different technology require their redevelopment.


Objective
Objective

  • Concentrate efforts on application design

  • Modeling the application independently from the platform

  • Generate automatically the code for several platforms.

  • Need of specific design concepts and modeling tools for context-aware applications


Outline1
Outline

  • Problem

  • Objectives

  • MDD approach: overview

  • MDD approach phases / UML profile for context-aware applications

  • Conclusion, Future Work


Mdd approach overview
MDD Approach: Overview

1- Identification of the required context information

2- Definition of application variability

Platform independent model of the application adaptation

Platform independent model of the context collection

3- Identification of the context collection mechanisms

4- Identification of the adaptation mechanisms

Abstract model of the context platform

Abstract model of the adaptation platform

5- Definition of the target platform and model to model transformations

Platform specific models of the context collection, application adaptation, and non-functional services variability

Output/Input

Feedback

6- Code generation


Phase1 context requirements
Phase1: Context Requirements

  • Context types

  • Collection requirements

  • Context quality: precision, correctness, levelOfTrust, etc.

  • Identification of the relevant context states



Phase2 application variability
Phase2: Application Variability

  • Specification: how the application reacts to the context

  • Types of adaptation:

    • Architectural adaptation: consists in adding and deleting objects to an application

    • Structural adaptation: modifies the objects’ structure by for example adding or deleting methods or attributes to the objects.

    • Behavioral adaptation: adapts the behavior of the applications’ objects.





Profile structure
Profile Structure

<<profile>> Context-Aware Profile

StaticAdaptationAspect

DynamicAdaptationAspect

<<metaclass>>

Class

<<metaclass>>

Interaction

<<metaclass>>

Lifeline

<<stereotype>>

Optional

<<stereotype>>

VariableStructure

<<stereotype>>

VariableSequence

<<stereotype>>

OptionalLine

contextStateIds: Set

<<stereotype>>

Variation

<<stereotype>>

SequenceVariant

contextStateIds: Set

contextStateIds: Set


Phase3 context collection mechanisms
Phase3: Context Collection Mechanisms

  • Approach the platform that will be used to collect context

  • Define an abstract model of the platform

  • Types of sensors: physical sensors, logical sensors, virtual sensor

  • Preprocessing :

    • Aggregation/composition

    • Reasoning


Uml extensions for context collection mechanisms modeling
UML Extensions for Context Collection Mechanisms Modeling

<<profile>> Context-Aware Profile

StaticContextMechanisms

<<metaclass>>

Class

<<metaclass>>

Association

<<stereotype>>

Sensor

<<stereotype>>

collect

<<stereotype>>

aggregate

properties: Set

parameters: Set

<<stereotype>>

PhysicalSensor

<<stereotype>>

VirtualSensor

<<stereotype>>

LogicalSensor

technology: String

softwareEntity: String

softwareEntity: String


Phase 4 adaptation mechanisms
Phase 4: Adaptation Mechanisms

  • Approach the platform that will be used to perform adaptations

  • Define an abstract model of this platform.

  • Identify the mechanisms that are required to adapt the application:

    • Reflection

    • Contracts

    • AOP

    • Component-based paradigm


Uml extensions for adaptation mechanisms modeling
UML Extensions for Adaptation Mechanisms Modeling

<<profile>> Context-Aware Profile

StaticAdaptationMechanisms

DynamicAdaptationMechanisms

<<metaclass>>

Class

<<metaclass>>

Interaction

<<metaclass>>

Association

<<stereotype>>

StaticAdaptationMechanism

<<stereotype>>

DynamicAdaptationMechanism

<<stereotype>>

RequiredMechanism

conditions: Set

conditions: Set


Step 5 target platform and model to model transformations
Step 5: Target Platform and Model to Model Transformations

  • Define abstract transformations that transform models without introducing technical details

  • Define concrete transformations to generate platform-specific models

  • Three steps:

    • Definition of non-functional transformations

    • Definition of the Target Platform

    • Definition of technical Transformations


Non functional transformations
Non-functional Transformations

  • Identify the non-functional services required by the application: distribution, security, deployment, etc.

  • Non-functional services are required to be adaptive.

  • Goal: automatically generate the variability models of non-functional services

  • Transformations of the application variability

  • Generate variability models of non-functional services


Non functional transformations1
Non-functional transformations

rule optional {

from class : UML!Class (class.hasStereotypeApplied('Optional'))

to optionalInteraction : UML!Interaction mapsTo class (

name <- 'deploy()', message <- deployMessage, message <- instantiateMessage, message <- deleteMessage, fragment <- combinedFragment),

variableSequenceStereotype : UML!Stereotype mapsTo class (

name <- 'VariableSequence'),

--…


Definition of the target platform
Definition of the Target Platform

  • Study the existing context and adaptation platforms

  • Choose the one that best satisfies the required context and adaptation mechanisms

  • Extend the platforms according to the requirements


Technical transformations
Technical transformations

  • Generation for several platforms

  • PIM to PSMs


Implementation
Implementation

  • Context-Aware Profile : MagicDraw UML 12.0

  • Context target platform: Context Toolkit

  • Adaptation target platform: CARISMA

  • Model to model transformations are implemented in ATL

  • UML to XML transformations in XSLT


Conclusion 1
Conclusion(1)

  • Design and development of context-aware applications is complex.

    • Require the identification of the context information that has an impact on the application

    • The specification of the various behaviors of the application according to this context information.

  • Apply an MDD approach in the design and development of context-aware applications:

    • Concentration of efforts on applications design.

    • Facilitates the verification of the applications before their integration.

    • Reduces the risk of error and the complexity of context-aware applications.


Conclusion 2
Conclusion(2)

  • Phases cover preparation activities, structure and plan the work

  • Step by step approach provides extensibility and reusability

  • Transformations: more general sense of separation of concerns than just pure technical concerns

  • A context-aware UML profile to model context-aware applications independently from the platform.


Future work
Future Work

  • Methods to check the consistency of the adaptation rules during the design of applications.