140 likes | 213 Views
Formal Techniques in Software Engineering 3de BAC Informatica. Chapter 1 Introduction. Contents. Manual Coding vs. Code Generation MDA vs. MDE Terminology Transformations Tool architecture Properties Meta Modeling 4-layer metamodeling architecture.
E N D
Formal Techniques in Software Engineering3de BAC Informatica Chapter 1 Introduction Introduction
Contents • Manual Coding vs. Code Generation • MDA vs. MDE • Terminology • Transformations • Tool architecture • Properties • Meta Modeling • 4-layer metamodeling architecture Based on "MDA Explained — The Model Driven Architecture: Practice and Promise" (Anneke Kleppe, Jos Warmer and Wim Bast) Introduction
requirements analysis design coding testing deployment Manual Coding • Manual steps • shortcuts • Traceability ? • Platform • Multiple targets • Rapidly evolving • Portability ? • Interoperability ? Introduction
Code Generation requirements analysis design • Automatic • parameters • currentlysemi-automatic coding In theory … • Traceability • Portability • Interoperability testing deployment Introduction
Target Software Systems • Enterprise Information System • reusable components • customer database, order-processing, bookkeeping, … • parametrisation ! • large scale • interoperability • Web-based systems • rapidly evolving targets • portability • … Introduction
MDA = Model Driven Architecture Industrial Standard Object Management Group OMG = tool vendor organization ! UML at the core standardization PIM Platform independent model PSM Platform specific model MDE = Model Driven Engineering Community of model-centric development Model can be any formalism classes, entity-relationship petri-nets, state machines ... Also verification Transformation can be anything Rewrite rules Graph rewriting MDA vs. MDE Introduction
"Model" is overloaded example for artist person posing for artist person showing clothes (catwalk) replica of item on smaller scale (miniature) drawing of an item(design of a house, ...) mathematical formulas for prediction/estimation … All models share properties an abstraction of a subject that exists in reality model ≠ the subject it models leave out details, scale, ... model can be used to produce something in reality especially in engineering disciplines Model Introduction
Software Model • In software engineering • model = abstraction of (software) system • description of system in language with well-defined syntax and well-defined semantics • Well-defined ? Suitable for automated interpretation lang- uage is written in describes model system Introduction
PIM PSM Code Transformation • Transformation = automatic generation of target model from a source model, accoding to a transformation definition • Transformation Definition = a set of transformation rules that describe how to translate a model in a source language into a model in the target language • Requires control over which rules to apply • Transformation Rule = a description of how to map one or more constructs in the source language into one or more constructs in the target language Introduction
Tool Architecture model editor model validator repository models model transformer transformation definitions code parser code files transformation definition editor code editor code generator Introduction
Control conditions, looping parameters prompting the user Traceability generate links source to target target to source ripple changes over traceability links Incremental Consistency small change=> small regeneration Bidirectionality forward and reverse generation code reverse engineering Transformations — Properties Introduction
lang- uage model Meta Modeling • model written in language with well-defined syntax and semantics • suitable for automated interpretation ?=> model transformation ! meta lang- uage is written in meta model is defined by is written in system describes Introduction
The 4-layer metamodel architecture Introduction
lang- uage lang- uage PIM PSM The MDA Framework meta language extends transformation definition language is written in is written in is written in transformation definition is written in is written in is defined by model transformer Introduction