4. Requirements analysieren. und modellieren

Ähnliche Dokumente
Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert Vgl. Kapitel 4/5 aus Basiswissen Requirements Engineering, Klaus Pohl,

Grundlagen, Einführung, Begriffe

Requirements Engineering

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

DGQ Regionalkreis Hamburg Anforderungsmanagement ins SW-Projekten. 08. Juni 2011

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung Reisebeschreibung Zielpublikum Fallbeispiel...

Notationen zur Prozessmodellierung

Objektorientiertes Design

UML (Unified Modelling Language) von Christian Bartl

Vgl. Oestereich Kap 2.4 Seiten

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Einführung in die objektorientierte Programmierung

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Requirements Engineering I

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Realtime Studio Professional. ARTiSAN. Eine Visuelle Softwareentwicklungsumgebung zur Erstellung von Echtzeitanwendungen

Lastenheft (Universität Paderborn, Softwaretechnikpraktikum SS2006)

Rückblick: Entity-Relationship-Modell

Vorlesung Programmieren

Objektorientierte Softwareentwicklung

Software Engineering in der Praxis

Dr. Beatrice Amrhein. April 16

Kapitel 2 - Die Definitionsphase

OO - Analyse mario world wars

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Software-Engineering

Objektorientierte Systementwicklung

22. Januar Gruppe 2: TOPCASED

INSPIRE - Modellierung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Einführung in die Modellierung

Analyse und Design mituml2

NACHRICHTENTECHNISCHER SYSTEME

systems landscape engineering - übung -

Lehrplan: Business Analyse/ Requirements Engineering (BA- RE)

3. Requirements spezifizieren. Templates, Kapitel-Raster Mind Maps

Tamagotchi-Spezifikation in UML

Universität Karlsruhe (TH)

Anforderungen. Was ist eine Anforderung? Formulierungsschablonen Das Anforderungsdiagramm Glossar. Dr. Beatrice Amrhein

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

Vgl. Oestereich Kap 2.1 Seiten

Software Engineering in der Praxis

Software Engineering in der Praxis

Systematisches Requirements Engineering und Management

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Mit den 5 Prinzipien der Lebendigkeit für Anforderungen komplexe Systeme meistern. Dr.-Ing. Thaddäus Dorsch, HOOD GmbH,

7 Gewinnung von Anforderungen. 7.1 Voraussetzungen. Beteiligte kennen

Sommersemester Analyse II: Verhalten (Zustandsautomaten)

Datenbanken. Teil 2: Informationen. Kapitel 7: Objektorientierte Sicht. UML-Diagramme. Vorstellung der unterschiedlichen UML-Diagramme

Basiswissen Requirements Engineering

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Software- und Systementwicklung

Objektorientierte Analyse & Design

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten

Inhalt. 1 Einführung 17. Strukturdiagramme. 2 Klassendiagramm 37

Das UML Benutzerhandbuch

[Hier klicken und Text eingeben] [Hier klicken und Text eingeben] Auftragsnummer: [Hier klicken und Text eingeben] Auftragnehmer:

Software Engineering Projekt. Pflichtenheft

Inhaltsverzeichnis. Business Analysis und Requirements Engineering

Unified Modeling Language (UML )

Analyse und Modellierung von Informationssystemen

Objektorientierte Modellierung (1)

Softwareanforderungsanalyse

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

Semantisches Geschäftsprozessmanagement Übung 1

Dokumente eines IT-Projektes:

Dr. Beatrice Amrhein. April 13

Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML2 glasklar. UNIFIED MODELING LANGUAGE l HANSER

Softwaretechnik 2015/2016

Systemmodelle. Grundlagen des Software Engineerings

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Formale Modellierung Vorlesung vom : Beyond JML

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Die Foundation-Phase Kombination von RE-Techniken zum Projektstart. Martin Kleckers, Agile Coach Berlin, 26. SEPTEMBER 2018

<thema> Projektdokumentation zum Softwareentwicklungsprojekt. 25. April Entwickler: <autor1>, <autor2>, <autor3> Auftraggeber: <auftraggeber>

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Das UML Benutzerhandbuch

