Technische Universität Wien
Institut für RISE – Research Industrial Software Engineering
DIPLOMARBEIT
Analyse eines effizienten Werkzeuges zur Modellierung von
Software – Systemen
eingereicht von:
Mustafa TOKTAS
2003
Kurzfassung
Software – Engineering, das sich mit dem Entwickeln von Software – Systemen beschäftigt, hat sich seit dem Entstehen der ersten Programmiersprachen bis hin zur heutigen Softwareentwicklung sehr rasch weiterentwickelt.
Die immerzu steigende Komplexität von Softwaresystemen und die hohen Erwartungen an eine Software sind zwei Hauptgründe für diese rasche Weiterentwicklung. Während in der Zeit von 1942 – 1945 (Entwicklung des ersten Computers und der ersten Programmiersprache durch Konrad Zuse), vornehmlich einzelne Recheneinheiten programmiert wurden, wird heute unter Software – Engineering die Fähigkeit verstanden, komplexe Zusammenhänge in Teilprobleme zu unterteilen, jedes Teilproblem zu lösen und alle Teilprobleme wieder zusammenzusetzen, sodass schlussendlich die Lösung des komplexen Problems entsteht.
Vorliegende Arbeit beschäftigt sich einführend mit dem Begriff Software – Engineering und versucht einen Einblick in Modellierung resp. Modellbildungen in der Software – Technik zu geben. Es wird dabei aufgezeigt, wie essentiell Modellbildungen (=die komplexe Umwelt in Computermodellen wiederzugeben) für die Informatik resp. für das Software – Engineering sind.
Für solche Modellbildungen gibt es verschiedene Modellierungssprachen, welche diese Modelle versuchen zu standardisieren.
Die UML (Unified Modelling Language) ist die wichtigste Modellierungssprache und weltweit von Wissenschaft und Wirtschaft als Industriestandard anerkannt. Nicht nur die UML mit all ihren Diagrammen werden in vorliegender Arbeit detailliert beschrieben, sondern auch die Wichtigkeit der Modellierung von Software – Systemen in den beiden Softwareentwicklungsphasen Analyse und Entwurf aufgezeigt [vgl. Suzu99].
Unterstützend zur Modellierung werden sog. UML Werkzeuge eingesetzt. Aus den unzähligen sich auf dem Markt befindenden UML Werkzeugen werden drei detailliert untersucht:
Anhand einer Aufgabenstellung im Bereich Flughafenleitsystem werden diese drei Werkzeuge evaluiert und abschließend bewertet. Ausgehend von diesen Bewertungen wird schließlich ein Kriterienkatalog für ein zukünftiges professionelles UML Werkzeug definiert.
Inhaltsverzeichnis
1 Einleitung ... 1
1.1 Motivation ... 1
1.2 Vorgangsweise ... 2
1.3 Gliederung der Arbeit ... 3
1.4 Schreibweise und Modellierung der Diagramme ... 4
2 Software –Engineering und Modellierung ... 5
2.1 Einleitung ... 5
2.2 Software – Engineering ... 4
2.2.1 Historie der Software – Engineering ... 4
2.2.2 Definition des Begriffs „Software – Engineering" ... 5
2.3 Prinzipien des Software Engineering ... 6
2.3.1 Vorgehensmodelle in der Softwareentwicklung ... 6
2.3.2 Die Analyse – und Entwurfsphase in der Objektorientierung ... 12
2.3.3 Personen in Softwareprojekten ... 17
2.3.4 Dokumente und Produkte eines Softwareprojektes ... 19
2.4 Modelle in der Software Engineering ... 27
2.4.1 Modellierung in der Informatik ... 27
2.5 Zusammenfassung ... 29
3 UML (Unified Modelling Language) ... 33
3.1 Einleitung ... 33
3.2 Historie der UML ... 33
3.3 Diagrammarten in der UML ... 35
3.3.1 Anwendungsfalldiagramm ... 35
3.3.1.1 Anwendungsfallbeschreibung ... 36
3.3.2 Klassendiagramm ... 39
3.3.2.1 Klassen ... 39
3.3.2.2 Attribute ... 40
3.3.2.3 Methoden ... 40
3.3.2.4 Abstrakte Klassen ... 41
3.3.2.5 Schnittsellenklasse ... 42
3.3.2.6 Assoziationen ... 44
3.3.2.7 Binäre Assoziation ... 44
3.3.2.8 Aggregation ... 45
3.3.2.9 Komposition ... 46
3.3.2.10 Weitere Assoziationsformen ... 47
3.3.2.11 Objekte ... 50
3.3.3 Verhaltensdiagramme ... 51
3.3.4 Implementierungsdiagramme ... 57
4 UML Werkzeuge ... 59
4.1 Einleitung ... 59
4.1.1 Aufbau der folgenden Evaluierung: ... 42
4.1.2 Aufgabenstellung ... 42
4.1.3 Zur Auswahl der UML Tools ... 45
4.2 Visio ... 65
4.2.1 Einleitung ... 65
4.2.2 Modellierung ... 67
4.2.3 Evaluierung ... 70
4.3 Rational Rose ... 76
4.3.1 Einleitung ... 76
4.3.2 Modellierung ... 78
4.3.3 Evaluierung ... 80
4.4 ArgoUML ... 87
4.4.1 Einleitung ... 87
4.4.2 Modellierung ... 89
4.4.3 Evaluierung ... 92
4.5 Auswertung der Evaluierungen ... 98
5 Anforderungen an ein professionelles UML Werkzeug ... 103
5.1 Einleitung ... 103
5.2 Erwerb und Installation der Software ... 104
5.3 UML Konformität ... 106
5.4 Zwingende Reihenfolge bei der Modellierung ... 107
5.5 Konsistenzprüfung ... 111
5.6 Diagrammdarstellung am Bildschirm ... 118
5.7 Roundtripengineering ... 125
5.8 Reports und Dokumentation über UML ... 128
5.9 Verlinkung der Diagramme ... 129
5.10 Druckausgabe ... 130
5.11 Repository ... 130
5.12 Benutzerschnittstelle ... 132
5.12.1 Online Hilfe ... 134
5.12.2 Interaktion zwischen Anwender und Werkzeug ... 134
5.13 Multiuserfähigkeit ... 134
5.14 Erweiterungsmöglichkeiten ... 135
5.15 Erstellung von Softwareprojektmanagement – Diagrammen ... 136
5.16 Schlussfolgerung ... 136
6 Zusammenfassung und Ausblick ... 137
6.1 Zusammenfassung ... 137
6.2 Ausblick ... 138
Anhang: Literaturverzeichnis ... 98
1 Einleitung
1.1 Motivation
So wie in vielen Teilbereichen der Informatik wird auch in der jungen Ingenieursdisziplin Software – Engineering versucht, so weit als möglich eine Automatisierung im Softwareentwicklungsprozess zu erzielen. Selbstverständlich kann bei dieser Tätigkeit die Intelligenz des Menschen und die menschliche Abstraktionsfähigkeit nie ganz kompensiert und maschinell automatisiert werden. Dennoch befinden sich jetzt schon sehr gute Ansätze (wie z.B. künstliche Intelligenz oder für die Erstellung von Sourcecode WYSIWYG Editoren u.a.), welche die monotone Arbeit dem Menschen abnehmen, sodass sich dieser ganz den kreativen und komplexen Anforderungen widmen kann.
Das Ziel bei der Erstellung von Software ist, die Planung so genau wie möglich zu spezifizieren, sodass die schwierige Programmierung von Programmieren, ja sogar von dafür entworfener Software, erfolgt.
„Software soll von Software entwickelt werden!“
Für das Erreichen des obigen Ziels wird speziell in den Softwareentwicklungsphasen Analyse und Entwurf, in denen der Grundstein für das zu entwerfende Softwaresystem gelegt wird, angesetzt.
Wie bereits erwähnt, kann jedoch die menschliche Abstraktionsfähigkeit, oder die Fähigkeit, komplexe Zusammenhänge zu erkennen und Lösungen zu generieren, nie von Software selbst ersetzt werden. Es ist aber durchaus legitim, Software zu erstellen, die wiederum bei der Entwicklung von Software den Menschen ergänzt. Die Anzahl dieser sog. Softwarewerkzeuge im Bereich des Software – Engineering und im Speziellen in der Planung und Spezifikation von Software ist sehr dicht. Da eine ständige Weiterentwicklung besteht, ist eine Sättigung des Marktes in absehbarer Zeit auch nicht zu erwarten.
Bevor allerdings ein Softwarewerkzeug entwickelt werden kann, ist eine standardisierte Modellierungssprache Voraussetzung. Da sich die Modellierungssprache UML – Unified Modelling Language (siehe Kapitel 3) in letzter Zeit als solche bewährt hat, haben diese Software Werkzeuge (im folgenden UML Werkzeuge genannt) UML als Basis. Wie in Kapitel 3 noch genauer beschrieben wird, ist UML bereits ein Industriestandard. Die rasante Entwicklung im Bereich der UML Werkzeuge ist der Grund dafür, dass (noch) keine Standardisierung existiert. Dies erklärt auch die hohe Anzahl und vor allem die wesentlichen Unterschiede unter den UML Werkzeugen selber.
Obwohl zwar mit UML 2.0 eine Standardisierung der UML Werkzeuge vorgesehen ist, greift diese vorliegende Arbeit diesem Vorhaben der OMG (siehe Kapitel 3) vor: Diese Arbeit versucht, anhand von Evaluationskriterien (Kapitel 4), allgemeingültige Kriterien für ein standardisiertes, professionelles UML Werkzeug zu definieren. Die wesentlichen zwei Ziele dieser Arbeit sind also, einerseits den verschiedenen Entwicklungsfirmen von UML Werkzeugen einen zusätzlichen Anforderungskatalog darzulegen und andererseits eine Standardisierung von UML Werkzeuge zu erzielen.
1.2 Vorgangsweise
Der erste Schritt besteht darin, die Wichtigkeit von Modellen resp. Modellbildungen für abstrakte Problemstellungen in der Informatik aufzuzeigen und zu erläutern. Ausgehend von der erworbenen Erkenntnis wird im Speziellen in die Softwareentwicklungsphasen Analyse und Entwurf detailliert eingegangen.
Obwohl sich die standardisierte Modellierungssprache UML sehr bewährt hat, wird sie in der Praxis nur selten eingesetzt. Dies resultiert vor allem von der zu geringen Kenntnis über alle UML – Diagrammarten und die damit verbundenen Möglichkeiten. Auch die nicht zufrieden stellende Benutzerakzeptanz ist ein Grund dafür, dass die UML zu selten bei der Softwareentwicklung eingesetzt wird. Bevor in der vorliegenden Arbeit UML Werkzeuge evaluiert wurden, wurden vorerst alle wichtigen UML Diagramme anhand von Beispielen und Abbildungen erklärt.
Der darauf folgende Meilenstein bei der Erstellung dieser Arbeit war ein eingehendes Literaturstudium zu UML Werkzeugen. Wie bereist erwähnt, besteht die Schwierigkeit darin, einen „Quasistandard“ und somit ernsthafte Literatur über UML Werkzeuge zu finden. Neben den eher subjektiven Meinungen der einzelnen Herstellerfirmen gibt es auch sehr gute „private“ Organisationen wie http://www.jeckle.de mit dem Initiator Mario Jeckle, dem ich auf diesem Weg mein Dank aussprechen möchte, die versuchen, bestehende UML Werkzeuge zu analysieren und Richtlinien für zukünftige aufzustellen. Für Interessierte bietet oben erwähnte Plattform reichlich Information und weiterführende Literatur zu UML Werkzeugen und UML im Allgemeinen.
Der abschließende Meilenstein bei der Erstellung dieser Arbeit ist der Anforderungskatalog an ein professionelles UML Werkzeug: Ausgehend von den definierten Evaluationskriterien wurde versucht, ein zukünftiges UML Werkzeug zu entwerfen. Die größte Schwierigkeit bei der Erstellung solcher Werkzeuge ist sicherlich, eine gute Synergie zwischen Benutzerfreundlichkeit und Funktionalität zu erzielen. Der Anforderungskatalog, welcher in Kapitel 5 aufgestellt wurde, stellt Grundlage für ein zukünftiges professionelles UML Werkzeug dar.
[...]
Arbeit zitieren:
Mustafa Toktas, DI., 2003, Analyse eines effizienten Werkzeuges zur Modellierung von Software Systemen, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Mustafa Toktas hat den Text Analyse eines effizienten Werkzeuges zur Modellierung von Software Systemen veröffentlicht
Mustafa Toktas hat einen neuen Text hochgeladen
0 Kommentare