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

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


  • 115 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.


ad