Durch den ständig wachsenden internationalen Konkurrenzdruck und zunehmender Komplexität der zu entwickelnden Produkte, Dienstleistungen und Systeme sind Unternehmen gezwungen, immer kürzer werdende Entwicklungszeiten zu realisieren, um Marktanteile zu gewinnen, zu sichern und auszubauen. Desto verwunderlicher ist es, dass in Wirtschaft und Verwaltung die Liste der Software-Entwicklungsprojekte, die entweder ganz aufgeben bzw. erst mit erheblicher Verspätung sowie enormer Überziehung des geplanten Budgets eingeführt werden können, immer länger wird. Nach Einführung der Software stellt der Auftraggeber ebenso verwundert fest, dass seine eigentlichen Anforderungen (Requirements) an die Software entweder nur zum Teil bzw. an der fachlichen Problemstellung vorbei programmiert wurden.
Aus eigener beruflicher Erfahrung kann der Autor bestätigen, dass diese Probleme fehlender bzw. an der Problemstellung vorbei entwickelter Funktionalitäten, auf nicht vorhandene bzw. ungenaue und kurz vor der Einführung erkannte Anforderungen basieren.
Nach einer Untersuchung der Standish Group aus dem Jahre 2004 werden durchschnittlich gerade mal 54% der ursprünglich definierten Funktionen eines Software-Projektes ausgeliefert. Von diesen 54% wiederum werden noch nicht mal die Hälfte (45%) von den Anwendern entweder gar nicht oder nur zum Teil genutzt. Bei den wesentlichen Erfolgsfaktoren eines Software-Enwicklungsprojektes spielen mittlerweile die verwendeten Methoden und Tools (Datenstrukturen, verwendete Programmiersprache) in den Phasen Entwurf und Implementierung eine vergleichsweise geringe Rolle. Bereits in den 60er Jahren wurde von IBM, Control Data und anderen Unternehmen der für die Kodierung und Fehlerbereinigung notwendige Aufwand empirisch auf 1/6 festgelegt.
Die schwerwiegenden Fehler die heute in der Software-Entwicklung gemacht werden, sind semantischer anstatt syntaktischer Natur. Diese Fehler werden bereits am Anfang der Software-Entwicklung in der Phase „Analyse und Definition“ in Form von schlechten, instabilen und unvollständigen Anforderungen gemacht und ziehen sich durch das gesamte Phasenmodell der Software-Entwicklung (siehe hierzu Abbildung 1). Sie sind die Hauptursache warum Software-Entwicklungsprojekte mit erheblicher Verspätung, enormer Überziehung des geplanten Budgets sowie mit einer verminderten Qualität der erstellten Software abgeschlossen werden.
Inhaltsverzeichnis
- Einführende Darstellung
- Problemstellung
- Ziel und Schwerpunkt
- Aufbau
- Zeitplan
- Grundlagen und Probleme der Software – Entwicklung
- Requirements Engineering
- Definition
- Historie
- Hauptaufgaben
- Anforderungsermittlung
- Techniken zur Ermittlung von Anforderungen
- Modellierung der fachlichen Lösung
- Grundlagen
- Strukturierte Analyse
- Real-Time Analyse
- Bewertung funktionsorientierter Methoden
- Objektorientierte Konzepte
- Objektorientierte Analyse
- Unified Modeling Language
- Historische Entwicklung der UML
- Grundlagen der UML
- UML-Tools
- Modell- und Diagrammarten der UML
- Grundlagen
- Use-Case-Diagramm
- Notation
- Beziehungen
- Praxisbeispiel
- Bewertung
- Aktivitätsdiagramm
- Aktivität
- Objekt
- Beziehung
- Praxisbeispiel
- Bewertung
- Klassendiagramm
- Klasse
- Abstrakte Klassen
- Attribut
- Operation
- Beziehung
- Multiplizität
- Sichtbarkeit
- Praxisbeispiel
- Bewertung
- Fazit und Ausblick
Zielsetzung und Themenschwerpunkte
Diese Diplomarbeit befasst sich mit dem Thema Requirements Engineering und der Bedeutung der Unified Modeling Language (UML) für die Softwareentwicklung. Der Schwerpunkt liegt auf der Analyse und der Bewertung der UML als wesentlicher Erfolgsfaktor in der Software-Entwicklung.
- Analyse der Herausforderungen in der Softwareentwicklung im Kontext von steigenden Anforderungen und Komplexität.
- Einordnung von Requirements Engineering in die Software-Entwicklungsprozesse und die Bedeutung der Anforderungsanalyse.
- Präsentation der UML als Modellierungssprache und Analyse ihrer Bedeutung für die Anforderungsdefinition und -modellierung.
- Bewertung der Vorteile und Nachteile der UML als Tool für die Softwareentwicklung.
- Bedeutung der UML für eine effiziente und effektive Kommunikation zwischen Stakeholdern.
Zusammenfassung der Kapitel
Die Arbeit beginnt mit einer Einleitung, die die Problemstellung des Requirements Engineering beleuchtet. Sie diskutiert die Herausforderungen und die Bedeutung der Anforderungsanalyse für den Erfolg von Softwareentwicklungsprojekten.
In den folgenden Kapiteln werden die Grundlagen und Probleme der Softwareentwicklung sowie die Grundlagen des Requirements Engineering erläutert. Dabei wird die historische Entwicklung, die Hauptaufgaben und die Techniken zur Ermittlung von Anforderungen detailliert beschrieben.
Kapitel 4 beschäftigt sich mit der Modellierung der fachlichen Lösung und untersucht verschiedene Analysemethoden. Dabei werden sowohl strukturierte als auch objektorientierte Konzepte und deren Anwendung im Kontext von Softwareentwicklung beleuchtet.
Kapitel 5 und 6 fokussieren sich auf die Unified Modeling Language (UML). Die historische Entwicklung der UML wird dargestellt, ihre Grundlagen und die Funktionsweise von UML-Tools werden erklärt. Kapitel 6 widmet sich den Modell- und Diagrammarten der UML und analysiert die Anwendung von Use-Case-Diagrammen, Aktivitätsdiagrammen und Klassendiagrammen. Es werden Praxisbeispiele zur Veranschaulichung der UML-Modellierung vorgestellt.
Schlüsselwörter
Requirements Engineering, UML, Softwareentwicklung, Modellierung, Anforderungsanalyse, Systemanalyse, Objektorientierte Analyse, Use-Case-Diagramm, Aktivitätsdiagramm, Klassendiagramm, Stakeholder, Erfolgsfaktor.
- Quote paper
- Thomas Panothiokas (Author), 2006, Requirements Engineering mit der UML als wesentlicher Erfolgsfaktor in der Software-Entwicklung, Munich, GRIN Verlag, https://www.grin.com/document/62857