Benutzer-Werkzeuge

Webseiten-Werkzeuge


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)