4 Anforderungsanalyse

4.1 Überblick

Die Anforderungsanalyse bildet das Herzstück der Planungsphase eines jeden Softwareprojekts. Sie ist der Prozess, in dem die Bedürfnisse, Wünsche und Einschränkungen, die an die Software gestellt werden, systematisch erfasst, untersucht und spezifiziert werden. Diese Phase ist entscheidend, da sie den Grundstein für die gesamte Projektentwicklung legt und sicherstellt, dass das Endprodukt die Erwartungen der Stakeholder erfüllt.

4.1.1 Ziel der Anforderungsanalyse

Das Hauptziel der Anforderungsanalyse ist es, ein klares, detailliertes Verständnis der funktionalen und nicht-funktionalen Anforderungen an das zu entwickelnde System zu erlangen. Funktionale Anforderungen beschreiben, was das System tun soll, während nicht-funktionale Anforderungen Aspekte wie Leistung, Sicherheit, Usability und Compliance umfassen.

4.1.2 Prozess der Anforderungsanalyse

Der Prozess beginnt typischerweise mit der Sammlung von Anforderungen durch verschiedene Techniken wie Interviews, Fragebögen, Workshops, Beobachtung und Dokumentenanalyse. Diese initialen Informationen werden dann analysiert, um Widersprüche aufzulösen und Unklarheiten zu klären. Anschließend werden die Anforderungen dokumentiert, oft in Form von Anforderungsspezifikationen, User Stories oder Use Cases.

4.1.3 Wichtigkeit der Stakeholder-Einbindung

Ein Schlüsselaspekt der Anforderungsanalyse ist die enge Einbindung aller Stakeholder, einschließlich Endnutzer, Projektmanager, Entwickler und Kunden. Ihre Beteiligung ist essenziell, um sicherzustellen, dass alle Perspektiven berücksichtigt werden und dass das Projektziel klar definiert und verstanden wird.

4.1.4 Herausforderungen

Die Anforderungsanalyse steht vor mehreren Herausforderungen, darunter die Ermittlung impliziter Bedürfnisse, die Vermeidung von Missverständnissen und die Anpassung an sich ändernde Anforderungen im Laufe des Projekts. Eine effektive Anforderungsanalyse erfordert daher nicht nur technisches Verständnis, sondern auch kommunikative Fähigkeiten und ein gutes Projektmanagement.

Die Anforderungsanalyse ist ein kritischer Schritt in der Softwareentwicklung, der den Erfolg eines Projekts maßgeblich beeinflusst. Durch die sorgfältige Sammlung, Analyse und Dokumentation der Anforderungen wird eine solide Basis für die nachfolgende Design- und Entwicklungsphase geschaffen. In den folgenden Kapiteln werden wir uns detaillierter mit den spezifischen Techniken und Methoden der Anforderungsanalyse beschäftigen, um ein tieferes Verständnis ihrer Durchführung und Bedeutung zu erlangen.

4.2 Grundlagen der Anforderungsanalyse

Die Anforderungsanalyse ist der Prozess, bei dem die Bedürfnisse, Wünsche und Einschränkungen der Stakeholder eines Projekts ermittelt und analysiert werden, um ein klares Verständnis der Anforderungen an das zu entwickelnde System zu gewinnen. Auch diese Phase ist fundamental, da sie die Basis für alle nachfolgenden Schritte der Softwareentwicklung bildet, von der Systemarchitektur bis hin zur Implementierung und dem Testen.

4.2.1 Definition der Anforderungsanalyse

Anforderungsanalyse, oft auch als Requirements Engineering bezeichnet, umfasst die systematische Erfassung, Organisation, Prüfung und Dokumentation der Anforderungen, die an ein Softwareprodukt gestellt werden. Diese Anforderungen werden in der Regel in zwei Hauptkategorien unterteilt:

4.2.2 Bedeutung der Anforderungsanalyse

Die Bedeutung der Anforderungsanalyse im Softwareentwicklungsprozess kann nicht hoch genug eingeschätzt werden, da sie direkte Auswirkungen auf die Qualität und den Erfolg des Endprodukts hat. Einige der wichtigsten Gründe, warum die Anforderungsanalyse so kritisch ist, umfassen:

Die Anforderungsanalyse ist mehr als nur ein erster Schritt in der Entwicklung von Software; sie ist das Fundament, auf dem das gesamte Projekt aufgebaut ist. Ein sorgfältiger und methodischer Ansatz in dieser Phase trägt erheblich dazu bei, die Weichen für den Erfolg des Projekts zu stellen. Durch die Gewährleistung, dass alle Anforderungen von Anfang an klar verstanden und dokumentiert sind, können Teams effizienter arbeiten, die Zufriedenheit der Stakeholder verbessern und letztendlich ein Produkt liefern, das den Erwartungen entspricht oder diese sogar übertrifft.

4.3 Stakeholder-Identifikation und -Einbindung

Die Identifikation und Einbindung der Stakeholder ist ein essenzieller Schritt in der Anforderungsanalyse. Stakeholder sind Individuen oder Gruppen, die ein Interesse am Projekt oder System haben und von dessen Ausführung oder Endprodukt betroffen sind. Sie können aus verschiedenen Bereichen wie dem Management, den Endnutzern, dem Entwicklungsteam und externen Partnern stammen. Die richtige Identifikation und Einbindung dieser Stakeholder ist entscheidend für den Erfolg eines Projekts, da sie wertvolle Einsichten und Anforderungen liefern können.

Ein Steak holder…

4.3.1 Identifikation der Stakeholder

Der erste Schritt besteht darin, alle potenziellen Stakeholder des Projekts zu identifizieren. Dies kann durch eine Reihe von Methoden geschehen:

4.3.2 Einbindung der Stakeholder

Nach der Identifikation der Stakeholder ist es wichtig, sie angemessen in den Prozess der Anforderungserhebung einzubinden. Dies sichert ihre Unterstützung und gewährleistet, dass ihre Bedürfnisse und Anforderungen erfasst werden.

4.3.3 Herausforderungen bei der Stakeholder-Einbindung

Die Einbindung von Stakeholdern kann mehrere Herausforderungen mit sich bringen, einschließlich:

Die Identifikation und Einbindung der Stakeholder ist ein kritischer Prozess in der Anforderungsanalyse, der nicht unterschätzt werden darf. Durch die systematische Identifikation aller relevanten Stakeholder und ihre aktive Einbindung in den Prozess können wertvolle Einsichten gewonnen und ein umfassendes Verständnis der Anforderungen sichergestellt werden. Dies bildet die Grundlage für die Entwicklung eines erfolgreichen Produkts, das die Bedürfnisse aller Beteiligten erfüllt.

4.4 Methoden der Anforderungserhebung

Die Anforderungserhebung ist ein zentraler Bestandteil der Anforderungsanalyse im Softwareentwicklungsprozess. Sie umfasst verschiedene Techniken und Werkzeuge, um ein umfassendes Verständnis der Bedürfnisse, Wünsche und Erwartungen aller Stakeholder zu gewinnen. Eine effektive Anforderungserhebung ermöglicht es dem Projektteam, funktionale und nicht-funktionale Anforderungen präzise zu definieren und sicherzustellen, dass das Endprodukt den Benutzeranforderungen entspricht. Im Folgenden wird ein Überblick über die gängigsten Methoden der Anforderungserhebung gegeben.

4.4.1 Interviews

Interviews sind eine der direktesten und effektivsten Methoden, um Anforderungen zu sammeln. Sie ermöglichen eine tiefe Einsicht in die Bedürfnisse und Erwartungen der Stakeholder.

4.4.2 Umfragen und Fragebögen

Umfragen und Fragebögen sind effizient für die Sammlung von Anforderungen von einer großen Anzahl von Personen. Sie sind besonders nützlich, um quantitative Daten zu sammeln und Trends zu identifizieren.

4.4.3 Workshops

Workshops bieten eine interaktive Umgebung, in der Stakeholder gemeinsam Anforderungen diskutieren und entwickeln können.

4.4.4 Beobachtungen

Beobachtungen ermöglichen es dem Analyseteam, Nutzer bei der Arbeit zu sehen und unmittelbare Einsichten in die Benutzerinteraktion und bestehende Prozesse zu gewinnen.

4.4.5 Prototyping

Prototyping ist eine interaktive Technik, bei der frühe Versionen des Systems entwickelt werden, um Anforderungen durch direktes Feedback der Benutzer zu validieren und zu verfeinern.

Die Auswahl der richtigen Methoden der Anforderungserhebung ist entscheidend für den Erfolg eines Projekts. Jede Methode hat ihre Stärken und Schwächen und sollte basierend auf den spezifischen Bedürfnissen des Projekts, den zur Verfügung stehenden Ressourcen und der Zusammensetzung der Stakeholder ausgewählt werden. Eine Kombination dieser Techniken führt oft zu den besten Ergebnissen, indem sie ein vollständigeres Bild der Anforderungen liefert und die Grundlage für die Entwicklung eines erfolgreichen Endprodukts schafft.

