agile geschäftsprozeßanalyse ooa/d am beispiel einer seminarverwaltung

41
Thema Agile Geschäftsprozeßanalyse (GPA), objektorientierte Analyse & Design (OOA/D) am Beispiel einer Seminarverwaltung Referent Dr. Frank Dopatka, GFU Cyrus AG Vortrag am Dienstag, 10. März 2009 Inhalt Das Fallbeispiel der GFU („Ist-Zustand bis 2008“) GPA/OOA: Story Cards, Use Cases, Aktivitäten, Objekte & Klassen, CRC-Karten, Risk/Value-Priorisierung, Planning Poker OOD: Klassen-, Zustands- & Sequenz-Diagramme OOP: Test Driven Development, Feature Driven Development, Scrum, Pair-Programming, Continous Integration Der ideale Kunde & der ideale Programmierer Ziel ist eine Übersicht über alle Notationen/Verfahren & deren Verzahnung zu erkennen!

Upload: gfu-cyrus-ag

Post on 24-Jan-2015

2.678 views

Category:

Technology


8 download

DESCRIPTION

In einer Vielzahl von GFU-Kursen wurde bereits die UML-Notation vermittelt. Von praktischem Interesse ist jedoch die Umsetzung im Rahmen einer GPA/OOA/OOD, um eine Umsetzung in modernen objektorientierten Programmiersprachen zu ermöglichen. Im Rahmen dieses Vortrages wird die Anwendung der UML am Fallbeispiel einer Software zur Seminarverwaltung unter Verwendung von agilen Methoden beschrieben. Im Fokus steht dabei, den objektorientierten Ansatz der Softwareentwicklung zu verdeutlichen. Ausserdem soll die spezielle Sichtweise jedes UML-Diagramms auf die zu entwickelnde Software sowie die Zusammenhänge der Diagramme betont werden. Behandelt werden soll: GPA/OOA mit Use Cases GPA/OOA mit Aktivitätsdiagrammen OOA Objekt- und Klassendiagramme OOD Klassendiagramme OOD Zustandsdiagramme OOD Sequenzdiagramme Damit in Zusammenhang werden agile Konzepte vorgestellt: der ideale Kunde & der ideale Programmierer Methoden der Entwicklung: Scrum, TDD, FDD OOA Anwendungsfälle mit Story Cards OOA Risk/Value Priorisierung und Planning Poker OOA/D Ermittlung der Klassen mittels CRC-Kartenmethode OOP Pair-Programming OOP Continuous Integration

TRANSCRIPT

Page 1: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Thema

Agile Geschäftsprozeßanalyse (GPA),objektorientierte Analyse & Design (OOA/D)

am Beispiel einer Seminarverwaltung Referent

Dr. Frank Dopatka, GFU Cyrus AG

Vortrag am Dienstag, 10. März 2009

Inhalt

• Das Fallbeispiel der GFU („Ist-Zustand bis 2008“)

• GPA/OOA:Story Cards, Use Cases, Aktivitäten, Objekte & Klassen,CRC-Karten, Risk/Value-Priorisierung, Planning Poker

• OOD:Klassen-, Zustands- & Sequenz-Diagramme

• OOP:Test Driven Development, Feature Driven Development,Scrum, Pair-Programming, Continous Integration

• Der ideale Kunde & der ideale Programmierer

Ziel ist eine Übersicht über alle Notationen/Verfahren & deren Verzahnung zu erkennen!

Page 2: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Das Fallbeispiel

Was existierte bislang?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 4

Die GFU Cyrus AG verwendete

von 1988 bis Ende 2008

ein in Cobol selbst geschriebenes Programm zur • Verwaltung der Kunden, • deren Ansprechpartner und zur • Dokumentation der Kommunikation von

GFU-Mitarbeitern mit den Kunden (Vorgänge).

• Auch zur Fakturierung verwendet.• Über eine Kalenderfunktion wurden die

Seminare, Anmeldungen von Teilnehmern, Hotel- & Parkplatzbelegung verwaltet.

