270 likes | 426 Views
Die Unified Modeling Language UML. Sabine Rathmayer LRR-TUM. Inhalt. Einführung Die Komponenten der UML Beispiel Case-Tools. Require-ments. OOP. OOD. OOA. Einführung. C++ Java. R A D I. Use Cases. Unified Method. UML.
E N D
Die Unified Modeling LanguageUML Sabine Rathmayer LRR-TUM
Inhalt • Einführung • Die Komponenten der UML • Beispiel • Case-Tools
Require-ments OOP OOD OOA Einführung C++ Java R A D I Use Cases Unified Method UML
Annahme der UML durch die OMG Nov ‘97 Geschichte der UML
Was ist die UML? • Die UML ist eine Sprache und Notation zur Visualisierung, Spezifizierung, Konstruktion und Dokumentation von Modellen für Software-Systeme. • Sie kann in allen Prozessen innerhalb des Software-Lebenszyklus und über verschiedene Implementierungstechnologien hinweg verwendet werden. • Sie ist keine Methode, sie kann jedoch die Basis für verschiedene Methoden sein.
Komponenten der UML • Anwendungsfalldiagramm • Klassendiagramm • Verhaltensdiagramme • Aktivitätsdiagramm • Kollaborationsdiagramm • Sequenzdiagramm • Zustandsdiagramm • Einsatzdiagramme • Komponentendiagramm • Verteilungsdiagramm
Die UML im Einsatz • Das Registrierungssystem einer Universität soll per Computer abgewickelt werden: • Kursplan für das Semester wird aufgestellt • Studenten sollen Kurse auswählen. • Sobald ein Student sich für ein Semester registriert , wird das Abrechnungssystem benachrichtigt. • Studenten können das System dazu verwenden, innerhalb einer gewissen Zeitspanne nach der Registrierung Kurse dazuzunehmen oder diese wieder abzuwählen. • Professoren benutzen das System um ihre Kurspläne entgegenzunehmen.
Verwaltung Professor Student Abrechnungssystem Akteure - Actors • Ein Akteur ist jemand oder etwas, der oder das mit dem zu entwickelnden System interagieren muß.
Anfordern des Kursplans Verwalten des Stundenplans Verwalten des Studienplans Anwendungsfälle - Use Cases • Der Anwendungsfall zeigt das Verhalten des Systems. • Jeder Anwendungsfall ist eine Folge von verwandten Abläufen, die von einem Akteur mit dem System durchlaufen werden. • Die Akteure werden bzgl. ihrer Anforderungen untersucht. • Verwaltung -- Verwalten des Studienplans • Professor -- Anfordern des Kursplans • Student -- Verwalten des Stundenplans • Abrechnungssystem -- Erhalten von Abrechnungsinformation von der Registrierung
Anfordern des Kursplans Professor Student Verwalten des Stundenplans Abrechnungssystem Verwalten des Studienplans Verwaltung Use-Case-Diagramm • Use-Case-Diagramme werden benutzt um die Beziehungen zwischen Akteuren und Use-Cases darzustellen.
Include und Extend Beziehungen • Beim Festhalten der Use-Cases können weitere Beziehungen entdeckt werden: • »includes« (in UML 1.1 »uses«) zeigt eine Beziehung, die für mehrere Use-Cases gleich ist: • »extends« zeigt eine Erweiterung eines Use-Cases an <<uses>> Kurs-Registrierung Prüfen der Zugangsberechtigung <<uses>> Verwalten des Studienplans
Klassendiagramme • Eine Klasse ist eine Sammlung von Objekten einer gemeinsamen Struktur, eines gemeinsamen Verhaltens, gemeinsamer Beziehungen und einer gemeinsamen Semantik. • Ein Klassendiagramm zeigt welche Klassen existieren sowie deren Beziehungen untereinander bzgl. der logischen Sicht auf das System. • Je nach Methode:Klassen können durch die Untersuchung der Objekte in den Sequenz- oder Kollaborations-Diagrammen gefunden werden.
ScheduleAlgorithm RegistrationForm RegistrationManager Course Student Professor CourseOffering Klassen
Attribute • Die Eigenschaften einer Klasse werden durch ihre Attribute dargestellt. • Attribute werden hauptsächlich durch Problemanalyse und Wissen vom Gesamtsystem gefunden. Course Jeder Kurs besitzt eine Kursnr., Ort und Zeit number location time
Operationen • Das Verhalten einer Klasse wird durch seine Operationen dargestellt. • Operationen können in den Interaktionsdiagrammen gefunden werden. registration Registration form manager RegistrationManager addCourse(Student,Course) 3: add course (joe, math 101)
Klassen ScheduleAlgorithm RegistrationForm RegistrationManager addStudent(course,Studinfo) Course Name NumberCredits Student Open() Name addStudent(Studinfo) Major Professor CourseOffering Name TenStatus Courses Open()
Objekte • Objekte sind im laufenden System konkret vorhandene Einheiten • Objekte sind Instanzen von Klassen • Notation: s1: Student Name = „Meier“ Major = „Informatik“
Beziehungen • Beziehungen zeigen einen Pfad für die Kommunikation zwischen Klassen auf • Beziehungen finden sich in den Sequenz- oder Interaktivitäts-Diagrammen wieder • Die verschiedenen Typen von Beziehungen sind: • Assoziation (Linie) • Relation zwischen Objekten der Klasse • Aggregation (Linie mit Raute, „besteht aus“) • Komposition (Linie mit gefüllter Raute, existenzabhängiger Teil) • Abhängigkeit (gestrichelte Linie)
Beziehungen ScheduleAlgorithm RegistrationForm RegistrationManager registers addStudent(course,Studinfo) Course Name NumberCredits Student Open() Name takes addStudent(Studinfo) Major Professor offers CourseOffering Name TenStatus Courses Open()
RegistrationForm Multiplizität ScheduleAlgorithm 0..* RegistrationManager 1 1 addStudent(course,Studinfo) Course 0..* Name NumberCredits Student Open() 1 Name addStudent(Studinfo) Major 1..4 1 1 Professor 1 CourseOffering Name 1 TenStatus Courses Open()
Vererbung • Oder auch: Generalisierung, Spezialisierung • Definiert Relationen zwischen Ober- und Unterklassen • Zur hierarchischen Strukutierung eines Modells • Beispiel: Course Lecture practical seminar
Mathe 101 Section 1 Registrier. Manager Registrier. Formular Sequenzdiagramme • Ein Sequenzdiagramm zeigt Interaktionen zwischen Objekten in einer zeitlichen Abfolge. Mathe 101 :Student 1 Info ausfüllen 2 abschicken 3 Kurs einfügen (Stud., Mathe) 4 Kurs offen? 5 Kurs offen? 6 eintragen (St.) 7 eintragen (St.)
Kollaborationsdiagramme • Ein Kollaborationsdiagramm zeigt Interkationen zwischen Objekten mittels der Objekte und den Verbindungen untereinander. course form : 1: set course info CourseForm 2: process 3: add course : Registrar theManager : Acourse: CurriculumManager Course 4: new course
Case-Tools • Unterstützung verschiedener UML-Modellelemente • Code-Generierung • Unterstützung verschiedener Programmiersprachen (C++, Java, IDL) • Reverse-Engineering • Dokumentation
Case-Tools: Beispiele • Together • Together Soft LCC, www.togethersoft.com • Rose Data Modeller • Rational Software, www.rational-software.de • Objectif • Microtool, www.microtool.de
Literatur • »Objekt-orientierte Software-Entwicklung« Bernd Oestereich (Oldenburg 1999) • »UML in a Nutshell« Sinan Si Alhir (O´Reilly 1998) • »Applying UML and Patterns« Craig Larman (Prentice Hall 1998)