34
Zusammenfassung Software Engineering 1 WS 2012/13 Prof. Dr.-Ing. Ina Schaefer Software Systems Engineering TU Braunschweig Ina Schaefer SE 1 - WS 2012/13 1

Zusammenfassung - Software Engineering 1 WS 2012/13 · Zusammenfassung Software Engineering 1 WS 2012/13 Prof. Dr.-Ing. Ina Schaefer Software Systems Engineering TU Braunschweig Ina

Embed Size (px)

Citation preview

ZusammenfassungSoftware Engineering 1

WS 2012/13

Prof. Dr.-Ing. Ina Schaefer

Software Systems EngineeringTU Braunschweig

Ina Schaefer SE 1 - WS 2012/13 1

Inhalte

• Vorgehensmodelle• Anforderungsanalyse• Objektorientierte Analyse• Grobdesign und Architektur• Feindesign und Implementierung• Testen• Agile Softwareentwicklung mit Scrum• Projektmanagement

Ina Schaefer SE 1 - WS 2012/13 2

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/13 3

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/13 4

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/13 5

Vorgehensmodelle

Wasserfall-Modell

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

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 (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

Motivation für Anforderungsanalyse

Motivation!"#$%&'()&*"+&,(-./(0$1

2(%34.)#%0&(%&*($&563/'")$/$-.%(78Ina Schaefer SE I - WS 2012/2013 3

Anforderungsanalyse Grundbegriffe

Zusammenhang Benutzer- und Systemanforderungen

!"

#$%&'()'*$+,-.&/*0)$1)

#$234,)!"#"$%&'()(*#"+",

5$16*'%

#$%&'()'*$+,-5'07113*$+

!-%./+-%&%)$"%*+0+$($+1),

84,1)0-9&()337)'*$+

!"#"$%&'&12%**+)3,

#$%&'()'*$+,-8:);7%7/217&$

<=2,1)$>)%1<!

"-%./+-%&%)$""4%0+5+0($+1),

?%37@>1)$>)%1

"#$%&'()%*+,-.,/(0(&*'()%!

"#"$%& "4%0+5+0($+1)1

A*$()$-#$%&'()'*$+)$

B2,C7,1CD5E =2,1)$> ?%37@>1)$> FF# 85?G9=

Ina Schaefer SE I - WS 2012/2013 8

Anforderungsanalyse Grundbegriffe

Funktionale und Nicht-funktionale Anforderungen

Funktionale Anforderungen Nicht-funktionale Anforderungen

• Was soll das Systemleisten?

• Welche Dienste soll esanbieten?

• Eingaben,Verarbeitungen,Ausgaben

• Verhalten in bestimmtenSituationen, ggf. was solles explizit nicht tun

• Wie soll dasSystem/einzelneFunktionen arbeiten?

• Qualitätsanforderungenwie Performanz undZuverlässigkeit

• Anforderungen an dieBenutzbarkeit desSystems

Ina Schaefer SE I - WS 2012/2013 9

Beschreibung von Anforderungen Anwendungsfälle

Beispiel: Größeres Use Case Diagramm!"#$"%"&'("#&)#"*+',-."-/0-1&23**/#31%344

56

!!"#$%&'())

!!"#$%&'())

!!"#$%&'())

Ina Schaefer SE I - WS 2012/2013 40

Dr. Ina Schaefer Software Engineering 1 Seite 2

Systemmodellierung

Analyse(system analysis)

Entwurf

Anforderungs-Ermittlung

(requirementselicitation)

System-modellierung

(system modelling)

Anforderungs-Spezifikation(Lastenheft)

Systemspezifikation (Pflichtenheft)

! Präzise Beschreibung der Systemfunktionen

! "#$%&'(%)'*+',-$.(%(-,-/0'12/-'3$%'"#(-&'41,2-,*+5-%)(66-/

Prof. Dr. Ina Schaefer Software Engineering 1 Seite 41

Übersicht: UML-Diagramme

Dr. Ina Schaefer Software Engineering 1 Seite 42

Beispiel: Seminar-Organisation

Privater Termin

beschreibgbeginndauerortwegzeit

verschieben()

Teammitgliedleitet

Teilnahme

1

*

* 2..*

nameabteilung

terminBestätigen()genehmigen()

Besprechungsraum