Page 3: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was existierte bislang?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 5

• Angebote: in den letzten Jahren in MS Word 97 erstellt

• Zusätzlich: 8 Jahre altes Programm zur Seminar-verwaltung, das in VB6 geschrieben wurde Abgleich mit den Internet-Daten

So sah die Kundenverwaltung & Fakturierung aus...

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 6

Page 4: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

So sah die Seminarverwaltung aus...

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 7

Was soll verbessert werden?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 8

• Das Cobol-Programm berechnet ab 2009 dieKalenderwochen falsch, eine Anpassung ist„schwierig“ im Quellcode durchzuführen.

• Die Fakturierung soll automatisiert werden.

• Da keine relat. DB-Struktur verwendet wurde,waren Statistiken über Kurserfolge schwierig, z.B. Gewinn aus Schulungen der Kategorie „Java“ermitteln.

• Es sind im Cobol-Programm alte Funktionenvorhanden, die nicht mehr verwendet werden, u.a. - Verwaltung von Lizenznummern und- Verwaltung von Update-Abos ...aus Zeiten, in denen bei der GFU noch Cobol-Compiler verkauft wurden.

Page 5: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was wird im Vortrag behandelt?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 9

Im Folgenden wird exemplarisch gezeigt, wie man mit • einer Geschäftsprozeß-Analyse (GPA)• einer Objektorientierten Alalyse (OOA) und• einem Objektorientierten Design (OOD)

einen Lösungsansatz für die zu erstellende Software ermitteln kann.

Im Fokus steht dabei• der Zusammenhang der verschiedenen

UML-Diagramme, deren Blickwinkel sowie• die Anwendung agiler Methoden bei der

Softwareentwicklung.

GPA & Story Cards

Page 6: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was macht man in der GPA & OOA?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 11

• In der Analyse geht es darum, die Anforderungenzu erfassen:Fakten sammeln, darstellen, prüfen

Objektorientierte Analysemodell:- fachliche Beschreibung mit OO-Konzepten- hebt das Wesentliche hervor und lässt

Unwichtiges weg

• Bezug zur Informationstechnik ist unerwünscht!

• OOA-Modell sollte statische & dynamischeAspekte enthalten ( Datenstrukturen & Abläufe)

Was sind Story Cards?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 12

• User Story („Benutzergeschichte“):- eine in Alltagssprache formulierte Software-

Anforderung- bewusst kurz gehalten: nicht mehr als zwei Sätze

• Jede User Story wird auf eine Story Cardgeschrieben. Autor: Kunde bzw. User

• Die Story Card ist die wichtigste Methode, um ein agiles Projekt zu steuern!

• Aus den Story Cards entwickeln sich in kooperativer Zusammenarbeit mit dem Kundendie Use Cases Workshops

Page 7: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Inhalt einer Story Card

Datum, fortlaufende Nummer Nummer der übergeordneten Story Card Aktivität: neu / Fehler beheben / Funktion erweitern Funktion umgesetzt

Priorität (Kunde/Programmierer) Risiko & Aufwandschätzung

kurze, präzise Beschreibung Notizen

aktueller Fortschritt: Datum, Status, Aufgabe, Kommentar

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 13

Exemplarische Story Card: „Seminarverwaltung“

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Page 8: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Use Cases

Was genau sind Use Cases (Anwendungsfälle)?

• Interaktion zwischen Akteuren und dem betrachteten System: Dabei soll ein fachliches Ziel erreicht werden!

• Grafisches UML Use Case:Identifikation der Funktion & der beteiligtenAkteure im Vordergrund

• Informationsgehalt eines graphischen Use Cases ist gering! Use Case Schablone Verlauf textuell beschreiben Bezug zum Geschäftsprozeß Basis kann Story Card sein!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 16

Page 9: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Dr. rer. nat. Frank [email protected] Folie 17

Perspektiven

