Softwaretechnik. Lecture 19: Model Driven Engineering. Peter Thiemann. University of Freiburg, Germany

Similar documents
Softwaretechnik Model Driven Architecture Meta Modeling

All you need are models Anneke Kleppe, Klasse Objecten

Index. business modeling syntax 181 business process modeling 57 business rule 40

Model-Driven Architecture

Model Driven Architecture - The Vision

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Domain-Frontier approach to. MDA based. software development

Metamodeling with Metamodels. Using. UML/MOF including OCL

Transformational Design with

Model Driven Development Unified Modeling Language (UML)

UML 2.0 State Machines

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Models versus Ontologies - What's the Difference and where does it Matter?

Construction of Complex UML Profiles

Comparative analysis of MDA tools

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

Model driven Engineering & Model driven Architecture

02291: System Integration

The Eclipse Modeling Framework and MDA Status and Opportunities

OMG Modeling Glossary B

The Model Driven Architecture. Dennis Wagelaar Viviane Jonckers Software Languages Lab

MDSE PRINCIPLES. Chapter #2

MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc.

Improving Military Information Technology Through Common Conceptual Models

Model Driven Engineering (MDE)

Introduction to MDE and Model Transformation

Modelling in Enterprise Architecture. MSc Business Information Systems

Unified Modeling Language 2

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

Integrating Software Architecture Concepts into the MDA Platform with UML Profile

OCL for the Specification of Model Transformation Contracts

INTRODUCTION. Chapter #1

MODEL DRIVEN ARCHITECTURE (MDA)

Object Security. Model Driven Security. Ulrich Lang, Rudolf Schreiner. Protection of Resources in Complex Distributed Systems

Software Design, Modelling and Analysis in UML

* Corresponding Author

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

MDA Distilled Stephen J. Mellor Vice-President Project Technology, Inc.

Software Design, Modelling and Analysis in UML

Platform Variability. Dennis Wagelaar Software Languages Lab

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

11 Model-Driven Architecture

Extending profiles with stereotypes for composite concepts 1

The Model-Driven Semantic Web Emerging Standards & Technologies

Model Driven Architecture

Software Language Engineering of Architectural Viewpoints

Semantic Web Domain Knowledge Representation Using Software Engineering Modeling Technique

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

MODEL TRANSFORMATION FROM BPMN FORMAT TO OPENERP WORKFLOW

Copying Subgraphs within Model Repositories

A Metamodel-Based OCL-Compiler for UML and MOF

Reusable Object-Oriented Model

Language engineering and Domain Specific Languages

Model Driven Engineering

Software Design, Modelling and Analysis in UML

Role of Executable UML in MDA. Presented by Shahid Alam

A UML 2 Profile for Variability Models and their Dependency to Business Processes

Model Driven Architecture

UML Profiles Radovan Cervenka

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Algebraic Semantics of EMOF/OCL Metamodels

Model Querying with Graphical Notation of QVT Relations

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

Raising the Level of Development: Models, Architectures, Programs

Model Driven Development. Building Automated Code Generation Methods with Eclipse and DSL Tools. Vicente Pelechano

CWM: Model Driven Architecture

The Write Once, Deploy N MDA Case Study

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

Metamodeling. 16. April 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 1

Grammars. Prof. Andreas Prinz. Introduction, Compilers. Examples Meta-models vs. Grammars Summary

SUMMARY: MODEL DRIVEN SECURITY

Software Architecture

Meta-modelling and Model Transformation the two pivots of Model Driven Architecture

Coral: A Metamodel Kernel for Transformation Engines

02291: System Integration

Model Abstraction versus Model to Text Transformation

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

Enabling Component-Based Model Transformations with QVT. Li Dan

Towards a Transformation Chain Modeling Language

Metamodeling directed relationships in UML

OO Analysis and Design with UML 2 and UP

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Ontology-based Model Transformation

Practical Model-Driven Development with the IBM Software Development Platform

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

