Über die Semantik von Modellierungssprachen



Similar documents
Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Agile Test-based Modeling

Advanced Topics in model-based Software Development

Chap 1. Introduction to Software Architecture

Semantic Web. Semantic Web: Resource Description Framework (RDF) cont. Resource Description Framework (RDF) W3C Definition:

Towards an Integration of Business Process Modeling and Object-Oriented Software Development

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Meta-Model specification V2 D

Layered Approach to Development of OO War Game Models Using DEVS Framework

Diagramming Techniques:

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Applying 4+1 View Architecture with UML 2. White Paper

Kapitel 2 Unternehmensarchitektur III

From Object Oriented Conceptual Modeling to Automated Programming in Java

UML-based Test Generation and Execution

Lecture 9: Requirements Modelling

Berufsakademie Mannheim University of Co-operative Education Department of Information Technology (International)

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

The Software Development Process

Agile Modeling with the UML

The Expressive Power of UML-based Web Engineering 1

Ontological Representations of Software Patterns

Mapping between Levels in the Metamodel Architecture

CMSC 435: Software Engineering Course overview. Topics covered today

Patterns in Domain Models

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Filling the Gap between Business Process Modeling and Behavior Driven Development

Search Engines Chapter 2 Architecture Felix Naumann

COCOVILA Compiler-Compiler for Visual Languages

How To Design Software

Foundations of Model-Driven Software Engineering

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

Modeling the User Interface of Web Applications with UML

LEARNING AGREEMENT FOR STUDIES

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

An Introduction to the UML and the Unified Process

CSE4213 Lecture Notes

FDT for Mobile Devices

An Enterprise Modeling Framework for Banks using. Algebraic Graph Transformation

SPICE auf der Überholspur. Vergleich von ISO (TR) und Automotive SPICE

A Methodology for the Development of New Telecommunications Services

Analysis and Design Techniques for Service-Oriented Development and Integration

Classical Software Life Cycle Models

UML SUPPORTED SOFTWARE DESIGN

Formal Concept Analysis used for object-oriented software modelling Wolfgang Hesse FB Mathematik und Informatik, Univ. Marburg

Object-Oriented Systems Analysis and Design

A UML Introduction Tutorial

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Information systems modelling UML and service description languages

Designing Real-Time and Embedded Systems with the COMET/UML method

Introducing Formal Methods. Software Engineering and Formal Methods

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

How To Test Automatically

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Menouer Boubekeur, Gregory Provan

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Multidimensional Transcoding for Adaptive Video Streaming

[Refer Slide Time: 05:10]

7. Classification. Business value. Structuring (repetition) Automation. Classification (after Leymann/Roller) Automation.

Software Development Methodologies

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Software Engineering Reference Framework

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Business Process Technology

Comparative Market Analysis of Project Management Systems

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Opportunities and Challenges in Software Engineering for the Next Generation Automotive

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

22C:22 (CS:2820) Object-Oriented Software Development

Upgrading Your Skills to MCSA Windows Server 2012 MOC 20417

Requirements engineering

Evaluating OO-CASE tools: OO research meets practice

Transcription:

Über die Semantik von Modellierungssprachen und des UML-Standards Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/

Seite 2 What is a model? And why do we need modeling languages anyway?

Seite 3 Mechanical : Models of Machines in ISO-Norms

Seite 4 Electrical : Switches in ISO-Norms

Seite 5 Architecture

Seite 6 Geography

Seite 7 Astronomy: Geocentric model from Kopernikus

Seite 8 Physics Rutherford s and Bohr s atomic models Einstein s theory of relativity Model of Big Bang...

Seite 9 Biology: Animals, molecules, their interaction...

Seite 10 Medicine, safety engineering

Seite 11 Sociology: Maslow s hierarchy of needs

Seite 12 The first models: Hieroglyphs, early languages

Seite 13 The really first (still existing) models: cave drawings

Seite 14 Our daily live: weather charts