Software-Engineering

4. Übung zu Software Engineering

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Schrittweise vorgestellt

Harald Störrle UML 2 für Studenten

Gliederung des Vortrages

Objektorientierte Analyse (OOA) Inhaltsübersicht

Abhängigkeiten und Assoziationen

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

Geschäftsabläufe und Beziehungen zwischen. (Mitarbeitende / Geschäftsobjekte)

Unified Modeling Language 2

Aufgabe S1: Einmal quer durch s Skript

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

Software Engineering

SWE6 Slide 1. Software-Engineering. Vorlesung 6 vom Sebastian Iwanowski FH Wedel

Visual Studio 2010 Jetzt auch für Architekten

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Transkript:

4. Requirements analysieren und modellieren

2

Ziel der Analyse Klares Verständnis von Wert, Nutzen und Aufwand der Anforderungen Bewertung von Einflüssen, Abhängigkeiten und Unsicherheiten Detektiv-Arbeit Problem Anforderungen beschreiben Anforderungsmodell Lösungsweg beschreiben Entwurfs- (Lösungs-)Modell Aufgaben des Systems verstehen Priorisierte Anforderungen Nach der Befragung aller Stakeholder und der Dokumentation der Antworten geht es im nächsten Schritt darum, die Anforderungen sauber zu modellieren und (erst) dann mögliche Lösungen (Lösungswege) zu beschreiben, vergleichen, Die Modellierung der Anforderungen (und Lösungen) führt uns aber oft nicht nur zu neuen Fragen, sondern auch zu weiteren Anforderungen. 3

Die drei Perspektiven auf das System Struktur Daten mit Attributen Anforderungen Funktion Funktionalität, Daten-Verarbeitung Verhalten Zustände, Reaktion auf Ereignisse Die verschiedenen Sichten auf das System helfen bei der Aufteilung/Gliederung der Anforderungen. Ein Problem hat immer verschiedene Aspekte und muss darum von allen Seiten begutachtet werden. Nur durch das Betrachten des Problems aus verschiedenen Blickwinkeln können wir alle Aspekte erkennen und beschreiben/modellieren. 3. Requirements spezifizieren 4

Verschiedene Aspekte/Sichten Funktionsperspektive Funktionalität aus Sicht des Benutzers Use Cases (+Beschreibungen) und Aktivitätsdiagramme Strukturperspektive Struktur des Systems und Kommunikation zwischen verschiedenen (Teil)-Systemen Komponentendiagramm, Klassendiagramm, ER-Diagramm, Verhaltensperspektive Reaktionen auf Ereignisse, Zustandswechsel Zustandsdiagramm, Entscheidungsbäume, Und/Oder-Bäume, Für die verschiedenen Sichten werden je die passenden UML-Diagramme verwendet. 5

Analyse Modellierung 1. Mind Map/Kontextdiagramm -> Problem-Raum 2. Glossar (Geschäfts-Wörter/Bereiche) 3. Use Cases / Szenarien a) Zustandsanalyse Initialisierung, Stand-by, Fehlerfall, Störung, Notbetrieb, Backup, b) Aktivitäten-Diagramm c) Entscheidungsbaum 4. Qualitätsanforderungen und Randbedingungen a) Ergonomie, Sicherheit, Performance, 5. Detaillierte Modelle Fachklassen-, Objekt-, verfeinerte Aktivitäten-, Zustands-, Kommunikations- oder Sequenzdiagramme Der gesamte Ablauf des Requirements Engineering beginnt mit den Befragungen beim Kunden, wo die Geschäftsprozesse (Business Use Cases) erfasst, erste Mind Maps oder Use Cases erstellt sowie der Problem-Kontext (das System-Umfeld) grob erörtert wird. Schon sehr früh müssen die Fachbegriffe geklärt werden, was zum Erstellen eines Glossars führt. Im Schritt 3 werden je nach Projekt die verschiedenen System-Zustände (und deren Übergänge, Events), die Arbeits-Abläufe (Aktivitäten) oder die möglichen Prozesse beschrieben. Weiter müssen auch die Fehlerfälle erfasst (und mit Hilfe von Test-Szenarien abgesichert) werden. Schritt 4 enthält möglicherweise einen Prototyp für das User Interface. 6

