45
Einleitung - Begriffe und Vorgehensmodelle Software Engineering 1 - WS 2012/2013 Prof. Dr.-Ing. Ina Schaefer 1 Institut für Softwaretechnik und Fahrzeuginformatik TU Braunschweig 1 Mit Folien von Prof. Dr. B. Rumpe und Dr. A. Herrmann Ina Schaefer SE 1 - WS 2012/2013 1

Einleitung - Begriffe und Vorgehensmodelle · 2012-10-18 · Inhalt der Vorlesung 1. Motivation 2. Was ist Software? 3. Was ist Softwaretechnik? 4. Vorgehensmodelle Ina Schaefer SE

  • Upload
    dangnhu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Einleitung - Begriffe und VorgehensmodelleSoftware Engineering 1 - WS 2012/2013

Prof. Dr.-Ing. Ina Schaefer1

Institut für Softwaretechnik und FahrzeuginformatikTU Braunschweig

1Mit Folien von Prof. Dr. B. Rumpe und Dr. A. Herrmann

Ina Schaefer SE 1 - WS 2012/2013 1

Inhalt der Vorlesung

1. Motivation

2. Was ist Software?

3. Was ist Softwaretechnik?

4. Vorgehensmodelle

Ina Schaefer SE 1 - WS 2012/2013 2

Motivation

4. Juni 1996: Erster Start der Ariane-5

• Während des Fluges läuft ein unnötiges Kalibrierungsprogrammfür die Trägheitssensoren.

• Die gemessenen Werte der Ariane-5 überschreiten die in derAriane-4-Software vorgesehehen Bereiche.

• Die (Ada-)Exception wird durch Anhalten des Steuerungs-computers behandelt, um auf ein zweites redundantes Systemumzuschalten.

• Im zweiten System tritt der gleiche Software-Fehler auf und wirdidentisch behandelt.

• Kosten des Ariane-5-Programms bis 1996: ca. 8 Milliarden US-$• Wert des zerstörten Satelliten: ca. 500 Millionen US-$

Ina Schaefer SE 1 - WS 2012/2013 3

Motivation

Fehlgeschlagene Softwareprojekte (Beispiele)

• 1994: Eröffnung des Denver International Airport um 9 Monateverzögert wegen Softwareproblemen im Gepäcktransport-System

• 1999: Fehlstart einer Titan/Centaur-Rakete wegen falscherSoftware-Version

• 1999: Verlust der Sonde "Mars Climate Orbiter" wegen falscherEinheitenumrechnung

• Toll Collect: Geplanter Start 31. Aug 2003,tatsächlicher Start 1. Jan 2006; 3.5 Milliarden e Einnahmeausfälle

• Londoner Börse beendet Taurus Projekt 1993 nach 11 Jahren undBudgetüberschreitung um 13200 %

Ina Schaefer SE 1 - WS 2012/2013 4

Motivation

Softwarekrise

• Mitte 1960er Jahre• Mit schnellerer Hardware wurde Software wichtiger• Steigende Anforderungen, aber qualifiziertes Personal fehlte• Softwareentwicklung durch “Bastelei”• Bestehende Systeme intransparent und unübersichtlich, kaum

änderbar• Kosten und Dauer überstiegen Erwartungen• Anforderungen oft nicht erfüllt• Große Softwareprojekte scheiterten

Ina Schaefer SE 1 - WS 2012/2013 5

Motivation

Permanente Softwarekrise?

• Studie von 1979 zu Softwareprojekten (USA):I 75% der Ergebnisse nie eingesetztI 19% der Ergebnisse stark überarbeitetI 6% benutzbar.

• Studie von 1994 zu Software-Großprojekten (IBM Consulting):I 55% KostenüberschreitungI 68% TerminüberschreitungI 88% Bedarf für starke Überarbeitung

Ina Schaefer SE 1 - WS 2012/2013 6

Motivation

Wirtschaftliche Bedeutung

Wirtschaftliche Bedeutung von Software in Deutschland [BMBF- Studie 2000]

• 10.550 Unternehmen mit 300.000 MA in Primärbranche(DV- Hersteller und –Dienstleister mit SWE)

