Fragenkatalog zum Hotel Beispiel

Um welchen Typ von Projekt handelt es sich?

a) Neuentwicklung

b) Migration

c) Wartung

d) Digitalisierung

e) Neuentwicklung, evtl. Migration der vorhandenen Daten

Hotelkette wird wahrscheinlich schon ein Softwareprojekt haben. → Mischung aus Migration (Übertragung von Datenbestand) und Neuentwicklung.

Zielgruppen

Hotelbetreiber, Manager, Rezeptionist

Kunde hat kein User Interface → Software wird nicht für sie entwickelt

Das Projekt soll nach 6 Monaten abgeschlossen sein. Projektteam zusammenstellen. Größe bestimmen + projektspezifische Expertisen (+ Begründung)

Teamgröße - Schwierig zu bewerten, grob:

1-2 Teams = 3-5 oder 6-9 Entwickler

  • Projektleiter
  • Technischer Architekt
  • Web Developer
  • UI, UX Entwickler
  • Security (Kreditkartenzahlung, Datenbank)
  • Jemanden mit Gastronomiekenntnissen
  • Tester
  • etc.

5 essenzielle nichtfunktionale Anforderungen

"Nichtfunktionale Anforderungen sind alle Anforderungen die ich brauche damit die funktionale Anforderung benutzbar ist" → Begrenzung verschwommen

Anforderungen die der Markt-Studie zufolge wichtig sind undmessbarsind.

  • Leistung und Performance
  • Usability und menschliche Faktoren
  • Sicherheit
  • Wartbarkeit
  • Erweiterbarkeit

Beispiele:

Logging bei Absturz des Systems (messbar)

Auf 3-5 beliebtesten Smartphones am Markt innerhalb von 3 Sekunden ausführbar.

Performance: Die Funktion / Abfrage ist auf dem System mit der Spezifikation in 3 Sekunden vararbeitet.

UI: 3/4 Personen können diese Funktion ohne Anleitung bedienen.

Welche Qualitätsmerkmale sind besonders wichtig? (Nicht essenzielle nicht-funktionale Anforderungen)

  • Modifizierbarkeit: Aufwand zur Ausführung von Verbesserungen, zur Fehlerbeseitigung oder Anpassung an Umgebungsänderungen.
  • Stabilität: Wahrscheinlichkeit des Auftretens unerwarteter Wirkungen von Änderungen.
    • Ja weil Ausfall des Systems viel Geld kostet für Betreiber
  • Bedienbarkeit: Aufwand für den Benutzer, die Anwendung zu bedienen.
    • Ja weil Personal nicht so Computer affin sind
  • Erlernbarkeit: Aufwand für den Benutzer, die Anwendung zu erlernen (zum Beispiel Bedienung, Ein-, Ausgabe).
  • Zeitverhalten: Antwort- und Verarbeitungszeiten sowie Durchsatz bei der Funktionsausführung.
  • Sicherheit: Fähigkeit, unberechtigten Zugriff, sowohl versehentlich als auch vorsätzlich, auf Programme und Daten zu verhindern.
    • Ja sehr wichtig, wegen Umgang mit Kunden und Kreditkarten Daten
  • Interoperabilität: Fähigkeit, mit vorgegebenen Systemen zusammenzuwirken.
  • Richtigkeit: Liefern der richtigen oder vereinbarten Ergebnisse oder Wirkungen, zum Beispiel die benötigte Genauigkeit von berechneten Werten.
  • Anpassbarkeit: Fähigkeit der Software, diese an verschiedene Umgebungen anzupassen.
  • Installierbarkeit: Aufwand, der zum Installieren der Software in einer festgelegten Umgebung notwendig ist.

Welchen Software Prozess und warum? Welche Vorteile?

Iterative Software Entwicklung. → RUP

Iteratives / Inkrementelles Vorgehen

Schrittweises Vorgehen.

Sehr lange, sehr große, Komplexe Systeme, unklare / ändernde Anforderungen, schnell erste verwendbare Protoypen verlangt.

wenn man schnell schon etwas "greifbares" haben möchte

Integration findet kontinuierlich statt

kleine Etappen / Meilensteine die gemeinsam geplant werden, Planung einfacher

Kontinuierlich hohe Qualität

