Prfifüngsteilnehmer Prüfungstermin Emzelprfifungspttmmer Kennzahl: Herbst Kennwort: 66116 2017 Arbeitsplatz-Nr.: Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen — Prüfungsaufgaben — Fach: Informatik(vertieft studiert) Einzelprüfung: Datenbanksysteme,Softwaretecbnologie Anzahl der gestellten Themen(Aufgaben): 2 Anzahl der Druckseiten dieser Vorlage: 18 Bitte wenden! Einzelprüfungsniimmer 66116 Herbst 2017 Seite 2 Thema Nr.1 Teilaufgabe 1 1. Grundwissen Datenbanksysteme 1. Benennen Sie die vier ACID-Eigenschaften. 2. Grenzen Sie die Begriffe Superschlüssel und Kandidatenschlüssel mit einer kurzen Erklärung voneinander ab. 3. Nennen Sie zwei mögliche Vorteile, die durch den Zusammenschlüss von Festplatten zu einem RAID-System entstehen. 4. Eignet sich eine Hash-Tabelle zur Bearbeitung von Bereichsanfiagen? Begründen Sie Ihre Antwort und nennen Sie gegebenenfalls eine Alternative. 2. Relationale Modellierung Das folgende ER -Diagramm modelliert ein Zugauskunflssystem. Name^^ #Gleise Bahnhöfe liegt_in Städte undesla^ erbmde Abfahrt Ankunft Fortsetzung nächste Seite! Emzelprüfungsnummer 66116 Herbst 2017 1. Seite 3 Setzen Sie das ER -Diagramm in ein relationales Schema um. - Fassen Sie, wenn möglich, Relationen zusammen. - Markieren Sie Primärschlüssel. - Markieren Sie Fremdschlüssel. - Wählen Sie sinnvolle Typen für die Attribute. 2. Geben Sie die Schemadefinitionen ffir die Tabellen verbindet und Bahnhöfe inklusive Primärund Fremdschlüsseldefinitionen in SQL an. 3. Ist es in dem gegebenen Modell möglich einen Zug einzutragen, welcher von München nach Berlin fährt(Start & Ziel)imd als Zwischenstation in Nümberg hält? Begründen Sie Ihre Antwort imd formulieren Sie die entsprechenden Befehle in SQL. Sie können davon ausgehen, dass es in der Datenbank bereits einen Bahnhoffür Berlin, München und Nümberg(mit selbigen Namen)gibt. Das Datum^Ankunft und Abfahrt ist dabeijeweils frei wählbar und muss nicht realistisch sein. 3. Konsistenzbedingungen Betrachten Sie das folgende ER -Diagramm sowie die gegebenen Ausprägungen der Relationen A und B. b a 1 1 A: B: 2 2 3 3 a b 1 1 1 1 2 1 2 2 3 2 a Ri: b a b 1 1 1 1 1 1 1 1 R3: 1 1 2 2 2 1 2 2 3 2 3 2 Zeichnen Sie das angegebene ER -Diagramm ab und: 1. Annotieren Sie das Di^^ramm mit Min/Max-Angaben so,dass Ausprägung Ri eine gültige Ausprägung der Beziehimg R ist, nichtjedoch Ausprägungen R2 bzw. R3. 2. Fügen Sie dem Diagramm nun auch Funktionalitätsangaben hinzu,so dass die Ausprägung Ri erlaubt ist. Fortsetzung nächste Seite! Herbst 2017 Einzelprttfungsnummer 66116 Seite 4 4. Normalformen a) Geben Sie für die vier Relationen(Rq, Ri, R2 undR3)jeweils die höchste Normalform an (1. Normalform,2. Normalform,3. Normalform oder Boyce-Codd Normalform), welche die jeweilige Relation mit gegebenen FDs noch erfüllt. Ro{A,B,C,D) ♦ AB-^C • C-^D Ri{A,B,C,D) • A,B —^ C,D • C —^ A R2{A,B,C,D,E,F) Keine nicht-trivialen FDs. R3{A,B,C,D,E,F) b) • A,B —^ C,D,E,F • A^E,F Gegeben sei die Relation R(A,B,C,D,E,F,G) mit den FDs 1. A^BCDE 2. E^FB 3. F^A i) Geben Sie alle Kandidatenschlüssel an. ii) Überführen Sie die Relation- wenn nötig mittels Synthesealgorithmiis-in die 3. NF. Geben Sie atte Relationen in der 3. NFan und unterstreichen Sie injeder einen Kandidatenschlüssel. Fortsetzung nächste Seite! Herbst 2017 Einzelprflfimgsnummer 66116 Seite 5 5. Schemadefinition Gegeben ist die folgende Definition zweier Tabellen: CREATE TABLE R2 ( b integer not null, c integer unique, primary key (b) ); CREATE TABLE R1 ( a integer not null, b integer references R2, primary key (a) ); Geben Sie jeweils an,ob das Statement syntaktisch korrekt ist und ob es von der gegebenen Datenbank ausgeführt werden kann. Beantworten Sie jede der folgenden Fragen unabhängig von allen anderen, d.h. es liegt immer das hier gezeigte Schema vor imd alle Relationen sind leer. 1. DELETE FRCBi Rl; 2. INSERT INTO R2 VALUES (1,1) INSERT INTO Rl VALTJES (1,1) INSERT INTO Rl VALUES (2,1) INSERT INTO Rl VALUES (3,1) 3. INSERT INTO R2 VALUES (1,1); INSERT INTO R2 VALUES (2,2); INSERT INTO Rl VALUES (1,1); DELETE FROM R2 NHERE b^^a; 4. INSERT INTO Rl SELECT * FRCBi Rl; 5. DROP TABLE R2 FRiCBf DATABASE; Fortsetzung nächste Seite! Einzelprüfungsnummer 66116 Herbst 2017 Seite 6 6. Relationale Anfragen in SQL Folgende Tabellen veranschaulichen eine Aiisprägung eines Fluginformationssystems: Flughäfen Code Stadt Transferzeit (min) LHR London 30 LGW London 20 JFK 60 EWR New York City New York City MUC München 30 FRA Frankfurt 45 35 Verbindungen ID Von Nach Linie Abflug (MEZ) Ankimft (MEZ) 410 MUC FRA LH 2016-02-24 07:00:00 2016-02-24 08:10:00 411 MUC FRA LH 2016-02-24 08:00:00 2016-02-24 09:10:00 412 FRA JFK LH 2016-02-24 10:50:00 2016-02-24 19:50:00 Hinweise - Formulieren Sie alle Abfragen in SQL-92 (insbesondere sind LIMIT,TOP,FETCH FIRST, ROWNUM und dergleichen nicht erlaubt). - Alle Datum/Zeit-Angaben erlauben arithmetische Operationen, beispielsweise wird bei der Operation ankunfi+transferzeit die transferzeit auf den Zeitstempel ankunft addiert. - Es müssen keine Zeitverschiebungen berücksichtigt werden. Alle Zeitstempel sind in MEZ. 1. Ermitteln Sie die Städte, in denen es mehr als einen Flughafen gibt. 2. Ermitteln Sie die Städte,in denen man mit der Linie „LH" an mind.zwei verschiedenen Flughäfen landen kann. 3. Ermitteln Sie die Flugzeit des kürzesten Direktflugs von München nach London. 4. Ermitteln Sie die kürzeste Roundtrip-Zeit(nur Direktflüge)zwischen den Flughäfen FRA und JFK (Transferzeit am Flughafen JFK beachten). Fortsetzung nächste Seite! Herbst 2017 Einzelprüfungsnummer 66116 Seite? Teilaufgabe 2 1. Prozessmodelle Das V-Modell 97 und das Spiralmodell sind Prozessmodelle für die Durchführung von Softwareprojekten. 1. Nennen und erläutern Sie fürjedes der beiden Prozessmodelle drei wichtige Merkmale. 2. Geben Sie je zwei Beispiele für Projekteigenschaften, bei denen zum einen das V-Modell 97 und zum anderen das Spiralmodell Vorteile hat. 2. Fragen zur Softwaretechnik 1. Erläutern Sie, was sich hinter dem Prinzip DRY-Don't Repeat Yourself- verbirgt und nennen sowie erläutem Sie zwei Arten von Dopplung. 2. Erläutem Sie jeweils an einem konkreten Beispiel die Begriffe Fehlerwirkung, Fehlerzustand xmd Fehlerhandlung. 3. Nennen Sie drei konkrete Software-Metriken und diskutieren Sie die Aussagekraft einer dieser Metriken. 3. Systementwicklung Sie wurden mit der Entwicklung eines Online-Shops zur Vermarktung elektronischer Artikel beauftragt. Um Waren kaufen zu können, müssen sich die BCäufer am System registrieren. Das System soll einen virtuellen Warenkorb bieten,zu dem die Käufer die gewünschten Artikel hinzufügen und anschließend den Kauf durchführen können. 1. Identifizieren Sie vier Stakeholder xmd nennen Sie dazuje zwei unterschiedliche Anwendungsfalle(Funktionen)des Online-Shops, in die diese involviert sind. 2. Beschreiben Sie textuell die Schritte des Szenarios beim Kaufeines DVD-Recorders. Berücksichtigen Sie dabei die Nutzeridentifikation und -authentifizierung, das Aussuchen der Waren mittels eines Warenkorbs und die Bezahlung. 3. Modellieren Sie das Szenario von 2 in Form eines Sequenzdiagramms. 4. Modellieren Sie in Form eines Zustandsübergangsdiagramms die Zustände eines Warengegenstandes im Laufe des Bestell- und Liefervorgangs beginnend vom Zustand „angeboten" bis hin zu seiner Auslieferung. Berücksichtigen Sie auch Reklamationen durch Rückgabe xmd die Stornierung einer noch nicht versandten Bestellung. Fortsetzung nächste Seite! Herbst 2017 Einzelprüfimgsnummer 66116 Seite 8 4. Qualitätssicherung Die folgende Seite enthält Soflware-Quellcode, der einen Algorithmus zur binären Suche implemen tiert. Dieser ist durch Inspektion zu überprüfen. Im Folgenden sind die Regeln der Inspektion angegeben. RMl (Dokumentation) Jede Quellcode-Datei beginnt mit einem Kommentar,der den Klassennamen, Versionsinformationen, Datum und Urheberrechtsangaben enthält. RM2 (Dokumentation) Jede Methode wird kommentiert. Der Kommentar enthält eine vollständige Beschreibung der Signatur so wie eine Design-by-Contract-Spezifikation. RM3 RM4 RM5 (Dokumentation) (Dokumentation) (Formatierung) Deklarationen von Variablen werden kommentiert. Jede Kontrollstruktur wird kommentiert. Zwischen einem Schlüsselwort und einer Klammer steht ein Leerzeichen. RM6 (Formatierung) Zwischen binären Operatoren und den Operanden stehen Leerzeichen. RM7 (Programmierimg) Variablen werden in der Anweisung initialisiert, in der sie auch deklariert werden. RM8 (Bezeichner) Klassennamen werden groß geschrieben, Variablennamen klein. 1. Überprüfen Sie durch Inspektion, ob die obigen Regeln für den Quellcode eingehalten wurden. Erstellen Sie eine Liste mit allen Verletzungen der Regeln. Geben Sie für jede Verletzung einer Regel die Zeilennummer, Regelnummer und Kommentar an,z.B.(07,RM4,while nicht kommentiert). Schreiben Sie nicht in den Quellcode. 2. Entspricht die Methode 'binaiySearch'ihrer Spezifikation, die durch Vor- und Nachbedingungen angeben ist? Geben Sie gegebenenfalls Korrekturen der Methode an. 3. Beschreiben alle Kommentare ab Zeile 24 die Semantik des Codes korrekt? Geben Sie zujedem falschen Kommentar einen korrigierten Kommentar mit Zeilennununer an. 4. Geben Sie den Kontrollflussgraphen für die Methode'binarySearch' an. 5. Geben Sie maximal drei Testfälle für die Methode "binarySearch' an,die insgesamt eine vollständige Anweisimgsüberdeckung leisten. Fortsetzung nächste Seite! Herbst 2017 Einzelprüfungsnummer 66116 Seite 9 00 /♦ 01 * BinarySearch.java 02 * 03 * Eine Inplementierung der "Binaere Suche" 04 * ndt einem iterativen Algorithmus 05 */ 06 class BinarySearch { 07 08 09 /** * Binaere Suche 10 * a: Eingabefeld 11 * item: zu suchendes Element 12 * returnValue: der Jndex des zu suchenden Elements oder -I 13 * 14 15 16 * Vorbedingung: * a.length > 0 * a ist ein linear geordnetes Feld: 17 * For all k: ( 1 18 * k < a.length ) => ( afk-l] <= a[k] ) 19 20 * Nachbedingung: * Wenn item in a, dann gibt es ein k mit a[k] 21 * Genau dann wenn returnValue «= -I glJbt es kein k mit 0 <= Jt < a.length item und returnValue = Jt 22 * und a[k] ~ item. 23 */ 24 public static int binarySearch(float a[], float item) { 25 26 int End; // exklusiver Index fuer das Ende des 27 //zu durchsuchenden Teils des Arrays 28 29 int Start =1; // inklusiver Index fuer den Anfang der Suche 30 End = a.length; 31 32 // Die Schleife wird verlassen^ wenn keine der beiden Haelften das 33 // Element enthaelt. 34 while(Start < End) { 35 36 // Teilung des Arrays in zwei Haelften 37 38 39 // untere Haelfte: [0, mid[ // obere Haelfte: ]mid, End[ int roid = (Start + End) / 2; 40 41 42 43 44 45 46 47 48 49 50 51 if (item > a[mid]) { // Ausschluss der oberen Haelfte Start = mid + 1; } eise if(item < a[mid]) { // Ausschluss der unteren Haelfte End = mid-1; ) eise { // Das gesuchte Element wird zurueckgegeben return (mid); ) } // end of while 52 53 // Bei Misserfolg der Suche wird -1 zurueckgegeben 54 return (-1); 55 } 56 } 10 Herbst 2017 Einzelprüfungsnummer 66116 Seite 10 Thema Nr.2 Teilaufgabe 1 1. £!/?-Modellierung Für nachfolgend gegebene Miniwelt soll ein ER -Modell erstellt werden. Geben Sie Kardinalitäten in Chen-Notation an. Vergessen Sie nicht, dass zur Chen-Notation nicht nur Funktionalitäten, sondem auch Partizipitäten, also die Angabe von Existenzabhängigkeit bzw. totaler Teilnahme,zählen. Das örtliche Tierheim möchte ein Datenbanksystem zur einfacheren Verwaltung seiner Tiere und Mitarbeiter anlegen. Hierfür speichert es zum einen alle Informationen über die beherbergten Tiere. Tiere lassen sich unterteilen in Hunde, Katzen, Vögel sowie Kleintiere. Im Tierheim bekommt jedes Tier einen Namen; dieser wird abgespeichert genau wie das Geschlecht und, soweit bekannt, das Geburtsdatum des jeweiligen Tieres. Außerdem soll festgehalten werden, ob das jeweilige Tier kastriert ist. Zu den Hunden wird ihre Rasse sowie ihre Schulterhöhe angegeben. Zu den Katzen wird ebenfalls die Rasse angegeben. Bei den Kleintieren wird angegeben, um was für ein Tier es sich handelt, z. B. Maus, Hamster, Kaninchen. Ab vmd zu kann es vorkommen, dass auch noch andere Tiere im Tierheim aufgenommen werden. Jedes Tier bekommt eine bestimmte Zusammenstellung von mehreren Futtersorten. Jede Futtersorte hat einen Namen, einen Hersteller sowie eine Beschreibung. Für jedes Tier wird die Menge der jeweiligen Sorte festgehalten. Die Mitarbeiter des Tierheims, von denen Name, Gebtirtsdatum und Anschrift, bestehend aus Straße, Hausnummer, Postleitzahl tmd Wohnort, gespeichert werden, lassen sich in feste Mitarbeiter mit Bezahlung sowie ehrenamtliche Mitarbeiter ohne Bezahlung unterteilen. Bei den festen Mitarbeitern wird die Höhe der Bezahlung in der Datenbank gespeichert. Fürjeden ehrenamtlichen Mitarbeiter wird mindestens ein Tier symbolisch als „Patentier" eingetragen. Sind zu wenig ehrenamtliche Mitarbeiter verfügbar, kann es vorkommen, dass nicht jedes Tier einen Paten bekommt. Die festen Mitarbeiter kümmern sich aber natürlich um alle Tiere. Fortsetzung nächste Seite! Emzelprülüngsniimmer 66116 Herbst 2017 Seite 11 2. Relationenmodell Überföhren Sie das folgende ER -Modell in ein Relationenschema, das die Bedingungen der 3. Normalfonn erfüllt. Geben Sie beijedem Fremdschlüssel an, woraufer verweist. Überlegen Sie sich bei der Transformation von Generalisierung bzw. Spezialisierung, welche der zur Verfügung stehenden Möglichkeiten die beste ist. Beantworten Sie anschließend noch kurz die Frage, warum Sie sich für die von Ihnen gewählte Methode entschieden haben bzw. was gegen die anderen Möglichkeiten spricht. (^UhrzeR^ Sprachen Timeslot Datum N Saal Name Straße Stufen Stufensaal stufenloser Saal Fortsetzung nächste Seite! Herbst 2017 Einzelprüfüngsnummer 66116 Seite 12 3. Normalisierung Gegeben ist eine Relation R in 1. Normalform mit den Attributen {A,B,C,D,E,F,G,H}.In diesem Schema gelten die folgenden funktionalen Abhängigkeiten: AB-^D ABC^E B^C FG-^HA GA^C 3.1 Zweite Normalform In einem ersten Schritt wurde diese Relation in zwei Relationen gespalten: Relationl(AB,C,D,E) Relation2(F',G,i/,^,C) Überprüfen Sie für das gegebene Relationenschema aus den zwei Relationen, ob es in 2. Normalform ist. Begründen Sie sämtliche Ihrer Schlussfolgerungen und Entscheidimgen. Hinweis: Wie gehen Sie vor, wenn Sie eine Menge an Relationen gegeben haben? Was sagen die erfüllten Normalformen der einzelnen Relationen über die Normalform des Schemas aus? 3.2 Svnthesealgoritbmus Wenden Sie den Synthesealgorithmus an,um das Schema in ein Schema in 3. Normalform zu überführen. Denken Sie daran, welche Voraussetzung dabei für die Menge der gegebenen funktionalen Abhängigkeiten gelten muss. Führen Sie auch die Schritte des Algorithmus kurz an, die keine Auswirkungen aufdas Ergebnis haben,aber grundsätzlich zu beachten sind. Fortsetzung nächste Seite! Herbst 2017 Einzelprüfungsnummer 66116 Seite 13 4.SQL und Relationale Algebra Gegeben ist folgendes Relationenschema für die Angebotsauswahl eines Wirtshauses: ProduktfPNr. Name) Getränk(PNr. Verkaufsvolumen, VPreis, EPreis, Alkoholgehalt) FK(PNr)referenziert Produkt(PNr) SpeisedPNr. Beschreibung, VPreisP, EPreisP) FK(PNr)referenziert Produkt(PNr) Zusatzstoff(ZID. Name) enthaeltfPNr.ZIDl FK(PNr)referenziert Produkt(PNr) FK(ZID)referenziert ZusatzstofF(ZID) VPreis und EPreis bezeichnen den Verkaufs- bzw. Einkaufspreis für 100 ml desjeweiligen Getränks. VPreisP und EPreisP bezeichnen den Verkaufs- bzw. Einkaufspreis für eine Portion derjeweiligen Speise. Verwenden Sie für die folgenden Abfragen stets nur Standard-SQL-Befehle. 4.1 Wie viele verschiedene Speisen werden in dem Wirtshaus angeboten? Schreiben Sie eine SQLAbfrage, welche das Ergebnis in einer Spalte mit dem Namen „Anzahl-Speisen" ausgibt. 4.2 Mit welchem Getränk bzw. welchen Getränken macht der Wirtshausbetreiber den größten Gewinn(auf den Preis bezogen)? Schreiben Sie eine SQL-Abfrage, welche die Nummer und den Namen des gefragten Getränks bzw. der gefragten Getränke ausgibt. 4.3 Welche angebotenen Produkte enthalten Zusatzstoffe mit dem Namensteil „phosphat"? Schreiben Sie eine SQL-Abfrage, welche die Nummer und den Namen der Produkte ausgibt. 4.4 Welches sind die fönfteuersten Speisen im Angebot des Wirtshauses? Der LIMIT -Operator ist für diese Aufgabe nicht zulässig, da die Ausgabe sportlich fair sein soll. Sportlich fair bedeutet, dass falls beispielsweise ein Platz doppelt belegt ist, der nachfolgende Platz ausgelassen wird. Es köimen somit auch mehr als fünfDatensätze ausgegeben werden. Schreiben Sie eine 5ÖZ,-Abfrage, welche die Nummer,den Namen,den Preis und die Platzierung aufsteigend, beim teuersten Gericht mit 1 be ginnend, ausgibt. 4.5 Neimen Sie drei verschiedene Möglichkeiten, wie Löschregeln(ON DELETE...)beim Anlegen von Tabellen definiert sein können. Wie lautet derjeweilige iSgZ-Befehl und welche Auswirkung hat er, wenn ein Eintrag einer referenzierten Tabelle gelöscht wird? 4.6 Formulieren Sie die Abfirage von Aufgabe 4.3 in relationaler Algebra. Fortsetzung nächste Seite! Herbst 2017 Einzelprflfungsmimmer 66116 Seite 14 5. Grundlagen 5.1 Welche zwei Alternativen gibt es grundsätzlich, eine Datenbankanfrage zu optimieren? Nennen Sie diese beiden Arten der Optimierung und erklären Sie in ein bis zwei Sätzen, unter Zuhilfenahme welcher Methodenjeweils optimiert wird. Geben Sie für beide Alternativen je ein Beispiel an. 5.2 Für die Einhaltung der referentiellen Integrität gibt es in für jeden der drei Begriffe Schlüsselkandidat, Primärschlüssel und Fremdschlüssel mindestens eine Beschreibungsmöglichkeit. Wie lautet diese jeweils bzw. falls es mehrere Möglichkeiten gibt, wie lauten diese? 5.3 Mit welchen zwei Möglichkeiten kann eine Transaktion abgeschlossen werden? Nennen Sie diese beiden Begriffe imd die Auswirkungen aufdie Datenbank. 5.4 Erklären Sie anhand des ANSI-SPRARC-Schemas den Begriff der Datenunabhängigkeit in zwei bis drei Sätzen. Fortsetzung nächste Seite! Einzelprüfungsnuimner 66116 Herbst 2017 Seite 15 Teilaufeabe 2 1. Projektmanagement Gegeben ist das folgende Gantt-Diagramm zur Planung eines hypotiietischen Softwareprojekts: Analyse Entwurf Implementierung 1 1 1 T 1 r a) Konvertieren Sie das Gantt-Diagramm in ein CPM-Netzwerk,das die Aktivitäten und Abhängigkeiten äquivalent beschreibt. Gehen Sie von der Zeiteinheit „Monate" aus. Definieren Sie im CPM-Netzwerkje einen globalen Start- xmd Endknoten. Der Startjeder Aktivität hängt dabei vom Projektstart ab, das Projektende hängt vom Ende aller Aktivitäten ab. b) Berechnen Sie fürjedes Ereignis(d.h. für jeden Knoten Ihres CPM-Netzwerks)die frfiheste Zeit, die späteste Zeit sowie die Pufferzeit. Beachten Sie, dass die Berechnungsreihenfolge einer topologischen Sortierung des Netzwerks entsprechen sollte. c) Geben Sie einen kritischen Pfad durch das CPM-Netzwerk an. Welche Aktivität darfsich demnach wie lange verzögern? Forisetzung nächste Seite! Einzelprüfungsnummer 66116 Herbst 2017 Seite 16 2. Objektorientierte Modellierung mit UML Gegeben sei das folgende Glossar, welches die statische Struktur von einfachen Aktivitatsdiagrammen in natürlicher Sprache beschreibt: Aktivitätsdiagramm:Benannter Containerfür Aktivitäten und Datenflüsse. Eine der definierten Aktivitäten ist als Start-Aktivität ausgezeichnet. Aktivität: Teil des beschriebenen Verhaltens. Man unterscheidet Start-, End-, echte Aktivitäten sowie Entscheidungen. Aktivitäten können generell mehrere ein- und auslaufende Kontrollflüsse haben. Startaktivität: Ist im Aktivitätsdiagramm eindeutig und dient als Einstiegspunkt des beschriebenen Ablaufs. Endaktivität: Wird eine solche Aktivität erreicht, ist der beschriebene Ablaufzu Ende. Echte Aktivität: Benannte Aktion, die nach Ausführung zu einer definierten nächsten Aktivität führt. Entscheidimg: Aktivität, die mehrere Nachfolger hat. Welche davon als nächstes ausgeführt wird, wird durch entsprechende Bedingungen (s. Kontrollfluss)gesteuert. Kontrollfluss: Verbindetje eine Quell- mit einer Zielaktivität. Kann eine Bedingung enthalten, die erfüllt sein muss, damit die Zielaktivität im Falle einer Entscheidung ausgeföhrt wird a) Geben Sie ein UML-Klassendiagramm an, welches die im Glossar definierten Konzepte und Beziehungen formal beschreibt. Geben Sie bei allen Attributen und Assoziationsenden deren Sichtbarkeit, Multiplizität imd Typ an. Benennen Sie alle Assoziationen. b) Nachfolgend ist ein Beispiel eines Aktivitätsdiagramms in der gängigen grafischen Notation abgebildet. Stellen Sie den beschriebenen Kontrollfluss als UML-Objektdiagramm konform zum in Teilaufgabe a erstellten UML-Klassendiagramm dar. Referenzieren Sie die dort definierten IQassen imd Assoziationen; auf Objektbezeichner dürfen Sie verzichten. 7 Dienstreiseantrag ReisekostenVoranschlag [Reise nicht genehmigt] [Reise genehmigt] buchen J ^f iCosten} abrechnur^ Fortsetzung nächste Seite! Herbst 2017 Einzelprflfüngsnuinmer 66116 Seite 17 3. Entwurfsmuster Verwenden Sie geeignete Entwurfsmuster,um die folgenden Sachverhalte mit Hilfe von UML-Klassendiagrammen zu beschreiben. Nennen Sie das zu verwendende Entwurfsmuster namentlich, wenden Sie es zur Lösung derjeweiligen Fragestellung an und erstellen Sie damit das problemspezifische UML-Klassendiagramm. Beschränken Sie sich dabei aufdie statische Sicht, d.h. definieren Sie keinerlei Verhalten mit Ausnahme der Definition geeigneter Operationen. a) Ein Untemehmen ist baumartig strukturiert. Abteilimgen können wiederum selbst Unterabteilungen und/oder Personen beinhalten. Eine Person/Abteilung kann dabei nicht mehreren Abteilungen untergeordnet sein. Jede Abteilimg wird außerdem von einer Person geleitet; umgekehrt können Personen beliebig viele Abteilungen leiten. Personen wie Abteilungen haben einen zahlenwertigen Identifikationsschlüssel. Bei Abteilungen wird eine Bezeichmmg,bei Personen Name und Geburtsdatum hinterlegt. b) Es gibt unterschiedliche Arten universitärer Veranstaltungen: Vorlesungen, Übungen und Seminare. Alle Veranstaltungen haben einen Namen imd eine ID (Beispiel: „INFSOl"). Übimgen beziehen sich immer aufeine Vorlesung. Seminare können wöchentlich,zweiwöchentlich oder im Block stattfinden. Definieren Sie eine Klasse „Hochschule", die die unterschiedlichen Veranstaltungen zusammenfasst imd verwaltet. Es soll sichergestellt werden, dass es von dieser Klasse nur eine einzige Instanz gibt. c) Eine Autowaschanlage besteht aus mehreren Reinigungsbürsten, vier Felgenreinigem und einem Trockengebläse. Alle Komponenten können unabhängig voneinander ein- imd ausgeschaltet werden. Die Waschanlage bietet eine Operation an, die den Waschvorgang durchfährt indem sie die einzelnen Komponenten in geeigneter Reihenfolge ein- imd ausschaltet. Die Waschanlage bietet somit eine vereinheitlichte Schnittstelle für die Untersysteme(Bürsten, Felgenreiniger,...) an. Fortsetzimg nächste Seite! Einzelprüfungsnuinmer 66116 Herbst 2017 Seite 18 4. Zustandsbasiertes Testen a) Geben Sie den allgemeinen Unterschied zwischen Black- und White-Box-Tests an. Zu welcher Kategorie gehört das Zustandsbasierte Testen? Gegeben ist folgendes UML-Zustandsdiagramm. Die Variable k sei von ganzTahligftm T)^. V [/k-] w [/k++] [k>0] [k = 0] b) Geben Sie einen möglichst kurzen Testfall an, der das Kriterüun der Zustandsfiberdeckung erfüllt. Stellen Sie den Testfall als eine Sequenz von Operationsaufirufen dar. Notieren Sie beijedem Zustandsübergang Vorzustand, Transition, Nachzustand,sowie den Wert der Variablen k vor und nach dem Operationsaufinf. Der Nachzustand bzw. Wert„k nachher" muss dem Vorzustand bzw. vorher" des nächsten Operationsaufrufs entsprechen. Den Initialwert von k, also das ,Jc vorher" der ersten Zeile, sollen Sie dabei selbst bestimmen. Beispiel: Vorzustand c) k vorher Transition Nachzustand k Nachher A 3 V B 2 B 2 w Ä 3 Geben Sie mm einen möglichst kurzen Testfall an, der das Kriterium der Transitionsfiberdeckung erfüllt. Verwenden Sie für den Testfall eine Darstellung mit denselben Eigenschaften wie in Teil aufgabe b.