Download - Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betriebsdatenerfassung und Leistungsentlohnung

Transcript
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?