Dresden OCL2 in MOFLON

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

A Tour of Language Customization Concepts COLIN ATKINSON University of Mannheim Mannheim Germany

Model Driven Architecture Action Semantics and Action Languages

with openarchitectureware

!MDA$based*Teaching*and* Research*in*Software*Engineering*!

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

The Model Driven (R)evolution. Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc.

Metamodeling and Metaprogramming

Transcription:

Softwaretechnik Lecture 19: Model Driven Engineering Peter Thiemann University of Freiburg, Germany 23.07.2012 Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 1 / 50

Introduction MDA Introduction MDA Material Thomas Stahl, Markus Völter. Model-Driven Software Development. Wiley & Sons. 2006. Anneke Kleppe, Jos Warmer. MDA Explained: The Model Driven Architecture: Practice and Promise. Pearson. 2003. Stephen J. Mellor, Axel Uhl, Kendall Scott, Dirk Weise. MDA Distilled: Solving the Integration Problem with the Model Driven Architecture. Pearson. 2004. Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 2 / 50

Introduction MDA What is MDA? MDA = Model Driven Architecture also: MD (Software/Application) Development, Model Based [Development/Management/Programming] Model Driven Engineering, Model Integrated Computing Initiative of the OMG (trade mark) OMG = Object Management Group: CORBA, UML,... open consortium of companies (ca. 800 Firmen) Goal: Improvement of software development process Interoperability Portability Approach: Shift development process from code-centric to model-centric Reuse of models Transformation of models Code generation from models Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 3 / 50

Introduction MDA Goals of MDA Goals of MDA Higher Degree of Abstraction Portability and Reusability Development abstracts from target platform Technology mapping in reusable transformations New technology new transformation Interoperability Systems span several platforms Information flow between platforms via bridges Byproduct of model transformations Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 4 / 50

Introduction MDA Goals of MDA Goals of MDA Models and Model Transformations Productivity Every development phase directly contributes to the product, not just the implementation Documentation and Maintenance Changes through changes of the models Models are documentation consistency Separation of concern Better handle on changing technology Specialization Business processes Technologies Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 5 / 50

Introduction MDA Models Models in MDA Fachliche Spezifikation PIM (Platform Independent Model) Model to model transformation CORBA Modell J2EE Modell XML Modell PSM (Platform Specific Model) Model to code transformation CORBA/C++ Code J2EE/Java Code XML Code Implementation Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 6 / 50

Introduction MDA Models Models in MDA/2 PIM vs PSM Relative concepts Smooth transition Several levels of model and transformation steps possible Inverse transformation PSM PIM unlikely Transformation Code is the ultimate model (PSM) Model-to-code is a special case Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 7 / 50

Introduction MDA Models Models and Transformations PIM PSM (Components) PSM (WLS 8.2) PSM (EJB 2.0) Code (Java / XML) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 8 / 50

Introduction MDA Platform Platform API Virtual machine Provides several services Examples Different processors hardware platform Operating system software platform Java VM software platform EJB component platform CORBA, Webservices,... Application architecture, DSL (Domain Specific Language) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 9 / 50

Introduction MDA Platform Examples for Platforms Assembly Code High Level Language Source Code Executable Models Assembler Source Code Compiler Model Compiler Machine Code 1960s None Assembly Code 1980s Hardware Plattform Source Code 2000s Software Plattform Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 10 / 50

Introduction MDA Platform Transformations Mappings between models Formal definition required for automatic application Standardized transformation language QVT (Queried Views and Transformations) Distilled from 23 very different proposals Tools Transformations based on metamodel Code generator via patterns Proprietary transformation languages (scripting) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 11 / 50

Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 12 / 50

Intro What? meta = above Define an ontology of concepts for a domain. Define the vocabulary and grammatical rules of a modeling language. Define a domain specific language (DSL). Why? Concise means of specifying the set models for a domain. Precise definition of modeling language. How? Grammars and attributions for textbased languages. generalizes to arbitrary languages (e.g., graphical) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 13 / 50