• 8.650 Unternehmen mit 2.5 Millionen MA in Sekundärbranche(Maschinenbau, Elektrotechnik, Fahrzeugbau,Telekommunikation, Finanzdienstleister)

• Anteil der Informations- und Kommunikationstechnologien amBruttoinlandsprodukt 6.8 % (2004), 4.7 % (1995)

• Wertschöpfung durch Software 25 Mrd. e; ITK: 87 Mrd. e(vgl. Landwirtschaft 20 Mrd. e, Produktion 440 Mrd. e)

Ina Schaefer SE 1 - WS 2012/2013 7

Motivation

Umfang von Software

• Enterprise-Resource-Planning Software R/3 von SAP:

Jahr Lines of Code # Funktionsbausteine1994 7 Mio. 14.000

1997 (Rel. 3.1) 30 Mio. 200.0001999 (Rel. 4.5) 50 Mio. 400.000

• Weitere Zahlen zu R/3 Release 4:I 11 000 externe Tabellen (Datenbank)I 500 000 Tabellenfelder (extern und intern)

Ina Schaefer SE 1 - WS 2012/2013 8

Motivation

Umfang von Software (2)

Gesamtumfang der verwendeten Software (Anfang 2000):• Chase Manhattan Bank: 200 Mio. Code-Zeilen• Citicorp Bank: 400 Mio. Code-Zeilen• AT&T: 500 Mio. Code-Zeilen• General Motors: 2 Mrd. Code-Zeilen

Ina Schaefer SE 1 - WS 2012/2013 9

Motivation

Steigende Qualitätsanforderungen

Softwarefehler:• Handy bis zu 600 Fehler (dh. 3 Fehler pro 1000 loc)• Windows95 bis zu 200.000 Fehler (dh. 20 Fehler pro 1000 loc)• Space Shuttle weniger als 1 Fehler pro 10.000 loc

Gefundene Defekte in 1000 Zeilen Quellcode: (M. Cusumano, MIT 1990)

• 1977: 7 - 20 Defekte• 1994: 0,05 - 0,2 Defekte

Ina Schaefer SE 1 - WS 2012/2013 10

Motivation

Steigende Qualitätsanforderungen (2)

Steigerung des Qualitätsniveaus um den Faktor 100 in 13 Jahren.

Aber: Komplexitätssteigerung muss kompensiert werden(Faktor 10 in 5 Jahren).

Zunehmende „Altlasten“: Anwendungssoftware wird oft 20 Jahre undlänger eingesetzt.

In manchen Betrieben sind 60-70% der Softwarekosten für Anpassungvon Altsoftware!

Ina Schaefer SE 1 - WS 2012/2013 11

Motivation

Steigende Qualitätsanforderungen (3)

0,1%-Defektniveau bedeutet:• pro Jahr:

20.000 fehlerhafte Medikamente300 versagende Herzschrittmacher

• pro Woche:500 Fehler bei medizinischen Operationen

• pro Tag:16.000 verlorene Briefe in der Post18 Flugzeugabstürze

• pro Stunde:22.000 Schecks nicht korrekt gebucht

−→ Auch in Zukunft: Massive QM-Anstrengungen notwendig.

Ina Schaefer SE 1 - WS 2012/2013 12

Was ist Software?

Softwaresysteme

Softwarecomputer programs, procedures, rules, and possibly associateddocumentation and data pertaining to the operation of a computersystem.

(IEEE Standard Glossary of Software Engineering)

Softwaresystem

Ein System (oder Teilsystem), dessen Komponenten aus Softwarebestehen.

Ina Schaefer SE 1 - WS 2012/2013 13

Was ist Software?

Softwaresysteme (2)

ProduktEin Produkt ist ein in sich abgeschlossenes, i.a. für einen Auftraggeberbestimmtes, Ergebnis eines erfolgreich durchgeführten Projekts oderHerstellungsprozesses. Als Teilprodukt bezeichnen wir einenabgeschlossenen Teil eines Produkts

Software-ProduktProdukt, das aus Software besteht.

Ina Schaefer SE 1 - WS 2012/2013 14

Was ist Software?

Klassifikation von Software

• Generisches Produkt oder Einzelanfertigung?• Systemsoftware (Betriebssystem, Compiler, Editor, ...) oder

