Sie sind auf Seite 1von 43

Softwareengineering

Einführung Wirtschaftsinformatik
AGENDA SOFTWAREENGINEERING

• Rückblick Projektarbeit
• Risiken der Projektarbeit
• Softwareengineering
• Prinzipien, Methoden, Hilfsmittel
• Qualitätsmerkmale von Software

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 6


MURPHY‘S LAW:

1. Nichts ist so einfach, wie es aussieht.


Things are more complex then they seem to be.
2. Alles dauert länger als geschätzt.
Things take longer than expected.
3. Alles kostet mehr als veranschlagt.
Things cost more than expected.
4. Was schiefgehen kann, das geht auch schief.
If something can go wrong it will.

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 7


1. NICHTS IST SO EINFACH, WIE ES AUSSIEHT.

• Komplexität der Aufgabenstellung


• Optimismus in der Planungsphase
• Problemstellung am Anfang nicht klar
• Einarbeitungsaufwand unterschätzt

• Analyse unvollständig

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 8


2. ALLES DAUERT LÄNGER ALS GESCHÄTZT.

• Zeitverschiebung im Projekt
– Arbeitsblöcke erweitert
– Mitarbeiter stehen nicht zur Verfügung
– Verzögerungen durch Kundenbesuche, Abstimmung,
Entscheidung
– Interne Streitigkeiten
– Verzögerte Entscheidungen
– Fehlende Ressourcen, fehlende Informationen

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 9


3. ALLES KOSTET MEHR ALS VERANSCHLAGT

• Kostenüberschreitung
• Höhere Personalkosten
• Unerwartete Sachkosten, höhere Reisekosten
• Unerfahrenheit bei der Kostenschätzung
• Druck durch vorgegebenes Budget

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 10


4. WAS SCHIEF GEHEN KANN, DAS GEHT AUCH SCHIEF

• Qualitätsmangel
• Fehler treten erst spät auf:
– Je später, desto teurer.
• Unzureichende Qualitätssicherung (QS)
• Fehlende Projektkontrolle
• Unerfahrenheit
• Fehlende Systematik

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 11


RISIKEN DER PROJEKTARBEIT (STARTPHASE)

• Startphase
– Projektteam ist neu zusammengestellt, die
Mitarbeiter kennen sich noch nicht
– Projektteam hat keine Erfahrung mit Branche
und Aufgabenfeld
– Projektteam hat keine Erfahrung mit der
Programmiersprache, Betriebssystem,
Datenbanksystem etc.
– Qualifikation und Erfahrung der Projektleitung
• Laufzeit
• Technik
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 12
RISIKEN DER PROJEKTARBEIT (LAUFZEIT)

• Start
• Laufzeit
– Projekt ist Gegenstand interner Streitigkeiten
– Notwendige Entscheidungen werden nur zögernd und
halbherzig getroffen
– Lange Projektlaufzeit: Die Motivation lässt nach, das
Projekt wird überflüssig
– Bereits existierende Programme müssen modifiziert
werden
– Die Kontinuität der personellen Besetzung ist nicht
gewährleistet (Zeitverschiebung)
• Technik
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 13
RISIKEN DER PROJEKTARBEIT (TECHNIK)

• Start
• Laufzeit
• Technik
– Schnittstellen werden nicht eingehalten
– Rechnerzeit muss mit anderen Projekten geteilt
werden
– Hardwareintegration kommt zu spät,
d.h. es müssen zwischenzeitlich Umweltsimulationen
durchgeführt werden

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 14


HÄUFIGE FEHLER IN DER PROJEKTABWICKLUNG

• Projektleiter stimmt Einarbeitung aus Projektbudget zu


– Hierfür sollte ein gesondertes Budget zur Verfügung stehen
(Auftraggeber oder auch eigenes Unternehmen)

• Zusätzliche Forderungen des Auftraggebers im bestehenden


Projektrahmen mit erledigt.
– Grundsätzlich sollten alle Arbeiten beschrieben sein, Zusätzliches
kostet extra

• Entscheidungen werden
nicht herbeigeführt und abgesichert.
– Welche Farbe darf es denn sein?
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 15
SOFTWAREENGINEERING

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 16


SOFTWARE

• Hardware sind die materiellen Bestandteile des Systems