4.5 Dokumentation von Anforderungen

Die Dokumentation von Anforderungen ist ebenfalls ein kritischer Schritt in der Anforderungsanalyse. Sie stellt sicher, dass alle gesammelten Informationen strukturiert, nachvollziehbar und für alle Projektbeteiligten zugänglich sind. Eine klare und präzise Anforderungsdokumentation ist entscheidend für den Projekterfolg, da sie als Grundlage für Design, Entwicklung, Testen und letztendlich für die Bewertung des Endprodukts dient. Im Folgenden werden verschiedene Formate und Best Practices für die Anforderungsdokumentation beschrieben.

4.5.1 User Stories

User Stories sind eine populäre Methode, um Anforderungen in agilen Entwicklungsprozessen zu dokumentieren. Sie fokussieren auf den Wert, den eine Anforderung aus Nutzersicht bietet, und sind in einer einfachen, verständlichen Sprache verfasst.

4.5.2 Use Cases

Use Cases beschreiben, wie ein Benutzer mit dem System interagiert, um ein spezifisches Ziel zu erreichen. Sie sind detaillierter als User Stories und bieten einen umfassenden Überblick über die Funktionalität des Systems.

4.5.3 Funktionale Spezifikationen

Funktionale Spezifikationen (auch als funktionale Anforderungsdokumente bekannt) bieten eine detaillierte Beschreibung der Systemfunktionalität und -verhalten aus einer technischen Perspektive.

4.5.4 Best Practices für die Anforderungsdokumentation

Die Wahl des richtigen Formats für die Anforderungsdokumentation hängt von verschiedenen Faktoren ab, einschließlich der Projektmethodik, der Komplexität des Projekts und der Präferenzen der Stakeholder. Unabhängig vom gewählten Format ist es wichtig, Best Practices zu folgen, um sicherzustellen, dass die Anforderungen klar, vollständig und verständlich dokumentiert sind. Eine effektive Anforderungsdokumentation ist der Schlüssel zu einem erfolgreichen Softwareentwicklungsprojekt, da sie eine solide Grundlage für alle nachfolgenden Entwicklungsphasen bildet.

4.6 Dokumentenformat

Die Auswahl des Dokumentenformats ist ein wichtiger und zugleich häufig übersehener Schritt in der Planungs- und Dokumentationsphase. Obwohl diese Wahl natürlich in der Verantwortung der Projektteilnehmer liegt, wird dringend empfohlen, sich an etablierten Standards zu orientieren, um Konsistenz, Zugänglichkeit und die Langzeitverwertbarkeit der Dokumente sicherzustellen. Oftmals wird der Bedeutung dieser Entscheidung nicht die notwendige Beachtung geschenkt, was fundamentale Auswirkungen haben kann, die die Grundlage für zukünftige Arbeiten beeinträchtigen.

4.6.1 Bedeutung von Standards

Die Verwendung von standardisierten Dokumentenformaten bietet mehrere Vorteile:

4.6.2 Empfehlung für das Markdown-Format

Aus diesen Gründen empfehlen wir das Markdown-Format für die Projektdokumentation. Markdown bietet zahlreiche Vorteile, die es besonders attraktiv für sowohl Open-Source- als auch kommerzielle Projekte machen:

4.6.3 Proprietäre Formate: Risiken und Nachteile

Die Verwendung von proprietären Dokumentenformaten kann zu verschiedenen Problemen führen:

4.6.4 Fazit

Die Wahl des Dokumentenformats hat langfristige Auswirkungen auf die Zugänglichkeit, Bearbeitbarkeit und den Austausch von Projektdokumenten. Durch die Entscheidung für ein offenes, standardisiertes Format wie Markdown können Teams diese Risiken minimieren und von einer flexiblen, tool-unabhängigen Dokumentationsmethode profitieren, die sowohl in der Open-Source-Welt als auch in kommerziellen Projekten weit verbreitet und akzeptiert ist.

4.7 Priorisierung und Validierung von Anforderungen

Die Phasen der Priorisierung und Validierung von Anforderungen sind entscheidende Schritte im Prozess der Anforderungsanalyse. Sie gewährleisten, dass das Entwicklungsteam sich auf die wichtigsten Anforderungen konzentriert und dass diese Anforderungen korrekt verstanden und akzeptiert wurden. Eine effektive Priorisierung und Validierung helfen, Ressourcen effizient zu allozieren und die Entwicklung eines Produkts zu steuern, das den Erwartungen der Stakeholder entspricht.