Anwendungssoftware (application software)?• Produktintegriert (embedded) oder für reine Computersysteme?• Echtzeitanforderungen oder flexiblere Zeitanforderungen?• Datenintensiv oder berechnungsintensiv?• Monolithisch oder verteilt?• Standalone oder mit anderen Anwendungen integriert?

Ina Schaefer SE 1 - WS 2012/2013 15

Was ist Software?

Besonderheiten von Software

• Software ist immateriell.• Software wird nicht durch physikalische Gesetze begrenzt.• Software unterliegt keinem Verschleiß.• Es gibt keine Software-Ersatzteile: Defekte sind immer

Konstruktionsfehler.• Software ist schwer zu vermessen („Technische Daten“ von

Software?).• Software gilt als relativ leicht änderbar (im Vergleich zu

materiellen technischen Produkten).• Software unterliegt einem ständigen Anpassungsdruck.• Software veraltet.

Ina Schaefer SE 1 - WS 2012/2013 16

Was ist Software?

Eigenschaften von Software

• Zuverlässigkeit:I Software darf im Fall des Versagens keine physischen oder

ökonomischen Schäden verursachen.• Benutzbarkeit:

I Software muss sich nach den Bedürfnissen der Benutzer richten.I Die Benutzerschnittstelle muss ergonomisch und selbsterklärend

sein.I Dokumentation muss in allen Detaillierungsgraden ausreichend zur

Verfügung stehen.• Wartbarkeit:

I Software muss an neue Anforderungen anpassbar sein.I Software sollte möglichst plattformunabhängig sein.

• Effizienz:I Software muss ökonomischen Gebrauch von Ressourcen des

unterliegenden Systems machen.

Ina Schaefer SE 1 - WS 2012/2013 17

Was ist Softwaretechnik?

Software Engineering

Begriff: Software Engineering

The establishment and use of sound engineering principles in order toobtain economically software that is reliable and runs on realmachines. (F.L. Bauer, NATO-Konferenz Software-Engineering 1968)

Manifest der Softwaretechnik (2006)

Software Engineering zielt auf die ingenieurmäßige Entwicklung,Wartung, Anpassung und Weiterentwicklung großer Softwaresystemeunter Verwendung bewährter systematischer Vorgehensweisen,Prinzipien, Methoden und Werkzeuge.

Ina Schaefer SE 1 - WS 2012/2013 18

Was ist Softwaretechnik?

Software Engineering

Berücksichtigung der folgenden Aspekte:• Kosten• Termine• Qualität: Korrektheit, Zuverlässigkeit, Performanz,

Sicherheit, Nutzbarkeit, Verständlichkeit,Weiterentwickelbarkeit, Anpassbarkeit,Wartbarkeit

Ina Schaefer SE 1 - WS 2012/2013 19

Was ist Softwaretechnik?

Aufgabenstellungen im SE

• Management großer und komplexer Projekte• Schätzung von Terminen und Kosten• Erfassung von Kunden- und Marktanforderungen• Änderungsmanagement• Sicherstellung eines hohen Qualitätsniveaus• Wartung und Weiterentwicklung von Altsystemen• Guter Programmierstil und Entwicklungswerkzeuge• Prinzipien wie Abstraktion, Strukturierung, Hierarchisierung und

Modularisierung

Softwareentwicklung ist viel mehr als nur Programmieren!

Ina Schaefer SE 1 - WS 2012/2013 20

Was ist Softwaretechnik?

Software Engineering vs. Informatik

vl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 26

Software Engineering vs. Informatik

!  Software Engineering ist der ingenieurwissenschaftliche Teil der Informatik (analog zur Beziehung Maschinenbau und Physik)

Software Engineering

Betriebswirtschaft Informatik Psychologie Physik

Elektrotechnik

Maschinenbau

Mathematik

Ingenieur- wissenschaften

Grundlagen- wissenschaften

Basis- Wissenschaften

Software Engineering ist der ingenieurwissenschaftliche Teil derInformatik (analog zur Beziehung Maschinenbau und Physik).

Ina Schaefer SE 1 - WS 2012/2013 21

Was ist Softwaretechnik?

