Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und...

42
Ihr Partner für IT Schulung g GFU Cyrus AG "Semicolon" Vortragsreihe bei der GFU Vortrag am Dienstag, 4. November 2008 Thema Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung Einführung Peter Hecker, GFU Cyrus AG Vortrag Dirk Weil, Geschäftsführer GEDOPLAN

description

Der Erfolg von Softwareentwicklungsprojekten hängt maßgeblich von einer guten Anforderungsanalyse ab. Je später Konzeptionsfehler erkannt werden, desto höher sind die Kosten der erforderlichen Korrekturen. Wir stellen in diesem Vortrag dar, wie durch eine strukturierte und dabei nicht zu formale Vorgehensweise frühzeitig sichergestellt werden kann, dass die später entwickelte Anwendung den Wünschen des Auftraggebers entspricht und zudem eine verlässliche Basis für die Einschätzung des Entwicklungsaufwands entsteht. Im Vortrag verdeutlichen wir die Vorgehensweise an dem Beispiel einer Konzeption eines Systems zur Betriebsdatenerfassung und Leistungsentlohnung. Mit einem Mix aus Office- und UML-Werkzeugen konnte hier in kurzer Zeit ein gemeinsames Verständnis mit der Fachabteilung des Kunden erreicht werden und die formale Basis für die nachfolgende Realisierung des Systems geschaffen werden. Auswahl von Werkzeugen aus dem Office- und Modellierungsumfeld Halbformale Beschreibung von Anwendungsfällen Erstellung eines fachlichen und technischen Glossars Komponentenmodellierung mit UML Entwicklung eines Anwendungs-Prototyps

Transcript of Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und...

Page 1: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Ihr Partner für IT Schulungg GFU Cyrus AG

"Semicolon" Vortragsreihe bei der GFU

Vortrag am Dienstag, 4. November 2008

Thema

Professionelle Anforderungsanalyseam Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und

Leistungsentlohnung

Einführung

Peter Hecker, GFU Cyrus AG

Vortrag

Dirk Weil, Geschäftsführer GEDOPLAN

Page 2: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Entwicklung von Informationssystemen

29 Jahre am Markt

~35 MitarbeiterBeratung und Entwicklung

Konventionelle undneue Technologien

Maßgeschneiderte Lösungen

Standardsoftware

www.gedoplan.de

SOA Java .NET

SAP®

GEDOPLANObjektorientierte

Softwareentwicklung

Page 3: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Seit 1998 im Bereich Java:50+ Beratungs- und Entwicklungsprojekte

Konzeption und Entwicklung

30+ Seminartitel

Java / Java EE

Diverse App.-ServerGlassfish

IBM WebSphere

JBoss

Oracle WebLogic

SAP NetWeaverSOA .NET

SAP®

GEDOPLANObjektorientierte

Softwareentwicklung

Java

Page 4: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

IT-Systeme und Prozesse

Beratung, Schulung, Entwicklung

100+ Mitarbeiter

www.involva-gruppe.de

Page 5: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung
Page 6: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung
Page 7: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung
Page 8: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Aufgabe: Entwicklung eines BDE-Systems

Walzstrasse

Säge

Presse

Endkontrolle

Werkzeug-fertigung

Instandhaltung

Betriebsdaten- Gutmenge- Fertigungszeit- Störzeit- Gewichte- Chargennummern- …

Betriebsdaten- Gutmenge- Fertigungszeit- Störzeit- Gewichte- Chargennummern- …

Betriebsdaten- Gutmenge- Fertigungszeit- Störzeit- Gewichte- Chargennummern- …

Page 9: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Aufgabe: Entwicklung eines BDE-Systems

Betriebsdaten- Gutmenge- Fertigungszeit- Störzeit- Gewichte- Chargennummern- …

Betriebsdaten- Gutmenge- Fertigungszeit- Störzeit- Gewichte- Chargennummern- …

