1 / 23

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML)

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML). Sandra Meißl 26.07.2001. Themenübersicht. Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte Modellierung mit UML Geschichte der Unified Modelling Language

leane
Download Presentation

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.2001

  2. Themenübersicht • Objektorientierte Software-Entwicklung • Objektorientierte Analyse und Design • OOA • OOD • Objektorientierte Modellierung mit UML • Geschichte der Unified Modelling Language • Überblick • Anwendungsfalldiagramme • Strukturelle Modellierung mit Klassendiagrammen • Darstellung von Klassen und Objekten • Beziehungen zwischen Klassen • Vererbung • Beispiel • Zusammenfassung • Pakete • Dynamische Modellierung • Aktivitätsdiagramme • Sequenzdiagramme • Weitere Diagrammtypen • Werkzeuge • Literatur

  3. Objektorientierte Software- Entwicklung Die Phasen des objektorientierten Software- Entwicklungsprozesses gliedern sich im wesentlichen in: • OO- Modellierung • OO- Analyse ("Soll- Modell") • OO- Design ("Entwurfs- Modell") • OO- Implementierung auf der Basis von: • OO- Programmiersprachen • OO- Datenbanksysteme • OO- Testen • OO-Wartung

  4. Objektorientierte Analyse und Design • Entwicklung von objektorientierten Software-Systemen • Ist gekennzeichnet durch • dieselben Konzepte während ihrer einzelnen Phasen • Kein Strukturbruch zwischen den Phasen • dieselbe Notation in Analyse und Design • Dadurch wird folgendes erreicht • Durchgängigkeit • Nachvollziehbarkeit • Erweiterbarkeit • Wiederverwendbarkeit Wünsche des Auftraggebers Programme in einer OOP (z.B. Java) OOA-Modell OOD-Modell

  5. Objektorientierte Analyse (OOA) • Betrachtet werden Objekte, die sich in der realen Welt befinden • Diese werden durch Modellbildung und geeignete Abstraktion in Objekte des Objektorientierten Modells überführt • Bestimmen des Umfangs • Bestimmen der zentralen Domänenbegriffe • Festlegen der Detailanforderungen • Untersuchen des Objektverhaltens • Ergebnistypen • OOA Modell • Prototyp der Benutzeroberfläche

  6. Objektorientiertes Design (OOD) • Realisierung der in der Analyse spezifizierten Anwendung auf einer festgelegten Plattform unter den geforderten technischen Randbedingungen • Design der Architektur • Design des Systemverhaltens • Design der Klassen (Spezifikation aus Sicht der Realisierung) • Design der Assoziationen • Ergebnistypen • OOD Modell

  7. Objektorientierte Modellierung mit UML (Unified Modelling Language) • UML: konkrete OO-Modellierungssprache für Analyse und Design • „Sprachfamilie“ mit mehreren Diagrammtechniken zur Darstellung von Struktur und Dynamik • Quasi Standard in der Objektmodellierung • grafische Notation

  8. Geschichte der UML • 1994 Grady Booch und James Rumbaugh bei Rational Software mit dem Ziel einen Industriestandard für die Objektmodellierung zu entwickeln • 1995 Unified Method 0.8 als Vorgänger UML • 1995 Ivar Jacobson zu Rational Software • 1996 UML 0.91 • 1997 UML1.1 wird als Standard von der Object Management Group (OMG) verabschiedet

  9. Überblick über UML • 8 Teilsprachen mit diagrammtechnischen Notationen zur objektorientierten Modellierung • Modellierung von strukturellen Aspekten und Dynamik • Klassendiagramme • Anwendungsfalldiagramme • Sequenzdiagramme • Kollaborationsdiagramme • Zustandsübergangsdiagramme • Aktivitätsdiagramme • Komponentendiagramme • Verteilungsdiagramme

  10. Anwendungsfalldiagramme (Use Case Diagrams) • Use Cases • beschreiben die für Nutzer sichtbare Funktionalität des Gesamtsystems • strukturieren das Gesamtverhalten des Systems • Anwendungsfalldiagramm • Beziehung zwischen Akteuren und Anwendungsfällen

  11. Strukturelle Modellierung mit Klassendiagrammen Klassendiagramme • Darstellung struktureller Aspekte • enthalten • Definition der Eigenschaften und des Verhaltens von Klassen • Beziehungen zwischen den Klassen • Abstraktionskonzepte: Generalisierung, Aggregation, ... • Erstellung während der Analyse • Verfeinerung in der Designphase

  12. Darstellung von Klassen und Objekten „Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte“ (Oesterreich 1998) Klassenattribute und Klassenoperationen

  13. Darstellung von Beziehungen zwischen Klassen Assoziation • Benutzt-Beziehungen zwischen gleichrangigen Klassen Aggregation • Teile/Ganzes-Beziehung • Zusammensetzung eines Objekts aus Einzelteilen Komposition • Strenge Form der Aggregation • Teile vom Ganzen sind existenzabhängig

  14. Vererbung • Oberbegriff-Beziehung (Ist-ein-Beziehung) • Eine Subklasse kann über die Attribute und Operationen einer Superklasse verfügen • Generalisierung - Spezialisierung

  15. Beispiel Klassendiagramm

  16. Zusammenfassung struktureller Modellierung mit Klassendiagrammen • Grafische Repräsentation des strukturellen Modells durch Klassendiagramme • Erstellung in folgenden Schritten • Objekte und Klassen identifizieren • Attribute identifizieren • Assoziationen zwischen Klassen identifizieren und spezifizieren (Aggregation etc.) • Modell vereinfachen durch Generalisierung / Spezialisierung

  17. Pakete • Aufteilung großer Modelle in verwaltbare Teile • Darstellung des Gesamtbilds mit reduzierten Details • direkte Unterstützung von Paketen z.B. in Java Nebenbemerkung: Darstellung „elementarer Klassen“

  18. Dynamische Modellierung • Beschreibung von Kontrollfluß, Interaktion und Ablauf von Operationen • Schritte zur Konstruktion dynamischer Modelle • Use Cases mit Hilfe von Aktivitätsdiagrammen verfeinern • Szenarien typischer Interaktionssequenzen „durchspielen“ • Ereignisse zwischen Objekten identifizieren... • ... und ein Sequenzdiagramm für jedes Szenario entwerfen

  19. Aktivitätsdiagramme Modellierung von Workflows (objektorientierte Ablaufpläne, ausschließliche Darstellung von Aktivitäten) • Konzepte • Aktivitäten • Verzweigungen (branches) • Synchronisation (fork & join) • Partitionierung entlang Verantwortlichkeit (swimlanes) Beispiel: Use Case „Auftrag bearbeiten“

  20. Sequenzdiagramme • (Zeitbezogene) Darstellung von beispielhaften Interaktionssequenzen • Konzepte • Zeitlinie (lifeline) • Interaktion: Methodenaufruf / -antwort Beispiel: Auftrag bearbeiten Sz1, „alter“ Kunde bestellt Lagerartikel

  21. Weitere Diagrammtypen • Kollaborationsdiagramm • ähnlich Sequenzdiagramm • Zusammenarbeit der Objekte steht im Vordergrund • Zustands(übergangs)diagramm • Zustände, die ein Objekt einnehmen kann • Stimuli für Zustandsänderungen • Komponentendiagramm • Beziehungen zwischen den Komponenten • Schnittstellen der Komponenten • Verteilungsdiagramm • Hardware Architektur • Verteilung der Softwarekomponenten auf der Hardware

  22. Werkzeuge • Dienen der automatischen Unterstützung von Methoden, Verfahren, Konzepten und Notation • Codegenerierung • C++ • Java • ... • UML Case Tools • Rose • Visio • Together • ...

  23. Literatur

More Related