se:nofrills
**Dies ist eine alte Version des Dokuments!**
No-Frills-Software-Engineering
nach {[quellen:Gruhn2008]}
"Software-Engineering ohne Schnickschnack"
soll eine schlanke und wertorientierte Alternative zu herkömmlichen Vorgehensweisen zur Entwicklung von Informationssystemen bieten
ein Fokus liegt auf Umgang mit Unsicherheiten (z.B. Unsicherheiten der Entwickler bzgl. Anforderungen, Unsicherheiten der Anwender bzgl. Funktion der Software etc.)
vergleichbar mit dem Konzept von Billig-Airlines → nur die wichtigsten Elemente der Dienstleistung werden benötigt (bei trotzdem guter Qualität)
Prinzipien
Problemverständnis
Verstehe das ganze Problem in voller Breite
Entwicklern fehlt häufig das Domänenwissen → Fehler aufgrund mangelnden Domänenwissens sind teuer (da sie meist spät erkannt werden)
nur der Blick fürs Ganze erlaubt die sinnvolle Auswahl und korrekte Formulierung der Anforderungen
Identifiziere das Schlüsseldokument
üblicherweise entstehen im Entwicklungsprozess viele verschiedenartige Dokumente, die nicht unbedingt "wertvoll" sind → hier den Überblick zu wahren ist sehr schwierig und zeitaufwendig
für jeden Dokumententyp sollte ein (!) Einstiegsdokument festgelegt werden, das ggfs. auf weitere Dokumente verweist
des Weiteren sollte es einige wenige Kerndokumente geben, die als Einstieg in die Dokumentation dienen und das absolut notwendige Wissen enthalten müssen
Design for Change
Software wird allgemein als leicht änderbar empfunden, da sie (im Gegensatz zu materiellen Gütern) nicht greifbar ist
Zwei (schlechte) Prinzipien zum Umgang mit Änderbarkeit
Änderungen werden durch langwierige Anforderungsdefinitionen quasi ausgeschlossen
man erstellt generische Software, die "alles" kann
Änderbarkeit, Modularisierung, Abstraktion wird vornehmlich dort angewendet, wo sie in Zukunft voraussichtlich benötigt wird
die restlichen Bereiche werden "normal" entwickelt und liefern "nur" die Funktionalität laut den Anforderungen
Wähle das richtige Abstraktionsniveau
zu Beginn der Entwicklung sind Detailfragen (z.B. Datentyp und Länge der Kundenadresse) nicht wichtig, es geht darum, beim Entwickler das Verständnis für die Domäne zu schaffen (z.B. Unterschied Antrag, Vertrag, Angebot einer Versicherung)
während der Entwicklung sind natürlich Detailfragen elementar
alle Dokumente (z.B. Klassendiagramme) müssen im Hinblick auf den Empfänger (z.B. den Fachbereich) erstellt werden und das entsprechende Abstraktionsniveau einhalten
Trenne Anforderungen und Design
die Entwickler sollen nicht einfach die Lösungen der Fachbereiche implementieren, sondern vielmehr die Probleme verstehen und Lösungen anbieten
die Hinterfragung der Aspekte hinsichtlich Lösung (Design) oder Problem (Anforderung) führt zu einem tieferen Verständnisses des Problems und somit zu einer besseren Abwägung der verschiedenen möglichen Lösungen
se/nofrills.1230664962.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)