• Software ist somit, was nicht Hardware ist?
software — Computer programs, procedures, and possibly associated
documentation and data pertaining to the operation of a computer system.
See also: application software; support software; system software
Contrast with: hardware.

IEEE Std 610.12 (1990)

• Software umfasst demnach also Programme, Abläufe, Regeln,


auch Dokumentation und Daten, die mit dem Betrieb eines
Rechnersystems zu tun haben.
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 17
SOFTWAREENGINEERING - DEFINITIONEN

Software Engineering ist die Entdeckung und Anwendung solider


Ingenieurprinzipien mit dem Ziel, auf wirtschaftliche Art Software zu bekommen,
die zuverlässig ist und auf realen Rechnern läuft.
F.L. Bauer

Software Engineering ist die Herstellung und Anwendung einer Software,


wobei mehrere Personen beteiligt sind oder mehrere Versionen entstehen.
D.L. Parnas

Software Engineering ist das systematische, disziplinierte und quantifizierbare


Vorgehen zur Entwicklung, zum Betrieb und zur Wartung von Software, kurz: die
Arbeit an Software nach Ingenieurprinzipien.
---
IEEE Std 610.12 (1990)
Vgl. Ludewig-Lichter, S. 47
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 18
SOFTWAREENGINEERING

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 19


DEFINITION SOFTWAREENGINEERING

Das Aufstellen und Anwenden


fundierter ingenieurmäßiger
– Prinzipien,
– Methoden und
– Hilfsmittel,
um auf ökonomische Weise
Software hoher Qualität zu erstellen.
(nach Pressman)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 21


EIN PRINZIP

…ist ein Grundsatz, nach dem man vorgeht.

Beispiele:
• Modularisierung
• Strukturierung
• Hierarchisierung ---
Schlüssel– Schloss Prinzip

• Information Hiding
– Modulschnittstelle einhalten,
interner Ablauf bleibt verborgen
• Projektbegleitende Dokumentation
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 22
EINE METHODE

… ist eine planmäßige Vorgehensweise


zur Erreichung von festgelegten Zielen.

Beispiele:
• OOA / OOD (Objekt-orientierte Analyse / Design)
• Unified Process (UP) für die Planung und
Steuerung von Entwicklungsprojekten

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 23


VERFAHREN UND HILFSMITTEL

• Ein Verfahren beinhaltet Anweisungen


zum gezielten Einsatz von Methoden.

• Ein Hilfsmittel unterstützt die


Anwendung von Methoden und Verfahren.

Beispiele:
• Formulare, Schablonen, Werkzeuge, ...

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 24


SOFTWARE-ENGINEERING-GEWÖLBE

• Wechselseitige Verknüpfungen und Abhängigkeiten

---
Vgl. Ludewig-Lichter, S. 52

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering 26


SOFTWAREQUALITÄT - NOTWENDIGKEIT

• 1979: erste Venussonde flog am Ziel vorbei, weil im Fortran- Programm ein
Punkt mit einem Komma vertauscht wurde.
– Kosten: mehrere hundert Millionen Dollar

• 1984: Überschwemmung in Frankreich, da Computer die Überlaufgefahr nicht


erkannte und Schleusen öffnete.

• 1985: Die Bank of New York buchte 32 Milliarden Dollar zu viel, weil ein 16-Bit
Zähler überlief.
– Kosten: 5 Millionen Dollar (Zinsverlust)

• 1991: Flugabwehrsystem Patriot verfehlt Scud-Rakete, da notwendiger


Systemneustart nach max. 100 h vergessen wurde.

• 1996: Eine Ariane 5 Rakete verglühte wegen eines Software- Problems im


Trägernavigationssystem (Übernahme aus Ariane4.)
– Kosten: ca. 1 Milliarde Euro
• 2017: Zusammenbruch der Computer von British Airways – am Flughafen
Heathrow (und somit weltweit) lief für 2 Tage nichts mehr
– Schaden: 3-stelliger Millionenbetrag

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering 28


SOFTWAREQUALITÄT

• ist der Nachweis der Erfüllung vereinbarter Anforderungen für


– Funktionalität
– Benutzbarkeit
– Zuverlässigkeit
– Effizienz
– Änderbarkeit/Übertragbarkeit/Portierbarkeit
– Wartbarkeit
• durch Einhaltung / Anwendung vereinbarter Prüfkriterien und
Prüfverfahren
• und der Nachweis der Herstellung in einem vereinbarten
Verfahren.

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering 29


