und Einführung - Institut für Automatisierungs

Universität Stuttgart
Institut für Automatisierungs- und Softwaretechnik
Prof. Dr.-Ing. Dr. h. c. P. Göhner
Softwaretechnik II
Sommersemester 2015
www.ias.uni-stuttgart.de/st2
[email protected]
© 2015 IAS, Universität Stuttgart
Softwaretechnik II
Ansprechpartner für „Softwaretechnik II“
Bei organisatorischen Fragen zur oder bei Problemen mit dem Ablauf der
Vorlesung „Softwaretechnik II“ wenden Sie sich bitte an:
Dr.-Ing. Nasser Jazdi
Zimmer: 2.139 (Pfaffenwaldring 47, 2. Stock am IAS)
Tel.:
0711- 685-67303
E-Mail: [email protected]
© 2015 IAS, Universität Stuttgart
ST II
Softwaretechnik II
ST II
Unterlagen
– Skript „Softwaretechnik II“
Blaue Texte zum Mitschreiben (im Skript nicht enthalten)
Live-Mitschriebe (leere Folien im Skript für Mitschrieb vorgesehen)
Fragen am Ende jedes Unterkapitels - Antwort zum Mitschreiben
Vorbereitungsfragen am Ende jedes Kapitels zur selbstständigen
Rekapitulation des Stoffes
– Vorlesungsportal im Internet unter:
www.ias.uni-stuttgart.de/st2
Aktuelle Informationen zur Vorlesung
Vollständige Vorlesungsunterlagen
Übungsunterlagen
 Aufgaben mind. eine Woche vor Übungstermin
 Lösungen nach dem Übungstermin
Prüfungsunterlagen
 Musterlösungen im Internet und auf der Vorlesungs-CD erhältlich
Lecturnity-Aufzeichnungen von Vorlesungen und Übungen (auch als Podcast)
© 2015 IAS, Universität Stuttgart
Softwaretechnik II
ST II
MOFIAS:
Mobiles Online-Feedback-System für Lehrveranstaltungen am IAS
 MOFIAS ist eine plattformunabhängige Web-App für Smartphones.
 IAS-Studierende können live während einer Vorlesung über das Smartphone mit dem
Dozenten interagieren.
 Folgende Funktionen sind verfügbar:
Fragen / Kommentare an Dozenten senden
Geschwindigkeit der Vorlesung beeinflussen
Fragen zum Kapitel beantworten
Die Vorlesung bewerten
Zugriff über: http://m.ias.uni-stuttgart.de
Video: MOFIAS
Live Stream:
Das Beamerbild und der Ton zu dieser Vorlesung werden, während die Vorlesung
stattfindet, live ins Internet übertragen. Studierende können während der Vorlesung mit
MOFIAS über das Internet Fragen stellen
© 2015 IAS, Universität Stuttgart
Softwaretechnik II
ST II
Vorlesungstermine
Nr.
1
2
3
Termin
15.04.15
17.04.15 *
22.04.15
Thema der Vorlesung
Konfigurationsmanagement
Konfigurationsmanagement / Prototyping…
Prototyping …
4
5
6
24.04.15 *
29.04.15
06.05.15
Metriken bei der Softwareentwicklung
Metriken … / Formale Methoden…
Formale Methoden/ Wartung & Pflege von Software
7
8
9
10
11
12
13
13.05.15
20.05.15
03.06.15
17.06.15
24.06.15
01.07.15
08.07.15
Wartung & Pflege von Software / Reengineering
Reengineering
Reengineering / Datenbanksysteme
Datenbanksysteme/ Software-Wiederverwendung
Software-Wiederverwendung
Agentenorientierte Softwareentwicklung
Agile Softwareentwicklung
(*) Vorlesung anstatt Übung
© 2015 IAS, Universität Stuttgart
Softwaretechnik II
ST II
Übungstermine
Nr.
1
2
3
Termin
08.05.15
15.05.15
22.05.15
Thema der Übung
Konfigurationsmanagement
Metriken
Sichere Software (1)
4
5
6
05.06.15
10.06.15*
12.06.15
Sichere Software (2)
Wartung
Reengineering
7
19.06.15
Datenbanksysteme 1
8
26.06.15
Datenbanksysteme 2
9
03.07.15
Workshop „DB“ (praktische Übung am PC)
10
10.07.15
Komponentenbasierter Entwurf
11
15.07.15*
Agentenbasierter Entwurf
12
17.07.15
Agentenbasierter Entwurf
13
22.07.15*
Agentenbasierter Entwurf
14
24.07.15
Prüfungsbesprechung
(*) Übung anstatt Vorlesung
© 2015 IAS, Universität Stuttgart
Softwaretechnik II
ST II
Ziele der Vorlesung
– Softwarequalität für technische Systeme verstehen
• Konfigurationsmanagement in Software-Projekten einsetzen
• Prototyping bei der Softwareentwicklung realisieren
• Geeignete Metriken einsetzen, um Eigenschaften von Software
hinsichtlich der Erfüllung von Anforderungen zu beurteilen und den
Entwicklungsprozess zu verbessern
• Qualitativ hochwertige Software mittels formalen Methoden entwickeln
– Softwaretechniken für bestehende technische Systeme kennen
• Wissen, wie Software gewartet und gepflegt wird
• Reengineering anwenden, um Leistungsindikatoren wie Kosten,
Qualität, Service und Geschwindigkeit zu verbessern
– Aktuelle Themen der Softwaretechnik kennen lernen

