Title: A Comparison of Aspectoriented Approaches to Model Driven Engineering
1A Comparison of Aspect-oriented Approaches to
Model Driven Engineering
Devon M. Simmonds, Computer Science
Department University of North Carolina,
Wilmington simmondsd_at_uncw.edu
Y. Raghu Reddy, Department of Software
Engineering Rochester Institute of Technology
Eunjee Song, Department of Computer
Science Baylor University
Emanuel Grant, Department of Computer
Science, University of North Dakota
2A Comparison of Aspect-oriented Approaches to
Model Driven Engineering
- Outline
- Overview of model driven engineering
- Challenges in model driven engineering
- Overview of AOMDE approaches
- Generate-Then-Weave Approaches
- Lessons Learned and Future Work
3Model Driven Engineering
4MDE Challenges
- Model specification
- Model transformation
- Model analysis
- Model evolution and reuse
- Model debugging
5MDE is difficult in the presence of crosscutting
functionality
Tangling!!
6Crosscutting Functionality
An Aspect-Oriented Approach is beneficial
- In AOSD crosscutting functionality is isolated in
modular units called aspects.
6
7Overview of AOMDE Approaches
Primary Model Code/Binary
Aspect Models Code/Binary
8Weave Then Generate Approach
Application Integration
Primary Model Development
Primary Model Customization
createError
morePM
enhanceError
weavePMError
Analysis
Enhance
PIM
Create Primary Model
Weave
else
Requirements Specification
Composed Design Model
else
Enhanced PIM
else
else
weaveAsp Error
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
mapping Error
else
Complete Application
aspectDesignError
moreAspects
enhance AspError
codePM Error
else
Aspect Models Development
Aspect Models Customization
codeAspError
Code Generation
9Generate Then Weave Approaches(1)
Application Integration
Code Generation
Primary Model Development
Primary Model Customization
1
createError
morePM
Analysis
Enhance
codePMError
PIM
enhanceError
Create Primary Model
else
2
Requirements Specification
else
Weave
Generate Code
else
Enhanced PIM
else
3
5
4
Complete Application
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
mapping Error
else
else
weave PMError
codeAspError
aspectDesignError
more Aspects
enhance AspError
weaveAsp Error
Aspect Models Development
Aspect Models Customization
Code Generation
Enhance-Generate Enhance-Instantiate Approach
(1-2-3-4-5)
10Generate Then Weave Approaches(2)
Application Integration
Code Generation
Primary Model Development
Primary Model Customization
1
createError
morePM
Analysis
Enhance
codePMError
PIM
enhanceError
Create Primary Model
else
2
Requirements Specification
else
Weave
Generate Code
else
Enhanced PIM
else
3
4
5
Complete Application
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
enhance AspError
mapping Error
else
else
weave PMError
aspectDesignError
more Aspects
CodeAsp Error
weaveAsp Error
Code Generation
Aspect Models Development
Aspect Models Customization
Enhance-Generate Generate-Enhance Approach
(1-2-5-3-4)
11Generate Then Weave Approaches(3)
Primary Model Customization
Application Integration
Primary Model Development
Code Generation
createError
morePM
enhanceError
2
Analysis
codePMError
PIM
else
Create Primary Model
Generate Code
else
Enhance
else
Requirements Specification
Weave
1
else
3
5
4
Complete Application
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
mapping Error
else
else
weave PMError
codeAspError
aspectDesignError
more Aspects
enhance AspError
weaveAsp Error
Aspect Models Customization
Aspect Models Development
Code Generation
Generate-Enhance Enhance-Instantiate Approach
(2-1-3-4-5)
12Generate Then Weave Approaches(4)
Application Integration
Code Generation
Primary Model Development
Primary Model Customization
createError
morePM
enhanceError
2
Analysis
codePMError
PIM
else
Create Primary Model
Generate Code
else
Enhance
else
Requirements Specification
Weave
1
else
3
4
5
Complete Application
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
enhance AspError
mapping Error
else
else
weave PMError
aspectDesignError
more Aspects
CodeAsp Error
weaveAsp Error
Code Generation
Aspect Models Development
Aspect Models Customization
Generate-Enhance Generate-Enhance Approach
(1-2-5-3-4)
13Summary Generate Then Weave Approaches
Application Integration
Code Generation
Primary Model Development
Primary Model Customization
E
createError
morePM
Analysis
Enhance
codePMError
PIM
enhanceError
Create Primary Model
else
G
W
Requirements Specification
else
Weave
Generate Code
else
Enhanced PIM
else
E
G
I
Complete Application
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
mapping Error
else
else
weave PMError
codeAspError
aspectDesignError
more Aspects
enhance AspError
weaveAsp Error
Aspect Models Development
Aspect Models Customization
Code Generation
Computation may then be represented as
permutation P(2,2)P(3,3) which means there are
2!3! or 12 valid combinations.
14Instantiation unlikely to precede Enhancement
15(No Transcript)
16Lessons Learned
- AOMDE requires an understanding of how AOSD
affect MDE lifecycle. - MDE is not a unary model-to-code process
- A variety of approaches are available.
- Further research needed to explore AOMDE in both
initial development and evolution
17Future Work
Application Integration
Code Generation
Primary Model Development
Primary Model Customization
createError
morePM
Analysis
Enhance
codePMError
PIM
enhanceError
Create Primary Model
else
Requirements Specification
else
Weave
Generate Code
else
Enhanced PIM
else
Complete Application
Acquire Aspect Models
else
Enhance
Instantiate
Generate Code
Generic Design Aspects
else
mapping Error
else
else
- Evaluating approaches using case studies
- Initial development
- Evolution
weave PMError
codeAspError
aspectDesignError
more Aspects
enhance AspError
weaveAsp Error
Aspect Models Development
Aspect Models Customization
Code Generation
18(No Transcript)