Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Dr. Bernhard Rumpe, Markus Pister WS 2002/2003 Übungsblatt 2 24. Oktober 2002 www4.in.tum.de/~rumpe/se Übungen zur Softwaretechnik Aufgabe 3 : Analyse (HT) Der Werkzeughersteller aus Aufgabe 1 beschreibt die Zusammenhänge der Teilnehmer bei der Werkzeugherstellung folgendermaßen: „Die Rohstofflieferanten verkaufen ihre Ware entweder direkt an uns oder sie beliefern auch Hersteller von Teilen, von denen wir vorgefertigte Ware einkaufen. Die von uns fertig gestellte Ware geht dann an verschiedene Händler, die sie dann wiederum an weitere Händler beziehungsweise an Kunden verkaufen.“ a) Modellieren Sie mit einem UML- Klassendiagramm die Zusammenhänge zwischen den Teilnehmern am Geschäftsprozess „Werkzeugherstellung“. Lassen sie sich dazu geeignete Namen für die Klassen einfallen und versehen Sie die Assoziationen mit Kardialitäten. (Ergebnis hat ungefähr eine Hand voll Klassen und Assoziationen.) Die Händler und Lieferanten sind bereit, Daten zum Kauf und Verkauf über eine gemeinsame Schnittstelle zu übertragen. Sie wollen sich in einem Workshop zusammensetzen und eine Schnittstelle für die Verkäuferseite und eine Schnittstelle für die Käuferseite entwerfen. b) Überlegen sie sich in Stichpunkten, welche Informationen und Handlungsmöglichkeiten sie bei einem Einkaufs-/Verkaufvorgang haben. Ordnen sie diese den Schnittstellen Käufer und Verkäufer zu. Nachdem mit den Händlern und Lieferanten abgeklärt ist, was die Schnittstellen alles können sollen, führen sie ein weiteres Gespräch mit dem Werkzeughersteller. Sie wollen herausbekommen, wie die firmeninterne Struktur aussieht. Bei den Gesprächen mit den einzelnen Mitarbeitern stellen Sie fest, dass ein richtiger Überblick über die Zuständigkeiten der einzelnen Abteilungen fehlt. Sie holen aus jeder Abteilung der Firma einen Mitarbeiter und lassen diese in einer Diskussionsrunde die Zuständigkeiten ermitteln. c) Eine Möglichkeit, Anforderungen zu ermitteln, sind CRC Karten. Setzen sie sich in Gruppen zu 5 Personen zusammen und ermitteln sie die Zuständigkeiten und Zusammenhänge zwischen den Abteilungen. Gehen Sie dazu wie gefolgt vor: a. Weisen sie jedem Mitspieler einer der folgenden Abteilungen zu: Einkauf, Verkauf, Warenlager & Logistik, Buchhaltung & Finanzen, Produktion b. Geben sie mindestens vier verschiedene Geschäftsabläufe in der Firma an. c. Spielen sie mit CRC Karten diese Szenarien durch. Aufgabe 4 : Entwurf(HT) Die Anforderungen aus Aufgabe 3 sollen nun in eine für den Entwickler verwendbare Form gebracht werden. a) Versuchen Sie, mit der UML die beiden Schnittstellen zu beschreiben. Haben Sie alle Anforderungen umsetzen können? b) Fügen Sie nun die Schnittstellen entsprechend in das UML Diagramm aus Aufgabe 3a) ein. c) Grenzen Sie in dem Diagramm den von Ihnen zu implementierenden Bereich ab. (Bezüglich des Werkzeugherstellers.) d) Versuchen Sie ebenfalls die Informationen der CRC Karten in die UML umzusetzen und so das Diagramm zu erweitern. (Es kann durchaus sein, dass man etwas an den Assoziationen ändern muss.) Aufgabe 5 : Implementierung(HT) Diese Aufgabe soll Konzepte und Probleme bei der Umsetzung von UML zu Java demonstrieren. a) Die nun Teilweise definierte Architektur soll in Java umgesetzt werden. Suchen sie sich drei Klassen aus dem UML Diagramm heraus und übersetzen sie diese in lauffähigen Java-Code. Achten Sie dabei auf die Assoziationen und deren Kardialitäten. Können Sie alle Kardialitäten in Java umsetzen? (Es werden noch keine Methodenrümpfe geschrieben.) Bei einigen Assoziationen lässt sich die Kardialität nur schwer sicherstellen. Besonders wenn Zugriffe von außen kommen, können solche Zusicherungen schnell verletzt werden. d) Überlegen sie sich ein Konzept, wie sie z.B. eine „1-*“-Kardialität in Java umsetzen würden. Könnten sie bei ihrem Umsetzungskonzept sicherstellen, dass ihr Programm bei der Auslieferung korrekt funktioniert, also die beschriebenen Kardialitäten eingehalten werden? Mitarbeiter 1-* 1 Abteilung