Use Cases können (wie auch alle anderen UML-Diagramme) in verschiedenen Abstraktions-Ebenenerstellt werden:

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

WolkeManager-View

Drachen

Meeres-SpiegelUser-View

Muschel

FischEntwickler-View

Dr. rer. nat. Frank [email protected] Folie 18

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Exemplarischer grafischer Use Caseder Seminarverwaltung (Manager-View)

Page 10: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Dr. rer. nat. Frank [email protected] Folie 19

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Etwas detailliertere Darstellung des Use Cases„Seminare verwalten“

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Exemplarischer textueller Use Caseder Seminarverwaltung

Buchen eines Seminars

Ziel:Anmeldebestätigung an den Kunden geschickt.

Vorbedingung:---

Nachbedingung Erfolg:Kunde ist angemeldet.

Nachbedingung Fehlschlag:Mitteilung an Kunden, dass Veranstaltung ausgebucht ist, ausfällt oder nicht existiert.

Akteure:Kunde, GFU-MA

Auslösendes Ereignis: Anmeldung des Kunden liegt vor.

Beschreibung:1. Kundendaten abrufen2. Seminar prüfen3. Anmeldebestätigung erstellen

Erweiterung:1a. Kundendaten aktualisieren1b. Wenn Kunde MA einer Firma ist, Firmendaten erfassen bzw. wenn vorhanden, dann

abrufen und aktualisieren1c. Zahlungsmoral prüfen

Alternativen:1a. Neukunden erfassen, wenn Kunde noch nicht existiert1b. Auf alternative Veranstaltungen hinweisen, wenn ausgebucht1c. Mitteilung „Falsche Veranstaltung“, falls Veranstaltung nicht existiert und auch nichts

ähnliches

Page 11: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Aktivitäten, Szenarien& Geschäftsabläufe

Wozu Aktivitäts-Diagramme?

• Geben die Struktur eines Prozesses als Flussdynamisch wider

• Heben den Steuerungsfluss von Objekten im Geschäftsprozeß untereinander hervor

• Werden typischerweise aufgestellt, wenn die UseCases fertig sind Ziel: grundsätzliche Abläufe darstellen

• Überschneidung der Ansicht zu einem textuellen Use Case ist groß Alternativ dazu anwenden?!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 22

Page 12: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was ist ein Szenario?

Eine spezifische Sequenz von Aktionen, die das Verhalten des Systems unter bestimmten Bedingungen beschreibt, z.B.:

• Login• Bestellvorgang• Rechnungsstellung• Auszahlung von Geld• Angebotserstellung• …

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 23

Im Allgemeinen: Einen Geschäftsprozess des Unternehmens!

Bei der Entwicklung werden alle wichtigen Szenarienin Aktivitäts-Diagrammen fest gehalten.

Aktivitäts-Diagramm der Seminarverwaltung:erfolgreiche Anmeldung

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 24

Kunde 1 Seminarverwaltung

:Seminar[status: buchend]

[AnzTN=MaxTN-1]

Suchbegriff „Java Einsteiger“ in die GFU-Seite eingegeben

Seminar auswählen

pers. Daten eingeben

Buchung abschicken

:Seminar[status: ausgebucht]

[AnzTN=MaxTN]

Daten prüfen und ggf. abgleichen

Bestätigung der Buchung senden

Liste der Seminare zurückgeben

Page 13: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Aktivitäts-Diagramm der Seminarverwaltung:fehlerhafte Anmeldung

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 25

Objekte & Klassenin der Analyse

Page 14: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Warum noch Objekt-Diagramme?

• Objekt-Diagramme besitzen die gleiche Notation wie Klassen-Diagramme, stellen aber konkrete Beispiele/Instanzen dar:- derFrank: Dopatka, Frank, Schmiedeweg,... Kunde: Name, Vorname, Strasse,...

• In der Praxis als erster Schritt der Analyse leicht verständlich, da anwendungsnah

• Klassen: Abstraktionen der Objekte auf höherem Niveau!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 27

