fachgebiet software engineering Übersicht © 09.02.2014 albert zündorf, kassel university...

45
Fachgebiet Software Engineering Übersicht © 03.07.22 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Upload: meinhard-apfelbaum

Post on 05-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Vorgehensmodelle: Wasserfallmodell

Page 2: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Vorgehensmodelle: V-Modell

OO Softwareentwicklung inkrementell prototypisch iterativ Use-Cases driven Architekturbeschreibung durch Klassendiagramme

Page 3: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Vorgehensmodelle: V-Modell

Submodule Projektmanagement Qualitätssicherung Softwareentwicklung Konfigurations-

Management

definiert Rollen

beschreibt Aktivitäten und Produkte

definiert Werkzeuge

Page 4: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Spiralmodel nach Barry W. Boehm

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Anforderungen

Design

Implementierung

Test

Page 5: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Vorgehensmodelle: Der Unified Process [JBR]

objektorientiert

benutzt die UML

Use-Case driven

inkrementell und iterativ

Architektur basiert

Phasen Konzeptionsphase (englisch Inception) Entwurfsphase (englisch Elaboration) Konstruktionsphase (englisch Construction) Übergabephase (englisch Transition)

Arbeitsschritte ähnlich dem Wasserfallmodell

beschreibt Rollen / Aktivitäten / Dokumente / Produkte

Page 6: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Vorgehensmodelle: Der Unified Process

Page 7: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Requirements Capturing

Page 8: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Requirements Refinement

Page 9: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Story Driven Modeling

1. requirements scenarios

2. application scenarios

3. story boards & GUI mockups

4. class diagrams

5. tests

6. method development

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 10: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Quanten Metapher von Kurt Schneider

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 11: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Datenflussmodellierung mit FLOW (Kurt Schneider)

Page 12: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Communication Patterns (Kurt Schneider)

Dokumente Reproduzierbar, Aufwendig Nachfragen schwierig

Gespräche Nicht reproduzierbar Billig Interaktiv

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 13: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Communication Patterns

Meetings Eingeschränkt reproduzierbar durch Minutes Mittlere Kosten Mittlere Interaktivität

Mail Reproduzierbar (auch wenn es sich privat anfühlt) Mittlere Kosten Mittlere Interaktivität

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 14: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Communication Patterns (Kurt Schneider)

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 15: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

eXtreme Programming

Lehrmeinung zur Softwaretechnik Architektur ist ganz wichtig Process ist ganz wichtig Vollständige Anforderungsdefinition ist unabdingbar Alles in Dokumenten festhalten

Kent Beck (Berater im Silicon Valley)’s Meinung zur Softwaretechnik: Der ganze Quatsch hält nur auf lasst uns lieber Programmieren . . .

Page 16: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Übersicht

eXtreme Programming Das Planungsspiel Testen Pair Programming Raumaufteilung on-site customer Design Metapher Gemeinsamer Codebesitz

Page 17: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

eXtreme Programming Prinzipien / Elemente

Das Planungsspiel (The planning game) der Kunde schreibt „User Stories" auf Story-Karten

(Use Cases mit kurzer textueller Beschreibung) Die Entwickler schätzen den Entwicklungsaufwand

(basierend auf grober Zeiterfassung und Vergleich mit früheren Schätzungen, aber ohne besondere Techniken)

Kunde wählt (begrenzt durch den gesteckten Zeit- und Kostenrahmen) zu realisierende Stories für das nächste Release aus

Page 18: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Story Card

Page 19: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Task Card

Page 20: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Testen

Stories werden in Implementierungs-Tasks / (Teil-) Funktionalitäten runtergebrochen

Kunde schreibt Tests für seine Stories / Tasks

bevor man eine Funktionalität implementiert wird als erstes dafür ein "einfacher" Test (Test-first) geschrieben

dann wird solange implementiert, bis der Test durchläuft

fertig, nächste Funktionalität

oder Test erweitern und Implementierung erweitern

Page 21: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Testen

Page 22: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Paar-Programmierung (Pair Programming)

Man sitzt immer zu zweit vor dem Rechner

Einer tippt, erklärt, . . .

Einer schaut, fragt, meckert, achtet auf Vorgehen und Standards, ...

Paare werden Task-weise neu zusammengestellt

Ersatz für Reviewing-Techniken

Ziele sind die selben

Paar-Programmierung ist eXtremer als Reviewing

Page 23: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Raumaufteilung

großer Raum für das ganze Team Rechner in der Mitte mit genügend Platz damit bis drei Leute davor sitzen

können Hilfe auf Zuruf ist möglich Kein Teppich, damit die Stühle besser hin und her rollen können Cubicles an den Außenwänden Tisch für Besprechungen Kaffee Ecke mit (jeder Menge) Snacks und kleinen Spielen, ... Tafeln für Diskussionen Gut ist, wenn sich das Team selbst einrichtet (Gruppendynamik,

Empowerment, ...)

Page 24: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Raumaufteilung

Page 25: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Kunde vor Ort (on-site customer)

Ein Kundenvertreter sitzt die ganze Zeit beim Entwickler-Team (lebende Anforderungsdefinition)

Der Kundenvertreter kennt die Anwendungsdomäne, ist selber zukünftiger Anwender oder Anwender des Vorgängersystems

Der Kundenvertreter schreibt Stories (Use-Cases)

Der Kundenvertreter implementiert Tests für die Stories

Der Kundenvertreter priorisiert Anforderungen im Planungsspiel

Der Kundenvertreter nimmt Releases ab und entscheidet über Projektfortsetzung

(Wo kriegt man solche Kunden her?)

Page 26: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Einfaches / simples Design

Lehrmeinung: Kosten für Änderungen steigen exponentiell mit Projektlaufzeit

