Seite 2
Inhaltsverzeichnis
1 Einleitung 5
2 Methoden zur Softwareentwicklung 7
2.1 Begriffsbestimmungen 7
2.2 Objektorientierte Softwareentwicklung 9
2.3 Ausgewählte Methoden zur objektorientierten
Softwareentwicklung 11
2.4 Ausgewählte Vorgehensmodelle zur Softwareentwicklung 14
3 UML und RUP zur OO Softwareentwicklung 22
3.1 UML als Modellierungssprache für objektorientierte SW-
Entwicklung 22
3.1.1 Entstehungsgeschichte 22
3.1.2 UML Struktur und Sprachelemente 23
3.1.3 UML Diagramme 24
3.1.4 c Z v v Ç u t Konzept und UML 28
3.2 RUP als Vorgehensmodell zur objektorientierten SW-Entwicklung
mit UML 30
3.2.1 Entstehungsgeschichte 30
3.2.2 Das RUP - Prozessrahmenwerk 31
3.2.3 RUP Artefakte und UML 33
3.2.4 RUP-Projekt Implementierung 36
4 HLVSLHODQZHQGXQJÄ LEOLRWKHNVV VWHP 40
4.1.1 Beschreibung der Beispielanwendung 40
4.1.2 Implementierung des RUP für das Beispielprojekckage 41
4.1.3 Ausgewählte RUP Artefakte 42
5 Zusammenfassung 51
6 Literaturverzeichnis 52
7 Anhänge 58
7.1 Abkürzungsverzeichnis 58
7.2 UML 2.0 Notationsübersicht 59
7.3 Vergleich ausgewählter OO-Methoden 63
7.4 UML 2.0 Metamodell 64
7.5 UML 2 0 Classifier-Konzept 65
Tabellenverzeichnis
Tabelle 1: Abstraktion der Modellierung, Diagrammarten und OO Kon-
zepte , nach Fran00, S.715 10
Tabelle 2: Zwölf Regeln des Extreme Programming Rune04, S.2 19
Tabelle 3: Übersicht zu verschiedenen Vorgehensmodellen Opit03,
S.58 20
Tabelle 4: UML Strukturdiagramme Jeck04, S.21ff 26
Tabelle 5: UML Verhaltensdiagramme Jeck04, S.65ff 27
Tabelle 6: RUP Prozess Disziplinen 32
Tabelle 7: RUP Prozess Phasen 33
Tabelle 8: RUP Modelle, nach Admi08 34
Tabelle 9: UML Diagramme und RUP Modelle, nach Admi08 35
Tabelle 10: RUP Project Timeline (Beispiel), Hirs02, S.5 36
Tabelle 11: RUP Project Artifacts (Beispiel), Hirs02, S.6 37
Tabelle 12: Ä LEOLRWKHNVV VWHP -Projekt Artefakte des RUP 41
Tabelle 13: AnwendXQJVIDOOÄ XFKDXIQHKPHQ 6FKP6 44
Tabelle 14: Vergleich ausgewählter OO-Methoden, nach Dabi00, S.5ff 63
Abbildungsverzeichnis
Bild 1: Aufbau der Arbeit 6
Bild 2: Software-Technik als Fachgebiet der Praktischen Informatik
Balz00 , S.39 7
Bild 3: Komponenten einer Methode Balz00, S.37 9
Bild 4: Ursprünge und grundlegende Konzepte der objektorientier-
ten Softwareentwicklung nach Balz96, S.20f. 10
Bild 5: Beispieldiagramme der OO Modellierung (UML Notation) 11
Bild 6: Historische Entwicklung objektorientierter Methoden und in-
sbesondere der UML Oest04, S.20 12
Bild 7: Wasserfall-Modell / Softwarelebenszyklus Somm07, S.97 15
Bild 8: V-Modell der Softwareentwicklung Opit03, S.26 15
Bild 9: Inkrementell-Iteratives Modell der SW-Entwicklung
Somm07 , S.102 16
Bild 10: Spiral-Modell der SW-Prozesses Somm07, S.104 17
Bild 11: EP Vorgehensmodell XP08 20
Bild 12: Übersicht der UML-Diagramme, nach Oest04, S.211 und
Jeck04 , S.19 25
Bild 13: Verhaltensdiagramme und Verhalten einer Operation eines
Classifiers Jeck04, S.67 27
Bild 14: Beispiel Notation des Klassendiagramms Jeck04, S.26 28
Bild 15: USDP Softwareentwicklungsprozess, nach Hirs02, S.2 31
Bild 16: RUP Modelle und ihre Abhängigkeiten, Admi08, S.2 34
Bild 17: Geschäftsprozessanalyse für den Betrieb einer Bibliothek 42
Bild 18: Strukturierung des Bibliothekssystems 43
Bild 19: Funktionale Anforderungen an das SW-System 43
Bild 20: QZHQGXQJVIDOOÄ LEOLRWKHNVV VWHP 44
Bild 21: QZHQGXQJVIDOOÄ HVWDQGVYHUZDOWXQJ QDFK 6FKP6 45
Bild 22: QZHQGXQJVIDOOÄ/HLKEHWULHE QDFK 6FKP6 45
Bild 23: AktivitätsdiaJUDPPÄ HQXW HUDQPHOGHQ QDFK 6FKP
S.57 46
Bild 24: Bildschirmansicht eines GUI Prototyps 47
Bild 25: Klassendiagramm Leihobjekt, nach Schm04, S.90 48
Bild 26: Klassendiagramm Entleihung, nach Schm04, S.95 48
Bild 27: Zustandsdiagramm Exemplar, nach Schm04, S.101 49
Bild 28: Sequenzdiagramm Buch ausleihen, nach Schm04, S.111 50
Bild 29: UML 2.0 Metamodell Jeck04, S. 117 64
Bild 30: UML 2 0 Classifier-Konzept Jeck04, S 16 65
1 Einleitung Seite 5
1 Einleitung
Die Größe und Komplexität von Softwaresystemen verdoppelt sich etwa alle fünf Jahre. Heutige Softwaresysteme können leicht aus mehreren millionen Zeilen Quelltext bestehen. Sie werden mehrheitlich nicht mehr für einen einzelnen Computer geschrieben sondern bestehen aus verteilten Anwendungen, die als Teil komplexer Softwarearchitekturen ihre Aufgabe erfüllen müssen [West06, S.6]. Die Entwicklung fehlerfreier Software stellt eine große Herausforderung für die Entwickler dar, die ohne methodisches Vorgehen und Techniken aus dem Software Engineering nur schwer möglich ist [Somm07, S.30f].
Seit Beginn der 90iger Jahre haben objektorientierte Techniken stark an Bedeutung gewonnen. Aus den zahlreichen Methoden, 1993 wurden ca. 40 verschiedene objektorientierte Methoden gezählt [Balz96, S. 19], hat sich eine geringe Anzahl an heute gebräuchlichen Modellierungs- und Vorgehensweisen durchgesetzt. Mit der Unified Modeling Language (UML) hat sich ein Quasistandard zur objektorientierten Modellierung herausgebildet, unter den Vorgehensmodellen und -methoden findet der Rational Unified Process (RUP) eine große Verbreitung [Oest04, S.19ff].
Innerhalb dieser Arbeit soll die objektorientierte Softwareentwicklung mittels UML und RUP als Beispiel für ein methodisches Vorgehen im Sinne des Software Engineering detailiert dargestellt werden. Hierbei liegt der Schwerpunkt der Darstellungen auf den technischen Aspekten der Softwareherstellung (technische Prozesse der Softwareentwicklung) und auf den ersten beiden Prozessaktivitäten (Softwarespezifikation und Softwareentwicklung) des Softwareprozesses [Somm07, S. 33f].
Die Arbeit gliedert sich in drei Abschnitte (vgl. Bild 1). Im ersten Abschnitt werden die grundlegenden Begriffe und ausgewählte Techniken und Vorgehensweisen aus dem Software Engineering vorgestellt und diskutiert. Der zweite Abschnitt vertieft UML als Modellierungsmethode und RUP als Vorge- hensmodell zur objektorientierten Softwareentwicklung. Grundlegenden Prin-
1 Einleitung Seite 6
zipien, Arbeitsschritte und Phasen von RUP und die Notation und Semantik der Modellierungsmethode UML werden beschrieben. Eine kurze Beispielanwendung der vorgestellten Methodik und Vorgehensweise im dritten Abschnitt der Arbeit zeigt die praktische Umsetzung für ein Softwaresystem zur Bibliotheksverwaltung.
2 Methoden zur Softwareentwicklung Seite 7
2 Methoden zur Softwareentwicklung
Der folgende Abschnitt diskutiert die grundlegenden Begriffe und ausgewählte Techniken und Vorgehensweisen aus dem Software Engineering, die für das Verständnis dieser Arbeit notwendig sind.
2.1 Begriffsbestimmungen
Das zentrale Thema dieser Arbeit sind Methoden und Vorgehensmodelle für die objektorientierte Softwareentwicklung. Diese sind Gegenstand des Software Engineering (zu Deutsch: Software-Technik), einem Fachgebiet der Informatik (siehe Bild 2), das bei [Balz00, S. 36] wie folgt definiert wird: Software-Technik: Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkszeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen. Zielorientiert bedeutet die Berücksichtigung z.B. von Kosten, Zeit, Qualität.
Bild 2: Software-Technik als Fachgebiet der Praktischen Informatik [Balz00, S.39]
Das Software Engineering beschäftigt sich demnach mit allen Aspekten der Softwareherstellung, sowohl der eigentlichen Entwicklung wie auch der Wartung nach Inbetriebnahme. Die Entstehung eines Softwareproduktes kann durch einen Softwareprozess, eine Menge von Tätigkeiten und damit zu-
2 Methoden zur Softwareentwicklung Seite 8
sammenhängenden Ergebnissen beschrieben werden. Der Softwareprozess weist vier grundlegende Prozessaktivitäten auf [Somm07, S.33f]: 1. Softwarespezifikation: Definition der zu produzierenden Software und ihrer Einsatzrandbedingungen.
2. Softwareentwicklung: Entwurf und Programmierung der Software. 3. Softwarevalidierung: Überprüfung der Software auf Erfüllung der Spezifikation.
4. Softwareevolution: Weiterentwicklung und Anpassung der Software an veränderte Anforderungen.
Eine vereinfachte Beschreibung des Softwareprozesses wird Vorgehensmodell genannt. Vorgehensmodelle stellen spezielle Sichten dieses Prozesses dar [Somm07, S.35] und liefert so nur einen Teil der Informationen über ihn. Nahezu alle Vorgehensmodelle lassen sich auf drei allgemeine Modelle (Prozessparadigmen) zurückführen. Sie sind im aktuellen Software Engineering weit verbreitet und werden in verschiedenen konkreten Implementierungen von Vorgehensmodellen wie etwa dem Rational Unified Process (RUP) kombiniert [Somm07, S. 35 und S.95]:
1. Wasserfall-Modell: Stellt die grundlegenden Prozessabläufe wie Spezifikation, Entwicklung, Validierung und Weiteentwicklung als eigenständige Phasen des Prozesses dar. Nach Realisierung jeder Phase wird diese vollständig abgeschlossen und die Entwicklung geht zur nächsten Phase über.
2. Evolutionäre Entwicklung: Spezifikation, Entwicklung und Validierung werden verknüpft und mit Hilfe der abstrakten Spezifikation wird schnell ein erstes System entwickelt. Auf Basis der Rückmeldungen der Anwender wird das System verbessert, bis es den Anforderungen entspricht.
3. Komponentenbasiertes Software Engineering: Basis bilden existierenden, wiederverwendbaren Komponenten, aus dem das neue System entstehen soll. Der Systementwicklungsprozess fokussiert auf die Integration dieser Komponenten, weniger auf die Entwicklung neuer Komponenten.
2 Methoden zur Softwareentwicklung Seite 9
Der strukturierte Ansatz für die Softwareentwicklung wird im Software Engineering als Methode bezeichnet. Methoden zielen auf die Entwicklung von (graphisch darstellbaren) Modellen eines Systems und ihre Verwendung für die Systemspezifikation oder den Entwurf [Somm07, S.38]. Wie in Bild 3 abgebildet, wird im Software Engineering der Methodenbegriff auch als Oberbegriff von Konzepten, Notationen und Vorgehensweisen verstanden [Balz00, S.37].
Bild 3: Komponenten einer Methode [Balz00, S.37]
Hierbei erlauben Konzepte die Modellierung definierter Sachverhalte unter einem oder mehreren Gesichtspunkten. Sie können durch Notationen dargestellt werden, indem diese Informationen symbolisch abbilden. Das Methodisches Vorgehen schließlich beschreibt die Schritte und Regeln zur Zielerreichung [Balz00, S.37f].
2.2 Objektorientierte Softwareentwicklung
Die objektorientierte Softwareentwicklung basiert auf den grundlegenden Konzepten Objekt, Klasse, Botschaft, Vererbung und Polymorphismus. Sie werden durch die Assoziation, die Aggregation, den Zustandsautomaten und um Subsysteme ergänzt (siehe Bild 4). Vorteilhaft ist dabei, dass die meisten Konzepte durchgängig über alle Phasen des objektorientierten Softwarepro- zesses hinweg verwendet werden können [Balz96, S. 21f.].
2 Methoden zur Softwareentwicklung Seite 10
Bild 4: Ursprünge und grundlegende Konzepte der objektorientierten Softwareentwicklung [nach Balz96, S.20f.]
Die objektorientierten Methoden der Softwareentwicklung nutzen diese Konzepte im Rahmen der Analyse der Anwendungsdomänen zur Abstraktion, d.h. zur Erstellung von konzeptionellen Modellen als Kommunikationsmittel zwischen Anwender und Softwareentwickler [Fran00, S. 709].
2 Methoden zur Softwareentwicklung Seite 11
Im Mittelpunkt der objektorientierten Modellierung stehen graphische Darstellungen bzw. Diagramme zur verständlichen Beschreibung bestimmter Aspekte der Anwendungsdomäne (siehe Tabelle 1 und Bild 5) [Fran00, S.715].
Bild 5: Beispieldiagramme der OO Modellierung (UML Notation)
2.3 Ausgewählte Methoden zur objektorientierten Softwareentwicklung
Die Entwicklung der Methoden der Softwareentwicklung ist durch die stetige Zunahme der Abstraktionen gekennzeichnet. Hatte die strukturierte Analyse noch das Ziel, die grundlegenden funktionalen Komponenten eines Systems zu erkennen, wurde diese später durch objektorientierten Methoden ersetzt, um die wesentlich höheren Abstraktionsmöglichkeiten der Objektorientierung zu unterstützen [Somm07, S.37; Oest04, S.16]. Historisch gehen die heute gebräuchlichen objektorientierte Methoden und Vorgehensweisen auf verschiedene Arbeiten insbesondere von Booch, Rumbaugh und Jacobson, den drei sogenannten ÄAmigos³ zurück, die später ihre Methoden zu der heutigen
2 Methoden zur Softwareentwicklung Seite 12
Standard Notation UML vereinigten. Bild 6 zeigt eine Übersicht dieser Entwicklung.
Bild 6: Historische Entwicklung objektorientierter Methoden und insbesondere der UML [Oest04, S.20]
Die heute gebräuchlichste objektorientierte Modellierungssprache UML ent-stand aus der Boch Methode, OMT und OOSE und weist daneben Einflüsse auch anderer Methoden, etwa von Harel (Statechart-Notation) und Coad/Yourdon (OOA) auf [Dabi00, S.5ff.]:
Die Booch Methode geht auf die Arbeit von Grady Booch [Booc94] zurück und enthält sowohl eine Notation als auch einen Prozess (ein Vorgehensmodell) zur objektorientierten Analyse und zum Entwurf von Software. Die Booch Methode definiert vier Entwicklungsphasen (Requirements, Domain Analysis, Design und Implementierung) und stellt acht Diagramme zur Modellierung der Anwendungssichten zur Verfügung (Klassendiagramm, Objektdiagramm, Hilfsroutinenschablone, Zustandsübergangsdiagramm, Klas- seanschblone, Objektschablone, Funktionsschablone und Zeitdiagramm).
2 Methoden zur Softwareentwicklung Seite 13
Die Booch Methode unterstützt inkrementelle und interaktive Entwicklungszyklen.
Die OMT (Object-Modeling-Technique) wurde von James Rumbaugh et.al. [Rumb93] entwickelt. Ihre dreistufige Vorgehensweise (Analyse, System Design, Objekt Design) hat ihre Wurzeln in der strukturierten Methode und wird durch eine umfangreiche Notation unterstützt. OMT unterteilt streng in Analyse und Entwurf. Zur Analyse werden Diagramme zur Beschreibung der statische Sicht (Object Modell), der dynamischen Sicht (Dynamic Object) und eine funktionale Sicht (Functional Modell) bereit gestellt. Die Entwurfsphase beinhaltet die Ableitung der Systemarchitektur und die Identifikation von Teilsystemen und Parallelitäten. Der Objektentwurf fügt dann die im Analysemodell erstellten drei Sichten für die Implementierung zusammen.
Die OOSE (Object-Oriented Software Engineering) Methode geht auf Arbeiten von Ivar Jacobson et.al. [Jaco92] zurück und wurde später von der Firma Ericson entwickelt. Die Methode stellt den Anwendungsfall (use case) in den Mittelpunkt des Entwicklungsprozesses, die Beschreibung der Benutzerinteraktion mit dem Softwaresystem (Szenarien der Systemnutzung).
Die OOA (object oriented analysis) Methode, auch Coad/Yourdon Methode genannt, geht auf Arbeiten von Coad und Yourdon zurück [Coad94]. Schwerpunkt der Methode ist die bessere Unterstützung der Analyse in der objektorientierten Softwareentwicklung, für die Coad und Yourdon eine übersichtliche Notation und einen fünfstufigen Prozess (Objektidentifikation, Strukturidentifikation, Subjektbildung, Definition der Attribute, Methodenspezifikation) einführten. Stärke der Methodik ist insbesondere die detailierte Spezifikation der Attribute und Methoden. Für die Spezifikation der Systemdynamik werden nur Zustandsdiagramme angeboten.
Anhang 7.4 enthält eine tabellarische Übersicht der vorgestellten objektorien- tierten Methoden und ihre Stärken und Schwächen.
Arbeit zitieren:
Inga Schirrmann, 2008, Objektorientierte Softwareentwicklung mittels Unified Modeling Language (UML) und Rational Unified Process (RUP), München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Wettbewerbsanalyse im Bereich Werkstattinformationssysteme
BWL - Unternehmensforschung, Operations Research
Seminararbeit, 22 Seiten
Anreize und Anreizprobleme bei Unternehmenskooperationen, insbesondere...
Hausarbeit, 25 Seiten
Messen und Ausstellungen als Instrumente der Kommunikationspolitik
Ingenieurwissenschaften - Wirtschaftsingenieurwesen
Referat (Ausarbeitung), 14 Seiten
Strukturierte und objektorientierte Analyse
Informatik - Wirtschaftsinformatik
Seminararbeit, 21 Seiten
Durchdringung und Chancen des E-Commerce in der Chemiebranche
Informatik - Wirtschaftsinformatik
Hausarbeit (Hauptseminar), 30 Seiten
Shareholder Value als Zielkonzept des strategischen Managements
BWL - Unternehmensführung, Management, Organisation
Seminararbeit, 20 Seiten
Internet, E-Commerce und der stationäre Einzelhandel
Hausarbeit, 38 Seiten
Balanced Scorecard - ein Feedbacksystem für Managementprozesse
Informationswissenschaften, Informationsmanagement
Hausarbeit (Hauptseminar), 14 Seiten
Electronic Commerce im Business-to-Business-Bereich (EC B2B)
Definition, Geschichte, Chance...
BWL - Unternehmensführung, Management, Organisation
Seminararbeit, 19 Seiten
Entwicklung einer Datenbank am Bsp. der internen Jobboerse der Siemen...
Informatik - Wirtschaftsinformatik
Hausarbeit, 29 Seiten
Erstellen von Diagrammen mit Microsoft Excel (Unterweisung IT-System-K...
AdA EDV / DV / IT / Telekommunikation
Unterweisung / Unterweisungsentwurf, 11 Seiten
Business Process Portale in Integrations-Architekturen: Aufbau, Heraus...
Informatik - Wirtschaftsinformatik
Seminararbeit, 17 Seiten
Beurteilung des Unternehmens LeCroy anhand der unternehmenspolitischen...
BWL - Unternehmensführung, Management, Organisation
Wissenschaftliche Studie, 13 Seiten
Entwicklung eines prozessorientierten Wissensmanagementsystems für ein...
BWL - Unternehmensführung, Management, Organisation
Studienarbeit, 170 Seiten
e-commerce in modernen Medienunternehmen - 1:1-Marketing und Customer ...
Medien / Kommunikation - Medienökonomie, -management
Diplomarbeit, 96 Seiten
Analyse der Marktforschungs-Möglichkeiten im E- und M-Business
BWL - Marketing, Unternehmenskommunikation, CRM, Marktforschung
Hausarbeit (Hauptseminar), 27 Seiten
Inga Schirrmann's Text Objektorientierte Softwareentwicklung mittels Unified Modeling Language (UML) und Rational Unified Process (RUP) ist nun auf dem Buchmarkt erhältlich
Inga Schirrmann hat den Text Objektorientierte Softwareentwicklung mittels Unified Modeling Language (UML) und Rational Unified Process (RUP) veröffentlicht
Inga Schirrmann hat einen neuen Text hochgeladen
UML 2001 - The Unified Modeling Language. Modeling Languages, Concepts...
4th International Conference, ...
Cris Kobryn, Martin Gogolla
UML 2003 -- The Unified Modeling Language, Modeling Languages and Appl...
6th International Conference S...
Perdita Stevens, Jon Whittle, Grady Booch
UML 2000 - The Unified Modeling Language. Advancing the Standard
Third International Conference...
Andy Evans, Stuart Kent, Bran Selic
UML'99 - The Unified Modeling Language. Beyond the Standard
Second International Conferenc...
Robert France, Bernhard Rumpe
UML 2002 - The Unified Modeling Language. Model Engineering, Concepts,...
5th International Conference, ...
Jean-Marc Jezequel, Heinrich Hussman, Stephen Cook
UML 2004 - The Unified Modeling Language
Modeling Languages and Applica...
Thomas Baar, Alfred Strohmeier, Ana Moreira
The Unified Modeling Language. UML'98: Beyond the Notation
First International Workshop, ...
Jean Bezivin, Pierre-Alain Muller
0 Kommentare