Warum Klassen-Diagramme in der Analyse?

• Klassen-Diagramme existieren vereinfacht in einerAnalyse-Form: Identifikation der Klassen und deren Beziehung zueinander im Vordergrund!

• Klassen und deren Beziehungen orientieren sicham Geschäftsprozeß nicht plötzlich „falsch“

• Beziehungen: textuell beschrieben

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 28

Page 15: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Exemplarisches Objekt-Diagramm:ein Seminar

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 29

Exemplarisches Objekt-Diagramm:Bezug eines Seminars zu anderen Objekten

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 30

Page 16: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 31

Ausschnitt aus einem Klassen-Diagramm (OOA)der Seminarverwaltung

CRC-Karten

Page 17: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Wie kommt man an die Objekte & Klassen?

• Durch Erfahrung!

• Indem Sie in Gesprächen und Beschreibungen achten auf:- nicht-triviale Hauptwörter (Raum, Kunde,...) Klassen

- triviale Hauptwörter, die durch einzelne Zeichenketten, Zahlen oder wahr/falschdarstellbar sind (Name, Mail-Adresse,...) Attribute

- Verben (anlegen, buchen, suchen, stornieren,...) Methoden

- Ausdrücke wie „ist ein“ bzw. „besteht aus“ Vererbung bzw. Aggregation oder Komposition

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 33

Was ist eine CRC-Karte?

• Prinzip einer Class-Responsibility-Collaboration-Karte: für jede Klasse eine Karteikarte erstellen & auf dieser deren Eigenschaften zu notieren

• Eine solche Karte besteht aus folgenden Bereichen: - Name der Klasse - Aufgaben der Klasse - Klassen, mit denen die beschriebene Klasse

zusammenarbeitet- Rückseite: wichtigste Attribute und Methoden

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 34

Page 18: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Vorteile der CRC-Karten

• Einfache Handhabung:Problemlos Informationen hinzufügen oder streichen

• Unabhängig von Programmiersprachen & Tools

• begrenzte Platz auf die wesentlichen Aufgaben einer Klasse

konzentrieren

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 35

Vorgehensweise

• Mit dem Kunden typische Anwendungsfälledefinieren Use Cases

• Anwendungsfälle nacheinander durchspielen Aktivitäten

• Auf den CRC-Karten neue Aufgaben und Partnerklassen festhalten

Mit der Zeit ergibt sich ein vollständiges Bild.

• Wichtig:- Untersuchung aller typischen Anwendungsfälle

& Szenarien- Festhalten aller Details

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 36

Page 19: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Beispielhafte CRC-Karte „Seminar“ Klasse „Seminar“

Seminar

Aufgaben:Erstellen und verwalten von Seminaren und deren Inhalten. Man soll Seminare suchen können und im Internet veröffentlichen. Man kann sich anmelden, solange die max. TN-Tahl nicht erreicht ist. Abmelden geht auch jederzeit. Die GFU kann notfalls ein Seminar auch stornieren, wenn keine Anmeldung vorliegt oder der geplante Dozent krank ist und kein Ersatz gefunden werden konnte.

Partnerklassen:Seminarverwaltung, Rechnung, Termin -> (Raum, Dozent, Anmeldungen -> (Teilnehmer))

Risk-Value Priorisierung& Planning Poker

Page 20: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was wird wie priorisiert & welche Konsequenzen ergeben sich?

Bereits bei den Story Cards wurden die Begriffe• Priorität,• Risiko und• Aufwandschätzungfür jede Funktionalität (Use Case) erwähnt.

Jetzt wissen alle Beteiligten bereits mehr über die Funktionen & Abläufe.

So langsam können Sie folgende Fragenbeantworten...

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 39

Was wird wie priorisiert & welche Konsequenzen ergeben sich?

• Wie wichtig ist unserem Kunden dieseFunktionalität? 0..10 Punkte K

• Wie wichtig sehen die Programmierer die Integration der Funktionalität im Kontext der Anwendung?* 0..10 Punkte P

