41
Softwaretechnik 1 Vorlesung Prof. Dr. Bernhard Rumpe Software Systems Engineering Technische Universität Braunschweig http://www.sse-tubs.de/ Farbe!

Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

Softwaretechnik 1Vorlesung

Prof. Dr. Bernhard RumpeSoftware Systems EngineeringTechnische Universität Braunschweig

http://www.sse-tubs.de/

Farbe!

Page 2: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 2

Software Systems Engineering

Prof. Dr. Bernhard RumpeMühlenpfordtstraße 23, 3.OGZimmer 347Email b.rumpe @ sse-tubs.deSprechzeit: Do, 12.30-13.00 und nach Email-Vereinbarung

Alexej Beresnev, Claas PinkernellMühlenpfordtstraße 23, 4.OGRaum 412 Email beresnev / pinkernell @ sse-tubs.deSprechzeit: Di, 10.00-11.00 und nach Email-Vereinbarung

Internet-Seite zur Vorlesung:http://www.sse-tubs.de/teaching/ws0809/se1/

Page 3: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 3

SSE in der Lehre:Softwaretechnik im 3-Stufen-Konzept

� (1) Softwaretechnik I im 3+4ten Semester (4LP) + SEP (6LP)

� (2) Vertiefungsgebiet-Vorlesungen im Bachelor, Auswahl:

• Software Engineering Management (4LP)

• Modellbasierte Softwareentwicklung (4LP)

• Softwarearchitektur (4LP)

• Leitlinien großer IT-Projekte in der Praxis (Dr. Teille)

• Management von Software-Entwicklungsprojekten(Prof. Dr. Axmann)

• Prozesse und Methoden beim Testen von Software (Dr. Kriebel)

� + Praktikum + Seminar

� (+ Studienarbeit + Diplomarbeit)

� + Teamarbeit + Bachelorarbeit + Masterarbeit

Page 4: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 4

Vorlesung Softwaretechnik

� Voraussetzungen:

• gute Programmierkenntnisse (ideal ist Java)• Wissen über Programmieren wird hier nicht mehr vermittelt.

� Hörerkreis: Studierende der

• Informatik im 3. Semester

• Wirtschaftsinformatik im 3. Semester

• Informationssystemtechnik im 3. Semester

• Medienwissenschaft im Hauptstudium

• sowie Nebenfächer

� Weitere Infos: Mailingliste sse-teaching abonnieren!

Page 5: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

Literatur: • Sommerville 1.1• Balzert Band 1, LE 1

Prof. Dr. Bernhard RumpeSoftware Systems EngineeringTechnische Universität Braunschweig

http://www.sse-tubs.de/

1. Softwaretechnik

Page 6: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 6

� Was ist Softwaretechnik eigentlich?

� Warum ist Softwaretechnik notwendig?

Page 7: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 7

4. Juni 1996: Erster Start der "Ariane-5"

� Während des Fluges läuft ein unnötiges Kalibrierungs-programm 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 Steuerungscomputers 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-$

Page 8: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 8

Software-Katastrophen: Kein Einzelfall

� Terminliche, finanzielle und technische Katastrophen:• 1999: Fehlstart einer Titan/Centaur-Rakete wegen falscher Software-

Version

• 1999: Verlust der Sonde "Mars Climate Orbiter" wegen falscher Einheitenumrechnung

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

• 2002: Verzögertes und unfertiges Buchhaltungssystem führt zum Zusammenbruch eines US-Lebensmittelsherstellers

• 2003/4: Toll Collect: Termin u.a. wegen Softwareproblemen mehrfach verschoben, Kosten > 1 Milliarde Euro

• 2006: Gesundheitskarte, ...

� USA: Verlust im Jahr 2004 ca. 160 Milliarden US-$ wegen defekter Software.

Page 9: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 9

Die permanente Softwarekrise ?

� 1965: Der Begriff der Softwarekrise etabliert sich

� Studie von 1979 zu Softwareprojekten (USA):

• 75% der Ergebnisse nie eingesetzt

• 19% der Ergebnisse stark überarbeitet

• 6% benutzbar.

� Studie von 1994 zu Software-Großprojekten (IBM Consulting):

• 55% Kostenüberschreitung

• 68% Terminüberschreitung

• 88% Bedarf für starke Überarbeitung

Page 10: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 10

Erfolgsstatistik von IT-Projekten

Quelle: CHAOS Report, Standish Group International, Inc.

16

27

26

28

29

31

40

28

23

18

53

33

46

49

53

0% 20% 40% 60% 80% 100%

1994

1996

1998

2000

2004

Succeeded

Failed

Challenged

Page 11: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

Literatur: • Sommerville 1.1• Balzert Band 1, LE 1

Prof. Dr. Bernhard RumpeSoftware Systems EngineeringTechnische Universität Braunschweig

http://www.sse-tubs.de/

1. Softwaretechnik

1.1. Softwaresysteme und Softwaretechnik?

Page 12: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 12

Softwaresysteme

� Softwaresystem

