Feature Driven Development (FDD) & Modeling in Color

Slides:



Advertisements
Ähnliche Präsentationen
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
Advertisements

Programmieren im Großen von Markus Schmidt und Benno Kröger.
Dokumentation von Software Architekturen unter Berücksichtigung von IEEE 1471 Vortrag an der FH Regensburg © Dr. Ulrich Margull, 2004 Dr. Ulrich.
Zur Rolle der Sprache bei der Modellierung von Datenbanken
K-Modeler Engineering
On the Criteria to Be Used in Decomposing Systems into Modules
B-Bäume.
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
IT-Projektmanagement
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
RUP-Elemente (Schlüsselkonzepte)
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Vorlesung: 1 Betriebssysteme 2008 Prof. Dr. G. Hellberg Studiengang Mechatronik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 2. Quartal.
Rational Unified Process (RUP) - Definitionen
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Explizite und editierbare Metainformationen für Software Muster.
RelationentheorieObjektorientierte Datenbanken AIFB SS Die Objekt-Definitionssprache ODL (1/24) Alle Elemente des Objektmodells können beschrieben.
Klassen und Schnittstellen Klasse: Definiert Zustandsraum ihrer Instanzen vollständig (Implementierung der Struktur, soweit Voraussetzung für die Methoden-
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Grundschutztools
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
UML Begleitdokumentation des Projekts
Vorlesung Gestaltung von soziotechnischen Informationssystemen - RequirementsEngineering und Contextual Design- Thomas Herrmann, Lehrstuhl Informations-
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Anpassung des RUP an ein konkretes Projekt - 1
Vorgehensmodelle: Schwergewichtige Modelle
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
12. Vorlesung: Aktivitätsdiagramme
5 Methoden und Werkzeuge zur Prozessmodellierung
Delphi II - OOP IFB Fortbildung
Kollektionen in Java Aufzählungstypen, Generische Typen
Fit für den Projektalltag mit für MS Project*
Projekte "agil" planen und managen
Mit 3 Schichte zum Erfolg
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 12 WS 2000/2001 Gerhard Gröger Modellierung mit Geodatabases.
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Agenda 13: Begrüßung & Einführung in das Thema
Auslegung eines Vorschubantriebes
Vorgehensweise bei der Software-Entwicklung des Publication Managers
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
UML-Kurzüberblick Peter Brusten.
Innovator Die Komponenten.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Vom Geschäftsprozess zum Quellcode
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Ippon!Soft Best Practises Ein Workshop der FXPUG ( )
Informations-Forum: SAP Interoperabilität
1 Ausgangslage Vorgehensweise: Informell, pragmatisch, stark graphisch orientiert. Systemanalytischer Ausgangspunkt: Klassischer Systembegriff als Ansammlung.
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Wenn alles so einfach wäre
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 18: Mehr über Vererbung und Agenten.
Unified Modeling Language UML
VirtualPatt 2000 Interaktives 3D-Schachspiel
Seite 1 © 2007 Dr. Schwaiger Roland VP SW-Technologien WS 2007/2008 VP Softwaretechnologien WS2007/2008 SAP GUI Pattern und Componentry Dr.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Funktionale Unifikations-Grammatik (FUG)  Hauptmerkmale der FUG.
- Studienarbeit - Entwurf und Umsetzung von kombinierten Anfragen für die Ähnlichkeitssuche auf digitalen Bilder auf der Basis von Regionen und Features.
…Be readY.
Agile Performance Tools & Information Systems -Ticket-System und Multi-Projektmanagement mit Andreas Haaken Systems Engineer Information Architect.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
 Präsentation transkript:

Feature Driven Development (FDD) & Modeling in Color (Peter Coad) 00000, 1.1.061

Coad im Kontext Peter Coad: OO-Zelebrität der ersten Stunde (“Coad & Yourdon”) Author einer Vielzahl von Büchern (auch über Software-Patterns) “Credo”: Datenorientiertes Modellieren vor Prozessorientierung! “Modeling in Color”: Aktuelle Darstellung von Coads Weg der OO-Modellierung... Kontext: Feature Driven Development... Grundidee: Farbe als zusätzliches Modellierungsmittel...

“Death by Use Case” Am Anfang von Feature Driven Development (FDD) steht die Erfahrung des Scheiterns! 2 Jahre Projektlaufzeit... 3500 Seiten Use-Case-Beschreibung... Mehrere Hundert Klassen mit tausenden Attributen, aber ohne Methoden... Keine Zeile lauffähiger Code... Die Feststellung, das Projekt sei nicht machbar!

Die Lösung Ein kompleter Neubeginn: Leichtgewichtiges Prozess-Framework... (Jeff De Luca, Nebulon) Feingranulare Anforderungsanalyse auf Basis von Features... (Peter Coad, TogetherSoft) Kleine, dynamische Teams mit integriertem Coaching... Gute Leute! Nach 15 Monaten war das Projekt erfolgreich beendet!

Features & Feature Sets Feingranulare Anforderungsanalyse: Feature: <action> <result> <object> Beispiel: “Berechne den Tarif des Vertrags“ Feature Set: Menge zusammengehöriger Features... <action><-ing> a(n) <object> Beispiel: “calculating a contract” “Berechnen eines Vertrages”

Feature Sets, Use Cases, Komponenten Ein Feature Set entspricht in etwa einem Use Case... Ein Major Feature Set entspricht in einer fachliche Komponente. Major Feature Set: <object> management Beispiel: “contract management” “Vertragsverwaltung” Eine fachliche Komponente wird oft durch eine Menge zusammengehöriger Use Cases beschrieben...

Geschäftsobjekte & Archetypen Features gruppieren sich typischerweise um bestimmte zentrale Geschäftsobjekte! Geschäftsobjekte sind in der Regel persistent. Nicht jedes persistente Objekt ist ein Geschäftsobjekt! Nicht jedes Geschäftsobjekt ist “zentral”! Zentral = Kristallisationspunkt für zentrale Geschäftsvorgänge...  Vier grundlegende “Archetypen”! Jedem Archetyp ist ein spezifischer UML-Stereotyp zugeordnet... Jedem Archetyp ist eine spezifische Farbe zugeordnet...

Archetypen Moment-Interval Zeitpunkt oder Zeitraum, der registriert bzw. verfolgt werden muss. Beispiele: Handelsabschluss, Mietverhältnis... Stereotyp <<moment-interval>> Farbe Rot Moment-Intervall wird oft durch ein Detail-Objekt ergänzt Stereotyp <<mi-detail>>

Archetypen Role Art der Teilnahme durch eine Partei, einen Ort, oder ein Ding. Beispiele: Käufer im Handelsabschluss, Mieter im Mietverhältnis... Stereotyp <<role>> Farbe Gelb

Archetypen Description Typ-Beschreibung eines Objektes ähnlich einem Katalogeintrag. Beispiele: Produkt eines Versicherungsvertrages... Stereotyp <<description>> Farbe Blau

Archetypen Party, Place or Thing Partei (Person oder Organisation), Ort, oder Ding. Beispiele: Kunde, Fabrik, Automobil... Stereotyp <<party>>, <<place>>, <<thing>> Farbe Grün

Domain-Neutral Component

Nutzung der Archetypen Archetypen sind Formen, denen alle Dinge derselben Art mehr oder weniger folgen... Archetypen sind nicht sinnvoll als abstrakte Oberklassen zu implementieren! Objekte, die einem Archetyp folgen, bilden ihn soweit als nötig nach. Verhaltensanpassungen erfolgen über “Plugin-Point”-Schnittstellen Vorgesehen Plugin-Points in der domain-neutral Component: Erzeugung spezifischer Moment-Interval-Objekte Komplexe Auswertungen von Description-Objekten

“Domain-Neutral Component” (Erweiterte Struktur)

Barverkauf (“Cash Sale”) Ein Beispiel Situation: Ein Kassierer sitzt zu einer bestimmten Zeit an einer Kasse. Ein Kunde kauft eine bestimmte Menge eines bestimmten Produktes bei dem Kassierer. Der Barverkauf ereignet sich in einer bestimmten Filiale.

Barverkauf (“Cash Sale”) Ein Beispiel Ein Kassierer sitzt zu einer bestimmten Zeit an einer Kasse: Kassierer => <<party>> Kasse => <<thing>> Zuordnung Kassierer-Kasse => <<moment-interval>> Ein Kunde kauft eine bestimmte Menge eines bestimmten Produktes bei dem Kassierer: Kunde => <<party>> Produkt => <<thing>> Barverkauf => <<moment-interval>> Menge im Barverkauf => <<mi-detail>> Der Barverkauf ereignet sich in einer bestimmten Filiale: Filiale => <<place>>

Barverkauf (“Cash Sale”) Ein Beispiel Achtung! Ein Kassierer kann auch manchmal Kunde sein... Eine Filiale ist Verkaufsort aus Sicht des Barverkaufs... Arbeitsplatz aus Sicht des Kassierers... Ein Produkt ist Handelsgegenstand aus Sicht des Barverkaufs... Fabrikationsgegenstand aus Sicht des Produzenten...  Rollen! Das Produkt ist als Gegenstand weitgehend irrelevant! Interessiert vor allem als Typ-Beschreibung!

Barverkauf (“Cash Sale”) Ein Beispiel

Best Practices Domain Object Modeling Developing by Feature Individual Class (Code) Ownership Feature Teams Inspections Regular Builds Configuration Management Reporting/Visibility of Results

Rollen Schlüsselrollen: Project Manager Chief Architect Development Manager Chief Programmers Class Owners Domain Experts Unterstützende Rollen: Domain Manager Release Manager Language Lawyer bzw. Guru Build Engineer Toolsmith System Administrator Zusätzliche Rollen: Testers Deployers Technical Writers

FDD-Prozesse

Develop an Overall Model: FDD-Prozesse Develop an Overall Model: Erstellen eines (skizzenhaften) Domain Object Model mit informellen Anmerkungen. Build a Features List: Erstellen einer (möglichst vollständigen) Liste der Features auf der Basis des Domain Object Models: Identifikation von Geschäftsbereichen (“major feature sets”). Identifikation von Aktivitäten (“feature sets”) in den Geschäftsbereichen. Funktionalen Dekomposition in einzelne Features.

Priorisierung der Feature-Liste. Aufwandsabschätzung FDD-Prozesse Plan by Feature: Priorisierung der Feature-Liste. Aufwandsabschätzung Zeitpunkt der voraussichtlichen Realisierung für Features & Feature Sets... Granulation: Monat! Zuordnen der Klassen des Domain Object Models zu ihren Eigentümern. Zuordnen der Feature Sets an die Chef-Programmierer als Arbeitspakete.

FDD-Prozesse Design by Feature: Analyse des Feature durch den Chef-Programmierer. Zusammenstellen des Feature Teams auf Basis der betroffenen Klassen. Domain Walkthrough. Verfeinerung des Objektmodells. Design & Design-Inspektion. Build by Feature: Implementierung des Designs. Unit-Tests & Code-Inspektionen. Freigabe für den Build.

Reporting in FDD Kontinuierliche Feinabstimmung des Projektablaufs setzt ein feingranulares Reporting voraus! Basis: “Mini-Meilensteine” mit adaptierbarer Gewichtung...

Reporting in FDD