• Wie sehen die Programmierer die Schwierigkeitder technischen Umsetzung (Risiko) derFunktion?* 0..10 Punkte S

• Wie (zeit-)aufwendig sehen die Programmiererdie Umsetzung?* Schätzverfahren COCOMO, Lines Of Code, Function Points Preis dieser Funktion

* basierend auf ihrer Projekterfahrung

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 40

Page 21: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Womit fängt man jetzt an?

Man beginnt mit dem höchsten Risiko und demhöchsten Wert!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 41

K+P: 12-20S: 6-10

K+P: 12-20S: 0-3

K+P: 0-6S: 0-3

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 42

Exemplarische Priorisierungaus der Seminarverwaltung

Planning Poker:Zusammen mit dem Kunden die nächsten Schritte planen!Wie detailliert?vgl. eine Scrum-Aufgabe <16 Mannstunden

Page 22: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Klassen im Design

Von den Klassen zum Code

In der Design-Form beinhalten Klassen-Diagramme alle notwendigen Methoden und Attribute. mit Modellierungs-Werkzeuge Java- oder

C#-Coderümpfe generieren „Nur noch“ mit Funktionalität füllen

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 44

Auch Beziehungen zwischen Klassen wie „ein Kunde hat n Rechnungen“

können automatisch in Java-Collections abgebildet werden; u.a. mit ObjectIf von MicroTool

Page 23: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Von den Klassen zum Code

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 45

Beispiel: Together Edition for SAP NetWeaver Developer Studio

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Page 24: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Dr. rer. nat. Frank [email protected] Folie 47

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Einige Klassen im Designaus der Seminarverwaltung

Seminar- ID: Long- Zustand: Enum {existiert, buchend, ausgebucht, durchgeführt, storniert, gelöscht}- Kurzbeschreibung: String- Inhalt: String- SeminarZiel: String- Ort: String- Dauer: Byte- minAnzTN: Byte- maxAnzTN: Byte- Preis: Decimal + Daten anzeigen (): String+ Daten aktualisieren (Date von,...): String+ anmelden (Termin T, Teilnehmer TN)+ abmelden (Termin T, Teilnehmer TN)+ stornieren (Termin T) + entfallen (Termin T) + Termin hinzufügen(Date von, Date bis)....

Seminarverwaltung

- Seminare: ArrayList- instance: Seminarverwaltung

+ getInstance(): Seminarverwaltung+ suche (String Inhalt): Seminar+ suche (Long ID): Seminar....

*

Seminar-Termin

- von: Date- bis: Date

+ DozentZuweisen (Dozent d)+ RaumZuweisen (Raum r)...

* 0: individuelles In-House Seminar

Zustands-Diagramme

Page 25: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Wieso noch Zustandsdiagramme?

Sicht auf alle möglichen Zustände eines Objektes bezieht sich auf genau eine Klasse

Zustandsübergänge treten i.d.R. dadurch auf, dass das betreffende Objekt „angetriggert“ wird Methodenaufruf

Prinzipiell kann jede Methode eines Objektes jederzeit aufgerufen werden:Methodenaufruf Y im Zustand X erlaubt ??? Zustandsdiagramm wenn nicht erlaubt Exception

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 49

Sichere Automaten!

Vollständige Zustandsautomaten...

Robustheit der Software:im Alltag werden oft einzelne Methodenaufrufe in bestimmten Zuständen „vergessen“

Ein Objekt ist gegen seinen Zustandsautomatentestbar

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 50

Page 26: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Ein Objekt der Klasse „Seminar“:_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 51

Zustands-Diagrammaus der Seminarverwaltung

Sequenz-Diagramme

Page 27: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Aktivitäten vs. Sequenzen

Aktivitäts-Diagrammen:Abläufe aus Sicht des Geschäftsprozesses mit deren Zuständigkeiten modelliert Fachliches Modell

Nun wurden bereits Klassen, deren Methoden und Beziehung ermittelt...Sequenz-Diagramm:

Darstellung des technisch modellierten Ablaufs darstellen Technisches Modell

• Ablauf von Nachrichten von Objekten untereinander durch gegenseitige Methoden-Aufrufe

• Auslöser:Akteur, der einen Use-Case initiiert

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Sequenz-Diagramm aus der Seminarverwaltung:„Buchung vornehmen“

Page 28: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Test Driven Development&

Feature Driven Development

Was ist Testgetriebene Entwicklung?

• Ziel: Software-Tests vor den zu testendenKomponenten erstellen!

Erstellte Unit-Tests sind Grey-Box-Testsstatt klassischer White-Box-Tests

• Unit-Tests und mit ihnen getestete Units werden stets parallel entwickelt.

• eigentliche Programmierung in kleinen & wiederholten Schritten

• eine Iteration (Dauer: wenige Minuten) hat drei Hauptteile:

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 56

Page 29: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was ist Testgetriebene Entwicklung?

1. Schreiben Sie einen Test für das erwünschte fehlerfreie Verhalten, das implementiert werden soll. Dieser Test wird erst einmal nicht erfüllt bzw. es gibtden Code gibt es noch gar nicht.

2. Änderen/schreiben Sie den Code mit möglichst wenig Aufwand, bis nach dem anschließend angestoßenen Testdurchlauf alle Tests bestanden werden.

3. Räumen Sie im Code auf (Refactoring): - Wiederholungen entfernen- Code abstrahieren- Code nach Konventionen ausrichten- ...- testen!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 57

Test-Entwurfaus der Seminarverwaltung

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 58

Test: Seminar anlegen

Vorbedingung:---

prüfbare Nachbedingung Erfolg:Seminar wurde mit seinen Daten in der Seminarverwaltung aufgenommen und eine neue Seminar-ID wurde vergeben.

Nachbedingung erwarteter Fehlschlag:Seminar mit diesem Titel existiert bereits.

Test: Seminar buchen

Vorbedingung:Seminar existriert bereits und istzum gewählten Termin nicht ausgebucht

prüfbare Nachbedingung Erfolg:Kunde wurde als TN in die Liste der TN zum gewählten Termin aufgenommen

Nachbedingung erwarteter Fehlschlag:Meldung „Nicht möglich: Kunde hat noch >3 offene Rechnungen!“

Page 30: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was ist Feature-getriebene Entwicklung?

FDD wird eingesetzt, um ein (großes) zeitkritisches Projekt (z.B. 15 Monate, 50 Entwickler) durchzuführen.

Jedes Feature stellt einen Mehrwert für den Kundendar.

Die Entwicklung wird anhand eines Feature-Plans organisiert.

Eine wichtige Rolle spielt der Chef-Architekt, der ständig den Überblick über die Gesamtarchitektur und die fachlichen Kernmodelle behält.

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 59

Prozesse der Feature-getriebenen Entwicklung

1. Entwicklen Sie ein Gesamtmodell:- Konsens über Inhalt und Umfang des zu

entwickelnden Systems - fachliche Kernmodell grobe Use Cases

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 60

2. Erstellen Sie eine Feature-Liste:- nach dem einfachen Schema

<Aktion> <Ergebnis> <Objekt>- Bsp.: „Berechne Gesamtsumme der Verkäufe“- max. zwei Wochen zur Realisierung Risk/Value & Planning Poker

Page 31: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Prozesse der Feature-getriebenen Entwicklung

3. Planen Sie jedes Feature- Reihenfolge der Realisierung festlegen - Fertigstellungstermine je Geschäftsaktivität - Projektleiter, Entwicklungsleiter sowie

Senior-Programmierer beteiligt

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 61

4. Entwurf jedes Features- Entwicklerteams zuweisen- Erstellung von Sequenz-Diagrammen - erste Klassen- und Methodenrümpfe

5. Ausprogrammierung der Features - Pair Programming & TDD

Scrum

Page 32: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Was ist Scrum?

