Presentation is loading. Please wait.

Presentation is loading. Please wait.

Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems.

Similar presentations


Presentation on theme: "Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems."— Presentation transcript:

1 Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems

2 Motivations Machine Code Too hard to program and debug Too machine- specific High Level Language Program Compiler Still hard to program Still platform-specific Hard to reuse Model Compiler Model Easy to use Platform independent Raising Level of Abstraction

3 Model-Driven Programming Goal To create an abstract (platform-independent), complete, precise, and executable model of the system. Advantages Reduced required development effort Early system debugging Challenges Is there such a model? How do we verify a model? How do we translate a model to code?

4 What should be modeled? Data objects contents, relations, constraints Objects lifetime states, and transitions Objects interactions message exchange, calls Objects actions computable algorithms Concurrency and synchronization timing constraints (e.g. Real-time systems)

5 Unified Modelling Language (UML) Abstract Platform independent Readable by non-technical people Complete (?) Formal action semantics Precise model for concurrency and synchronization Used widely Capable enough for modeling large systems

6 Modeling Data Objects Class Diagram

7 Modeling Behaviour State Charts Collaboration Diagrams

8 Modeling Actions Action Semantics Object and attribute actions Selection expressions Link actions Control structures (loops and if-then-else)

9 Model Checking Automatic Verification Completeness Consistency Debugging Generating test cases Executing the model

10 Model Compilers Design Patterns Translation Rules Pre-built Libraries

11 Design Patterns An abstract template for solving a well-known problem Creational Patterns Abstract Factory, Builder, etc. Structural Patterns Adapter, Bridge, Proxy, etc. Behavioural Patterns Interpreter, Iterator, Mediator, etc.

12 Translation Rules.for each object in O_OBJ public class ${obj.name} extends SateMachine { private SateMachineSate currentState.select many attributes related by object->O_ATTR[R105].for each attribute in attributes private ${attribute.implType} ${attribute.name}.end for..select many signals related by object->SM_EVT[R303].for each signal in signals protected void ${signal.name}() throws ooaException;.end for }.emit to file {obj.name}.java.end for Highlights of a translation rule that creates a Java Class

13 Existing Tools BridgePoint By Project Technologies http://www.projtech.com Kabira http://www.kabira.com

14 Conclusions Potentials Faster software development Early defect removal Faster technology adoption Limitations Model compilers Effectiveness Complexity


Download ppt "Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems."

Similar presentations


Ads by Google