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.
-
Inception (Beginn)
Anforderungen (Geschäftsfälle / Business Cases), Rahmenbedingungen definiert.
-
Elaboration (Entwurf + Design)
Spezifikation aus Anforderungen.
-
Construction (Implementierung)
Komponenten umgesetzt.
-
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
- Business Modeling: Geschäftsfallmodellierung mit UML
- Requirements: Anforderungen genau erheben, Verfeinerung der Use-Cases
- Analysis & Design: Erstellen wichtige Dokumente / Artefakte: Architektur, Design, Test-Dokumente
- Implementation
- Test
- Deployment: Fertigstellung, Auslieferung
Supporting Workflows
- Configuration and Change Management: Dokumentenversionierung mit Version Control System
- Project Management
- 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).
-
Inception (Beginn)
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.