• „Das Gedränge“: agiles VorgehensmodellMeetings, Artefakten, Rollen & Werten folgt dem Prinzip der „Schlanken Produktion“

(lean production)

• Teammitglieder organisieren ihre Arbeit weitgehend selbst & wählen auch die eingesetzten Entwicklungswerkzeuge und -Methoden

• Entwicklung ist sehr komplex im Voraus weder in große abgeschlossene

Phasen noch in einzelne Arbeitsschritte(Granularität von Mannstunden) planbar

Selbst-Organisation!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 63

Grundlegende Begriffe des Scrum

• Zentrales Element ist der Sprint: Umsetzung einer Iteration (ca. 30 Tage)

• Vor dem Sprint:Produkt-Anforderungen des Kunden in einemProduct Backlog sammeln beinhaltet alle Funktionalitäten, die der

Kunde wünscht Priorisierung der Funktionen

• Hoch priorisierte Features: von den Entwicklern im Aufwand geschätzt ins Sprint Backlog übernehmen:

- enthält alle Aufgaben, um das Ziel des Sprints zu erfüllen

- eine Aufgabe: < 16 Stunden - längere Aufgaben: in Teilaufgaben zerlegen

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Page 33: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Meetings, Review & Retrospektive

Täglich: Daily Scrum Meeting (max. 15min.) Team stellt sich gegenseitig folgende Fragen:• „Bist du gestern mit dem fertig geworden, was du dir

vorgenommen hast?“• „Welche Aufgaben wirst du bis zum nächsten

Meeting bearbeiten?“• „Gibt es ein Problem, das dich blockiert?“

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Meetings, Review & Retrospektive

• Nach einem Sprint:Ergebnis einem informellen Review unterziehen:Team & Kunden Ergebnis des Sprints (laufende Software)

vorführen

• Kunde prüft, ob das Sprint-Ergebnis seinen Anforderungen entspricht: Änderungswünsche Product Backlog

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 66

Page 34: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Meetings, Review & Retrospektive

• Retrospektive:zurückliegende Sprint-Phase betrachten; zunächst wertfreien Rückblick auf die Ereignisse

• Teilnehmer notieren die wichtigen Ereignisse auf Zetteln.

• Anschließend schreiben die Teilnehmer Antworten auf die Fragen - „Was war gut?“ (Best practice) - „Was könnte verbessert werden?“

(Verbesserungspotential)

• Jedes Verbesserungspotential wird priorisiert undmit Zuständigkeiten versehen.

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 67

Pair Programming

Page 35: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Wie funktioniert Pair Programming?

• jeweils zwei Programmierer an einem Rechner

• einer schreibt den Code, der andere: - nachdenken über die Problemstellungen - Code kontrollieren Probleme sofort ansprechen sofort lösen

• Rollen abwechseln & Zusammensetzung derPaare häufig ändern

Ziel: Erhöhung der Software-Qualität

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 69

Vorteile des Pair Programming

• Höhere Disziplin: Paare entwickeln eher an der richtigen Stelle & machen kürzere Pausen

• Besserer Code: Man entwickelt man sich weniger leicht in Sackgassen.

• Höhere Moral: spannender & interessanter als alleine

• Collective Code Ownership: alle erlangen Wissen über die gesamte Codebasis, die gemeinsam erstellt wurde

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 70

Page 36: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Vorteile des Pair Programming

• Mentoring: Jeder hat Wissen, das andere nicht haben. einfache Wissensverbreitung

• Team-Bildung: Leute lernen sich gegenseitig schneller kennen Zusammenarbeit verbessert

• Weniger Unterbrechungen: Paare werden seltener unterbrochen.

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 71

Continous Integration

Page 37: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Motivation

Unit-und Modul-Tests...mit Werkzeugen wie JUnit mitlerweile

automatisiert erstellbar!

Wie können „höhere“ Tests - z.B. Integrationstest, gehandhabt werden?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

???

Motivation

