Labor Modellgestütztes Software Engineering. Versuch 1

Ähnliche Dokumente
WhiteStarUML Tutorial

Bedienung von BlueJ. Klassenanzeige

Jederzeit Ordnung halten

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Arbeiten mit UMLed und Delphi

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Dokumentation IBIS Monitor

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Produktskizze. 28. November 2005 Projektgruppe Syspect

Tipps und Tricks zu den Updates

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Erstellen von x-y-diagrammen in OpenOffice.calc

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

teamsync Kurzanleitung

TR75E002-A FA / Bedienungsanleitung Industrie-Handsender-Verwaltung IHV DEUTSCH

Lehrer: Einschreibemethoden

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

So gehts Schritt-für-Schritt-Anleitung

Anlage eines neuen Geschäftsjahres in der Office Line

Zertifikat in dakota einlesen Wie lese ich mein Zertifikat in dakota.le ein?

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Anleitung. Verschieben des alten -Postfachs (z.b. unter Thunderbird) in den neuen Open Xchange-Account

Windows 7 Ordner und Dateien in die Taskleiste einfügen

Einführungskurs MOODLE Themen:

Animationen erstellen

Anwendungspaket Basisautonomie

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Einrichtung des DFÜ-Netzwerkes

Anwendungshinweise zur Anwendung der Soziometrie

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg am Beispiel myethernet-projekt

Einzel- s und unpersönliche Massen-Mails versenden

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Der neue persönliche Bereich/die CommSy-Leiste

104 WebUntis -Dokumentation

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Umfrage. Didaktischer Kommentar. Lernplattform

Content Management System (CMS) Manual

Aufklappelemente anlegen

Stepperfocuser 2.0 mit Bootloader

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Wireless LAN PCMCIA Adapter Installationsanleitung

Wir freuen uns, dass Sie mit der VR-NetWorld Software Ihren Zahlungsverkehr zukünftig einfach und sicher elektronisch abwickeln möchten.

Lizenzierung von StarMoney 10 bzw. StarMoney Business 7 durchführen

ecaros2 - Accountmanager

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Die StandbyBuchung. Hier finden Sie den Link zu StandbyBuchung:

Software Engineering Interaktionsdiagramme

Word 2010 Schnellbausteine

1. So beginnen Sie eine Kalkulation

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Electronic Systems GmbH & Co. KG

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Outlook und Outlook Express

Praktikum Software Engineering

STRATO Mail Einrichtung Mozilla Thunderbird

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Folge 18 - Vererbung

Stammdatenanlage über den Einrichtungsassistenten

myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3

1 Mathematische Grundlagen

StudyDeal Accounts auf

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Bereich METIS (Texte im Internet) Zählmarkenrecherche

CodeSaver. Vorwort. Seite 1 von 6

Inhaltsverzeichnis Seite

Evident VDDS-Anbindung von MIZ

Outlook Web App Kurzanleitung. Zürich, 09. Februar Eine Dienstabteilung des Finanzdepartements

Dieser Text beschreibt die Neuerungen von DaNiS und die Vorgehensweise beim DaNiS-Update.

Leitfaden zu VR-Profi cash

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Matrix42. Matrix42 Cloud Trial Erste Schritte. Version

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

RUP Analyse und Design: Überblick

Viele Bilder auf der FA-Homepage

Zahlen auf einen Blick

Treppensoftware Programme. Hilfe - 3D Plus Online. konstruieren/präsentieren

Tragen Sie bitte im Anmeldefeld die Daten ein, die Sie von uns erhalten haben.

Mandant in den einzelnen Anwendungen löschen

Dokumentation. estat Version 2.0

Telefonie Konfiguration bei einer FRITZ!Box 7390 / 7490

SEPA-Umstellungshilfe für die VR-NetWorld-Software zur Nutzung von SEPA-Lastschriften

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Mediator 9 - Lernprogramm

Transkript:

Labor Modellgestütztes Software Engineering Versuch 1 Wintersemester 2015 Dipl.-Ing. (FH) Joachim Hampel Version 7_01, 11.10.2012