4.7.1 Priorisierung von Anforderungen

Aufgrund begrenzter Ressourcen und Zeitrahmen ist es oft nicht möglich, alle gesammelten Anforderungen sofort umzusetzen. Daher ist die Priorisierung von Anforderungen ein kritischer Schritt, um zu bestimmen, welche Anforderungen den größten Wert liefern und zuerst adressiert werden sollten.

4.7.1.1 Ansätze zur Priorisierung

4.7.1.2 Best Practices

4.7.2 Validierung von Anforderungen

Die Validierung von Anforderungen ist der Prozess der Überprüfung, ob die dokumentierten Anforderungen die tatsächlichen Bedürfnisse der Stakeholder widerspiegeln und ob sie realisierbar sind.

4.7.2.1 Methoden zur Validierung

4.7.2.2 Best Practices

Die Priorisierung und Validierung von Anforderungen sind wesentliche Schritte, um sicherzustellen, dass ein Softwareprojekt die richtigen Ziele verfolgt und die Erwartungen der Stakeholder erfüllt. Durch die Anwendung strukturierter Ansätze und Best Practices können Teams die Entwicklung effizient steuern und ein Produkt liefern, das sowohl wertvoll als auch von hoher Qualität ist.

4.8 Umgang mit sich ändernden Anforderungen

Der Umgang mit sich ändernden Anforderungen ist eine der größten Herausforderungen in der Softwareentwicklung, insbesondere in agilen Projekten, wo Flexibilität und Anpassungsfähigkeit zentral sind. Änderungen in den Anforderungen können aus verschiedenen Gründen notwendig werden, darunter neue Marktbedingungen, veränderte Benutzerbedürfnisse oder technologische Fortschritte. Ein effektives Änderungsmanagement ist entscheidend, um sicherzustellen, dass das Projekt erfolgreich bleibt und die Endprodukte den Erwartungen der Stakeholder entsprechen.

4.8.1 Akzeptanz von Änderungen als Norm

Ein Schlüsselaspekt beim Umgang mit sich ändernden Anforderungen ist die Anerkennung, dass Änderungen normal und oft unvermeidlich sind. Dies erfordert eine Kultur, in der Flexibilität gefördert und eine positive Fehlerkultur etabliert wird. Projektbeteiligte müssen verstehen, dass es normal ist, dass nicht alle Anforderungen von Anfang an vollständig erkannt werden können.

4.8.2 Strategien für das Management von Änderungen

4.8.2.1 1. Agile Methodologien

Agile Methodologien wie Scrum oder Kanban sind darauf ausgelegt, mit sich ändernden Anforderungen umzugehen. Sie ermöglichen regelmäßige Überprüfungen und Anpassungen des Projektfortschritts und der Anforderungen durch iterative Entwicklungszyklen.

4.8.2.2 2. Änderungskontrollverfahren

Ein formalisiertes Änderungskontrollverfahren hilft, Änderungen systematisch zu erfassen, zu bewerten und zu genehmigen. Dies umfasst in der Regel die Einreichung von Änderungsanträgen, die Bewertung der Auswirkungen, die Entscheidung über die Umsetzung und die Dokumentation der Änderung.

4.8.2.3 3. Priorisierung von Anforderungen

Nicht alle Änderungen sind gleich wichtig. Die Priorisierung von Anforderungen ermöglicht es Teams, sich auf die wichtigsten Änderungen zu konzentrieren und Ressourcen effizient einzusetzen.

4.8.2.4 4. Kommunikation und Stakeholder-Einbindung

Offene und regelmäßige Kommunikation mit allen Stakeholdern über potenzielle Änderungen und deren Auswirkungen ist entscheidend. Die Einbindung der Stakeholder in den Entscheidungsprozess stellt sicher, dass Änderungen breit unterstützt werden.

4.8.2.5 5. Anpassungsfähige Architektur

Die Entwicklung einer flexiblen Systemarchitektur, die leicht modifiziert werden kann, ohne das gesamte System zu beeinträchtigen, ist ein weiterer Schlüssel zum effektiven Umgang mit Änderungen. Dies kann durch die Verwendung von modularen Designs und der Prinzipien der Serviceorientierten Architektur (SOA) erreicht werden.

