Post on 18-Sep-2018
Einleitung - Begriffe und VorgehensmodelleSoftware Engineering 1 - WS 2010/2011
Dr.-Ing. Ina Schaefer1
Software Systems EngineeringTU Braunschweig
1Mit Folien von Prof. Dr. B. Rumpe und Dr. A. Herrmann
Ina Schaefer SE 1 - WS 2011/2011 1
Inhalt der Vorlesung
1. Motivation
2. Was ist Software?
3. Was ist Softwaretechnik?
4. Vorgehensmodelle
Ina Schaefer SE 1 - WS 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 28
Vorgehensmodelle
Bekannte Vorgehensmodelle
• Wasserfall (mit Rückkopplung)• V-Modell• Iterative Modelle: Spiralmodell, RUP• Prototypen• Agile Methoden
Ina Schaefer SE 1 - WS 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 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 2011/2011 43
Vorgehensmodelle
Zusammenfassung
• Begriffe Softwaresystem und Softwareengineering• Motivation und Ziele des Softwareengineerings• Vorgehensmodelle
Ina Schaefer SE 1 - WS 2011/2011 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 2011/2011 45