1 Objektorientierte Softwareentwicklung
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Phasen objektorientierter Softwareentwicklung Analyse –objektorientiertes Modell der realen Welt wird erstellt –Funktionalität des Softwaresystems wird definiert –Annahme einer perfekten Technik Entwurf –Modell der realen Welt wird in die Welt der Software übertragen –Berücksichtigung der vorhandenen Technik und verwendeter Programmiersprache –algorithmische Beschreibung der Funktionalität Implementierung –Software-Architektur wird zum realen Programm
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS UML UML steht für Unified Modelling Language (Booch, Rumbaugh, Jacobson, 1999) Standardisierte Sprache die mögliche Modelle in Diagrammen beschreibt Klassendiagramme beschreiben die Klassen und deren statische Beziehungen zueinander Kollaborationsdiagramme beschreiben die dynamisch wechselwirkende Zusammenarbeit zwischen den Klassen
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Beschreibung einer Klasse TV 2001 EinAus z; Seriennummer s; Kanal k; Lautstärke l; ein(); aus(); wähle_Kanal(); wähle_Lautstärke(); get_Seriennummer();
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Beispiel: Motor Motor EinAus z; Seriennummer s; Vorwärtslauf v; Rückwärtslauf r; Drehzahl d; ein(); aus(); vorwärts(); rückwärts(); get_Drehzahl(); set_Drehzahl();
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Objektbeziehungen Objekte stehen in verschiedenster Form in Beziehung zueinander UML modelliert die Beziehungen zwischen Klassen Beziehungsarten u.a.: strukturelle Beziehungen Einschlussbeziehung (has-a) Subtyp- bzw. Vererbungsbeziehung (is-a) verhaltensbezogene Beziehungen Nachrichtenaustausch oder Methodenaufruf
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Allgemeine Beziehungen PersonAuto besitzt 11...*
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Einschlussbeziehung (Aggregation) Abteilungen hat1 1...* eine Aggregation ist die Zusammensetzung eines Objektes aus einer Menge von Teilobjekten Unternehmen Mitarbeiter hat1 1...*
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Komposition sind die Einzelteile einer Aggregation vom Aggregat existenzabhängig, so spricht man von Komposition 1 1..*hat hat PositionRechnung PkwRad Komposition Aggregation
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Subtyp- und Vererbungsbeziehung Gerät RadioTV
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Nachrichten senden AutoHerstellerKunde Bestellung
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Methodenaufruf DriveRobot vorwärts() Drive d; * hat move_ppt(); vorwärts();
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Objektorientierte Analyse in Form grammatikalischer Inspektion Anfertigung einer natürlichsprachlichen Beschreibung des Problems und der Problemumgebung Umfeld des System (Geräte, etc.) Aufzählung der abzubildenden Arbeitsabläufe (Nutzungsartanalyse und Nutzungsszenarien) Beschreibungen werden gezielt nach enthaltenen Objekten, Attributen, Funktionalitäten und Beziehungen untersucht Substantive Objekte und Zustände Verben Funktionalität Aussagen wie „hat ein“ oder „ist ein“ deuten auf Objektbeziehungen hin
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Steuerung einer Werkstück-Vereinzelungseinheit Schieber A Schieber B Sensor C Sensor D Druckluft V
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Situationsbeschreibung Die Vereinzelungseinheit besteht aus einer senkrechten Röhre, zwei Schiebern A und B, zwei Sensoren C und D, sowie aus einem Druckluftventil V. In der Röhre können Bälle gespeichert werden, die von oben zugeführt werden und die auf Anforderung unten einzeln aus der Röhre geblasen werden sollen. Die Schieber können die Stellungen geöffnet oder geschlossen besitzen. Ist ein Schieber geschlossen, so ist die Röhre geschlossen. Die Sensoren melden, ob sich an der entsprechenden Stelle ein Ball befindet; falls ja, sind sie aktiviert, falls nein, sind sie deaktiviert. Am unteren Ende der Röhre befindet sich ein Druckventil, das geöffnet oder geschlossen werden kann und das nicht ständig geöffnet bleiben sollte.
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Nutzungsszenarien Standardoperation: Die Bälle werden von oben zugeführt und von der Röhre abgespeichert. Auf Anforderung wird genau ein Ball freigegeben und aus dem Ausgabeschacht geblasen Wartung/Fehlerbeseitigung: Der Wartungstechniker aktiviert einen Wartungszyklus, in dem alle Operationen der beteiligten Geräte einmal ausgeführt werden. Stellt er eine Fehlfunktion fest, so lässt er die Seriennummer des beteiligten Geräts ausgeben und tauscht es um.
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Aufsuchen von Objekten und Objektbeziehungen Die Vereinzelungseinheit besteht aus einer senkrechten Röhre, zwei Schiebern A und B, zwei Sensoren C und D, sowie aus einem Druckluftventil V. In der Röhre können Bälle gespeichert werden, die von oben zugeführt werden und die auf Anforderung unten einzeln aus der Röhre geblasen werden sollen. Die Schieber können die Stellungen geöffnet oder geschlossen besitzen Der Wartungstechniker aktiviert einen Wartungszyklus, in dem alle Operationen der beteiligten Geräte einmal ausgeführt werden. Stellt er eine Fehlfunktion fest, so lässt er die Seriennummer des beteiligten Geräts ausgeben und tauscht es um.
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Aufsuchen von Objekten und Beziehungen Mögliche Objekte: Vereinzelungseinheit, Schieber, Sensor, Ventil, Ball (?), Röhre (?) Beziehungen: Die Vereinzelungseinheit enthält Schieber, Sensoren, Ventil und eine Röhre. Bälle sind kein integraler Bestandteil, aber es besteht in jedem Fall eine temporäre Beziehung
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Ball Klassendiagramm für Vereinzelungseinheit Vereinzelungseinheit SchieberSensorVentil 1 n Röhre Ventil
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Aufsuchen der Zustandsvariablen der Objekte..... Die Schieber können die Stellungen geöffnet oder geschlossen besitzen. Ist ein Schieber geschlossen, so ist die Röhre geschlossen. Die Sensoren melden, ob sich an der entsprechenden Stelle ein Ball befindet; falls ja, sind sie aktiviert, falls nein, sind sie deaktiviert. Am unteren Ende der Röhre befindet sich ein Druckventil, das geöffnet oder geschlossen werden kann und das nicht ständig geöffnet bleiben sollte. Der Wartungstechniker aktiviert einen Wartungszyklus, in dem alle Operationen der beteiligten Geräte einmal ausgeführt werden. Stellt er eine Fehlfunktion fest, so lässt er die Seriennummer des beteiligten Geräts ausgeben und tauscht es um.
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Ball Klassendiagramm für Vereinzelungseinheit Vereinzelungseinheit SchieberSensorVentil 1 n Röhre Seriennummer n; Stellung s; //auf,zu Seriennummer n; Zustand z; //aktiv Seriennummer n; Stellung s; //auf,zu Seriennummer n; Ventil
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Aufsuchen der Funktionalität Standardoperation: Die Bälle werden von oben zugeführt und von der Röhre abgespeichert. Auf Anforderung wird genau ein Ball freigegeben und aus dem Ausgabeschacht geblasen Wartung/Fehlerbeseitigung: Der Wartungstechniker aktiviert einen Wartungszyklus, in dem alle Operationen der beteiligten Geräte einmal ausgeführt werden. Stellt er eine Fehlfunktion fest, so lässt er die Seriennummer des beteiligten Geräts ausgeben und tauscht es um.
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Ball Klassendiagramm für Vereinzelungseinheit Vereinzelungseinheit SchieberSensorVentil 1 n Seriennummer n; Stellung s; //auf,zu Seriennummer n; Zustand z; //aktiv Seriennummer n; Stellung s; //auf,zu Seriennummer n; zuführen_Ball(); freigeben_Ball(); wartungszyklus(); öffnen(); schliessen(); öffnen(); schliessen(); ist_aktiv(); ist_inaktiv(); Ventil
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Ball Verfeinerungsschritt (1) Vereinzelungseinheit SchieberSensorVentil Seriennummer n; Stellung s; //auf,zu Seriennummer n; Zustand z; //aktiv Seriennummer n; Stellung s; //auf,zu Seriennummer n; zuführen_Ball(); freigeben_Ball(); wartungszyklus(); öffnen(); schliessen(); öffnen(); schliessen(); ist_aktiv(); ist_inaktiv(); Ventil
Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Verfeinerungsschritt (2) Gerät EinAus ea; Seriennummer n; ein(); aus(); get_Seriennummer(); Ball Vereinzelungseinheit SchieberSensorVentil Stellung s; //auf,zuZustand z; //aktivStellung s; //auf,zu zuführen_Ball(); freigeben_Ball(); wartungszyklus(); öffnen(); schliessen(); öffnen(); schliessen(); ist_aktiv(); ist_inaktiv(); Ventil 1 7