6 Systemanalyse in der Softwareentwicklung

Die Systemanalyse ist ein fundamentaler Prozess in der Softwareentwicklung, der darauf abzielt, ein tiefgreifendes Verständnis für das aktuelle System und seine Anforderungen zu entwickeln. Sie dient als Grundlage für die Systemgestaltung und -implementierung. Der Fokus liegt auf der Erfassung, Analyse und Spezifikation der funktionalen und nicht-funktionalen Anforderungen des Systems. Die Systemanalyse ist somit ein kritischer Schritt, um sicherzustellen, dass das endgültige Produkt den Bedürfnissen der Benutzer entspricht und in der Lage ist, die festgelegten Geschäftsziele zu erreichen.

6.1 Teilaufgaben der Systemanalyse

Die Systemanalyse setzt sich aus mehreren Teilaufgaben zusammen, die zusammenwirken, um ein vollständiges Bild des zu entwickelnden oder zu verbessernden Systems zu erhalten:

  1. Bedarfsermittlung: Identifikation und Priorisierung der Anforderungen der Stakeholder, um die Ziele und den Umfang des Projekts zu definieren.

  2. Ist-Analyse: Untersuchung des aktuellen Systems (falls vorhanden) zur Identifizierung von Stärken, Schwächen und Verbesserungspotenzialen. Dies umfasst die Bewertung der vorhandenen Infrastruktur, Software, Arbeitsabläufe und Daten.

  3. Soll-Konzept: Entwicklung eines Zielmodells des Systems, das auf den ermittelten Anforderungen und der Ist-Analyse basiert. Dies beinhaltet die Definition der Systemarchitektur, Technologieauswahl und die Planung von Systemfunktionen.

  4. Feasibility-Studie (Machbarkeitsstudie): Bewertung der technischen, wirtschaftlichen und rechtlichen Machbarkeit des Soll-Konzepts. Dazu gehört die Analyse von Risiken, Kosten, Zeitrahmen und Ressourcenbedarf.

  5. Anforderungsspezifikation: Detaillierte Beschreibung der Systemanforderungen, inklusive funktionaler und nicht-funktionaler Anforderungen. Dies dient als Grundlage für die Systementwicklung und -testung.

  6. Modellierung: Entwicklung von Modellen, wie z.B. Datenflussdiagrammen oder UML-Diagrammen, um die Anforderungen und das Design des Systems visuell darzustellen.

Die Systemanalyse ist ein iterativer Prozess, der Anpassungen und Verfeinerungen erfordert, um den sich ändernden Anforderungen und Rahmenbedingungen gerecht zu werden. Durch die gründliche Ausführung dieser Teilaufgaben wird die Wahrscheinlichkeit erhöht, dass das entwickelte System den Anforderungen entspricht und erfolgreich implementiert werden kann.

6.2 Bedarfsermittlung: Identifikation und Priorisierung von Stakeholder-Anforderungen

Die Bedarfsermittlung ist ein zentraler Bestandteil der Systemanalyse, bei dem die Anforderungen der Stakeholder identifiziert und priorisiert werden, um die Ziele und den Umfang des Projekts klar zu definieren. Dieser Prozess ist entscheidend, um sicherzustellen, dass das zu entwickelnde System oder die Lösung den tatsächlichen Bedürfnissen der Nutzer entspricht und einen Mehrwert für die Organisation bietet.

6.2.1 Identifikation der Anforderungen

Die Identifikation der Anforderungen beginnt mit der umfassenden Sammlung aller Bedürfnisse, Wünsche und Erwartungen der Stakeholder bezüglich des neuen Systems. Stakeholder können dabei interne und externe Personen oder Gruppen sein, die direkt oder indirekt von dem Projekt betroffen sind, wie z.B. Endnutzer, Kunden, Projektmanager, IT-Personal und andere relevante Parteien. Methoden zur Sammlung dieser Informationen können Interviews, Umfragen, Workshops und Beobachtungen umfassen.

