Toronto ECE 1770 - Model Driven Generative Programming

Unformatted text preview:

Model Driven Generative ProgrammingMotivationsModel-Driven ProgrammingWhat should be modeled?Unified Modelling Language (UML)Modeling Data ObjectsModeling BehaviourModeling ActionsModel CheckingModel CompilersDesign PatternsTranslation RulesExisting ToolsConclusionsModel Driven Generative ProgrammingReza AzimiFebruary 6, 2003ECE1770: Trends in Middleware SystemsMotivationsMachine Code• Too hard to program and debug• Too machine- specificHigh Level Language ProgramCompiler• Still hard to program• Still platform-specific• Hard to reuseModel CompilerModel• Easy to use• Platform independentRaising Level of AbstractionModel-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?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)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 systemsModeling Data ObjectsClass DiagramModeling Behaviour State Charts Collaboration DiagramsModeling ActionsAction SemanticsObject and attribute actionsSelection expressionsLink actionsControl structures (loops and if-then-else)Model CheckingAutomatic VerificationCompletenessConsistencyDebuggingGenerating test casesExecuting the modelModel CompilersDesign PatternsTranslation Rules Pre-built LibrariesDesign 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.Translation Rules.for each object in O_OBJpublic class ${obj.name} extends SateMachine {private SateMachineSate currentState.select many attributes related by object->O_ATTR[R105].for each attribute in attributesprivate ${attribute.implType} ${attribute.name}.end for.. .select many signals related by object->SM_EVT[R303].for each signal in signalsprotected void ${signal.name}() throws ooaException;.end for}.emit to file {obj.name}.java.end for Highlights of a translation rule that creates a Java ClassExisting ToolsBridgePointBy Project Technologies http://www.projtech.comKabirahttp://www.kabira.comConclusionsPotentialsFaster software developmentEarly defect removalFaster technology adoptionLimitationsModel


View Full Document

Toronto ECE 1770 - Model Driven Generative Programming

Download Model Driven Generative Programming
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Model Driven Generative Programming and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Model Driven Generative Programming 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?