Gerade wenn bei der Integration der Komponenten Design-Fehler entdeckt werden, ist dies entsprechend teuer!

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 74

Page 38: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Die Idee der Continous Integration

• Kontinuierliche Integration: regelmäßiges, vollständiges Neubilden &Testen einer Anwendung

Änderungen in die Versionsverwaltung einchecken Gesamtsystem neu bauen & automatisch

testen

alle Tests erfolgreich: Änderungen an die nächste Stufe geben

Tests scheitern: Änderungen zurücknehmen (Rollback) zur Korrektur vorlegen

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 75

Werkzeuge zur Continous Integration

Voraussetzung: - Versionsverwaltungssystem- zeitnahes Check-In- nur funktional vollständige Blöcke eingecheckt

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 76

Das Java-basierte CruiseControl hilft bei der Umsetzung der CI:- Benachrichtigung per E-Mail, - Nutzung von Apache Ant

& anderen Werkzeugen- Web-Oberfläche: aktuellen und vorherigen

Zustand der Software anzeigen

Page 39: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Der ideale Kunde & Programmierer

Mit welchen Kunden funktionierenagile Methoden (nicht)?

• experimentierfreudig• selbst erhebliche Ressourcen aufwenden • Worin besteht das Gewek?

... das durch den vereinbarten Preis erworbenwird

• Kunde verzichtet auf formale Spezifikation und bindendes Angebot

• Es darf nicht die Mentalität „das machen wir maleben nebenbei“ vorherrschen

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 78

Page 40: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

Mit welchen Kunden funktionierenagile Methoden (nicht)?

• Vertreter des Kunden darf selbst nicht gezwungensein, seinen Vorgesetzten eine- Planung im Vorfeld - Erfüllung bestimmter Funktionen zu festgelegten

Terminen zu berichten

• "Kunde vor Ort"-Prinzip Mitarbeiter des Kunden benötigen selbst einen

erheblichen Wissensumfang Sind diese Personen entbehrlich?

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 79

• Programmierer: sehr gute Fähigkeiten häufige Änderungen umfangreiche Programmiererfahrung geeignete Werkzeuge

• ausgeprägtes Ego: große Überzeugung von „richtigen Lösungen“ Besitzdenken des geschriebenen Codes äußert: Nicht jeder kann damit umgehen,

dass „sein“ Code von anderen verändert wird

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 80

Mit welchen Programmierern funktionierenagile Methoden (nicht)?

Page 41: Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung

• XP weist eine Reihe von Merkmalen auf, - die hohe Disziplin erfordern TDD & CI, permanante Refactorings,

Programmieren in Paaren - und andere, die eine gewisse Disziplin-

losigkeit fördern das Auslassen von Spezifikation

_____INHALT_____

Fallbeispiel

GPA / OOA- Story Cards- Use Cases- Aktivitäten- Objekte & Klassen- CRC-Karten- Risk/Value+Poker

OOD- Klassen- Zustände- Sequenzen

OOP- TDD & FDD- Scrum- Pair Programming- Cont. Integration

Der ideale Kunde & Programmierer

Dr. rer. nat. Frank [email protected] Folie 81

Mit welchen Programmierern funktionierenagile Methoden (nicht)?

Vielen Dank für Ihre Aufmerksamkeit!

Noch Fragen?

Quellen des Vortrags: • Wikipedia <http://de.wikipedia.org>• Vorlesung „Einführung in die Informatik II“

<http://www.bs.informatik.uni-siegen.de/www/lehre/ss09/ei2/index_html>• Fowler, Scott: UML konzentriert; 2. Auflage; Addison Wesley Verlag; ISBN 3-8273-1617-0• Helmut Balzert: Lehrbuch der Software-Technik: Software-Entwicklung; 2. Auflage;

Spektrum-Verlag; ISBN 3-8274-0480-0• Booch, Rumbaugh, Jacobson: Das UML Benutzerhandbuch; Addison-Wesley Verlag;

ISBN 3-8273-2295-2