Schritte der Identifikation:

  1. Stakeholder-Identifikation: Festlegung aller relevanten Stakeholder des Projekts.
  2. Informationsgewinnung: Durchführung von Interviews, Umfragen und anderen Techniken zur Datensammlung.
  3. Anforderungsdokumentation: Festhalten der gesammelten Anforderungen in einem strukturierten Format, um eine klare Basis für die nächste Phase zu schaffen.

6.2.2 Priorisierung der Anforderungen

Nach der Sammlung der Anforderungen ist es notwendig, diese zu analysieren und zu priorisieren. Nicht alle gesammelten Anforderungen haben die gleiche Wichtigkeit oder sind unmittelbar umsetzbar. Die Priorisierung hilft dabei, den Fokus auf die kritischen Anforderungen zu legen, die für den Erfolg des Projekts entscheidend sind.

Methoden der Priorisierung:

6.2.3 Definition von Zielen und Umfang

Die klar definierten und priorisierten Anforderungen bilden die Grundlage für die Festlegung der Projektziele und den Umfang des Systems. Diese Phase umfasst die Festlegung dessen, was das Projekt erreichen soll (Ziele) und welche Funktionen und Prozesse das endgültige System umfassen wird (Umfang).

Schritte zur Definition:

  1. Zielsetzung: Formulierung klarer, messbarer Ziele, die mit den Unternehmenszielen und den Bedürfnissen der Stakeholder übereinstimmen.
  2. Umfangsfestlegung: Bestimmung der Grenzen des Projekts, einschließlich der zu liefernden Funktionen und der nicht zu berücksichtigenden Bereiche.

Die Bedarfsermittlung ist ein kritischer Schritt innerhalb der Systemanalyse, der die Weichen für den Erfolg des Projekts stellt. Durch eine gründliche Identifikation und Priorisierung der Anforderungen können Teams sicherstellen, dass sie ein System entwickeln, das den Bedürfnissen der Stakeholder gerecht wird und die festgelegten Ziele erreicht.

6.3 Ist-Analyse: Untersuchung des aktuellen Systems

Die Ist-Analyse ist ein wesentlicher Schritt in der Phase der Systemanalyse, der sich auf die gründliche Untersuchung des bestehenden Systems konzentriert, sofern eines vorhanden ist. Ziel ist es, ein tiefgreifendes Verständnis für die aktuellen Prozesse, die verwendete Technologie, die Infrastruktur und die Datenflüsse zu gewinnen. Dies ermöglicht es, Stärken, Schwächen und Verbesserungspotenziale zu identifizieren, die als Grundlage für die Entwicklung oder Verbesserung des neuen Systems dienen.

6.3.1 Bewertung der vorhandenen Infrastruktur

Die Untersuchung der bestehenden IT-Infrastruktur umfasst Hardware, Netzwerke, Server und Sicherheitssysteme. Dabei wird bewertet, inwiefern diese Komponenten den aktuellen Anforderungen gerecht werden und welche Limitationen vorliegen.

Zu berücksichtigende Aspekte:

6.3.2 Untersuchung der Software

Die Analyse der eingesetzten Softwarelösungen beinhaltet die Bewertung von Betriebssystemen, Anwendungen und Datenbankmanagementsystemen. Ziel ist es, die Eignung der Software für die Unterstützung der Geschäftsprozesse zu bestimmen.

Zu berücksichtigende Aspekte:

6.3.3 Bewertung der Arbeitsabläufe

Die Analyse der Arbeitsabläufe und Prozesse ist entscheidend, um Effizienz und potenzielle Engpässe im aktuellen System zu identifizieren. Dies umfasst die Untersuchung, wie Aufgaben ausgeführt werden, welche Abteilungen beteiligt sind und wie Informationen zwischen den Prozessschritten fließen.

Zu berücksichtigende Aspekte:

6.3.4 Analyse der Daten

Die Überprüfung der Daten umfasst die Analyse der Datenspeicherung, -verarbeitung und -nutzung. Es wird bewertet, wie Daten gesammelt, gespeichert, verarbeitet und genutzt werden, um Geschäftsentscheidungen zu treffen.

Zu berücksichtigende Aspekte:

Die Ist-Analyse liefert wertvolle Einblicke in das bestehende System und ist grundlegend für die Identifizierung von Verbesserungspotenzialen. Durch die detaillierte Untersuchung der Infrastruktur, Software, Arbeitsabläufe und Daten können Schwachstellen erkannt und adressiert werden, um die Basis für die Entwicklung eines verbesserten oder neuen Systems zu schaffen.

6.4 Soll-Konzept: Entwicklung eines Zielmodells des Systems

Nach der sorgfältigen Durchführung der Ist-Analyse und der Ermittlung der Anforderungen schließt sich die Entwicklung des Soll-Konzepts an. Das Soll-Konzept beschreibt ein Zielmodell des zu entwickelnden oder zu verbessernden Systems. Es basiert auf den zuvor identifizierten Anforderungen und den Erkenntnissen aus der Ist-Analyse. Ziel ist es, ein detailliertes Bild des angestrebten Endzustands zu skizzieren, einschließlich der Systemarchitektur, der Technologieauswahl und der geplanten Systemfunktionen.

6.4.1 Definition der Systemarchitektur

Die Systemarchitektur umfasst die strukturelle Gestaltung des Systems, einschließlich seiner Hauptkomponenten und deren Interaktion. Sie dient als Blaupause für die Entwicklung und Implementierung.

Zu berücksichtigende Aspekte:

6.4.2 Technologieauswahl

Die Auswahl der Technologien ist ein kritischer Schritt, der die Leistungsfähigkeit, Flexibilität und Zukunftsfähigkeit des Systems maßgeblich beeinflusst.

Zu berücksichtigende Aspekte:

6.4.3 Planung von Systemfunktionen

Die Planung der Systemfunktionen basiert auf den gesammelten Anforderungen und zielt darauf ab, die Funktionalität des Systems detailliert zu beschreiben.

Zu berücksichtigende Aspekte:

Das Soll-Konzept stellt einen umfassenden Plan für das zukünftige System dar und bildet die Grundlage für die nachfolgenden Phasen der Systementwicklung. Durch die detaillierte Ausarbeitung der Systemarchitektur, der sorgfältigen Auswahl der Technologien und der präzisen Planung der Systemfunktionen wird sichergestellt, dass das Endprodukt den Anforderungen der Stakeholder entspricht und einen echten Mehrwert bietet.

6.5 Feasibility-Studie (Machbarkeitsstudie)

Die Feasibility-Studie, auch Machbarkeitsstudie genannt, ist ein entscheidender Schritt nach der Entwicklung des Soll-Konzepts. Sie dient dazu, die technische, wirtschaftliche und rechtliche Machbarkeit des geplanten Systems umfassend zu bewerten. Ziel ist es, sicherzustellen, dass das Projekt realisierbar ist, bevor umfangreiche Ressourcen für die Entwicklung bereitgestellt werden. Die Studie umfasst die Analyse von Risiken, Kosten, Zeitrahmen und Ressourcenbedarf.

6.5.1 Technische Machbarkeit

Die technische Machbarkeit konzentriert sich auf die Bewertung, ob die geplante technische Lösung mit den vorhandenen Technologien und Ressourcen realisiert werden kann.

Zu berücksichtigende Aspekte:

6.5.2 Wirtschaftliche Machbarkeit

Die wirtschaftliche Machbarkeit beurteilt, ob das Projekt aus finanzieller Sicht sinnvoll ist und einen positiven Return on Investment (ROI) erwarten lässt.

Zu berücksichtigende Aspekte:

6.5.3 Rechtliche Machbarkeit

Die rechtliche Machbarkeit prüft, ob das Projekt alle relevanten gesetzlichen und regulatorischen Anforderungen erfüllt.

Zu berücksichtigende Aspekte:

6.5.4 Risikoanalyse

Die Risikoanalyse identifiziert potenzielle Hindernisse und Herausforderungen, die das Projekt gefährden könnten, und schlägt Maßnahmen zur Risikominderung vor.

Zu berücksichtigende Aspekte:

Die Feasibility-Studie ist ein umfassender Prozess, der entscheidend für die Validierung des Soll-Konzepts ist. Durch die gründliche Bewertung der Machbarkeit in technischer, wirtschaftlicher und rechtlicher Hinsicht sowie die sorgfältige Risikoanalyse können Entscheidungsträger fundierte Entscheidungen treffen und das Projekt mit größerer Sicherheit vorantreiben.

6.6 Anforderungsspezifikation

Die Anforderungsspezifikation ist ein kritischer Schritt in der Systementwicklung, der eine detaillierte und präzise Beschreibung aller Systemanforderungen umfasst. Sie dient als zentrale Grundlage für die Entwicklung, das Design und die Testung des Systems. Eine gut definierte Anforderungsspezifikation stellt sicher, dass alle Projektbeteiligten ein einheitliches Verständnis der Ziele und Erwartungen haben und reduziert das Risiko von Missverständnissen und Fehlentwicklungen.

6.6.1 Funktionale Anforderungen

Funktionale Anforderungen beschreiben die spezifischen Funktionen und Verhaltensweisen, die das System ausführen soll. Sie definieren, was das System tun muss, um die Bedürfnisse der Benutzer und Stakeholder zu erfüllen.

Beispiele für funktionale Anforderungen:

  1. Benutzerregistrierung und Authentifizierung: Das System muss Benutzern ermöglichen, sich zu registrieren und sich mit Benutzername und Passwort anzumelden.
  2. Datenverarbeitung: Das System muss in der Lage sein, Benutzereingaben zu verarbeiten und entsprechende Ergebnisse zu liefern.
  3. Berichterstattung: Das System muss Berichte basierend auf gesammelten Daten generieren können.

6.6.2 Nicht-funktionale Anforderungen

Nicht-funktionale Anforderungen spezifizieren Kriterien, die verwendet werden können, um die Operation des Systems zu bewerten, aber nicht dessen spezifisches Verhalten. Sie beziehen sich auf die Qualität und die Rahmenbedingungen des Systems.

Beispiele für nicht-funktionale Anforderungen:

  1. Leistung: Das System muss in der Lage sein, eine bestimmte Anzahl von Transaktionen pro Sekunde zu unterstützen und Antwortzeiten unter einer spezifizierten Grenze zu halten.
  2. Sicherheit: Das System muss sicherstellen, dass alle Benutzerdaten verschlüsselt und vor unbefugtem Zugriff geschützt sind.
  3. Benutzerfreundlichkeit: Das System sollte eine intuitive Benutzeroberfläche haben, die es Benutzern ermöglicht, ihre Ziele effizient und zufriedenstellend zu erreichen.

6.6.3 Erstellung der Anforderungsspezifikation

Die Erstellung der Anforderungsspezifikation umfasst mehrere Schritte:

  1. Sammlung und Analyse der Anforderungen: Zusammenführung aller funktionalen und nicht-funktionalen Anforderungen aus der Anforderungsanalyse.
  2. Dokumentation: Detaillierte Beschreibung der Anforderungen in einem strukturierten Dokument, oft begleitet von Diagrammen und Modellen zur Visualisierung der Systemarchitektur und -prozesse.
  3. Review und Validierung: Überprüfung der Anforderungsspezifikation durch Stakeholder, um sicherzustellen, dass alle Anforderungen korrekt und vollständig erfasst wurden.

Die Anforderungsspezifikation ist ein wesentliches Dokument, das als verbindliche Vereinbarung zwischen allen Projektbeteiligten dient. Sie legt die Grundlage für die nachfolgenden Phasen der Systementwicklung und -testung fest und ist entscheidend für die erfolgreiche Realisierung des Projekts. Durch die sorgfältige Definition und Dokumentation der Anforderungen können Entwickler und Tester ihre Arbeit effektiv ausrichten und ein System liefern, das den Erwartungen entspricht.

6.7 Modellierung: Entwicklung von Systemmodellen

Die Modellierung dient dazu die Anforderungen und das Design des Systems visuell darzustellen. Durch den Einsatz von Modellen wie Datenflussdiagrammen, UML-Diagrammen und anderen grafischen Werkzeugen können komplexe Systemstrukturen, Prozesse und Interaktionen verständlich gemacht werden. Diese visuelle Darstellung erleichtert die Kommunikation zwischen den Projektbeteiligten, unterstützt die Analyse und das Design des Systems und dient als Grundlage für die weitere Entwicklung und Testung.

