F A C H H O C H S C H U L E F Ü R D I E W I R T S C H A F T F H D W, H A N N OV E R B E T R I E B L I C H E I N F. - S Y S T E M E Klausur Studiengang: Informatik/Wirtschaftsinformatik Studienquartal: IV. Theoriequartal Umfang: Skript „Betriebliche Informationssysteme“ (Prozesse, Transaktionen, Historie, Datenmodelle) Dozent: Löwe Termin: 22. September 2006 Dauer: 100 Minuten 40 Punkte sind zu erreichen: Wissen 16, Anwendung 16 und Transfer 8 Punkte. Bestanden ab 20 Punkte. TEIL I: WISSEN (30 MINUTEN) Aufgabe 1 (2 Punkte): Was beschreibt man mit einem Geschäftsprozessmodell? (Achtung: Es ist nach dem Was nicht nach dem Wie gefragt!) Aufgabe 2 (5 Punkte): Unsere Prozessmodelle erlauben die Modellierung folgender Situation: Kausale Abhängigkeit, Alternative oder Konkurrenz, Abstraktion, Arbeitsverteilung und Synchronisation. (a) Geben Sie die graphische Notation für alle fünf Situationen an! (b) Wodurch unterscheiden sich Alternative und Konkurrenz? (c) Wieso benötigt man zur Formulierung von Schleifen Abstraktion? (d) Welche dieser Situationen gibt es in der Instanz, das heißt im konkreten Prozess, nicht mehr? (e) Warum muss das so sein? Aufgabe 3 (4 Punkte): Zur Isolation von offenen Transaktionen gibt es folgende unterschiedlichen Ebenen: (1) dirty read, (2) committed read und (3) serializable. Eine offene Transaktion t liest dabei (1) alle Datensätze in der Datenbank, (2) nur Datensätze, die durch abgeschlossene Transaktionen, erzeugt wurden, bzw. (3) nur Daten, die durch Transaktionen erzeugt wurden, die vor dem Start von t bereits abgeschlossen waren (eine Veränderung dieser gelesenen Datensätze durch das commit einer anderen Transaktion führt zum roll back). Ziel der Isolation ist es, dafür zu sorgen, dass die nebenläufige Ausführung von Transaktionen t1 und t2 nur solche Effekte hervorbringt, die auch bei einer sequentiellen Abarbeitung (entweder erst t1 und danach t2 oder erst t2 und danach t1) entstehen können. Geben sie drei Szenarien so an, dass (a) dirty read nicht für Isolation sorgt aber committed read, (b) dass committed read nicht für Isolation sorgt aber serializable und (c) dass nicht mal serializable für vollständige Isolation sorgt. Aufgabe 4 (2 Punkte): Skizzieren Sie eine Situation, in der vier Transaktionen in einem Deadlock sind! Aufgabe 5 (1 Punkt): Was ist der wesentliche Unterschied zwischen Kurzen und Langen Transaktionen? Aufgabe 6 (2 Punkte): Was ist der Unterschied zwischen Versionierung und Historie? TEIL II: ANWENDUNG (50 MINUTEN) Wir betrachten folgenden einfachen Produktentwicklungsprozess: Der Kunde stellt zu Beginn des Ablaufs die Anforderungen und nimmt am Ende das Entwicklungsergebnis ab oder verlangt Nachbesserungen. An der Entwicklung sind vier Abteilungen beteiligt, das Qualitätsmanagement, die Hardware-Entwicklung, die Software-Entwicklung und die Dokumentationsabteilung. (Die letzten drei Abteilungen zusammen werden auch als Produktion bezeichnet ). Das Qualitätsmanagement ist einerseits dafür verantwortlich, die Anforderungen des Kunden in Zusammenarbeit mit dem Kunden solange zu verbessern, bis sie präzise genug für einen Entwicklungsauftrag sind. Andererseits prüft das Qualitätsmanagement die einzelnen Ergebnisse der Entwicklung (Hardware-System und Software-System) und der Dokumentationsabteilung (Handbücher) und veranlasst bei negativem Ausgang weitere Iterationen in der Produktion. Es ist ebenfalls Aufgabe des Qualitätsmanagements zu prüfen, ob (1) Hardware und Software problemlos integriert werden können und die Anforderungen erfüllen und (2) die Handbücher zum Gesamtsystem passen. Wenn nicht, werden weitere Iterationen in (Teilen) der Produktion nötig. Die (eigentliche) Entwicklung des Hard-Systems, die (eigentliche) Entwicklung des Software-Systems und das Schreiben der Handbücher sollen parallel erfolgen. Aufgabe 7 (6 Punkte): Geben Sie ein formales Modell für den oben beschriebenen Prozess an. Gehen Sie dabei nicht weiter ins Detail als die Beschreibung selbst, also unterscheiden Sie z. B. nicht die Phasen Analyse, Entwurf und Realisierung in der Entwicklung. Benutzen Sie zur Modellierung nur Aktivitätstypen mit Vor- und Nachbedingungen, also keine Katalysatoren, Inhibitoren oder weitere höhere Modellierungskonstrukte! Aufgabe 8 (2 Punkte): In der Lösung oben sollte der Kunde nur zu Beginn oder nach nicht erfolgter Abnahme neue Anforderungen stellen können. Warum wird das Prozessmodell wesentlich komplexer, wenn man dem Kunden gestattet, jederzeit parallel zur laufenden Entwicklung neue Anforderungen in den Prozess einzusteuern? (Achtung: Sie sollen hier kein vollständiges Modell angeben! Es reicht, wenn Sie anhand von Beispielen zwei der zusätzlichen Probleme und ihre Lösung deutlich machen.) Aufgabe 9 (5 Punkte): Im Datenmodell der neu gegründete fies (Fachhochschule für innovative E-Business Strategien) sollen die Entitäten vom Typ Studierender durch eine 7-stellige numerische Matrikelnummer für diverse Zwecke der Verwaltung eindeutig identifiziert werden. Die Nummer soll so aufgebaut sein: 1. Stelle = Kode für den Standort der fies, an dem der Student studiert; 2.+3. Stelle = letzten beiden Ziffern vom Jahr des Studienbeginns an der fies; 4. Stelle = Kode für den Studiengang des Studierenden an der fies; 5. Stelle = Geschlecht des Studierenden und Quartal des Studienbeginns (0 – 3 entspricht männlich, 4 – 7 entspricht weiblich; eine 5 an dieser Stelle sagt z. B., dass es sich um eine Frau handelt, die im 2. Quartal mit dem Studium begonnen hat); 6. + 7. Stelle eindeutige Nummer in der Merkmalsgruppe des Studierenden. (a) Welche Probleme und Beschränkungen bringt diese Wahl eines sprechenden Schlüssels langfristig für die organisatorische Vorgänge der fies mit sich? Zählen Sie alle Probleme auf! (Hinweis: Gehen Sie am besten alle Einzelteile des Schlüssels durch!) (b) Wie sieht eine Alternative für einen Schlüssel ohne all diese Probleme aus? (c) Was macht man mit den in der Nummer kodierten Informationen? Aufgabe 10 (3 Punkte): Sie entwickeln ein System, in dem Deadlocks nicht vermieden aber entdeckt werden. Ist ein Deadlock erkannt, wird er aufgelöst, indem eine beteiligte Transaktion ein roll back bekommt, alle ihre Sperren freigibt und von vorne beginnt. Geben Sie ein Kriterium an, nach dem Sie die zurückzusetzende Transaktion so auswählen, dass kein Starvation-Problem entsteht. Begründen Sie Ihre Antwort! TEIL III: TRANSFER (20 MINUTEN) Aufgabe 11 (4 Punkte): Die Transaktionen aus dem Skript arbeiten auf Kopien und veröffentlichen ihre Ergebnisse beim Commit. Wenn man für jede Geschäftsfunktion GF eine kompensierende Funktion GF -1 (Undo) besitzt, kann man alle Operationen in einer Transaktion direkt auf den Originalen durchführen. Wie realisiert man dann Commit und Roll Back? Gibt es Unterschiede zwischen beiden Transaktionskonzepten? (Hinweis: Betrachten Sie die ACID Eigenschaften und die Sperrmechanismen!) Aufgabe 12 (4 Punkte): Die Prozessmodellierung wird häufig durch Abstimmungsaktivitätstypen stark vereinfacht. Diese Aktivitätstypen haben n 1 Paare von „Vorbedingungen“1 (Xi , Yi )i = 1...n , zwei „Nachbedingungen“ X und Y und einen Schwellwert 1 s n. Entsprechende Aktivitäten (Entscheidungen) können eintreten, wenn für jedes i genau eine Vorbedingung gilt (i-te Abstimmung: Xi oder Yi , der Kontext stellt dabei sicher, dass entweder nur Xi oder nur Yi und nie beides zusammen eintreten kann). Beim Eintreten erzeugen sie aber entweder nur X oder Y. X wird erzeugt, wenn die Anzahl der X-Vorbedingungen den Schwellwert s erreicht oder übersteigt. Y wird erzeugt, wenn die Anzahl der Y-Vorbedingungen den Schwellwert n - s übersteigt. Abstimmungsaktivitätstypen kann man mit normalen Aktivitätstypen realisieren! 1 Allerdings nicht in dem Sinne des Modells im Skript, da nicht alle Vorbedingungen zum Schalten eintreten müssen. 22 (a) Wie stellt man einen Abstimmungsaktivitätstyp n = 1 durch Standardaktivitätstypen dar? (b) Wie stellt man einen Abstimmungsaktivitätstyp n = 2 durch Standardaktivitätstypen dar? (Betrachten Sie sowohl s = 1 als auch s = 2!) (c) Wie viele Standardaktivitätstypen benötigt man allgemein für einen Abstimmungsaktivitätstyp mit n Vorbedingungspaaren und Schwellwert s ?