raumNrkapazität

reservieren()freigeben()freienRaumSuchen()

Ort0..1

1* für

*

Team

name

1..* Leiter

0..1

1

titelbeginndaueranzahl

Teambesprechung

Termin

raumFestlegen()einladen()absagen()verschieben()

1

Dr. Ina Schaefer Software Engineering 1 Seite 56

c:Customer b:Bank

InsertCard

return(nr)

getAccountNr

Einfaches Sequenzdiagramm

! Objekte werden oben angeordnet

! Die Zeitlinie schreitet für alle Objekte gleich voran

! Ein Sequenzdiagramm zeigt den Nachrichten- bzw. Ereignisfluss

zwischen Objekten !"#$%&

'()*+,)*&

-$,&.,/,$01/()*02/&$/3

Dr. Ina Schaefer Software Engineering 1 Seite 75

Objektlebenszyklus (Protokollmaschine)

Zustände von Objekten der Klasse "Teambesprechung":

einladen

geplant

abgestimmt

fixiert

eingeladen

in Konflikt

Terminbestätigung[positiv, letzte]

verschieben

Terminbestätigung [negativ]Terminbestätigung[positiv, nicht letzte]

freier Raum gefunden

einladen

abgelaufen

absagenabsagen

absagen

absagen

kein freier Raum gefunden

Dr. Ina Schaefer Software Engineering 1 Seite 30

Aktivitätsdiagramm - Beispiel !"#$%$#&#'()$*+,*--

.//

Request

Pay

Take Order

Customer Sales Stockroom

Deliver Order

Fill Order

Dr. Ina Schaefer Software Engineering 1 Seite 11

Entwurf

Entwurfsschritte

Analyse

Anforderungs-Ermittlung

Anforderungs-Spezifikation(Lastenheft)

System-Spezifikation(Pflichtenheft)

System-Modellierung Architektur-

Spezifikation

Architektur-Entwurf

Klassen- bzw. Modul-Spezifikationen

Detail-Entwurf

Dr. Ina Schaefer Software Engineering 1 Seite 12

Anforderungs-

analyse,

Domänenanalyse

Entwurf der

Softwarearchitektur

Entwurf der

Systemarchitektur,

Auswahl der

Hardware

Feindesign,

Programmierung,

Integration, Testen,

Auslieferung

Architekturentwurf im Kontext der SW-Entwicklung

Dr. Ina Schaefer Software Engineering 1 Seite 20

Komponenten