4.8.2.6 6. Continuous Integration und Continuous Deployment (CI/CD)

CI/CD-Praktiken unterstützen das schnelle und effiziente Management von Änderungen, indem sie automatisierte Tests und Deployments ermöglichen. Dies hilft, die Risiken, die mit Änderungen verbunden sind, zu minimieren und die Qualität des Endprodukts zu sichern.

Der Umgang mit sich ändernden Anforderungen erfordert eine proaktive Planung, eine flexible Projektmanagementmethodologie und eine Kultur, die Änderungen als Teil des Entwicklungsprozesses akzeptiert. Durch die Implementierung der oben genannten Strategien können Teams Änderungen effektiv managen und sicherstellen, dass ihre Projekte auch in einem sich ständig wandelnden Umfeld erfolgreich sind.

4.9 Amplified Feedback im DevOps-Prozessmodell

Das Prinzip des Amplified Feedback ist ein Kernkonzept im DevOps-Prozessmodell, das darauf abzielt, die Kommunikation und Rückmeldung zwischen den verschiedenen Phasen der Softwareentwicklung zu verstärken. Ziel ist es, Probleme, Fehler und übersehene Anforderungen so früh wie möglich im Entwicklungszyklus zu erkennen und zu beheben, um die Kosten für nachträgliche Änderungen zu minimieren.

4.9.1 Prinzipien des Amplified Feedback

4.9.2 Vorteile des Amplified Feedback

4.9.3 Implementierung von Amplified Feedback

Um Amplified Feedback wirksam zu implementieren, sind bestimmte Praktiken und Werkzeuge notwendig:

4.9.4 Beispiel zur Veranschaulichung

Angenommen, ein Fehler oder eine übersehene Anforderung wird in der Designphase eines Projekts entdeckt. In diesem frühen Stadium kann die Korrektur einfach durch eine Anpassung der Designspezifikationen erfolgen, ohne dass bereits geschriebener Code geändert werden muss. Im Vergleich dazu würde die Entdeckung desselben Fehlers nach der Implementierung nicht nur die Korrektur des Codes erfordern, sondern auch zusätzliche Tests und möglicherweise eine Überarbeitung der Architektur oder der Benutzeroberfläche.

Diese Situation verdeutlicht, warum der integrative Ansatz von DevOps, der auf Amplified Feedback basiert, dem linearen Modell überlegen ist. Obwohl der kontinuierliche Feedback-Prozess auf den ersten Blick aufwändiger erscheint, führt er langfristig zu niedrigeren Kosten, höherer Qualität und einer effizienteren Entwicklung, indem er sicherstellt, dass Fehler und Anforderungen frühzeitig erkannt und adressiert werden.

4.10 Aufgabe: Durchführung einer Anforderungsanalyse

4.10.1 Zielsetzung

Basierend auf den vorherigen Ergebnissen der Ideensammlung sollen die Gruppen nun eine Anforderungsanalyse für das Projekt “Entwicklung einer Website für Bürgeranfragen” durchführen. Ziel ist es, die gesammelten Ideen in konkrete, dokumentierte Anforderungen zu überführen, die als Grundlage für die weitere Projektentwicklung dienen.

4.10.2 Dauer: 1 Stunde

4.10.3 Aufgabenbeschreibung

  1. Review der Ideensammlung (10 Minuten)
  2. Definition von Anforderungen (20 Minuten)
  3. Priorisierung der Anforderungen (15 Minuten)
  4. Erstellung einer Anforderungsübersicht (15 Minuten)

4.10.4 Ergebnispräsentation

4.10.5 Hinweise für die Durchführung

Diese Aufgabenstellung zielt darauf ab, die Teilnehmer in die Praxis der Anforderungsanalyse einzuführen und ihnen zu ermöglichen, die Theorie durch praktische Anwendung zu verstehen. Die Aufgabe ist so gestaltet, dass sie innerhalb einer Stunde durchführbar ist, und deckt die wesentlichen Aspekte der Anforderungsanalyse ab.

4.11 Musterlösung

Eine konkrete Lösung für die Anforderungsanalyse einer Website für Bürgeranfragen könnte wie folgt aussehen:

4.11.1 Anforderungsanalyse: Website für Bürgeranfragen

4.11.1.1 Unterscheidung zwischen funktionalen und nicht funktionalen Aspekten im Softwaredesign

4.11.1.1.1 Funktionale Aspekte

