Definierte Softwareentwicklungsprozesse
Um die Softwareentwicklung managen (Zeit/Termin/Kosten) und die Qualität garantieren
zu können, braucht man Vorgehensmodelle für verschiedene Aufgaben.
Traditionelle Methoden/Softwareentwicklungsprozesse
- V-Modell
- Staatliche Projekte werden in Deutschland nach dem V-Modell abgewickelt
- CMMI Capability Maturity Model Integration der Software Engineering Institute der Carnegie Mellon University
- beschreibt den Reifegrad von Organisationen
Kritik
- Man kann von diesen Prozessen viel lernen.
- Es werden viele Dokumente produziert, die oft nicht gelesen werden
- Das Vorbild sind die anderen Ingenieurwissenschaften. Diese haben eine Natur gegenüber, die Gesetzmässigkeiten folgt, die sich nicht ändern.
Je nach Anwendungsgebiet und Ansprechspartner und Machtverhätnissen und fortschreitenden Erkenntnissen können sich aber die Anforderungen ändern. Hier änelt Softwareentwicklung dann eher einer Designwissenschaft (vgl. Ingo Schulz-Schaeffer: "Software-Entwicklung zwischen Ingenieur- und Designwissenschaft" 1996 ). Daher sind die folgenden Agilen Methoden entwickelt worden.
Allerdings darf "Agilität" nicht als Abwesenheit methodischen Vorgehens mißbraucht werden!
Agile Methoden
- Agiles Manifest
-
- fast religiöses Zielbekenntnis zum agilen Vorgehen:
- Individuen/Personen und Kommunikation zwischen Personen ist wichtiger wie Prozesse und Werkzeuge
- Funktionierende, gut arbeitende Software ist wichtiger als umfassende Dokumentation
- Zusammenarbeit mit den Kunden ist wichtiger wie die Vertragsverhandlungen
- Das Eingehen auf Änderungen ist wichtiger wie das Verfolgen eines (veralteten) Plans
- Wikipedia
Metamodelle
- SPEM Software and Systems Process Engieneering Metamodell Specification der OMG
- ist ein Metamodell bzw. ein UML-Profile um Entwicklungsporzesse zu beschreeiben
Werkzeuge/Tools
sind Spezialfälle von Prozessmanagementsystemen