Ziel:

Rasch mit Teillösung auf den Markt kommen - dann ausbauen.

Gleichzeitig kann an darauf folgenden Versionen (von mehreren Teams) geplant / gearbeitet werden.

Architektur muss stabil sein

Prioritisierung, Anordnung nach Relevanz für Kunde.

Ausgew. Prozess skizzieren und beschreiben .

  • RUP

    Rational Unified Process RUP

    Inkrementell, iterativ, phasenorientiert.

    Im kommerziellen Umfeld.

    UML in jeder Phase.

    Integriertes Anforderungsmanagement und Änderungsmanagement (supporting workflow).

    Phasen mit Meilensteinen

    Eine Phase kann mehrere Iterationen haben (Von Projektmanager festgelegt).

    Aktivität + Verantwortlicher = Artifakt

    Jede Phase / Aktivität von einem Verantwortlichen erzeugt ein Produkt / Artefakt → überprüft, freigegeben.

    Wenn Überprüfung nicht bestanden, weitere Iteration.

    1. Inception (Beginn)

      Anforderungen (Geschäftsfälle / Business Cases), Rahmenbedingungen definiert.

    1. Elaboration (Entwurf + Design)

      Spezifikation aus Anforderungen.

    1. Construction (Implementierung)

      Komponenten umgesetzt.

    1. Transition (Auslieferung)

      Auslieferung an Kunden, Product release.

    Disziplinen und Workflows

    9 Disziplinen die durch alle Phasen geführt werden

    6 Engineering Workflows

    3 Supporting Workflows

    Engineering Workflows

    1. Business Modeling: Geschäftsfallmodellierung mit UML
    1. Requirements: Anforderungen genau erheben, Verfeinerung der Use-Cases
    1. Analysis & Design: Erstellen wichtige Dokumente / Artefakte: Architektur, Design, Test-Dokumente
    1. Implementation
    1. Test
    1. Deployment: Fertigstellung, Auslieferung

    Supporting Workflows

    1. Configuration and Change Management: Dokumentenversionierung mit Version Control System
    1. Project Management
    1. Environment: Definiert Ressourcen, Budget und Werkzeuge für Entwickler

    Vorteile

    Real-world Szenarien.

    Werkzeugunterstützung (Rational XDE, IBM).

    Vordefinierte Liste mit erforderlichen Artefakten.

    Nachteile

    Komplexität, Dokumentationsaufwand

    Anwendungsbereich

    Grosse Projekte die einen Überblick brauchen (inkl. Deployment).

5 Sinnvolle Meilensteine basierend auf den gewählten Software Entwicklungsprozess um das Projekt zu einem gelungenen Abschluss zu führen.

Durch iterativen Prozess zB RUP bei der man Meilensteine festlegen muss → Meilensteine nach Features festlegen.

InjederIteration einen Plan (Meilensteine) mit Tests.

Es wurde bereits versucht nach SCRUM vorzugehen - Endprodukt hatte keine zufriedenstellende Qualität. Burndown Chart des letzten Sprints:

Welche 3 möglichen Ursachen zum Scheitern könnte es basierend auf die Burndown Chart gegeben haben?

Die Stellen auf der Chart markieren. Welcher fundamentaler SCRUM Grundsatz wurde verletzt ?

Graue Linie ist die Soll-Linie die nach jedem Sprint geschätzt wird.

Es wurden nicht in regelmäßigen Abständen Sprints gemacht und nach einem Verzug wurde die Soll-Linie nicht neu aufgestellt.

Sprünge tauchen meistens nach Reviews auf nachdem man feststellt, dass Anforderungen nicht erfüllt wurden.

Spikes am Schluss:

Sprints wurden ganz am Ende eingeplant ohne davor bisherigen Fortschritt richtig reviewed zu haben. Am Ende wurde viel zu knapp klar dass Anforderungen nicht berücksichtigt wurden.

5 Gründe warum Projekt trotz Budget, Leute und Kompetenz scheitern kann und Gegenmaßnahmen .

  • unvollständige Anforderungen
  • Anwender nicht involviert
  • Keine Management-Unterstützung
  • Häufige Änderung der Anforderungen
  • Fehlende Planung


Zustandsdiagramm zeichnen für Bestellung und Zahlung.