Seite 15 Der Modellbegriff Ein Modell ist seinem Wesen nach eine in Maßstab, Detailliertheit und/oder Funktionalität verkürzte beziehungsweise abstrahierte Darstellung des originalen Systems. 1. Es gibt ein Original 2. Abstraktion ist essentiell 3. Modelle werden mit einem Ziel erstellt und verwendet, um Eigenschaften des Originals zu studieren (Stachowiak 1973) Die Softwaretechnik verwendet Modelle präscriptiv: Das Modell existiert vor dem Original (Softwaresystem) und oft konstruktiv: Das Original wird aus dem Modell generiert.

Seite 16 Der Modellbegriff Ein Modell ist seinem Wesen nach eine in Maßstab, Detailliertheit und/oder Funktionalität verkürzte beziehungsweise abstrahierte Darstellung des originalen Systems. 1. Es gibt ein Original 2. Abstraktion ist essentiell 3. Modelle werden mit einem Ziel erstellt und verwendet, um Eigenschaften des Originals zu studieren (Stachowiak 1973) Die Softwaretechnik verwendet Modelle präskriptiv: Das Modell existiert vor dem Original (Softwaresystem) und oft konstruktiv: Das Original wird aus dem Modell generiert.

Seite 17 Model based development with UML Models as a central notation in the development process documentation static analysis UML models rapid prototyping refactoring/ transformation automated tests code generation UML serves as central notation for development of software UML is programming, test and modelling language at the same time

Seite 18 Reasons for an explicit modeling language Many kinds of models do not need an explicit language (let alone a formally defined one) Software engineering does, because: Models have many kinds of uses in the development process (code generation etc.) Software is an immaterial product; it is difficult to model Relationships between model and original are closer that usual Original as its own model Model configures the original Interpreters uses the model directly Presence of the model does affect the product! Software is complex It has views, therefore needs different kinds of models and they need to fit together

Seite 19 Models in Software Industry standard: Unified Modeling Language 13 kinds of diagrams (class diagrams, Statecharts etc.) But beyond the UML: Petri Nets Algebraic Specifications Logic Entity/Relationship-Models Relations Jackson Structured Diagrams Dataflow diagrams Control flow diagrams Nassi-Schneidermann diagrams SDL Grammars Finite automata Regular expressions etc.

Seite 20 Unified Modeling Language UML ~ 1990: OOD Booch... OOSE Jacobson OMT Rumbaugh et al. 1995: Booch / Rumbaugh / Jacobson 1997: UML 1.1 1999: UML 1.3 2001: UML 1.4 2002: UML 1.5 2004: UML 2.0 2006: UML 2.1 UML is a second generation notation for object orientierted modelling

Seite 21 Structural diagrams of the UML class diagram composition structure diagram package diagram component diagram object diagram deployment diagram

Seite 22 Behavioral diagrams of the UML use case diagram sequence diagram timing diagram activity diagram communication diagram interaction overview diagram Statechart + textual part: Object Constraint Language (OCL)

Seite 23 UML-based model engineering UML + code-parts enable us to model code & tests capsule diagram class diagrams statecharts C++, Java OCL object diagrams : : : sequence diagrams consistency analyzer parameterized code generator test code generator List of smells & errors system tests

Seite 24 What is semantics? And what is it good for?

Seite 25 The structure of a language A language consists of Syntax (notation) Abstract syntax Concrete (graphical or textual) representation Semantics domain Semantics mapping (explanation) (and pragmatics...) Semantics describes the meaning of a language. Computer science knows additionally axiomatic semantics : How to manipulate it instead of what it means

Seite 26 Semantics Observation: semantics is a mapping from syntax to a semantic domain M: Sy Sem Semantic domain However various variations exist

Seite 27 Semantics: Choice of semantic domain Observation: semantics is a mapping from syntax to a semantic domain M: Sy Sem Semantic domain However various variations exist e.g. for the semantic domain: Explicit semantic domain: System model was specified Implicit through use of a spec. language (CSP, Z, etc.) Preciseness? Detailedness? Completeness to describe the language concepts? Problem: Choice of semantic domain affects semantics implicitly

Seite 28 Semantics: Description of mapping Observation: semantics is a mapping from syntax to a semantic domain M: Sy Sem Semantic domain More variations exist e.g. for the semantic mapping: Mapping given through examples (many formalizations do this) Explicitness? Preciseness? Detailedness?

