TU Wien:Software Engineering und Projektmanagement VO (Biffl)/Prüfungsangabe 2020-06-29

Aus VoWi
Zur Navigation springen Zur Suche springen

188.410 Vorlesungsprüfung

29. Juni 2020

Aufgabe Punkte max. Punkte err.
1. Theoriefragen 60
2. Kreativfragen 40
  • Sie haben für die Prüfung 90 Minuten Zeit.
  • Für ein positives Gesamtergebnis müssen Theorie- und Kreativteil positiv sein (je >50%).
  • Verwenden Sie nur Beiblätter die bei Bedarf von der Prüfungsaufsicht ausgehändigt werden. Schreiben Sie auf ALLE Beiblätter deutlich Ihren Namen und Ihre Matrikelnummer. Schreiben Sie die Anzahl der Beiblätter oben auf diese Seite.
  • Falsche Antworten bei Multiple Choice Fragen führen innerhalb der Frage zu entsprechenden Punkteabzügen.
  • Im Kreativteil getroffene Annahmen dürfen nicht in Konflikt mit der Angabe stehen und müssen deutlich notiert werden.
  • Alle Darstellungen, Diagramme, usw. sind wie in den Vorlesungsunterlagen auszuführen.
  • Schreiben Sie vor allem Ihre Endfassung leserlich und nachvollziehbar mit dokumentenechtem Schreibgerät.

1 Theoriefragen[Bearbeiten | Quelltext bearbeiten]

1.1 Auf welcher Grundannahme basiert die klassische / sequenzielle Softwareentwicklung? Zu welchen Problemen kann dies führen und wie wird damit bei der kontinuierlichen Softwareentwicklung umgegangen? (8 P)

Antwort Der sequentielle Entwicklungsprozess basiert auf stabilen Anforderungen. Anforderungen ändern sich allerdings oft, was bei sequentiellen Vorgehensmodellen in der Regel dazu führt, dass das Endprodukt nicht mehr den Anforderungen entspricht. Beim kontinuirlichen Modell wird iterativ gearbeitet, der Funktionsumfang steigt mit jeder Iteration, gesteuert durch den Soll-Ist-Vergleich -> auf Anforderungsänderungen kann besser reagiert werden.

1.2 Was sind die Aufgaben eines Sourcecode Management Systems (SCM)? Beschreiben Sie den Arbeitsablauf, wie bei verteilten SCM Systemen mit Konflikten umgegangen wird! (8 P)

Antwort

  • parallele Projektentwicklung auf mehreren Zweigen
  • transparente Änderungen
  • nachvollziehbare Entwicklungsgeschichte
  • Zugriff auf ältere Versionen

Arbeitsablauf Git (verteilt)

  1. Kopie des Haupt-Repository (klonen)
  2. Lokale Änderungen
  3. Lokale Commits
  4. Merge
    • Push
    • Pull Request

1.3 Was sind typische Herausforderungen bei global verteilten Entwicklungsteams? Welche Art von Kommunikation kommt hier hauptsächlich zum Einsatz? Nennen Sie hierfür vier verschiedene Beispiele. (8 P)

Antwort

  • Grosse geographische distanzen -> Kein Face-2-Face, Austauschen von Handzeichnungen erschwert
  • Verschiedene Arbeitszeiten
  • Verschiedene Zeitzonen

=> asynchrone Kommunikation

  • Email
  • Wiki, CMS
  • Mailingliste/Forum
  • Issue-Tracker

1.4 Wie unterscheiden sich kommerzielle Software von eingebetteten Systemen? Nutzen Sie hierfür die nachfolgende Tabelle für Ihren Vergleich. Nennen Sie zusätzlich jeweils zwei Beispiele für die jeweiligen Arten. (8 P)

Eingebettete Systeme Kommerzielle Software
Steuerung
Zuverlässigkeit
Sicherheit
Usability
Beispiele

Antwort Siehe TU_Wien:Software_Engineering_und_Projektmanagement_VO_(Biffl)/Fragenkatalog#Embedded_Systems_und_kommerzielle_Software_anhand_von_fünf_Kriterien_vergleichen.

1.5 Was versteht man unter "Process Tailoring"? Warum ist dieses oftmals notwendig? (8 P)

Antwort Standardisierte Software Prozesse sind in der Praxis direkt eher schwer einsetzbar, da eine Vielzahl an Projektattributen berücksichtigt werden müssen; Beispiele: Projektgröße, Projekttyp und Anwendungsdomäne.

  • Anpassbarkeit eines generischen Entwicklungsprozesses an spezifische Projektgegebenheiten durch Prozesstailoring.
  • Ersetzen einzelner Prozess-Schritte (oder Vorgehensbausteine) durch passende alternative Lösungen.
  • Wiederverwendung von Best-Practices (Methoden / Tools).
  • Individuelle Anpassung des Projektplans.

Achtung:

  • Tailoring erfordert erfahrene Projektleiter, da ein fundiertes Verständnis des Modellaufbaus erforderlich ist.
  • Berücksichtigung von definierten Tailoring-Kriterien und Produktabhängigkeiten.

1.6 Beschreiben Sie die drei unterschiedlichen Teststufen. Geben Sie jeweils ein konkretes Beispiel für einen Test der jeweiligen Stufe an. (8 P)

