VORTRAG INFO: SOFTWARE - ENGINEERING
Geschichte:
- 60er Jahre à stürmische Entwicklung à zu viele Programme und sinkende Qualität à SOFTWAREKRISE
- auf nationaler und internationaler Ebene wurden Forschungs- und Ausbildungsprogramme finanziert
- Entstehung von Informatikstudien
- Entwicklung von Methoden zur Bewältigung der Krise à Umdenkprozeß · Software - Engineering
- Auffassung, Erstellung, Anpassung und Pflege von Programmsystemen kein "künstlerischer", sondern ingenieurmäßig ablaufender Prozeß Abb 3
Software - Engineering:
- Programmbewertung (Qualitätsbestimmung) nach
- Benutzerfreundlichkeit {einfache Handhabung etc.}
- Zuverlässigkeit {ungewöhnliche Bedingungen, Ausfall gewisser Komponenten, aussagekräftige
Fehlermeldungen}
- Wartbarkeit
- Anpassbarkeit {an weitere Benutzeranforderungen}
- Portabilität {Maschinenunabhängigkeit}
- Effizienz {wenig Aufwand}
- Ergonomie {Angepasstheit an äußere Umstände}
- Grundlage: Phasenmodell (software life cycle)
- bis 20.000 Zeilen bewährt
1. Problemanalyse
- Ziel: Problem und alle wichtigen Umgebungsbedingungen vollständig und eindeutig zu erfassen; kein Eingehen auf Realisierung
- Istanalyse
- Erfassung der Umgebungsbedingungen
- Formalisierung durch z. B. Datenflußpläne Abb 1 & 2
- Sollkonzept
- Systemziele {wesentliche Aufgaben des geplanten Systems}
- Benutzermodell {Anforderungen an Benutzer}
- Basismaschine {Mindestanforderungen an später zu benutzende
Rechenanlage, Systemsoftware, Geräte, Programmsysteme}
- Benutzermaschine /~schnittstelle {Benutzeroberfläche}
- Erweiterungsmöglichkeiten
- Aufstellen eines Szenarios · Durchführbarkeitsstudie
- Realisierbarkeit
- technisch durchführbar
- ökonomisch vertretbar
- umsetzbar
- Aufgabe, Überarbeitung oder Durchführung eines Projekts · Projektplanung
- Zeitplanerstellung Abb 4
- Personalverteilung
- erforderliche Hilfsmittel
- Anforderungsdefinitionen (Pflichtenheft) Ü Entwicklung eines Prototyps
2. Entwurf
- Modellentwicklung des Gesamtsystems · Modularisierung
- Aufteilung des Gesamtsystems in getrennt zu realisierende Einzelkomponenten (ein Modul nicht länger als eine Seite in der Programmierliste)
- leicht überschaubar
- ein Modul muß gegen ein technisch anders realisiertes austauschbar sein
- unabhängige Entwicklung
Top-down-Methode Bottom-up-Methode
Abbildung in dieser Leseprobe nicht enthalten
- Informationen über Funktionen und Schnittstellen jeden Moduls
- Hinweise zur Anwendbarkeit
- Gesamtüberblick über Abhängigkeit der Module untereinander
3. Implementierung
- Erstellung eines lauffähigen Programms, entsprechend der Spezifikation
- Entscheidungen zur Realisierung
- Festlegung der Datenstruktur
- Festlegung grundlegender Algorithmen
- Festlegung der notwendigen Bibliotheksprogramme
- Vorgehensweise
- strukturiert
- unabhängige Programmiersprache
- aussagekräftige Parameterbezeichnung
- übersichtliche Gestaltung Abb 8
Üdokumentiertes Programm
- Beziehungen zwischen Spezifikation und erstelltem Programm
- Übersicht über Programmaufbau und Implementierung der einzelnen Programme
- Hinweise auf Einschränkungen
4. Funktionsüberprüfung (= Test)
- Nachweis von Fehlern, nicht jedoch deren Abwesenheit
- allgemein: Kontrolle, ob Spezifikation entsprechend · Modultest in Testumgebung
- Integrationstest
(Funktionsüberprüfung anhand der Anforderungsdefintion) à wird von unabhängigen Testern durchgeführt · Installationstest (bei Bedarf)
- Abnahmetest durch Auftraggeber 5. Leistungsüberprüfung
- Durchführung von Leistungsmessungen
6. Installation und Abnahme
- Einbettung des Programms in Nutzerumgebung, u.a. Schulung der neuen Nutzer
7. Wartung
- Aktualisierung und Korrektur, wenn nötig
8. Dokumentation
- Benutzer~ {Programmbenutzer}
- Entwicklungs~ {Projektbeteiligung}
- technische ~ {Wartungspersonal}
- Teamarbeit
1. hierarchische Organisation
Abb 9
- Projektleiter: Verbindungen zum Auftraggeber, Management des Projekts, Einrichtung von Arbeitsgruppen, Einholen von Fortschrittsberichten
- Projektstab: administrative Aufgaben wie Termin- und Kostenkontrolle, Schulungen, Anfertigungen von Richtlinien
- Entwurf und Analyse: Entwurf des Gesamtsystems, Herstellung der Entwicklungsdokumentation, Leistungsanalyse
- Programmentwicklung: Implementierung, Funktions- und Leistungsüberprüfung sowie Dokumentation der Module
- Testentwicklung: Integrations- und Installationstest
2. Chef - Programmierer - Team
Abb 10
- Projektmanager: Kontakt zum Auftraggeber, Finanzverwaltung
- Chefprogrammierer: Projektverantwortlicher, entwirft System vollständig, implementiert wesentliche Teile, Einblick in das System, Kontrolle des Projektfortschritts
- Projektassistent: Assistent und Vertreter des Chefprogrammierers, Planung der Testphase
- Projektsekretär: Entlastung der Programmierer von der Verwaltung der Module, Listings, Testdaten, Schnittstellen, Kenntnis über Projektfortschritt
3. andere Teamstruktur: alle gleichberechtigt und in Kontakt untereinander (für Schule)
Abb 11
- gemeinsame Durchführung der Phasen "Problemanalyse" und "Entwurf" > kleine Ausschüsse für Einzelfragen möglich
> Beschlußfassung im gesamten Team
- Aufteilung des Gesamtsystems in Module > Kleingruppen bearbeiten je ein Modul
> jede Gruppe ist für Durchführung, Fertigstellung, Dokumentation allein verantwortlich
> regelmäßige Sitzungen mit Berichterstattung über Fortschritt
- jedes Teammitglied leistet noch andere Dienstleistungen
> Rechnerbeauftragter: besonders vertraut mit Feinheiten von Hardware und Betriebssoftware
> Projektüberwacher: kein Projektleiter!, koordiniert die Arbeiten der Gruppen
> Schnittstellenbeauftragter: kontrolliert Schnittstellen, leitet Schnittstellen wünsche weiter, übernimmt Integration des Gesamtsystems
> Tester: testet und entwirft ggf. Testumgebungen
> Dokumentar: sammelt phasenbegleitende Dokumente der Gruppen, gibt Gesamtdokumentation heraus
> Kümmerer: sorgt sich um nichtinhaltliche Angelegenheiten
BEISPIEL BIBLIOTHEK
1. Problemanalyse
- Istanalyse
Welche Abteilungen gibt es in der Bücherei und was sind ihre Funktionen? Welche Ausleihvorgänge können auftreten?
Welche Kennzeichen eines Buches (z.B. Autor, Titel) werden wo erfaßt und wo benötigt?
- Sollkonzept
a) Systemziele
- Automatisierung des Leihverfahrens der Bücherei,
- Erstellen von Mahnbriefen,
- Ausdruck von Rechnungen,
- Verwaltung des Gesamtbestandes an Büchern,
- Zugriff auf Bestandslisten, Kataloge und Statistiken.
b) Benutzermodell
Es genügen Fachkenntnisse im üblichen Umfang sowie Kenntnisse der Kommandosprache des Systems. Die Benutzungshäufigkeit des Systems beträgt täglich etwa 10 Stunden.
c) Basismaschine
Das System sollte mindestens über Befehle, wie sie im Betriebssystem Y enthalten sind, verfügen und 20 Benutzer gleichzeitig im Realzeitbetrieb bedienen. Es benötigt einen Drucker, einen Magnetplattenspeicher, eine Hauptspeicherkapazität von 8 MByte und 20 Datensichtstationen. Das Datenbanksystem ist vom Typ Z erforderlich.
d) Benutzermaschine
Hier werden Abläufe und Bedienungsmöglichkeiten einschließlich Fehlersituationen aufgeführt.
e) Erweiterungsmöglichkeiten
- Einbeziehung der Stadtbüchereien in das Bibliotheksystem
- Erfassung der Bücher und Ausleihvorgänge durch Klarschriftleser
- Durchführbarkeitsstudie
Die Durchführbarkeitsstudie ergibt, daß
1. die Hauptspeicherkapazität der vorliegenden Rechenanlage nicht ausreicht, um das Projekt durchzuführen;
2. der Personalaufwand zur Entwicklung des Produkts 5 Personenjahre beträgt (ein Personenjahr ist die Entwicklungsleistung, die ein Mensch innerhalb eines Jahres erbringt);
3. die Gesamtkosten einschließlich der Schulung der Mitarbeiter etwa X DM betragen. Aufgrund dieser und weiterer Abschätzungen wird entschieden, das Projekt weiterzuführen.
2. Entwurf
Die Entwurfsphase hat zu einer Modularisierung des Gesamtprogramms gemäß Abb. 6 geführt. Die Spezifikation des Moduls "Sortieren der Bücher" hat beispielsweise folgende Form: Funktion: Sortieren einer Bücherdatei wahlweise nach Autorennamen oder Buchtiteln Name: sortbuch Schnittstelle: Der erste Parameter vom Typ file of buch bestimmt die zu sortierende Bücherdatei.
Der zweite Parameter vom Typ (autor, titel) legt fest, nach welchem Kriterium die einzelnen Elemente sortiert werden sollen.
Häufig gestellte Fragen
Was ist Software-Engineering laut diesem Dokument?
Software-Engineering wird als ein ingenieurmäßiger Prozess der Erstellung, Anpassung und Pflege von Programmsystemen beschrieben, im Gegensatz zu einem "künstlerischen" Ansatz. Es umfasst die Programmbewertung hinsichtlich verschiedener Qualitätsmerkmale.
Welche Qualitätsmerkmale werden bei der Programmbewertung berücksichtigt?
Die Qualitätsmerkmale umfassen Benutzerfreundlichkeit, Zuverlässigkeit, Wartbarkeit, Anpassbarkeit, Portabilität, Effizienz und Ergonomie.
Was ist das Phasenmodell (Software Life Cycle) und wann ist es bewährt?
Das Phasenmodell ist die Grundlage für das Software-Engineering. Es hat sich bis zu einer Größe von 20.000 Zeilen Code bewährt.
Welche Phasen beinhaltet das Phasenmodell?
Das Phasenmodell umfasst die Problemanalyse, den Entwurf, die Implementierung, die Funktionsüberprüfung (Test), die Leistungsüberprüfung, die Installation und Abnahme, die Wartung und die Dokumentation.
Was ist das Ziel der Problemanalysephase?
Das Ziel ist, das Problem und alle wichtigen Umgebungsbedingungen vollständig und eindeutig zu erfassen, ohne auf die Realisierung einzugehen. Dies beinhaltet die Istanalyse, die Erfassung der Umgebungsbedingungen, die Formalisierung (z.B. durch Datenflusspläne) und das Sollkonzept.
Was beinhaltet das Sollkonzept?
Das Sollkonzept umfasst Systemziele, ein Benutzermodell, die Basismaschine (Mindestanforderungen an Rechenanlage, Systemsoftware, Geräte, Programmsysteme), die Benutzermaschine/Schnittstelle und Erweiterungsmöglichkeiten. Es beinhaltet auch das Aufstellen eines Szenarios und eine Durchführbarkeitsstudie.
Welche Aspekte werden bei der Durchführbarkeitsstudie geprüft?
Die Durchführbarkeitsstudie prüft die Realisierbarkeit, ob das Projekt technisch durchführbar, ökonomisch vertretbar und umsetzbar ist.
Was beinhaltet die Entwurfsphase?
Die Entwurfsphase beinhaltet die Modellentwicklung des Gesamtsystems, die Modularisierung (Aufteilung in Einzelkomponenten), Informationen über Funktionen und Schnittstellen jedes Moduls sowie Hinweise zur Anwendbarkeit. Top-down- und Bottom-up-Methoden können eingesetzt werden.
Was sind die Vorteile der Modularisierung?
Die Modularisierung führt zu leicht überschaubaren Modulen, die austauschbar und unabhängig voneinander entwickelt werden können.
Was beinhaltet die Implementierungsphase?
Die Implementierungsphase beinhaltet die Erstellung eines lauffähigen Programms entsprechend der Spezifikation, Entscheidungen zur Realisierung (Datenstruktur, Algorithmen, Bibliotheksprogramme) und eine strukturierte Vorgehensweise.
Was ist bei der Implementierung wichtig?
Wichtig ist die Verwendung einer unabhängigen Programmiersprache, aussagekräftige Parameterbezeichnungen und eine übersichtliche Gestaltung. Das resultierende Programm sollte gut dokumentiert sein.
Was beinhaltet die Funktionsüberprüfung (Testphase)?
Die Funktionsüberprüfung dient dem Nachweis von Fehlern, nicht jedoch deren Abwesenheit. Sie umfasst Modultests, Integrationstests und ggf. einen Installationstest, sowie einen Abnahmetest durch den Auftraggeber.
Was beinhaltet die Leistungsüberprüfung?
Die Leistungsüberprüfung beinhaltet die Durchführung von Leistungsmessungen.
Was beinhaltet die Installations- und Abnahmephase?
Diese Phase umfasst die Einbettung des Programms in die Nutzerumgebung, einschließlich der Schulung der neuen Nutzer.
Was beinhaltet die Wartungsphase?
Die Wartungsphase umfasst Aktualisierungen und Korrekturen, wenn nötig.
Welche Arten von Dokumentation gibt es?
Es gibt Benutzerdokumentation, Entwicklungsdokumentation und technische Dokumentation.
Welche Teamarbeitsmodelle werden vorgestellt?
Es werden die hierarchische Organisation, das Chef-Programmierer-Team und eine andere Teamstruktur (alle gleichberechtigt) vorgestellt.
Was sind die Aufgaben des Projektleiters in der hierarchischen Organisation?
Der Projektleiter ist die Verbindung zum Auftraggeber, managt das Projekt, richtet Arbeitsgruppen ein und holt Fortschrittsberichte ein.
Was sind die Aufgaben des Chefprogrammierers im Chef-Programmierer-Team?
Der Chefprogrammierer ist Projektverantwortlicher, entwirft das System vollständig, implementiert wesentliche Teile, hat Einblick in das System und kontrolliert den Projektfortschritt.
Wie ist die Teamstruktur bei der "anderen Teamstruktur"?
Alle Teammitglieder sind gleichberechtigt und in Kontakt untereinander. Es gibt verschiedene Rollen wie Rechnerbeauftragter, Projektüberwacher, Schnittstellenbeauftragter, Tester, Dokumentar und Kümmerer.
Welche Aspekte der Problemanalyse werden am Beispiel Bibliothek erläutert?
Am Beispiel Bibliothek werden die Istanalyse (Abteilungen, Funktionen, Ausleihvorgänge, Kennzeichen von Büchern) und das Sollkonzept (Systemziele, Benutzermodell, Basismaschine, Benutzermaschine, Erweiterungsmöglichkeiten) erläutert. Außerdem wird die Durchführbarkeitsstudie angesprochen.
Welche Punkte beinhaltet die Durchführbarkeitsstudie am Beispiel Bibliothek?
Die Durchführbarkeitsstudie beinhaltet die Prüfung der Hauptspeicherkapazität, des Personalaufwands und der Gesamtkosten.
Welche Aspekte des Entwurfs werden am Beispiel Bibliothek erläutert?
Am Beispiel Bibliothek wird die Modularisierung des Gesamtprogramms und die Spezifikation eines Moduls (z.B. "Sortieren der Bücher") erläutert.
- Citation du texte
- Carolin Latze (Auteur), 2000, Software-Life-Cycle, Munich, GRIN Verlag, https://www.grin.com/document/98089