Teilbereiche des Software Engineeringsvl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 25

Gliederung des Software Engineering

System- technik

Formale Methoden

Prozesstechnik

Empirie

Grundlagen: Informatik / Mathematik

Modellierungstechniken Statecharts, Petri-Netze, UML

Architektur Muster Modularisierung Produktlinien OO

Vorgehensmodelle Prozesse Management Organisation, Planung Qualitätssicherung Softwareökonomie

Ina Schaefer SE 1 - WS 2012/2013 22

Was ist Softwaretechnik?

Themen des Software Engineeringsvl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 28

Themengebiet “Softwaretechnik”

Requirements!Engineering!

Software-!Architektur!

und -Entwurf!

Software-!Wartung!

Re-!Engineering!(Sanierung)!

Projektmanagement!

Vorgehensmodellierung!

Software-Entwicklungsmethoden!

Notationen und Sprachen (UML, Java, ...)!

Werkzeugunterstützung (incl. CASE, CVS, make)!

Qualitätsmanagement (incl. Testverfahren)!

Ina Schaefer SE 1 - WS 2012/2013 23

Was ist Softwaretechnik?

Portfolio der SE-Techniken

• SE-Techniken sind vergleichbar mit einem Werkzeugkasten.• Für jedes Problem das richtige Werkzeug in der Hand eines

Experten, der damit umgehen kann.• Nicht jeder muss alle Werkzeuge beherrschen,

aber: je mehr, um so besser.

Ina Schaefer SE 1 - WS 2012/2013 24

Was ist Softwaretechnik?

Zusammenfassung: Softwaresysteme und SE

• Softwaretechnik ist die Lehre von der ingenieurmäßigenEntwicklung von Software und softwarebasierten Systemen.

• Diversifikation der Anwendungsbereiche, Größe, etc. erfordert einPortfolio anzuwendender Techniken.

• Kritischer Faktor ist die Qualität der erstellten Software.• Softwaretechnik ist anwendungsnah und erfordert, dass ihre

Methoden und Techniken geübt werden.

Ina Schaefer SE 1 - WS 2012/2013 25

Vorgehensmodelle

Vorgehensmodelle

Phasenmodell

• Einteilung des Herstellungsprozesses für ein (Software-) Produktin definierte und abgegrenzte Abschnitte

• Vorgabe einer Reihenfolge in der Bearbeitung der Phasen• Richtlinie für die Definition von Zwischenergebnissen

Vorgehensmodell

Detailliertes Phasenmodell + Festlegung der Zwischenergebnisse

Ina Schaefer SE 1 - WS 2012/2013 26

Vorgehensmodelle

Nutzen von Vorgehensmodellen

• Strukturierung des Projektes: Trennung der zeitlich abgegrenztenPhasen und der darin stattfindenden inhaltlich bestimmtenAktivitäten.

• Kommunikation: gemeinsames Verständnis der Aufgaben undVerantwortlichkeiten

• Vollständigkeit: um nichts Wesentliches zu übersehen• Vorhersage (Planung) über das Projektergebnis• Basis für Projektkontrolle und Analyse, Harmonisierung der

Erwartungen• Erfahrungssammlung (organisationelles Lernen)

Ina Schaefer SE 1 - WS 2012/2013 27

Vorgehensmodelle

Aktivitäten in der Softwareentwicklung

• Analyse• Entwurf• Implementierung• Test (einschließlich Integration, synonym: Validierung)• Deployment (Installation, Schulung)• Evolution (vor allem Wartung)• und viele weitere (Versionsmanagement, Reviews, ...)

Ina Schaefer SE 1 - WS 2012/2013 28

Vorgehensmodelle

Bekannte Vorgehensmodelle

• Wasserfall (mit Rückkopplung)• V-Modell• Iterative Modelle: Spiralmodell, RUP• Prototypen• Agile Methoden

Ina Schaefer SE 1 - WS 2012/2013 29

Vorgehensmodelle

Wasserfall-Modellvl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 34

Das klassische Wasserfall-Modell

Entwurf

Implementierung

Test, Integration

Wartung

nach W. Royce (1970), mit Rückkopplung B. Boehm (1981)

Produkt- definition

