Einführung in die Modellierung Christian Huemer Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna, Austria phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896 office@big.tuwien.ac.at, www.big.tuwien.ac.at 1
Warum Modellierung? Ein Modell ist die Vereinfachung der Realität Wir erstellen Modelle, damit wir die Realität besser verstehen können Wir bilden Modelle von komplexen Systemen, da wir sie nicht in ihrer Gesamtheit verstehen können Um unterschiedlichen Stakeholders unterschiedliche Sichten auf ein System zu gewähren Um einen gewissen Aspekt eines Systems zu einem gewissen Zeitpunkt zu betrachten Abschätzungen in komplexen, zeit- und kostenkritischen Systemen 2
Mentale Modelle Mentale Modelle sind Annahmen Generalisierungen Bilder Eindrücke die beeinflussen wie wir die Welt sehen und dementsprechend reagieren Wir alle haben Modelle der Geschäftswelt in der wir arbeiten und der Geschäftsabläufe, fe die dort passieren Mentale Modelle beeinflussen unser Reaktionen auf Ereignisse Mentale Modelle der einzelnen Beteiligten (und Interessierten) stimmen nicht immer überein Dies bezeichnen wir als Missverständnis Missverständnisse führen zu schlecht funktionierenden Systemen Es ist wichtig, ein von allen getragenes mentales Modell zu entwickeln 3
Der Bedarf an Modellierungssprachen Wir müssen uns auf ein gemeinsames Mentales Modell verständigen Mentale Modelle jedes einzelnen müssen kommuniziert und hinterfragt werden, um die Relevanz zu verstehen Kommunikation muss auf einer gemeinsamen Sprache basieren Eine Modellierungssprache hilft mentale Modelle in einer Syntax auszudrücken 4
Modellierungssprachen (1/2) Eine Brille zur Betrachtung des Problemlösungsbereiches beeinflusst die Wahrnehmung lässt Wesentliches sichtbar werden (außer sie passt nicht dann macht sie blind) Ein Werkzeugkasten um neue Modelle zu bauen gibt Möglichkeiten und Richtlinien vor schränkt hä allerdings auch ein 5
Modellierungssprachen (2/2) Die natürliche Sprache kann auch zur Modellierung verwendet werden sehr vielfältige Ausdrucksmöglichkeiten allerdings wenig eingebaute Hilfestellung Modellierungssprachen ist eine künstliche Sprache definiert Regeln zur strukturierten Darstellung eines Systems graphische vs textuelle Modellierungssprachen general purpose vs domänenspezifische Modellierungssprachen 6
Motivation Traditionelle Verwendung von Modellen in der Softwareentwicklung Kommunikation mit den Auftraggebern bzw. Anwendern (Anforderungsbeschreibung, Prototypen) Hilfsmittel für den Softwareentwurf, Erfassen der Absicht Aufgabenspezifikation für die Programmierung Code-Visualisierung, bspw. in TogetherJ 7
Modellierung in der Softwareentwicklung Konzeption Problemstellung, Geschäftsmodell Big Picture inkomplett, informal, vage Anforderungen Problemstellung aufklären und ausarbeiten g Begriffe der Kundensprache (Fachbereich, Anwendung) Entwurf Entwurfsalternativen ti explorieren und auswählen Generische Begriffe der Softwaretechnik (Architektur, Komponenten, Algorithmen & Datenstrukturen) Implementierung Implementierungsentscheidungen treffen, z.b., welche Datenbank, wie werden Assoziationen implementiert, etc. Bestimmte Programmiersprachen, Bibliotheken, APIs Test Mode ellierung 8
9
Motivation für eine modellbasierte Softwareentwicklung Modell als zentrales Artefakt der Softwareentwicklung Statische Analyse Dokumentation Refactoring/ Transformation Modell Automatisiertes Testen Rapid Prototyping Codegenerierung [Bild nach Bernhard Rumpe] 10
Motivation für eine modellbasierte Softwareentwicklung Steigende Komplexität der Software Steigende Basis-Anforderungen, z.b. adaptierbare GUIs, Sicherheit, Netzwerkfähigkeit, Komplexe Infrastrukturen, z.b. Betriebssystem-APIs, Sprachbibliotheken, Anwendungs-Frameworks Zunehmend Software für spezielle Geräte Web Browser, Mobiltelefon, Navigationssystem, Videogerät, etc. Fortschreitende technologische Entwicklung Integration unterschiedlicher Technologien und Altsysteme, Migration auf neue Technologien führen zu Problemen bei der Softwareentwicklung Software zu spät fertig Falsche Funktionalität realisiert Software ist schlecht dokumentiert/kommentiert und kann nicht weiter entwickelt werden, z.b. wenn technische Umgebung wechselt, Geschäftsmodell / Anforderungen wechseln, etc. 11
Motivation für eine modellbasierte Softwareentwicklung Qualitätsproblematik in der SWE [Balzert, H.: Lehrbuch der Softwaretechnik: Software-Entwicklung, Spektrum, Akad. Verlag, 1996] [Folie von Bernhard Rumpe] 12
Modelle, Diagramme und Werkzeuge Modell vs. Diagramm Ein Modell ist eine Menge von Modellelementen (Klassen, Interaktionen, Zustandsmaschinen, etc.) Ein Diagramm ist die visuelle Darstellung von Modellelementen (eine Sicht auf ein Modell) Werkzeuge Modellierungswerkzeuge implementieren eine Modellierungssprache Vorteil: Vorgabe der Modellstruktur, SW-Generierungsfunktionen Nachteil: oft komplex Zeichenwerkzeuge ermöglichen es nur, Diagramme zu zeichnen (z.b., auch ein Whiteboard ist ein Zeichenwerkzeug) Vorteil: Freiheit in der Anwendung, evtl. besser präsentationstauglich Nachteil: umständlich bei größeren Modellen 13