Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1
Aspect-oriented Approaches to Model Driven EngineeringDevon M. Simmonds
Computer Science DepartmentUniversity of North Carolina, [email protected]
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 2
Aspect-oriented Approaches to Model Driven Engineering
• Outline– Role of models in engineering– Challenges in model driven engineering– The role of AOSD in MDE lifecycle– Two AOMDE approaches– Summary
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 3
3
Models in Engineering
• Benefits of models– Understanding and managing complex systems
– Abstract representation of systems
– Drive implementation
– Save resources
Engineering is a Model-Driven Discipline!
Software RequirementsSoftware RequirementsSoftware RequirementsSoftware RequirementsSC_MODULE(producer){sc_outmaster<int> out1;sc_in<bool> start; // kick-startvoid generate_data (){for(int i =0; i <10; i++) {out1 =i ; //to invoke slave;}}SC_CTOR(producer){SC_METHOD(generate_data);sensitive << start;}};SC_MODULE(consumer){sc_inslave<int> in1;int sum; // state variablevoid accumulate (){sum += in1;cout << “Sum = “ << sum << endl;}
Software ModelSoftware ModelSoftware ModelSoftware Model
AAAA
BBBBCCCC
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 4
Model Driven Engineering
CreateCreateModelModel
ModelModel A AModelModel A A
AAAA
BBBBCCCC
ModelModel B BModelModel B B
MMMM
BBBBCCCC
AAAA
PPPPKKKK
. .
• Challenges–Model specification–Model
transformation–Model analysis–Model evolution and
reuse–Model debugging
Analysis Engine
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 5
MDE Challenges
• Model specification, transformation, analysis, debugging and reuse are difficult in the presence of crosscutting software functionality.
ModelModel A AModelModel A A
AAAA
BBBB CCCC
ModelModel B BModelModel B B
MMMM
BBBB CCCC
AAAA
PPPP KKKK
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 6
Crosscutting functionality
• logging in org.apache.tomcat– red shows lines of code that handle logging – not in just one place– not even in a small number of places
logging is not modularized
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 7
Aspect-Oriented Modeling• Separate crosscutting
features/business logic– Primary model– Aspect models
Primary Model
Aspect Model 1
Aspect Model 2
Aspect Model n
...
Aspect-orientedDesign Model
• How does an aspect-oriented approach affect the model-driven engineering process?• Lifecycle perspective
Analysis Design Code Generation Testing Deployment& Evolution
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 8
Aspect-oriented Approaches to Model Driven Engineering
… and therefore the title:
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 9
Overview of AOMDE Approaches
Primary
Model
Aspect Model
-1
Aspect Model-
n
Aspect Model-
2
Weave/Compose
Generate
Code/Binary
Composed Model
… …Prima
ry Model
Aspect Model
-1
Aspect Model-
n
Aspect Model-
2
Weave/Compose
Generate
Composed Model
Primary Model
Code/Binary
Aspect Models
Code/Binary
• Weave Then Generate • Generate Then Weave
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 10
Weave Then Generate Approach
Analysis
RequirementsSpecification
CreatePrimaryModel
PIM Enhance
EnhancedPIM
[createError] [morePM]
[else]
[enhanceError]
[else]
Weave
ComposedDesign Model
[weavePMError]
AcquireAspectModels
GenericDesignAspects
[aspectDesignError]
[else][else]
Enhance
[moreAspects] [enhanceAspError]
Instantiate
[else]
[mappingError][else]
GenerateCode
CompleteApplication
[else]
[codeAspError]
[weaveAspError]
[else]
Primary Model Development Primary Model Customization
Aspect Models Development Aspect Models Customization
ApplicationIntegration
Code Generation
[codePMError]
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 11
Generate Then Weave Approach
Analysis
RequirementsSpecification
CreatePrimaryModel
PIM Enhance
EnhancedPIM
[createError] [morePM]
[else]
[enhanceError]
[else] Weave
[weavePMError]
AcquireAspectModels
GenericDesignAspects
[aspectDesignError]
[else][else]
Enhance
[moreAspects]
[enhanceAspError]
Instantiate
[mappingError][else]
CompleteApplication
[else]
[codeAspError][weaveAspError]
[else]
Primary Model Development Primary Model Customization
Aspect Models Development Aspect Models Customization
ApplicationIntegration
Generate Code
[codePMError]
Generate Code
CodeGeneration
CodeGeneration
[else]
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 12
Comparison of Approaches
Weave/Compose
Generate
Application Code
Composed Model
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
Weave/Compose
Generate
Application Code
Primary Model Code Aspect Models Code
• Weave Then Generate • Generate Then Weave
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
• Tools– Development, transformation,
instantiation, debugging, analysis, execution
– Model composition
• Tools– Development, transformation,
instantiation, debugging, analysis, execution
– Code composition– Aspect-oriented code generation
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 13
Comparison of Approaches
Weave/Compose
Generate
Application Code
Composed Model
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
Weave/Compose
Generate
Application Code
Primary Model Code/Binary
Aspect Models Code/Binary
• Weave Then Generate • Generate Then Weave
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
• Reuse Potential– Design reuse superiority
• Composed design model
• Reuse Potential– Code reuse superiority
• PIM code• Aspects code
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 14
Semantic
GAP Semantic
GAP
Comparison of Approaches
Weave/Compose
Generate
Application Code
Composed Model
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
Weave/Compose
Generate
Primary Model Code
Aspect Models Code
• Weave Then Generate • Generate Then WeavePrimar
y Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
• Debugging– Code/execution error
correction may be harder
• Debugging– May be easier
• PIM code• Aspects code
Semantic
GAP
Application Code
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 15
Comparison of Approaches
Weave/Compose
Generate
Application Code
Composed Model
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
Weave/Compose
Generate
Application Code
Primary Model Code Aspect Models Code
• Weave Then Generate • Generate Then Weave
Primary
Model
Aspect Model-
1
Aspect Model-n
Aspect Model-2
…
• Analysis– May be easier
• Composed design model
• Analysis– May be harder
• Absence of composed model
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 16
Future Work
Analysis
RequirementsSpecification
CreatePrimaryModel
PIM Enhance
EnhancedPIM
[createError] [morePM]
[else]
[enhanceError]
[else] Weave
[weavePMError]
AcquireAspectModel
GenericDesignAspects
[aspectDesignError]
[else][else]
Enhance
[moreAspects]
[enhanceAspError]
Instantiate
[mappingError][else]
CompleteApplication
[else]
[codeAspError][weaveAspError]
[else]
Primary Model Development Primary Model Customization
Aspect Models Development Aspect Models Customization
ApplicationIntegration
Generate Code
[codePMError]
Generate Code
CodeGeneration
CodeGeneration
[else]
• Extending, exploring approaches– Testing, deployment evolution– Defining families of approaches, hybrids
• Extending, exploring approaches– Testing, deployment evolution– Defining families of approaches, hybrids
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 17
Summary
• AOMDE requires an understanding of how AOSD affect MDE lifecycle.
• A variety of approaches are available.• Optimal software evolution strategy– AOMDE approach selected– Scope of modifications
• PM, aspect model, both PM and aspects?
– The modification approach• Code based vs. model-based
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 18
Q u e s t i o n s ?