- Software-Prinzipien
-
Software-Prinzipien legen grundsätzliche Richtlinien für den kompletten Lebenszyklus, beginnend mit der Entwicklung bis hin zum Betrieb, von Software-Produkten fest.
Inhaltsverzeichnis
Prinzipien der Softwareentwicklung
- Abstraktionsprinzip[1] – von der konkreten Betriebsaufgabe zur beispielsunabhängigen Modelllösung (ein Schüler erhält Noten → Notenerfassung und Berechnung für alle Schüler)
- Hierarchisierungsprinzip – Abbildung der strukturellen Abhängigkeiten in einem komplexen System (Gliederung in Schule → Klasse → Schüler → Fach → Noten)
- Strukturierungsprinzip – reduzierte Darstellung des Gesamtsystems durch Betrachtung der einzelnen Strukturelemente (Betrachtung einer Unterrichtseinheit aus dem gesamten Bildungssystem)
- Modularisierungsprinzip – Bildung von funktionalen, in sich geschlossenen, austauschbaren Subsystemen und Festlegung von Schnittstellen zwischen Modulen
- Lokalitätsprinzip – logisch zusammenhängende Informationen am gleichen Ort komprimiert abgelegt erleichtert die Problemlösung (alle Daten, die zur Prüfungsanmeldung erforderlich sind, in ein Verzeichnis)
- Integriertes Dokumentationsprinzip – jeder Softwareabschnitt soll einen Dokumentationsvorspann enthalten (Dokumentationshinweis, dass jetzt eine Eingabe-Kodierung erfolgt)
- Standardisierungsprinzip – Einhalten einer bestimmten Lösungsreihenfolge (Modulname, Dokumentation, Variableninitialisierung, Kontrollstrukturen, Rückgabewert)
- Mehrfachverwendungsprinzip – Softwarebereiche so erstellen und bereitstellen, dass diese von anderen Entwicklern wiederverwendet werden können (Erstellen einer allgemeinen Sortierroutine)
Prinzipien der Qualitätssicherung
- Operationales Qualitätseigenschaftsprinzip – Festlegen der Qualitätsmerkmale einer Softwarefunktion im Voraus in nachprüfbarer Art und Weise gegenüber dem Auftraggeber (Fehlerfreies Eingeben von Prüfungsnoten – Anzahl und Wertebereich)
- Konstruktives Qualitätssicherungsprinzip – vorausblickendes Ergreifen konstruktiver Maßnahmen zur Fehlerunterdrückung bei Softwareentwicklungen, um nachträglichen Aufwand zu vermeiden (Vektoren ausreichend dimensionieren zur Vermeidung von core bus errors)
- Fehlerfrüherkennungsprinzip – Abweichungen von den Benutzeranforderungen frühzeitig feststellen (detaillierte Gliederung der Benutzeranforderungen z. B. Einbindung einer Menüsteuerung bei der Auswahl von Programmfunktionen)
- Akkompagnitives Qualitätssicherungsprinzip – Einbau von Qualitätssicherungstests in den Entwicklungsprozess der Softwaremodule und nicht erst am Ende, wenn das gesamte SW-Paket fertig ist (Einbau von Testfunktionen mit Testdaten und Ausgabe in die Unterfunktion)
Prinzipien des Softwaremanagments
- Organisatorisches Modellierungsprinzip – Festlegen eines organisatorischen Rahmens (Organisationsmodell) zur Durchführung des Entwicklungsablaufes (Einteilung der Entwicklerteams) (z. B. Phasenmodell mit Analyse, Requirements, Design, Implementierung, Test)
- Meilensteinprinzip – Zur Gewährleistung der Termintreue müssen Einzelaktivitäten zu festgelegten Zeitpunkten (Meilensteine) abgeschlossen sein (z. B. Ein- und Ausgabemasken nach sechs Arbeitsstunden)
- Kommunikationsprinzip – Reduktion des Informationsaustausches auf die betroffenen Entwickler; Berücksichtigen, dass bei Hinzunahme eines neuen Mitarbeiters, der Kommunikationsaufwand erheblich steigt. (z. B. aufgabengerechte Anzahl von Entwicklern ansetzen)
Prinzipien der Wartung und Pflege
- Softwarewartung (Erhaltung der Betriebssicherheit und Behebung von Softwarefehlern) – Die Wartung erhöht die Supportkosten (Betreuungskosten).
- Softwarepflege (Weiterentwicklungen und Programmverbesserung) – Anpassung an technische oder betriebliche Veränderungen machen die Supportkosten oft teurer als die eigentlichen Entwicklungskosten.
Nachweise
- ↑ Niklaus Wirth: A Brief History of Software Engineering. In: IEEE Annals of the History of Computing. 30, Nr. 3, Juli-Sept. 2008, S. 32-39 (doi:10.1109/MAHC.2008.33) (http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0409/BriefHistoryofSoftwareEng.pdf ; Stand: 30.4.2009).
Wikimedia Foundation.