Uses Construction of DSLs Validation of Models (checking against metamodel) Model-to-model transformation (defined in terms of the metamodels) Model-to-code transformation Tool integration Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 14 / 50

Excursion: Classifiers and Instances Excursion: Classifiers and Instances Classifier diagrams may also contain instances Instance description may include name (optional) classification by zero or more classifiers kind of instance instance of class: object instance of association: link etc optional specification of values Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 15 / 50

Excursion: Classifiers and Instances Excursion: Notation for Instances Instances use the same notation as classifier Box to indicate the instance Name compartment contains name:classifier,classifier... name:classifier :classifier anonymous instance : unclassified, anonymous instance Attribute in the classifier may give rise to like-named slot with optional value Association with the classifier may give rise to link to other association end direction must coincide with navigability Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 16 / 50

Excursion: Classifiers and Instances Excursion: Notation for Instances (Graphical) Ship name : String gross weight : Integer country : String Sailor name : String rank : String <<instance of>> <<instance of>> <<instance of>> QE2 : Ship name = "QE2" gross weight = 70327 country = "GB" captainbates : Sailor name = "N. Bates" rank = "Captain" Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 17 / 50

Terminology Terminology/Syntax well-formedness rules abstract syntax just structure, how are the language concepts composed concrete syntax defines specific notation typical use: parser maps concrete syntax to abstract syntax Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 18 / 50

Terminology Terms/Abstract Syntax Example: Arithmetic expressions abstract syntax data Expr = Const String Var String Binop Op Expr Expr data Op = Add Sub Mul Div Binop Mul (Const "2") (Binop Add (Var "x") (Const "3")) concrete syntax 2 * (x + 3) E ::= c x E B E (E) B ::= + / Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 19 / 50

Terminology Terms/Abstract Syntax Example: UML class diagram concrete syntax Person name salary raise() abstract syntax :Class name = "Person" :Attribute name = "name" :Operation name = "raise" :Attribute name = "salary" Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 20 / 50

Terminology Terms/Static Semantics Static semantics defines well-formedness rules beyond the syntax Examples Variables have to be defined before use Type system of a programming language "hello" * 4 is syntactically correct Java, but rejected UML: static semantics via OCL expressions Use: detection of modeling/transformation errors Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 21 / 50

Terminology Terms/Domain Specific Language (DSL) Purpose: formal expression of key aspects of a domain Metamodel of DSL defines abstract syntax and static semantics Additionally: concrete syntax (close to domain) dynamic semantics for understanding for automatic tools Different degrees of complexity possible configuration options with validity check graphical DSL with domain specific editor Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 22 / 50

Model and Metamodel Model and Metamodel Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 23 / 50

Model and Metamodel Model and Metamodel Domain of discourse Model Metamodel "real world" elements describes model elements describes metamodel elements Insight: Every model is an instance of a metamodel. Essential: instance-of relationship Every element must have a classifying metaelement which contains the metadata and is accessible from the element Relation Model:Metamodel is like Object:Class Definition of Metamodel by Meta-metamodel infinite tower of metamodels meta relation always relative to a model Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 24 / 50

Model and Metamodel a la OMG OMG defines a standard (MOF) for metamodeling MOF (Meta Object Facilities) used for defining UML Confusion alert: MOF and UML share syntax (classifier and instance diagrams) MOF shares names of modeling elements with UML (e.g., Class) Approach Restrict infinite number of metalevels to four Last level is deemed self-describing Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 25 / 50

Model and Metamodel and OCL <<metaclass>> UML::Attribute name: String [...] type: Type context Attribute: <<metaclass>> inv: Type.Name == "String" CM::ConfigParam OCL constraints are independent of the modeling language and the metalevel OCL on layer Mn + 1 restricts instances on layer Mn Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 26 / 50