Antwort Drei Teststufen: Unit, Integration, System

  • Unit Tests sind meistens Black-Box-Tests
  • Whiteboxtests sind meist Modul oder Systemtests

1.7 MC - Testing

1.8 MC - Component Oriented SE

2 Kreativfragen[Bearbeiten | Quelltext bearbeiten]

Gemeinsame Angabe

Sie sind der leitende Projektmananger eines kleinen Software Unternehmens und sollen folgenden Auftrag einer mittelgroßen europäischen Hotelkette gemeinsam mit Ihrem Projektteam umsetzen. Die aus acht Häusern bestehende Hotelkette möchte das Reservierungs- und Mitarbeiterverwaltungssystem zentralisieren. Dazu soll ein webbasiertes Softwaresystem entworfen werden, das die folgende, durch den Kunden formulierte, Funktionalität abbildet:

Ein Haus stellt eine Filiale der Hotelkette dar. Jedes Haus ist mit Name und Adresse erfasst. Zu jedem Haus werden die Mitarbeiter erfasst. Mitarbeiter können als Manager, Rezeptionisten oder als allgemeines Personal geführt werden. Manager und Rezeptionisten können in mehreren Häusern arbeiten. Das allgemeine Personal ist einem einzigen Haus zugeordnet.

Weiters werden zu jedem Haus die Zimmer erfasst. Jedes, Zimmer gehört einer Zimmerkategorie (Standard, Superior, Deluxe, Standard Suite, Junior Suite, Superior Suite) an. Weiters wird zu jedem Zimmer die Zimmernummer, das Stockwerk und die Anzahl der Betten erfasst. Sollte ein Zimmer nicht buchbar sein (z.B. wegen einer defekten sanitären Anlage), dann ist dieses Zimmer aus dem Buchungsprozess auszuschließen (sperren). Es soll auch zu einem späteren Zeitpunkt immer nachverfolgbar sein, wann ein Zimmer gesperrt war und aus welchem Grund.

Kunden werden mit ihren individuellen Daten erfasst. Eine eindeutige Identifikation geschieht über eine Kundennummer. Unter Umständen wird es später notwendig, einzelne Kunden zu sperren (z.B.: falls der Kunde in der Vergangenheit schon Zimmer gebucht hat, diese aber dann nicht bezahlt hat). Der Auftraggeber klärt hier die rechtlichen Gegebenheiten noch ab.

Jeder Kunde kann als Stammkunde ausgezeichnet werden. Wann welcher Kunde als Stammkunde geführt wird, obliegt dem jeweiligen Hotelpersonal, allerdings soll ersichtlich sein, welcher Mitarbeiter den Kunden zu einem Stammkunden gemacht hat. Zu jedem Stammkunden können individuelle Wünsche notiert werden, welche hausspezifisch sind (z.B.: Kunde XY bevorzugt hofseitiges Zimmer in den höheren Etagen; Kunde Z möchte keine Bananen im Obstkorb; ...).

Eine Buchung kann ein oder mehrere Zimmer umfassen. Sämtliche Buchungen werden dem durchführenden Manager oder Rezeptionisten zugeordnet Zu jeder Buchung ist ein buchender Kunde zu erfassen, sowie eventuell weitere mitreisende Personen die ebenfalls Kunden sind. Jede Buchung enthält die notwenigen Informationen (wie zB. Anreisedatum, Abreisedatum, Gesamtpreis pro Nacht). Wurde eine Buchung bezahlt, so sind zu dieser Buchung die Daten der Zahlung zu speichern. Die Zahlung kann als Barzahlung, Kreditkartenzahlung oder in kombinierter Form durchgeführt werden. Jede Zahlung enthält den bezahlten Beitrag und das Bezahldatum. Wird eine Zahlung nicht von dem buchenden Kunden durchgeführt, so muss dies ebenfalls erfasst werden können. Eine Zahlung ist sowohl bar als auch mit Kreditkarte möglich.

2.1 Analysieren Sie die Angaben des Kunden. Das Projekt soll nach 6 Monaten abgeschlossen sein. Stellen Sie ein Projektteam zusammen. Wie groß muss Ihr Projektteam sein und welche projektspezifischen Expertisen sollen im Team vorhanden sein (gehen Sie hierbei speziell auf das beschriebene Projekt ein und begründen Sie Ihre Antwort)? (10 P)

2.2 Welchen Softwareentwicklungsprozess würden Sie aufgrund der Kundeninformation wählen und warum? Beschreiben Sie diesen kurz. (10 P)

2.3 Sie haben sich für einen Softwareentwicklungsprozess entschieden. Definieren Sie sinnvolle Meilensteine um dieses Projekt zu einem gelungenen Abschluss zu führen. (5 P)

2.4 Definieren Sie 5 essentielle nichtfunktionale Anforderungen des Projektes. (5 P)

2.5 Es wurde bereits versucht das Projekt mit einem anderen Projektteam zu realisieren. Das Team ist dabei nach SCRUM vorgegangen und konnte das Endprodukt nicht in einer zufriedenstellenden Qualität liefern. Ihnen liegt das Burndown-Chart des letzten Sprints vor. Beschreiben [Sie] anhand des Burndown-Charts drei mögliche Ursachen, welche zum Scheitern des Projektes geführt haben könnten. Markieren Sie die Stellen zusätzlich im Burndown-Chart. Welcher fundamentale Grundsatz von SCRUM wurde von diesem Team verletzt? (10 P)