Inhaltsverzeichnis Inhalt 1 EINFÜHRUNG... 3 1.1 RHAPSODY MODELER... 4 1.2 RHAPSODY DEVELOPER... 5 1.3 USE CASE DIAGRAM... 6 1.4 AUFBAUSTRUKTUREN... 6 1.5 BEZIEHUNGEN ZWISCHEN OBJEKTEN... 8 2 ARBEITEN MIT PROJEKTEN... 9 2.1 PROJEKT NEU ANLEGEN... 9 2.2 WICHTIGE VOREINSTELLUNGEN... 10 2.3 HALLO WELT... 12 2.4 WEITERE MÖGLICHKEIT EINE INSTANZ ANZULEGEN... 16 2.5 VERHALTEN AUßERHALB DES KONSTRUKTORS TESTEN... 16 3 LABORAUFGABEN... 19 3.1 AUFGABE - EINFACHE KLASSEN... 19 3.2 AUFGABE - VERERBUNG... 20 3.3 AUFGABE - POLYMORPHIE UND ABSTRAKTE DATENTYPEN... 21 4 LITERATUR... 22 2

1 Einführung Mit dem ersten Versuch werden folgende Lernziele verfolgt: Kennenlernen und verstehen der Funktion eines Werkzeuges zur UML-Modellierung. Es werden die Werkzeuge Rhapsody Modeler bzw. Rhapsody Developer von IBM verwendet. Grundlegende Kenntnisse in der Bedienung der Modellierungswerkzeuge. Anhand einer vorgegebenen Aufgabenstellung soll eine Analyse durchgeführt werden und der typische Designablauf mittels Use-Cases, Klassen und Objektdiagrammen, Zustandsdiagrammen und Sequence Charts durchgeführt werden. Aus diesem Modell soll dann Programmcode generiert und ausgeführt werden. Weiterhin soll ein Verständnis für die Auswirkungen von Modell und Code-Änderungen aufgebaut werden. Systeme verfügen über Aufbau und Ablaufstrukturen. UML stellt dazu für die Aufbaustrukturen Modellierungselemente wie Use-Case Diagramme und Klassendiagramme bereit. Bedingt durch das verwendete UML Werkzeug heißen diese Diagramme für die Aufbaustrukturen o Use Case Diagrams o Object Model Diagrams 3

1.1 Rhapsody Modeler Abbildung 1 Modeler Zu Ihrer Vorbereitung steht das freie Tool IBM Rational Modeler zur Verfügung. Es handelt sich um ein UML 2.1 basiertes Software-Design-Tool. Das Tool kann unter der Adresse http://www.ibm.com/developerworks/downloads/r/modeler/index.html heruntergeladen werden. Eine Freischaltung ist allerdings nötig und sollte rechtzeitig vor Beginn des Labors durchgeführt werden. Als Einsteigertool gedacht, kann es keinen Quelltext erzeugen, unterstützt aber alle Diagrammtypen, die auch unterstützt. Modeler Projekte können in IBM Rational Rhapsody Developer geöffnet werden. Nach dem Speichern mit IBM Rational Rhapsody Developer kann ein Projekt allerdings nicht mehr im Modeler geöffnet werden. Es sollte daher immer eine Kopie des Modeler-Projektes aufgehoben werden. 4

1.2 Rhapsody Developer Abbildung 2 Developer Bei Rhapsody handelt es sich um eine UML 2.1 basierte, modellgetriebene Entwicklungsumgebung für Embedded-Systeme und Software Engineering. Das Tool ermöglicht sowohl funktionsorientierte als auch objektorientierte Designtechniken. Auf der Homepage von IBM http://www.ibm.com/developerworks/rational/products/rhapsody/ kann eine Demoversion heruntergeladen werden. Die Nutzungsdauer ist auf 30 Tage begrenzt (30-Day Free Trial). ACHTUNG! Developer und Modeler dürfen nicht gleichzeitig installiert sein, ansonsten treten Inkonsistenzen zwischen diesen Programmen auf. Projekte, die mit der aktuell zum Download angebotene Developer Version erstellt wurden, können auf den Laborrechnern nicht geöffnet werden. 5

