Software Engineering Modelle

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. 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. \bgroup\color{green}\ensuremath{\Rightarrow}\egroup Sehr nützlicher Ansatz auch für kleine Projekte und Teams ! (Nightly builds)

noch viele weitere Varianten, Alternativen ...


Wasserfall Modell



Image wasserfall               Image Wasserfall




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:

Änderungen später sind sehr schwierig, genauso Wiederverwendung und Erweiterung.

Software-Entwicklung \bgroup\color{blue}$\ne$\egroup Brückenbau :


UML Modell

Einerseits:


Image umlcycl



Iterativ, zyklisches Durchlaufen !


UML Modell cont.
und andererseits:
Objektorientiertes Programmieren


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