GI-Applikationsentwicklung - Vorgehensmodelle Flashcards
Definition (Vorgehensmodelle)
Beschreibung des organisatorischen Ablaufes bei der Entwicklung eines IT -Systems durch einheitliche und verbindliche Festlegung von
- abgegrenzten Abschnitten (Phasen) und Aktivitäten
- Reihenfolge der Phasen
- Rollen
- Methoden und Werkzeuge zu den Aktivitäten
- Ergebnisse
=> WAS ist WANN durch WEN mit welchem ERGEBNIS zu tun?
Definition (Vorgehensmodelle): Vorteile
- Leitfaden für die Systementwicklung
- gemeinsame und verbindliche Sicht der logischen und zeitlichen Struktur eines Projektes
- projektbegleitende Dokumentation
- Planbarkeit
- Zertifizierbarkeit
- Unabhängigkeit von Personen
Definition (Vorgehensmodelle): Vorgehensmodell (Prozessmodell)
Festlegung von
https://ibb.co/c1V564n
Begriffe (Vorgehensmodelle)
■ Aktivitäten bzw. Phasen sind z.B.
- Analyse
- Entwurf
- Implementierung
- Test
- Inbetriebnahme
■ Artefakte
-Zwischenergebnisse/Produkte einzelner Aktivitäten/Phasen
■ Meilenstein
- Erreichung eines bestimmten (wesentlichen) Zwischenzieles; i.d.R. Abschluss einer Aktivität oder Phase
- Vorliegen definierter Ergebnisse
- dient der Überprüfung des Projektstandes
■ Tailoring
- Anpassung des Vorgehensmodells an das jeweilige Projekt
- Vor dem Einsatz
Klassifizierung (Vorgehensmodelle) : Lineare Modelle
□ Definieren zeitlich (relativ streng) aufeinander folgende Phasen
=> sequentieller Durchlauf
□ Das Ergebnis jeder Phase sind eingangs definierte Artefakte
□ Diese sind gleichzeitig Genehmigungspunkt und fungieren als Meilenstein im Projekt
□ Anschließende Phase darf nur gestartet werden, wenn die zuvor definierten Phasenziele erreicht wurden
□ Rücksprünge in bereits abgeschlossene Phasen sind nur an zuvor definierten Zeitpunkten zulässig
□ Vorteile:
- einfache und klare Planung, Organisation und Überwachung
- Komplexität größerer Projekte gut beherrschbar
□ Nachteile
- PlanungsPlanungs-und Entwicklungsfehler werden erst spät erkannt
- Hohes Projektrisiko am Ende
- Berücksichtigung von Anforderungsänderungen schwierig und kostenintensiv
Klassifizierung (Vorgehensmodelle) : Iterative Modelle
□ Der Entwicklungsprozess besteht aus einer Folge von Zyklen (Iterationen Iterationen)
• Inkrementell
- Anforderungsanalyse und Entwurf nur zu Beginn der Entwicklung
- Zerlegung in sinnvolle, selbstständig entwickelbare Teile (Inkremente)
- Entwicklung der Inkremente parallel oder nacheinander bis zum Gesamtprodukt
• Evolutionär
- Anforderungsanalyse und Entwurf in jeder Iteration
- Prototyp (Kernfunktionalität vs. risikobehaftet) wird evolutionär weiterentwickelt
□ Am Ende jedes Zyklus steht eine neue (ausführbare) Version des SW SW-Produktes, welche die vorherige Version verbessert und erweitert
□ Frühzeitige lauffähiges Teilsystem
=> Abschätzung von Entwicklungsrisiken
=> Frühzeitige Rückäußerungen durch Kunden/Anwender
□ Neue/geänderte Kundenanforderungen wahrscheinlich
□ Festpreisangebote schwierig
□ Zeitige Festlegung der Systemarchitektur
Klassifizierung (Vorgehensmodelle) : Agile Modelle
□ Weiterentwicklung der evolutionären Vorgehensweise mit (sehr) kleinen Inkrementen und kurzen Zyklen
□ Reaktion auf sich schnell ändernde Bedingungen
□ Weniger formalisiert
□ Vorteile (vgl. Schönberger, Aichele: App4U, Mehrwerte durch Apps im B2B und B2C, 2014)
- Gute Einsetzbarkeit bei unklaren Zielen und sich ändernden Anforderungen.
- Hohe Flexibilität und verringerte Komplexität der Projektverwaltung.
- Erhöhte Transparenz auf den Projektstand und mögliche Risiken.
□ Nachteile (vgl. Schönberger, Aichele: App4U, Mehrwerte durch Apps im B2B und B2C, 2014 2014)
- Eigenverantwortlichkeit des Projektteams kann zu Schwierigkeiten führen.
- Erhöhter KommunikationsKommunikations-und Abstimmungsaufwand.
- Häufig fehlende Dokumentation der Ergebnisse.
■ Mischformen
Klassifizierung (Vorgehensmodelle) : Code and Fix
■ SHIT-Methode (Software vom Hirn ins Terminal)
■ Schritte
Programmieren -> Software nutzen und Fehler finden
Software nutzen und Fehler finden -> Programmieren
■ Vorgehen aus der Anfangszeit der Softwareentwicklung und für kleine (Ein Ein-Mann -)Projekte
- keine Analyse, kein Entwurf, keine Dokumentation
■ Nachteile
□ Nachträgliche Anforderungen und/oder zu behebende Fehler bauen u.U. das gesamte Programm um
=> wird jedes Mal teurer
□ Code kann nur vom Programmierer selber gewartet werden
□ => sinnvoll evtl. dann, wenn Programmierer = Nutzer
Klassifizierung (Vorgehensmodelle): Lineare Modelle»_space; Wasserfallmodell
https://ibb.co/vXPGbjJ
■ erstmalig vorgestellt : 1970 von Dr. W. Royce
Weiterentwicklung durch Barry Boehm
■ Streng sequentiell
■ Änderungen von Anforderungen können nicht berücksichtigt werden
■ Sehr spät lauffähige Version
■ Erst danach wird getestet
-> hohes Risiko bzgl. Kosten für Fehlerbeseitigung
Klassifizierung (Vorgehensmodelle): Lineare Modelle»_space; Lineare Modelle»_space; Lineare Modelle»_space; V
Modell XT
■ Integration der Qualitätssicherung im Modell:
Tests werden während jeder Phase entworfen und durchgeführt.
□Verifikation: Übereinstimmung zwischen einem Software Produkt und seinerSpezifikation (Wird ein korrektes Produkt entwickelt?)
□ Validation : Eignung und Wert eines Produktes bezogen auf seinenEinsatzzweck (Wird das richtige Produkt entwickelt?)
Klassifizierung (Vorgehensmodelle): Lineare Modelle»_space; Lineare Modelle»_space; V Modell
■ Weiterentwicklung durch V Modell XT
“Das V Modell XT ist ein Vorgehensmodell für die Durchführung von IT Projekten, insbesondere zur Entwicklung von Softwaresystemen. Es
unterstützt die Arbeit von Projekten, indem es Ergebnisse und Abläufe vorgibt, so dass zu keinem Zeitpunkt unnötige Arbeiten und möglichst auch
keine Leerlaufzeiten entstehen. Zusätzlich regelt das V Modell XT die Kommunikation zwischen Auftraggeber und Auftragnehmern, um typische Quellen für Missverständnisse zwischen den Beteiligten auszuschließen
… Der Zusatz “XT” steht dabei für “ eXtreme Tailoring “ und unterstreicht die flexible Anpassbarkeit an spezifische Projektumfelder”
Quelle: http://www.v modell xt.de/
□ Verbindliches Modell für Projekte des Bundes
□ sehr komplex mit hohem Management und Dokumentationsaufwand
□ geeignet für große , komplexe Systeme
□ nicht zwingend linear, sondern anpassbar
Klassifizierung (Vorgehensmodelle): Lineare Modelle»_space; Iterativ/ Inkrementelle Modelle
Beispiel: Anwendung des Wasserfallmodells für ein iterativ/inkrementelles Vorgehen
https://ibb.co/mSTYLRZ
Klassifizierung (Vorgehensmodelle): Lineare Modelle»_space; Iterativ/ Inkrementelle Modelle
■ Rational Unified Software Development Prozess (RUP)
□ 1999 durch Ivar Jacobsen, Fa. Rational
□ Lizenziert
□ Phasen
•Inception ( Projekteinstieg , Produktvision
•Elaboration ( Risikoanalyse , Use Cases, Systemarchitektur
•Construktion Iterationen mit Detailanforderungsanalyse , Detaildesign , Codierung ,
Modul –)Test, Integration)
•Transition ( Qualitätsprüfung , Übergabe , Schulungen)
https://ibb.co/R6XsFs1
Agile Softwareentwicklung: Merkmale
Kurze Zyklen , in denen sich Planungs-und Entwicklungsschritte abwechseln
https://ibb.co/n6XFJMN
Agile Softwareentwicklung: Merkmale
□ Wenige Regeln
□ hoher Grad an Kommunikation
□ selbstorganisierende Teams
□ kleinere Teams ( bis 10 PersonenPersonen)
□ räumlicheräumlicheNähe
□ früher SystemeinsatzSystemeinsatz, kurze Releasezyklen
□ Transparenz
■ Methoden □ Paarprogrammierung (pair □ Testgetriebene Entwicklung □ permanentes Refactoring □ schnelle Codereviews □ … BEISPIELE
X Paarprogrammierung (pair programming) X Testgetriebene Entwicklung X permanentes Refractoring X schnelle Codereviews X ...