Harald Störrle UML 2 für Studenten

Ähnliche Dokumente
Objektorientierte Softwaretechnik

Software- und Systementwicklung

SQL Server 2005 Der schnelle Einstieg

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

SQL Server 2008 Der schnelle Einstieg

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

Der Rational Unified Process

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

Website- Konzeption. Jens Jacobsen ADDISON-WESLEY

Jürgen Kotz Rouven Haban Simon Steckermeier. WCF, WPF und WF - Ein Überblick ADDISON-WESLEY. An imprint of Pearson Education

Model Driven Architecture Praxisbeispiel

Programmieren mit Java

MCSE-Zertifizierungsupgrade auf Windows Server 2003

Notationen zur Prozessmodellierung

Webanwendungen mit IBM Rational und IBM WebSphere V6

Objektorientiertes Software-Engineering

Lastenheft (Universität Paderborn, Softwaretechnikpraktikum SS2006)

Feature-based Programming

Websites organisieren und gestalten mit dem Open Source-CMS ADDISON-WESLEY. An imprint of Pearson Education

Ziele und Tätigkeiten von Architekten

Charles F. Goldfarb Priscilla Walmsley Deutsche Übersetzung: Frank Langenau XML in Office 2003 Daten managen mit Word, Excel, FrontPage und InfoPath

Model Driven Architecture

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Bück Woody. SQL Server Das Handbuch für Administratoren. ADDISON-WESLEY An imprint of Pearson Education

Windows-Testumgebung

Modellgetriebene Service-Entwicklung

SCSI-Bus und IDE-Schnittstelle

Vorlesung Programmieren

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Modellgetriebene Softwareentwicklung

Model Sketching - Ultraleichte Modellierung. Methodenkarten

SQL objektorientiert

MySQL im Einsatz. Heinz-Gerd Raymans. Mit ODBC, JDBC, PHP und Perl. An imprint of Pearson Education

Windows Scripting lernen

Notes/Domino effektiv nutzen

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

Das Access-VBA Codebook

Einführung in die Allgemeine Betriebswirtschaftslehre

Horus ISO QM Plug-In. Nachhaltige Unternehmensentwicklung auf Basis internationaler Standards. Warum ISO Qualitätsmanagement?


Magento Theme-Design. professionelle Themes für Ihren Shop Y%ADDISON-WESLEY. Entwerfen Sie Schritt für Schritt. Richard Carter

Statistik für Psychologen und Sozialwissenschaftler

Windows Scripting lernen

IT-Projekt-Management

UML (Unified Modelling Language) von Christian Bartl

Einführung in die Programmierung

Software Engineering und Projektmanagement

Software Engineering

ecommerce Websites Entwicklung erfolgreicher Web-Auftritte mit Java, JavaScript, HTML, XML und SQL Vivek Sharma Rajiv Sharma ADDISON-WESLEY

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung II / Software Engineering II Modulnummer

Oliver Lehmann Antje Lehmann. in Suchmaschinen. An imprint of Pearson Education

Java lernen mit BlueJ

Bausteine mechatronischer Systeme

Analyse und Modellierung von Informationssystemen

3. Vorgehensmodelle Software Engineering. Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Exchange Server Der schnelle Einstieg

Joomla! eigenen Joomla!-Website ^ADDISON-WESLEY. Die Schritt-für-Schritt-Anleitung zur. Stephen Bürge. An imprint of Pearson

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Java-Programmierung mit Visual J++ 1.1

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Objektorientierte Softwareentwicklung mit UML

Systemdenken und Gestaltungsmethodik System-Modellierung

Vortrag von: Ilias Agorakis & Robert Roginer

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Internationale Unternehmensbewertung

Dirk Hachenberger Mathematik für Informatiker

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Unified Modeling Language 2

Formale Entwicklung objektorientierter Software

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

Übungsaufgaben zum Software Engineering: Management

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

Referent: Alessandro Arrigo AAM1. Professor: Prof. Dr. Heindl. Furtwangen,

MCITP für Windows Server 2008

Some Software Engineering Principles

Model Driven Software Development

Software-Entwicklung

Oracle JDeveloper 10 g

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen

PostgreSQL. Professionell und praxisnah. Jens Hartwig. An imprint of Pearson Education

Moderne Strukturierte Analyse

Modellgetriebene Softwareentwicklung und deren Auswirkung auf die Entwicklungsmethodologie von Standardsoftware

Rückblick: Entity-Relationship-Modell

Validierung und Verifikation

Objektorientierte Analyse

xdsl: Eine Einführung

Softwareprozessmodelle

Contao für Redakteure

Einführung in Generatives Programmieren. Bastian Molkenthin

Inhaltsverzeichnis. Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN:

BPMN. Suzana Milovanovic

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig,

Objektorientierte Modellierung (1)

Technische Fotografie Für Naturwissenschaftlicher, Mediziner und Ingenieure

