1 / 27

MDD approach for the Design of Context-Aware Applications

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:

ratana
Télécharger la présentation

MDD approach for the Design of Context-Aware Applications

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MDD approach for the Design of Context-AwareApplications

  2. Outline • Problem • Objectives • MDD approach: overview • MDD approach phases / UML profile for context-aware applications • Conclusion, Future Work

  3. 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.

  4. 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.

  5. 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

  6. Outline • Problem • Objectives • MDD approach: overview • MDD approach phases / UML profile for context-aware applications • Conclusion, Future Work

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

  8. Phase1: Context Requirements • Context types • Collection requirements • Context quality: precision, correctness, levelOfTrust, etc. • Identification of the relevant context states

  9. UML Extensions for Context Modeling

  10. 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.

  11. Architectural Adaptation

  12. Structural Adaptation

  13. Behavioral Adaptation

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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'), --…

  22. 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

  23. Technical transformations • Generation for several platforms • PIM to PSMs

  24. 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

  25. 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.

  26. 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.

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

More Related