SOFTWARE-QUALITÄTSMERKMALE

1. Funktionalität /Functionality
2. Benutzbarkeit / Usability
3. Zuverlässigkeit / Reliability
4. Effizienz / Performance
5. Wartbarkeit / Supportability
– Änderbarkeit
– Übertragbarkeit/Portierbarkeit

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering


30
FUNKTIONALITÄT

Das Ausmaß, in dem die für den geplanten


Verwendungszweck benötigten Funktionen
vorhanden sind. Kompatibilität zu anderen
eingesetzten Systemen.

• Angemessen (Eignung)
• Richtigkeit
• Interoperabilität
• Ordnungsmäßig
• Sicherheit (der Daten, Security)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 31


BENUTZBARKEIT

• Einfach
• Einheitlich
• Verständlich
• Erlernbar
• Bedienbar
• Attraktiv
• Ordnungsmäßig (Normen, Vorschriften, …)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 32


ZUVERLÄSSIGKEIT

• Reife – geringe Versagenshäufigkeit


• Fehlertoleranz (bei Fehlern im System)
• Robust
• Wiederherstellbar (im Fehlerfall)
• Ordnungsmäßig
(Normen, Vorschriften, … )

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 33


EFFIZIENZ

• Inanspruchnahme der Betriebsmittel


• Zeitverhalten
• Verbrauchsverhalten
• Ordnungsmäßig
(Normen, Vorschriften,…)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 34


SUPPORTABILITY

• Supportability
– Maintainability / Wartungsfreundlichkeit:
Analysierbarkeit, Änderbarkeit, Stabilität,
Testbarkeit
– Portability / Übertragbarkeit:
Anpassbarkeit, Installierbarkeit, Konformität,
Austauschbarkeit

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 35


ÄNDERBARKEIT

Wartbarkeit, Anpassungsfähigkeit gegenüber


veränderten Anforderungen und zusätzlichen
Aufgaben.
Unkomplizierter Einbau von Modifikationen.

• Analysierbar
• Modifizierbar
• Stabilität (nach Änderungen)
• Prüfbar
• Ordnungsmäßig (Normen, Vorschriften)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 36


ÜBERTRAGBARKEIT / PORTIERBARKEIT

• ÜBERTRAGBARKEIT VON EINER UMGEBUNG


(Rechner, Betriebssystem) IN EINE ANDERE.

• Anpassbar (an verschiedene Umgebungen)


– Leicht installierbar
– Koexistenz
– Austauschbar
– Ordnungsmäßig (Normen, Vorschriften)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 37


QUALITÄTSMERKMALE (1/2)

Aufgabe:
Welches Qualitätsmerkmal für Software wurde in den
folgenden Fällen verletzt?

a. Das System benötigt mehr Platz auf der Festplatte, als die
Standardausführung des Rechners zur Verfügung hat.

b. Die Installation kann nur durch den Administrator erfolgen.

c. Bei Speicherung von mehr als 3000 Datensätzen wird die


Datenbasis inkonsistent und muss reorganisiert werden.
27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 38
QUALITÄTSMERKMALE (2/2)

Aufgabe:
Welches Qualitätsmerkmal für Software wurde in den
folgenden Fällen verletzt?

a. Bei zunehmender Datenmenge erhöht sich die Laufzeit


sehr stark.
b. Eine Schnittstelle ist vollständig im Assembler eines
Mikroprozessors implementiert worden.
c. Bei Änderung des Mehrwertsteuersatzes entsteht zwei
Wochen Umstellungsaufwand.

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 39


SOFTWAREAUSWAHL

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering 40


BUY-ENTSCHEIDUNG

KRITERIEN FÜR DIE SOFTWAREAUSWAHL

• Preis-/Leistungsverhältnis
• Verbreitung des Produkts
• Renommierter Hersteller / Anbieter
• Sicherheit (Bonität) des Herstellers / Anbieters
• Produktpolitik des Herstellers
• Support
– Unterstützung bei Einführung und Einsatz eines Systems,
Bsp. Hotline, Einführungslehrgänge, Schulung

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 41


SOFTWAREQUALITÄT - ABHÄNGIGKEITEN

• Konzentration auf ein Ziel benötigt bei


gleichen Rahmenbedingungen
Vernachlässigung mindestens eines
anderen Ziels

• generelle Verbesserung nur


