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.
Anwendbarkeit: Bei mehreren Autoren eines Buches und Sortierkriterium autor wird nur nach dem Namen des ersten Autors sortiert. Bei gleichen Autoren wird nach dem Titel sortiert. Modulabhängigkeit: s. Abb. 7.
-
-
-
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X.