Modellierung im Software & System-Engineering Masterseminar Sommersemester 2013 Prof. Dr. Dr. h.c. M. Broy M. Junker, K. Becker, A. Campetelli, J. Eckhardt, G. Hackenberg, M. Irlbeck, J. Mund, A. Vogelsang Institut für Informatik Software & Systems Engineering
Agenda Einführung Modellierung im S&SE Organisation des restlichen Seminars Diskutantenthemen vergeben Doodle für Terminfindung Offene Fragen 2
Beispiele für Modelle 3
Was ist ein Modell? Kriterien nach Stachowiak: Abbildung: Modelle bilden einen Ausschnitt der Wirklichkeit ab Verkürzung: Nur ein Teil der Eigenschaften des Originals werden übernommen Pragmatismus: Modelle werden für einen bestimmten Zweck entwickelt Modell Original 4
Modell als Abbildung Modelle bilden einen Ausschnitt einer existierenden oder gedachten Wirklichkeit (=Original) ab Wichtige Fragestellung: Bildet das Modell das Original korrekt ab? Besitzt das Modell für den Ausschnitt die Eigenschaften des Originals? Modell Gedachte Wirklichkeit Existierende Wirklichkeit 5
Nutzen von Modellen Modelle werden zu einem spezifischen Zweck entwickelt Beispiele (unvollständig): Beantwortung von Fragen bzgl. der modellierten Wirklichkeit: Wie wird das Wetter morgen?, Wird der Airbag durch mein System schnell genug ausgelöst? Erfüllung spezifischer Aufgaben: Generierung von Programmcode Wichtige Fragestellung: Ist ein bestimmtes Modell für den geplanten Zweck geeignet? 6
Repräsentation von Modellen Modelle können unter anderem repräsentiert werden durch Diagramme, Texte, Formeln, Quellcode Modellierungssprache (Syntax) Modell selbst ist die Interpretation (Semantik) der Repräsentation 7
Deskriptive vs. Preskriptive Modelle Auch: Analyse- vs. Konstruktionsmodelle Deskriptives Modell Preskriptives Modell 8
Deskriptive vs. Preskriptive Modelle im S&SE Beispiele Deskriptive Modelle: Häufig Umgebungsmodelle, z.b. Simulink Modell einer Motor- Physik (als Umgebung einer Motorsteuerung) Ergebnis eines Reverse-Engineerings, z.b. Ist-Architektur eines betrieblichen Informationssystem Preskriptive Modelle: Modelle zur Beschreibung von Anforderungen und Lösungen, z.b. Komponentendiagramm der logischen Soll-Architektur eines betrieblichen Informationssystems Simulink Stateflow Zustandsdiagramm der erlaubten Systemzustände und Zustandsübergänge eines Autos 9
Konkretisierung und Formalisierung Formalisierung Konkretisierung 10
Formale Modelle im S&SE Formale Modellierungstheorie = Ein Satz mathematischer Konzepte und Eigenschaften, die zur Bildung von Modellen verwendet werden können. Beispiel: I/O Automaten (Zustände, Transitionen, Komposition, ) zur Modellierung von Verhalten 11
Vorteile und Probleme formaler Modelle Vorteil von formalen Modellen Präzise Bedeutung Simulierbarkeit und automatische Analysierbarkeit Automatische Transformation einfacher, z.b. Code Generierung Nachweis von aus den Modellen herrührenden Eigenschaften Probleme formaler Modelle u.u. schwierig verstehbar und anwendbar Skalierbarkeit der automatischen Analyse und Transformationstechniken Validierung der modellierten Sachverhalte manchmal schwierig 12
Domänenmodelle vs. Systemmodelle Domänenmodell Abbild eines Ausschnitts aus der realen Welt Stellt oft den Kontext oder den Aufgabenbereich eines Systems dar Systemmodell Beschreibung der Struktur/Arbeitsweise eines Systems 13
Domänenmodelle im S&SE Beispiel: E/R Modell der Konzepte im Bereich Lebensversicherungsverträge Häufig: Fließender Übergang von Domänenmodell zu Systemmodell Modell eines Geschäftsprozess (Domäne) wird zu Ablaufmodell eines Systems Strukturmodell einer Domäne wird (teilweise) zu Datenmodell eines Systems 14
Systemmodelle im S&SE Großteil der Modelle, die wir hier betrachten sind Systemmodelle Beispiele Software-Architekturmodell Modell einer Hardware-Topologie Reliability-Block Diagramm zur Beschreibung der Fehlertoleranz eines Systems 15
Systembegriff Unterscheidung nach Systembegriff Informationsverarbeitung vs. mechatronisches System Zentral vs. verteilt Sequentiell vs. nebenläufig Diskrete Zeit und Werte vs. kontinuierliche Zeit und Werte Deterministisch vs. nicht-deterministisch vs. probabilistisch Vortrag Modellierungstheorie Je nach Systembegriff werden unterschiedliche Modellierungstheorien (bei formalen Modellen) und Spezifikationstechniken nötig 16
Viewpoints und Views Viewpoint Aussehen Viewpoint Reisen View auf View auf 17
Abstraction Layers Final Final einschalten] Final Anlage eingeschaltet [UserInput =!] [UserInput = ] einschalten] terminieren] Anlage ausgeschaltet Final ManualMode Anlage eingeschaltet [UserInput =!] terminieren] einschalten] [UserInput = ] einschalten] Anlage ausgeschaltet daten v erarbeiten Final Funktionen des TransportationController einschalten] ManualMode Wegpunkte für Wegpunkte für Förderbandbewegungen Anlage eingeschaltet [UserInput =!] [UserInput = ] einschalten] terminieren] Anlage ausgeschaltet Anlage eingeschaltet [UserInput =!] terminieren] einschalten] [UserInput = ] einschalten] Anlage ausgeschaltet daten v erarbeiten Funktionen des TransportationController Anlage eingeschaltet [UserInput =!] terminieren] einschalten] [UserInput = ] einschalten] Anlage ausgeschaltet UserInput Wegpunkte für Wegpunkte für +Raw Data daten vtranslated erarbeiten by IOAdapter +Translated Signal Signal +Bus-conformant Data Action Action Deliv erybandaction ManualMode +Displayed data Representation SystemOuput Deliv eryband translated by IOAdapter +Raw Signal +represented Information ActionSignal +determined ManualMode Wegpunkte für Wegpunkte für Förderbandbewegungen Signal Signal ActionSignal Deliv erybandactionsignal Determination Funktionen des TransportationController +determins Signal Signal Signal Deliv erybandsignal Förderbandbewegungen Final +Bus-conformant Data Action Action Deliv erybandaction +Displayed data Representation SystemOuput Action ManualMode +Bus-conformant Data Action Deliv erybandaction +Displayed data Representation SystemOuput Deliv eryband translated by IOAdapter daten v erarbeiten Funktionen des TransportationController +Raw Signal +represented Information ActionSignal +determined UserInput Wegpunkte für Wegpunkte für +Raw Data daten vtranslated erarbeiten by IOAdapter +Translated Signal Signal UserInput +Raw Data translated by IOAdapter +Translated Signal Signal Deliv eryband einschalten] Anlage eingeschaltet [UserInput =!] [UserInput = ] einschalten] terminieren] Anlage ausgeschaltet translated by IOAdapter ManualMode +Raw Signal +represented Information ActionSignal +determined Signal Signal Signal Deliv erybandsignal Wegpunkte für Wegpunkte für Förderbandbewegungen Signal Signal ActionSignal Deliv erybandactionsignal Determination [UserInput =!] Funktionen des TransportationController Signal Signal ActionSignal Deliv erybandactionsignal Determination +determins daten v erarbeiten Signal Signal Signal Deliv erybandsignal Final Final Funktionen des TransportationController +determins Förderbandbewegungen Wegpunkte für Wegpunkte für Action Förderbandbewegungen +Bus-conformant Data Action Action Deliv erybandaction +Bus-conformant Data Action Deliv erybandaction terminieren] +Displayed data Representation SystemOuput Deliv eryband einschalten] Anlage eingeschaltet [UserInput = ] Anlage ausgeschaltet translated by IOAdapter Action einschalten] Action +Bus-conformant Data ManualMode +Raw Signal +represented Information ActionSignal +determined Deliv erybandaction +Displayed data Representation SystemOuput Deliv eryband translated by IOAdapter Determination Signal Signal +Raw Signal +represented Information +determined Signal +determins +Raw Data translated by IOAdapter +Translated Signal Signal Signal ActionSignal Deliv erybandactionsignal Determination +determins UserInput +Raw Data translated by IOAdapter +Translated Signal Signal +Displayed data Representation SystemOuput UserInput +Raw Data translated by IOAdapter +Translated Signal Signal einschalten] Deliv eryband Anlage eingeschaltet [UserInput =!] [UserInput = ] einschalten] terminieren] Anlage ausgeschaltet Final ManualMode translated by IOAdapter +Raw Signal +represented Information ActionSignal +determined Signal Signal ActionSignal Deliv erybandactionsignal Determination +determins Signal Signal Signal Deliv erybandsignal daten v erarbeiten Funktionen des TransportationController einschalten] Signal Signal Signal Förderbandbewegungen Anlage eingeschaltet [UserInput =!] [UserInput = ] einschalten] terminieren] Anlage ausgeschaltet Wegpunkte für Wegpunkte für daten v erarbeiten Funktionen des TransportationController Deliv erybandsignal UserInput Wegpunkte für Wegpunkte für +Raw Data daten vtranslated erarbeiten by IOAdapter +Translated Signal Signal +Bus-conformant Data Action Action Deliv erybandaction ManualMode +Displayed data Representation SystemOuput Deliv eryband translated by IOAdapter +Raw Signal +represented Information ActionSignal +determined Signal Signal ActionSignal Deliv erybandactionsignal Determination Funktionen des TransportationController +determins Signal Signal Signal Deliv erybandsignal Förderbandbewegungen Final +Bus-conformant Data Action Action Deliv erybandaction +Displayed data Representation SystemOuput Wegpunkte für Wegpunkte für Förderbandbewegungen Action ActionSignal UserInput Signal Signal +Bus-conformant Data Action Deliv erybandaction +Displayed data Representation SystemOuput Deliv eryband ActionSignal translated by IOAdapter Signal +Raw Signal +represented Information ActionSignal +determined Deliv erybandactionsignal UserInput +Raw Data translated by IOAdapter +Translated Signal Signal UserInput +Raw Data translated by IOAdapter +Translated Signal Signal Deliv eryband einschalten] Anlage eingeschaltet [UserInput =!] [UserInput = ] einschalten] terminieren] Anlage ausgeschaltet translated by IOAdapter ManualMode +Raw Signal +represented Information ActionSignal +determined Signal Signal ActionSignal Deliv erybandactionsignal Determination +determins daten v erarbeiten Signal Signal Signal Deliv erybandsignal Deliv erybandsignal Signal Signal ActionSignal Deliv erybandactionsignal Determination Funktionen des TransportationController +determins Signal Signal Signal Wegpunkte für Wegpunkte für Förderbandbewegungen +Bus-conformant Data Action Action Deliv erybandaction +Displayed data Representation SystemOuput Deliv erybandsignal UserInput +Raw Data translated by IOAdapter +Translated Signal Signal Deliv eryband translated by IOAdapter +Raw Signal +represented Information ActionSignal +determined Signal Signal ActionSignal Deliv erybandactionsignal Determination +determins Signal Signal Signal Deliv erybandsignal Technische Universität München Viewpoints und Views im S&SE Requirements Viewpoint Functional Viewpoint Logical Viewpoint Technical Viewpoint R1 RN solution-oriented system requirements R1 RN solution-oriented solution-oriented R1 system system requirements requirements RN R1 RN solution-oriented system requirements R1 RN R1 RN R1 RN R1 RN R1 RN R1 RN Viewpoints 18
Seminar- Landkarte der S&SE Legende Modellierung Modellierungstheorien, Modellierungstechniken Thema Themengebiete im Seminar Domänenmodelle Systemmodelle Geschäftsprozesse Konzeptmodellierung Anforderungen, Verhalten, Architektur, Sicherheit, Variabilität, Viewpoints Umwelt/Kontext Eingebettete Systeme Mechatronische Systeme Betrachtungsgegenstand 19
Inhalte der Vorträge und Ausarbeiten (Disclaimer: Gilt nicht für alle Themen, z.b. Thema 1: Modellierungstheorie) Was ist der betrachtete Sachverhalt? (Was?) Teil des Kontexts oder System? Welcher Ausschnitt der Domäne, welche Art von System (Systembegriff) Welche Sichtweise(n) wird/werden eingenommen? (Welcher Viewpoint?) Vorstellung der Modelle, Modellierungstechniken (Wie?) Informell oder formal? Liegt eine Modellierungstheorie zu Grunde? Welche Fragen beantworten die Modelle, welche Aufgaben lassen sich damit lösen (Wozu?) Analysen, Simulationen, Transformationen, Deskriptive oder preskriptive Modellierung? Welche Beziehungen bestehen zu anderen Modellen? 20
Literatur Peter Tabeling: Softwaresysteme und ihre Modellierung, Springer, 2006 Uwe Kastens und Hans Kleine Büning: Modellierung. Grundlagen und Formale Methoden, Hanser, 2008 Manfred Broy und Ralf Steinbrüggen: Modellbildung in der Informatik, Springer, 2004 Roland Müller: The Notion of a Model: A Historical Overview, in: Anthonie Meijers (Ed.): Philosophy of Technology and Engineering Sciences, S. 637-664, Elsevier, 2009 Jochen Ludewig: Models in software engineering an introduction, in: Software and Systems Modeling, 2(1), S. 5-14, 2003 21
Organisation des Seminars Jeder bearbeitet ein Seminarthema Betreuer: Fragen, Feedback auf Zwischenergebnisse Einstiegsliteratur Jeder ist Diskutant für ein weiteres Thema Lesen der Ausarbeitung und evlt. wichtiger Literatur, Vorbereiten von Diskussionsfragen Prüfungskriterien Seminararbeit (Umfang 12-16 Seiten, Vorlage ist online) Präsentation (20 Minuten + 10 Minuten Diskussion) Aktive Mitarbeit im Seminar
Abgabetermine Zwei Wochen vor Präsentation: Abgabe der Seminararbeit Probevortrag Eine Woche nach der Präsentation Abgabe der überarbeiteten Version der Seminararbeit Besprechung von Zwischenständen (Gliederung) in Absprache mit dem Betreuer
Seminartermine Mögliche Slots für die Präsentationen: http://www.doodle.com/hzq77kgfh3dd3bny Bitte bis Ende der Woche eintragen Nächste Woche: 24.7.: Tutorial: Seminararbeit schreiben Tutorial: Präsentieren 24
Diskutanten Thema Student/in Diskutant Modellierungstheorien Modellierung von Anforderungen Geschäftsprozessmodellierung Domänenmodellierung Modellierung von Architektur Modellierung von Variabilität Modellierung von Modi und Modusmanagement Barbara Fichte Christian Wöhrl Daniela Zehetmeier Jean Baptiste Vincey Sascha Moecker Ragna Steenweg Simon Bastian Modelle für Sicherheit und Zuverlässigkeit Florian Caron Modellierung von Mechatronik- und Regelsystemen Lars Kutschat Modellierung von Realzeitsystemen Systemmodellierungsframeworks Agentenbasierte Modellierung Johannes Hoffmeister Andreas Bayha Fritz Gerneth 25