durch Verbesserung der
Rahmenbedingungen
(z.B. der Prozesse)

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 42


QUALITÄTSSICHERUNG DURCH VEREINBARTES VERFAHREN (PROZESS)

• Wer? Rollen sind zu definieren


• Wie? Aktivitäten sind festzulegen
• Wann? Zeitplan ist festzulegen
• Was? Artefakte sind zu beschließen
• Womit? Ressourcen sind bereitzustellen

Vorgehensmodell

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 43


SOFTWARE-QUALITÄTSSICHERUNG

REVIEW
– Inspektion von Projektergebnissen
– ohne sofortige Korrektur
• Persönliches Review
• Schreibtischtest,
• Prüfung mit Checklisten durch Entwickler/Kollegen, …
• Walk-Through
• Durchspielen von Szenarien und Testfällen durch Entwickler und Prüfer
• Inspektion
• Prüfung nach festgelegten Kriterien, Protokoll

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 44


SOFTWARE-TESTS - STUFEN (1/2)

• Test während der Implementierung


– Syntaxfehler
– Falsche Verwendung von externen Bezügen
– einige logische Fehler wie Endlosschleifen

• Komponententest – Unit-Test
– prüft, ob eine Komponente für sich den Anforderungen genügt
– Verwendung von Testdaten, Testprogrammen

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering 45


SOFTWARE-TESTS - STUFEN (2/2)

• Integrationstest
– prüft das Zusammenspiel der Komponenten, soweit diese ausreichend fertig
gestellt sind

• Systemtest
– prüft das Gesamtsystem auf Basis echter Daten

• Belastungstest, Stresstest

• Abnahme
– Prüfung des Entwicklungsergebnisses
durch den Auftraggeber

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering 46


46
FEHLERERKENNUNG IM PHASENMODELL Zeit

Abnahme

Systemtest
Detaillierung
Integrations-
test
Komponenten-
test
Test bei der
Implementierung

Beim Phasenmodell besteht die Gefahr,


dass Fehler erst beim Test auf der gleichen
Abstraktionsebene erkannt werden.

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering


47
FALLSTUDIE ERP-SYSTEM IN DER SOZIALBRANCHE

a. Nennen Sie häufige Ursachen für die


Kostenüberschreitung in DV-Projekten.

b. Warum sind spät auftretende Fehler in


DV-Projekten besonders gefürchtet?

c. Wie kann Softwarequalität sichergestellt


werden?

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20/ 7-Softwareengineering


48
SOFTWARE-QUALITÄTSMERKMALE

Eine Mitarbeiterin klagt über das bisher genutzte Anwendungssystem. Welche


Aufgabe:
Qualitätsmerkmale für Software werden offenbar verletzt? Definieren Sie diese
Merkmale.

a. Nur eine einzige Entwicklerin bzw. ein einziger Entwickler ist in der Lage, an einem
bestimmten Modul Änderungen vorzunehmen.
b. Für die drei von dem Programm unterstützten Betriebssysteme werden drei
unterschiedliche Versionen des Programmcodes gepflegt.
c. Bei einer bestimmten Tastenkombination geht das Programm in den Testmodus und
lässt sich nur noch vom Administrator_in reaktivieren.
d. Wegen ungünstiger Farbdarstellung sind viele Menüeinträge nur mit Mühe zu lesen.
e. Während ein Text ausgedruckt wird, kann das Programm nicht weitergenutzt werden.

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 49


STUFEN DES SOFTWARETESTS

Aufgabe:
Zu welchen Stufen gehören folgende Arbeiten?
In welcher Reihenfolge sind sie auszuführen?

a. Zwei Wochen nach Inbetriebnahme werden noch kleine Fehler entdeckt.


b. Zwei Wochen vor Inbetriebnahme sendet der Auftraggeber anonymisierte
Kundendaten.
c. Der Projektassistent kopiert sie 100 mal in die gleiche Datenbank.
d. Die GUI-Komponente wird mit der DB-Komponente zusammen geführt.
e. Compilermeldung: “Unbekannter Variablenname.“
f. Die nackte Benutzungsoberfläche wird dem Auftraggeber als Prototyp
vorgestellt.

27.11.2020 Jade Hochschule - Angela Moldenhauer - Ewinf20-21/ 7-Softwareengineering 50

Das könnte Ihnen auch gefallen