OMG s Four Metalevels OMG s Four Metalevels describes M3: Meta Metamodel instanceof Typ: Classifier ID: 5346456 Name: Classifier describes M2: Metamodel describes M1: Model describes M0: Instances instanceof instanceof instanceof Typ: Classifier ID: 764535 Name: Klasse Features: Attributes, Operations, Assoc s,.. Typ: Klasse ID: 21436456 Name: Person Attribute: Name, Firstn. Operations:... Association:... Typ: Person ID: 05034503 Name: Doe Given name: John Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 27 / 50

OMG s Four Metalevels Layer M0: Instances Level of the running system Contains actual objects, e.g., customers, seminars, bank accounts, with filled slots for attributes etc Example: object diagram Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 28 / 50

OMG s Four Metalevels Layer M1: Model Level of system models Example: UML model of a software system Class diagram contains modeling elements: classes, attributes, operations, associations, generalizations,... Elements of M1 categorize elements at layer M0 Each element of M0 is an instance of M1 element No other instances are allowed at layer M0 Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 29 / 50

OMG s Four Metalevels Relation between M0 and M1 M1: Model of a System Customer title : String name : String Order number : String name : String <<instance of>> :Customer title = "Dr" name = "Joe Nobody" <<instance of>> :Customer title = "Mr" name = "Mark Everyman" <<instance of>> M0: System :Order number = "200604" name = "somename" Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 30 / 50

OMG s Four Metalevels Layer M2: Metamodel Model of Model Level of modeling element definition Concepts of M2 categorize instances at layer M1 Elements of M2 model categorize M1 elements: classes, attributes, operations, associations, generalizations,... Examples Each class in M1 is an instance of some class-describing element in layer M2 (in this case, a Metaclass) Each association in M1 is an instance of some association-describing element in layer M2 (a Metaassociation) and so on Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 31 / 50

OMG s Four Metalevels Relation between M1 and M2 M2: Model of a Model name: String UML Class name: String UML Attribute <<instance of>> <<instance of>> <<instance of>> M1: Model :UML Class name = "Customer" name = "Order" :UML Class :UML Attribute name = "number" Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 32 / 50

OMG s Four Metalevels Layer M3: Meta-Metamodel Level for defining the definition of modeling elements Elements of M3 model categorize M2 elements: Metaclass, Metaassociation, Metaattribute, etc Typical element of M3 model: MOF class Examples The metaclasses Class, Association, Attribute, etc are all instances of MOF class M3 layer is self-describing Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 33 / 50

OMG s Four Metalevels Relation between M2 and M3 MOF Class M3: Model of a Model of a Model name: String <<instance of>> <<instance of>> M2: Model of a Model :MOF Class name = "UML Class" :MOF Class name = "UML Attribute" Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 34 / 50

OMG s Four Metalevels Overview of Layers MOF Class name: String M3: Model of a Model of a Model <<instance of>> UML Class name: String <<instance of>> M2: Model of a Model UML Attribute name: String <<instance of>> <<instance of>> <<instance of>> <<instance of>> M1: Model of a System Customer title: String name: String Order number: String name: String <<instance of>> <<instance of>> <<instance of>> M0: System Customer Customer Order title = "Dr" name = "Joe Nobody" title = "Mr" number = "200604" name= "M. Everyman" name = "somename" Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 35 / 50

OMG s Four Metalevels Excerpt from MOF/UML Model Element Import Namespace Constraint Tag Feature generalizes Generalizable Element Behavioral Feature Package Classifier Operation Exception can throw Association Class Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 36 / 50

Extending UML Designing a DSL Extending UML Designing a DSL Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 37 / 50

Extending UML Designing a DSL Designing a DSL Definition of a new M2 language from scratch too involved Typical approach: Extension of UML Extension Mechanisms Extension of the UML 2 metamodel applicable to all MOF-defined metamodels (heavyweight) Extension using stereotypes and profiles (lightweight) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 38 / 50