Funktionale Aspekte beschreiben, was eine Software tun soll. Sie beziehen sich auf spezifische Anforderungen und Funktionen, die durch die Software erfüllt oder bereitgestellt werden. Zu den funktionalen Aspekten gehören:

4.11.1.1.2 Nicht funktionale Aspekte

Nicht funktionale Aspekte betreffen, wie gut eine Software ihre Funktionen erfüllt. Sie sind nicht direkt mit den spezifischen Aufgaben der Software verbunden, sondern mit den Bedingungen, unter denen diese Aufgaben ausgeführt werden. Zu den nicht funktionalen Aspekten gehören:

4.11.1.2 Funktionale Anforderungen

  1. Benutzerkonto und Verwaltung
  2. Einreichung von Anfragen
  3. Statusverfolgung
  4. Kommunikation und Feedback

4.11.1.3 Nicht-funktionale Anforderungen

  1. Barrierefreiheit
  2. Datenschutzkonformität

4.11.1.4 Priorisierung der Anforderungen

4.11.2 Zeitrahmen für die Gruppenarbeit

Diese Musterlösung dient als Beispiel dafür, was die Teilnehmer am Ende der Anforderungsanalyse-Phase erreichen sollen. Sie beinhaltet eine klare Unterscheidung zwischen funktionalen und nicht-funktionalen Anforderungen, eine Priorisierung basierend auf der Wichtigkeit für das Projekt und berücksichtigt wichtige Aspekte wie Barrierefreiheit und Datenschutzkonformität.

4.12 Aufgabenstellung: Erstellung eines Use-Case-Diagramms für ein Bürgerportal

4.12.1 Ziel:

Aus einer vorangegangenen Spezifikation für ein Bürgerportal, die in der Anforderungsanalyse erarbeitet wurde, soll ein Use-Case-Diagramm erstellt werden. Das Diagramm soll die verschiedenen Interaktionen zwischen den Nutzern des Portals und den angebotenen Dienstleistungen visualisieren.

4.12.2 Werkzeugauswahl:

Die Teilnehmer können das Werkzeug zur Erstellung des Use-Case-Diagramms frei wählen. Mögliche Optionen sind:

Jedes dieser Werkzeuge kann genutzt werden, um die Anforderungen der Aufgabe zu erfüllen. Die Wahl sollte basierend auf persönlicher Präferenz, Verfügbarkeit und der Eignung für die spezifischen Anforderungen des Projekts getroffen werden.

4.12.3 Voraussetzungen (optional):

Obwohl die folgenden Voraussetzungen als optional betrachtet werden, könnten sie dabei helfen, ein umfassenderes und detaillierteres Use-Case-Diagramm zu erstellen:

Diese Voraussetzungen bieten eine solide Grundlage für die Erstellung des Use-Case-Diagramms und erleichtern die Visualisierung der Interaktionen zwischen den Akteuren und den Systemfunktionen. Die Berücksichtigung dieser optionalen Voraussetzungen kann dazu beitragen, ein präziseres und nützlicheres Diagramm zu entwickeln, das die Anforderungen und Erwartungen an das Bürgerportal klar widerspiegelt.

4.13 Musterlösung: Use-Case-Diagramm für ein Bürgerportal

4.13.1 Akteure:

  1. Bürger: Nutzer, die Informationen suchen, Dienste beantragen oder Dokumente einreichen möchten.
  2. Verwaltungsmitarbeiter: Personen, die Anträge bearbeiten, Informationen zur Verfügung stellen und die Inhalte des Portals aktualisieren.
  3. Systemadministrator: Verantwortlich für die Wartung und technische Verwaltung des Portals.

4.13.2 Use-Cases:

  1. Informationen suchen:
  2. Dienste beantragen:
  3. Dokumente einreichen:
  4. Anträge bearbeiten:
  5. Inhalte aktualisieren:
  6. System verwalten:

4.13.3 Beziehungen zwischen Use-Cases:

Diese Beschreibung bietet eine Grundlage, um ein Use-Case-Diagramm zu skizzieren, das die Kernfunktionalitäten eines Bürgerportals und die Interaktionen der verschiedenen Akteure mit diesen Funktionalitäten darstellt. Die Erstellung des Diagramms mit einem der vorgeschlagenen Werkzeuge würde es ermöglichen, diese Struktur visuell umzusetzen.

