\documentclass{bschlangaul-aufgabe} \bLadePakete{tabelle} \begin{document} \bAufgabenMetadaten{ Titel = {Use Case}, Thematik = {Teacher-Data}, Referenz = SOSY.Projektmanagement.Teacher-Data, RelativerPfad = Module/40_SOSY/01_Projektmanagement/Aufgabe_Teacher-Data.tex, ZitatSchluessel = sosy:ab:2, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Nicht-funktionale Anforderungen, Funktionale Anforderungen, Wasserfallmodell, Spiralmodell, V-Modell, Evolutionäre Softwaremodelle, Inkrementelle Prozessmodelle, SCRUM}, } Das Entwicklerteam von Teacher-Data hat einen neuen Auftrag bekommen. Sie sollen für die Automaten-Videothek DVDRental die Software entwickeln. Nach den ersten Gesprächen konnten folgende Informationen zusammengetragen werden:\footcite{sosy:ab:2} \begin{itemize} \item DVD-Verleih-Automat: \begin{itemize} \item Der Kunde soll einfach, schnell und günstig am Automaten 24 Stunden, sieben Tage die Woche DVDs ausleihen können. Der Kunde hat des Weiteren die Möglichkeit, Filme vorab über das Internet zu reservieren. In der DVD-Verleihstation gibt es drei verschiedene Automaten (siehe Zeichnung). \item Um DVDs ausleihen zu können, müssen sich Neukunden während der Service- und Anmeldezeiten der DVD-Verleihstation bei einem Mitarbeiter anmelden. Dabei werden die benötigten Daten (\emph{Name}, \emph{Vorname}, \emph{Geburtsdatum}, \emph{Anschrift}, \emph{Personalausweisnummer}, \emph{Guthaben}, \emph{Kennwort}) des Kunden aufgenommen und im System gespeichert. Zur persönlichen Identifikation des Kunden wird anschließend der Fingerabdruck am Automaten eingelesen. Der Kunde bekommt eine Magnetkarte ausgehändigt, um sich an den Automaten anmelden zu können. \item Beim DVD-Ausleih muss sich der Kunde mit der Magnetkarte und seinem Fingerabdruck am Automaten für die Filmauswahl identifizieren. Am Eingabe-Terminal hat der Kunde die Möglichkeit Filme nach \emph{Genre}, \emph{Schauspieler}, \emph{Titel}, \emph{TOP-10}, \emph{Neuerscheinungen} und \emph{Stichworten} zu suchen. Suchergebnisse werden mit folgenden Informationen auf dem Display präsentiert: \emph{Titel des Films}, \emph{Regisseur}, \emph{Hauptdarsteller}, \emph{Kurzbeschreibung}, \emph{Erscheinungsjahr}, \emph{Altersfreigabe} und \emph{Verfügbarkeit}. Nach der Wahl eines Films, erhält der Kunde seine Magnetkarte zurück und kann den Film am Automaten für die Ausund Rückgabe nach erneuter Identifikation durch die Karte und den Fingerabdruck abholen. Die DVD wird über den Ausgabeschacht ausgegeben. \item Bei der Rückgabe einer DVD muss sich der Kunde am Automaten für die Aus- und Rückgabe von Filmen mit der Magnetkarte und seinem Fingerabdruck am Automaten identifizieren. Nach erfolgreicher Identifikation führt der Kunde die DVD in den Rückgabeschacht ein. Der Automat liest daraufhin den Barcode auf der DVD und sortiert diese eigenständig wieder ein und bucht die Leihgebühr vom Guthaben auf der Karte ab. \item Das Guthaben kann am Automaten zum Aufladen des Guthabens aufgeladen werden. Nach Eingabe der Kundenkarte können Münzen (5, 10, 20, 50 Cent, 1 und 2€) und Scheine (5, 10, 20, 50€) bar eingezahlt werden. Bei einem Betrag von 20€ gibt es einen Bonus von 3€, bei 30€ einen von 5€ und bei einem von 50€ von 10€. Die Karte wird bei beendeter Geldeingabe nach Drücken des roten Knopfes wieder ausgeworfen. \item Reservierung von Filmen über das Internet: Nach erfolgreicher Anmeldung mit Kundennummer und Geheimzahl auf der betreibereigenen Homepage kann der Kunde nach \emph{Genre}, \emph{Schauspieler}, \emph{Titel}, \emph{TOP-10}, \emph{Neuerscheinungen} und \emph{Stichworten} Filme suchen. Suchergebnisse werden mit folgenden Informationen präsentiert: \emph{Titel des Films}, \emph{Regisseur}, \emph{Hauptdarsteller}, \emph{Kurzbeschreibung}, \emph{Erscheinungsjahr}, \emph{Altersfreigabe} und \emph{Verfügbarkeit}. Der Kunde kann nach der Suche einzelne Filme reservieren, die er innerhalb von zwei Stunden abholen muss. Sollte dies nicht in dem Zeitraum geschehen, so werden die Filme nach zwei Stunden wieder zum Ausleihen freigegeben. \end{itemize} \item Weitere Rahmenbedingungen: \begin{itemize} \item Wird die Kundenkarte im Automaten vergessen, so wird sie zur Sicherheit automatisch eingezogen und kann während der Servicezeiten wieder abgeholt werden. \item Die maximale Leihdauer beträgt 10 Tage. \item Hat der Kunde versehentlich den falschen Film ausgeliehen, so kann er diese bis 10 Minuten nach Ausgabe der DVD ohne Berechnung einer Leihgebühr wieder am Automaten zurückgeben. \item Die Leihgebühr für jeden angefangenen Tag (24h) beträgt 2€. \item Zu jedem Film gibt es mehrere Exemplare. \item Die Ausgabe und Einsortierung von DVDs übernimmt ein DVD-Archiv-Roboter, der über eine Schnittstelle angesteuert werden muss. \end{itemize} \end{itemize} \begin{enumerate} %% % a) %% \item Identifizieren Sie die Aktoren des oben beschriebenen Systems. \begin{bAntwort} Kunde, Service-Mitarbeiter, Wartung, DVD-Archiv-Roboter \end{bAntwort} %% % b) %% \item Identifizieren Sie die nicht-funktionalen\index{Nicht-funktionale Anforderungen} und funktionalen Anforderungen\index{Funktionale Anforderungen} (als Use Cases). \begin{bAntwort} \begin{description} \item[Nicht-funktional:] Bedienoberfläche Web / Automat gleich, einfache Handhabbarkeit, schnell, Dauerbetrieb, Ausfallquote, Leihdauer \item[Funktional:] Geldkarte aufladen, Film suchen, Film auswählen, Film entnehmen, Film zurückgeben, Kunden aufnehmen, Film reservieren \end{description} \end{bAntwort} \item Geben Sie eine formale Beschreibung für drei Use Cases an. Orientieren können Sie sich an folgendem Beispiel: \begin{bAntwort} \bPseudoUeberschrift{Geldkarte aufladen} \begin{tabularx}{\linewidth}{p{3cm}X} Use Case: & Geldkarte aufladen \\ Ziel: & Auf der Geldkarte befindet sich ein gewünschter Betrag an Geld. \\ Kategorie: & primär \\ Vorbedingung: & Geldkarte befindet sich im Automaten. \\ Nachbedingung Erfolg: & Auf der Geldkarte befindet sich der gewünschte Betrag. \\ Nachbedingung Fehlschlag: & Betrag auf der Karte ist der gleiche wie davor $\rightarrow$ Fehlermeldung \\ Akteure: & Kunde \\ Auslösendes Ereignis: & Geldkarte wird in den Automaten zum Aufladen des Guthabens geschoben. \\ Beschreibung: & \begin{enumerate} \item Kunde schiebt Karte in den Automaten. \item Kunde wirft Münzen oder gibt einen Geldschein ein. \item Kunde drückt Knopf zum Auswerfen der Karte. \item Karte wird ausgegeben. \end{enumerate} \\ Erweiterungen: & Schein oder Münze wird nicht akzeptiert. $\rightarrow$ Fehlermeldung \\ Alternativen: & Mindest-Guthaben auf der Karte \\ \end{tabularx} \bPseudoUeberschrift{Film suchen} \begin{tabularx}{\linewidth}{p{3cm}X} \footnotesize Use Case: & Film suchen \\ Ziel: & Anzeigen des gesuchten Films \\ Kategorie: & primär \\ Vorbedingung: & Kunde hat sich mit Magnetkarte und Fingerabdruck identifiziert. \\ Nachbedingung Erfolg: & Eine Liste von Filmen wird angezeigt. \\ Nachbedingung Fehlschlag: & Kein Film gefunden $\rightarrow$ Fehlermeldung \\ Akteure: & Kunde \\ Auslösendes Ereignis: & Kunde will einen Film ausleihen. \\ Beschreibung: & Kunde gibt Genre, Schauspieler, Titel oder Stichwort ein oder lässt sich Neuerscheinungen und TOP10 auflisten. \\ Erweiterungen: & – \\ Alternativen: & Vorgaben von weiteren Suchkriterien \end{tabularx} \bPseudoUeberschrift{Kunden aufnehmen} \begin{tabularx}{\linewidth}{p{3cm}X} Use Case: & Kunden aufnehmen \\ Ziel: & Kunde ist in der Kundendatei. \\ Kategorie: & primär \\ Vorbedingung: & Kunde ist noch nicht in der Kundendatei vorhanden. \\ Nachbedingung Erfolg: & Kunde ist als Mitglied in der Kundendatei aufgenommen. \\ Nachbedingung Fehlschlag: & Kunde kann nicht in die Datei aufgenommen werden. \\ Akteure: & Kunde, Service-Mitarbeiter \\ Auslösendes Ereignis: & Kunde stellt zu den Öffnungszeiten bei einem Service-Mitarbeiter einen Mitgliedsantrag. \\ Beschreibung: & \begin{enumerate} \item Kunde meldet sich zu den Öffnungszeiten bei einem Service-Mitarbeiter an. \item Service-Mitarbeiter erfasst nötige Daten (Name, Vorname, Geburtsdatum, Anschrift, Personalausweisnummer, Kennwort). \item Service-Mitarbeiter kassiert einen Startbetrag und erfasst ihn bei den Kundendaten. \item Der Fingerabdruck des Kunden wird erfasst und gespeichert. \item Kunde bekommt eine Magnetkarte mit seinen Daten. \end{enumerate} \\ Erweiterungen: & - \\ Alternativen: & Kunde ist bereits im System und lässt nur die Kundendaten ändern. \end{tabularx} \end{bAntwort} %% % d) %% \item Verfeinern Sie nun die Use Cases, indem Sie ähnliche Teile identifizieren und daraus weitere Use Cases bilden. \begin{bAntwort} Identifizierung des Kunden an den Automaten, Filmsuche \end{bAntwort} %% % e) %% \item Nennen Sie mindestens drei offene Fragen, die in einem weiteren Gespräch mit dem Kunden noch geklärt werden müssten.\footnote{Quelle: Universität Stuttgart, Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner} \begin{bAntwort} \begin{itemize} \item Was passiert nach der maximlaen Leihdauer? \item Was passiert, wenn der Finger nicht zur Karte passt? \item Was passiert mit defekten DVDs? \item Was passiert bei Rückgabe der falschen DVD? \end{itemize} \end{bAntwort} \end{enumerate} %----------------------------------------------------------------------- % %----------------------------------------------------------------------- \bPseudoUeberschrift{Wasserfallmodell} Die Firma Teacher-Data soll für einen Auftraggeber ein Informationssystem entwickeln. Das Entwicklerteam entscheidet sich, nach dem \emph{Wasserfallmodell} vorzugehen. \index{Wasserfallmodell}\footcite[Aufgabe 1]{sosy:ab:1} \begin{enumerate} \item Geben Sie an, welche \emph{Phasen} dabei durchlaufen werden und erläutern Sie kurz deren \emph{Zweck / Intention / Aufgabe}. \begin{bAntwort} \begin{enumerate} %% % %% \item Problem- und Systemanalyse Grobe Formulierung der Ziele (\zB Einsatzplattform Windows, einheitliche Software zur Unterstützung des Verkaufs, …) \begin{itemize} \item Erfassung des Problembereichs (\zB Interaktion zwischen Händler und Hersteller soll komplett über das Netz funktionieren.) \item Machbarkeitsstudie (\zB Händler sind bereit, sich an das zu entwickelnde System anzupassen.) \item Analyse des Ist-Zustandes (\zB Händler A bietet Interface X wohingegen Händler B Interface Z bietet. Es wird bereits teilweise bei Händler C über das Netz bestellt. …) \item Anforderungsspezifikation (Lastenheft) (\zB Einheitliche Oberfläche für alle Benutzer beim Hersteller, möglichst wenige Veränderungen für die Mitarbeiter (= schnelle Eingewöhnungsphase) …) \item Systemspezifikation (Pflichtenheft) (\zB soll der Ablauf eines Kaufvorgangs folgendermaßen aussehen: Händlerauswahl, Bestellung, Abrechnung … Die Benutzeroberfläche soll folgende Informationen anzeigen: Lieferstatus, ….) \end{itemize} %% % %% \item Systementwurf \begin{itemize} \item Systemarchitektur (\zB Klassendiagramm, Festlegung von Komponenten …) \item Schnittstellen der Komponenten festlegen (\zB Datenbank, Middleware, …) \item Modulkonzept (\zB Modulstruktur und Art der Module (funktional, prozedural, objektorientiert) \item Definition der Einzelschnittstellen (\zB Interfaces und abstrakte Klassen in Java) \end{itemize} %% % %% \item Implementierung \begin{itemize} \item Strukturierung der Komponenten in Module (\zB Klassenrümpfe) \item Spezifikation einzelner Module (\zB exakte Beschreibung eines Moduls) \item Codierung, Generierung, Wiederverwendung einzelner Module (\zB Methoden in Klassen, …) \end{itemize} %% % %% \item Integration und Test \begin{itemize} \item Integration von Modulen (\zB Zusammensetzen von Datenbank und Applikation zum Server) \item Integration von Komponenten (\zB Einsetzen von Client und Server ins Gesamtsystem.) \item Testen und Verifikation (\zB Testen, ob die Implementierung zusammen mit der Umgebung funktioniert. Zusichern, dass gewisse Eigenschaften gültig sind.) \end{itemize} %% % %% \item Wartung und Weiterentwicklung \begin{itemize} \item Wartung (\zB Korrektur eines Fehlers im Programm, Portierung auf anderes Betriebssystem, …) \item Erweitern der Funktionalität (\zB Einbeziehen einer neuen Option im Geschäftsprozess) \item Anpassung der Funktionalität (\zB Anpassung an Änderung im Geschäftsprozess) \end{itemize} \end{enumerate} \end{bAntwort} %% % b) %% \item Während des Entwicklungsprozesses werden nach und nach im Folgenden aufgelistete Teilprodukte entstehen. Ordnen Sie diese den jeweiligen Phasen zu. \begin{itemize} \item Schätzung der Entwicklungskosten \item Dokumentation der Änderungen nach Produktabnahme \item Pflichtenheft \item Beschreibung der Datenstruktur in der Datenbank \item Integration von Modulen/Komponenten \item Betriebsbereites Informationssystem \item Beschreibung der Schnittstelle einzelner Softwarekomponenten \item Quellcode für die GUI \item Durchführbarkeitsstudie \item Systemarchitektur \end{itemize} \begin{bAntwort} \def\TmpPhase#1{$\rightarrow$ \emph{#1}} \begin{itemize} \item Schätzung der Entwicklungskosten \TmpPhase{Anforderungsdefinition} \item Dokumentation der Änderungen nach Produktabnahme \TmpPhase{Betrieb und Wartung} \item Pflichtenheft \TmpPhase{Anforderungsdefinition} \item Beschreibung der Datenstruktur in der Datenbank \TmpPhase{System- und Softwareentwurf} \item Integration von Modulen/Komponenten \TmpPhase{Integration und Systemtest} \item Betriebsbereites Informationssystem \TmpPhase{Betrieb und Wartung} \item Beschreibung der Schnittstelle einzelner Softwarekomponenten \TmpPhase{System- und Softwareentwurf} \item Quellcode für die GUI \TmpPhase{Implementierung und Komponententest} \item Durchführbarkeitsstudie \TmpPhase{Anforderungsdefinition} \item Systemarchitektur \TmpPhase{System- und Softwareentwurf} \end{itemize} \end{bAntwort} \end{enumerate} %----------------------------------------------------------------------- % %----------------------------------------------------------------------- \bPseudoUeberschrift{Vorgehensmodelle \footcite[Aufgabe 2]{sosy:ab:1}} Dem Team von Teacher-Data kommen Zweifel, ob die Entscheidung für das Wasserfallmodell für die Umsetzung des Informationssystems richtig war, oder ob ein anderes Vorgehen eventuell besser wäre. Beurteilen und vergleichen Sie die Vorgehensmodelle \begin{itemize} \item Wasserfallmodell\index{Wasserfallmodell} \item Spiralmodell\index{Spiralmodell} \item V-Modell\index{V-Modell} \item Evolutionäres Modell\index{Evolutionäre Softwaremodelle} oder Inkrementelles Modell\index{Inkrementelle Prozessmodelle} \item agile Entwicklung, wie \zB Scrum\index{SCRUM} \end{itemize} \noindent nach den folgenden Gesichtspunkten: \begin{enumerate} \item Größe des Entwicklerteams \item Komplexität des Projekts \item Bekanntheit der Anforderungen \item Änderung der Anforderungen \item Zeitspielraum (Time-to-Market; was muss bis wann fertig sein?) \item Dokumentation \item IT-Kenntnisse des Kunden \item Durchschnittliche Anzahl an Iterationen \end{enumerate} \begin{bAntwort} \noindent {\tiny \begin{tabularx}{\linewidth}{>{\raggedright\arraybackslash}X||>{\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X} & Wasserfallmodell & Spiralmodell & V-Modell & evolutionär / inkrementell & agil \\\hline\hline Größe des Entwicklerteams & diskutiert die Projektgröße nicht & % Wasserfallmodell mittlere Teams & % Spiralmodell mittlere und große Teams & % V-Modell diskutiert die Projektgröße nicht & % evolutionär / inkrementell ca. 3-9 Entwickler (ohne Product Owner und Scrum Master) % agil \\\hline Komplexität des Projekts & einfache Projekte mit stabilen Anforderungen & % Wasserfallmodell einfache Projekte mit stabilen Anforderungen; Anforderungen können jedoch in den Iterationen angepasst werden. & % Spiralmodell komplexe Projekte; bei einfachen Projekten relativ viel bürokratischer Overhead. & % V-Modell große, lange und komplexe Projekte & % evolutionär / inkrementell hohe Komplexität möglich % agil \\\hline Bekanntheit der Anforderungen & Alle Anforderungen müssen zu Beginn des Projekts bekannt sein. & % Wasserfallmodell Es muss eine initiale Menge von Anforderung bekannt sein. Der Kunde kann die Anforderungen aber aufgrund von Prototypen erweitern. & % Spiralmodell evolutionär: Alle Anforderungen müssen zu Beginn des Projekts bekannt sein. inkrementell: Anforderungen müssen nicht von Anfang an bekannt sein. & % V-Modell Anforderungen müssen von Anfang an bekannt sein. & % evolutionär / inkrementell Es muss eine initiale Menge von Anforderung bekannt sein. Der Kunde kann die Anforderungen aber laufend erweitern / ggf. ändern. % agil \\\hline Änderungen der Anforderungen & Schwer möglich. Durch den strikten Top-Down-Ansatz von der Anforderung hin zum Code zieht eine Änderung einen tiefen Eingriff in den Prozess mit sich. & % Wasserfallmodell Gut möglich. In jeder Runde der Spirale können die Anforderungen neu definiert werden. & % Spiralmodell Schwer möglich $\rightarrow$ strikter Top-Down-Ansatz & % V-Modell evolutionär: häufige Änderungen möglich. inkrementell: Änderungen teilweise möglich. & % evolutionär / inkrementell rasche Anpassung an neue Anforderungen möglich (deshalb agil!) % agil \\\hline Zeitspielraum & Wenig Spielraum. Üblicherweise muss der ganze Prozess durchlaufen werden. Es ist höchstens möglich, den Prozess zu beschleunigen, indem man Anforderungen streicht. Es wird also alles zum Schluss fertig. & % Wasserfallmodell Relativ flexibel. Sobald ein Prototyp existiert, der akzeptabel ist, kann dieser auf den Markt gebracht werden. & % Spiralmodell Wenig Spielraum (vgl. Wasserfallmodell) & % V-Modell Einsatzfähige Produkte in kurzen Zeitabständen, daher relativ flexibel. & % evolutionär / inkrementell Unterteilung in Sprints, daher schnell lauffähige Prototyoen vorhanden. Bei der Planung des nächsten Sprints kann auf neue zeitliche Gegebenheiten relativ flexibel eingegangen werden. % agil \\\hline Dokumentation & Viel Dokumentation – Für jede Phase wird eine komplette Dokumentation erstellt. & % Wasserfallmodell Sehr viel Dokumentation – In jedem Zyklus werden alle Phasen (inkl. Dokumentation) durchlaufen, aber nur im Umfang des Prototypen. Es werden alle Artefakte und Tätigkeiten dokumentiert. & % Spiralmodell Viel Dokumentation – Gerade in den ersten Phasen wird sehr viel über die Software schriftlich festgehalten. Aber auch für die anderen Phasen wird eine komplette Dokumentation erstellt. & % evolutionär / inkrementell & Anforderungsdokumentation ist sehr wichtig. Ansonsten ist funktionierende Software höher zu bewerten als eine umfangreiche Dokumentation. % agil \\\hline IT-Kenntnisse des Kunden & Wenig Kenntnisse nötig. Meistens schreibt der Kunde das Lastenheft und der Entwickler versucht dieses dann in einem Pflichtenheft umzusetzen. Wenn das Lastenheft vom Entwickler als machbar befunden wird, bekommt der Kunde das fertige Produkt. & % Wasserfallmodell Wenig Kenntnisse nötig. – Kunde sieht immer nur die fertigen Prototypen und äußert dann seine Wünsche. & % Spiralmodell Wenig Kenntnisse nötig (vgl. Wasserfallmodell) & % V-Modell Wenig Kenntnisse nötig & % evolutionär / inkrementell Wenig Kenntnisse nötig, aber von Vorteil, da enge Zusammenarbeit mit dem Kunden % agil \\\hline Durchschnittliche Anzahl an Iterationen & vgl. V-Modell & % Wasserfallmodell ca. 3-5 Iterationen & % Spiralmodell Nur lange Zyklen. – Mit dem V-Modell sind nur sehr lange Zyklen handhabbar, da immer wieder der ganze Entwicklungsprozess durchlaufen werden muss. & % V-Modell & % evolutionär / inkrementell variable Anzahl an Sprints, je nach Projektgröße % agil \\\hline \end{tabularx} } \end{bAntwort} \end{document}