Hinter diesen Zielen verbergen sich Qualitätsanforderungen und Managementanforderungen für ein Softwareentwicklungsprojekt, auf die zunächst kurz eingegangen werden soll. Das Projektmanagement ist für die Planung, Durchführung und Kontrolle des Projektablaufs verantwortlich. Der Projektplan ist ein wichtiges Ergebnis der Planungsaktivitäten. Hier fließen Aufwandsschätzungen, Erfahrungen, Zeitplanung und die anwendbaren Hilfsmittel mit ein. Die Qualität eines Programms wird i.a. bestimmt durch seine o Korrektheit, d.h. in wie weit das Programm die vorgegebene Spezifikation erfüllt, o Zuverlässigkeit, d.h. die Wahrscheinlichkeit, dass das System in einem Zeitintervall korrekt arbeitet, o Benutzungsfreundlichkeit, d.h. leichte Handhabung bei einer angemessenen Benutzungsoberfläche, o Wartungsfreundlichkeit, d.h., das Programm kann auch von anderen Programmierern als dem Autor verstanden und korrigiert werden (lesbar, erweiterbar, testbar), o Effizienz, d.h., das Programm nutzt die benötigten Ressourcen (Zeit, Speicherplatz) bestmöglich aus, o Portabilität, d.h., das Programm kann relativ leicht auf neuen Rechnern installiert oder in neue Softwareumgebungen eingebettet werden.
Softwaretechnik Softwaretechnik ist die ingenieurmäßige Anwendung von Prinzipien, Methoden und Techniken auf den Entwurf und die Implementierung von Programmen und Programmsystemen. Sie zeichnet sich aus durch die ingenieursmäßige Anwendung von Prinzipien / Methoden / Techniken / Normen und Hilfsmitteln. Zum einem soll ein besseres wirtschaftliches Aufwandsverhältnis erreich werden, zum anderen wurde diese methodische Vorgehensweise durch immer größere und komplexere Programme unverzichtbar. Vorgehensmodell Um die Software-Entwicklung planbar, überschaubar, vorhersehbar und kontrollierbar zu gestalten, wird im allgemeinen ein Vorgehensmodell vorgegeben. Das Vorgehensmodell ist eine Darstellung, die weitgehend den Software-Entwicklungsprozess beschreibt. Prinzipiell müssen die einzelnen Prozessschritte und die dabei verwendeten und entwickelten Resultate beschrieben werden. Für jede Aktivität wird festgelegt welche Eingangsprodukte gibt es woher kommen sie welche Produkte werden verändert/erzeugt wo werden sie weiterverarbeitet diese Fragen gelten nicht nur dem Prozess der Softwareentwicklung, sondern auch für Projektmanagement Konfigurationsmanagement Qualitätssicherung Ziel dieser Analysen ist der Projektplan. Wichtige Komponenten des Projektplans sind: 1. Vorgehensmodell, Meilensteine, vorläufige Ablaufplanung, Kontrollmechanismen 2. Werkzeugbeschaffung und Einsatz 3. Organisationsstruktur (Management, Teams) 4. Personal- und Ressourcenplanung 5. Kostenschätzung 6. Analytische Qualitätssicherung 7. Dokumentation, Produkteinführung, Anwenderschulung 8. Installations- und Wartungsbetrachtungen, organisatorische Einbettung 9. Auslieferungs- und Zahlungsmodalitäten 10. Informationsquellen, Glossar.
Phasen der Softwareentwicklung Die Softwareentwicklung lässt sich in 6 verschiedene Phasen aufteilen, die unabhängig vom gewählten Vorgehensmodell auftreten: Problemanalyse Analyse und Dokumentation der Funktionen und Arbeitsschritte und ihrer Wechselwirkungen in dem Aufgabenbereich, für den eine Software-Lösung ausgestrebt ist. Anforderungsdefinition Erstellung einer verständlichen und verbindlichen Vereinbarung zwischen Auftraggeber und Softwarehersteller, die genau festlegt, was das geplante Softwaresystem leisten soll. Entwurf Festlegung, wie die durch die Anforderungsdefinition vorgegebenen Anforderungen realisiert werden. Implementierung Übertragung des im Entwurf festgelegten Realisierungskonzepts in eine Programmiersprache. Test/Integration Aufdeckung möglichst vieler Fehler des Softwareprodukts und Sicherstellung, dass die Implementierung die Anforderungsdefinition erfüllt. Wartung Nach Abschluss der Testphase wird das Softwaresystem installiert und zur Benutzung freigegeben. Aufgabe der Software-Wartung ist es, Fehler, die erst während des Betriebes auftreten, zu beheben und Systemänderungen durchzuführen. Diese Phasen werden allerdings aufgrund der Komplexität der Softwareentwicklung nicht einfach hintereinander ausgeführt, sondern es gibt immer wieder Unterbrechungen, und die Entwicklungsarbeiten müssen teilweise in einer früheren Phase (oder im schlimmsten Fall sogar) wieder neu begonnen werden. iterativer Prozeß => zyklische Modelle
Problemanalyse Die Problemanalyse setzt sich aus folgenden Phasen / Ergebnisdokumenten zusammen: Ist-Analyse = Systemabgrenzung und Systemerhebung Bei der Systemabgrenzung soll herausgefunden werden, - welche Teile in die Analyse einbezogen werden und welche Teile auszuklammern sind - welche Umgebungsbedingungen für das Projekt relevant sind. Die Systemerhebung bildet den Kern der Istanalyse. Vor allem unter dem Gesichtspunkt der möglichen Erweiterungen muss der Analytiker bei der Systemerhebung den Aufgabenbereich, den Informationsfluss, aber auch alle Schwachstellen des derzeitigen Systems betrachten. Die Systemerhebung lässt sich zerlegen in: - Strukturanalyse (Analyse des organisatorischen Umfelds) - Aufgabenanalyse (Untersuchung und Erklärung der im zu untersuchenden Umfeld anfallenden Aufgaben) - Kommunikationsanalyse (Darstellung der informellen Beziehungen zwischen den