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
Bearbeiten60er 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 ?
BearbeitenKonstruktion von großen Programm – Systemen
BearbeitenKomplexitätsbewältigung
BearbeitenSoftware wird immer weiter entwickelt (Wartung, Erweiterung)
BearbeitenKommunikation / Kooperation
BearbeitenSoftware muss Benutzer unterstützen
BearbeitenFähigkeiten eines Software Engineers
BearbeitenProgrammiersprachen
BearbeitenProgrammierer ≠ Software Engineer
BearbeitenKommunikation auf unterschiedlichen Abstraktionsebenen (Mitarbeiter, Kunden)
BearbeitenErstellung von Modellen
BearbeitenVerwenden von Methoden (Prinzipien)
BearbeitenArbeitsplanung und Koordination
BearbeitenPhä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
BearbeitenPhä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
BearbeitenRolle:
- Rolle beschreibt Menge von Aufgaben und Befugnissen
- Kann von einer oder mehr Personen ausgeübt werden
- Eine Person kann mehrere Rollen ausüben