6.7.1 Bedeutung der Modellierung

6.7.2 Typen von Modellen

6.7.2.1 Datenflussdiagramme (DFD)

Datenflussdiagramme visualisieren den Fluss von Informationen durch das System. Sie zeigen, wie Daten zwischen Prozessen, Datenspeichern und externen Entitäten bewegt werden.

6.7.2.2 Unified Modeling Language (UML)

UML ist eine standardisierte Modellierungssprache, die eine Reihe von Diagrammtypen bietet, um verschiedene Aspekte eines Systems darzustellen:

6.7.3 Prozess der Modellierung

  1. Anforderungsanalyse: Ausgangspunkt der Modellierung ist das Verständnis der Systemanforderungen.
  2. Auswahl der Modellierungswerkzeuge: Entscheidung für geeignete Werkzeuge und Diagrammtypen basierend auf den zu visualisierenden Aspekten.
  3. Erstellung der Modelle: Entwicklung der Diagramme und Modelle, die die Systemanforderungen und das Design abbilden.
  4. Review und Anpassung: Überprüfung der Modelle mit Projektbeteiligten und Anpassung basierend auf Feedback.

Die Modellierung ist ein unverzichtbarer Schritt in der Systementwicklung, der nicht nur die Planung und Analyse erleichtert, sondern auch eine solide Grundlage für die Implementierung und Testung des Systems bildet. Durch die visuelle Darstellung der Anforderungen und des Systemdesigns tragen Modelle entscheidend zum Erfolg des Entwicklungsprozesses bei.

6.8 Aufgabe: Systemanalyse in der Praxis

6.8.1 Ziel

Nachdem Sie die Anforderungen für die Entwicklung einer Website für Bürgeranfragen gesammelt und spezifiziert haben, sollen Sie nun eine vereinfachte Systemanalyse durchführen. Das Ziel ist es, ein grundlegendes Verständnis für die Systemarchitektur und die notwendigen Technologien zu entwickeln, die für die Implementierung des Projekts erforderlich sind.

6.8.1.1 Zeitrahmen: 1 - 2 Stunden

6.8.2 Schritte

6.8.2.1 1. Soll-Konzept Skizzierung (30 Minuten)

6.8.2.2 2. Technologieauswahl (20 Minuten)

6.8.2.3 3. Einfache Modellierung (30 - 40 Minuten)

6.8.3 Anforderungen

6.8.4 Hinweise für die Durchführung

Diese Aufgabe ist so gestaltet, dass sie praktische Einblicke in die Systemanalyse bietet, ohne dass tiefergehende technische Details oder eine vollständige Implementierung erforderlich sind. Sie baut auf den Ergebnissen der Anforderungsanalyse auf und erweitert das Verständnis der Teilnehmer für die nächsten Schritte in der Systementwicklung.

6.9 Musterlösung: Systemanalyse für eine Bürgeranfragen-Website

6.9.1 1. Soll-Konzept Skizzierung

Systemarchitektur-Skizze:

6.9.2 2. Technologieauswahl

6.9.3 3. Einfache Modellierung

UML-Anwendungsfalldiagramm:

6.10 Präsentation der Ergebnisse

Die Gruppe präsentiert die Skizze der Systemarchitektur, erläutert die Auswahl der Technologien und zeigt das erstellte UML-Anwendungsfalldiagramm. Die Präsentation sollte die Entscheidungsgründe für die Technologieauswahl und die Bedeutung der verschiedenen Anwendungsfälle im Diagramm hervorheben.

Diese Musterlösung dient als Orientierung für die Teilnehmer, wie sie die Aufgabe der Systemanalyse strukturiert angehen können. Es ist wichtig, dass die Teilnehmer verstehen, dass diese Lösung nur ein Beispiel ist und ihre eigene Analyse auf den spezifischen Anforderungen und Gegebenheiten ihres Projekts basieren sollte.