Diese Arbeit gibt einen Rückblick auf die Entstehung der ingeneurmäßigen Softwareentwicklung – des Software Engineering - und beschreibt die Konzepte in groben Zügen. Es werden die Produktivitäts- und Qualitätsziele sowie die Konzepte zur Zielerreichung aufgeführt. In diesem Rahmen werden die allgemeinen Prinzipien beschrieben und erläutert, was unter Methoden, Sprachen und Werkzeugen zu verstehen ist. Es wird aufgezeigt, wie durch standardisiertes Vorgehen mit Hilfe von Phasenmodellen vorgegangen wird. Jede Phase des Software-Entwicklungsprozesses wird überblicksartig dargestellt und ihre Problematik hervorgehoben. Diese Arbeit schließt mit Hinweisen auf die Defizite der Disziplin in Wissenschaft und Praxis.
Das Software Engineering bildet ein so komplexes Thema, dass die einzelnen Themen im Rahmen dieser Arbeit nicht ausführlich behandelt werden können. Es gibt eine Vielfalt einander überlappender, sich ergänzender oder sich ausschließender Methoden, Werkzeuge und Sprachen. Es ist nicht möglich, sie alle in dieser Arbeit darzustellen. Auf phasenspezifische Prinzipien und manche Aspekte, wie z.B. Menschenführung, Kostenschätzung, Produktivitätsmessung, Planung und Qualitätssicherung wird in dieser Arbeit ebenfalls nicht eingegangen.
Inhaltsverzeichnis
1. Einleitung
2. Zum Begriff des Software Engineering
2.1. Entstehung und Definition
2.2. Gegenstand der Disziplin
2.3. Arbeitsweise eines Ingenieurs
3. Ziele des Software Engineering
3.1. Qualität
3.2. Produktivität
4. Konzepte des Software Engineering
4.1. Allgemeine Prinzipien
4.1.1. Maximale konstruktive Qualitätssicherung
4.1.2. Entwicklungsbegleitende, integrierte Qualitätssicherung
4.1.3. Frühzeitige Fehlererkennung
4.1.4. Konstruktive Voraussicht
4.1.5. Abstraktion
4.1.6. Strukturierung
4.1.7. Modularisierung
4.1.8. Hierarchisierung
4.1.9. Lokalität
4.1.10. Standardisierung
4.1.11. Mehrfachverwendung
4.1.12. Integrierte Dokumentation
4.2. Methoden
4.3. Sprachen und Programmierstil
4.4. Werkzeuge
4.5. Strukturierung der Entwicklung durch standardisiertes Vorgehen
4.5.1. Phasen des Software-Entwicklungsprozesses
4.5.1.1. System Engineering als Voraussetzung des Software Engineering
4.1.1.2. Anforderungsdefinition bzw. Spezifikation
4.5.1.3. Entwurf
4.5.1.4. Implementierung
4.5.1.5. Test
4.5.1.6. Betrieb und Wartung
4.5.2. Phasenmodelle
4.5.2.1. Sequentielles Wasserfallmodell
4.5.2.2. Klassisches Wasserfallmodell
4.5.2.3. Verifikations-Modell (V-Modell)
4.5.2.4. Sichten-Modell
4.5.2.5. Spiral-Modell
4.5.3. Alternativen bzw. Ergänzung der Phasenmodelle
4.5.3.1. Prototyp-Entwicklung
4.5.3.2. Entwicklungsaktivitäten durch Endbenutzer
5. Defizite in Wissenschaft und Praxis
6. Schlußbetrachtung
Zielsetzung & Themen
Die Arbeit verfolgt das Ziel, einen Überblick über die Konzepte des Software Engineering zu geben, um die ingenieurmäßige Softwareentwicklung systematisch darzustellen. Dabei wird der Frage nachgegangen, wie durch standardisiertes Vorgehen, Prinzipien und Werkzeuge die Produktivität und Qualität in der Softwareerstellung gesteigert werden können.
- Entstehung und Definition des Software Engineering
- Qualitäts- und Produktivitätsziele bei der Softwareentwicklung
- Allgemeine Prinzipien, Methoden und Werkzeuge
- Strukturierung durch Phasenmodelle
- Probleme und Defizite in der aktuellen Praxis
Auszug aus dem Buch
4.1.7. Modularisierung
Software-Systeme sind in der Regel sehr groß. Relativ kleine oder mittlere Systeme beinhalten einige zigtausend Zeilen, große einige hunderttausend und sehr große sogar Millionen Zeilen Code. Da kein Mensch fähig ist, ein großes Software-System ohne Substrukturen und noch dazu in allen Einzelheiten zu überblicken, muß ein System in viele und kleine einzeln bearbeitbare Teilprobleme (Module, Elemente oder Strukturblöcke) zerlegt werden. Zur Modularisierung gehört nicht nur die Gliederung eines zu entwerfenden Systems in Teile, sondern auch die grobe Festlegung des Zusammenwirkens und der Schnittstellen der Module. Im Zuge der Modularisierung werden also die Module entdeckt, benannt und in ihren statischen und dynamischen Beziehungen festgelegt.47 Gute Modularisierung trägt ganz entscheidend zur Verständlichkeit bei und das nicht nur in der Entwicklung, sondern vor allem auch in der Wartung. Modularisierung ist nicht nur eine technische Notwendigkeit, sondern auch von Nutzen für das Projektmanagement. Sie ist die Grundlage der Projektplanung und Kontrolle und schafft die Voraussetzungen für koordinierte Parallelarbeit in größeren Teams.
Weitere Vorteile durch die Anwendung des Prinzips der Modularisierung:
bessere Strukturierung, Verbesserung der Fehlerlokalisierungsmöglichkeiten48. Die Modularität wirkt sich günstig aus auf die Lokalität.49 Das bedeutet hohe Änderungsfreundlichkeit, d.h. bessere Wartbarkeit.
Module stellen anderen Modulen in ihrer Umgebung Leistungen zur Verfügung. Damit von anderen Modulen diese Leistungen in Anspruch genommen werden können, müssen sie wissen, wie die Leistungen im Detail aussehen und wie sie in Anspruch genommen werden können.50 Die Schnittstellenspezifikation muß das beabsichtigte Konzept der Schnittstelle vollständig, eindeutig und konsistent wiedergeben. Es müssen insbesondere alle Details enthalten sein, um das Modul sowohl anwenden als auch implementieren zu können. Alle möglichen und bei der Anwendung partiell auftretenden Fälle müssen berücksichtigt sein.51
Zusammenfassung der Kapitel
1. Einleitung: Die Einleitung erläutert die Zielsetzung der Arbeit, einen Überblick über Software-Engineering-Konzepte zu geben, und grenzt das komplexe Themenfeld ein.
2. Zum Begriff des Software Engineering: Dieses Kapitel behandelt die historische Entstehung, die Definition der Disziplin sowie die spezifische Arbeitsweise eines Ingenieurs in diesem Bereich.
3. Ziele des Software Engineering: Hier werden die zentralen Qualitätsmerkmale von Software sowie das Ziel der Produktivitätssteigerung bei der Entwicklung definiert.
4. Konzepte des Software Engineering: Das umfangreichste Kapitel beschreibt die allgemeinen Prinzipien, Methoden, Programmiersprachen, Werkzeuge und das standardisierte Vorgehen in Phasenmodellen.
5. Defizite in Wissenschaft und Praxis: Dieses Kapitel kritisiert die bestehende Kluft zwischen theoretischen Anforderungen und der tatsächlichen Anwendung in der betrieblichen Praxis.
6. Schlußbetrachtung: Die Schlussbetrachtung fasst die Relevanz des Software Engineering zusammen und fordert eine stärkere Unterstützung systematischer Vorgehensweisen durch das Management.
Schlüsselwörter
Software Engineering, Qualitätssicherung, Produktivität, Modularisierung, Phasenmodelle, Softwareentwicklung, Spezifikation, System Engineering, Testphase, Wartung, Abstraktion, Standardisierung, Programmierung, Entwurf, Informatik
Häufig gestellte Fragen
Was ist das grundsätzliche Thema dieser Arbeit?
Die Arbeit beschäftigt sich mit den Grundlagen und Konzepten des Software Engineering als ingenieurmäßiger Disziplin zur systematischen Erstellung von Software.
Welche Themenfelder stehen im Fokus?
Zentrale Felder sind Qualitätsziele, Produktivität, methodische Prinzipien, die Strukturierung des Software-Entwicklungsprozesses sowie der Einsatz von Werkzeugen und Sprachen.
Was ist das primäre Ziel der Forschungsarbeit?
Das Hauptziel ist es, ein Verständnis für systematische Vorgehensweisen in der Softwareentwicklung zu vermitteln, um den Übergang von ad-hoc-Programmierung zu disziplinierten Ingenieurmethoden zu fördern.
Welche wissenschaftliche Methode wird primär angewandt?
Es handelt sich um eine theoretische Arbeit, die den aktuellen Stand der Wissenschaft und Literatur im Bereich des Software Engineering zusammenfasst, Prinzipien analysiert und methodische Vorgehensweisen strukturiert.
Welche Inhalte werden im Hauptteil behandelt?
Der Hauptteil behandelt die Prinzipien wie Modularisierung und Abstraktion, die Phasen des Software-Entwicklungszyklus, verschiedene Phasenmodelle (z. B. Wasserfall- oder V-Modell) sowie die Bedeutung der Dokumentation und Testung.
Was zeichnet die Arbeit aus?
Die Arbeit zeichnet sich durch die Verwendung zahlreicher Fachquellen aus, eine strukturierte Gliederung des Entwicklungsprozesses und eine kritische Auseinandersetzung mit der Diskrepanz zwischen Theorie und Praxis.
Warum spielt die Anforderungsdefinition eine so entscheidende Rolle?
Die Arbeit betont, dass fehlerhafte Definitionen die Hauptursache für Folgefehler sind und rund 30% aller Softwarefehler bereits in dieser Phase entstehen.
Welches Fazit zieht die Autorin bezüglich der Praxis?
Die Autorin stellt fest, dass in der Praxis oft Produktivität vor Qualität gestellt wird und mangelnde Disziplin in der Dokumentation und Testung die Wartbarkeit langfristig gefährdet.
- Quote paper
- Diplom-Sozialökonomin Ingrid Sieck (Author), 1995, Konzepte des Software Engineering (Stand 1995), Munich, GRIN Verlag, https://www.grin.com/document/76532