Betriebsdaten- Gutmenge- Fertigungszeit- Störzeit- Gewichte- Chargennummern- …

Controlling

Produktions-planung

Personal-wirtschaft

Prämien-lohn-

ermittlung

Page 10: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Professionelle Softwareanforderungsanalyse

Page 11: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Ausgangssituation

Beginn eines Softwareprojektes

Wir wissen nicht (genau), was der Kunde wünscht

Der Kunde weiß es – auch nicht!

Los!

Page 12: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Ziele der Anforderungsanalyse

Was?

Wünsche klären

Zusammenhänge und Abhängigkeiten aufdecken

Sinnhaftigkeit verifizieren

Machbarkeit sicher stellen

Page 13: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Ziele der Anforderungsanalyse

Wie?

Benutzerinterface skizzieren

Komponenten identifizieren

Komplexität darstellen

Basis für Aufwandsschätzung erstellen

Page 14: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Systemkontext

Beschreibt die Umgebung des geplanten Systems

Akteure

Fremdsysteme

Schnittstellen

Page 15: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases als zentrale Analyseelemente

Daten-formate

I/OProtokolle

Security

Business-regeln

UIDesign

UI Anfor-derungen

Perfor-mance

UseUse

CasesCases

Page 16: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Beschreiben Interaktion zwischen Akteur und System

Haben einen Auslöser und ein Ziel

Benutzersicht

Unterschiedliche Granularitäten

Page 17: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Alistair Cockburn: Use Cases effektiv erstellen.

Werkzeug: Word (o.ä.)!

einfach

allgegenwärtig

Integration mit anderen Tools

Halbformale Struktur

Page 18: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Page 19: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Formalitätzwanglos (casual)ausformuliert (fully dressed)

Umfeld(Context of Use)

Bereich (Scope)UnternehmenSystemSubsystem

Page 20: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Beschreibung

Ebene (Level)

Akteure (Actors)

Interessenten (Stakeholders)

Page 21: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Invarianzen

Vorbedingungen(Preconditions)

Minimales/Erfolgsergebnis (Minimal/Success Guarantee)

Detailbeschreibung

Auslöser (Trigger)

Haupt-Erfolgsszenario(Main Success Scenario)

Erweiterungen(Extensions)

Page 22: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Ergänzende Informationen

Technische Variationen (Technology & Data Variations List)

Zusätzliche Informationen (Related Information)

Page 23: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Jeder Use Case muss einfach zu lesen sein

Ein-Satz-Anweisungen bei den einzelnen Schritten(Aktiv, kein Passiv verwenden)

Große Komplexität auf Unter-UCs verteilen

Immer Akteur nennen

Immer das Ziel nennen

auf welchem Level sind wir?

wo sind die Benutzerziele auf „Meeresspiegel-Ebene“?

Page 24: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases

Immer – neben dem primären Akteur und seinem Ziel – die Garantien für weitere Interessenten berücksichtigen

Vorbedingungen festhalten(Kandidaten: Ergebnis eines höheren/vorherigen UseCase!)

Immer zuerst das Haupt-Erfolgsszenario beschreiben, danach alle Fehler-Szenarien / Ausnahmen / Variationen

GUI maximal als weitere Information beschreiben

Page 25: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Strukturierung der Use Cases mittels Mind Maps

Bilden logischer Gruppen

Gesamtüberblick

Identifizierung kritischer UCs

Offene Fragen

Klärungsbedarf / Widersprüche

Erfassungsfortschritt

Reviewstand

Page 26: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Strukturierung der Use Cases mittels Mind Maps

Page 27: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Anforderungsdokumente

Use Cases sind Anforderungsdokumente

weitere formelle Umwandlung sollte nicht nötig sein

Use Cases definieren nicht alle Anforderungen

externe Schnittstellen

Datenformate

Business-Regeln

komplexe Formeln

Page 28: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

In/Out-Liste

Festhalten, was zur Aufgabe gehört und was nicht

