03.03.2013 Aufrufe

SE1 20061115 Vorgehensmodelle - Software Engineering Kassel

SE1 20061115 Vorgehensmodelle - Software Engineering Kassel

SE1 20061115 Vorgehensmodelle - Software Engineering Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

Einführung <strong>Software</strong> <strong>Engineering</strong><br />

! Motivation<br />

! <strong>Software</strong>technik<br />

! Beispiel<br />

! Kernaussagen des PMs und der QS<br />

! <strong>Vorgehensmodelle</strong><br />

– Wasserfall-Modell<br />

– V-Modell<br />

– Rational Unified Process<br />

! Requirements <strong>Engineering</strong><br />

! Um 2000:<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Motivation<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

1<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

– Leistungsfähige PCs und Server, 1GB Hauptspeicher, 1GHz CPU, 1TB<br />

Platten, … (Faktor 10^6 in 30 Jahren)<br />

– Multi-User, Multi-Tasking, LANs, Internet, GUIs, …<br />

– Eiffel, Java, …<br />

– Programmgrößen bis 1.000.000 LOC klappt<br />

– 10.000.000 – 30.000.000 LOC 50/50 Chance<br />

– mehr als 50.000.000 LOC nur im Glücksfall<br />

– der „Markt“ will Programme > 100.000.000 LOC (Faktor 10^3 in 30 Jahren)<br />

! Voraussichtlich wird sich die zu beherrschende Problemgröße alle<br />

3 Jahre verdoppeln<br />

! Bemerkung: Die „Produktivität“ der Entwickler ist nicht wesentlich<br />

gewachsen: 50 – 100 LOC pro Tag<br />

3<br />

Leif Geiger<br />

Es begab sich:<br />

! Ende der 60er Jahre<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Motivation<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

– zentrale (Stickstoff gekühlte) Großrechner, 3kB Hauptspeicher, 1kHz CPU,<br />

Magnetbänder, …<br />

– closed-shop Betrieb mit Lochkarten, evtl. ASCII Terminals<br />

– Assembler, Fortran, Cobal, C, …<br />

– Programmgrößen bis 1000 LOC (Lines of Code) klappt<br />

– 10.000 – 30.000 LOC 50/50 Chance<br />

– mehr als 50.000 LOC klappt nur im Glücksfall<br />

– der „Markt“ wollte Programme > 100.000 LOC<br />

– einige große Firmen hatten gerade einige große Projekte in den Sand gesetzt<br />

– keiner wusste wie man so was macht<br />

! 1972 Konferenz in Garmischpartenkirchen ruft „<strong>Software</strong>krise“ aus<br />

! Idee: Ingeniersmäßige <strong>Software</strong>entwicklung ! <strong>Software</strong>technik<br />

Leif Geiger<br />

! Nach Laprie 1999:<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Motivation<br />

– 1/3 der Projekte wird zur Zufriedenheit der<br />

Kunden und des Anbieters durchgeführt<br />

2<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

– 1/3 der Projekte überzieht Zeit und Kosten, liefert<br />

nur Teilfunktionalität, Programme instabil<br />

– 1/3 der Projekte scheitert ganz<br />

4


Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

Lösungsansätze der <strong>Software</strong>technik<br />

! bessere <strong>Software</strong>-Ingenieure<br />

! bessere Programmiersprachen<br />

! Objektorientierte Entwurfsmethoden<br />

! Bessere Werkzeuge<br />

! Formale Methoden<br />

! Wiederverwendung<br />

! Reengineering<br />

! besseres Projektmanagement ! Prozessmodelle,<br />

<strong>Vorgehensmodelle</strong>, Konfigurationsmanagement<br />

! aber: „No silver bullet“ F.Brooks, IEEE Computer 1987<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Fortsetzung Beispiel<br />

! Die Firma führt eine explizite Abschlusskontrolle aller Geräte vor<br />

Auslieferung ein.<br />

! Eine eigene Testabteilung prüft alle Geräte und führt gegebenenfalls<br />

Reparaturen durch.<br />

! Bei 14 % der Geräte ersetzt die neue Testabteilung kaputte Birnen.<br />

! Die Fehlerrate bei Kunden sinkt auf 2%.<br />

! Die Kundendienstabteilung kann um 87,5 % verkleinert werden.<br />

