Kategorie

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Z 0      

softwaretechnik

sa sb sc sd se sf sg sh si sj sk sl sm
sn so sp sq sr ss st su sv sw sx sy sz

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."
Software-Engineering umfasst eine Vielzahl von Teilgebieten, die in ihrer Gesamtheit den gesamten Softwareentwicklungsprozess, von der Planung bis zum Testenen und dem "Rollout", begleiten.

Table of contents
1 Teilgebiete der Softwaretechnik
2 Vorgehensmodelle des Softwareentwicklungsprozesses
3 Kritik
4 Siehe auch
5 Weblinks

Teilgebiete der Softwaretechnik

Planungsphase
  • Projektmanagement
  • Lastenheft (Anforderungsbeschreibung)
  • Pflichtenheft (Mit technischen Ansätzen verfeinertes Lastenheft)
  • Aufwandsabschätzung mittels "Functionpoints" oder anderer Methode
Analysephase
  • Datenanalyse
  • Prozessanalyse
  • Systemanalyse

  • Strukturierte Analyse
  • Objektorientierte Analyse (OOA)
Entwurfsphase
  • Objektorientierter Entwurf (OOD)
  • UML-Modellierung
Implementierungsphase
  • Strukturierte Programmierung
  • Objektorientierte Programmierung (OOP)
Testphase
  • Code-Review
  • Unit-Tests
  • Lasttests
Qualitätsmanagement
  • Softwareergonomie
  • Softwaremetrie (Messung von Softwareeigenschaften)
Dokumentation
  • Systemdokumentation
  • Bedienungsanleitung
  • Geschäftsprozesse

Das Qualitätsmanagement begleitet parallel den gesamten Entwicklungsprozess.

Siehe auch: Wasserfallmodell

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.

Weitere Modelle neben den schon genannten zwei sind:

  • V-Modell
  • Rational Unified Process
  • Extreme Programming
  • Top-Dodell wird haeufig als Spiralmodell bezeichnetwn- und Bottom-Up-Design
  • Chaosmodell
  • (Rapid) Prototyping
  • Evolutionäres Prototyping
  • Iterative und Inkrementelle Entwicklung / Spiralmodell

Nicht alle diese Modelle umfassen den vollständigen Entwicklungszyklus!

Es existieren verschieden Bewertungsverfahren für den Softwareprozess, u.a. das Capability Maturity Model oder Spice

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.

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.

Siehe auch

Softwareentwicklung, Entwurfsmuster, Refactoring, Softwarearchitektur

Weblinks

  • Bundesministerium für Bildung und Forschung (BMBF) gefördertes Portal.
  • Fachgruppe Softwaretechnik der Gesellschaft für Informatik
  • http://danae.uni-muenster.de/lehre/kuchen/WS02/SE1/SE1Qk12.ps - Vorlesungsskript
  • http://www.fh-heilbronn.de/fhhn/fhhn.Webserver?Adressat=0&Studiengang=SE - Studiengang an der FH Heilbronn
  • Diplomstudiengang Softwaretechnik der Universität Stuttgart

Impressum

Datenschutzerklärung