Definition Ein Modell ist ein abstraktes Abbild einer existierenden oder noch zu schaffenden Realität. Ein Modell dient als Abbild der Realität (was ist vorhanden, was soll «erschaffen» werden) zur Verkürzung/Vereinfachung der Realität (nur die Aspekte welche für diesen Sachverhalt relevant sind) in einem spezifischen Verwendungszweck (Einschränken auf ein spezifisches Problem/Sachverhalt) Ein Anforderungsmodell ist ein konzeptuelles Modell, welches die Anforderungen eines Systems dokumentiert. Ein Entwurfsmodell ist ein konzeptuelles Modell, welches die Aspekte einer Lösung eines Problems dokumentiert. Anforderungs- und Entwurfs-Modelle werden heute üblicherweise mit UML konstruiert. 7

Schwierigkeit Während den Anforderungen darf die Lösung beim RE nicht bereits (im Kopf) vorhanden sein. Der RE muss sich zwingen, Problembasiert und nicht Lösungsorientiert zu arbeiten. Diese Trennung fällt typischerweise nicht leicht, insbesondere bei erfahrenen RE, die schon viele Lösungen entwickelt haben. Auch für erfahrenen Requirements Engineering Spezialisten ist es oft schwierig, während der Anforderungsanalyse nicht bereits eine Lösung anzusteuern (dies würde zu einer unerwünschten Einschränkung der möglichen Lösungen führen). Besonders wenn der Problemkreis gut bekannt ist, besteht die Gefahr, sich nicht von «alten» bereits durchgeführten Projekten (und deren gewählten Lösungen) beeinflussen zu lassen. 8

Zielmodelle Intentionen der Stakeholder in Form von Zielen Gewünschte Eigenschaften des zu entwickelnden Systems Visionen als Grobziel Verfeinerung der Ziele in Ziel-Dekompositionen (welche Nebenziele sind für das Erreichen des zentralen Ziel nötig) Oft dokumentiert durch Und-Oder Bäume 9

Und/Oder Baum ODER - Baum Ziel UND - Baum Ziel Teilziel1 Teilziel2 Teilziel3 Teilziel1 Teilziel2 Teilziel3 Beispiel-Baum Reise buchen Eingeben des Reisewunschs Auswählen einer Reise nach Datum nach Zielort Und/Oder gehören nicht zur UML Sprache, weshalb sie nicht standardisiert sind. Es ist daher wichtig, diese Symbole möglichst einfach (und immer gleich) zu wählen. 10

Modellieren von Abläufen Komplexe Abläufe lassen sich oft nicht einfach durch natürliche Sprache erklären. Beim Beschreiben durch natürliche Sprache besteht die Gefahr, dass Äste oder Bedingungen vergessen gehen. Besser für die Beschreibung von Abläufen sind darum Entscheidungsbäume oder Aktivitätsdiagramme (vgl. OOAD). Aktivitätsdiagramme (Flowcharts oder Activity-Diagramms) werden im OOAD Kurs behandelt. 11

Entscheidungsbäume (einfache Abläufe) Da sie nicht standardisiert sind gibt es verschiedene Arten von Entscheidungsbäumen. 12

Was Wann Womit - Weniger geeignet 0 Neutral + Gut geeignet ++ Seht gut geeignet Akz ept anz bei m Kun den Nota tions - Kenn tniss e Spezi fikati ons- Level Kom plexe Syste me Kon siste nz- Sich erru ng Natürliche Sprache ++ ++ 0-4 - - +/- Use-Case ++ + 0-1 - - - Use-Case Beschreibung ++ + 0-2 0-0 Szenario (User Story) + ++ 0-1 - + + Aktivitätsdiagramm (Ablauf) + - 3-4 ++ + ++ Klassendiagramm (ERM, Domain Model) 0-2-4 ++ + ++ Komponentendiagramm 0-3-4 ++ 0 + Zustandsdiagramm (Ereignisse) - - 3-4 + + ++ Sequenzdiagramm (Kommunikation) - - 3-4 + ++ ++ Und/Oder- oder Entscheidungsbaum + - 2-3 + + ++ Ein de uti gke it Diese Matrix kann helfen die Frage zu beantworten: Welche Teile des Systems sollen womit dokumentiert werden. Nicht alle Dokumentationsarten sind für alle Situationen gleich geeignet. Komplexe Systeme erfordern eventuell ein Dazulernen beim Kunden. Gewisse Diagramme werden erst für den Lieferanten/Auftragnehmer wirklich relevant. 13

