Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag: 03.03.2011 Prüfungsdauer: 60 Minuten Prüfungsumfang: 3 Aufgaben (11 Seiten) Hilfsmittel: alle, außer programmierbare elektronische Hilfsmittel und Kommunikationsgeräte Hinweise: 1.) Verlangt sind alle Aufgaben. 2.) Bitte verwenden Sie keinen Rotstift / Bleistift. 3.) Bitte tragen Sie in den Kasten Ihren Namen und Ihre Matrikelnummer ein. 4.) Verwenden Sie für jede Teilaufgabe ein separates Lösungsblatt. 5.) Geben Sie dieses Deckblatt zusammen mit Ihren Lösungsblättern ab. 6.) Schreiben Sie auf alle Lösungsblätter unbedingt Ihren Namen und Ihre Matrikelnummer. --------------------------------- Nicht vom Studierenden auszufüllen ------------------------------------- 1.1 1.2 1.3 2 3
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 2 Aufgabe 1: Objektorientierte Analyse (ca. 30 min) Aufgabe 1.1: Anwendungsfälle modellieren Selbstbedienungs - Tankstelle <<include>> Identifikation als Kunde Tanken <<include>> Abbuchen vom Endpreis Autofahrer Ausgabe von Statistikbericht Betreiber Änderung der Treibstoffpreise
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 3 Aufgabe 1.2: Klassendiagramm erstellen * Aufzeichnung * Datum Zeit Treibstoffart Treibstoffmenge Gesamtpreis druckestatistik() Display Text anzeigentext() anzeigenpreis() anziengenendpreis() Zahlen-Testenfeld eingebenzahlen() Zapfsäule gewünschtetreibstoffart gwünschtetreibstoffmenge auswählenbenzinart() auswählenbenzinmenge() tanken() berehcneendpreis() setaktuellerkunde() setaktuellezahl() Kundennummer 3 Bezogener Treibstoff Menge 2 Tank Treibstoffart Preis beziehentreibstoff() * Kunde Name Kundennummer Geheimzahl Kontostand prüfegeheimzahl() abbuchenendpreis() Normal-Kunde Firmen-Kunden Status Karlenleser Drucker abbuchenendpreis() Rabatt abbuchenendpreis() auslesenkarte() entnahmekarte() druckenquittung() entnahmequittung()
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 4 Aufgabe 1.3: Sequenzdiagramme erstellen Autofahrer :Kartenleser :Zapfsäule :Display Zahlen-Tastenfeld :Normal-Kunde :Tank :Drucker auslesenkarte() setaktuellerkunde(nr.) anzeigentext() eingebenzahlen() setaktuellezahl() prüfegeheimzahl() anzeigentext() auswählenbenzinart() anziegenpreis() anzeigentext() eingebenzahlen() setaktuellezahl() tanken() beziehentreibstoff() berechneendpreis() anzeigenendpreis() abbuchrnendpreis() entnahmekarte() anzeigentext() druckenquittung()
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 5 Aufgabe 2: Bewertung von Modellen (ca. 20 min.) Lösungsblatt a) Gegeben sind die nachfolgenden UML-Diagramme. Beurteilen Sie, ob diese Diagramme richtig sind. Bei fehlerhaften Diagrammen bitte kurze, stichwortartige Begründung angeben. Korrigieren Sie die fehlerhaften Diagramme. Punktevergabe: Je richtiges Kreuz gibt einen Punkt. Für jedes falsche Kreuz wird ein Punkt abgezogen. Bei fehlerhaften Diagrammen gibt es für richtige Begründungen und richtig gezeichnete Diagramme zusätzliche Punkte. 1.) Klassendiagramm richtig X falsch Richtiges Klassendiagramm Wenn falsch, warum? 2.) Objektdiagramm für gegebenes Klassendiagramm Hinweis: Das obere Klassendiagramm kann als richtig angenommen werden. richtig falsch X Richtiges Objektdiagramm Wenn falsch, warum? Verbindung Reiseunterlagen-Katalog Katalog braucht zwei Reisebeschreibungen Reisebeschreibung nur zu einem Katalog
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 6 Lösungsblatt zu Aufgabe 2a) Bewertung von Modellen 3.) Klassendiagramm für gegebenes Objektdiagramm richtig falsch X Richtiges Klassendiagramm Wenn falsch, warum? Anhänger zu LKW Besitzer zu Fahrzeug Hinweis: Das Objektdiagramm kann als richtig angenommen werden. 4.) Klassendiagramm basierend auf Zustandsmuster für gegebenes Zustandsdiagramm der Klasse A richtig falsch X Richtiges Klassendiagramm basierend auf Zustandsmuster Wenn falsch, warum? m1 und m2 nicht abstrakt Abstrakter Zustand m2 in beiden implementieren Hinweis: Das Zustandsdiagramm kann als richtig angenommen werden.
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 7 Lösungsblatt zu Aufgabe 2b) Bewertung von Modellen b) Begründen Sie, warum die nachfolgenden UML-Diagramme falsch sind. Zeichnen Sie jeweils ein richtiges Diagramm. 5.) Klassendiagramm Was ist falsch? Richtiges Klassendiagramm m2 muss abstrakt sein m5 unten implementieren 6.) Sequenzdiagramm für gegebenes Klassemdiagramm Was ist falsch? Kanal fehlt empfangen() nicht von Sender zu Kanal Richtiges Sequenzdiagramm Hinweis: Das Klassendiagramm kann als richtig angenommen werden.
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 8 Lösungsblatt zu Aufgabe 2b) Bewertung von Modellen 7.) Objektdiagramm für gegebenes Klassendiagramm Hinweis: Das Klassendiagramm kann als richtig angenommen werden. Was ist falsch? Ein Referent pro Tutorium Teilnahme hat nur einen Referent Tutorium hat 2 Teilnahmen Richtiges Objektdiagramm 8.) OOD-Klassendiagramm für gegebenes OOA-Klassendiagramm Was ist falsch? AnzahlHiwi nicht mehr Klassenattribut druckehiwiliste() nicht mehr Klassenattribut Studenlohn zu Hiwi Richtiges Anwendungsfalldiagramm Hinweis: Das OOA-Klassendiagramm kann als richtig angenommen werden.
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 9 Aufgabe 3: Verständnisfragen (Multiple-Choice) (ca. 10 min.) Lösungsblatt Punktevergabe: Je richtiges Kreuz gibt es einen Punkt. Für jedes falsche Kreuz wird ein Punkt abgezogen. Die Gesamtpunktzahl für jede Teilaufgabe kann jedoch nicht kleiner 0 werden. Hinweis: Mehrere richtige Antworten sind möglich. 1.) Welche der folgenden Aussagen zum Polymorphismus sind richtig? Polymorphismus macht umfangreiche switch-anweisungen überflüssig. Der Polymorphismus kann nur durch den Einsatz von Schnittstellen (interfaces) realisiert werden. Beim Polymorphismus wird die auszuführende Operation erst zur Laufzeit des Programms einer Klasse zugeordnet. Polymorphie bedeutet gleiches Verhalten verschiedener Objekte auf unterschiedliche Botschaften. Die Delegation ist ein Mechanismus, der auf dem Polymorphismus basiert. 2.) Welche der folgenden Aussagen zu komponentenbasierter Softwareentwicklung sind richtig? Die Planung, welche Softwarebausteine eines Projekts als Komponente für neue Projekte eingesetzt werden können, findet erst nach Projektabschluss statt. Beim Einsatz von Komponenten wird parametriert und konfiguriert statt programmiert. Der Einsatz von Komponenten reduziert immer die Kosten. Bei Komponenten findet die Kommunikation über Ereignisse statt. Damit Komponenten wiederverwendbar sind, müssen sie immer einen kleineren Funktionsumfang, z. B. im Vergleich zu Klassen, besitzen.
Prüfung Grundlagen der Softwaretechnik WS 10/11 Seite 10 Lösungsblatt zu Aufgabe 3) Verständnisfragen 3.) Welche der folgenden Aussagen zu Entwurfsmustern sind richtig? Ein Merkmal von Entwurfsmustern ist die Inversion des Kontrollflusses zur Laufzeit. Das Fabrikmethode-Muster ist nur für das Erzeugen von Dokumenten einsetzbar. Beim Beobachter-Muster prüfen die Beobachter regelmäßig, ob sich Informationen verändert haben. Das Singleton-Muster kann sicherstellen, dass von einer Klasse genau nur ein Objekt existieren kann. Beim Beobachter-Muster können neue Beobachter ohne Änderung des Subjekts hinzugefügt werden. 4.) Welche der folgenden Aussagen zu SysML sind richtig? UML ist eine Modellierungssprache für Software, SysML ist eine Modellierungssprache für Hardware. In SysML können nichtfunktionale Anforderungen modelliert werden. In SysML und UML werden dieselben Diagrammarten verwendet. SysML ermöglicht die Prüfung von alternativen Designstudien beispielsweise bezüglich Antwortzeiten. In SysML existieren nur statische Modelle und keine dynamischen Modelle.