VORTRAG INFO: SOFTWARE - ENGINEERING - Häufig gestellte Fragen (FAQ)
Was ist der Inhalt dieses Vortrags über Software-Engineering?
Dieser Vortrag bietet einen umfassenden Überblick über Software-Engineering. Er behandelt die Geschichte des Software-Engineerings, die Softwarekrise der 1960er Jahre und die Entwicklung von Methoden zur Bewältigung dieser Krise. Der Vortrag beschreibt die Phasen des Softwarelebenszyklus (Problemanalyse, Entwurf, Implementierung, Funktionsüberprüfung, Leistungsüberprüfung, Installation und Abnahme, Wartung und Dokumentation), verschiedene Teamstrukturen im Software-Engineering und Bewertungsmaßstäbe für Software (Benutzerfreundlichkeit, Zuverlässigkeit, Wartbarkeit etc.). Ein Beispiel für die Anwendung des Software-Engineering-Prozesses in einer Bibliotheksumgebung wird ebenfalls vorgestellt.
Welche Phasen umfasst der Softwarelebenszyklus laut diesem Vortrag?
Der Vortrag beschreibt den Softwarelebenszyklus mit folgenden Phasen: 1. Problemanalyse, 2. Entwurf, 3. Implementierung, 4. Funktionsüberprüfung (Test), 5. Leistungsüberprüfung, 6. Installation und Abnahme, 7. Wartung und 8. Dokumentation. Jede Phase wird detailliert erläutert.
Welche Kriterien werden zur Bewertung von Software verwendet?
Die Softwarebewertung erfolgt nach Kriterien wie Benutzerfreundlichkeit, Zuverlässigkeit, Wartbarkeit, Anpassbarkeit, Portabilität, Effizienz und Ergonomie. Der Vortrag erklärt diese Kriterien im Detail.
Welche Methoden werden im Entwurfsprozess von Software verwendet?
Der Vortrag erwähnt die Top-Down- und Bottom-Up-Methoden im Entwurfsprozess. Die Modularisierung des Gesamtsystems in unabhängig realisierbare Einzelkomponenten ist ein wichtiger Aspekt.
Welche Teamstrukturen werden im Software-Engineering beschrieben?
Der Vortrag beschreibt drei verschiedene Teamstrukturen: 1. Hierarchische Organisation (mit Projektleiter, Projektstab, etc.), 2. Chef-Programmierer-Team und 3. eine gleichberechtigte Teamstruktur, die für schulische Zwecke geeignet ist. Die Aufgaben und Verantwortlichkeiten der einzelnen Teammitglieder werden für jede Struktur erläutert.
Wie wird das Beispiel der Bibliothek im Vortrag verwendet?
Das Bibliotheksbeispiel dient als praktische Illustration des Software-Engineering-Prozesses. Es zeigt, wie die verschiedenen Phasen (von der Problemanalyse über den Entwurf bis zur Implementierung) in einem konkreten Anwendungsszenario angewendet werden. Es werden konkrete Anforderungen an das System (z.B. benötigte Hardware, Software, Funktionen) definiert.
Welche Bedeutung hat die Dokumentation im Software-Engineering?
Dokumentation ist ein wichtiger Bestandteil des Software-Engineering-Prozesses. Der Vortrag unterscheidet zwischen Benutzerdokumentation, Entwicklungsdokumentation und technischer Dokumentation und betont deren Wichtigkeit für die Wartung und den zukünftigen Gebrauch der Software.
Was war die Softwarekrise der 60er Jahre?
Die Softwarekrise der 60er Jahre beschreibt eine Situation, in der die steigende Komplexität und Anzahl von Softwareprogrammen zu einer sinkenden Qualität und zu Problemen bei der Entwicklung und Wartung führte. Dies führte zur Entwicklung des Software-Engineerings als disziplinierte Herangehensweise an Softwareentwicklung.
Wie groß darf ein Modul laut dem Vortrag maximal sein?
Ein Modul sollte laut Vortrag nicht länger als eine Seite in der Programmierliste sein, um die Übersichtlichkeit und Wartbarkeit zu gewährleisten.
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.
- Arbeit zitieren
- Carolin Latze (Autor:in), 2000, Software-Life-Cycle, München, GRIN Verlag, https://www.grin.com/document/98089