Upload
trandieu
View
214
Download
0
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-/
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 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.