myMCU SiSy Schnelleinstieg OOA/OOD Objektorientierte Techniken Voraussetzungen: Sie benötigen eine SiSy-Ausgabe ab Version 3.6 mit dem Add-On „UML“. Für die Abarbeitung dieses Schnelleinstieges sollten Sie mit der Bedienung von SiSy und mit den Diagrammen der UML vertraut sein. Ziel: Mit Hilfe der Diagramme der UML ist ein Programm zu entwickeln, welches wahlweise die Summe bzw. das Produkt zweier Zahlen berechnet. Das Programm besteht dabei aus einzelnen Klassen. Da die Implementierung Teil des Schnelleinstieges „Objektorientierte Programmierung“ ist und auch erst dort erläutert wird, ist das zu erstellende Programm am Ende dieses Schnelleinstieges noch nicht lauffähig. 1. Ein neues Projekt anlegen Starten Sie SiSy und aktivieren Sie aus dem Willkommensbildschirm die Schaltfläche „Neues Projekt erstellen“. Vergeben Sie einen Projektnamen, wählen Sie das Profil „UML Objektorientierte Techniken”. SiSy LibStore öffnet, wählen Sie die Diagrammvorlage „UML allgemein – objektorientierte Techniken mit SVL“ und führen Sie den Download aus. Sie erhalten für die weitere Arbeit das Diagramm „Vorgehensmodell“. Beispiel Szenario Summe berechnen: Über die Benutzeroberfläche wird „Summe“ ausgewählt. Daraufhin werden die Summanden eingegeben, die Summe berechnet und das Ergebnis angezeigt. Legen Sie per Drag&Drop einen Rahmen des Objekttyps „System“ aus der Objektbibliothek an. Klicken Sie mit der rechten Maustaste auf diesen Rahmen und wählen Sie über das Kontextmenü „Definieren“. Vergeben Sie hier den Objektnamen „Rechner“. Ziehen Sie zwei Objekte vom Typ „Anwendungsfall“ in den angelegten Rahmen. Im DefinierenDialog aus dem Kontextmenü legen Sie die Merkmale des Anwendungsfalls fest, z.B. Name, Datenein- und -ausgang, Primäres Szenario usw.. Tragen Sie bei „Name des Anwendungsfalls“ die Bezeichnung „Summe berechnen“ bzw. „Produkt berechnen“ ein. Des Weiteren legen Sie ein Objekt „Anwender“ an, den „Benutzer“. Ziehen Sie je eine Kante vom „Benutzer“ zu den Anwendungsfällen, wie in Abbildung 1. Abbildung 1 Gehen Sie zurück in das Vorgehensmodell (aus der Werkzeugleiste ). 2. Objektorientierte Analyse (OOA) 2.1 Anwendungsfalldiagramm (Use Case) Die Modellierung beginnen Sie mit der Anwendersicht. Gehen Sie im Vorgehensmodell (VGM) auf diesem Objekt Nach unten. Da wir ein Anwendungsfalldiagramm von Grund auf erstellen, benötigen wir keine Vorlage. Beim Anwendungsfalldiagramm handelt es sich um ein Beschreibungsmittel der UML und stellt das Zusammenspiel zwischen System, seinen Anwendungsfällen und dessen Anwender dar. Das System wird als Rahmen dargestellt. Es besitzt Anwendungsfälle, auf die Anwender zugreifen. Dies wird durch Kanten zwischen Anwendungsfällen und Anwendern gekennzeichnet. www.sisy.de 2.2 CRC-Karten Ausgehend von einer Nominalphrasen- und Verbalphrasenanalyse der Szenarien werden in den CRC-Karten die potentiellen Klassenkandidaten aufgenommen. In der linken Spalte werden die Verantwortlichkeiten (Eigenschaften und Verhalten) der Klasse definiert und in der rechten Spalte die Zusammenarbeit dieser Klasse mit anderen Klassen. Gehen Sie im VGM auf dem Objekt „CRC-Karten“ Nach unten. Legen Sie wie in der Abbildung 2 die CRC-Karten an. Ziehen Sie dafür jeweils ein Objekt „CRC-Karte“ in das Diagrammfenster. Legen Sie im Definieren-Dialog die Eigenschaften jeder CRC-Karte fest. Laser & Co. Solutions GmbH Stand: 08/2016 SiSy Schnelleinstieg: OOA/OOD Objektorientierte Techniken Abbildung 2 2.3. Aktivitätsdiagramm Als nächster Schritt erfolgt die Modellierung des erwarteten Systemverhaltens in Verfeinerung der Anwendungsfälle. Das dynamische Verhalten und die Interaktion zwischen Objekten werden in der Form eines Aktivitätsdiagramms dargestellt. Gehen Sie zurück in das VGM und auf der „Anwendersicht“ nach unten. In dem bereits erstellten Anwendungsfalldiagramm öffnen Sie den Anwendungsfall „Summe berechnen“ und laden keine Vorlage. Aus der Objektbibliothek ziehen Sie das Objekt „Partition“ in das Diagrammfenster, definieren Sie das Objekt als „Benutzeroberfläche“. Wiederholen Sie den Vorgang für „Summe“ und „Produkt“. 2/2 3.1 Grober Klassenentwurf Beim groben Klassenentwurf werden die Klassenkandidaten aus der CRC-Kartendiskussion in das Klassendiagramm übernommen. Sie stellen offensichtlich gemeinsame Strukturmerkmale der Klassenkandidaten Summe und Produkt fest. Dies setzen Sie in eine Generalisierung zur Berechnung um. Aktivieren Sie im VGM das Objekt „weitere UMLModelle“ (es ist der Objekttyp „Logische Sicht“); öffnen Sie dieses Objekt und laden keine Vorlage aus dem SiSy Libstore. Ziehen Sie aus der Objektbibliothek per Drag&Drop ein „Klassendiagramm“. Es öffnet der Definieren-Dialog; tragen Sie den Namen „Rechner“ ein und wählen Sie die Sprache „C++ Konsole (32bit)“. Öffnen Sie das Objekt; arbeiten Sie ohne Vorlage. In dem Klassendiagramm werden die im Anwendungsfall erstellten Partitionen als Klassen angelegt. Ziehen Sie aus der Objektbibliothek eine „Klasse“ in das Diagrammfenster und benennen Sie diese mit „Benutzeroberfläche“; markieren Sie das Kontrollkästchen „diese Klasse generieren“. Erstellen Sie analog dazu die Klassen „Berechnung“, „Summe“ und „Produkt“ (vgl. Abbildung 4). Abbildung 4 Modellieren Sie die Beziehungen der Klassen. Ziehen Sie dazu je eine Verbindung vom Verteiler der Klasse „Benutzeroberflaeche“ zu den Klassen „Summe“, „Produkt“ und „Berechnung“. Als Verbindungstyp wählen Sie „Assoziation gerichtet“. Optional können Sie hierbei auch die Kardinalität festlegen. Desweiteren verbinden Sie die Klasse „Berechnung“ mit „Summe“ und „Produkt“, hier mit dem Verbindungstyp „Vererbung“. Abbildung 3 Für die weitere Modellierung ziehen Sie ein Objekt „Aktion“ in die Partition „Benutzeroberfläche“ und bestätigen das Einfügen. Benennen Sie dieses Objekt mit „wertA eingeben“ und vervollständigen Sie das Diagramm entsprechend der Abbildung 3. Fügen Sie noch je ein Objekt „Start“ und „Ende“ in das Diagramm ein und verbinden die Objekte miteinander. 3. Objektorientiertes Design (OOD) Der Objektorientierten Analyse schließt sich ein Objektorientiertes Design an. Dabei wird zunächst ein grober Klassenentwurf entwickelt und die Anwendungsfälle aus dem Anwendungsfalldiagramm mit Verhaltensdiagrammen verfeinert. www.sisy.de Abbildung 5 3.2 Spezifikation der Klassen Nachdem Sie den Grobentwurf erstellt haben, müssen Sie diesen jetzt vervollständigen. Im Feinentwurf werden die einzelnen Operationen und Attribute der jeweiligen Klasse festgelegt. Dieses weitere Vorgehen ist Thema im Schnelleinstieg „Objektorientierte Programmierung“. Laser & Co. Solutions GmbH Stand: 08/2016