Download presentation
Presentation is loading. Please wait.
1
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter 1 Introduction
2
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.2 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)
3
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.3 Manual Coding requirements analysis design coding testing deployment Platform –Multiple targets –Rapidly evolving Portability ? Interoperability ? Manual steps –shortcuts Traceability ?
4
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.4 Code Generation requirements analysis design coding testing deployment Automatic –parameters –currently semi-automatic In theory … Traceability Portability Interoperability
5
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.5 Target Software Systems Enterprise Information System –reusable components customer database, order-processing, bookkeeping, … parametrisation ! –large scale interoperability Web-based systems –rapidly evolving targets portability …
6
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.6 MDA vs. MDE 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
7
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.7 Model "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
8
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.8 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 model system lang- uage is written in describes
9
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.9 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 PIMPSMCode
10
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.10 Tool Architecture repository models transformation definitions model editor model validator code parser code generator code editor transformation definition editor model transformer code files
11
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.11 Transformations — Properties 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
12
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.12 Meta Modeling model system lang- uage is written in describes model written in language with well-defined syntax and semantics –suitable for automated interpretation ? => model transformation ! is defined by meta model meta lang- uage is written in
13
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.13 The 4-layer metamodel architecture LayerDescriptionExample m3: meta- metamodel The infrastructure for a metamodeling architecture. Defines the language for specifying metamodels MetaClass, MetaAttribute, MetaOperation M2: meta model An instance of a meta- metamodel. Defines the language for specifying a model. UMLClass, UMLAttribute, UMLOperation M1: model An instance of a metamodel. Defines a language to describe an information domain. Customer, Order M0: user objects An instance of a model. Defines a specific information domain "Joe Nobody", "200604"
14
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.14 The MDA Framework PIMPSM lang- uage is written in model transformer lang- uage is written in transformation definition is defined by meta language is written in transformation definition language is written in extends
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.