1.3 Use Case Diagram Software Design Student Professor Abbildung 3 Use-Case Use Case Diagrams gehören zu den beschreibenden Werkzeugen. Mit ihnen kann kein Code erzeugt werden, wohl aber eine Beschreibung erfolgen, die Grundlage für Diskussionen, Dokumentationen und weitere Entwicklungsschritte sein soll. 1.4 Aufbaustrukturen Zu den Aufbaustrukturen gehören Klassendiagramme, Objektdiagramme und Paketdiagramme. In Rhapsody steht für diese drei Diagrammtypen das Object Model Diagram (OMD) zur Verfügung. Jedes Diagramm kann im OMD realisiert werden, es sind aber auch Mischformen möglich. 6

Klasse1 Klasse2 Abbildung 4 Klassendiagramm Paket1 Klasse2 Klasse1 Abbildung 5 Paketdiagramm 7

1.5 Beziehungen zwischen Objekten Bindung: STÄRKER A B Generalisierung (Generalization) A erbt von B A B 1 A B Aggregation (Aggregation) A hat B 1 Komposition (Composition) A beinhaltet B A B 1 Assoziation (Association) A kennt B A B Abhängigkeit (Dependency) A nutzt B A B port_1 port_2 Interface1 Interface2 Ports und Schnittstellen (Ports and Interfaces) A C B «flow» Datenfluß (Dataflow) C fließt von A nach B A ia ib B «flow» Bindung: SCHWÄCHER Fluss (Flowports) (z.b. MatLab Simulink Ankopplung) Abbildung 6 Wesentliche Beziehungen der UML und ihre Repräsentation in Rhapsody 8

2 Arbeiten mit Projekten 2.1 Projekt neu anlegen File->New: Name und Speicherort angeben Für jedes Projekt wird ein Object Model Diagram angelegt. Die aktuellen Projekteinstellungen befinden sich in der DefaultConfig. Grundsätzlich gilt, dass Darstellungen im Projectspace Vorrang vor den graphischen Darstellungen haben. Bei jedem Objekt erreicht man über einen Klick mit der rechten Maustaste ein Menü. Features bieten den Zugriff auf die Einstellungen. Add New erlaubt die in diesem Element möglichen Ergänzungen. In der Diagrammansicht stehen weitere wichtige selbsterklärende Menüpunkt zur Verfügung: Display Options.. Edit Code 9

2.2 Wichtige Voreinstellungen Mit einem rechten Mausklick auf eine der unter Configurations gespeicherten Konfigurationen wird das Einstellungsmenü erreicht. Selbstverständlich können hier mehrere Konfigurationsdateien verwaltet werden. Verwenden von Visiual Studio 2008 Als Environment muss MSVCStandardLibraray oder MSVCXStandardLibraray ausgewählt werden. Abbildung 7 Auswahl der IDE 10

Wird in den Diagrammen keine Instanz einer Klasse angelegt, so kann hier unter Initialization im Fenster Initial Instances eine Klasse ausgewählt werden, für die eine Instanz angelegt wird. Abbildung 8 Auswahl der Default Instanz 11

2.3 Hallo Welt Nach der Neuanlage wird in die OMD Ansicht gewechselt und eine neue Klasse platziert. Abbildung 8 Platzierung einer Klasse Die Dialogbox Features.. ermöglich die weiteren Einstellungen, wie der Klassenname Attribute und Operationen. Abbildung 9 Aufruf der Dialogbox Features.. Die Ausgabe soll durch Konstruktor erfolgen. Es muss also mit New -> Constructor -> OK ein Konstruktor eingefügt werden. Durch einen Doppelklick auf das Symbol vor dem Konstruktor challowelt erscheint der Features Dialog der Operation. Hier kann jetzt unter Implementation der eigentliche Quelltext eingetragen werden. 12

