Levels of Independence in AspectOriented Modeling Workshop on





















- Slides: 21
Levels of Independence in Aspect-Oriented Modeling Workshop on Model-driven Approaches to Middleware Applications Development June 17, 2003 Jeff Gray, Yuehua Lin, Jing Zhang gray (at) cis. uab. edu http: //www. gray-area. org This research is funded by DARPA/IXO, under the PCES program.
Shameless Plug for CFPs n Workshop on Domain-Specific Visual Languages q q September 22, 2003 (GPCE Conference - Erfurt, Germany) Papers due: 30 June http: //www. cis. uab. edu/info/GPCE-DSVL 3/ n 3 rd OOPSLA Workshop on Domain-Specific Modeling (Domain-Driven Development Track) q q October 26, 2003 (OOPSLA - Anaheim, CA) Papers due: 15 August http: //www. cis. uab. edu/info/OOPSLA 2003 -DSM
Shameless Plug for CFPs n Aspect-Oriented Modeling Workshop q q q October 20 -24, 2003 UML Conference (San Francisco, CA) Papers due: 25 August http: //www. cs. iit. edu/~oaldawud/AOM/index. htm
Types of Transformation & Translation n Horizontal transformation q q Transformation within the same representation level of abstraction e. g. , MDA PIM->PSM, model weaving (VEST, C-SAW), code refactoring Compute. Position C++ Compute. Position with Locking C++ Current Focus: New model weaver (C-SAW) integrated within GME n Vertical translation q q Typically, translation, or synthesis, between layers of abstraction e. g. , MIC interpreters, CASE-tool scripting and reverse engineering, PSM->PSI Current Focus: Vertical transformation – higher level models transform existing code base (rather than synthesize new code or configuration information) Nav. Display C++
Motivating Problem – Crossccuting Constraints in Real-Time/Embedded Models Changeability ? ? ? n Base models become constrained to capture a particular design Multiple Levels of Hierarchy c A B d Replicated Structures F e B n Constraints that are related to some global property are dispersed across the model c d B e Context Sensitive Crosscutting Constraints c d e
“Small changes in requirements entail large changes in the structure and configuration” [Sussman, 1999] Gerald Jay Sussman, “Robust Design through Diversity, ” DARPA Amorphous Computing Workshop, 1999. .
Motivation Problems: q Difficult to specify and manage crosscutting concerns (e. g. , constraints) in model-based systems; q Lack of tool support for automatically weaving constraints into models; q New: Lack of a core weaving engine that is independent of modeling environments.
Previous Work (Solution) Domain-Specific Strategies strategy Apply. Constraint(constraint. Name : string, expression : string) { n Domain-specific strategies (encoded in a DSL) are used to instantiate a new model weaver n Specification aspects and base model are sent through the weaver add. Atom("OCLConstraint", "Constraint", constraint. Name). add. Attribute("Expression", expression); } strategy Remove. Constraint(constraint. Name : string) Apply. Constraint(constraint. Name, expression); } Meta-weaver Framework Strategies (C++) Domain-specific Models Specification Aspects B constraint FOOB 2 { // apply a specific constraint to “B 2” only in Structural models("Processing. Compound")-> // apply a specific constraint to all nodes beginning with “B” - use wildcard in Structural models("Processing. Compound")-> select(p | p. name() == "B*")->Power. Strategy(1, 100); } c 3 1 c B 2 d e Constrained Models d e n The weaver distributes constraints across the base model
Two levels of weaving <? xml version="1. 0" encoding="UTF-8"? > <!DOCTYPE project SYSTEM " mga. dtd"> <project guid="{0000 -0000 -00000000}" cdate ="Thu Nov 30 14: 15: 40 2000" mdate="Thu Nov 30 14: 15: 40 2000" metaguid="{0000 -0000 -00000000}" metaname ="PCES"> <name>bit 1</name> <comment></comment> <author></author> <folder id="id-006 a-00000001" kind=" Root. Folder"> <name>bit 1</name> <folder id="id-006 a-00000002" kind="Structural"> <name>Structural</name> <model id="id-0065 -00000001" kind="Processing. Compound"> <name> Processing. Compound</name> <attribute kind="Description" status="meta"> <value></value> </attribute> <atom id="id-0066 -00000007" kind="Attribute" role="Attrib"> <name> Gates. Per. Bit</name> <regnode name=" Part. Regs"> <value></value> Aspect Model Weaving </regnode > Eager Processor #1 Processor #2 Sensor Eager Compute Position Eager Weapon Release Lazy Update. Map Loc. Display Aspect Code Generation Aspect Code Weaving/ Program Transformation
Levels of Independence in Model Weaving n Domain independence: q n Platform independence: q n GME meta-models and weaver strategies determine domain of discourse GME interpreters and weaver strategies map to platform specific synthesis Tool independence (new): q Separation of core weaving engine with toolspecific adapters
Tool Independence n n Requires an exposed API for accessing internal model data structures Tool-specific adapters written for each new supported tool Rose Cadena GME Meta. Edit
Adaptive Core Weaving Engine
Not unlike Aspect. J AJDT Eclipse AJDT JBuilder emacs Netbeans/FORTE
More Info n Representative Publications: q q q n Comm. of the ACM, October 2001, “Handling Crosscutting Constraints in Domain-Specific Modeling” GPCE 2003 (forthcoming), “An Approach for Supporting Aspect-Oriented Domain Modeling” AOSD Book Chapter (forthcoming), “Two-Level Weaving to Support Evolution of Model-Based Software” Demo q Prepared to give a very brief demo of: n n GME Example weaving of processor assignment constraints into an avionics system model
Demo n Very brief intro to GME q n n Entire course on this, so very superficial demo Weaving of constraints into GME models I’ll have to talk fast…
Model Integrated Computing (MIC) Grew out of over 14 years of research on computerbased systems in aerospace, instrumentation, manufacturing and robotics. Common challenges: • “Software” and “environment” are inextricably combined • Need for adaptability to changing environment and end-user needs • Complex, heterogeneous applications • Stringent reliability and dependability requirements
Domain-Specific Modeling at ISIS: Model Integrated Computing n n n The Generic Modeling Environment (GME) is a domain-specific modeling tool (>20 -person years) It can be utilized in many different domains by providing a meta-level paradigm description q Paradigm describes all of the entities of the domain, as well as valid relationships Freely available: q n http: //www. isis. vanderbilt. edu See November 2001 issue of IEEE Computer
Meta-Modeling Framework Meta-Model of Stateflow using UML/OCL as meta-modeling language. META-MODEL DOMAIN-MODEL Model instance of Stateflow
Model Integrated Computing Metaprogramming Interface Environment Evolution Application Domain Application Evolution App. 1 Formal Specifications App. 2 DSME Model Builder Model Interpretation Meta-Level Translation Models Model Interpreters App. 3
GME
MIC Applications