Page 29: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Glossar

Verbindliche Definition fachlicher und technischer Begriffe

Page 30: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases mittels UML modellieren

Erfassen und Verlinken der Use Cases

Erfassen und Zuordnen der Akteure

mögliche Alternative:

Erfassung der Use Cases in UML-Tool statt in Word etc.

technisch komplexer, Review/Export aufwendiger

Page 31: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Use Cases mittels UML modellieren

Ergebnis: alle Akteure und Use Cases in einem (oder mehreren) Use-Case-Diagrammen erfasst

Page 32: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Analyse-Komponenten mittels UML modellieren

Auf Basis der Use Cases und weiterer Anforderungen aus dem Pflichtenheft:

Entitäten identifizieren

Attribute und Operationen identifizieren

Komponenten bilden

Entitäten und darauf operierende Services zu Komponenten zusammenfassen

Service-Schnittstellen definieren

Komponenten hierarchisch strukturieren

Page 33: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Analyse-Komponenten mittels UML modellieren

Pro Komponente:

Komponentenstruktur

Anwendungsfall-Abdeckung

Domänenmodell

Gesamtarchitektur als Hierarchie der Komponenten erstellen

Page 34: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Analyse-Komponenten mittels UML modellieren

Komponentenstruktur

angebotene Services einer Komponente darstellen

Abhängigkeiten zwischen den Komponenten darstellen

Page 35: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Analyse-Komponenten mittels UML modellieren

Anwendungsfall-Abdeckung festhalten

in welchen Use Cases wird die Komponente verwendet?uc Anwendungsfälle RapportscheinMg...

UC-044 Rapportschein

anzeigen

UC-045 Rapportschein

korrigieren

UC-046 Rapportschein

abschließen

UC-047 Rapportscheine

freigeben

UC-049 Rapportschein plausibilisieren

1. MannVorgesetzter (aufgrund

AP)

Leistungslohnermittlung

UC-055 Leistungslohnberechnung

UC-071 Export Rapportscheine

Page 36: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Analyse-Komponenten mittels UML modellieren

Domänenmodell erstellen

Page 37: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Analyse-Komponenten mittels UML modellieren

Jede Klasse, jedes Attribut, jede Relation fachlich dokumentieren und kommentieren

Per Template aus dem Modell vollständige Komponentenbeschreibung generieren

Bestandteile des Pflichtenheftes (u.a.):

Beschreibung des Systems in Form von UseCases

Entstandenes Analyse-Modell in Form der generierten Komponentenbeschreibung

Page 38: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

GUI-Prototyp

Page 39: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Eingliederung in den Requirements-Rahmen

Funktionale Anforderungen

Glossar

UI-Anforderungen

Nichtfunktionale Anforderungen

Benutzermodell und Berechtigungskonzept

Systemarchitektur, Komponentenbeschreibung

Hard- und Software-Infrastruktur

Page 40: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Unsere Erfahrungen: Use Cases

Einfacher Start mit Überblicks-Use-Cases(Tagesablauf eines typischen Mitarbeiters o.ä.)Use Cases können zum Prototyping genutzt werdenWord als Use-Case-Tool

Einfaches, allseitig akzeptiertes FormatBietet viele FreiheitsgradeMarkierungen (z.B. für offene Punkte)Diagramme, Images (z.B. zur Verdeutlichung)Verknüpfungen, Hyperlinks

Review, formale Abnahme nicht unproblematisch

Page 41: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Unsere Erfahrungen: Komponentenmodellierung

UML-Tools bieten unterschiedlich tiefe Unterstützung

UML-Diagramme reichen

Dokumentengenerierung sehr hilfreich

Codegenerierung problematisch

Gute Strukturierung der Software

zur Visualisierung / Dokumentation

zur Abschätzung des Realisierungsaufwandes

Page 42: Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Danke für Ihre Aufmerksamkeit!

Haben Sie Fragen?