GI-Logo Fachgruppe
Softwaretechnik


Was ist Softwaretechnik?

Unter Softwaretechnik (engl. Software Engineering) versteht man allgemein die (Ingenieur-) Wissenschaft, die die kosteneffiziente Entwicklung von qualitativ hochwertiger Software behandelt.

Dies ist allerdings nur eine von vielen Definitionen. Bekannt wurde der Begriff software engineering 1968 durch zwei NATO-Konferenzen. Es sind seitdem viele Varianten des Begriffs vorgeschlagen worden, in denen die technologischen Grundlagen, der Anwendungsbezug, die Wirtschaftlichkeit, die Qualität und weitere Aspekte betont werden. Bezüglich der Spannbreite der enthaltenen Themen kann man ganz grob zwei Hauptvarianten unterscheiden:

  • Die breite Definition ordnet der Softwaretechnik alle Themengebiete bzw. Technologien zu, die für die Funktionsweise heute übliche Softwaresysteme relevant sind. Da hierbei fast immer Betriebssysteme, Netzwerke, Datenbanken usw. eine Rolle spielen, ufert das Themengebiet hier völlig aus und ist mehr oder weniger identisch mit der Praktischen Informatik.
  • Die fokussierte Definition ordnet der Softwaretechnik in erster Linie Themen wie die Analyse von Anforderungen, die Gestaltung, Programmierung und Architektur von Programmen, Entwicklungsprozesse und Qualitätssicherung zu. Nicht als Teil der Softwaretechnik oder nur als Randbereich werden Technologien für Betriebssysteme, Netzwerke, Datenbanksysteme und andere wichtige Komponenten von Softwaresystemen verstanden; diese Technologien haben zu eigenen Fachgebieten der Praktischen Informatik geführt. Eine saubere Abgrenzung zu diesen Nachbargebieten ist aber oft schwierig.
Die breite Definition liegt u.a. Begriffen wie `Software-Ingenieur' oder Studiengängen mit der Bezeichnung `Softwaretechnik' zugrunde. Mehr oder weniger fokussierte Definitionen werden hingegen bei den meisten Softwaretechnik-Lehrbüchern, Softwaretechnik-Lehrstühlen und in der Fachgruppe Softwaretechnik unterstellt.

Das SWEBOK

Eine sehr detaillierte Beschreibung der Themengebiete der Softwaretechnik liegt im IEEE Guide to the Software Engineering Body of Knowledge (SWEBOK) vor [http://www.swebok.org/]. Dieses Buch ist Ergebnis eines mehrjährigen Prozesses mit internationaler Beteiligung, in dem versucht wurde, die Themengebiete zu beschreiben, in denen allgemein anerkanntes und als wesentlich erachtetes Wissen über softwaretechnische Fragestellungen vorliegt und in denen ein typischer Software-Ingenieur nach einem Bachelor-Studium und ca. `4 Jahren Erfahrung' über Kompentenzen verfügen sollte. Es werden folgende Hauptgebiete (`knowledge areas'; KAs) unterschieden:
  1. Software Requirements
  2. Software Design
  3. Software Construction
  4. Software Testing
  5. Software Maintenance
  6. Software Configuration Management
  7. Software Engineering Management
  8. Software Engineering Process
  9. Software Engineering Tools And Methods
  10. Software Quality
Zu den Themengebieten werden grob Kompentenzstufen, also Grade, wie qualifiziert die Themen beherrscht werden, angegeben. Ferner werden Überlappungen mit Nachbardisziplinen diskutiert.

Die Themenliste des SWEBOK ist zwar üppig, man kann sie trotzdem noch als fokussiert ansehen. Intentionsgemäß beschreibt das SWEBOK vor allem etablierte, für den Berufsalltag relevante Wissensgebiete; kein Ziel war es, aktuelle Forschungsschwerpunkte darzustellen.

Themengebiet Softwaretechnik im Computing Classification System der ACM

Die Association for Computing Machinery (ACM) unterhält seit sehr langer Zeit das Computing Classification System [ACMCCS], ein Klassifikationssystem, das die komplette Informatik in eine Vielzahl von Teilgebieten untergliedert. Das System ist vor allem mit der Intention gebildet worden, wissenschaftliche Literatur thematisch einordnen zu können.
Die Softwaretechnik bildet in dem Klassifikationssystem den Bereich D.2 Software Engineering, der wie folgt weiter untergliedert ist:
  • D.2.0 Allgemeines (General)
  • D.2.1 Anforderungsanalyse (Requirements/Specifications)
  • D.2.2 Entwurfsmethoden (Design Tools and Techniques)
  • D.2.3 Programmierung (Coding Tools and Techniques)
  • D.2.4 Verifikation (Software/Program Verification)
  • D.2.5 Testen und Fehlerbehebung (Testing and Debugging)
  • D.2.6 Software-Entwicklungsumgebungen (Programming Environments)
  • D.2.7 Software-Distribution und -Wartung (Distribution, Maintenance, and Enhancement)
  • D.2.8 Metriken (Metrics)
  • D.2.9 Management (Management)
  • D.2.10 Entwurf (Design) (wird nicht mehr benutzt; ersetzt durch D.2.2)
  • D.2.11 Software-Architekturen (Software Architectures)
  • D.2.12 Interoperabilität (Interoperability)
  • D.2.13 Wiederverwendung (Reusable Software)
  • D.2.m Verschiedenes (Miscellaneous)

 
Defi.ST
Was ist Softwaretechnik?
  • Definitionen
  • Teilgebiete

    FG-Ziele
    Ziele und Aktivitäten der Fachgruppe

  • Veranstaltungen
  • Arbeitskreise
  • Vorstandswahlen 2017

    Personen
    Personen

  • Leitungsgremium
  • Arbeitskreise
  • Adressen

    Formalia
    Formalia

  • Mitgliedschaft
  • Beitrag

    Kalender
    Kalender

  • Elektronische Verteiler
  • ST-Konferenzen

    ST-Lehre
    Lehre in der Softwaretechnik

  • Studiengänge
  • SEUH
  • Links

    Links
    Links

  • Zeitschriften
  • Standards
  • Werkzeuge
  • Haftung für Links



    Alle Inhalte auf einer Seite


  • URL dieser Seite: http://pi.informatik.uni-siegen.de/gi/fg-st/fg-st.html
    letzte Änderung: 09.02.2018
    Kommentare und Änderungswünsche bitte an U. Kelter