Meng Tian mt5e09@ecs.soton.ac.uk

Preview:

DESCRIPTION

Extension in Domain Specific Code Generation with Ontology Based Aspect Weaving. Meng Tian mt5e09@ecs.soton.ac.uk. Supervisor: Julian Rathke jr2@ecs.soton.ac.uk. Domain Specific Code Generation. Domain Specific Code Generation (DSCG) Model Driven Engineering (MDE) - PowerPoint PPT Presentation

Citation preview

Meng Tianmt5e09@ecs.soton.ac.uk

Extension in Domain Specific Code Generation with Ontology Based

Aspect Weaving

Supervisor: Julian Rathkejr2@ecs.soton.ac.uk

Domain Specific Code Generation

Domain Specific Code Generation (DSCG)•Model Driven Engineering (MDE)•Raised abstraction level, highly automated•Increased productivity and reliability

Domain Specific Code Generation

Domain Specific Code Generation (DSCG)•Model Driven Engineering (MDE)•Raised abstraction level, highly automated•Increased productivity and reliability

Domain Specific Code Generation

Domain Specific Code Generation (DSCG)•Model Driven Engineering (MDE)•Raised abstraction level, highly automated•Increased productivity and reliability

However, in practice…

Extensions Required

e.g. to add logging facilities in the generated code.

Extensions Required

e.g. to add logging facilities in the generated code.

MDE orthodoxy

“model change

-> code re-generation”

Extensions Required

e.g. to add logging facilities in the generated code.

MDE orthodoxy

“model change

-> code re-generation”

Round-trip engineering

“code change

-> model reverse generation”

Extensions Required

e.g. to add logging facilities in the generated code.

MDE orthodoxy

“model change

-> code re-generation”

Round-trip engineering

“code change

-> model reverse generation”

What if change not expressible?

Extensions Required

e.g. to add logging facilities in the generated code.

MDE orthodoxy

“model change

-> code re-generation”

Round-trip engineering

“code change

-> model reverse generation”

What if change not expressible? Or even worse,

meta-model change is required

Evolving model-based software

Is meta-model change a good

thing?

Yes. Now my modelling language is more

expressive and powerful.

1. Is that still abstraction?

2. Is that cost effective?3. Compatible

problems?

Evolving model-based software

Is meta-model change a good

thing?

Yes. Now my modelling language is more

expressive and powerful.

1. Is that still abstraction?

2. Is that cost effective?3. Compatible

problems?

Extensions Required

e.g. to add logging facilities in the generated code.

MDE orthodoxy

“model change

-> code re-generation”

Round-trip engineering

“code change

-> model reverse generation”

What if M’=M

Modification CANNOT be reflected in the model.

Where is the problem?

Modification CANNOT be reflected in the model.

Where is the problem?

Causes:• Model and code are both

maintained explicitly as core products.

• Forceful synchronization of artefacts of two different abstraction level is unnecessary and may break abstraction levels.

Modification CANNOT be reflected in the model.

Where is the problem?

Causes:• Model and code are both

maintained explicitly as core products.

• Forceful synchronization of artefacts of two different abstraction level is unnecessary and may break abstraction levels.

What makes the magic mapping?

The code generator!

What makes the magic mapping?

The code generator!

What makes the magic mapping?

The code generator!

Our approach

• No “model-code” synchronization.

• An intermediate layer – aspect, between model and code, in which modification can be expressed flexibly.

• As the aspect languages are built based on the domain ontology, we call them Ontology Based Aspect languages (OBALs)

Our approach

Test with ANTLR Parser Generator

Production rule in ANTLR grammar

Extension for program synthesis functionalities in ANTLR grammar can be difficult, sometimes even impractical.

Test with ANTLR Parser Generator

Production rule in ANTLR grammar

Extension for program synthesis functionalities in ANTLR grammar can be difficult, sometimes even impractical.

Test with ANTLR Parser Generator

Production rule in ANTLR grammar

Extension for program synthesis functionalities in ANTLR grammar can be difficult, sometimes even impractical.

Test with ANTLR Parser Generator

Test with ANTLR Parser Generator

Count how many if-only statements in a Java program, and how many equality check involved.

3 “if” statements without “else”.

Test with ANTLR Parser GeneratorBegin_Parse_Rule_statement_Alternative_1();

End_Parse_Rule_statement_Alternative_1();

Begin_Match_Token_ELSE();

End_Match_Token_ELSE();

Test with ANTLR Parser GeneratorBegin_Parse_Rule_statement_Alternative_1();

End_Parse_Rule_statement_Alternative_1();

Begin_Match_Token_ELSE();

End_Match_Token_ELSE();

Test with ANTLR Parser GeneratorBegin_Parse_Rule_statement_Alternative_1();

End_Parse_Rule_statement_Alternative_1();

Begin_Match_Token_ELSE();

End_Match_Token_ELSE();

Test with ANTLR Parser Generator

Evaluation

Benefits

•It solves the “model non-reflectable” extension problem.

•It makes the generator extensible, instead of simply extending it.

•There is no model compatible problem.

•It allows modification to be described in a flexible way.

•The aspect based extension process can be fully automated.

Limitations

•Knowledge of the code generator is required.

•Maintenance of ontology tracing information

Conclusions

• We introduced a new approach for extending the generated code in model-based software development, i.e. via ontology-based aspect.

• Under certain assumptions, our approach can generate the aspect language over the ontology model, and produce the corresponding weaver provided ontology tracing information.

Future Work

• Standardize the ontology definition schema, i.e. meta meta

model.

• Supporting restrictions in domain ontology. E.g., access

control, conflict prevention. E.g., OCL based solution.

Any Question?

Recommended