1 / 18

A Comparison of Aspect-oriented Approaches to Model Driven Engineering

A Comparison of Aspect-oriented Approaches to Model Driven Engineering. Devon M. Simmonds, Computer Science Department University of North Carolina, Wilmington simmondsd@uncw.edu. Y. Raghu Reddy, Department of Software Engineering Rochester Institute of Technology.

Download Presentation

A Comparison of Aspect-oriented Approaches to Model Driven Engineering

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. A Comparison of Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds, Computer Science Department University of North Carolina, Wilmington simmondsd@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

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

  3. . . Model A Model B A M A . . C C K B B P Model Driven Engineering • xxxx

  4. MDE Challenges • Model specification • Model transformation • Model analysis • Model evolution and reuse • Model debugging

  5. MDE is difficult in the presence of crosscutting functionality Tangling!!

  6. Crosscutting Functionality In AOSD crosscutting functionality is isolated in modular units called aspects. logging in org.apache.tomcat An Aspect-Oriented Approach is beneficial 6

  7. Overview of AOMDE Approaches • Weave Then Generate • Then Generate Weave • Generate Then Weave … Primary Model Primary Model Aspect Model-1 Aspect Model-1 Aspect Model-2 Aspect Model-2 Aspect Model-n Aspect Model-n … Generate Weave Primary Model Code/Binary Composed Model Aspect Models Code/Binary Weave Generate Composed Model Code/Binary Weave Then Generate

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

  9. Generate Then Weave Approaches(1) Code Generation Application Integration Primary Model Development Primary Model Customization 1 [createError] [morePM] Analysis Enhance [codePMError] PIM [enhanceError] Create Primary Model [else] 2 Requirements Specification [else] Generate Code Weave [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] [codeAspError] [weave PMError] [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)

  10. Generate Then Weave Approaches(2) Code Generation Application Integration Primary Model Development Primary Model Customization 1 [createError] [morePM] Analysis Enhance [codePMError] PIM [enhanceError] Create Primary Model [else] 2 Requirements Specification [else] Generate Code Weave [else] Enhanced PIM [else] 3 5 4 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)

  11. Generate Then Weave Approaches(3) Primary Model Customization Application Integration Primary Model Development Code Generation [createError] [morePM] 2 [enhanceError] Analysis [codePMError] PIM [else] Create Primary Model Generate Code [else] [else] Enhance 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] [codeAspError] [weave PMError] [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)

  12. Generate Then Weave Approaches(4) Code Generation Application Integration Primary Model Development Primary Model Customization [createError] [morePM] 2 [enhanceError] Analysis [codePMError] PIM [else] Create Primary Model Generate Code [else] [else] Enhance Requirements Specification Weave 1 [else] 3 5 4 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)

  13. Summary: Generate Then Weave Approaches Code Generation Application Integration Primary Model Development Primary Model Customization E [createError] [morePM] Analysis Enhance [codePMError] PIM [enhanceError] Create Primary Model [else] G W Requirements Specification [else] Generate Code Weave [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] [codeAspError] [weave PMError] [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.

  14. Instantiation unlikely to precede Enhancement

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

  16. Future Work Code Generation Application Integration Primary Model Development Primary Model Customization [createError] [morePM] Analysis Enhance [codePMError] PIM [enhanceError] Create Primary Model [else] Requirements Specification [else] Generate Code Weave [else] Enhanced PIM [else] Complete Application Acquire Aspect Models [else] Enhance Instantiate Generate Code Generic Design Aspects [else] [mapping Error] [else] • Evaluating approaches using case studies • Initial development • Evolution [else] [codeAspError] [weave PMError] [aspectDesignError] [more Aspects] [enhance AspError] [weaveAsp Error] Aspect Models Development Aspect Models Customization Code Generation

  17. Q u e s t i o n s ?

More Related