objektorientierte analyse und design mit der unified modelling language (uml) sandra meißl...
Post on 05-Apr-2015
104 Views
Preview:
TRANSCRIPT
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• Ü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
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
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 OOA-Modell OOD-Modell
Programme in einer OOP (z.B. Java)
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
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
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
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
Ü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
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
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
Darstellung von Klassen und Objekten
„Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte“ (Oesterreich 1998)
Kreis
radius {rad ius > 0}m itte lpunkt: P oin t = (10,10)
anzeigen()entfernen()setP os ition(pos: P oin t)setRadius(neuerRadius)
E inKreis: Kreis
radius = 25m itte lpunkt = (10,10)
Kunde
K unden: set
Nam eA dresse
FindeK unden(Nam e)
K undeH inzufügen()K undeLöschen()
Klassenattribute und Klassenoperationen
Darstellung von Beziehungen zwischen Klassen
Assoziation• Benutzt-Beziehungen zwischen
gleichrangigen Klassen
Unternehmen Mitarbeiterbeschäftigt *1
Aggregation• Teile/Ganzes-Beziehung• Zusammensetzung eines
Objekts aus EinzelteilenUnternehmen Abteilung
besteht aus 1..*1 M itarbetierbesteht aus 1..*1
Komposition• Strenge Form der Aggregation• Teile vom Ganzen sind
existenzabhängig
M itarbeiter Anschrift1..*
Vererbung
• Oberbegriff-Beziehung (Ist-ein-Beziehung)
• Eine Subklasse kann über die Attribute und Operationen einer Superklasse verfügen
• Generalisierung - Spezialisierung
GeometrFigur{abstrakt}
x: in tegery: in tegers ichtbar: boolean
anzeigen()entfernen()setP os ition(neuX ,neuY)
Kreis
radius {rad ius > 0}
setRadius(neuerRadius)
Rechteck
a { a>0 }b { b>0 }
setA (neueA )setB (neueB )
Beispiel Klassendiagramm
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
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“
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
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“
Sequenzdiagramme
• (Zeitbezogene) Darstellung von beispielhaften Interaktionssequenzen• Konzepte
• Zeitlinie (lifeline)• Interaktion: Methodenaufruf / -antwort
Beispiel:
Auftrag bearbeiten Sz1,
„alter“ Kunde bestellt
Lagerartikel
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
DarstellungsKomponente
FunktionaleKomponente
Schnittstelle 1
Schnittstelle 2
SteuerungsKomponente
Schnittstelle 1
ApplikationsserverClient PC
Darstellung
Geschäftsfunktionalität
Steuerung
Datenbankserver
Datenbank11..* 11..*
Werkzeuge
• Dienen der automatischen Unterstützung von Methoden, Verfahren, Konzepten und Notation
• Codegenerierung • C++• Java• ...
• UML Case Tools• Rose• Visio• Together• ...
Literatur
Balzert, Heide Objektorientierung in 7 Tagen Vom UML-Modell zur fertigen Webanwendung Heidelberg; Berlin 2000Balzert, Heide Lehrbuch der Objektmodellierung Analyse und Entwurf Heidelberg 1999Balzert, Helmut Lehrbuch Grundlagen der Informatik Konzepte und Notationen in UML,
Java und C++ Algorithmik undSoftware-Technik Anwendungen
Heidelberg 1999
Burkhard, Rainer UML Unified Modelling Language Objektorientierte Modellierung für die Praxis Bonn 1999Fowler, Martin; Kendall, Scott
UML Konzentriert Die neue Standard- Objektmodellierungssprache anwenden
Bonn 1998
Oesterreich, Bernd Objektorientierte Softwareentwicklung Analyse und Design mit der Unified Modelling Language
München; Wien 1998
top related