www.wikidata.de-de.nina.az
Objektorientierte Analyse und Design OOAD sind objektorientierte Varianten der zwei allgemeinen Tatigkeiten Anforderungsanalyse objektorientierte Analyse und Systementwurf objektorientiertes Design im Entwicklungsprozess eines Softwaresystems Dadurch dass in den Entwicklungsphasen Analyse und Design bereits objektorientierte Techniken eingesetzt werden wird der Ubergang zur Implementierung in einer objektorientierten Programmiersprache erleichtert Als Standardnotation fur objektorientierte Modelle hat sich die Unified Modeling Language kurz UML etabliert Ein Vorgehensmodell das speziell fur objektorientierte Techniken und die UML entwickelt wurde ist der sogenannte Rational Unified Process RUP In der Analyse geht es darum die Anforderungen zu erfassen und zu beschreiben die das zu entwickelnde Softwaresystem erfullen soll In dieser Phase werden alle Fakten gesammelt dargestellt und uberpruft Dies kann in Form eines textuellen Pflichtenheftes oder einer Software Requirements Specification geschehen Ergebnis der Analyse ist ein allgemeines Produktmodell in Form eines objektorientierten Analyse Modells OOA Modell Diese fachliche Beschreibung mit objektorientierten Konzepten enthalt verschiedene Artefakte wie Diagramme und Darstellungen von Kontrollstrukturen Beim objektorientierten Design wird das in der Analyse erstellte Domanenmodell weiterentwickelt und darauf aufbauend ein Systementwurf erstellt Dabei wird das allgemeine Modell in eine konkrete Softwarearchitektur umgeformt die Informationen uber Details der technischen Umsetzung enthalt und direkt als Vorlage fur die Implementierung in einer Programmiersprache dient die idealerweise objektorientierte Programmierung OOP unterstutzt Inhaltsverzeichnis 1 Vorgehensmodelle zur Softwareentwicklung 2 Der objektorientierte Ansatz 3 Objektorientierte Analyse 3 1 Requirements Engineering 3 1 1 Anforderungen 3 1 2 Lasten und Pflichtenheft 3 2 Strukturelle Modellierung 3 2 1 Klassendiagramm 3 2 2 Objektdiagramm 3 3 Dynamische Modellierung 3 3 1 Anwendungsfalle 3 3 2 Sequenzdiagramm 3 3 3 Kommunikationsdiagramm 3 3 4 Zustandsdiagramm 4 Objektorientiertes Design 4 1 Problembereichskomponente 4 2 Kommunikationskomponente 4 3 Datenmanagementkomponente 4 4 Taskmanagement Komponente 5 Literatur 6 EinzelnachweiseVorgehensmodelle zur Softwareentwicklung Bearbeiten Hauptartikel Vorgehensmodell zur Softwareentwicklung Wesentliche Aufgabe der Projektorganisation ist es fur ein konkretes Softwareprojekt einen geeigneten Entwicklungsprozess zu definieren und diesen entsprechend umzusetzen 1 Ein Vorgehensmodell zur Softwareentwicklung dient dazu diese ubersichtlich und in der Komplexitat beherrschbar zu machen Bei allen Vorgehensmodellen geht es darum neben der Abgrenzung der Phasen voneinander die Umwandlung eines Konzeptes bzw eine Produktspezifikation in ein lauffahiges Softwareprodukt zu realisieren nbsp Das WasserfallmodellVorgehensmodelle spalten somit einzelne Aktivitaten auf verschiedene Phasen im Entwicklungsprozess auf Diese werden dann u U mit geringen Modifikationen einmal z B Wasserfallmodell oder mehrmals durchlaufen z B Spiralmodell Bei mehrmaligen Durchlaufen erfolgt eine iterative d h wiederholte Verfeinerung der einzelnen Softwarekomponenten Um die optimalen Vorgehensmodelle herrscht Uneinigkeit In der Regel unterscheiden sie beim Entwicklungsprozess mindestens zwei grosse Tatigkeitsgruppen die von der programmiertechnischen Realisierung unabhangige Analyse von Geschaftsprozessen Geschaftsprozessmodell und Datenmodell einerseits und die EDV technische Realisierung Design und Programmierung andererseits Seit Beginn der 1980er Jahre nehmen die Bedeutung und die Anzahl der objektorientierten Analyse und Entwurfsmethoden standig zu Bei diesen werden die Ergebnisse der Phasen Analyse Design und Implementierung objektorientiert erstellt Fur letzteren werden objektorientierte Programmiersprachen verwendet Dadurch dass in all diesen Phasen dieselben Techniken verwendet werden wird eine bessere Durchgangigkeit bei den objektorientierten Techniken erreicht In Analyse und Design wird sogar dieselbe Notation eingesetzt Beim Ubergang von der objektorientierten Analyse zum objektorientierten Design tritt somit kein Strukturbruch auf 2 Einer der ersten Ansatze zur Modellierung der Anforderungen an Systeme war Object Oriented Analysis OOA von Peter Coad und Edward Yourdon 3 Object Oriented Design OOD schliesst direkt daran an und behandelt den Ubergang zum Entwurf 4 Als Standardnotation fur objektorientierte Modelle hat sich die Unified Modeling Language kurz UML etabliert die in den 1990er Jahren insbesondere von Grady Booch Ivar Jacobson und James Rumbaugh entwickelt wurde Die Modelle in UML sind das wesentliche Kommunikationsmittel zwischen Entwicklern und weiteren Beteiligten im Softwareentwicklungsprozess nbsp Statische und dynamische Aspekte des Rational Unified Process Die Flache unter den Kurven zeigt den Umfang der jeweiligen Aktivitaten in den jeweiligen Disziplinen Ein Vorgehensmodell das speziell fur objektorientierte Techniken und die UML entwickelt wurde ist der sogenannte Rational Unified Process RUP Es handelt sich dabei um ein kommerzielles Produkt der Firma Rational Software die seit 2004 Teil des IBM Konzerns ist Federfuhrend bei der Entwicklung waren wiederum die drei Programmierer Grady Booch Ivar Jacobson und James Rumbaugh 5 Der RUP definiert die folgenden Disziplinen Geschaftsprozessmodellierung business modeling Ein Verstandnis fur die Geschaftsprozesse wird erreicht Anforderungsanalyse requirements Die Anforderungen werden erfasst dokumentiert und organisiert Analyse und Design Die fachliche Architektur wird in ein technisches Design uberfuhrt Implementierung Es wird ein lauffahiges Softwaresystem erstellt Test Das Softwaresystem wird getestet Auslieferung deployment Das Softwaresystem wird an den Kunden ausgeliefert Ein Vorteil des RUP ist die iterative Vorgehensweise wodurch im Gegensatz zu linearen Vorgehensmodellen wie etwa dem Wasserfallmodell sich andernde Anforderungen auch zu einem spateren Zeitpunkt noch berucksichtigt werden konnen Der objektorientierte Ansatz BearbeitenSiehe auch Objektorientierte Programmierung Die zugrunde liegende Idee der Objektorientierung ist es Zustand Daten mit Verhalten Funktionen auf diesen Daten zu verbinden Der Programmablauf soll dabei als ein Zusammenspiel von Objekten und ihren Interaktionen aufgefasst werden Die Modellierung der Objekte erfolgt dabei in einer Anlehnung an die reale Welt in der Objekte und ihre Interaktionen ein wesentlicher Bestandteil sind Erganzt wird dies durch das Konzept der Klasse in der Objekte aufgrund ahnlicher Eigenschaften zusammengefasst werden Man kann sich Klassen als abstrakte Schablonen fur Dinge mit gemeinsamen Eigenschaften und Verhaltensformen vorstellen Ein Objekt wird im Programmcode als Instanz oder Inkarnation einer Klasse definiert Das Kernstuck jeder objektorientierten Uberlegung bildet also das Objekt Dieses ist ein Exemplar eines bestimmten Datentyps oder einer bestimmten Klasse und wird wahrend der Laufzeit erzeugt instanziiert Objekte enthalten nun Attribute und Methoden Dabei sind Attribute nur Variablen und Konstanten die Werte aufnehmen konnen und beschreiben damit das statische Wesen des Objektes Im Gegensatz dazu gibt es die Methoden die das gesamte dynamische Verhalten des Objektes oder einer Klasse charakterisieren sie enthalten die algorithmische Essenz des Objektes Beispiel Die Klasse car fur ein Auto definiert zwei Attribute fuel Benzin und maxSpeed Hochstgeschwindigkeit Diese beschreiben den Zustand eines Autos Mit Methoden wie refuel tanken oder drive fahren lasst sich der Zustand eines Autos andern Sie charakterisieren dadurch das dynamische Verhalten Allerdings ist die Klasse car erst der softwaretechnische Bauplan eines Autos Um mit konkreten Autos wahrend der Laufzeit umzugehen mussen Instanzen dieser Klasse erzeugt werden beispielsweise Objekte polo mini und beetle Eine Klasse wird daher bisweilen auch mit einer Ausstechform verglichen die dazu dient viele einzelne Platzchen herzustellen nbsp Die Klasse car und nbsp Objekte der Klasse car und nbsp ein reales Auto Eine Klassifizierung ist im Allgemeinen eine Einschrankung Vereinfachung der realen Welt in einem ganz speziellen Kontext Es wird also niemals die Klassifizierung geben Sie ist immer abhangig vom Ziel das mit der Klassifikation erreicht werden soll Wahrend beispielsweise eine Klasse Auto im Kontext eines Autobauers moglicherweise Attribute wie Rader und Farbe besitzen wird und seine Bauteile in Form von Attributen oder Beziehungen kennen wird hat eine Klasse Auto im Kontext eines Handlers Attribute wie Produktnummer Preis Verbrauch und Erstzulassungsdatum Im Kontext einer Zulassungsstelle wird es Attribute wie Kennzeichen zulassiges Maximalgewicht und den Halter geben Grady Booch et al nennen drei wichtige Aspekte die objektorientierte Programmierung ausmachen 6 Objektorientierte Programme nutzen Objekte und nicht Algorithmen als fundamentale logische Bausteine Jedes Objekt ist eine Instanz einer Klasse Klassen konnen durch das Konzept der Vererbung mit anderen Klassen verbunden sein Objektorientierte Analyse BearbeitenDas Ziel der Analyse ist es die Anforderungen eines Auftraggebers an ein neues Softwaresystem zu ermitteln und zu beschreiben Bei dieser Phase werden meistens alle Aspekte der Implementierung ausgeklammert Es kann aber beispielsweise der Entwurf einer Benutzerschnittstelle z B GUI Entwurf bereits in der Analyse durchgefuhrt werden da fur viele Anwender erst dadurch ein Bild der zukunftigen Anwendung entsteht Die objektorientierte Analyse geht von Objekten aus die sich in der realen Welt befinden Dies sind nicht nur Gegenstande sondern auch Ereignisse und Begriffe aus dem Anwendungsbereich Das zu realisierende Problem soll verstanden und in einem OOA Modell beschrieben werden Dieses Modell soll die essentielle Struktur und Semantik des Problems beschreiben aber noch keine technische Losung Man spricht auch von einem Fachkonzept welches aus einem statischen und einem dynamischen Modell besteht Das statische Modell zeigt insbesondere die Klassen des Systems die Beziehungen zwischen den Klassen und die Vererbungsstrukturen Pakete dienen dazu um bei grossen Systemen einen besseren Uberblick zu gewinnen Das dynamische Modell beschreibt die Funktionsablaufe Anwendungsfalle beschreiben die durchgefuhrten Aufgaben auf einem hohen Abstraktionsniveau Diese konnen durch Aktivitatsdiagramme oder Zustandsdiagramme noch verfeinert werden Das OOA Modell muss alle Informationen enthalten um daraus einen Prototyp der Benutzungsoberflache abzuleiten 7 Requirements Engineering Bearbeiten Hauptartikel Anforderungsmanagement Ziel des Requirements Engineering i e Anforderungsermittlung ist es die Anforderungen an ein neues Softwareprodukt zu ermitteln zu spezifizieren zu analysieren zu validieren und daraus eine fachliche Losung abzuleiten beziehungsweise ein Produktmodell zu entwickeln 8 Objektorientierte Methoden des Requirements Engineering verallgemeinern die Konzepte der Objektorientierung stellen dafur graphische Notationen bereit und betten die Konzepte in einen methodischen Rahmen ein Sie fuhren zu einem integrierten Modell der funktionalen Anforderungen in dem alle relevanten Systemaspekte berucksichtigt sind Nichtfunktionale Anforderungen konnen allerdings nur textuell oder durch individuelle Erweiterung erfasst werden 9 Anforderungen Bearbeiten Anforderungen requirements legen fest was man von einem Softwaresystem erwartet Gibt es einen bestimmten Auftraggeber dann wird dieser die wichtigsten Anforderungen bestimmen Wird ein Produkt fur den anonymen Markt entwickelt dann werden die Marketingabteilung und der Vertrieb die wesentlichen Anforderungen festlegen Alle Personen und Organisationen die ein Interesse an einer Softwareentwicklung haben oder vom Einsatz des Softwaresystems betroffen sind werden mit dem englischen Begriff Stakeholder dt i e Teilhaber Akteur Interessenvertreter bezeichnet Der IEEE Standard 830 Software Requirements Specification unterscheidet funktionale Anforderungen functional requirements von nichtfunktionalen Anforderungen non functional requirements Eine funktionale Anforderung legt eine vom Softwaresystem oder einer seiner Komponenten bereitzustellende Funktion oder bereitzustellenden Service fest Funktionale Anforderungen lassen sich gliedern in Anforderungen die die Statik des Systems beschreiben Anforderungen die die Dynamik des Systems beschreiben und Anforderungen die die Logik des Systems beschreiben 10 Nichtfunktionale Anforderungen auch Technische Anforderungen oder Quality of Service kurz QoS genannt meinen Aspekte wie Zuverlassigkeit Verfugbarkeit Nebenlaufigkeit Konsumierbarkeit Internationalisierung Informationssicherheit Service Anforderungen und Support Nichtfunktionale Anforderungen haben grossen Einfluss auf die Softwarearchitektur Ausserdem konnen sie zueinander im Konflikt stehen So ist beispielsweise Sicherheit haufig im Widerspruch zu Benutzbarkeit Speichereffizienz ist meist gegenlaufig zu Laufzeiteffizienz 11 In Anlehnung an IEEE 830 nennt Balzert eine Reihe von Kriterien die jede einzelne Anforderung erfullen soll 12 Korrekt correct Die Anforderung ist korrekt wenn das zu erstellende Softwaresystem sie erfullt Eindeutig unambiguous Die Anforderung wird von allen Stakeholdern gleich interpretiert Vollstandig complete Die Anforderung muss die geforderte Funktionalitat vollstandig beschreiben Konsistent consistent Die Anforderung muss in sich widerspruchsfrei sein Klassifizierbar nach Wichtigkeit ranked for importance Der Anforderung kann eine Wichtigkeitsstufe zugeordnet werden Einige Anforderungen konnen essenziell sein z B bei lebenskritischen Anwendungen wahrend andere nur wunschenswert sind Mogliche Klassen sind Essenziell essential Bedingt conditional oder Optional optional Klassifizierbar nach Stabilitat ranked for stability Unter Stabilitat wird hierbei die Anzahl der erwarteten Anderungen bei einer Anforderung verstanden Uberprufbar verifiable Die Anforderung muss so beschrieben sein dass sie nach der Realisierung uberprufbar bzw testbar ist Verfolgbar traceable Die Anforderung muss sich eindeutig identifizieren lassen z B durch eine eindeutige Anforderungsnummer die unverandert bleibt Aufgabe des Requirements Engineers ist es in Zusammenarbeit mit den Stakeholdern diese Qualitatskriterien an Anforderungen so gut wie moglich zu erreichen In der Praxis ist man jedoch oft weit davon entfernt diese zu erreichen Diese Problematik entsteht dadurch dass die Gesprachspartner kein vollstandiges Modell des zu entwickelnden Systems im Kopf haben 13 Lasten und Pflichtenheft Bearbeiten Nach der DIN 69901 ist ein Lastenheft eine vom Auftraggeber festgelegte Gesamtheit der Forderungen an die Lieferungen und Leistungen eines Auftragnehmers innerhalb eines Projekt Auftrags 14 Das Lastenheft ist somit die Grundlage zur Losungsfindung im Projektverlauf Im Wesentlichen werden dabei folgende Ziele verfolgt 15 Die Beschreibung der Ausgangslage zum Projekt Ist Situation Ziel und Zweck Geltungsbereich etc die Beschreibung der Anforderungen an das zu realisierende Projekt die Sicherstellung dass wichtige Themenkreise nicht vergessen werden die klare Abgrenzung zum Umfang des zu erstellenden Projekts und die Ubereinstimmung uber Art und Umfang der Projektaufgabe hinsichtlich der Vorstellungen des Auftraggebers und des Auftragnehmers Nach der DIN 69901 enthalt ein Pflichtenheft vom Auftragnehmer erarbeitete Realisierungsvorgaben auf der Basis des vom Auftraggeber vorgegebenen Lastenhefts 16 Aus der Sicht des Auftragnehmers stellt das Pflichtenheft die formelle und detaillierte Antwort auf die Anforderungen des Auftraggebers dar die zuvor im Lastenheft beschrieben wurden Die zu erbringenden Ergebnisse des Auftragnehmers werden dadurch in erforderliche Tatigkeiten Pflichten umgesetzt 15 Lasten und Pflichtenheft sollen den Systemanalytiker also in die Lage versetzen das OOA Modell zu erstellen Sie besitzen jedoch ein niedrigeres Detaillierungsniveau als das OOA Modell Strukturelle Modellierung Bearbeiten Zur Modellierung der inneren Struktur eines Systems werden Strukturdiagramme herangezogen Die beiden wichtigsten Diagrammtypen des objektorientierten Designs sind Klassendiagramm und Objektdiagramm Um Objekte zu modellieren wird untersucht wie die Realitat aussieht bzw wie sie vereinfacht abgebildet werden kann In einem Klassendiagramm werden alle beteiligten Klassen und deren Beziehungen abgebildet In einem Objektdiagramm dagegen werden Objekte des Klassendiagramms zu einem bestimmten Zeitpunkt wahrend der Ausfuhrung dargestellt 17 Klassendiagramm Bearbeiten Hauptartikel Klassendiagramm nbsp Darstellung einer KlasseIn der UML Notation werden Klassen als dreigeteilte Rechtecke angegeben deren Bestandteile der Klassenname eine Liste uber alle Attribute und eine Liste uber alle Operationen und Eigenschaften sind Dabei werden diese drei Rubriken jeweils durch eine horizontale Linie getrennt Wenn die Klasse keine Eigenschaften oder Operationen besitzt kann die unterste horizontale Linie entfallen Klassennamen beginnen mit einem Grossbuchstaben und sind Substantive im Singular Attribute werden mindestens mit ihrem Namen notiert und konnen zusatzlich Angaben zu ihrem Typ d h Klasse einen Initialwert Eigenschaftswerte und Zusicherungen enthalten Operationen werden ebenfalls mindestens mit ihrem Namen aufgefuhrt und konnen zusatzlich Angaben zu moglichen Parameter und deren Klasse Initialwerte sowie eventuelle Eigenschaftswerte und Zusicherungen enthalten Eine Operation meint dabei die abstrakte Definition einer Funktionalitat im Gegensatz zur Methode der konkreten Implementierung einer Operation nbsp Darstellung einer AssoziationEine Assoziation modelliert Verbindungen zwischen Instanzen einer oder mehrerer Klassen Es ist jedoch ublich von einer Assoziation zwischen Klassen zu sprechen obwohl streng genommen die Objekte dieser Klasse gemeint sind 18 Im haufigsten Fall handelt es sich um eine Beziehung zwischen genau zwei Klassen Grafisch wird eine Assoziation durch eine Linie dargestellt Sind mehr als zwei Typen an einer Assoziation beteiligt wird diese durch eine Raute dargestellt an die zu den Objekten fuhrende Linien anliegen Eine reflexive Assoziation besteht dagegen zwischen Instanzen derselben Klasse Die Kardinalitaten einer Assoziation spezifizieren wie viele Objekte der beteiligten Klasse ein bestimmtes Objekt kennen Mann unterscheidet zwischen Kann und Muss Assoziationen Eine Kann Assoziation hat als Untergrenze eine Kardinalitat von 0 eine Muss Assoziation eine Kardinalitat von 1 oder grosser Eine unbestimmte Obergrenze wird durch das Zeichen gekennzeichnet Assoziationen konnen benannt werden Beschreibt der Name nur eine Richtung der Assoziation wird die Leserichtung durch ein schwarzes Dreieck oder einen Pfeil angegeben Ist die Bedeutung der Assoziation offensichtlich kann der Name fehlen 19 nbsp Darstellung von Komposition und Aggregation mit KardinalitatenEine Aggregation ist eine spezielle Assoziation die eine Rangordnung auf den verbundenen Instanzen einer Klasse definiert die sich durch ist Teil von bzw besteht aus beschreiben lasst Teil Ganzes Beziehung Man spricht von einem gerichteten azyklischen Graphen Wenn B Teil von A ist dann darf A nicht Teil von B sein Kann ein Teilobjekt mehreren Aggregationsobjekten zugeordnet werden spricht man von shared aggregation dt i e geteilte Aggregation oder weak ownership dt i e schwacher Besitz Im Klassendiagramm wird eine Aggregation durch eine nicht ausgefullte Raute am Ganzes Ende der Assoziationslinie gekennzeichnet 20 Eine Komposition ist eine noch starkere Form der Aggregation Neben einer Teil Ganzes Beziehung gelten noch folgende Bedingungen 21 Jedes Objekt der Teilklasse darf immer nur Komponente eines einzigen Objekts der Aggregationsklasse sein d h die Kardinalitat bei der Aggregationsklasse darf jeweils nicht grosser als 1 sein Wird das Ganze geloscht dann werden automatisch auch seine Teile geloscht Die dynamische Semantik des Ganzen gilt auch fur seine Teile Wird beispielsweise das Ganze kopiert werden auch seine Teile kopiert Bei der Komposition wird das Ganzes Ende durch eine gefullte oder schwarze Raute gekennzeichnet nbsp Darstellung von Generalisierung bzw VererbungDie Vererbung dient dazu aufbauend auf existierenden Klassen neue zu schaffen wobei die Beziehung zwischen ursprunglicher und neuer Klasse dauerhaft ist Eine neue Klasse kann dabei eine Erweiterung oder eine Einschrankung der ursprunglichen Klasse sein Neben diesem konstruktiven Aspekt dient Vererbung auch der Dokumentation von Ahnlichkeiten zwischen Klassen was insbesondere in den fruhen Phasen des Softwareentwurfs von Bedeutung ist Auf der Vererbung basierende Klassenhierarchien spiegeln strukturelle und verhaltensbezogene Ahnlichkeiten der Klassen wider Die vererbende Klasse wird meist Basisklasse auch Elternklasse genannt die erbende abgeleitete Klasse Kindklasse Den Vorgang des Erbens nennt man meist Ableitung oder Spezialisierung die Umkehrung hiervon Generalisierung was ein vorwiegend auf die Modellebene beschrankter Begriff ist In der UML wird eine Vererbungsbeziehung durch einen Pfeil mit einer dreieckigen Spitze dargestellt der von der abgeleiteten Klasse zur Basisklasse zeigt Geerbte Attribute und Operationen werden in der Darstellung der abgeleiteten Klasse nicht wiederholt Objektdiagramm Bearbeiten Hauptartikel Objektdiagramm Ein Objektdiagramm kann als Sonderfall des Klassendiagramms angesehen werden Wahrend ein Klassendiagramm die allgemeinen Schablonen und alle moglichen Beziehungen der Objekte untereinander modelliert stellt das zugehorige Objektdiagramm die tatsachlich erzeugten Objekte deren Attributwerte und Beziehungen innerhalb eines begrenzten Zeitraums der Laufzeit dar Die Darstellung umfasst somit typischerweise Auspragungsspezifikationen von Klassen und Assoziationen Wie sich ein Objekt in einer bestimmten Situation verhalt hangt wesentlich von seinem Zustand ab Dieser ergibt sich aus der konkreten Wertbelegung seiner Attribute nbsp Beispiel Auspragungsspezifikation fur eine ObjektbeziehungDie graphische Darstellung eines Objekts ist der einer Klasse sehr ahnlich Objekte werden ebenfalls durch Rechtecke reprasentiert Im ersten Feld ist der Objektname zusammen mit dem Typ angegeben Zur Unterscheidung von der Klassen Notation wird der Name des Objekts unterstrichen Im zweiten Feld werden Attribute mit ihren Namen und einem beispielhaften oder im jeweiligen Zusammenhang aktuellen Wert aufgefuhrt Operationen werden nicht genannt da diese keine objekt individuellen Auspragungen besitzen und fur alle Objekte einer Klasse identisch sind Stattdessen wird in Kommunikations und Sequenzdiagrammen der konkrete Nachrichtenaustausch zwischen Objekten dargestellt 22 Das Verhalten eines objektorientierten Systems wird durch Botschaften auch Nachrichten genannt beschrieben mit denen Objekte untereinander kommunizieren Objekte agieren dabei in den Funktionen von Sendern Clients und Empfangern Suppliern Der Sender sendet eine Botschaft mit der Aufforderung eine Dienstleistung zu erbringen Eine Botschaft besteht aus einem Selektor einem Namen einer Liste von Argumenten und geht an genau einen Empfanger Der Empfanger interpretiert diese Botschaft und fuhrt eine Operation aus Der Sender der Botschaft weiss jedoch nicht wie die entsprechende Operation ausgefuhrt wird Geheimnisprinzip Eine aktuelle Beziehung zwischen Objekten wird Link oder Objektbeziehung genannt Ein Link beschreibt also die konkrete Beziehung zwischen zwei Objekten einer Klasse und kann somit als eine Instanz einer Assoziation aufgefasst werden Er wird ahnlich wie die Assoziation im Klassendiagramm als Linie zwischen den Objekten dargestellt An den jeweiligen Verbindungsenden konnen Rollenbezeichnungen stehen die das Verhalten der Objekte zueinander naher beschreiben Dynamische Modellierung Bearbeiten Anwendungsfalle Bearbeiten Siehe auch Anwendungsfalldiagramm Mit Anwendungsfallen englisch use cases werden die extern beobachtbaren Funktionen spezifiziert das heisst das was ein Anwendungssystem einem Benutzer anbieten soll Ein Akteur ist dabei eine ausserhalb des Systems liegende Einheit die an der Interaktion mit dem System beteiligt ist Dies kann ein Mensch sein aber ebenso ein technisches System wie ein Betriebssystem oder ein Drucker Folgende Regeln sind zu beachten 23 An jedem Anwendungsfall ist mindestens ein Akteur beteiligt Jeder Anwendungsfall hat einen fachlichen Ausloser Jeder Anwendungsfall produziert ein fur die Akteure relevantes fachliches Ergebnis d h ein Ergebnis von geschaftlichem Wert nbsp Anwendungsfalldiagramm mit Anwendungsfallen SMS verschicken und Fotomessage verschickenAnwendungsfalle werden klassischerweise so benannt wie die Ziele aus Sicht der Akteure heissen Mitglied anmelden Geld abheben Auto zuruckgeben usw Die Granularitat von Anwendungsfallen kann sich stark unterscheiden Auf sehr hohem Niveau beschreibt ein Anwendungsfall lediglich sehr grob und abstrakt was passiert Die Technik des Anwendungsfall Schreibens kann jedoch bis auf Ebene von IT Prozessen verfeinert werden sodass das Verhalten einer Anwendung detailliert beschrieben wird Dies widerspricht der ursprunglichen Intention von Use Cases ist aber manchmal zweckmassig Der inhaltliche Aufbau eines Anwendungsfalls folgt meistens einer zu definierenden Vorlage die abhangig vom Kontext der spateren Benutzung des Anwendungsfalls ausgearbeitet werden muss Meist werden fur verschiedene Analysephasen auch unterschiedlich stark formalisierte Vorlagen verwendet von der rein prosaischen Kurzbeschreibung bis zu einem vollstandigen ausgearbeiteten Anwendungsfall Wie man Use Cases strukturieren sollte und welche Bestandteile hineingehoren beschreibt beispielsweise Alistair Cockburn 24 Siehe dazu auch Aufbau eines Anwendungsfalls Ein Anwendungsfalldiagramm stellt Anwendungsfalle und Akteure mit ihren jeweiligen Abhangigkeiten und Beziehungen dar Es ist somit ein Verhaltensdiagramm das das erwartete Verhalten eines Systems spezifiziert und keine Ablaufbeschreibung wie es etwa ein Sequenz oder Kommunikationsdiagramm ist Ein Anwendungsfalldiagramm enthalt eine Menge von Anwendungsfallen die durch einzelne Ellipsen dargestellt werden und eine Menge von Akteuren die daran beteiligt sind Diese werden durch Linien mit den entsprechenden Anwendungsfallen verbunden Ein Rahmen um die Anwendungsfalle symbolisiert die Systemgrenzen Sequenzdiagramm Bearbeiten Hauptartikel Sequenzdiagramm Eine Sequenz von Verarbeitungsschritten die unter bestimmten Bedingungen auszufuhren ist wird Szenario genannt Diese Schritte sollen das Hauptziel des Akteurs realisieren und ein entsprechendes Ergebnis liefern Man unterscheidet zwei Kategorien von Szenarios Solche die eine erfolgreiche Bearbeitung des Geschaftsprozesses beschreiben und solche die zu einem Fehlschlag fuhren Szenarios werden durch Interaktionsdiagramme dargestellt Die UML bietet dafur zwei Arten von Diagrammen an das Sequenzdiagramm und das Kommunikationsdiagramm Sequenzdiagramme stellen den zeitlichen Ablauf in den Vordergrund Kommunikationsdiagramme zeigen dagegen die prinzipielle Zusammenarbeit 25 nbsp Beispiel eines Sequenzdiagramms zwischen Auspragungen der Klassen Koch und Herd mit den Nachrichten einschalten und ausschalten In Sequenzdiagrammen sollen Szenarios so prazise modelliert werden dass deren fachliche Korrektheit diskutiert werden kann um eine geeignete Vorgabe fur Design und Implementierung zu erstellen Sequenzdiagramme beschreiben den Austausch von Nachrichten zwischen Auspragungen mittels Lebenslinien und stellen in der Regel einen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes dar Sie besitzen zwei Dimensionen Die Vertikale reprasentiert die Zeit auf der Horizontalen werden die Objekte eingetragen Jedes beteiligte Objekt wird als Rechteck dargestellt und eine gestrichelte vertikale Linie darunter die Lebenslinie symbolisiert dessen Existenz wahrend eines einer bestimmten Zeit Eine Nachricht wird in einem Sequenzdiagramm durch einen Pfeil dargestellt wobei der Name der Nachricht uber den Pfeil geschrieben wird Synchrone Nachrichten werden mit einer gefullten Pfeilspitze asynchrone Nachrichten mit einer offenen Pfeilspitze gezeichnet Nachrichten die asynchronen Signalen entsprechen werden gleich dargestellt wie asynchrone Operationsaufrufe Der wesentliche Unterschied zwischen asynchronen und synchronen Nachrichten ist dass die synchronen Nachrichten die ausgehende Lebenslinie fur weitere Nachrichten blockiert ist bis diese eine Antwort erhalten hat Dies ist bei asynchronen Nachrichten nicht der Fall Die schmalen Rechtecke die auf den Lebenslinien liegen sind Aktivierungsbalken die den Focus of Control anzeigen also jenen Bereich in dem ein Objekt uber den Kontrollfluss verfugt und aktiv an Interaktionen beteiligt ist Bedingungen werden in eckigen Klammern angegeben also in der Form Bedingung Operation Die genannte Operation wird somit nur dann aufgerufen wenn die Bedingung erfullt ist Wiederholungen werden durch Bedingung Operation dargestellt Ein Sequenzdiagramm muss mit dem Klassendiagramm konsistent sein d h alle Botschaften die an ein Objekt einer Klasse gesendet werden mussen im Klassendiagramm in der Operationsliste dieser Klasse enthalten sein Kommunikationsdiagramm Bearbeiten Hauptartikel Kommunikationsdiagramm UML nbsp Kommunikationsdiagramm das dem obigen Sequenzdiagramm entsprichtDas Kommunikationsdiagramm entspricht dem Kollaborationsdiagramm der UML 1 X Es ist umbenannt worden da der Name Kollaborationsdiagramm irrefuhrend ist Es gibt in der UML zwar auch das Modellelement Kollaboration dieses hat aber nichts mit dem Kollaborationsdiagramm zu tun Ein Kommunikationsdiagramm dokumentiert die Zusammenarbeit von Objekten und steht dem Objektdiagramm sehr nahe Im Gegensatz dazu modelliert es jedoch nicht eine Momentaufnahme der Systemstruktur sondern zeigt wie die Objekte fur die Ausfuhrung einer bestimmten Operation zusammenarbeiten Neben den Links zwischen den Objekten zeigt es auch die Botschaften die diese einander senden Eine solche wird in Form eines Pfeiles der auf das empfangende Objekt zeigt an die Verbindung zwischen zwei Objekten eingetragen Eine Beschriftung an dem Pfeil zeigt den Inhalt der Botschaft In der Regel teilt die Botschaft dem empfangenden Objekt mit dass es eine seiner Operationen ausfuhren soll Objekte die wahrend der Ausfuhrung neu erzeugt werden sind mit new Objekte die wahrend der Ausfuhrung geloscht werden mit destroyed gekennzeichnet Objekte die wahrend der Ausfuhrung sowohl erzeugt als auch wieder geloscht werden sind transient Analog dazu konnen Objektverbindungen die im Laufe der Ausfuhrung erstellt werden mit new geloschte Links mit destroyed und Verbindungen die innerhalb des Szenario sowohl auf als auch abgebaut werden mit transient beschriftet werden 26 Zustandsdiagramm Bearbeiten Hauptartikel Zustandsdiagramm UML nbsp Das Verhalten einer Waschmaschine als Zustandsautomat in einem Zustandsdiagramm modelliertDer Zustand eines Objekts wird durch seine Attributwerte festgelegt Je nachdem in welchem Zustand sich nun ein Objekt befindet kann es auf gleiche eingehende Nachrichten unterschiedlich reagieren Dieses Verhalten von Objekten kann durch Zustandsautomaten modelliert werden Dabei handelt es sich um eine Menge von Zustanden und eine Ubergangsfunktion die abhangig vom momentanen Zustand und dem eingehenden Ereignis den Nachfolgezustand bestimmt Die Zustande werden im Zustandsdiagramm als abgerundete Rechtecke dargestellt und mussen unterschiedliche Namen haben Ein Zustandsubergang Transition wird als Pfeil vom Ausgangszustand zum neuen Zustand reprasentiert Eine Transition wird mit dem Namen des Ereignisses Triggers beschriftet das diese Transition auslost Es gibt zwei besondere Zustande den Startzustand und den Endzustand Jeder Zustandsautomat kann jeweils nur einen Startzustand besitzen Der Startzustand wird im Diagramm als schwarz gefullter Kreis und der Endzustand als schwarz gefullter Doppelkreis gekennzeichnet 27 Objektorientiertes Design BearbeitenSiehe auch Prinzipien objektorientierten Designs Ziel des objektorientierten Design ist die Systemplanung mit Objekten die sich gegenseitig beeinflussen und die Probleme der Programmierung zu losen Im Gegensatz etwa zum Pflichtenheft berucksichtigt der objektorientierte Design Entwurf auch technische Aspekte des Systems und zielt auf die Realisierung der Anforderungen ab und nicht auf deren Verstandnis Dieser Entwurf befindet sich aber noch auf einem hoheren Abstraktionsniveau als die tatsachliche Implementierung in einer Programmiersprache Im Ubergang von der Analyse in die Designphase werden das Analysemodell und die in ihm spezifizierten Klassen erweitert und verbessert Es geht darum ein Modell des zu implementierenden Programmsystems zu erhalten Man modelliert eine spezifische Implementation im Losungsbereich und seiner zugehorigen Hard und Softwareumgebung Beim Ansatz von Coad und Yourdon wird das OOD in vier Komponenten zerlegt in denen das bisherige Analysemodell uberarbeitet und erweitert wird die Problembereichskomponente die Kommunikationskomponente die Datenmanagementkomponente und die Task Management Komponente Problembereichskomponente Bearbeiten In dieser Phase werden die Ergebnisse der Analysephase uberarbeitet und verbessert um die Implementation der Klassen vorzubereiten So konnen beispielsweise Attribute Objektbeziehungen und Klassen erganzt oder gestrichen werden Ziel ist es in sich abgeschlossene Klassen adaquater Komplexitat zu modellieren Nach Heide Balzert ist eine haufige jedoch falsche Vorstellung dass sich alle konkreten Objekte des Problembereichs im Analysemodell als Klasse wiederfinden So fuhrt beispielsweise die mangelnde Bildung von komplexen Attributen zu vielen kleinen Klassen und in der Folge zu vielen uberflussigen Assoziationen Dies erschwert die Verstandlichkeit des Gesamtmodells 28 Der Begriff Kopplung beschreibt die Verknupfung zwischen Klassen und ist ein Mass das die Starke dieser Verknupfungen bzw der daraus resultierenden Abhangigkeiten beschreibt Die Kopplung von Objekten durch Operationsaufrufe soll moglichst gering aber so hoch wie notig gehalten werden um verstandliche eigenstandige Klassen zu erhalten und die wunschenswerte Kohasion von Klassen und ihren einzelnen Operationen 29 Die Kohasion beschreibt wie gut eine Klasse eine logische Aufgabe oder Einheit abbildet In einem System mit starker Kohasion ist jede Klasse fur genau eine wohldefinierte Aufgabe oder Einheit verantwortlich Das Single Responsibility Prinzip besagt dass jede Klasse nur genau eine fest definierte Aufgabe zu erfullen hat Diese Aufgabe wird durch das Zusammenspiel aller Attribute und Methoden dieser Klasse erfullt Das Zusammenspiel der Attribute und Methoden dieser Klasse ist dadurch sehr eng Man spricht von starker Kohasion Herrscht eine zu schwache Kohasion vor fuhrt dies unter anderem dazu dass gemeinsame Funktionalitaten einer Klasse nicht wiederverwendet werden sondern mehrfach umgesetzt werden Code Duplizierung ist somit ein Zeichen schwacher Kohasion Das DRY Prinzip Don t Repeat Yourself Wiederhole dich nicht hilft diese zu vermeiden Im Design sollte auch die Vererbungsstruktur uberarbeitet werden In der Analyse werden Operationen die fur mehrere Unterklassen gelten so hoch wie moglich in die Vererbungsstruktur eingefugt sofern sie eine gemeinsame Beschreibung besitzen Nach Balzert und Wirfs Brock et al empfiehlt es sich so viele abstrakte Klassen wie moglich zu schaffen weil dadurch das Hinzufugen neuer Klassen erleichtert wird Eine abstrakte Klasse ist eine spezielle Klasse welche sich nicht instanziieren lasst und die somit nur als Strukturelement innerhalb einer Klassenhierarchie dient Dadurch wird das Konzept der Vererbung voll ausgenutzt Der Vererbungsmechanismus kann auch dazu verleiten dass Attribute und Operationen nur zu dem Zweck in einer Klasse gesammelt werden um dem Programmierer Schreibaufwand zu sparen Man spricht in diesem Zusammenhang auch von Spaghetti Code Solche willkurlich geschaffenen Klassen lassen sich leicht erkennen Der Klassenname besitzt keine Aussagefahigkeit oder steht in keiner Beziehung zu den Attributen und Operationen der Klasse 30 Kommunikationskomponente Bearbeiten nbsp Eingabegerat Tablett und Sichtgerat Display zur Kommunikation zwischen Mensch und Computer Die Entwurfstatigkeiten dieser Komponente beschaftigen sich damit wie ein Benutzer das System bedient und wie umgekehrt das System dem Benutzer Resultate und Informationen prasentiert weshalb sie auch Mensch Computer Kommunikationskomponente genannt wird Dabei soll die Benutzeroberflache direkt auf den spateren Anwender zugeschnitten werden Dazu werden neue auf der Systemgrenze liegende Klassen entwickelt Eine wichtige Ausgangslage fur diese Designtatigkeit bilden die Szenarios aus der dynamischen Modellierung fur deren Klassen die ein oder auszugebenden Attribute und die zugehorigen Zugriffsfunktionen bereits wahrend der Analysephase definiert wurden Zu bereits in der Analysephase festgelegten Attributen und Methoden kommen nun Details zu Layout Benutzereingaben und dem Verhalten von Fenstern hinzu Eine klare Trennung zwischen den Klassen der Kommunikationskomponente und den Klassen der Problembereichskomponente ist notwendig um das System im Hinblick auf Modifikationen stabiler werden zu lassen 31 Datenmanagementkomponente Bearbeiten Beim Entwurf dieser Komponente werden die Datenaspekte des Systems studiert und die Voraussetzungen fur das Abspeichern und Wiederauffinden von Objekten geschaffen Wichtige Aspekte sind Integritat d h die Verhinderung unautorisierter Modifikation von Informationen und Konsistenz d h die Korrektheit der in der Datenbank gespeicherten Daten Persistente Objekte lassen sich auf drei verschiedene Arten aufbewahren 32 Man kopiert die zu speichernden Objekte bzw ihre Attributwerte unter Einsatz der fur die Implementation vorgesehenen Sprache in Textdateien ab Man kopiert die Objekte in die Tabellen eines relationalen Datenbanksystems und der Nutzung seiner Schutzmechanismen Man verwendet eine objektorientierte Datenbank Taskmanagement Komponente Bearbeiten Diese Komponente wird zur Koordination der Objekte und ihrer Methoden entworfen und zwar fur den Fall dass in dem System das Verhalten verschiedener Objekt parallel oder die Kommunikation zwischen den Objekten asynchron modelliert werden soll Man entwirft dazu Klassen die das Starten und Terminieren der unterschiedlichen Tasks oder auch Prozesse die von diesen auszufuhrenden Aktivitaten und Aktionen sowie Interprozesskommunikation und Taskprioritaten festlegen Um die gleichzeitige oder scheinbar gleichzeitige Bearbeitung mehrerer Tasks realisieren zu konnen muss eine Mehrprozessormaschine oder ein Multi Tasking Betriebssystem zur Verfugung stehen In der Regel wird auf eine spezielle Task Klassenbibliothek zuruckgegriffen Ublicherweise konnen Tasks die Zustande running suspended oder terminated annehmen 33 Literatur BearbeitenHeide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf Spektrum Heidelberg Berlin 1999 Grady Booch u a Object Oriented Analysis and Design with Applications 3 Auflage Addison Wesley Boston 2007 Peter Coad Edward Yourdon Object Oriented Analysis 2 Auflage Englewood Cliffs NY 1990 deutsch Objektorientierte Analyse 1994 Peter Coad Edward Yourdon Object Oriented Design Englewood Cliffs NY 1991 deutsch Objektorientiertes Design 1994 Ivar Jacobson Grady Booch James Rumbaugh The unified software development process UML Addison Wesley Reading MA u a 1999 Einzelnachweise Bearbeiten Christian Aichele Marius Schonberger IT Projektmanagement Effiziente Einfuhrung in das Management von Projekten Springer Wiesbaden 2014 S 29 Manfred Broy Marco Kuhrmann Projektorganisation und Management im Software Engineering Springer Berlin 2013 S 85 Heide Balzert Lehrbuch der Objektmodellierung Analyse und Entwurf Spektrum Heidelberg Berlin 1999 S 2 Peter Coad Edward Yourdon Object Oriented Analysis 2 Auflage Englewood Cliffs NY 1990 Peter Coad Edward Yourdon Object Oriented Design Englewood Cliffs NY 1991 Philippe Kruchten The Rational Unified Process An Introduction 2 Auflage Addison Wesley 2004 Grady Booch Robert A Maksimchuk Michael W Engle Bobbi J Young Jim Conallen Kelli A Houston Object Oriented Analysis and Design with Applications 3 Auflage Addison Wesley 2007 S 41 Gert Heinrich Klaus Mairon Objektorientierte Systemanalyse Oldenbourg Verlag Munchen 2008 S 57 Helmut Balzert Lehrbuch der Softwaretechnik Basiskonzepte und Requirements Engineering 3 Auflage Spektrum Heidelberg 2009 S 434 Helmuth Partsch Requirements Engineering systematisch Modellbildung fur softwaregestutzte Systeme Springer Berlin Heidelberg 1998 S 213 H Balzert Lehrbuch der Softwaretechnik Basiskonzepte und Requirements Engineering 3 Auflage 2009 S 456 H Balzert Lehrbuch der Softwaretechnik Basiskonzepte und Requirements Engineering 3 Auflage 2009 S 463 H Balzert Lehrbuch der Softwaretechnik Basiskonzepte und Requirements Engineering 3 Auflage 2009 S 475 476 H Balzert Lehrbuch der Softwaretechnik Basiskonzepte und Requirements Engineering 3 Auflage 2009 S 477 DIN 69901 2009 S 153 a b Christian Aichele Marius Schonberger IT Projektmanagement Effiziente Einfuhrung in das Management von Projekten Springer Wiesbaden 2014 S 23 DIN 69901 2009 S 154 Gert Heinrich Klaus Mairon Objektorientierte Systemanalyse Oldenbourg Verlag Munchen 2008 S 17 H Balzert Lehrbuch der Objektmodellierung 1999 S 40 H Balzert Lehrbuch der Objektmodellierung 1999 S 40 43 H Balzert Lehrbuch der Objektmodellierung 1999 S 46 47 H Balzert Lehrbuch der Objektmodellierung 1999 S 47 Bernd Oestereich Die UML Kurzreferenz fur die Praxis Kurz bundig ballastfrei 2 uberarbeitete Auflage 2002 S 22 23 B Oesterreich Die UML Kurzreferenz fur die Praxis 2 Auflage 2002 S 5 Alistair Cockburn Use Cases effektiv erstellen mitp Heidelberg 2003 H Balzert Lehrbuch der Objektmodellierung 1999 S 70 71 H Balzert Lehrbuch der Objektmodellierung 1999 S 76 77 Jochen Seemann Jurgen Wolff von Gudenberg Software Entwurf mit UML 2 2006 S 106 110 H Balzert Lehrbuch der Objektmodellierung S 145 Martin Schader Michael Rundshagen Objektorientierte Systemanalyse S 143 144 H Balzert Lehrbuch der Objektmodellierung S 379 Rebecca Wirfs Brock Brian Wilkerson Lauren Wiener Designing Object Oriented Software Prentice Hall Englewood Cliffs 1990 S 140ff Martin Schader Michael Rundshagen Objektorientierte Systemanalyse S 144 147 Martin Schader Michael Rundshagen Objektorientierte Systemanalyse S 147 150 Martin Schader Michael Rundshagen Objektorientierte Systemanalyse Jahr S 151 Abgerufen von https de wikipedia org w index php title Objektorientierte Analyse und Design amp oldid 237747209