Softwaretechnik
Die Softwaretechnik (auch Softwaredesign, Softwareentwurf, englisch software engineering) als Teilgebiet der Informatik beschäftigt sich mit der standardisierten ingenieurmäßigen Herstellung von Software und den damit verbundenen Prozessen.Es gibt eine Vielzahl von Definitionen für den Begriff Software-Engineering, hier sei die aus Helmut Balzert: "Lehrbuch der Software-Technik" (Band 1, Spektrum Akademischer Verlag, ISBN 3-8274-0480-0) zitiert:
- Software-Engineering ist "die zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Herstellung und Anwendung von umfangreichen Software-Systemen."
Table of contents |
2 Vorgehensmodelle des Softwareentwicklungsprozesses 3 Kritik 4 Siehe auch 5 Weblinks |
Teilgebiete der Softwaretechnik
Planungsphase
|
Qualitätsmanagement
|
Das Qualitätsmanagement begleitet parallel den gesamten Entwicklungsprozess.
Siehe auch: Wasserfallmodell
Weitere Modelle neben den schon genannten zwei sind:
Es existieren verschieden Bewertungsverfahren für den Softwareprozess, u.a. das Capability Maturity Model oder Spice
Kritiker argumentieren, dass besonders die heftig diskutierten Vorgehensmodelle (Wasserfallmodell, V-Modell etc.) und Modellierungssprachen (UML) in der Softwaretechnik-Wissenschaft den behelfsmäßigen, unterstützenden ad-hoc-Charakter verdecken und den Entwicklungsprozess unnötig bürokratisieren.
Diese Methoden hemmen, so die Kritiker, dadurch Kreativität und Problemlösungskapazität des Entwicklers.
Struktogramme und ähnliche Werkzeuge werden in der Praxis nur selten verwendet. Wenn, dann für Ausschnitte aus dem Problem aber nicht für eine Modellierung des gesamten Projektes.
In dem Bereich hat sich jedoch UML als praxistauglicher erwiesen und wird von Entwicklern häufig verwendet.
Es ist umstritten, ob die Softwarekrise durch Softwaretechnik oder vielmehr durch robustere, strukturiertere Programmiersprachen und Entwicklungswerkzeuge gelöst werden kann.
Vorgehensmodelle des Softwareentwicklungsprozesses
Die einzelnen Phasen der Softwareentwicklung sind niemals getrennt voneinander zu betrachten und stellen idealisierte Einzelmodule dar. In der Realität finden sich dynamische Abfolgen, Vorgehensmodelle (engl. ), die die einzelnen Phasen - u.U. mit geringen Modifikationen - einmal (z.B. Wasserfallmodell) oder meistens mehrmals durchlaufen (z.B. Spiralmodell). Bei mehrmaligen Durchläufen erfolgt eine iterative Verfeinerung der einzelnen Softwarekomponenten. Um die best practice oder 'optimalen' Vorgehensmodelle werden teilweise Glaubenskriege ausgefochten. Zweifellos verhält es sich so, dass je statischer und eindimensionaler die Betrachtungsweise, desto weniger hat sie mit der Praxis der Programming zu tun.
Nicht alle diese Modelle umfassen den vollständigen Entwicklungszyklus!Kritik
Es ist umstritten, ob der Entstehungsprozess von Software so gut verstanden wird, dass eine "ingenieurmäßige Herstellung" möglich ist: Kritiker argumentieren, dass Software nichts anderes sei als "ausführbares Wissen". Wissen jedoch lässt sich nicht ingenieursmäßig herstellen (wie sich etwa eine Brücke oder ein Hochhaus herstellen lässt), sondern wird in einem kreativen Prozess gefunden. Eine Richtung der Softwaretechnik (Extreme Programming) beschäftigt sich daher mit sehr flexiblen Methoden, die die Kreativität des einzelnen Entwicklers betonen und Verwaltungsaspekte in den Hintergrund treten lassen.Siehe auch
Softwareentwicklung, Entwurfsmuster, Refactoring, Softwarearchitektur