Kurs:Wirtschaftsinformatik SS09/SE1/Lernskript/Einleitung

Der Begriff Software-Engineering: Betrifft die Konstruktion von großen Programm-Systemen mit dem Fokus auf Komplexitätsbewältigung. Die regelmäßige Kooperation von Menschen ist ein weiterer integraler Bestandteil des SE. Einzuordnen ist SE in die praktische und angewand- te Informatik mit starkem Anwendungsbezug.

  • Besonderheiten: Software ist ein immaterielles Gut, allgemein anerkannte und bewährte Abs-

traktionen und Visualisierungen existieren noch nicht (erster Ansatz: UML). Projektkosten be- stehen größtenteils aus Personalkosten, und die Qualität des Personals ist ein entscheidender Erfolgsfaktor.

  • Benötigte Fähigkeiten eines Software Engineers: Kommunikation auf verschiedenen Abstrakti-

onsebenen mit Personen mit unterschiedlichen Zielsetzungen/Vorstellungen, Erstellung und Verwendung von Modellen und Methoden, Arbeitsplanung und -koordination

  • Software bestimmt einen Großteil der Entwicklungskosten von Fahrzeugen und Steuergeräten,

90% aller Innovationen sind getrieben von Elektronik/Software Ø Innovationstreiber.

Entwicklung zum industriellen SE Bearbeiten

60er Jahre: Spezialrechner mit Spezialsoftware 70er Jahre: Mikroelektronik 80er Jahre: Software-Massenmarkt 90er Jahre: Komponenten-Markt, Migration 2000++: Individuell anpassbare Massenprodukte basierend auf einer einheitlichen Plattform

Was ist Software Engineering ? Bearbeiten

Konstruktion von großen Programm – Systemen Bearbeiten

Komplexitätsbewältigung Bearbeiten

Software wird immer weiter entwickelt (Wartung, Erweiterung) Bearbeiten

Kommunikation / Kooperation Bearbeiten

Software muss Benutzer unterstützen Bearbeiten

Fähigkeiten eines Software Engineers Bearbeiten

Programmiersprachen Bearbeiten

Programmierer ≠ Software Engineer Bearbeiten

Kommunikation auf unterschiedlichen Abstraktionsebenen (Mitarbeiter, Kunden) Bearbeiten

Erstellung von Modellen Bearbeiten

Verwenden von Methoden (Prinzipien) Bearbeiten

Arbeitsplanung und Koordination Bearbeiten

Phänomene beim Software Engineering Bearbeiten

  • Phänomen 1: Qualität, Termin und Budget nicht gleichzeitig realisierbar, deshalb Konzentration

auf 2 Kriterien

  • Phänomen 2: Je größer das Projekt, desto größer die Abbrecherquote
  • Phänomen 3: gestiegene SW-Kosten, SW-Entwicklung und Instandhaltung machen heutzuta-

ge einen Großteil der Kosten gegenüber Hardware-Kosten aus

  • Gründe für die Phänomene: Viele Missverständnisse, häufig Projekte in neuen Branchen, rela-

tiv neue Wissenschaft (ca. 30 Jahre) Ø aber SE gewinnt immer mehr an Bedeutung

Phänomene Ursachen Konsequenzen Bearbeiten

Phänomene Ursachen Konsequenzen
Kosten- und Terminüberschreitungen geringes Domänewissen (kein Wissen über den Bereich,für den SW produziert wird) Software wird auch in nicht software – sensitiven

Projekten Erfolgsfaktor

Bei Auslieferung: schlechte Qualität Änderungen und Konflikte in Anforderungen
Keine Produktivitätskontrolle Kommunikations- /Koordinationsstörungen
Keine zuverlässige Software – Herstellung im industriellen Maßstab Junge Wissenschaft

Beispiele Bearbeiten

  • Automobilindustrie: häufige Rückrufaktionen
  • Hartz – IV – Software: Verspätung, fehlerhaft, eingeschränkter Funktionsumfang, fehlerhafte Zahlungen, verspätete Zahlungen

Eigenschaften von Software (resultierende Konsequenzen) Bearbeiten

  • immaterielles Gut
    • beliebig änderbar
    • Konstruktionsfehler schwer erkennbar
  • Kosten durch Personalkosten bestimmt

Unterschiede zu anderen Ingenieursdisziplinen Bearbeiten

  • Allgemein bewährte Abstraktionen existieren noch nicht (UML = Ansatz)
  • Qualität des Personals ist entscheidender Erfolgsfaktor
  • Multipersonaler Entwicklungsprozess (Kommunikation wichtig)

Mooresches Gesetz Bearbeiten

  • Komplexität innerhalb integrierter Schaltkreise verdoppelt sich alle 2 Jahre
    • Beispiel: Automobilindustrie (BMW)
    • Wachstum: exponentiell

Rollenbasierte Softwareentwicklung Bearbeiten

Rolle:

  • Rolle beschreibt Menge von Aufgaben und Befugnissen
  • Kann von einer oder mehr Personen ausgeübt werden
  • Eine Person kann mehrere Rollen ausüben