@startuml Buergerportal
left to right direction
rectangle "Bürgerportal" {
  
  rectangle "Externe Akteure" {
    actor Buerger
  }
  
  rectangle "Interne Akteure" {
    actor Verwaltungsmitarbeiter
    actor Systemadministrator
  }

  usecase InformationenSuchen as "Informationen suchen"
  usecase DiensteBeantragen as "Dienste beantragen"
  usecase DokumenteEinreichen as "Dokumente einreichen"
  usecase AntraegeBearbeiten as "Anträge bearbeiten"
  usecase InhalteAktualisieren as "Inhalte aktualisieren"
  usecase SystemVerwalten as "System verwalten"

  Buerger --> InformationenSuchen
  Buerger --> DiensteBeantragen
  Buerger --> DokumenteEinreichen

  Verwaltungsmitarbeiter --> AntraegeBearbeiten
  Verwaltungsmitarbeiter --> InhalteAktualisieren

  Systemadministrator --> SystemVerwalten
}

@enduml

4.14 Aufgabenstellung: Erstellung eines Aktivitätsdiagramms für ein Bürgerportal

4.14.1 Ziel:

Entwickeln Sie ein Aktivitätsdiagramm, das den Prozess der Beantragung einer Dienstleistung über ein Bürgerportal detailliert darstellt. Wählen Sie eine spezifische Dienstleistung (z.B. Anmeldung eines Wohnsitzes, Beantragung eines Personalausweises oder Anmeldung zu einer Veranstaltung) als Fokus für das Diagramm.

4.14.2 Aufgabenbeschreibung:

  1. Auswahl der Dienstleistung: Entscheiden Sie sich für eine Dienstleistung, die über das Bürgerportal angeboten wird. Beschreiben Sie kurz die Dienstleistung und deren Bedeutung für die Bürger.

  2. Identifizierung der Schritte: Listen Sie alle Schritte auf, die ein Bürger durchführen muss, um die gewählte Dienstleistung zu beantragen, von der Anmeldung im Portal bis zur Bestätigung der Beantragung.

  3. Entscheidungspunkte und Bedingungen: Identifizieren Sie alle Entscheidungspunkte im Prozess. Zum Beispiel, ob bestimmte Dokumente benötigt werden oder ob eine Gebühr zu zahlen ist.

  4. Parallele Aktivitäten: Erkennen Sie, ob es im Prozess parallele Aktivitäten gibt, wie z.B. die gleichzeitige Überprüfung der Identität des Bürgers und der Verfügbarkeit des Dienstes.

  5. Ergebnis des Prozesses: Definieren Sie das erwartete Ergebnis des Prozesses für den Bürger sowie mögliche nachfolgende Schritte nach der Beantragung.

4.14.3 Anforderungen an das Aktivitätsdiagramm:

4.14.4 Werkzeuge:

Die Teilnehmer können das Werkzeug zur Erstellung des Aktivitätsdiagramms frei wählen. Mögliche Optionen sind:

4.14.5 Hinweise:

Diese Aufgabe zielt darauf ab, ein tiefes Verständnis des Prozesses der Dienstleistungsbeantragung in einem Bürgerportal zu entwickeln und die Fähigkeit zu fördern, komplexe Abläufe in einem Aktivitätsdiagramm klar und verständlich darzustellen.

4.15 Musterlösung

@startuml Wohnsitzanmeldung

start
:Anmeldung im Portal;
:Wähle 'Wohnsitz anmelden';
if (Alle erforderlichen Dokumente vorhanden?) then (ja)
  :Lade Dokumente hoch;
else (nein)
  :Beschaffe fehlende Dokumente;
  stop