• Ein System (oder Teilsystem), dessen Komponenten aus Software bestehen.

� Software-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

• SW-Produkt: Produkt, das aus Software besteht.

software: computer programs, procedures, rules, and possiblyassociated documentation and data pertaining to the operation of a computer system.

(IEEE Standard Glossary of Software Engineering)

Page 13: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 13

Klassifikation von Software

� Generisches Produkt oder Einzelanfertigung (vereinbartes Produkt)?

� 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?

Page 14: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 14

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.

Page 15: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 15

Angestrebte Eigenschaften von Software

� Zuverlässigkeit

• Software darf im Fall des Versagens keine physischen oder ökonomischen Schäden verursachen.

� Benutzbarkeit

• Software muss sich nach den Bedürfnissen der Benutzer richten.

• Die Benutzerschnittstelle muss ergonomisch und selbsterklärend sein.

• Dokumentation muss in allen Detaillierungsgraden ausreichend zur Verfügung stehen.

� Wartbarkeit

• Software muss anpassbar an neue Anforderungen sein.

• Software sollte möglichst plattformunabhängig sein.

� Effizienz

• Software muss ökonomischen Gebrauch von Ressourcen des unterliegenden Systems machen.

Page 16: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 16

Wachsende Komplexität (1)

10 MOI

20 MOI

30 MOI

40 MOI

50 MOI

60 MOI1960 1970 1980 1990 2000

MOI: Millionen Objektcode-InstruktionenEWSD: Elektronisches Wählsystem DigitalQuellen: Boehm 87, S.45 und Siemens (Unterlagen zum Seminar Industrielle

MERCURY

APOLLO

SPACESHUTTLE

EWSD-APSDBP-14

EWSD fürBB-ISDN

LUNARMISSIONCONTROL

EWSD-APSWM4.2

GEMINI

7 % jährlichesProduktivitäts-wachstum

� Siemens EWSD V8.1: 12,5 Millionen LOC, ca.190.000 S. Dokumentation

Page 17: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 17

Wachsende Komplexität (2)

� Enterprise-Resource-Planning Software R/3® von SAP

� Weitere Zahlen zu R/3 Release 4:

• 11 000 externe Tabellen (Datenbank)

• 500 000 Tabellenfelder (extern und intern)

Jahr Lines of Code AnzahlFunktionsbausteine

1994 7 Millionen 14 0001997 (Rel. 3.1) 30 Millionen 200 0001999 (Rel. 4.5) 50 Millionen 400 000

Page 18: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 18

Wachsende Komplexität (3)

� Gesamtumfang der verwendeten Software einzelner Unternehmen (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

Page 19: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 19

Komplexitätswachstum und Fehlerrate

Anzahl Fehler auf 1000 LOC

20

0,2

1977 1994

Programmgröße (1000 LOC)

10

800

1977 1994

Resultierende absolute Fehleranzahl

200160

Echte Qualitätsverbesserungensind nur möglich, wenn die

Steigerung der Programmkomplexitätüberkompensiert wird !

(Durchschnittswerte, aus Balzert 96)

1977 1994

animated

Page 20: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 20

Zunehmende Qualitätsanforderungen

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

• 1977: 7 - 20 Defekte

• 1994: 0,05 - 0,2 Defekte

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

� Aber: Komplexitätssteigerung muss kompensiert werden !

• Komplexitätssteigerung ca. 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!

Page 21: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 21

Warum ist Software so schwer zu entwickeln?

• 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.

Page 22: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 22

Software Engineering

� 1968: erste Konferenz zum Thema „Software Engineering“

� Der Begriff wird geprägt:

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)

Page 23: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 23

Software Engineering

� „Software Engineering zielt auf die ingenieurmäßige Entwicklung, Wartung, Anpassung und Weiterentwicklung großer Softwaresysteme unter Verwendung bewährter systematischerVorgehensweisen, Prinzipien, Methoden und Werkzeuge“

• (Manifest der Softwaretechnik, 2006)

� Berücksichtigung der folgenden Aspekte:

• Kosten

• Termine

• Qualität(Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit, Wartbarkeit)

Page 24: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 24

Aufgabenstellungen der Softwaretechnik

� Softwareentwicklung ist viel mehr als nur Programmieren!

� Dazu gehören:• 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• Entwicklungswerkzeuge• Prinzipien wie

Abstraktion, Strukturierung, Hierarchisierung und Modularisierung

Page 25: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 25

Gliederung des Software Engineering

System-technik

FormaleMethoden

Prozesstechnik

Empirie

Grundlagen:

Informatik / Mathematik

ModellierungstechnikenStatecharts, Petri-Netze, UML

ArchitekturMusterModularisierungProduktlinien OO

VorgehensmodelleProzesseManagementOrganisation, PlanungQualitätssicherungSoftwareökonomie

Page 26: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 26

Software Engineering vs. Informatik

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

Software Engineering

BetriebswirtschaftInformatik PsychologiePhysik

Elektrotechnik

Maschinenbau

Mathematik

Ingenieur-wissenschaften

Grundlagen-wissenschaften

Basis-Wissenschaften

Page 27: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 27

Portfolio der SE-Techniken

� ... ist vergleichbar mit einer Werkzeugbank:• 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.

Page 28: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 28

Themengebiet “Softwaretechnik”

RequirementsEngineering

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)