Abbildung 10 Endlich eine Zeile Quelltext Die neu erstellte Operation kann auch im Projektbereich angezeigt werden. Abbildung 11 Projektübersicht Der entstandene Quelltext kann nun ebenfalls bearbeitet werden. 13

Abbildung 12 Anzeige Quelltext Der Quelltext kann ebenfalls bearbeitet werden. challowelt::challowelt() { //#[ operation challowelt() cout<<"hallo Welt, Hallo UML"<<endl; //#] } Über das Menü Code->Roundtrip->DefaultConfig kann diese Änderung ins Modell übernommen werden. Jetzt muss nur noch dafür gesorgt werden, dass eine Instanz angelegt wird. Abbildung 13 Auswahl der zu initialisierenden Instanz 14

Das Übersetzen und Ausführen erfolgt in vier Schritten: 1. Save 2. Code->Generate->DefaultConfig 3. Make 4. Run Abbildung 14 Generate and Run Abbildung 15 War doch gar nicht so schwer! 15

2.4 Weitere Möglichkeit eine Instanz anzulegen Es wird ein weiteres Object Model Diagram (OMD) angelegt und als Objektdiagram verwendet z.b. mit der Bezeichnung Builder. Hierher wird aus dem Projektspace die Klasse gezogen, von der eine Instanz angelegt werden soll. Über das Menue (rechter Mausklick) kann die Klasse zum Objekt gemacht werden (Make an Object). Bindungen auf Zeigerebene, wie z.b. eine Association können hier durch einen Link realisiert werden. 2.5 Verhalten außerhalb des Konstruktors testen Zur Klasse wird ein Statechart hizugefügt. (Klick Rechte Maustaste auf Klasse im Projektspace - Add New Diagrams - Statechart). Dem Staechart wird eine Dafault Transition und eine Transition auf den State selbst hinzugefügt. Einmalige Vorgänge können in der Dafault Transition und sich wiederholende Vorgänge können in der Transition aufgerufen werden. Als Trigger wird die Timerfunktion tm(millisekunden) verwendet. Bei der Dafault Transition ist kein Trigger nötig. Die Methodenaufrufe werden als Action eingetragen. Wichtig: Initial Instances werden nun nicht mehr benötigt. Abbildung 18 Einfaches Statechart Abbildung 19 Featuremenue einer Transition 16

2.6 Sichtbarkeit von Attributen Werden Attribute in Klassen eingefügt so sind die Attribute selbst nicht sichtbar. protected : int iwert; //## attribute iwert Die Sichtbarkeit bezieht sich auf die set und get Funktionen, die automatisch angelegt werden. Achtung: Der Buchstabe nach get oder set wird automatisch groß geschrieben und kann von dem eigentlichen Namen der Variable abweichen. public : //## auto_generated int getiwert() const; //## auto_generated void setiwert(int p_iwert); Werden Elemente oder Namen nicht automatisch in den Ansichtsfenstern angezeigt so kann über die rechte Maustaste aus dem angezeigten Menue die Display options für ein Element aufgerufen werden. Hier können Attribute, Operationen aber auch Namen von Beziehungen nachträglich angezeigt werden. 17

2.7 Besonderheit beim Verwenden einer Komposition Um eine Komposition grafisch zu erzeugen wird die Verwbindung Composition ausgewählt und von der Klasse in der eine Instanz angelegt werden soll zu der Klasse gezogen von der eine Instanz eingebunden werden soll. Wenn Sie über die Display options die Namen der Verbindung sichtbar gemacht haben, dann werden Sie feststellen, das es zwei Namen sind. Es wurde automatisch in einer Verbindung eine Komposition und eine Assoziation angelegt. cmeineklasse: ceineweitereklasse itsceineweitereklasse; //## link itsceineweitereklasse ceineweitereklasse: cmeineklasse* itscmeineklasse; //## link itscmeineklasse Ändern können Sie dies im Feature Menü der Verbindung. Stellen Sie dieconsists of: auf End itsceineweitereklasse Eine Änderung der Multiplicity bewirkt das Anlegen eines Datenfeldes. ceineweitereklasse itsceineweitereklasse[2]; 18

3 Laboraufgaben 3.1 Aufgabe - Einfache Klassen Abbildung 20 Strecke In einem zweidimensionalen Koordinatensystem wird ein Punkt P(x,y) durch eine Koordinate x und eine Koordinate y beschrieben. Eine Strecke s(p1,p2) ist die Verbindung zweier Punkte P1(x1,y1) und P2(x2,y2). Die Länge der Strecke s kann wie folgt berechnet werden: 2 s ( x x ) ( y y ) 1 2 1 2 2 (F 1) Teil A Ein Punkt kann als Objekt betrachtet und somit durch eine Klasse abgebildet werden. Es soll eine Klasse CPunkt entworfen werden, welche die Membervariablen vom Typ double dx und dy enthält. Im Konstruktor CPunkt() sollen die Variablen dx und dy mit 0 initialisiert werden. Teil B Eine Strecke kann ebenfalls durch eine Klasse beschrieben werden. Die Klasse CStrecke enthält zwei Instanzen der Klasse CPunkt, es handelt sich also um eine Komposition. Für jeden Punkt soll eine eigene Methode zum Einlesen erstellt werden. 19

Eine Methode double Abstand() berechnet den Abstand und gibt das Ergebnis zurück. Teil C Es ist eine Instanz der Klasse CStrecke anzulegen. Die einzelnen Werte der Punkte. sind einzulesen und die Methode Abstand() ist zur Berechnung des Ergebnisses zu verwenden. 3.2 Aufgabe - Vererbung Es soll eine allgemeine Basisklasse CKraftfahrzeug entworfen werden. Die Klasse beinhaltet folgende Eigenschaften:iMotorleistung, ihoechstgeschwindigkeit, ibaujahr, ifarbe Weiterhin sind die Methoden stehen(), fahren() und bremsen() zu realisieren. Aufbauend auf die Basisklasse sollen die Klassen CPkw und CLkw. Die Klasse CPkw beinhaltet zusätzlich die Eigenschaften isitze. Die Klasse CLkw beinhaltet zusätzlich die Membervariablen iartderbeladung und istanddesfahrtenschreibers. Zu ergänzen sind noch die Methoden beladen() und entladen().die verwendeten Methoden (einschließlich Konstruktor) sollen beim Aufruf nur einen Text ausgeben, der ihre Tätigkeit beschreibt.der Konstruktor soll zusätzlich zum beschreibenden Text die Adresse der angelegten Instanz ausgeben. 20

3.3 Aufgabe - Polymorphie und abstrakte Datentypen Entwerfen Sie eine Basisklasse CKraftfahrzeug, die den abgeleiteten Klassen die Möglichkeit der Polymorphie bietet. Alle Membervariablen müssen bereits in der Basisklasse angelegt werden. Die Methoden stehen(), beladen() und entladen() sollen virtuell definiert werden und in den abgeleiteten Klassen überschrieben werden. Die Methoden fahren() und bremsen() sollen abstrakt definiert werden. Die verwendeten Methoden (einschließlich Konstruktor) sollen beim Aufruf nur einen Text ausgeben, der ihre Tätigkeit beschreibt. Bei der Polymorphie (Vielgestaltigkeit) wird die Instanz einer abgeleiteten Klasse benutzt, indem ein Zeiger auf die virtuelle Basisklasse (Association) mit der Adresse einer abgeleiteten Instanz initialisiert wird. Die Initialisierung erfolgt im Objektdiagramm (hier ebenfalls ein OMD) durch einen Link. Abbildung 21 Polymorphie im Klassendiagramm Realisierung der Polymorphie im Objektdiagramm durch einen Link 21

4 Literatur Nachfolgend findet sich eine Zusammenstellung weiterführender Informationen, die mit dem Inhalt dieses Laborversuchs in Zusammenhang stehen. [1] Rupp, Queins, Zengler; UML 2 Glasklar; Hanser [2] http://www.ibm.com/developerworks/rational/products/rhapsody/ 22