Extending UML Designing a DSL Extending the UML Metamodel Extended UML Metamodel MOF UML::Class CM::Component <<instanceof>> <<instanceof>> MOF::Classifier <<instanceof>> generalizes MOF sanctions the derivation of a new metaclass CM::Component from UML::Class CM::Component is an instance of MOF::Classifier the generalization is an instance of MOF s generalizes association Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 39 / 50

Extending UML Designing a DSL Extending the UML Metamodel/Concrete Syntax (1) (2) (4) <<CM::Component>> CustomAdmin::Person <CM::Component>> CustomAdmin::Person {metaclass=cm::component} <<instanceof>> CustomAdmin::Person (3) <<component>> CustomAdmin::Person (5) CustomAdmin::Person 1. Explicit instance of metaclass 2. Name of metaclass as stereotype 3. Convention 4. Tagged value with metaclass 5. Own graphical representation (if supported) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 40 / 50

Extending UML Designing a DSL Adding to a Class UML::Class <<CM::Component>> CustomAdmin::Person {transactional = true} CM::Component transactional: boolean just inheriting from UML::Class leads to an identical copy Adding an attribute to the CM::Component metaclass leads to an attribute value slot in each instance notation: tagged value (typed in UML 2) Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 41 / 50

Extending UML Designing a DSL Stereotypes and Profiles Stereotype Annotation to specialize UML elements Formally an extension of a metaclass Notation: Name in «Guillemets» Profile Package of stereotypes Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 42 / 50

Extending UML Designing a DSL Example Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 43 / 50

Extending UML Designing a DSL Example with Stereotype Added Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 44 / 50

Extending UML Designing a DSL Extension Using Stereotypes <<metaclass>> UML::Class <<stereotype>> <<stereotye>> CM::Component {<<taggedvalue>> transactional} Simple specialization mechanism of UML No recourse to MOF required Tagged Values untyped No new metaassociations possible Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 45 / 50

Extending UML Designing a DSL Extending Using Profiles (UML 2) definition use <<metaclass>> UML::Class <<stereotype>> CM::Component transactional: boolean <<CM::Component>> CustomAdmin::Person {transactional = true} Extension of the stereotype mechanism Requires Extension arrow as a new UML language construct (generalization with filled arrowhead) Not: generalization, implementation, stereotyped dependency, association,... Attributes typed tagged values Multiple stereotypes possible Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 46 / 50

Extending UML Designing a DSL More on Profiles Profiles make UML into a family of languages Each member is defined by application of one or more profiles to the base UML metamodel Tools should be able to load profiles and corresponding transformations Profiles have three ingredients stereotypes tagges values constraints Profiles can only impose further restrictions Profiles are formally defined through a metamodel Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 47 / 50

Extending UML Designing a DSL Profile Metamodel PackageImport Package appliedprofile {subsets 1 importedpackage} n ProfileApplication n Profile imported Profile {subsets importedpackage} 1 Association 1 {subsets ownedmember} Class 1 /metaclass /extension n Extension 1 Property 1 owned Stereotype n Stereotype type 1 n ExtensionEnd Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 48 / 50

Extending UML Designing a DSL Example Profile for EJB <<profile>> EJB Component <<stereotype>> Bean context Bean: inv: realization > select( hasstereotype( "Remote" )) >size()=1 && realization > select( hasstereotype( "Home" )) >size()=1 <<stereotype>> EntityBean <<stereotype>> SessionBean kind: StateKind Artifact <<stereotype>> JAR <<enumeration>> stateful stateless StateKind Interface <<stereotype>> Remote <<stereotype>> Home Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 49 / 50

Extending UML Designing a DSL Further Aspects of Profiles Stereotypes can inherit from other stereotypes Stereotypes may be abstract Constraints of a stereotype are enforced for the stereotyped classifier Profiles are relative to a reference metamodel e.g., the UML metamodel or an existing profile Most tools today do not enforce profile-based modeling restrictions, so why bother with profiles? constraints for documentation specialized UML tools validation by transformer / program generator Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 50 / 50