Page 29: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 29

Zusammenfassung: Softwaresysteme und Softwaretechnik

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

� Diversifikation der Anwendungsbereiche, Größe, etc. erfordert die Portfolio der anzuwendenden Techniken.

� Kritischer Faktor ist die Qualität der erstellten Software.

� Softwaretechnik ist anwendungsnah und erfordert, dass ihre Methoden und Techniken geübt werden.

Page 30: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

Literatur: • Sommerville 1.2

Prof. Dr. Bernhard RumpeSoftware Systems EngineeringTechnische Universität Braunschweig

http://www.sse-tubs.de/

1. Softwaretechnik

1.2. Vorgehensmodelle

Page 31: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 31

Phasen- und 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

� Bekannte Vorgehensmodelle?

• V-Modell, RUP.

• Agile Softwareentwicklung, Extreme Programming, ...

• Feature Driven Development, OMT, Booch Method, Shlaer/Mellor, OOSE (Jacobson),

• Open Source (als Vorgehensweise), Hacking

discuss

Page 32: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 32

Aktivitäten in der Softwareentwicklung

� Trennung der zeitlich abgegrenzten Phasen und der darin stattfindenden inhaltlich bestimmten Aktivitäten.

� Grundaktivitäten:

• Analyse• Entwurf• Implementierung• Test (Integration, Validierung)• Deployment (Installation, Schulung)• Evolution (Wartung)• (Versionsmanagement, Reviews, ...)

discuss

Page 33: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 33

Aktivitäten in der Softwareentwicklung

� Trennung der zeitlich abgegrenzten Phasen und der darin stattfindenden inhaltlich bestimmten Aktivitäten.

� Grundaktivitäten:

• Analyse

• Entwurf

• Implementierung

• Test (einschließlich Integration, synonym: Validierung)

• Deployment (Installation, Schulung)

• Evolution (vor allem Wartung)

• und viele weitere (Versionsmanagement, Reviews, ...)

Page 34: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 34

Das klassische Wasserfall-Modell

Entwurf

Implementierung

Test,Integration

Wartung

W. Royce (1970)

Produkt-definition

Entwurfs-Spezifikation

Code

geprüfterCode

Änderungswünsche

Analyse

Page 35: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 35

Ungefähre Verteilung des Arbeitsaufwands

Entwurf

Implementierung

Test,Integration

Wartung

W. Royce (1970)

Produkt-definition

Entwurfs-Spezifikation

Code

geprüfterCode

Änderungswünsche

Analyse10 %

20 %

50 %20 %

Page 36: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU 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“)

Page 37: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU 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

Page 38: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 38

Zweidimensionales Modell

Rational Unified Process 1999 (Jacobson et al., Kruchten)

Tätigkeit

Zeit

Analyse

Entwurf

Implementierung

Test

Konfigurations-management

Projekt-management

Entstehung(inception)

Ausarbeitung(elaboration)

Erstellung(construction)

Übergang(transition)

Page 39: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 39

Aufwandsverteilung und Schwerpunkte

Rational Unified Process 1999 (Jacobson et al., Kruchten)

Tätigkeit

Zeit

Analyse

Entwurf

Implementierung

Test

Konfigurations-management

Projekt-management

Entstehung(inception)

Ausarbeitung(elaboration)

Erstellung(construction)

Übergang(transition)

Page 40: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 40

eXtreme Programming (XP)

� Entwicklungsmethodik für kleinere Projekte� Konsequente evolutionäre Entwicklung in sehr kleinen Inkrements� Tests + Programmcode sind das Analyseergebnis, das

Entwurfsdokument und die Dokumentation.� Code wird permanent lauffähig gehalten� Diszipliniertes und automatisiertes Testen als Qualitätssicherung� Paar-Programmierung als QS-Maßnahme� Refactoring zur evolutionären Weiterentwicklung � Codierungsstandards

� Aber auch: Weglassen von traditionellen Elementen • kein explizites Design, ausführliche Dokumentation, Reviews

� „Test-First“-Ansatz• Zunächst Anwendertests definieren, dann den Code dazu

entwickeln

Page 41: Farbe! Softwaretechnik 1 Vorlesunguni.paniladen.de/SSE/Folien/SWT1.Kap1.MethodenIntro_1.pdf · 2013. 11. 19. · Aufgabenstellungen der Softwaretechnik Softwareentwicklung ist viel

vl07.se1/02/01

Prof. Dr. B. RumpeSoftware Systems EngineeringTU Braunschweig

Seite 41

Literatur (neben Balzert, Sommerville)

� Philippe Kruchten: Rational Unified Process. Addison-Wesley. 2000

� Kent Beck: Extreme Programming Explained. Addison-Wesley. 1999

� Testframework JUnit. www.junit.org