!"#$!%&'()*+)&,$-./()*0#()(!#1"2&3(*4()*

5!3"!%(%#(

6()($#+(-#(''#(*0./%$##-#(''(

6(%7#$+#(*0./%$##-#(''(

«component»

WebInterface

Database

Webservice

HTTP

Dr. Ina Schaefer Software Engineering 1 Seite 31

Architekturmuster "Schichten"

! Jede Schicht bietet Dienste (nach oben) und nutzt Dienste (von unten)

! Beispiele:

! Kommunikationsprotokolle

! Datenbanksysteme, Betriebssysteme

Systemkern

Schicht 1

Schicht 2

!"#$%&'#()

Dr. Ina Schaefer Software Engineering 1 Seite 24

Zusammenfassung: UML-Klassenmodelle in Analyse und Entwurf

Analyse-Modell Entwurfs-Modell

Skizze: Teilweise unvollständigin Attributen und Operationen

Datentypen und Parameterkönnen noch fehlen

Noch kaum Bezug zurRealisierungssprache

Keine Überlegungen zurRealisierung von Assoziationen

Vollständige Angabe allerAttribute und Operationen

Vollständige Angabe vonDatentypen und Parametern

Auf Umsetzung in gewählterProgrammiersprache bezogen

Navigationsangaben, Qualifikation,Ordnung, Verwaltungsklassen

Entscheidung über Datenstrukturen

Vorbereitung zur Anbindung vonBenutzungsoberfläche und

Datenhaltung an fachlichen Kern

Dr. Ina Schaefer Software Engineering 1 Seite 25

Objektorientierte Entwurfsmuster

Dr. Ina Schaefer Software Engineering 1 Seite 29

Strukturmuster Adapter - Variante 1: Objektadapter

! Name: Adapter

! Problem:

! Anpassung der Schnittstelle eines vorgegebenen Objekts (adaptee) auf eine gewünschte Schnittstelle (target)

! Lösung:

!"#$%&"#'&(&)$**+,)*-.#.-/*0"*,$

request()

Target

specificRequest()

Adaptee

Adapter

request()

{abstract}

adaptee

Dr. Ina Schaefer Software Engineering 1 Seite 14

Obfuscated code

!"#$%&#'()#*+&,-./------------------------------------

$%+ %0&(102

3456+7

8,9:%++;<=>=?

@A@B=B------------------=2:C2DE&+81F9GHHIC

JK?@A@L2MNO P18N+,GF$N*2NO318N+,2

NO3Q8N+, 2/F(,+9-------------K?@A@LCJ345%*&()0D9:R.S

T%:B34C2NOPU&EN+U8&O G5%*,(09##C2(D9U+D()+U93

45K?@A@LCCJP18N+,GF$N--------*5%*,(09##C2M/F(,+9PU&EN+U8

&OGCJNO318N+,GF$N*5=------2NO3Q@VWX5Y2(D9U+D()+U9345%F(D

09PU&EN+U8&OG----CCZZ#<[#CJ318N+,GF$N*\5GKK3Q@VWX2M

[email protected](D9U---+D()+U9345%F(D09PU&EN+U8&OGCCZZ#<[#CJ

318N+,GF$N*\5G--KK3Q@[email protected](D9U+D()+U9345%F(D09

P18N+,GF$N*CCZZ#<[#CJ318N+,GF$N*\5GKK3Q@[email protected](D9

U+D()+U9345%F(D09P18N+,GF$N*CCZZ#<[#CJ318N+,GF$N*\5GKK3Q@VW

X22M318N+,H59%*,(09##B:<=>=HHN]J#^<=>_<GY>MX`_ab:CCc318N+,GF

$N*d2M318N+,H5:<):2MP18N+,GF$N*5%*,(09#<)#B318N+,C2DE&+81F9P

18N+,GF$N*CJ1FEN*23Q8N+,53420&#X^a_<G_Y<G_e]<=>_#<=SG<=SI<=SY

>eS_f#20&#GIY>eS_f#^X_a<G_e<G_Y<=>_]#2345&+7+&%+2*&()0:34<=>=

3Q8N+,<):2MDE&+81F9P18N+,GF$N*CJ1FEN*23Q8N+,5342O#X^a_<G_Y<G_

e]<=>_#GIY>eS_f#20&#GIY>eS_f#^X_a<G_e<G_Y<=>_]#2345&+7+&%+2*

&()0:<=>=343Q8N+,<):2M!g8*F.W&$U(,622%2<%h22i22+78,2---+78,

9:%++;<=>=?@A@B=B=2:C2$)U+D3#2345K?@A@L2%3<%h33i29---C22%

2`Hh4222N8*J+78,:*&()0<:34<::2M#HJ>M#i2-44?@A@44---<GI>

<G---e=<G>e<=>=<GSe<GSY<G>e<=>=<Ge_<G->S<=>=<G-->G<=

>=<G>Y<G>G--<Gee<G>e<G-e><=>=<G---eG<Gee< G>G

<G>_<G>e<=-->=<GeG<GeS-<=>=<G>G----<GSY<GS-Y<

Ge_<G>Y< GeG<G>G<GS--><GeG<G-----e_<GeS

<=>=<GS_--<GeG<GS><G---e=<=>=< GI=<G

>e<GSI< Ge><=>=<Ge----G<GSY< =>=<G>

G<=>=<G---S><GSI<G------>G<G>>-------<G>e<

Gee<G>----G<GSI< GeY<=>--------=<Ge_

<G>S< =>=<GG-----_<=>_< GII<G

>e<Ge------G<Ge><G--e><G_G----------<=>=

<=>S< =GI<G=G<GS------------Y<GS

Y<Ge-----------_<G>Y<Ge-------------G<G>

G<GS------------><G>e<GSY-----------<=e>

<=>=------------<GGG<GeS<G>---------Y<=eS

<=>=< GIe<GSY<G>e<G>---------><=>=<

GS_<G--------eG<GS><G--e=<=--------->=<GS=<

G>e<GSI------------------------------<Gee<GeG

<GSY<GSY--------------------------------<GeG<G

e_<GeS<=eS

Dr. Ina Schaefer Software Engineering 1 Seite 54

Versionsverwaltungssysteme

! Systeme für Sperren und Mischen verfügbar

! Lokale Versionsverwaltung

! Lokale Archivierung (meist einzelner) Dateien

! Beispielsysteme: SCCS und RCS

! Zentrale Versionsverwaltung

! Revisionen liegen auf zentralem Server

! Clients erfragen Updates, senden Änderungen

! Beispielsysteme: CVS, SVN, Perforce, Visual SourceSafe

! Verteilte Systeme

! Verteilte Repositories (mit allen bekannten Revisionen) die synchronisiert werden können

! Beispielsysteme: Git, Mercurial, ClearCase

Dr. Ina Schaefer Software Engineering 1 Seite 6

Produktqualität und Prozessqualität

! Software:

! Kaum Qualitätsmängel durch Massenproduktion

! Qualitätsmängel im Herstellungsprozess begründet

! Qualitätsmanagement:

! Organisatorische Maßnahmen zur Prüfung und Verbesserung der Prozessqualität

! Beachtung von internen Kunden-/Lieferantenbeziehungen

! Konstruktive Qualitätssicherung: Qualität des Prozesses

! Analytische Qualitätssicherung: Qualität des Produkts

Dr. Ina Schaefer Software Engineering 1 Seite 33

Testarten

Akzeptanz-Test

Baustein-Test

Modul-Test

Integrations-Test

System-Test

Integration

Bausteintest (unit test):! Traditionell: Prozeduren! OO: Methoden

Modultest:! Traditionell: Module! OO: Klassen

Integrationstest:! OO: Pakete

Dr. Ina Schaefer Software Engineering 1 Seite 35

Funktionaler Test (black box)

Funktionale"Spezifikation"

Testfälle"(Eingabedaten)"

Erwartete"Ausgabedaten"

Programm-"ausführung"

Ausgabe-"daten"

Vergleich"

Dr. Ina Schaefer Software Engineering 1 Seite 40

Strukturtest (glass-box)

Programm-"Code"

Testfälle"(Eingabedaten)"

Funktionale"Spezifikation"

oder""Orakel""

Programm-"ausführung"

Ausgabe-"daten"

Vergleich"

Erwartete"Ausgabedaten"

Dr. Ina Schaefer Software Engineering 1 Seite 2

Charakteristika eines Projekts

Abgrenzung zu Routinetätigkeiten: •  Ein Projekt hat ein Projektziel. •  Ein Projekt ist zeitlich befristet. •  Ein Projekt befasst sich in der Regel mit einem

„schwierigen“ Thema. •  Ein Projekt besteht aus einer Vielzahl von

Einzelaufgaben und besitzt dadurch Komplexität. •  Ein Projekt umfasst oft neuartige Aufgaben und

Inhalte. •  Ein Projekt hat in der Regel ein höheres Risiko als

eine Routinetätigkeit.

Dr. Ina Schaefer Software Engineering 1 Seite 3

Teufelsquadrat nach Sneed Wiederholung: Teufelsquadrat nach Sneed

© 2011 Capgemini – All rights reservedVortrag Projekt Management TU Braunschweig.pptx

62

Qualität Leistungsumfang

Zeit Kosten

++

- -

--

+ +

• Die Fläche (Produktivität) eines Projekts ist invariant

• Wenn ein Projekt z. B. in weniger Zeit und zu geringeren Kosten abgeschlossen werden soll, verringert sich auch der Leistungsumfang und die Qualität

• Steuerung:– Fall 1: Planung war nicht

umsetzbar: Ecken neu justieren– Fall 2: Produktivität im Team

stimmt nicht (Fläche)

Beachte: Die Fläche (Produktivität) eines Projekts ist invariant: Wenn ein Projekt z. B. in weniger Zeit und zu geringeren Kosten abgeschlossen werden soll, verringert sich auch der Leistungsumfang und die Qualität.

Inhalte

• Vorgehensmodelle• Anforderungsanalyse• Objektorientierte Analyse• Grobdesign und Architektur• Feindesign und Implementierung• Testen• Agile Softwareentwicklung mit Scrum• Projektmanagement

Ina Schaefer SE 1 - WS 2012/13 2