4. Übung zu Software Engineering WS 2007/2008
Aufgabe 8 Erstellen Sie für den aus Aufgabe 1 bekannten Function-Point-Kalkulator ein Pflichtenheft. Bitte begrenzen Sie dessen Umfang auf maximal 2 DIN A4 Seiten. 1
Aufgabe 8 Definitionsphase Eingabe (aus der Planungsphase): vage, unvollständige und inkonsistente Anforderungen (Pflichtenheft) Ausgabe (der Definitionsphase): vollständige, konsistente, eindeutige und erfüllbare Anforderungen erstellte Dokumente: Pflichtenheft, Produktmodell, GUI-Modell Pflichtenheft fasst fachliche und nicht-formalisierbaren Anforderungen zusammen beschreibt was und nicht wie, d.h. keine unnötigen Einschränkungen legt Entwicklungsprioritäten aus Auftraggebersicht fest kann aus dem Lastenheft entwickelt werden, aber viel detaillierter soll als Basis eines juristischen Vertrags dienen können, anhand dessen das fertige Produkt abgenommen werden kann 2
Aufgabe 8 Zielbestimmungen Musskriterien, Wünsche, Abgrenzungen Produkteinsatz Zielgruppen, Betriebsbedingungen Produkt-Umgebung Software, Hardware, Schnittstellen Produktfunktionen Produktdaten Leistungsanforderungen Antwortzeit, Platzbedarf, Genauigkeit Benutzeroberfläche Qualitätsanforderungen Testfälle Entwicklungsumgebung Software, Hardware, Schnittstellen Ergänzungen Index, Glossar 3
Aufgabe 9 Ein fiktives Multimedia-Mobiltelefon stellt dem Benutzer die gängige Funktionalität zur Verfügung: Anrufe tätigen, Nachrichten verschicken, Fotos aufnehmen, Musik hören sowie ein Adressbuch pflegen. Neben dem Versenden von SMS unterstützt das Telefon auch das Versenden von MMS, wobei der Benutzer hier zunächst ein Foto bzw. ein Video aufnehmen muss. Anrufe können ausschließlich zu Kontakten erfolgen, die vorher im Adressbuch angelegt wurden. Angelegte Kontakte können selbstverständlich bearbeitet werden, außerdem ist es möglich, nach Kontakten zu suchen. Erstellen Sie für das obige Szenario ein Anwendungsfalldiagramm und überlegen Sie, an welchen Stellen <<include>>- und <<extend>>-beziehungen sinnvoll eingesetzt werden können. 4
Aufgabe 9 5
Aufgabe 9 Anwendungsfalldiagramme bilden die aus Benutzersicht verwendbaren Funktionen ab <<include>> bzw. <<use>> extrahiert gemeinsame Verhaltensbestandteile zeigt vom benutzenden zum benutzten Anwendungsfall bildt keine Bedingungen ab Kontakt kann nur angerufen werden, wenn er vorher angelegt wurde <<extend>> Normalfall-Sonderfall-Beziehung zeigt vom Sonderfall zum Normalfall <<include>>-beziehungen zu Normalfällen beinhalten auch sämtliche Sonderfälle MMS verschicken beinhaltet fotografieren und Video aufnehmen 6
Aufgabe 10 Erstellen Sie ein Klassendiagramm aus der Spezifikationsperspektive, dass das UML Klassendiagramm modelliert, d.h. ein Meta-Modell für UML Klassendiagramme. Modellieren Sie dabei ausschließlich die folgenden Sachverhalte: Klassen besitzen Attributen und Methoden. Klassen können über Assoziationen miteinander verknüpft werden. Klassen können über eine Vererbungshierarchie miteinander in Beziehung stehen. Neben Assoziationen können Klassen auch durch Aggregationen und Kompositionen miteinander verknüpft werden. 7
Aufgabe 10 8
Aufgabe 10 Klassen besitzen Attribute und Methoden Klassen Klasse, Attribute, Methode Attribut und Methode als Teil (Komposition) von Klasse Klassen können über Assoziationen miteinander verknüpft werden Klasse Assoziation zwei Assoziationen zwischen Klasse und Assoziation für Anfang und Ende Klassen können über eine Vererbungshierarchie miteinander in Beziehung stehen Autoassoziation von Klasse Neben Assoziationen können Klassen auch durch Aggregationen und Kompositionen miteinander verknüpft werden Klassen Aggregation und Komposition Aggregation und Komposition als spezielle Assoziation 9
Aufgabe 10 - Alternative 10
Aufgabe 10 - Alternative abstrakte Oberklasse Beziehung Unterklassen Vererbung und Assoziation, wobei letztere wiederum die Unterklassen Aggregation und Komposition besitzt sachlich falsch: Unterklassen Assoziation, Aggregation und Komposition, da letztere spezielle Assoziationen sind Assoziation zwischen Klasse und Beziehung und nicht zwischen Klasse und allen Unterklassen von Beziehung nur eine Assoziation zwischen Klasse und Beziehung mit Kardinalität 2 kleiner Nachteil: eingeschränkte Lesbarkeit 11
Aufgabe 11 Betrachten Sie das unten dargestellte Klassendiagramm, das für ein (vereinfachtes) Kursbuchungssystem erstellt wurde. Erzeugen Sie je ein Sequenzdiagramm, das einen der folgenden Abläufe nachbildet: Der Veranstalter erzeugt einen Kurs mit dem Namen Programmieren mit Cobol. Ein Teilnehmer meldet sich für den obigen Kurs an. Der Kurs wird vom Veranstalter gelöscht, da sich nur ein Interessent gefunden hat. Achten Sie bei der Modellierung darauf, dass die Klasse Kurs sowohl den Veranstalter als auch sämtliche Teilnehmer über relevante Kursänderungen benachrichtigt, d.h. ob sich ein neuer Teilnehmer angemeldet hat, der Kurs erzeugt oder gelöscht wurde. Benutzen Sie für die Lösung dieser Aufgabe ausschließlich Methoden, die in den Klassen zur Verfügung stehen. 12
Aufgabe 11 13
Aufgabe 11 Der Veranstalter erzeugt einen Kurs mit dem Namen Programmieren mit Cobol 14
Aufgabe 11 Ein Teilnehmer meldet sich für den obigen Kurs an 15
Aufgabe 11 Der Kurs wird vom Veranstalter gelöscht, da sich nur ein Interessent gefunden hat 16
Aufgabe 11 Sequenzdiagramm Objekte mit Namen versehen k: Kurs, t: Teilnehmer, v: Veranstalter, kbs: Kursbuchungssystem Methodensignaturen einhalten Argumente spezifizieren kein return-wert, wo keiner ist Navigationsrichtung beachten Lebenslinie zeigt an, dass ein Objekt erzeugt wurde erzeugte Objekte mit einem Pfeil auf den Namenskasten markieren gelöschte Objekte mit einem Kreuz auf der Lebenslinie markieren 17
Der PI-Lehrstuhl wünscht frohe Weihnachten und einen guten Rutsch ins neue Jahr! 18