Seite 29 Preciseness of language vs. expression Observation: Preciseness of language and detailedness of expressions are partly independent. Example: Mathematical expressions English: imprecise language Math: precise language imprecise, not detailed expression around 100 [13,2000] precise, detailed expression more than 98, at most 101 [99,101]

Seite 30 Semantics in the real world? Problem: UML is connected to the real world in various ways: A class can e.g. an entity of the real world or a software artifact. Solution: A precise semantics must be based on a precise abstraction of the artifacts to describe. Instead of many variable connections to the real world: M Real world 1 M Real world 2 an intermediate system model as abstraction of the real world M System model Variability: simple interpretation Real world 1 Real world 2

Seite 31 Chain of semantic mappings Problem: UML is complex: Many concepts are redundant. Solution: Reduce number of concepts via mapping into a core language Instead of a single mapping: a chain of mappings Full UML Simplified UML etc.

Seite 32 Decomposing the language Problem: UML is complex: It is combined of several languages. Solution: Define semantics for each-sublanguage individually Instead of a single mapping: a composed mapping

Seite 33 Underspecification and execution in UML Observation: UML is not a programming language, underspecification should be possible Semantic domain Problem: No executable semantics for UML (in general) Solution: Using a set-based executable semantics. The semantic mapping maps to a set of all possible implementations / systems M: Sy Powerset(Sem)

Seite 34 Underspecified: Set based semantics Models are abstractions: they are underspecified: We use sets of possible realizations as semantics M: Sy Powerset(Sem) M(UML-document A) = { Set of realizations } Consequently: A is well defined: M(A) A is refinement of B: M(A) M(B) A and B are consistent: M(A) M(B)

Seite 35 Transformations: Evolution of Models Models / DSL Transformation T Production Sales M Production Sales M Sales Generation system tests leads to Evolution system tests

Seite 36 Transformations: Evolution of Models Semantic domain Algebraic refinement relation =, Semantic domain Models / DSL Mathematically defined semantic mapping M Transformation T Production Sales M Production Sales M Sales Transformations T: Sy Sy can be compatible to semantics: T is a refinement if M(T(A)) M(A)

Seite 37 Transformations: Evolution of Models Semantic domain Algebraic refinement relation =, Semantic domain Models / DSL Mathematically defined semantic mapping M Transformation T Production Sales M Production Sales M Sales Generation system tests leads to Evolution system tests

Seite 38 Dealing with variation points UML does have many variation points: a) some are in the mappings b) some are in the system model (for various domains) We use a descriptive style for property characterization: e.g. There are universes of types UTYPE, object identifiers UOID, Semantic domain threads UTHREAD,... Domain specializations may be: there are real numbers: Real UTYPE, a single threaded system: UTHREAD = 1

Seite 39 Putting it all together... Our approach to semantics definition is: Using pure math, because it is most flexible, compact, allowing to underspecify, being descriptive (denotational), capture higher-order-concepts, build layers of theories,... We call the semantics domain a system model : It is a generic model, of how any OO systems is structured and does its behavioral interactions

Seite 40 Structure of the system model (Broy, Cengarle, Rumpe) Within math, we build layers of small theories: Systemmodel State transition systems Store Data- Control- Event- Classes, Objects, Associations Types, Values Threads, Stacks Streams untimed timed continuous Math: Sets, Numbers, Functions, Relations, Functionals

Seite 41 Domain Specific Languages (DSL)? Many DSL s need semantics too... May be one possible approach is: using UML to encode the semantics domain by mapping DSL-concepts to UML-concepts and specializing the interpretation of the UML-models to specific domains DSL M UML specific interpretation Specific semantic domain

Seite 42 Zusammenfassend... Es gibt viele Wege zur Semantik einer Sprache UML-Semantik ist nicht fixiert und es wird schwierig eine solche anerkennen zu lassen Für Domänenspezifische Sprachen wird es wieder richtig konfus. Besten Dank für Ihre Aufmerksamkeit. Und noch etwas Werbung: UML-P - UML-Profil für agile Modellierung Tutorium: Code-Generierung, Testfälle, Testmuster, Refactoring, Evolution