Software Engineering

Definition

Software Engineering (SE) als Disziplin der Informatik beschäftigt sich mit dem Einsatz bewährter Techniken, Methoden und Werkzeugen, um die Entwicklung von großen Software Systemen zu unterstützen. Ein fundamentales Element des Software Engineering ist dabei der systematische Gebrauch von geeigneten Ingenieursprinzipien.
"Systematisch" heißt hier, dass grundlegende Ingenieurprinzipien zur Beherrschung von Komplexität eingesetzt werden. "Bewährt" heißt hier, dass Erfahrungen über die Wirksamkeit, Stärken und Schwächen der verwendeten Ansätze auf Basis zielgerichteter empirischer Studien als systematisch aufbereitete, nachvollziehbare Erfahrungen vorliegen. Vorbild sind Vorgehensweisen aus den klassischen Ingenieurwissenschaften wie dem Maschinenbau, der Elektrotechnik oder dem Bauwesen.

Strukturierung und Inhalte

In der SWEBOK-Initiative (Software Engineering Body of Knowledge) des IEEE sind die verschiedenen Teilaspekte des Software Engineering strukturiert worden und werden gebündelt dargestellt (s. www.swebok.org )
Die wichtigsten Hauptkategorien sind demnach:

  • Software Requirements (Software-Anforderungen)
  • Software Design (Software-Entwurf
  • Software Construction (Software-Implementierung)
  • Software Testing (Software-Testen)
  • Software Maintenance (Software-Wartung)
  • Software Configuration Management (Software-Konfigurationsmanagement)
  • Software Engineering Process (Software-Entwicklungsprozess)
  • Software Engineering Tools and Methods (Software-Engineering Werkzeuge und Methoden)
  • Software Quality (Software-Qualität)

Dem Management von Software Projekten widmet sich eine eigene Initiative des PMBOK (www.pmi.org)

Einen umfassenden Überblick zum Software-Engineering gibt der Artikel Manfred Broy, Dieter Rombach. Software Engineering - Wurzeln, Stand und Perspektiven. Informatik-Spektrum, Dezember 2002. http://link.springer.de/link/service/journals/00287/bibs/2025006/20250438.htm

Herausforderungen des Software-Engineering

Aktuelle Herausforderungen des Software-Engineering gibt es bei der kosteneffektiven Beherrschung immer funktionsreicherer, vernetzter Systeme, bei Beibehaltung definierter Qualitätskriterien:

Informationssysteme
· Beherrschung von Software Komplexität
· Anpassbarkeit/Änderbarkeit von Systemen
· Angriffssicherheit (Security)

Eingebettete Systeme
· Erreichen hoher Zuverlässigkeit (Qualitätssicherung/Test)
· Variantenmanagement
· Vermeiden/Schutz vor Fehlverhalten (Safety)

Themenbezogene Recherche

Detaillierte Erläuterungen und Erfahrungen zu spezifischen Software-Engineering-Technologien können Sie in der Datenbank des Portals software-kompetenz.de recherchieren. Neben einer Wissensdatenbank und einem umfangreichen Glossar findet sich dort u.a. auch ein Veranstaltungskalender.

    

Grundlegende Literatur zu Software-Engineering

  • P. Jalote: "An Integrated Approach to Software Engineering", 2nd Edition, Springer-Verlag, 1997.
  • C. Ghezzi, et al.: "Fundamentals of Software Engineering", Prentice-Hall 1991.
  • I. Sommerville: "Software Engineering", 5th Edition, Addison Wesley, 1996.


Redakteur für die Themenseite Software Engineering:

Ralf Kalmar
Fraunhofer Institut für Experimentelles Software Engineering
Sauerwiesen 6
67661 Kaiserslautern
GERMANY

Kontakt: Ralf Kalmar