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
All content for Softwaretechnik 1, Vorlesung, SS2015 is the property of Karlsruher Institut für Technologie (KIT) and is served directly from their servers
with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
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
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)
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
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)
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
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«
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