Discover
Softwaretechnik 1, Vorlesung, SS2015
Softwaretechnik 1, Vorlesung, SS2015
Author: Karlsruher Institut für Technologie (KIT)
Subscribed: 6Played: 9Subscribe
Share
Description
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
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
25 Episodes
Reverse
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)
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
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)
23 | Übung:
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
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
18 | Vorlesung
Java Puzzlers: Wer zuerst kommt …
00:00:07 Quelltext
00:01:53 Quelltext fortgesetzt
00:03:42 Ausgabe
00:16:31 Fadenverschränkung (Thread Interleaving)
00:16:55 Korrektur
00:17:44 Überblick
00:17:54 Konstrukte zum Erzeugen von Parallelität
00:26:04 Koordination
00:55:35 Wait-Notify
01:10:11 Unterbrechung
01:13:33 Verklemmungen
20 | Vorlesung
Beispiel: Vektoraddition
00:00:07 (2)
00:02:16 (1)
00:03:33 (2)
00:05:55 (3)
00:07:37 (4)
00:08:58 Ergänzungen in der Java-Bibliothek java.util.concurrent
00:10:00 java.util.concurrent
00:11:09 java.util.concurrent – ConcurrentCollections
00:14:49 java.util.concurrent – Schlangen (1)
00:15:40 java.util.concurrent – Schlangen (2)
00:16:51 java.util.concurrent – Semaphore
00:18:58 Beispiel: Semaphore
00:21:26 java.util.concurrent – Barrierensynchronisation
00:23:23 Mehr zu diesem Thema …
00:24:12 Kapitel 4.2.2 – Parallele Algorithmen
00:24:17 Überblick
Matrix-Vektor-Multiplikation:
00:24:59 Problemstellung
00:25:53 Sequentieller Algorithmus
00:25:56 Parallelisierung (1) bis (7)
00:31:02 Parallele Implementierung (1) bis (4)
00:31:56 Aufteilung der Rechenlast
00:32:07 Mögliche Algorithmen
00:33:02 ijk-Algorithmus
00:34:43 Nachteil des ijk-Algorithmus
00:34:52 Optimierung: ijk-Algorithmus
00:36:59 ijk-Algorithmus (1)
11 | Vorlesung
00:00:19 Java Puzzlers: Ohne Fleiß kein Preis – Quelltext
00:03:23 Java Puzzlers: Ohne Fleiß kein Preis – Ausgabe
00:04:00 Java Puzzlers: Ohne Fleiß kein Preis – Behebung
00:04:27 Java Puzzlers: Ohne Fleiß kein Preis – Lehre
00:05:52 3.2 Modularer Entwurf (MD)
00:10:30 3.2.1 Anforderungen an das Modulkonzept
00:14:16 3.2.2 Das Modul
00:15:55 Beispiel: Klasse für eine Strecke (1). Ohne Kapselung oder Geheimnisprinzip
00:17:02 Beispiel: Klasse für eine Strecke (2). Mit Kapselung – erster Versuch
00:18:34 Beispiel: Klasse für eine Strecke (3). Mit Kapselung – zweiter Versuch
00:20:49 Beispiel: Klasse für eine Strecke (3). Mit Kapselung – Änderung der Interna
00:22:45 3.2.2 Das Modul
00:30:32 3.2.3 Modulführer
00:32:34 3.2.4 Modulschnittstellen
00:36:28 3.2.5 Fallstudie: KWIC-Index
00:59:06 3.2.5 Noch ein Beispiel: java.awt.Component
01:02:11 3.2.6 Das Modul in Programmiersprachen
01:12:10 3.2.7 Gestaltung der Benutztrelationen
01:21:30 Kriterien für die Konstruktion der Benutzthierarchie
01:23:06 3.2.7 Gestaltung der Benutztrelationen
12 | Vorlesung
Die Vorlesung vom 29.06.2015 konnte aus technischen Gründen nicht aufgezeichnet werden.
Die hier präsentierte Vorlesungsaufzeichnung stammt aus dem SS2014 und deckt nahezu alles ab, was besprochen wurde.
15 | Übung
Risks to the Public
00:00:08 Heute: Das Automatisierungsparadoxon
00:00:30 Air Malaysia Flug 124
00:00:49 Über den Wolken (1) Was geschah …
00:02:39 Über den Wolken (2) Die (gute) Reaktion der Piloten …
00:04:13 Über den Wolken (3) Fehlertoleranz?!?
00:05:00 Ironie und Paradoxon der Automatisierung
00:05:56 Kreuzfahrtschiff »Royal Majesty« läuft auf Grund
00:06:29 Sachverhalt im Juni 1995
00:06:52 Was zuvor geschah …
00:09:03 Lehre
00:10:09 Aufgabe 1a: Anforderung
00:11:12 Aufgabe 1b: Border-Layout
00:12:34 Aufgabe 1a: Umsetzung als Swing-Gui
00:14:15 Aufgabe 1: Datei-speichern-Dialog (1)
00:19:25 Aufgabe 1: Datei-speichern-Dialog (2)
00:25:14 Aufgabe 1: Erzeugen des Vorschaubildes
00:27:46 Aufgabe 1: Verkleinern des Vorschaubilds (1)
00:29:55 Aufgabe 1: Verkleinern des Vorschaubilds (2)
00:36:20 Aufgabe 2: Modellierung und Varianzen
00:47:47 Aufgabe 2: Modellierung und Varianzen c)
00:54:47 Aufgabe 3: Überladen und Überschreiben
00:58:34 Kompositum: Implementierung (3)
00:58:55 Strategie (engl. strategy)
01:00:41 Beispiel 1: An assignment far, far away …
01:02:03 Lösung: Man nehme das Strategiediagramm und ändere die Bezeichner
01:03:27 Strategie, Beispiel 2: Beispiel von Zeilenumbrechungsalgorithmen in Klassen
01:07:57 Strategie: Anwendbarkeit (1)
01:13:39 Dekorierer (engl. Decorator)
01:14:46 Dekorierer: Struktur
01:16:37 Dekorierer: Beispiel (2)
01:19:07 Dekorierer vs. Stellvertreter
01:21:18 Zustandshandhabungsmuster
01:21:39 Einzelstück (engl. singleton)
01:24:33 Einzelstück: Struktur
01:24:47 Einzelstück: Anwendbarkeit
13 | Übung
00:00:07 Risks to the Public
00:00:43 Was in den Nachrichten kam …
00:02:04 Hintergründe
00:03:25 Was dann geschah
00:04:29 Was dann geschah II
00:07:52 Übung 3
00:14:43 Aufgabe 1 – Plug-In-Architekturen. Plug-Ins ermitteln
00:18:41 Aufgabe 1 – Plug-In-Architekturen. Menü erweitern
00:24:26 Aufgabe 2 – Plug-In-Architekturen. Hallo-SWT1-Plugin
00:41:28 Aufgabe 4 – UML-Zustandsdiagramm
00:45:25 Umwandeln in nicht-hierarchischen Automaten
00:49:12 Aufgabe 5 – Linguistische Analyse
00:57:07 Kapitel 3.4 – Architekturstile
00:57:08 Datenablage: Beispiel (2)
00:57:10 Datenablage: Beispiel (1)
00:57:13 Datenablage, Depot (engl. Repository)
00:57:15 Model/View/Controller (MVC)
00:59:50 Model-Präsentation-Steuerung (engl. Model-View-Controller, MVC)
01:02:07 Mehr zu MVC
01:03:43 Fließband (engl. Pipeline, Pipe and Filter)
01:09:25 Beispiel für Fließband
01:13:50 Fließband: Anwendbarkeit
01:14:34 Rahmenarchitektur (engl. Framework)
01:17:08 Rahmenarchitektur: Struktur (1)
01:17:33 Rahmenarchitektur: Struktur (2)
01:19:33 Rahmenarchitektur: Struktur (3)
01:20:18 Rahmenarchitektur: Struktur (4)
01:24:03 Rahmenarchitektur: Beispiel (5)
14 | Vorlesung
00:00:07 Java Puzzlers: Was stecht dahinter – Quelltext
00:09:27 Stellvertreter (engl. proxy)
00:22:55 Vermittler (engl. mediator)
00:30:17 Varianten-Muster
00:32:33 Abstrakte Fabrik (engl. abstract factory)
00:42:01 Besucher (engl. visitor)
00:58:33 Schablonenmethode (engl. template method)
01:05:46 Farbrikmethode (engl. factory method)
01:12:00 Kompositum (engl. composite)
21 | Vorlesung
Java Puzzlers:
00:00:08 Unsanfte Unterbrechung – Quelltext
00:02:28 Unsanfte Unterbrechung – Ausgabe
00:03:42 public void interrupt()
00:04:39 Unsanfte Unterbrechung – Behebung
00:05:22 Unsanfte Unterbrechung – Lehre
00:06:04 Matrix-Matrix-Multiplikation: Nachteil des ijk-Algorithmus
00:07:02 Matrix-Matrix-Multiplikation: ikj-Algorithmus (1)
00:11:31 Matrix-Matrix-Multiplikation: ijk-vs. ikj-Algorithmus (3)
00:12:51 Matrix-Matrix-Multiplikation: ijk-vs. ikj-Algorithmus (4)
00:17:08 Matrix-Matrix-Multiplikation: ijk-vs. ikj-Algorithmus (5)
00:18:27 Numerische Integration
00:18:42 Numerische Integration: Vorgehen (1)
00:19:19 Numerische Integration: Vorgehen (2)
00:21:58 Numerische Integration: Beispiel (3)
00:22:03 Bewertung von parallelen Algorithmen (1)
00:25:32 Matrix-Matrix-Multiplikation: ijk-vs. ikj-Algorithmus (5)
00:27:25 Matrix-Matrix-Multiplikation: ijk-vs. ikj-Algorithmus (4)
00:28:18 Bewertung von parallelen Algorithmen (1)
00:29:19 Bewertung von parallelen Algorithmen (2)
00:31:27 Bewertung von parallelen Algorithmen (3)
00:33:36 Herleitung des Amdahlschen Gesetzes
00:36:46 Fallstudie: Berechnung eines invertierten Index
00:39:10 Invertierter Index
00:41:34 Dateiindizierung: Ohne Daten geht es nicht!
00:47:58 Erster Parallelisierungsversuch
00:51:16 Zweiter Versuch
00:53:05 Dritter Versuch
00:59:07 Dateiindizierung, beste Konfigurationen
01:00:28 Ausblick
01:04:08 Wo kann man mehr dazu lernen? Am IPD?
01:04:21 Inhalt der Parallel-Vorlesungen (alle im Master)
01:14:38 Kapitel 5.1 – Testen und Prüfen
01:14:58 Wo sind wir gerade?
01:16:05 Literatur
01:16:21 Motivation
01:17:08 Fehleraufdeckung ist das Ziel der Testverfahren
01:22:22 Es gibt 3 Arten von Fehlern …
01:24:48 Zusammenhang der Fehlerarten
01:26:13 Arten von Testhelfern
25 | Vorlesung
00:00:08 Kapitel 8.2 – Agile Prozesse
00:00:44 Agiles Manifest – eine Gegenreaktion zu plangetriebenen Prozessen (Wasserfall)
00:02:22 Agile Prozesse
00:04:24 Praktiken des Extreme Programming (XP)
00:06:43 Paarprogrammierung I
00:08:31 Paarprogrammierung II
00:10:30 Effizientes Testen
00:11:24 Testen bei XP
00:12:25 Komponententests
00:12:45 Akzeptanztests
00:12:55 Testgetriebene Entwicklung
00:14:03 Zustandsdiagramm der testgetriebenen Entwicklung
00:17:16 Test/Implementierung/Umstrukturierung
00:17:23 Rolle der Komponententests
00:18:14 Umstrukturierung I
00:19:22 Umstrukturierung II
00:20:16 Umstrukturierung III
00:21:27 Inkrementelles Design
00:21:44 Planungsspiel
00:24:43 Auslieferungsplanung
00:25:31 Iterationsplanung I
00:26:32 Iterationsplanung II
00:27:12 Kunde vor Ort
00:28:07 Behauptung Kent Becks I
00:28:47 Behauptung Kent Becks II
00:29:08 Kritik an XP
00:31:26 Probleme bei der Einführung von XP
00:33:21 Bewertung von XP
00:35:29 Zusammenfassung
00:36:58 Was wissen wir eigentlich über XP?
00:37:04 Paarprogrammierung versus …
00:37:38 Erfahrungen mit testgetriebener Entwicklung
00:38:32 Quantitative Studien zur testgetriebenen Entwicklung
00:39:10 Scrum
00:41:05 Scrum – Artefakte
00:42:09 Restaufwands-Diagramm (engl. burndown chart)
00:43:14 Und so sieht´s in Wirklichkeit aus.
00:43:34 Scrum – Rollen
00:44:12 Scrum – Treffen (engl. Scrum = Gedränge)
00:45:03 Literatur
00:51:12 Kapitel 7 – Schätzmethoden
00:51:22 Wo sind wir gerade?
00:52:20 Lernziele
00:53:04 Aufwandsschätzung
00:58:06 Einflussfaktoren
01:00:04 Das »Teufelsquadrat«
01:01:19 Einflussfaktoren: Quantität
01:01:39 Einflussfaktoren: Qualität
01:01:56 Einflussfaktoren: Entwicklungsdauer
01:02:06 Einflussfaktoren: Produktivität
01:02:16 Basismethoden: Analogiemehtode
01:02:33 Analogiemehtode: Beispiel
01:04:45 Basismethoden: Relationsmethode
01:04:56 Relationsmethode: Faktoren
01:06:03 Relationsmethode: Beispiel
01:07:21 Multiplikationsmethode: Beispiel
01:07:28 Basismethoden: Phasenaufteilung
01:07:42 Die Schätzmethode COCOMO II
01:07:48 Schätzformel von COCOMO II
01:08:22 COCOMO II Skalierungsfaktoren
01:08:26 COCOMO II – Beispielsrechnung (1)
01:09:13 COCOMO II – Beispielsrechnung (2)
01:10:04 Delphi-Schätzmethode
01:11:01 Planungspoker: Variation der Delphi-Methode
01:12:16 Planungspoker (2)
01:12:40 Und was soll man jetzt benutzen?
09 | Vorlesung
00:00:09 Java Puzzles – Wer zuletzt lacht… – Quelltext
00:00:11 Java Puzzles – Wer zuletzt lacht… – Ausgabe
00:00:14 Java Puzzles – Wer zuletzt lacht… – Behebung
00:00:19 Java Puzzles – Wer zuletzt lacht… – Lehre
00:00:39 Kapitel 2.4 – Beispiel: Pflichtenheft »Seminarorganisation«
00:01:27 Pflichtenheft ist erweitertes Lastenhaft
00:02:07 2.4 Pflichtenheft »Seminarorganisation«
00:12:29 Pflichtenheft ausformuliertes Beispiel
00:16:56 Kapitel 2.5 – Linguistische Analyse von Domänenbeschreibungen
00:18:28 OO-Analyse – Vorgehen
00:20:19 Kompetenzprobleme
00:21:03 Linguistische Analyse von Domänenbeschreibungen
00:21:18 Linguistische Analyse – Aber richtig!
00:23:57 Linguistische Analyse von Domänenbeschreibungen
00:24:59 Gegenbeispiel: Beamten- und Ingenieursdeutsch
00:27:52 Thematische Rollen
00:30:31 Linguistische Analyse mit thematischen Rollen
00:31:38 Thematische Rollen – Syntax vs. Semantik
00:32:55 Thematische Rollen – Syntax vs. Semantik. Was ist realistischer?
00:33:25 Thematische Rollen. UML-Umsetzung
00:35:01 Thematische Rollen. Beispiel mit UML-Umsetzung (1)
00:35:49 Thematische Rollen. Beispiel mit UML-Umsetzung (2)
00:40:30 Thematische Rollen. UML-Umsetzung
00:43:57 Arbeiten am Institut: Beispiel
00:44:47 Arbeiten am Institut: Annotierter Text
00:46:49 Arbeiten am Institut: Übersetzung in UML mit SALEmx
00:48:29 Arbeiten am Institut: Vertiefungsvorlesung im Master
00:52:14 Wo sind wir gerade?
00:53:06 Inhalt
00:55:27 3.1 Einführung und Überblick
00:56:33 Softwaretechnik
01:01:18 Weitere Fragen, die geklärt werden müssen
01:06:02 Nichtfunktionale Anforderungen – Wem sind sie wichtig?
01:08:30 Typische Entwurfs-Abwägungen
01:11:49 3.2 Modularer Entwurf
01:15:20 3.2.1 Anforderungen an das Modulkonzept
01:19:02 3.2.2 Das Modul
01:21:48 Beispiel: Klasse für eine Strecke (1) Ohne Kapselung oder Geheimnisprinzip
01:22:10 Beispiel: Klasse für eine Strecke (4) Mit Kapselung – Änderung der Interna
10 | Übung
Beispiel
00:00:07 Was bei der Anforderungsermittlung alles schief gehen kann
00:00:51 Neue Züge bracht das Land
00:01:38 »Ups«
00:02:42 Konsequenzen
00:04:38 Übung 2
00:04:40 Aufgabe 1 – Szenario
00:05:44 Aufgabe 1 – Gliederung
00:06:01 Aufgabe 1 – 1. Zielbestimmung
00:06:29 Aufgabe 1 – 2. Produkteinsatz
00:06:46 Aufgabe 1 – 3. Funktionale Anforderungen
00:07:12 Aufgabe 1 – 4. Produktdaten
00:07:36 Aufgabe 1 – 5. Nichtfunktionale Anforderungen
00:08:09 Aufgabe 1 – Szenarien
00:08:28 Aufgabe 1 – Anwendungsfalldiagramm
00:08:59 Aufgabe 1 – Glossar
00:09:51 Aufgabe 2 – Klassendiagramm, Teil 1
00:12:54 Aufgabe 2 – Klassendiagramm, Teil 2
00:16:57 Aufgabe 3 – Durchführbarkeitsuntersuchung
00:17:40 Aufgabe 3 – common-cli in Maßen einbinden
00:18:11 Aufgabe 4 – Klassenpfad per Magen anpassen (optional)
00:21:14 Aufgabe 4 – Abhängigkeiten automatisch kopieren (optional)
00:22:53 Aufgabe 4 – Bild einlesen, verarbeiten und schreiben
00:24:39 Aufgabe 4 – Muster auf Gültigkeit prüfen
00:25:55 Aufgabe 4 – Zielbild anlegen in SimplePopArtCollage
00:26:31 Aufgabe 4 – Zielbild anlegen in SimplePopArtCollage (Zielbild ist coll)
00:27:04 Aufgabe 4 – Zielbild anlegen in SimplePopArtCollage (Kachel schreiben)
00:27:54 Aufgabe 4 – Filtrier-Vorbereitungen
00:29:27 Aufgabe 4 – Graustufen-Filter
00:30:24 Aufgabe 4 – Sepia-Filter
00:32:06 Aufgabe 4 – RGB-Shift-Filter
00:33:22 Aufgabe 4 – Weichzeichner
00:35:40 Aufgabe 4 – Weichzeichner (Bonusaufgabe)
00:37:36 Aufgabe 4 – Weichzeichner – Übernahme der Ränder aus dem Originalbild
00:38:24 Testen
08 | Übung
00:00:08 Risks to the Public
00:06:31 Aufgabe 1: JMJRST aus dem SVN holen
00:08:21 Aufgabe 1: JMJRST für Magen vorbereiten
00:12:27 Aufgabe 1: JMJRST – maven-jar-plugin
00:17:02 Aufgabe 1: JMJRST – Checkstyle
00:18:15 Aufgabe 1: – der Patch. Neues für Ihre pom.xml
00:19:46 Aufgabe 1: – der Patch (1). Das SWT1-SS2015 pom.xml als Eltern-pom.xml
00:24:52 Aufgabe 1: – der Patch (2). Änderung an der Abgabedatei
00:30:52 Randnotiz zu JMJRST
00:31:15 Aufgabe 2: JUnit – Allgemeines
00:33:37 Aufgabe 2: JUnit – Testfallbeispiel (Aufgabe 2c)
00:34:28 Aufgabe 2: JUnit – Testverzeichnis (Aufgabe 2h)
00:35:39 Aufgabe 2: JUnit – Testfallbeispiel (Aufgabe 2d)
00:36:40 Aufgabe 2: JUnit – Testfallbeispiel (imageEquals)
00:38:15 Aufgabe 2: JUnit – Testfallbeispiel (Aufgabe 2e)
00:39:27 Aufgabe 2: JUnit – Testfallbeispiel (Aufgabe 2f)
00:41:27 Aufgabe 2: JUnit – Testfallbeispiel (Aufgabe 2g)
00:45:38 Aufgabe 2: JUnit – Testfallbeispiel (Aufgabe 2h)
00:46:57 Aufgabe 2: JUnit – Patch erzeugen: Befehl und Meta-Infos
00:47:14 Aufgabe 2: JUnit – Patch erzeugen (2): Wo wurde geändert
00:47:26 Aufgabe 2: JUnit – Patch erzeugen (3): Was wurde geändert
00:47:39 Aufgabe 3: Testüberdeckung – generateImage
00:50:23 Aufgabe 3: Testüberdeckung – rotateimage
00:52:31 Aufgabe 3: Mockito – pom.xml
00:52:43 Aufgabe 3: Mockito – Einbinden in Testklasse
00:53:44 Aufgabe 3: Mockito – Anwendung
03 | Vorlesung
Inhalt: Einführung und Überblick
- Was ist Software
- Charakteristiken von Software
- Softwarequalität
- Softwarequalitätsprobleme
- Was ist Softwaretechnik
07: Vorlesung:
Puzzle
00:00:07 Stiller Alarm – Quelltext
00:02:01 Stiller Alarm – Ausgabe
00:05:16 Stiller Alarm – Reparatur
Vorlesung
00:06:23 Anwendungsfalldiagramm (eng. use case diagram)
00:06:27 UML-Diagramme
00:06:35 Aktivitätsdiagramm (engl. activity-diagram)
00:06:39 Elemente eines Aktivitätsdiagramms (2)
00:08:41 Ausführungssemantik – Beispiel
00:09:29 Elemente eines Aktivitätsdiagramms (3)
00:10:48 Elemente eines Aktivitätsdiagramms (4)
00:11:55 Elemente eines Aktivitätsdiagramms (5)
00:13:42 UML-Diagramme
00:13:58 Interaktionsdiagramme
00:14:49 Sequenzdiagramm (engl. sequence diagram)
00:16:00 Beispiel
00:19:30 Elemente Sequenzdiagramm
00:19:50 Beispiel
00:20:49 Weitere Notationselemente
00:26:05 Beispiel
00:28:40 Operatoren
00:29:27 UML-Diagramme
00:29:59 Zustandsdiagramm (engl. state machine)
00:31:02 Beispiel »Flugreservierung«
00:34:47 Zustandsdiagramm
00:36:38 Aktionen (engl. action)
00:37:14 Beispiel »Flugreservierung«
00:40:39 Weitere Möglichkeiten
00:50:32 UML-Diagramme
00:51:00 Beispiel
00:53:10 Literatur
00:53:18 Paketdiagramm
00:54:18 Beispiel
00:54:33 Literatur
00:55:53 2.3 – Objektmodellierung. Wie komme i ch zu einem guten Modell?
00:56:24 Wo sind wir überhaupt? Ich habe die Orientierung verloren …
00:57:08 Wir sind doch jetzt in der Definitionsphase!
00:58:03 Und wozu braucht man die übrigen Diagrammtypen?
00:58:35 1. »So finden Sie Klassen«. Finden der Kandidaten.
01:01:17 Beispiel »Seminarorganisation«
01:04:27 Beispiel
01:06:05 Zur linguistischen Analyse
01:15:15 2. »So finden Sie Assoziationen«
01:19:48 Zulässige Kardinalitäten
01:20:20 Beispiel: Finden von Assoziationen
01:22:06 So finden Sie Assoziationen
01:22:50 3. »So finden Sie Attribute
01:28:02 4. »Erstellen von Vererbungsstrukturen«



