Softwaretechnik 1, Vorlesung, SS2015 Karlsruher Institut für Technologie (KIT)
-
- Bildung
Beschreibung:
Ziel dieser Vorlesung ist es, das Grundwissen über Methoden und Werkzeuge zur Entwicklung und Wartung umfangreicher Software-Systeme zu vermitteln. Themen: Projektplanung, Systemanalyse, Kostenschätzung, Entwurf, Implementierung, Validation und Verifikation, Software-Wartung, Software-Werkzeuge, Programmierumgebung und Konfigurationskontrolle. Vorlesungsaufzeichnung: http://webcast.kit.edu
-
- video
Softwaretechnik I, SS 2015, gehalten am 06.07.2015, Lektion 22
22 | Vorlesung
00:00:10 Swing-Nebenläufigkeitsbeispiel
00:04:44 Kapitel X – Blockierende Methoden in Swing
00:04:49 Schaltflächen: JButton
00:07:58 Arten von Testhelfern
00:09:49 Fehlerklassen
00:12:40 Modul-/Softwaretestverfahren
00:15:20 Testphasen
00:16:47 Klassifikation testender Verfahren (1)
00:23:29 Klassifikation testender Verfahren (2)
00:26:23 Definition: Zwischensprache
00:28:04 Definition: Strukturerhaltende Transformation
00:29:14 Beispieltransformation
00:33:22 Definition: Grundblock (GB) (engl. basic block)
00:34:56 Definition: Kontrollflussgraph (KFG)
00:36:00 Kontrollflussgraph finden
00:40:01 Beispiel Kontrollflussgraph
00:41:25 Kontrollflussgraph vereinfachen
00:43:15 Definition: Anweisungsüberdeckung
00:44:42 Definition: Zweigüberdeckung
00:45:23 Anw.-vs. Zweigüberdeckung
00:48:27 Definition: Pfadüberdeckung
00:49:37 Beispiel für Anweisungs-, Zweig- und Pfadüberdeckung
00:50:11 Aufwand der Pfadüberdeckung
00:52:58 Definition: Subsumieren
00:54:15 Hierarchie der KFO-Teststrategien
00:56:22 Zusammenfassung: KFO Teststrategien (1)
00:59:33 Aufwand der Pfadüberdeckung
01:02:44 Funktionale Tests (Functional Tests)
01:05:28 Funktionale Äquivalenzklassenbildung
01:07:18 Äquivalenzklassenbildung: Beispiel (1)
01:09:15 Äquivalenzklassenbildung: Beispiel (2)
01:09:45 Äquivalenzklassenbildung: Beispiel (3)
01:12:20 Grenzwertanalyse
01:13:43 Zufallstest (random testing)
01:16:44 Verwendung von Testhelfern (1)
01:18:35 Verwendung von Testhelfern (2)
01:19:58 Beispiel: Attrappe (dummy) (1)
01:20:42 Beispiel: Attrappe (2)
01:21:29 Beispiel: Attrappe (3)
01:21:59 Beispiel: Attrappe (4)
01:24:36 Beispiel: Nachahmung (mock object) (1)
01:26:27 Beispiel: Nachahmung (mock object) (2)
01:26:57 Beispiel: Nachahmung (mock object) (3)
01:27:57 Beispiel: Nachahmung (mock object) (4) -
- video
Softwaretechnik I, SS 2015, gehalten am 13.07.2015, Lektion 24
24 | Vorlesung
00:00:07 Test von Zustandsautomaten
00:02:51 Test von Zustandsautomaten: Beispiel »Uhr mit zwei Tasten«
00:02:59 Leistungstests: Lasttests
00:04:21 Leistungstests: Stresstest
00:06:10 Übersichtsmatrix: Was kommt im Folgenden?
00:06:14 Manuelle Prüfung – Anmerkungen
00:08:26 Software-Inspektionen (Überblick)
00:09:25 Abgrenzung
00:12:39 Definition: Inspektion
00:12:55 Vor- und Nachteile von Inspektionen
00:14:21 Zahlen über Nutzen und Kosten
00:16:02 Warum Inspektionen effektiv sind
00:17:08 Phasen einer Inspektion
00:18:11 1. Vorbereitung
00:18:30 2. Individuelle Fehlersuche
00:19:52 3. Gruppensitzung (Dauer: 2h)
00:21:14 4. Nachbereitung
00:22:32 5. Prozessverbesserung (nur gelegentlich)
00:22:43 Rollen
00:23:07 Formular für Problempunkte (typisch)
00:23:50 Defektklassifikation
00:24:21 Lesetechniken – Überblick (1)
00:25:47 Lesetechniken – Überblick (2)
00:25:54 Lesetechniken – Prüflisten (1)
00:26:18 Lesetechniken – Prüflisten: Beispiel (1)
00:27:04 Lesetechniken – Prüflisten: Beispiel (2)
00:28:57 Lesetechniken – Perspektiven od. Szenarien (engl. perspectives, scenarios) (1)
00:29:05 Werkzeuge zur Inspektionsunterstützung (1)
00:29:09 Lesetechniken – Perspektiven – Beispiel (2)
00:30:23 Werkzeuge zur Inspektionsunterstützung (2)
00:31:22 Werkzeuge zur Inspektionsunterstützung (3) Beispiel Agile Review
00:33:34 Werkzeuge zur Inspektionsunterstützung (4) Beispiel Agile Review
00:33:58 Werkzeuge zur Inspektionsunterstützung (6) Beispiel Agile Review
00:34:21 Übersichtsmatrix: Was kommt im Folgenden?
00:34:37 Prüfprogramme
00:36:26 Integrationstest (engl. integration test)
00:37:20 Integrationsstrategien
00:43:15 Systemtest
00:44:29 Klassifikation der Systemtests
00:45:00 Definition: Regressionstest
00:45:51 Abnahmetests (engl. acceptance test)
00:46:53 Literatur
00:48:03 Prozessmodelle
00:48:26 Programmieren durch Probieren
00:51:14 Wasserfallmodell
00:55:08 »V-Modell 97« – das »handelsübliche«
00:56:57 V-Modell XT (Vorgehensmodell)
00:58:46 V-Modell XT: Rollen
00:58:58 V-Modell XT: Abbildung Submodelle/Vorgehensbausteine
00:59:09 V-Modell XT: Produktzustände
00:59:41 Prototypmodell
01:01:22 Prototypmodell 1
01:02:13 Prototypmodell 2
01:04:48 Iteratives Modell
01:08:34 Synchronisiere und Stabilisiere
01:11:10 Synchronisiere und Stabilisiere, Planungsphase
01:13:03 Synchronisiere und Stabilisiere, Entwicklungsphase
01:15:12 Synchronisiere und Stabilisiere, Stabilisierungsphase
01:16:34 Synchronisiere und Stabilisiere, Zeitplan
01:17:32 Synchronisiere und Stabilisiere
01:23:31 Synchronisiere und Stabilisiere, Vergleich mit Phasenmodell -
- video
Softwaretechnik I, SS 2015, gehalten am 19.06.2015, Lektion 17
17 | Vorlesung
Java Puzzlers: Da war doch was …
00:00:07 Quelltext
00:01:12 Ausgabe
00:01:50 DGrund
00:02:17 Behebung
00:02:28 Lehre
00:03:38 Bidirektionale Eins-zu-Eins Assoziation
00:04:03 1:N-Assoziation
00:08:47 M:N-Assoziation
00:09:38 Zusammenfassung
00:12:09 Sonderfälle
00:13:30 Qualifizierte Assoziationen
00:15:51 Assoziationsklassen
00:19:06 Kapitel 4.1.2 – Abbildung und Implementierung von Zustandsautomaten
00:19:35 Speicherung des Zustands eines Objektes
00:19:57 Beispiel für implizite Speicherung des Zustands
00:22:17 Beispiel für explizite Speicherung des Zustands
00:23:39 Vergleich implizite/explizite Speicherung des Zustands
00:25:32 Beispiel für eingebettete explizite Speicherung
00:31:18 Vorgehensweise
00:35:35 Vorgehensweise: Delegation
00:35:43 Implementierung der Methoden der abstrakten Klasse Zustand
00:36:02 Vorgehensweise: Delegation
00:38:49 Beispiel
00:44:50 Kapitel 4.2 – Grundlagen zur Parallelverarbeitung
00:45:09 Warum Parallelverarbeitung?
00:53:02 Die Mooresche Regel (Moore´s Law)
00:59:52 Strategische Änderung: Multiprozessoren auf einem Chip
01:00:28 Doppelprozessor Intel Core Duo
01:01:00 Mehrkern-Architekturen
01:06:00 Sun Niagara 2: 8 Prozessoren auf 3,42 qcm
01:07:24 Intel Sandy Bridge 2011
01:09:39 Vielkerner in Graphik-Prozessoren
01:11:18 Erstes Mobiltelefon mit Mehrkernprozessor
01:11:34 Samsung, Apple u.a. folgen
01:12:07 1 Jahr später: Das erste 5-Kern Mobiltelefon
01:12:18 Nvidia Tegra 3
01:13:31 Nvidia Tegra 3 Schemadiagramm
01:13:44 Moor´sche Regel, neue Version
01:14:03 Was sind die Folgen? (1)
01:15:05 Was sind die Folgen? (2)
01:15:43 Was sind die Folgen? (3)
01:17:50 Grundbegriffe
01:23:36 Gemeinsamer Speicher (1)
01:27:23 Prozesse und Kontrollfäden
01:32:15 Gemeinsamer Speicher (2) -
- video
Softwaretechnik I, SS 2015, gehalten am 07.07.2015, Lektion 23 (Übung)
23 | Übung:
-
- video
Softwaretechnik I, SS 2015, gehalten am 15.06.2015, Lektion 16
16 | Vorlesung
00:00:09 Die Ausnahme der Schleife – Quelltext
00:03:30 Die Ausnahme der Schleife – Ausgabe
00:04:16 Die Ausnahme der Schleife – Fehler
00:05:52 Die Ausnahme der Schleife – Behebung
00:06:26 Die Ausnahme der Schleife – Lehre
00:08:30 Fliegengewicht (engl. flyweight)
00:09:18 Fliegengewicht: Beispiel (1)
00:12:04 Fliegengewicht: Struktur
00:16:00 Fliegengewicht: Beispiel (2)
00:16:06 Fliegengewicht: Anwendbarkeit
00:19:21 Memento (engl. memento)
00:20:10 Memento: Struktur
00:22:32 Memento: Motivierendes Beispiel (1)
00:23:00 Memento: Motivierendes Beispiel (2)
00:27:22 Prototyp (engl. prototype)
00:27:59 Prototyp: Struktur
00:28:15 Prototyp: Beispiel in Java (1)
00:29:36 Prototyp: Beispiel in Java (2)
00:30:17 Prototyp: Anwendbarkeit
00:32:21 Zustand (engl. state)
00:32:32 Zustand: Anwendbarkeit
00:32:35 Steuerungsmuster
00:33:36 Befehl (engl. command)
00:34:38 Befehl: Struktur
00:37:20 Befehl: Beispiel (1)
00:39:21 Befehl: Beispiel (2)
00:40:12 Befehl: Abfolge von Befehlen
00:41:58 Befehl: Anwendbarkeit
00:45:27 Auftraggeber/-nehmer (engl. master/worker)
00:46:20 Master/Worker: Struktur
00:47:26 Master/Worker: Beispiel
00:52:21 Master/Worker: Anwendbarkeit
00:54:20 Bequemlichkeitsmuster
00:54:30 Bequemlichkeit-Methode: Struktur
00:54:52 Fassade (engl. facade)
00:54:54 Fassade: Anwendbarkeit
00:54:55 Null-Objekt: Struktur
00:54:57 Null-Objekt (engl. null object)
00:55:14 Wo finde ich mehr über Entwurfsmuster?
00:56:57 Zusammenfassung
01:06:20 Wo sind wir gerade?
01:07:36 Lernziele
01:08:01 Inhalt
01:08:46 Einführung und Überblick
01:12:27 Kapitel 4 – Die Implementierungsphase
01:12:49 Kapitel 4.1 – Abbildung von UML-Modellen und Code
01:12:54 Literatur
01:13:06 Kapitel 4.1.1 – Abbildung von Klassendiagrammen
01:13:08 Abbildung von Klassen: oo-Sprachen
01:13:20 Abbildung von Klassen: Nicht-OO-Sprachen (1)
01:14:49 Abbildung von Klassen: Nicht-OO-Sprachen (2)
01:20:03 Abbildung von Klassen: Nicht-OO-Sprachen (3)
01:24:22 Abbildung von Assoziationen
01:24:56 Unidrektionale Eins-zu-Eins-Assoziation
01:26:08 Bidrektionale Eins-zu-Eins-Assoziation -
- video
Softwaretechnik I, SS 2015, gehalten am 26.06.2015, Lektion 19 (Übung)
19 | Übung
00:00:07 Risks to the Public
00:00:34 Minuten – Eine Rakete mit Nuklearsprengkopf
00:02:57 »Lösung« des Militärs
00:05:04 Lehre
Aufgabe 1
00:06:02 Kreuzworträtsel
Aufgabe 2: Pizza-Modellierung
00:10:20 Überblick
00:14:49 a) Kombinieren aller Formen mit allen Rezepten
00:15:16 b) Die Pizza-Konstruktoren
00:18:25 c) Die Reihenfolge der Beläge sicherstellen
Aufgabe 3: Entwurfsmuster in der Java-API
00:21:14 java.io.Reader
00:24:50 getInstance() aus java.util.Calendar
00:28:02 valueof(int) aus java.lang.integer
Aufgabe 4: Sequenzdiagramm
00:30:02 Quelltext
Kapitel 4.3
00:44:28 Programmierrichtlinien
00:45:20 Wozu Programmierrichtlinien?
00:47:35 Welche Programmierrichtlinie soll ich nehmen?
00:48:09 Beispiel Eclipse-Formatierer
00:48:28 Beispiel Eclipse-Formatierer: Einstellungen
00:48:36 Beispiel Eclipse
Kaapitel 4.4
00:51:22 Selbstkontrolliertes Programmieren
00:55:09 Typische Programmierfehler (1)
00:56:10 Typische Programmierfehler (2)
00:57:54 Typische Programmierfehler (3)
00:58:52 Typische Programmierfehler (4)
00:59:58 Typische Programmierfehler (5)
01:01:30 Typische Programmierfehler (6)
01:02:35 Typische Programmierfehler (7)
01:03:56 Selbstkontrolliertes Programmieren
01:07:54 Fehlerlogbuch
01:08:22 Zeitlogbuch