Software Engineering

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Google Analytics & Co

INNOVATOR im Entwicklungsprozess

Transkript:

Harald Störrle UML 2 für Studenten ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

UML im Kontext 3.1 Der Software-Lebenszyklus... 30 3.2 Die Rolle der Modellierung... 31 3 3.3 Methode, Notation, Technik... 32 3.4 Auswahl passender Modelle und Diagramme 33 ÜBERBLICK

3 UML IM KONTEXT In diesem Kapitel lernen Sie, was ein (UML-)Modell ist, welche Rolle Modelle im Vergleich zu Programmen und anderen Artefakten im Lebenszyklus von Software spielen und wie man Modelle erstellt. 3.1 Der Software-Lebenszyklus Wie alle anderen technischen Artefakte unterliegt auch Software einem Lebenszyklus (engl.: life cycle): Sie wird geplant, entworfen, hergestellt, in Betrieb genommen, benutzt und gepflegt und schließlich abgelöst und außer Dienst gestellt. Abbildung 3.1 zeigt schematisch den Software-Lebenszyklus. Dieser Lebenszyklus ist z. B. in der Norm [ISO 12207 (1995)] definiert und heute in dieser Form weitgehend akzeptiert, auch wenn die Terminologie sich manchmal unterscheidet (z. B. wird die Phase Einführung im V-Modell Überleitung in die Nutzung genannt). Die Vorgehensweise zur Herstellung von Software nennt man Entwicklungsprozess oder Softwareprozess. Die Abschnitte des Lebenszyklus bzw. eines Softwareprozesses nennt man häufig Phasen, ein Begriff der ursprünglich auf den sog. Wasserfall-Prozess zurückgeht (siehe Royce (1970)), der heute als die Geburtsstunde der Prozesslehre gilt. Eine ähnliche, weit verbreitete Einteilung ist im Vorgehensmodell des Bundes (siehe GMD (1997); Uthke (1997); V-Modell XT (2004)) vorgenommen, die in Abbildung 3.2 zu sehen ist. Dieses Diagramm veranschaulicht mehrere wichtige Aspekte gleichzeitig und ist wert, etwas genauer betrachtet zu werden. Zum einen definiert es die wesentlichen Aufgaben und legt ihre Abfolge fest. Dabei wird die Beziehung zwischen analytischen/entwerfenden Aufgaben auf dem linken Ast und korrespondierenden konstruktiven Aufgaben auf dem rechten Ast deutlich. Die Überlappung der Aufgaben auf der Zeitachse macht zum anderen klar, dass kein zwangsläufig streng sequentielles Vorgehen beschrieben wird, es verschiebt sich lediglich der Schwerpunkt der Tätigkeiten im Projekt von fachlichen zu technischen und wieder zurück zu fachlichen Aufgaben. Analyse Entwurf Projektdefinition Implementation Wartung Renovierung Stilllegung Betrieb Integration Migration & Einführung Abbildung 3.1: Die Phasen im Lebenszyklus von Software 30

3.2 Die Rolle der Modellierung Abbildung 3.2: Die Phaseneinteilung des V-Modell 97 Darüber zeigt dieses Diagramm auch auf, wie sich reine Software-Systeme von integrierten Hardware-/Software-Systemen unterscheiden bzw. wie solche Unterschiede begrifflich gefasst werden können: Der untere Teil des V ist doppelt angelegt, und soll darstellen, dass zu einem System Hardware- und Software-Komponenten gehören können, die einzeln analysiert, entworfen, implementiert und integriert werden, um anschließend in ein Gesamtsystem integriert zu werden. 3.2 Die Rolle der Modellierung Ein Modell ist ein Abbild eines Originals, anhand dessen sich z. B. Prognosen über das Original leichter, billiger, schneller oder überhaupt erst machen lassen (siehe Stachowiak (1973)). In der Softwareherstellung kommen als Original verschiedene Dinge in Betracht, z. B. ein existierendes System organisatorischer oder technischer Abläufe, dann nennt man das Modell Analyse oder Entwurf und versucht anhand dieses Modells, die Realität zu verstehen bzw. eine Vorstellung von einer neuen, zu erreichenden Realität zu entwickeln; ein existierendes Anwendungssystem, dann nennt man das Modell Dokumentation und hofft, sich durch Benutzung der Dokumentation künftig langwierige Experimente am Code zu ersparen. Die Modellierung taucht also potentiell in allen Phasen des Software-Lebenszyklus auf, traditionell liegt der Schwerpunkt aber eher in den frühen Phasen des Software- Lebenszyklus. Dies sind gleichzeitig die entscheidenden Phasen, denn nach dem Gesetz von Boehm unterlaufen Fehler am häufigsten in der Anforderungserhebung 31

