Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven...

18
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington [email protected]

Transcript of Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven...

Page 1: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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]

Page 2: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 3: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 4: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 5: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 6: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 7: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 8: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

Devon M. Simmonds SERP’08, July-14-17, Las Vegas 8

Aspect-oriented Approaches to Model Driven Engineering

… and therefore the title:

Page 9: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 10: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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]

Page 11: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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]

Page 12: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 13: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 14: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 15: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 16: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 17: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

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

Page 18: Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.

Devon M. Simmonds SERP’08, July-14-17, Las Vegas 18

Q u e s t i o n s ?