Vielfalt von Methoden im Einsatz, kein bestimmtes Verfahren konnte sich allgemein durchsetzen.
- Code&Fix
- Einfach drauflos, nimm den Stier bei den Hörnern,
Trial and Error.
Nicht wirklich ein Modell, aber de-facto Standard in vielen Bereichen.
- Vorteil: Sehr flexible, schnelle Entwicklung
- Nachteil: Schwer zu pflegen und weiterzuentwickeln über längere Perioden
Ok, für kleine, überschaubare Projekte (sowohl Code-Umfang (1 kloc) als auch
beteiligte Personen (1-3) als auch Lebensdauer (Monate-Jahr)
- Wasserfall Modell
- lineare Design - Implementierung Sequenz
- RUP
- Rational Unified Process, Design mit UML, iterativ,
d.h. Zyklen von Design - Implementierung.
``Schwergewichtiges Modell'', viel Aufwand und Erfahrung nötig, lange Design-Phasen
- Agile Methoden
- XP, RAD, Scrum, ... Konträrer Ansatz, kurze Zyklen, schnelle Implementierung,
Änderungen nicht Ausnahme sondern Regel, inkrementelles Umsetzen der Spezifikationen nach
Prioritäten, lauffähige Zwischenprodukte.
Erst detaillierte Test-suite definieren, dann Erstellen des eigentlichen Programms.
Test-Suite integraler Bestandteil der Software, wird bei jeder Änderung ausgeführt.
Sehr nützlicher Ansatz auch für kleine Projekte und Teams !
(Nightly builds)
- noch viele weitere Varianten, Alternativen ...
-
Wasserfall Modell
Einzelner Durchlauf !
Wasserfall Modell entwickelt von US Militär in den 60ern für grosse
Programmierprojekte, analog zu Vorgehen in klassischen Ingenieur-Disziplinen.
Entscheidende Voraussetzungen:
- Detailliertes Verständnis aller Probleme im Vorhinein
- Stabile Umgebung, keine neuen Anforderungen während der Nutzung
Änderungen
später sind sehr schwierig, genauso
Wiederverwendung und Erweiterung.
Software-Entwicklung
Brückenbau :
- Nutzeranforderungen ändern sich
- Umgebung, Tools, Services ändern sich
- ...
UML Modell
Einerseits:
Iterativ, zyklisches Durchlaufen !
UML Modell cont.
und andererseits:
Objektorientiertes Programmieren
- Objekte als
Black Boxes:
Komplexität innen versteckt,
einfache Bedienung von aussen.
-
interface zur Kommunikation
-
Zustand: Objekt enthält Daten
-
Verhalten: Methoden und Algorithmen
- Höhere Stufen der Abstraktion
XP - Extreme Programming
Beinhaltet 2 wesentliche Konzepte
Zumindest das Einbeziehen von Tests in die Entwicklung lässt sich auch bei kleinen Projekten
ohne weiteres anwenden, erfordert allerdings entsprechende Disziplin.
GDuckeck
2019-08-01