Datenbanken, Software-Wiederverwendung, Agenten in der
Automatisierungstechnik und agile Methoden verstehen und einsetzen
© 2015 IAS, Universität Stuttgart
Softwaretechnik II
ST II
Bezug zu anderen Vorlesungen der Fakultät:
Vertiefung einzelner
Themen in
Implementierung von
Datenbanken und
Informationssystemen
Softwaretechnik II
Methoden &
Werkzeuge des SWEngineerings
Logik
Grundkenntnisse aus
Softwaretechnik I
Informatik I, II
© 2015 IAS, Universität Stuttgart
Technische
Informatik I
Formale Methoden
Programmierübungen
I, II
ST II
Inhaltsverzeichnis (1)
§ 1 Konfigurationsmanagement
1.1
1.2
1.3
1.4
1.5
Definition und Abgrenzung von Konfigurationsmanagement
Objekte des Konfigurationsmanagements
Aufgaben und Abläufe im Konfigurationsmanagement
Werkzeuge
Hinweise für die Praxis
§ 2 Prototyping bei der Softwareentwicklung
2.1
2.2
2.3
2.4
2.5
2.1 Grundlagen Prototyping
2.2 Grundlagen Prototyping
Prototyping im Entwicklungsprozess
Prototyping-Werkzeuge
Hinweise für die Praxis
§ 3 Metriken bei der Softwaretechnik
3.1
3.2
3.3
3.4
3.5
3.6
Einführung und Übersicht
Softwaremaße bei der Qualitätssicherung
Komplexitätsmaße
Auswerte- und Validierungsmechanismen für Software-Maße
Werkzeugsysteme zur automatischen Ermittlung von Softwaremaßen
Hinweise für die Praxis
© 2015 IAS, Universität Stuttgart
12
13
26
38
50
54
58
59
69
80
99
108
111
112
127
138
151
157
159
ST II
Inhaltsverzeichnis (2)
§ 4 Formale Methoden zur Entwicklung qualitativ hochwertiger Software
4.1
4.2
4.3
4.4
4.5
Wozu formale Methoden ?
Grundlagen der formalen Spezifikation und Verifikation
Vorgehensweise bei der formalen Softwareentwicklung
Modelchecker SMV
Hinweise für die Praxis
§ 5 Wartung & Pflege von Software
5.1
5.2
5.3
5.4
5.5
5.6
Aspekte bei der Pflege von Softwaresystemen
Aufgaben und Aufwand
Effiziente Wartung und Pflege
Moderne Softwarepflege
Rechnerunterstützung bei der Pflege von Softwaresystemen
Hinweise für die Praxis
§ 6 Reengineering
6.1
6.2
6.3
6.4
6.5
6.6
Warum Software Reengineering?
Reverse Engineering
Respezifikation
Redokumentation
Programmtransformation
Hinweise für die Praxis
© 2015 IAS, Universität Stuttgart
162
163
171
184
193
204
208
209
215
231
238
244
252
255
256
276
279
284
290
293
ST II
Inhaltsverzeichnis (3)
§ 7 Datenbanksysteme
7.1
7.2
7.3
7.4
7.5
Einführung in Datenbanksysteme
Relationale Datenbanksysteme
SQL
Entwurf von Relationalen Datenbanksystemen
Objektorientierte Datenbanksysteme und neue Entwicklungen
§ 8 Software-Wiederverwendung
8.1
8.2
8.3
8.4
8.5
8.6
Woran krankt die klassische Softwareentwicklung?
Grundlagen der Software-Wiederverwendung
Bibliotheksbasierte Wiederverwendung
Komponentenorientierte Softwareentwicklung
Strukturierte Komponenten
Hinweise für die Praxis
§ 9 Agentenorientierte Softwareentwicklung
9.1
9.2
9.3
9.4
Herausforderungen bei komplexen technischen Systemen
Agentenorientierte Softwareentwicklung
Agentenorientierte Methoden
Agentensysteme – Aufbau, Struktur und Implementierung
§ 10 Agile Softwareentwicklung
10.1
10.2
10.3
Einführung in “Agile Methoden”
Grundlagen der agilen Softwareentwicklung
Extreme Programming
© 2015 IAS, Universität Stuttgart
297
298
309
316
324
341
356
357
363
373
386
392
400
404
405
411
419
427
434
435
444
459