! Alle sind glücklich und zufrieden.<br />

! Nur der Absatz geht immer noch zurück.<br />

! Die Projektoren kosten ungefähr 50 % mehr als vergleichbare Geräte<br />

der Konkurrenz<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

5<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

! Man wirbt zu horrenden Kosten einen Mitarbeiter der Konkurrenz ab und<br />

stellt fest, dass die eigene Test- und Reparaturabteilung 33 % der<br />

Mitarbeiter beschäftigt, bei der Konkurrenz sind es nur 5 %.<br />

! Die meiste Zeit geht für’s Birnenwechseln drauf.<br />

7<br />

Leif Geiger<br />

Ein an den Haaren herbeigezogenes<br />

Beispiel aus der Fertigungstechnik<br />

(siehe [Klaus Pohl, erstes Kapitel])<br />

! Eine Firma stellt Diaprojektoren her.<br />

! Wenn ein Kunde an einem Gerät einen Defekt feststellt,<br />

dann kann er das Gerät innerhalb von 14 Tagen<br />

anstandslos umtauschen oder reparieren lassen.<br />

! Die Firma ist für Kulanz und guten Kundendienst berühmt.<br />

! Alle sind glücklich und zufrieden.<br />

! Eines Tages stellt das Controlling fest, dass der Absatz<br />

zurückgeht.<br />

! Die Projektoren kosten ungefähr das Doppelte wie<br />

vergleichbare Geräte der Konkurrenz.<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

! Man stellt fest, dass fast die Hälfte der Kosten vom<br />

Kundendienst verursacht werden. Der häufigste Defekt sind<br />

kaputte Birnen bei 16 % der neu ausgelieferten Geräte. Ein<br />

Techniker fährt zum Kunden und ersetzt die Birne.<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Fortsetzung Beispiel<br />

! Die Firma überprüft den Mitarbeiter, der die Birnen in der Fertigung<br />

einbaut.<br />

! Direkt nach dem Einbau sind nur 1 % der Birnen defekt.<br />

6<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

! Weitere Überprüfungen ergeben, dass die Birnen auf dem Weg von der<br />

Vormontage zur Gehäusemontage kaputt gehen:<br />

! Die Stufe im Förderband wird ausgebaut.<br />

! Die Fehlerrate bei der Testabteilung sinkt auf 1 %.<br />

! Die Testabteilung kann auf 7 % ihrer Größe verkleinert werden.<br />

! Alle sind glücklich und zufrieden, nur . . .<br />

8


Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

Kernaussagen des Projektmanagements<br />

und der Qualitätssicherung<br />

! Wartung und Fehlerbehebung sind die<br />

Hauptkostenpunkte<br />

! Qualitätsverbesserung senkt die Kosten<br />

! Qualitätsverbesserung muss am<br />

Herstellungsprozess ansetzen<br />

(! Qualitätssicherung und Projektmanagement<br />

sind eigentlich das gleiche)<br />

! Grundlagen für die Prozessverbesserung sind:<br />

– Messungen, Metriken, Controlling, Prüfungen, . . .<br />

– klar definierte Prozesse => projektübergreifende<br />

Vergleichbarkeit (formale Prozessdefinition)<br />

– Planung und Überwachung der Prozessausführung<br />

– Management Commitment<br />

– …<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

V-Modell<br />

! Submodule<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

9<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

– Projektmanagement<br />

– Qualitätssicherung<br />

– <strong>Software</strong>entwicklung<br />

– Konfigurations-<br />

Management<br />

! definiert Rollen<br />

! beschreibt Aktivitäten<br />

und Produkte<br />

! definiert Werkzeuge<br />

11<br />

Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

! OO <strong>Software</strong>entwicklung<br />

– inkrementell<br />

– prototypisch<br />

– iterativ<br />

– Use-Cases driven<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Wasserfallmodell<br />

SE im V-Modell<br />

– Architekturbeschreibung durch Klassendiagramme<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

10<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

12


Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

! objektorientiert<br />

Der Unified Process [JBR]<br />

! benutzt die UML<br />

! Use-Case driven<br />

! inkrementell und iterativ<br />

! Architektur basiert<br />

! Phasen<br />

– Konzeptionsphase (englisch Inception)<br />