endif
:Fülle Antragsformular aus;
repeat 
  :Überprüfung der Angaben;
  if (Angaben korrekt?) then (ja)
    -[#green]-> [Weiter] ;
  else (nein)
    -[#red]-> [Korrektur der Angaben];
  endif
repeat while (Angaben nicht korrekt?) is (nein)
-> [Weiter];
:Einreichen des Antrags;
:Antrag wird bearbeitet;
fork
  :Prüfung der Dokumente;
fork again
  :Verifizierung der Wohnadresse;
end fork
:Erstellung der Anmeldebestätigung;
:Versand der Bestätigung per E-Mail;
stop

@enduml

4.16 Aufgabenstellung: Erstellung eines Sequenzdiagramms für ein Bürgerportal

4.16.1 Ziel:

Entwickeln Sie ein Sequenzdiagramm, das die Interaktionen zwischen einem Bürger, dem Bürgerportal und weiteren beteiligten Systemkomponenten (wie Datenbanken oder externen Diensten) während der Durchführung einer spezifischen Dienstleistung illustriert. Wählen Sie eine konkrete Dienstleistung (z.B. Beantragung eines Personalausweises, Anmeldung eines Wohnsitzes oder Buchung eines Termins) als Fokus für das Diagramm.

4.16.2 Aufgabenbeschreibung:

  1. Auswahl der Dienstleistung: Bestimmen Sie eine Dienstleistung, die über das Bürgerportal angeboten wird, und beschreiben Sie diese kurz.
  2. Identifizierung der beteiligten Akteure und Systeme: Ermitteln Sie, welche Akteure (z.B. Bürger) und Systemkomponenten (z.B. Frontend des Portals, Backend-System, Datenbank, externe Dienste) an der Bereitstellung der Dienstleistung beteiligt sind.
  3. Festlegung der Interaktionssequenz: Beschreiben Sie die Schritte und Nachrichten, die zwischen den Akteuren und Systemkomponenten ausgetauscht werden, um die Dienstleistung zu erbringen.
  4. Berücksichtigung von Entscheidungspunkten und alternativen Abläufen: Identifizieren Sie mögliche Entscheidungspunkte oder Bedingungen, die zu alternativen Abläufen im Prozess führen könnten.

4.16.3 Anforderungen an das Sequenzdiagramm:

4.16.4 Werkzeuge:

Die Teilnehmer können das Werkzeug zur Erstellung des Sequenzdiagramms frei wählen. Mögliche Optionen sind:

4.16.5 Hinweise:

Diese Aufgabe zielt darauf ab, ein tiefes Verständnis für die dynamischen Aspekte der Interaktionen innerhalb eines Bürgerportals zu entwickeln und die Fähigkeit zu fördern, diese Interaktionen in einem Sequenzdiagramm präzise zu modellieren.

4.17 Musterlösung

Für die Musterlösung wählen wir die Dienstleistung “Beantragung eines Personalausweises” über ein Bürgerportal. Dieses Szenario umfasst die Interaktionen zwischen dem Bürger (Nutzer), dem Frontend des Bürgerportals, dem Backend-System, einer Datenbank und möglicherweise einem externen Dokumentenprüfungsdienst. Hier ist ein Beispiel für ein Sequenzdiagramm in PlantUML, das diese Interaktionen darstellt:

@startuml BeantragungPersonalausweis

participant Buerger as B
participant "Bürgerportal Frontend" as BF
participant "Bürgerportal Backend" as BB
database Datenbank as DB
participant "Dokumentenprüfungsdienst" as DP

B -> BF: Zugriff auf das Portal
BF -> BB: Anfrage zur Beantragung eines Personalausweises
BB -> DB: Prüfe Benutzerdaten
DB -> BB: Benutzerdaten bestätigt
BB -> BF: Antragsformular anzeigen
BF -> B: Antragsformular anzeigen
B -> BF: Füllt Formular aus und lädt Dokumente hoch
BF -> BB: Sendet ausgefülltes Formular und Dokumente
BB -> DP: Sendet Dokumente zur Prüfung
DP -> BB: Dokumente bestätigt
BB -> DB: Speichert Antragsdetails
DB -> BB: Antrag gespeichert
BB -> BF: Bestätigung der Antragsstellung
BF -> B: Zeigt Bestätigung an

@enduml

In diesem Szenario:

  1. Der Bürger greift auf das Bürgerportal über das Frontend zu.
  2. Das Frontend leitet die Anfrage an das Backend weiter, um den Prozess der Beantragung eines Personalausweises zu starten.
  3. Das Backend prüft zunächst die Benutzerdaten in der Datenbank.
  4. Nach der Bestätigung der Benutzerdaten wird dem Bürger das Antragsformular präsentiert.
  5. Der Bürger füllt das Formular aus und lädt die erforderlichen Dokumente hoch, die dann vom Backend an einen Dokumentenprüfungsdienst gesendet werden.
  6. Nach der Bestätigung der Dokumente durch den Prüfungsdienst speichert das Backend die Antragsdetails in der Datenbank.
  7. Abschließend erhält der Bürger eine Bestätigung der Antragsstellung über das Frontend.

Dieses Diagramm bietet eine übersichtliche Darstellung der Sequenz von Interaktionen, die für die Beantragung eines Personalausweises erforderlich sind, und zeigt die Rolle jedes beteiligten Systems und Akteurs auf. Die tatsächliche Implementierung kann je nach spezifischen Anforderungen und der Architektur des Bürgerportals variieren.