Der Begriff Software Engineering als Ingenieurdisziplin

Der Begriff Software Engineering soll verdeutlichen, dass die Software-Entwicklung als eine Ingenieurdisziplin zu sehen ist. Dabei haftet man sich daran, dass Software Engineering vorhandenes Wissen und vorhandene Dokumentation zur Konstruktion von Programmen, deren Betrieb und deren Wartung effizient einsetzt.

Mann könnte also auch sagen, dass Software Engineering durch geschickten Einsatz von mathematischen Methoden und Wissen die Software eigentlich erst so richtig nützlich macht. Hierbei ist Nutzen jedoch vom konkreten Anwendungsfall aus zu verstehen.

Software Engineering als Ingenieurdisziplin

Betrachten wir zuerst die verschiedenen Evolutionsphasen einer Ingenieurdisziplin:

  • Naturphase: Wenn eine Innovation ”so wie immer” durchgeführt wird. Die Entwicklung läuft nach ”lokalem Gebrauch” ab und es wird eigentlich kein Vorwissen eingesetzt
  • Baumeisterphase: Wenn eine Innovation nach heuritischen Ansätzen realisiert wird und diese auf neue Führungskräfte über ein Mester/Lehrling-Verhältnis quasi vererbt werden. ”Das hat schon immer gut funktioniert, deshalb machst du es jetzt auch so.”
  • Architektenphase: Wenn eine Innovation durch Einsatz formaler und funktionaler Anforderungen und eines wissenschaftlich lehrbaren Wissenschatzes realisiert wird.
  • Rehumanisierungsphase: Wenn der Mensch wieder etwas mehr in den Vordergrund gerückt wird. Systembenutzer werden als Menschen betrachtet, was während der Architektenphase vielleicht etwas in Vergessenheit geraten sein könnte.

Zusammenfassend kann man also sagen, dass ein Ingenieur:

  • Dinge versteht
  • Dinge plant und vorhersagt
  • Dinge kontrolliert und prüft
  • Dinge kontinuierlich verbessert und auch Fehler begehen kann

Folglich verhält es sich so auch mit Software Engineering. Die Software Entwicklung stellt einen Prozess dar, der verbessert werden kann und geplant sowie auch geprüft werden muss.