3 UML IM KONTEXT oder beim Entwurf und sind um so teurer, je später sie entfernt werden (sieheendres u. Rombach (2003, S. 17)). Es lohnt sich also, Aufwand auf die valide und korrekte Modellierung zu verwenden. Ein zweites Argument folgt aus dem Gesetz von Corbató, wonach Produktivität und Zuverlässigkeit von der Länge eines Programms abhängen, aber nicht vom Abstraktionsniveau der verwendeten Programmiersprache (siehe Endres u. Rombach (2003, S. 72)). 1 Es lässt sich außerdem beobachten, dass die Programmierung einer bestimmten Funktionalität tendenziell zu umso kürzeren Programmen führt, je abstrakter die verwendete Sprache ist. Mit anderen Worten: Je abstrakter die Sprache ist, umso mehr Funktionalität steckt in jeder Programmzeile. Daraus folgt wiederum, dass mit steigendem Abstraktionsniveau der Sprache mehr Funktionalität pro Zeiteinheit und Programmierer geliefert wird. Daher ist es wenig erstaunlich, dass es einen immer stärkeren Trend zu (abstrakteren) Hochsprachen gibt und dass manche Leute in der UML den Prototypen der nächsten Generation von Programmiersprachen sehen. 2 Dann wäre ein Modell in UML das, was ein Programm für eine Programmiersprache ist. Insbesondere die Modellgetriebene Architektur (MDA R, engl.: Model Driven Architecture R der Herstellervereinigung OMG sowie die Anforderung der flexiblen Komposition von Web-Services in der serviceorientierten Architektur (SOA, engl.: service oriented architecture) vergrößert noch die Zahl der Anhänger des Modellierungs- Paradigmas, selbst unter den Vertretern agiler Methoden (siehe z. B. Ambler (2002)). 3.3 Methode, Notation, Technik Was wir heute als UML, also als Unified Modeling Language kennen, hieß ursprünglich Unified Method. Aber dieser Name wurde als irreführend erkannt, bietet die UML doch einerseits ein ganzes System aus Notationen, ohne jedoch andererseits explizit Techniken oder Softwareprozesse festzulegen. Eine Methode unterstützt die systematische Abarbeitung einzelner Schritte eines Softwareprozesses. Eine Methode besteht aus einer Notation und einer Technik. Eine Notation kann textuell oder grafisch sein und dient nur der Beschreibung eines Modells. Eine Technik andererseits ist eine detaillierte Vorgehensweise, eine schematische Anleitung zum Umgang mit einer Notation, also zur Erstellung des Modells. Offensichtlich gibt es enge Beziehungen zwischen den beiden, so dass sich nicht immer sauber trennen lässt. Andererseits gibt es keine zwingende eindeutige Zuordnung zwischen Notationen und Techniken: In der Regel sind verschiedene Kombinationen möglich, sinnvoll und verbreitet. Auch die UML lässt sich auf zahlreiche verschiedene Weisen einsetzen: Die UML ist weitgehend Methoden-neutral. In diesem Buch liegt der Schwerpunkt auf der Notation, für Techniken ist z. B. Noack (2001) eine gute Quelle. Das heißt nicht, dass die Vorgehensweisen weniger wichtig wären, ganz im Gegenteil. 1 Dieses Gesetz wird oft formuliert als: Die Zeilen Code pro Programmierer sind konstant unabhängig von der verwendeten Sprache. 2 [I hope] Java or C++ [will be replaced by modelling languages] the way Pascal and Fortran have replaced (to a large degree at least) assembly languages in the 60s/70s. [ ] I am not sure that UML will be the language that will do that [though] Selic (2004), siehe auch Selic (2003). 32

3.4 Auswahl passender Modelle und Diagramme 3.4 Auswahl passender Modelle und Diagramme Die Qualität von Modellen und Diagrammen hängt entscheidend von der Qualität des Modellierers ab. Offenbar ist, wer Deutsch spricht, deswegen noch kein Dichter und entsprechend ist auch, wer UML spricht deswegen noch kein (guter) Modellierer. Welche Modelle in einer bestimmten Situation am besten geeignet sind, einen intendierten Inhalt wiederzugeben, welche Notationen oder Notationselemente dabei zum Einsatz kommen und wie Diagramme, Formulare und Texte aufgebaut sein sollten, hängt von einer Reihe von Faktoren ab, inklusive der Phase des Lebenszyklus, dem Zweck, den verfügbaren Medien und dem Publikum. Die Beurteilung dieser Faktoren erfordert viel Erfahrung. Die Auswahl der Beispiele gibt Ihnen einen ersten Eindruck, die Tabelle in Anhang A.5 enthält zusätzlich einen Katalog der Diagramm- bzw. Modelltypen mit Auswahlkriterien. Vor allem aber das folgende Kapitel soll Ihnen helfen, die in diesem Buch vorgestellten Notationen im praktischen Kontext zu verstehen. 33