Entwurfs- Spezifikation

Code

geprüfter Code

Änderungswünsche

Analyse

Ina Schaefer SE 1 - WS 2012/2013 30

Vorgehensmodelle

Wasserfall-Modell (2)

• Alle Schritte werden sequentiell durchgeführt• Mit einem Schritt wird erst dann begonnen, wenn der vorige

Schritt fertig ist, d. h. das Ergebnis der vorigen Phase vorliegt.• Bewertung:

I Einfach zu verstehenI Einfach zu managenI Einfach zu überwachen (definierte Phasenübergänge)I Probleme bei Änderungen und Verzögerungen in einzelnen Phasen

Ina Schaefer SE 1 - WS 2012/2013 31

Vorgehensmodelle

Verteilung der Aufwände im Wasserfall-Modell

vl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 35

Ungefähre Verteilung des Arbeitsaufwands

Entwurf

Implementierung

Test, Integration

Wartung

W. Royce (1970)

Produkt- definition

Entwurfs- Spezifikation

Code

geprüfter Code

Änderungswünsche

Analyse 10 %!

20 %!

50 %!20 %!

Ina Schaefer SE 1 - WS 2012/2013 32

Vorgehensmodelle

V-Modell

• Erweiterung des Wasserfall-Modells• Integriert die Qualitätssicherung (Verifikation und Validation)

I Verifikation: Übereinstimmung zwischen einem Software-Produktund seiner Spezifikation (Wird ein korrektes Produkt entwickelt?)

I Validation: Eignung bzw. Wert eines Produktes bezogen auf seinenEinsatzzweck (Wird das richtige Produkt entwickelt?)

• Verbindlich für Bundeswehr und Behörden (V-Modell XT)• Sehr umfangreiches Modell, das für eine konkrete Entwicklung

angepaßt werden muss (Tailoring)

Ina Schaefer SE 1 - WS 2012/2013 33

Vorgehensmodelle

V-Modell (2)vl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 36

Qualitätssicherung im V-Modell

Analyse

Grobentwurf

Feinentwurf

Implementierung

Abnahmetest

Systemtest

Integrationstest

Modultest

Testfälle

Testfälle

Testfälle

Boehm 1979 (altes „V-Modell“)

Ina Schaefer SE 1 - WS 2012/2013 34

Vorgehensmodelle

Iterative Verfahren

• Der Entwicklungsprozess besteht aus einer Folge von Zyklen(Iterationen).

• Am Ende jedes Zyklus steht eine neue (ausführbare) Versiondes SW-Produktes, welche die vorherige Version verbessertund erweitert.

Ina Schaefer SE 1 - WS 2012/2013 35

Vorgehensmodelle

Iterative Verfahren (2)

vl07.se1/02/01

Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig

Seite 37

Evolutionäre Entwicklung

!  Typisch für kleinere Projekte oder experimentelle Systeme !  Zunehmend auch für größere Projekte angewendet

Aufgabe"Prototypen,"Vorversionen"

Analyse"

Entwurf" Validierung"

Implementierung"

Ina Schaefer SE 1 - WS 2012/2013 36

Vorgehensmodelle

Iterative Verfahren: Inkrementell vs. Evolutionär

• Inkrementell:I Anforderungsanalyse und Konzeption nur zu Beginn der

EntwicklungI Jede Iteration erzeugt ein weiteres Stück der Lösung.I Schneller zu ersten Ergebnissen, aber anfällig bei

Anforderungsänderungen

• Evolutionär: Anforderungsanalyse und Konzeption in jederIteration

• Grundlegender Konflikt: Flexibilität gegen garantierteZielerreichung.

Ina Schaefer SE 1 - WS 2012/2013 37

Vorgehensmodelle

Prototypbasierte Entwicklung

Prototyp

Vorabversion (von Teilen) des intendierten Systems.

Entwicklungsprozess:

!"

#$%&'(%&$) *+,-&..+ /&+0+ 1(002+&34&+05678*+-+&9:+ #$;+00+5678<:(3+)

<-$%$%=4&),

<-$%$%=4 >?@$-(2'+-3&$)?A'$)?B+&0+)C?;+3?&)%+);&+-%+)?5=3%+D3E