Kent Beck’s Meinung: Änderungen werden mit der Projektlaufzeit eher billiger

Page 27: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Einfaches / simples Design

Die Lehrmeinung impliziert:

Kent Beck’s Meinung impliziert

Page 28: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Design in XP

kein "Voraus-Design"

kein Design für Wiederverwendung

kein Product-Line-Design

immer nur die gerade notwendigsten Klassen und Methoden

Refactoring Hilfen

Page 29: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Metapher

eines der ungelösten Mysterien des XP

Metapher ist gemeinsame bildhafte Vorstellung des Systems

z.B.: Bahnhof, Postamt, Markt, Agentensystem, ...

Metapher sorgt für gemeinsame Sprachwelt im Team und mit dem Kunden

Der Begriff bleibt im Buch ziemlich unklar

Page 30: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Kleine Releases

frühes erstes Teil-Release in "Produktion" (z.B. nach drei Monaten) viele kleine Releases (z.B. monatlich) Im Prinzip "iterativen" Lebenszyklusmodells (wie beim Unified Process) frühes Feedback durch Kunden Steuerung noch möglich automatisches Testen Funktionalität geht nicht verloren

Achtung: Altdatenbestände / festgeschriebene Bedienungsabläufe können Redesign-Schritte behindern

Page 31: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Gemeinsamer Codebesitz

Keine Aufteilung des Programms in Verantwortungsbereiche

Jeder ist für das gesamte verantwortlich

Jeder darf überall beliebig ändern

Aber: die Tests müssen weiter durchlaufen

Das machen wir in Fujaba auch so

funktioniert gut (obwohl wir bisher nur wenig automatische Tests haben)

Page 32: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Coding Standards

damit "gemeinsamer Code-Besitz" funktioniert muss Code möglichst überall gleich aussehen

starke Coding Standards werden benötigt

Paar-Programmierung stellt Einhaltung der Standards sicher

das machen wir in Fujaba mit Eclipse

Page 33: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Refactoring

Refactoring heißt Code-Reorganisation / kleiner Redesign-Schritte Copy-Paste Code in Methoden auslagern Klassenhierarchie überarbeiten Hilfsklassen, -methoden, -strukturen einführen . . .

Immer wenn man was sieht, was man mal überarbeiten sollte, auf die Task-Card schreiben

bevor man neue Funktionalität implementiert, gegebenenfalls Desginänderungen vornehmen

während der Implementierung nicht gleichzeitig refactorn

nach der Implementierung Refactoring-Tasks abarbeiten

Page 34: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Kontinuierliche Systemintegration

fertige Teilfunktionalitäten werden so früh wie möglich (täglich) in die Team-Master-Kopie integriert

dafür gibt es einen extra Integrations-PC

das machen wir mit SVN

Page 35: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

40 Stunden Woche

müde Leute machen Fehler

müde Leute sind unproduktiv

Kent möchte genügend Zeit für seine Kinder haben

entspricht allen allgemeinen Empfehlungen zur Produktivität von Arbeitskräften

widerspricht der industriellen Praxis (gerade bei IT-Start-Ups)

Page 36: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Rollen in einem XP-Projekt

Programmierer: fast alle sind Programmierer Tests schreiben Refactoring Tests implementieren kommunizieren pairen

Kunde ein Kundenvertreter vor Ort "lebende" Anforderungsdefinition funktionale Anforderungen als Stories formulieren funktionale Tests schreiben Funktionalität für die Releases auswählen Verbindung nach Hause halten

Page 37: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Rollen in einem XP-Projekt

Tester einer im Team unterstützt den Kunden beim Schreiben der funktionalen Tests

Tracker einer im Team schiebt die "Done" Markierungen auf dem Balkenplan weiter führt Produktivitätsstatistiken

Coach einer im Team verantwortlich für die Einhaltung / Umsetzung der XP Prinzipien wichtig beim Einstieg in die XP-Arbeitsweise etwas auch für die Architektur verantwortlich:

wenn nötig, Refactoring initiieren

Page 38: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Rollen in einem XP-Projekt

Consultant XP fördert / produziert "allround" Programmierer für komplizierte / neue Technik(en) braucht man

gegebenenfalls einen Berater

Big Boss der "Projektmanager" vertritt / beschützt das Team nach außen hin trifft gelegentlich Personalentscheidungen mischt sich nicht in technische Sachen / die eigentliche

Arbeit ein

Page 39: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Bewertung

XP hat viele gute Elemente / "Best Practices" Test-First Prinzip Paar-Programmierung (Reviewing funktioniert oft schlecht) Planungsspiel und On-Site-Kunde (wenn das der Kunde mit macht)

XP hat klare Beschränkungen kleine Projekte keine sicherheitskritischen Systeme wo zertifizierte

Entwicklungsprozesse verlangt werden

XP und Softwaretechnik sind eigentlich kein Widerspruch

Page 40: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Scrum / Kunagi:

User Stories / Tasks wie XP

Product Owner == Onsite Customer

Kleine Releases

Burn Down Charts >== Planungsspiel

Scrum Master >== ?

Daily Scrum Meeting >== ?

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 41: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Kanban

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 42: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Semat Software Engineering Method and Theory

Ivar Jacobson

Comming soon …

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 43: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Das liebe Geld

Angebot

Bestellung

Rechnung

Festpreis Produkt(Design by Budget)

Dienstleistung (Arbeitsstunden)

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 44: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Twenty dirty tricks to train software engineers; Ray Dawson ICSE 2000

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University

Page 45: Fachgebiet Software Engineering Übersicht © 09.02.2014 Albert Zündorf, Kassel University Vorgehensmodelle: Wasserfallmodell

Fachgebiet Software Engineering Übersicht © 11.04.23 Albert Zündorf, Kassel University