270 likes | 422 Views
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:
E N D
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: • 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) • 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 • 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
Outline • Problem • Objectives • MDD approach: overview • MDD approach phases / UML profile for context-aware applications • Conclusion, Future Work
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 • Context types • Collection requirements • Context quality: precision, correctness, levelOfTrust, etc. • Identification of the relevant context states
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>> 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 • 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 <<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 • 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 <<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 • 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 • 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 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 • 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 • Generation for several platforms • PIM to PSMs
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) • 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) • 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 • Methods to check the consistency of the adaptation rules during the design of applications.