F:(-(G%+-&3%&G(H

59:)+00+?I);?2&00&,+?J+-3%+00I),

:KI.&,?LI-?M+D$)3%-(%&$)?'$)?*+)I%L+-$2+-.0K9:+)

+&),+39:-K)G%+?1I)G%&$)(0&%K%N?)&9:%?-$2I3%N?39:0+9:%+?<+-.$-D()L

<-$%$%=4+-3%+00+)

O).$-;+-I),38()(0=3+

<-$%$%=4?P?54+L&.&G(%&$)D$;&.&L&+-+)

QK9:3%+?<:(3+#&%?<-$%$%=4

+R4+-&D+)%&+-+)

S(GL+4%&+-%T

S)&9:%?(GL+4%&+-%T

1-U:L+&%&,+?@(0&;&+-I),?;I-9:?;+)?VI);+)W@$-%+&0H

XE?7&).U:-I),H?@$-,+:+)3D$;+00+

Ina Schaefer SE 1 - WS 2012/2013 38

Vorgehensmodelle

Prototypbasierte Entwicklung (2)

Arten von Prototypen:

• Wegwerf-Prototyp zu Demonstrationszwecken, in dem zuerst dieam wenigsten verstandenen Teile realisiert werden

• Evolutionärer Prototyp, d.h. Entwicklung der Version 0.1 als Basisfür das spätere System; zuerst die am besten verstandenen Teile

• Papier-Prototyping (z.B. für GUI-Entwicklung)

Ina Schaefer SE 1 - WS 2012/2013 39

Vorgehensmodelle

Spiralmodell (B. Boehm, 1988)

Iteratives Durchlaufen der Phasen in einer Spirale

CEA v6.4 07.11.2008 27

Spiralmodell

Ina Schaefer SE 1 - WS 2012/2013 40

Vorgehensmodelle

Rational Unified Process (IBM)

Inkrementelles Verfahren mit zweidimensionaler Anordnung vonPhasen und Aktivitäten

CEA v6.4 07.11.2008 29

RUP – Rational Unified Process

Aufsetzen Ausarbeiten Bauen Einführen

Ina Schaefer SE 1 - WS 2012/2013 41

Vorgehensmodelle

Agile Entwicklungsmethoden

Agile Manifesto (K. Beck et al., 2001)

• Individuen und Interaktionen sind wichtiger als Prozesse undWerkzeuge.

• Funktionierende Programme sind wichtiger als ausführlicheDokumentation.

• Die stetige Abstimmung mit dem Kunden ist wichtiger als dieursprüngliche Leistungsbeschreibung in Verträgen.

• Der Mut und die Offenheit für Änderungen stehen über demBefolgen eines festgelegten Plans.

Ina Schaefer SE 1 - WS 2012/2013 42

Vorgehensmodelle

Extreme Programing XP (K. Beck)

• Konsequente evolutionäre Entwicklung in sehr kleinen Inkrements.• Tests und Programmcode sind Analyseergebnis,

Entwurfsdokument und Dokumentation.• Code wird permanent lauffähig gehalten.• Diszipliniertes und automatisiertes Testen als Qualitätssicherung.• Pair-Programming als QS-Maßnahme.• Refactoring zur evolutionären Weiterentwicklung .• Codierungsstandards.• kein explizites Design, keine ausführliche Dokumentation,

keine Reviews.

Ina Schaefer SE 1 - WS 2012/2013 43

Vorgehensmodelle

Zusammenfassung

• Begriffe Softwaresystem und Softwareengineering• Motivation und Ziele des Softwareengineerings• Vorgehensmodelle

Ina Schaefer SE 1 - WS 2012/2013 44

Vorgehensmodelle

Literatur

• Ian Sommerville: Software Engineering. 9. Aufl.,Addison-Wesley, 2010.

• Helmut Balzert: Lehrbuch der Software-Technik, 2. Aufl.,Spektrum Akademischer Verlag, 2000.

• Philippe Kruchten: Rational Unified Process.Addison-Wesley, 2000.

• Kent Beck: Extreme Programming Explained.Addison-Wesley, 1999.

Ina Schaefer SE 1 - WS 2012/2013 45