A Comparison of Aspect-oriented Approaches to Model Driven Engineering
Sponsored Links
This presentation is the property of its rightful owner.
1 / 18

A Comparison of Aspect-oriented Approaches to Model Driven Engineering PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

A Comparison of Aspect-oriented Approaches to Model Driven Engineering. Devon M. Simmonds, Computer Science Department University of North Carolina, Wilmington [email protected] 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


A Comparison of Aspect-oriented Approaches to Model Driven Engineering

Devon M. Simmonds, Computer Science Department

University of North Carolina, Wilmington

[email protected]

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


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


. .

Model A

Model B

A

M

A

. .

C

C

K

B

B

P

Model Driven Engineering

  • xxxx


MDE Challenges

  • Model specification

  • Model transformation

  • Model analysis

  • Model evolution and reuse

  • Model debugging


MDE is difficult in the presence of crosscutting functionality

Tangling!!


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


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


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


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)


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)


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)


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)


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.


Instantiation unlikely to precede Enhancement


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


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


Q

u

e

s

t

i

o

n

s

?


  • Login