Kurs:Wirtschaftsinformatik SS09/SE1/Lernskript/Einleitung

Aus Wikiversity

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