Einsatz von Diagrammen Versteht der Kunde die Notation? Lohnt sich der Aufwand für das Zeichnen (und ev. Erlernen) des Diagramm-Typs Bringt die neue Technik genügend Qualitätsgewinn? Wird jede Anforderung an genau einer Stelle dokumentiert (Redundanz-Freiheit) Sind die Diagramme so einfach wie möglich gehalten Anzahl Notations-Elemente (beim Kunden) beschränken Anforderungen werden zuerst grob und je später desto exakter spezifiziert. Daher kann es gut sein, dass in den Kapiteln 1 und 2 die gleiche Anforderung bereits erwähnt wurde. Erst in Kapitel 3 wird sie dann exakt spezifiziert. Dort sollte sie aber nur an einer Stelle dokumentiert werden. 14

Umgang mit Komplexität Natürliche Sprache für sehr einfache oder sehr abstrakte / sehr detaillierte Ebene Gruppieren/Aufteilen/Sortieren der Anforderungen (nach Rolle, Subsystem, Geschäftsprozess, ) Komplexe Abläufe, Situationen durch Diagramme modellieren Diagramme wo nötig durch natürliche Sprache ergänzen. Einfache Anforderungen werden am besten durch natürliche Sprache spezifiziert. Dafür lohnt sich der Aufwand ein Diagramm zu zeichnen normalerweise nicht. Komplexe Abläufe oder Situationen werden dann durch Diagramme erklärt, da die natürliche Sprache hier klar an Grenzen stösst (nicht mehr verstanden wird). Diagramme müssen, wo nötig und nicht selbsterklärend, durch natürliche Sprache ergänzt werden. 15

Nicht-funktionale Anforderungen Qualitätsanforderungen (Performance, Erweiterbarkeit, Ergonomie, ) Technologische Anforderungen (Datenbank-System, Programmier-Umgebung/Sprache, Betriebssystem, ) Durchzuführende Tätigkeiten wie Wartung, Support, Schulung, Rechtliche Anforderungen wie Lizenzbestimmungen oder Kosten Einzuhaltende Standards und Normen. Nicht-funktionale Anforderungen werden (fast) immer in natürlicher Sprache spezifiziert. Hier ist eine klare, messbare, testbare und unmissverständliche Formulierung extrem wichtig (siehe Kapitel 3. Requirements spezifizieren). 16

Struktur-Brüche Übergänge sind unvermeidlich Anforderungen Anforderungsmodell Anforderungsmodell Entwurfsmodell Entwurfsmodell Systemstruktur Systemstruktur Software und Hardwarekomponenten Klare Dokumentation/Unterscheidung zwischen Anforderung und Lösungsentwurf Klare, konsistente, für alle verständliche Modellierung Objektorientierte Analysetechnik Struktur-Brüche sind zwischen den verschiedenen Phasen unvermeidlich. Wichtig ist es, trotzdem klar zwischen Anforderung und Lösungsmodell zu unterscheiden. Dies geschieht durch eine klare Dokumentation (wer ist verantwortlich für oder Autor von welche(n) Bilder(n), Texte(n), Diagramme(n), ). Nur so kann klar getrennt werden zwischen Lösung und Problem (bzw. Anforderung). Ein sauberes objektorientiertes Vorgehen kann Brüche mildern, indem schon zu Beginn die richtigen Namen für Objekte, Methoden, Interfaces, benutzt werden. 17