Einführung und Vorgehensmodelle
Transcrição
Einführung und Vorgehensmodelle
Einleitung - Begriffe und Vorgehensmodelle Software Engineering 1 - WS 2010/2011 Dr.-Ing. Ina Schaefer1 Software Systems Engineering TU Braunschweig 1 Mit 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 Kalibrierungsprogramm für die Trägheitssensoren. • Die gemessenen Werte der Ariane-5 überschreiten die in der Ariane-4-Software vorgesehehen Bereiche. • Die (Ada-)Exception wird durch Anhalten des Steuerungs- computers behandelt, um auf ein zweites redundantes System umzuschalten. • Im zweiten System tritt der gleiche Software-Fehler auf und wird identisch 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 Monate verzögert wegen Softwareproblemen im Gepäcktransport-System • 1999: Fehlstart einer Titan/Centaur-Rakete wegen falscher Software-Version • 1999: Verlust der Sonde "Mars Climate Orbiter" wegen falscher Einheitenumrechnung • 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 und Budgetü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 eingesetzt I 19% der Ergebnisse stark überarbeitet I 6% benutzbar. • Studie von 1994 zu Software-Großprojekten (IBM Consulting): I 55% Kostenüberschreitung I 68% Terminüberschreitung I 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 am Bruttoinlandsprodukt 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 1994 1997 (Rel. 3.1) 1999 (Rel. 4.5) Lines of Code 7 Mio. 30 Mio. 50 Mio. # Funktionsbausteine 14.000 200.000 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 und länger eingesetzt. In manchen Betrieben sind 60-70% der Softwarekosten für Anpassung von Altsoftware! Ina Schaefer SE 1 - WS 2011/2011 11 Motivation Steigende Qualitätsanforderungen (3) 0,1%-Defektniveau bedeutet: • pro Jahr: 20.000 fehlerhafte Medikamente 300 versagende Herzschrittmacher • pro Woche: 500 Fehler bei medizinischen Operationen • pro Tag: 16.000 verlorene Briefe in der Post 18 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 Software computer programs, procedures, rules, and possibly associated documentation and data pertaining to the operation of a computer system. (IEEE Standard Glossary of Software Engineering) Softwaresystem Ein System (oder Teilsystem), dessen Komponenten aus Software bestehen. Ina Schaefer SE 1 - WS 2011/2011 13 Was ist Software? Softwaresysteme (2) Produkt Ein Produkt ist ein in sich abgeschlossenes, i.a. für einen Auftraggeber bestimmtes, Ergebnis eines erfolgreich durchgeführten Projekts oder Herstellungsprozesses. Als Teilprodukt bezeichnen wir einen abgeschlossenen Teil eines Produkts Software-Produkt Produkt, 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 to obtain economically software that is reliable and runs on real machines. (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 Softwaresysteme unter 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 Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig Seite Software Engineering vs. Informatik 26 vl07.se1/02/01 Elektrotechnik Physik Ingenieurwissenschaften Software Engineering Maschinenbau Informatik Betriebswirtschaft Psychologie Grundlagenwissenschaften BasisWissenschaften Mathematik ! Software Engineering ist der Software Engineering ist der ingenieurwissenschaftliche Teil der ingenieurwissenschaftliche Teil der Informatik (analog zur Beziehung Maschinenbau und Physik) und Physik). Informatik (analog zur Beziehung Maschinenbau Ina Schaefer SE 1 - WS 2011/2011 21 Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig Was ist Softwaretechnik? Gliederung des Software Engineering Teilbereiche des Software Engineerings Seite 25 vl07.se1/02/01 Architektur Muster Modularisierung Produktlinien OO Modellierungstechniken Statecharts, Petri-Netze, UML Formale Methoden Systemtechnik Empirie Vorgehensmodelle Prozesse Management Organisation, Planung Qualitätssicherung Softwareökonomie Prozesstechnik Grundlagen: Informatik / Mathematik Ina Schaefer SE 1 - WS 2011/2011 22 Was ist Softwaretechnik? Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig Themen des Software“Softwaretechnik” Engineerings Themengebiet Seite 28 vl07.se1/02/01 Projektmanagement! Vorgehensmodellierung! Software-Entwicklungsmethoden! Requirements! Engineering! Software-! Architektur! und -Entwurf! Software-! Wartung! Re-! Engineering! (Sanierung)! Qualitätsmanagement (incl. Testverfahren)! Notationen und Sprachen (UML, Java, ...)! Werkzeugunterstützung (incl. CASE, CVS, make)! 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äßigen Entwicklung von Software und softwarebasierten Systemen. • Diversifikation der Anwendungsbereiche, Größe, etc. erfordert ein Portfolio 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-) Produkt in 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 abgegrenzten Phasen und der darin stattfindenden inhaltlich bestimmten Aktivitäten. • Kommunikation: gemeinsames Verständnis der Aufgaben und Verantwortlichkeiten • 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 Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig Wasserfall-Modell Seite Das klassische Wasserfall-Modell 34 vl07.se1/02/01 Analyse Produktdefinition Entwurf EntwurfsSpezifikation Implementierung Code Test, Integration Änderungswünsche geprüfter Code Wartung nach W. Royce (1970), mit Rückkopplung B. Boehm (1981) 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 I I I Ina Schaefer Einfach zu verstehen Einfach zu managen Einfach zu überwachen (definierte Phasenübergänge) Probleme bei Änderungen und Verzögerungen in einzelnen Phasen SE 1 - WS 2011/2011 31 Vorgehensmodelle Verteilung der Aufwände im Wasserfall-Modell Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig Seite Ungefähre Verteilung des Arbeitsaufwands 35 vl07.se1/02/01 Analyse Produktdefinition Entwurf 10 %! 20 %! EntwurfsSpezifikation Implementierung 20 %! Code Test, Integration Änderungswünsche 50 %! geprüfter Code Wartung W. Royce (1970) 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-Produkt und seiner Spezifikation (Wird ein korrektes Produkt entwickelt?) I Validation: Eignung bzw. Wert eines Produktes bezogen auf seinen Einsatzzweck (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 Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig V-Modell (2) Qualitätssicherung im V-Modell Seite 36 vl07.se1/02/01 Testfälle Analyse Abnahmetest Testfälle Grobentwurf Feinentwurf Testfälle Implementierung Systemtest Integrationstest Modultest 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) Version des SW-Produktes, welche die vorherige Version verbessert und erweitert. Ina Schaefer SE 1 - WS 2011/2011 35 Vorgehensmodelle Iterative Verfahren (2) Prof. Dr. B. Rumpe Software Systems Engineering TU Braunschweig Seite Evolutionäre Entwicklung 37 vl07.se1/02/01 Aufgabe" Analyse" Prototypen," Vorversionen" Entwurf" Validierung" Implementierung" ! Typisch für kleinere Projekte oder experimentelle Systeme ! Zunehmend auch für größere Projekte angewendet Ina Schaefer SE 1 - WS 2011/2011 36 Vorgehensmodelle Iterative Verfahren: Inkrementell vs. Evolutionär • Inkrementell: I Anforderungsanalyse und Konzeption nur zu Beginn der Entwicklung I 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 jeder Iteration • Grundlegender Konflikt: Flexibilität gegen garantierte Zielerreichung. Ina Schaefer SE 1 - WS 2011/2011 37 Vorgehensmodelle Prototypbasierte Entwicklung Prototyp XE?7&).U:-I),H?@$-,+:+)3D$;+00+ *+,-&..+ #$%&'(%&$) /&+0+ 5678*+-+&9:+ 5678<:(3+) #$;+00+ Vorabversion (von Teilen) des intendierten Systems. <-$%$%=4&), 1(002+&34&+0 ¾ F:(-(G%+-&3%&G(H ¾ <-$%$%=4 >?@$-(2'+-3&$)?A'$)?B+&0+)C? ;+3?&)%+);&+-%+)?5=3%+D3E 59:)+00+?I);?2&00&,+?J+-3%+00I), :KI.&,?LI-?M+D$)3%-(%&$)?'$)?*+)I%L+-$2+-.0K9:+) Entwicklungsprozess: +&),+39:-K)G%+?1I)G%&$)(0&%K%N?)&9:%?-$2I3%N?39:0+9:%+?<+-.$-D()L O).$-;+-I),38 ()(0=3+ <-$%$%=4 +-3%+00+) <-$%$%=4?P?54+L&.&G(%&$) D$;&.&L&+-+) #&%?<-$%$%=4 +R4+-&D+)%&+-+) S(GL+4%&+-%T S)&9:%?(GL+4%&+-%T ¾ @$-%+&0H 1-U:L+&%&,+?@(0&;&+-I),?;I-9:?;+)?VI);+)W Ina Schaefer QK9:3%+?<:(3+ SE 1 - WS 2011/2011 !" 38 Vorgehensmodelle Prototypbasierte Entwicklung (2) Arten von Prototypen: • Wegwerf-Prototyp zu Demonstrationszwecken, in dem zuerst die am wenigsten verstandenen Teile realisiert werden • Evolutionärer Prototyp, d.h. Entwicklung der Version 0.1 als Basis fü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 Spiralmodell 07.11.2008 CEA v6.4 Ina Schaefer SE 1 - WS 2011/2011 40 Vorgehensmodelle Rational Unified Process (IBM) UP Inkrementelles – Rational UnifiedVerfahren Process mit zweidimensionaler Anordnung von Phasen und Aktivitäten Aufsetzen Ausarbeiten Bauen Einführen 07.11.2008 4 Ina Schaefer SE 1 - WS 2011/2011 29 41 Vorgehensmodelle Agile Entwicklungsmethoden Agile Manifesto (K. Beck et al., 2001) • Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge. • Funktionierende Programme sind wichtiger als ausführliche Dokumentation. • Die stetige Abstimmung mit dem Kunden ist wichtiger als die ursprüngliche Leistungsbeschreibung in Verträgen. • Der Mut und die Offenheit für Änderungen stehen über dem Befolgen 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