Weitere Files findest du auf www.semestra.ch/files DIE FILES DÜRFEN NUR FÜR DEN EIGENEN GEBRAUCH BENUTZT WERDEN. DAS COPYRIGHT LIEGT BEIM JEWEILIGEN AUTOR.
Informatik II System-Entwicklung in der Wirtschaftsinformatik Rolf Böhm, Emmerich Fuchs, Gerhard Pacher 4., überarbeitete und erweiterte Auflage 1996 Verlag der Fachvereine an den schweizerischen Hochschulen und Techniken, Zürich ISBN 3 7281 2264 5 zusammengefasst von Philippe Maurer April 1998
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 1 3.4 Objektorientierte Analyse und Design (nach Booch) 3.4.1 Einleitung Zuerst Programmierkonzepte => Analyse-Methoden Nachteile der srtukturierten Vorgehensweise: Konsistenz zwischen Modellen schwierig herzustellen Modelle weniger flexibel bezüglich Veränderungen Strukturbruch zwischen Analyse (= was) und Design (= wie) => Objektorientierte Software-Entwicklung mit einheitlicher Modellierungstechnik. Das Objekt verkörpert eine Abstraktion von Wissen und Verhalten und bleibt durch alle Entwicklungsphasen hindurch identifizierbar. Vorteile: einfache Nachvollziehbarkeit der verschiedenen Modelle Auffinden und Zurückverfolgen von grundlegenden Abstraktionen durch alle Phasen der Entwicklung Anforderung an iterative Entwicklungszyklen wird durch die objektorientierte Sicht- und Darstellungsweise mit ihrer guten Nachvollziehbarkeit gefördert. leicht änder- und erweiterbar 3.4.2 Sichten eines Systems logisches Modell (Klassenstruktur, Objektstruktur): grundlegende Abstraktionen des Problembereichs, Mechanismen der Systemarchitektur physikalisches Modell (Modul-Architektur, Prozess-Architektur): Hardware- und Software- Konstellation statisches Modell (strukturelle Systemaspekte) dynamisches Modell (dynamische Semantik des System-Modells) 3.4.3 Notation nach Booch 3.4.3.1 Klassendiagramm Macht die Existenz von Klassen und ihre Beziehungen im logischen Modell sichtbar. Abb. 3.85: Klassendiagramm Klassen (Symbol:gestrichelt umrandete Wolke, Klassenname in Wolke eingetragen): Beispiel: PV-Mandat
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 2 Attribute: geben bestimmte Eigenschaft eines Objektes an. Beispiel: Name, Geburtsdatum Operationen: Funktionalitäten bzw. Dienste oder Methoden, welche die Klasse zur Verfügung stellt. Die werden über einen Namen innerhalb der Klasse eindeutig identifiziert. Durch Anfügen eines Klammerpaares werden sie als Operationen gekennzeichnet. Beispiel: Alter() Klassenbeziehungen (spezifiziert die Beziehungen zwischen den Klassen) Assoziation: semantische Verbindung zwischen zwei Klassen (einfache Linie). Reflexive Verbindungen möglich. Zwischen dem gleichen Klassenpaar sind mehrere verschiedene Assoziationen möglich. Assoziations-Formen: Vererbung (inheritance): Verallgemeinerungs-/ Spezialisierungsbeziehung ( is a - Beziehung zwischen Klassen). Assoziationssymbol (Linie) wird um eine Pfeilspitze, die auf die Oberklasse zeigt, ergänzt. Klasse kann eine (Einfachvererbung) oder mehrere Oberklassen (Mehrfachvererbung) besitzen. Vererbungsbeziehungen existieren zwischen Klassen. Aggregation (Eigentumsbeziehung): Teil-/ Ganzes-Relation ( has a -Beziehung). Symbol: gefüllter Kreis am Ende der Aggregats-Klasse. Verwendung: Verwendungsbeziehung entsteht dort, wo nur das eine Objekt (Client), die Dienste des anderen (Server) anfordert (z.b. Client-Operation ruft eine Operation des Servers auf). Symbol: Kreis auf der Clientseite. Klassendiagramm mit Klassenkategorien (Klassen, die über mehrere Beziehungen miteinander verbunden sind, mit anderen Klassengruppen jedoch nur eine lose Koppelung aufweisen. Symbol: Rechteck. Kassenkategorien können in Klassendiagramme integriert werden; können ineinander verschachtelt werden; Gruppierung in Schichten (trennen Details einer niedrigeren Abstraktionsebene von einer höheren ab) und Partitionen (widerspiegeln Verhalten von Teilsystemen); für Klassenkategorien mit sehr allgemeinen Klassen ist das Schlüsselwort global unterhalb des Namens aufzuführen Grundsätze des Aufbaus guter Klassenstrukturen: Operationen einer Klassen sollten nicht von der Struktur anderer Klassen abhängen (Kapselung) tiefe / enge Strukturen (max. 5-7 Klassen ind Breite und Tiefe eines Vererbungsgitters) => Ausnutzen von Gemeinsamkeiten 3.4.3.2 Objektdiagramm Zeigt die dynamische Struktur des Verhaltens einer Gruppe von Objekten (konkrete Instanzen von Klassen. Es macht das zur Erfüllung einer bestimmten Funktionalität notwendige Zusammenspiel von Objekten im logischen Modell sichtbar.
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 3 Abb. 3.94: Objektdiagramm Objekte (Symbol: umrandete Wolke), Attribute ebenfalls möglich: Beispiel: Dubois (Objekt), Bewerber (Klasse) Objektbeziehungen (Symbol: gerichtete Pfeile, Ereignisauslöser): Links können als Instanzen von Assoziationen angesehen werden. Objekte interagieren über ihre links mit anderen Objekten. Die Kommunikation zwischen den Objekten erfolgt mittels Nachrichten (Bestandteile: Richtung des Aufrufs, Ereignisauslöser [Operationsaufruf, symbolischer Name, Name einer Ereignisklasse], optionale Sequenznummer) 3.4.3.3 Interaktionsdiagramm Stellt in tabellarischer Auflistung den gleichen Gehalt dar, der in einem Objektdiagramm ausgedrückt wird. (+Zeitachse, +Kommentar) Notation: Abb. 3.96: Interaktionsdiagramm Objekte: in der Kopfzeile mit Namen aufgeführt, Zuständigkeitsbereich mit vertikaler gestrichelter Linie Nachrichten: horizontale, beschriftete Pfeile zwischen Client- und Server-Objekten-Linien Skripts (Kommentar): am linken Rand zur Kommentation der Nachrichten Steuerungsfokus: längliche vertikale Kästchen um die Objektlinien
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 4 3.4.3.4 Zustandsübergangs-Diagramm Bildet die ereignisabhängigen Zustandsänderungen des Systems oder einzelner interessanter Klassen ab. Abb. 3.97: Zustandsübergangs-Diagramme Startsymbol: Startwert, von dem aus ein unbeschrifteter Pfeil auf den ersten erwähnenswerten Zustand weist. (Symbol: ausgefüllter Kreis) Zustand (Status): Gesamtheit der Eigenschaften, die ein Objekt zu einem bestimmten Zeitpunkt besitzt. Die Objekteigenschaften setzen sich aus seinen Attributen mit den momentanen Werten, seinen Beziehungen zu anderen Objekten und seinen damit verbundenen Verhaltensmöglichkeiten zusammen. Für bestimmte Zustände ist es sinnvoll, einige der mit dem Status verbundenen Aktionen oder Aktivitäten anzugeben. Diese werden von einer Linie getrennt unterhalb des Zustandsnamens aufgelistet.
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 5 Aktion: Operation, die per Definition keine Zeit zu ihrer Ausführung benötigt (z.b. Aufrufe für Operationen, Meldungen von Ereignissen, Starten oder Beenden von Aktivitäten) Aktivität: Operation, die eine gewisse Zeit zu ihrer Ausführung benötigt Zustandsübergang/Statusänderungen/Ereignisse: Statusänderungen treten infolge von Ereignissen auf. (Symbol: gerichtete Verbindungslinie (Pfeil) zwischen zwei Zuständen, mit Ereignisnamen beschriftet) Endsymbol: abgebildeter Lebenslauf existiert eines Objekt oder des Systems existiert solange als das betreffende Objekt existiert. (Symbol: ausgefüllter, umrandeter Kreis) Verschachtelte Zustände: Gewisse Zustände innerhalb eines Diagramms können in einem weiteren Zustandsübergangs-Diagramm verfeinert werden, d.h. sie besitzen in ihrem Inneren eigene Statuszustände und -übergänge. Umschliessende Zustände = Oberstatus, geschachtelte = Unterstatus 3.4.3.5 Moduldiagramm Hält Zuordnung von Klassen zu Modulen fest. Es zeigt die Schichtung und Partitionierung der physikalischen Architektur. Abb. 3.100: Moduldiagramm Module: Hauptprogramm Spezifikation (Schnittstellendefinitionen) Rumpf (Implementationen) Untersystem (Darstellungsmittel zur Zusammenfassung logisch verwandter Module) Abhängigkeiten: (z.b. Compilierungsabhängigkeit) 3.4.3.6 Prozessdiagramm Darstellung der Aufteilung von Prozessen auf verschiedene Prozessoren. Ers zeigt, welche Prozessoren und geräte als Plattform für die Ausführung des zu bauenden Systems vorgesehen sind und wie die verschiedenen Prozesse auf die diese Komponenten verteilt sind. Prozessoren: Jede Hardware-Komponente, die Programme auszuführen imstande ist Geräte: Hardware, die keine Programme ausführen kann Verbindungen: hardwaremässige Verkabelung, damit Geräte und Prozessoren miteinander kommunizieren können
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 6 Abb. 3.102: Prozessdiagramm 3.4.3.7 Spezifikation Fasst alle in den verschiedenen Diagrammen aufgeführten Einzelheiten zusammen und bildet so die Obermenge der verfügbaren Informationen einer Abstraktion (z.b. Klasse). Alle Spezifikationen enthalten: Name (Bezeichner), Definition (Test, der die Funktion der Abstraktion angibt). Für Klassenspezifikationen: Verantwortlichkeiten, Attribute, Operationen, Status Maschine, Persistenz
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 7 Grady Boochs,,Objektorientierte Analyse und Design Booch unterteilt den Entwicklungsprozeß in folgende Tätigkeitsbereiche: Makro-Prozeß: der übergeordnete Prozeß der Projektabwicklung, welcher nachfolgend behandelt werden soll. (mit Wasserfallmodell verwandt) Mikro-Prozeß: verstärkt in der eigentlichen Entwicklungphase auftretende Tätigkeiten, welche später zusammen mit den Standardaktivitäten der BON betrachtet werden sollen. (Anlehnung an Spiralmodell) Die Trennung soll zum einen kontrollierte Managementtechniken ermöglichen, ohne auf der anderen Seite Kreativität und Innovation zu behindern Der Makro-Prozeß Der Makro-Prozeß ähnelt stark dem klassischen Wasserfallmodell und bietet damit folgende Vorteile (vgl. auch Modellierung I): Erzeugung von (extern) bewertbaren Produkten Fortschrittskontrolle durch Meilensteine und klar abgegrenzte Phasen Erleichterung der Planbarkeit und Risikobewertung Phasen im Makro-Prozeß Konzeptualisierung: Festlegen der Kernanforderung Analyse: Entwicklung eines Modells, Beschreibung des Systemverhaltens (WAS) Design: Erzeugung einer Architektur für die Implementierung (WIE) Evolution: schrittweise Umsetzung des Designs Wartung: Verwaltung der Systems nach der Auslieferung Der Prozeß wiederholt sich dabei nach jeder wichtigen Produktversion
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 8 Konzeptualisierung Booch deckt mit der Konzeptualisierung einen Bereich ab, der in klassischen Entwicklungsmethoden nur sehr wenig berücksichtigt wird und teilweise sogar vor dem eigentlichen Requirements Engineering liegt. Die Aufgaben der Konzeptualisierung sind: Entwicklung und Beschreibung einer Vision des neuen Systems Erstellung eines (oder auch mehrerer) Prototypen Festhalten der Kernanforderungen Analyse In der Analysephase soll geklärt, was das System macht, im Gegensatz zum Design, wo das wie beschrieben wird. Aufgaben sind: Identifikation von Hauptfunktionalitäten Beschreibung von Szenarien mittels Use-Cases, Objektdiagrammen,... Beschreibung von Objektlebenszyklen Finden von Mustern zwischen Szenarien und Beschreibung der Muster in Klassendiagrammen Aufbau eines Datenverzeichnisses Design Die Designphase unterteilt Booch in drei Aktivitäten: Architekturplanung: Entwicklung einer Schichtenarchitektur, bei der Funktionalitäten auf Schichten verteilt werden taktisches Design: Festlegung von Vorgehensweisen und Mustern Versionsplanung: Planung der Reihenfolge der zu implementierenden Systembestandteile Evolution Für die eigentliche Systementwicklung schlägt Booch einen evolutionären Ansatz vor, um möglichst früh wichtige Funktionalitäten zu realisieren, und erst später Leistungsmaße u.ä. zu verbessern. Das Vorgehen wird im Mikro-Prozeß beschrieben, allerdings ist die Einschränkung der Tätigkeiten im Mikro-Prozeß auf die Kernentwicklung nicht zwingend. Die Aktivitäten bei der Evolution betreffen dabei hauptsächlich den Entwurf und die Reorganisation der Klassenstruktur. Wartung Die Wartung des Systems betrifft hauptsächlich die Verbesserung des bestehenden Systems und nicht die Veränderung der Architektur. Falls eine Veränderung der Architektur notwendig ist, so beginnt der Makro-Prozeß von vorne.
Informatik II: System-Entwicklung in der Wirtschaftsinformatik 9 Der Mikro-Prozeß Der Mikro-Prozeß von Booch wird zwar der Implementierungsphase untergeordnet, jedoch spricht nichts dageben, Teile davon z.b. auch während früherer Phasen zu benutzen. Die Bestandteile des Mikro-Prozesses sind: 1. Identifikation von Klassen und Objekten 2. Identifikation von Klassen- und Objektsemantik 3. Identifikation von Beziehungen zwischen Klassen und Objekten 4. Spezifikation der Schnittstellen und Implementierung von Klassen und Objekten Diese Einzelschritte werden bei der Entwicklung zyklisch durchlaufen. Zusammnefassung siehe: S. 291-292