– Entwurfsphase (englisch Elaboration)<br />

– Konstruktionsphase (englisch Construction)<br />

– Übergabephase (englisch Transition)<br />

! Arbeitsschritte ähnlich dem Wasserfallmodell<br />

! beschreibt Rollen / Aktivitäten / Dokumente / Produkte<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Requirements Capturing<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

13<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

15<br />

Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

Der Unified Process<br />

Die Produkte des Requirements Capturing<br />

! Domain Model<br />

– "Klassendiagramme" der Subject-, Usage- und System-World<br />

! oder besser Business Model<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

14<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

– vollständige Modellierung (Klassendiagramme plus<br />

Verhaltensspezifikationen) der Subject-, Usage- und System-World<br />

! Feature List<br />

– funktionale Anforderungen (meist textuell):<br />

– Was soll die neue <strong>Software</strong> in unseren Business Abläufen<br />

automatisieren?<br />

! Supplementary Requirements<br />

– nichtfunktionale Anforderungen<br />

– Antwortzeiten, Verfügbarkeit, Resourcenbedarf, . . .<br />

16


Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Requirements Refinement<br />

Die Probleme des Requirements<br />

<strong>Engineering</strong><br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

17<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

! Der Kunde weiß im allgemeinen nicht was er<br />

will<br />

! "Den Kunden" gibt es eigentlich nicht,<br />

unterschiedliche Interessensgruppen auf<br />

Kundenseite<br />

! Business Model meist nicht vorhanden<br />

! Einzelne Kundenvertreter kennen oft nur<br />

Ausschnitt des eigenen Business Models<br />

! Das Business Model ist ein "Moving Target"<br />

19<br />

Leif Geiger<br />

Die vier Welten des Requirements<br />

<strong>Engineering</strong><br />

! Subject World<br />

– Modell der Anwendungsdomäne<br />

– die Daten / Vorgänge die verwaltet / bearbeitet werden sollen<br />

! Usage World<br />

– Wer sind die Anwender des geplanten <strong>Software</strong>systems<br />

– Was sind die Aufgaben, die die Anwender bearbeiten<br />

! System World:<br />

– bestehende <strong>Software</strong> und ihre Doku und ihre Entwicklungsgeschichte<br />

! Development World:<br />

– "Entwicklunswelt". Hier wird die neue <strong>Software</strong> entwickelt<br />

– fertige Produkte wandern aus der Entwicklungswelt in die Systemwelt<br />

Aufgabe des Requirements <strong>Engineering</strong> ist die präzise Modellierung<br />

aller 4 Welten.<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Leif Geiger<br />

! Berater / Consultants vor<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

Lösungsansätze<br />

– Experten in der Erstellung von Business Models<br />

– das alleine ist früher oft gescheitert<br />

! Vertreter vor<br />

– dem Kunden passendes Problem zum eigenen Produkt einreden<br />

! Iterative Prozesse<br />

– erste Teilfunktionalitäten werden früh vom Kunden evaluiert<br />

! eXtreme Programming<br />

– Kunde definiert Anforderungen selbst<br />

– Kunde formalisiert Anforderungen mittels Tests<br />

– Kunde priorisiert Anforderungen<br />

– Kunde evaluiert jede Teilfunktionalität sofort<br />

– Kunde hat im Zweifel selber Schuld<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

18<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

20


Leif Geiger<br />

Literatur zu <strong>Vorgehensmodelle</strong>n<br />

! Grady Booch, James Rumbaugh, Ivar Jacobson:<br />

The Unified <strong>Software</strong> Development Process,<br />

Addison Wesley 1999 (relativ wichtiges<br />

Standardwerk)<br />

! Jochen Seemann, Jürgen Wolff von Gudenberg:<br />

<strong>Software</strong> Entwurf mit UML; Springer 2000 (finde<br />

ich ziemlich gut)<br />

! Klaus Pohl: Process Centered Requirements<br />

<strong>Engineering</strong>; Wiley, 1996, ISBN 0 86380 193 5<br />

<strong>Software</strong> <strong>Engineering</strong> I<br />

FG <strong>Software</strong> <strong>Engineering</strong><br />

! Watts Humphrey: The Personel <strong>Software</strong> Process<br />

! Kent Beck: Extreme Programming Explained<br />

21

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!