- Daniel Lindner
- Mirko Beine
- Lars Briem
- Lars Briem
- Daniel Lindner
- Mirko Beine
- Mirko Beine
- Lars Briem
- Daniel Lindner
####29.09.2015 (lindner)
- Objektorientierte Prinzipien (Folienstand 2010)
- SOLID
- GRASP bis Polymorphie
####06.10.2015 (lindner)
- Objektorientierte Prinzipien (Folienstand 2015)
- GRASP wdh. von Indirektion und Polymorphie
- GRASP restliche Prinzipien
- DRY
- KISS
- YAGNI
- Conway's Law
- Refactoring (Folienstand 2010)
- Einleitung
- Motivation
- Einfacher Entwicklungsprozess
- bis Exkurs Lokalitätsprinzip von Bugs
####13.10.2015 (lindner)
- Refactoring (Folienstand 2010)
- Ab Exkurs Lokalitätsprinzip von Bugs
- Code Smells
- Refactorings
####20.10.2015 (beine)
- Einführung: was ist Design
- Softwarekomplexität als Kombination von essential complexity, technical complexity und accidential complexity
- Auswirkungen von Komplexität
- Big Ball of Mud
- Warum braucht man Design
- Übersicht über DDD
- Grundideen des DDD:
- Kollaboration, ubiquitous language
- Fachwissen muss sich im Code wiederspiegeln
- Fachlogik muss von Nebeneinflüssen isoliert werden
- Beispiel zu Vorlesungsplan-App ausgearbeitet (Prof, Sekretär, Dozent, Vorlesung, Veranstaltung, Raum, Kurs, Wahlmodul)
- Erläuterung Knowledge Crunching
- Strategisches und Taktisches DDD
- das Domänenmodell als Bindeglied zwischen strategischem DDD und taktischem DDD
- Value Objects
- Implementierung von ValueObjects in Java
- Persisitierung von Value Objects
####27.10.2015 (beine)
-
Entities, Generierung von Identität
-
Domain Services
-
Aggregates, Transaktionsgrenzen, Lazy Loading, Aggregate Roots
-
Repositories
####03.11.2015 (beine)
-
Wiederholung Aggregates
-
Factories als allgemeines Konzept, Abstract Factory und Factory Method nicht Teil der Klausur
-
Modules
-
DDD in der Praxis * DDD führt zu Mehraufwand * Mehraufwand muss gerechtfertigt sein * wann lohnt sich DDD / wann nicht
-
Onion Architecture * Klassisches Schichtenmodell * DIP * Umschichtung der Infrastrukturschicht * Domäne als isolierter Kern * Domain Layer * Application Service Layer * Infrastructure Layer
####27.11.2015 (briem)
- Definition von Bloopern / GUI Bloopern
- Auswirkungen von Bloopern auf den Benutzer bzw. die Bedienung
- Ursachen durch die Blooper entstehen
- Probleme die durch Blooper entstehen
- Einteilung der Blooper in unterschiedliche Arten
- GUI Komponenten
- Navigation
- Texte
- Design und Layout
- Interaktion
- Management
- Antwortverhalten
- Möglichkeiten zur Vermeidung der Blooper
####04.12.2015 (briem) #####UI Entwicklung
- Aufgabenverteilung in der UI Entwicklung
- Allgmeine Prinzipien zur UI Entwicklung
- Benutzer und dessen Ziele sind wichtig
- Konzeptionelles Modell
- Gestalt Prinzipien
- Gestaltungsrichtlinien
#####Usability Testing
- Definition von Usability
- User Centered Design Process
- Grobe Übersicht
- Benutzerprofile
- Iteratives Vorgehen
- Usability Test
- Wichtige Elemente eines Tests
- Testarten / Testumgebungen
- Testablauf
####11.12.2015 (briem) #####Usability Testing
- Experten Review
- Ablauf
- Evaluationsregeln
#####Paper Prototyping
- Definition Paper Prototyping
- Erstellung eines Prototypen
- Komponenten
- Realismus des Prototyps / der Daten
- Usability Test mit Paper Prototyping
- Vergleich Paper Prototyping mit anderen Prototypen
- Vor- / Nachteile
- Auswahlkriterien für / gegen Paper Prototyping
#####GUI Tests
- Gründe für GUI Tests
- Testarten
- Probleme skriptbasierter / automatischer GUI Tests
- Vor- / Nachteile einzelner Arten
- Vor- / Nachteile GUI Tests
####16.02.2016 (lindner)
- Entwurfsmuster Einführung
- Entwurfsmuster Beobachter komplett
- Entwurfsmuster Dekorierer komplett
- Entwurfsmuster Event Bus teilweise
####23.02.2016 (lindner)
- Softwaretests Einführung
- Klassifikation Testarten
- Unit Tests (JUnit)
- Mocks
- Test Coverage
- Test First Development
####01.03.2016 (beine)
- DevOps (DevOps-stud-2016)
- Was ist DevOps
- DevOps-Prinzipien (CALMS)
- Kritik
- Fazit
- Ausblick
####15.03.2016 (briem)
- Anforderungen an ein Big Data System
- Lambda Architektur
- Datenmodell
- Eigenschaften von Daten (Rohdaten, Unveränderlichkeit)
- Batch Schicht
- Aufgaben
- Verteilte Dateisysteme (HDFS)
- MapReduce Konzept
- Phasen
- Ablauf
- Probleme
- Optimierungen
- Pipe Diagramme
- Abfrage Schicht
- Aufgaben
- Normalisierung / Denormalisierung
- Anforderungen
- Echtzeit Schicht
- Aufgaben
- CAP Theorem
- Speicherung / Gültigkeit der Daten
####22.03.2016 (briem)
-
Echtzeit Schicht
- Stream basierte Verarbeitung
-
Fazit / Ausblick
-
MapReduce Entwurfsmuster
-
Arten von Entwurfsmustern
- Summation
- Filterung
- Vereinigung
- Daten Organisation
- Metamuster
- Weitere Codebeispiele dazu unter: https://github.com/adamjshook/mapreducepatterns
####29.09.2015 (briem)
- Definition von Bloopern / GUI Bloopern
- Auswirkungen von Bloopern auf den Benutzer bzw. die Bedienung
- Ursachen durch die Blooper entstehen
- Probleme die durch Blooper entstehen
- Einteilung der Blooper in unterschiedliche Arten
- GUI Komponenten
- Navigation
- Texte
- Design und Layout
- Interaktion
- Management
- Antwortverhalten
- Möglichkeiten zur Vermeidung der Blooper
####06.10.2015 (briem) #####UI Entwicklung
- Aufgabenverteilung in der UI Entwicklung
- Allgmeine Prinzipien zur UI Entwicklung
- Benutzer und dessen Ziele sind wichtig
- Konzeptionelles Modell
- Gestalt Prinzipien
- Gestaltungsrichtlinien
#####Usability Testing
- Definition von Usability
- User Centered Design Process
- Grobe Übersicht
- Benutzerprofile
- Iteratives Vorgehen
- Usability Test
- Wichtige Elemente eines Tests
- Testarten / Testumgebungen
- Testablauf
- Experten Review
- Ablauf
- Evaluationsregeln
####13.10.2015 (briem) #####Paper Prototyping
- Definition Paper Prototyping
- Erstellung eines Prototypen
- Komponenten
- Realismus des Prototyps / der Daten
- Usability Test mit Paper Prototyping
- Vergleich Paper Prototyping mit anderen Prototypen
- Vor- / Nachteile
- Auswahlkriterien für / gegen Paper Prototyping
#####GUI Tests
- Gründe für GUI Tests
- Testarten
- Probleme skriptbasierter / automatischer GUI Tests
- Vor- / Nachteile einzelner Arten
- Vor- / Nachteile GUI Tests
####20.10.2015 (lindner)
- Objektorientierte Prinzipien (Folienstand 2015)
- SOLID
- GRASP bis Protected Variations
####27.10.2015 (lindner)
- Objektorientierte Prinzipien (Folienstand 2015)
- GRASP restliche Prinzipien
- DRY
- KISS
- YAGNI
- Conway's Law
- Refactoring (Folienstand 2010)
- Einleitung
- Motivation
- Einfacher Entwicklungsprozess
- Auswirkungen von Refactoring
- bis Exkurs Code Tuning
####05.11.2015 (lindner)
- Refactoring (Folienstand 2010)
- ab Exkurs Code Tuning
- Code Smells
- Spezifische Refactorings
- Zusatzmaterial: https://schneide.wordpress.com/2013/12/30/from-ugly-to-pretty-three-steps-is-all-it-takes/
####16.02.2016 (briem)
- Anforderungen an ein Big Data System
- Lambda Architektur
- Datenmodell
- Eigenschaften von Daten (Rohdaten, Unveränderlichkeit)
- Batch Schicht
- Aufgaben
- Verteilte Dateisysteme (HDFS)
- MapReduce Konzept
- Phasen
- Ablauf
- Probleme
- Optimierungen
- Pipe Diagramme
- Abfrage Schicht
- Aufgaben
- Normalisierung / Denormalisierung
- Anforderungen
- Echtzeit Schicht
- Aufgaben
- CAP Theorem
- Speicherung / Gültigkeit der Daten
- Stream basierte Verarbeitung
- Fazit / Ausblick
####23.02.2016 (briem)
- MapReduce Entwurfsmuster
- Arten von Entwurfsmustern
- Summation
- Filterung
- Vereinigung
- Daten Organisation
- Metamuster
- Weitere Codebeispiele dazu unter: https://github.com/adamjshook/mapreducepatterns
####29.09.2015 (beine)
- Einführung: was ist Design
- Softwarekomplexität als Kombination von essential complexity, technical complexity und accidential complexity
- Auswirkungen von Komplexität
- Big Ball of Mud
- Warum braucht man Design
- Übersicht über DDD
- Grundideen des DDD:
- Kollaboration, ubiquitous language
- Fachwissen muss sich im Code wiederspiegeln
- Fachlogik muss von Nebeneinflüssen isoliert werden
- Beispiel zu Vorlesungsplan-App ausgearbeitet (Prof, Sekretär, Dozent, Vorlesung, Veranstaltung, Raum, Kurs, Wahlmodul)
- Erläuterung Knowledge Crunching
- Strategisches und Taktisches DDD
- das Domänenmodell als Bindeglied zwischen strategischem DDD und taktischem DDD
- Value Objects
- Implementierung von ValueObjects in Java
- Exkurs: Specifications
####06.10.2015 (beine)
-
Persisitierung von Value Objects
-
Entities, Generierung von Identität
-
Domain Services
-
Aggregates, Transaktionsgrenzen, Lazy Loading, Aggregate Roots
-
Repositories
####05.11.2015 (beine)
-
Wiederholung Aggregates
-
Factories als allgemeines Konzept, Abstract Factory und Factory Method nicht Teil der Klausur
-
Modules
-
DDD in der Praxis * DDD führt zu Mehraufwand * Mehraufwand muss gerechtfertigt sein * wann lohnt sich DDD / wann nicht
-
Onion Architecture * Klassisches Schichtenmodell * DIP * Umschichtung der Infrastrukturschicht * Domäne als isolierter Kern * Domain Layer * Application Service Layer * Infrastructure Layer
####19.10.2015 (briem)
- Definition von Bloopern / GUI Bloopern
- Auswirkungen von Bloopern auf den Benutzer bzw. die Bedienung
- Ursachen durch die Blooper entstehen
- Probleme die durch Blooper entstehen
- Einteilung der Blooper in unterschiedliche Arten
- GUI Komponenten
- Navigation
- Texte
- Design und Layout
- Interaktion
- Management
- Möglichkeiten zur Vermeidung der Blooper
####26.10.2015 (briem)
- Letzte Blooper Kategorie
- Antwortverhalten
- Möglichkeiten zur Vermeidung der Blooper
#####UI Entwicklung
- Aufgabenverteilung in der UI Entwicklung
- Allgmeine Prinzipien zur UI Entwicklung
- Benutzer und dessen Ziele sind wichtig
- Konzeptionelles Modell
- Gestalt Prinzipien
- Gestaltungsrichtlinien
#####Usability Testing
- Definition von Usability
- User Centered Design Process
- Grobe Übersicht
- Benutzerprofile
- Iteratives Vorgehen
- Usability Test
- Wichtige Elemente eines Tests
- Testarten / Testumgebungen
- Testablauf
####02.11.2015 (briem) #####Usability Testing
- Experten Review
- Ablauf
- Evaluationsregeln
#####Paper Prototyping
- Definition Paper Prototyping
- Erstellung eines Prototypen
- Komponenten
- Realismus des Prototyps / der Daten
- Usability Test mit Paper Prototyping
- Vergleich Paper Prototyping mit anderen Prototypen
- Vor- / Nachteile
- Auswahlkriterien für / gegen Paper Prototyping
#####GUI Tests
- Gründe für GUI Tests
- Testarten
- Probleme skriptbasierter / automatischer GUI Tests
- Vor- / Nachteile einzelner Arten
- Vor- / Nachteile GUI Tests
####10.11.2015 (lindner)
- Programming Principles
- Einleitung
- SOLID
- GRASP bis Mitte Kopplung
- Zusatzmaterial: Buch zu Interfaces https://pragprog.com/book/kpiod/interface-oriented-design
- Zusatzmaterial: Buch zu Interfaces und Ports and Adapters http://www.growing-object-oriented-software.com/
####18.11.2015 (lindner)
- Programming Principles
- GRASP bis Ende
- DRY
- KISS
- YAGNI
- Conway's Law
####25.11.2015 (lindner)
- Refactoring Refactoring (Folienstand 2010)
- Einleitung
- Motivation
- Einfacher Entwicklungsprozess
- Auswirkungen von Refactoring
- Exkurs Code Tuning
- Code Smells
- Spezifische Refactorings
- Zusatzmaterial: https://schneide.wordpress.com/2013/12/30/from-ugly-to-pretty-three-steps-is-all-it-takes/
####23.02.2016 (beine)
- DevOps (DevOps-stud-2016)
- Was ist DevOps
- DevOps-Prinzipien (CALMS)
- Kritik
- Fazit
- Ausblick
####07.03.2016 (beine)
- 12-Factor Apps
- Einleitung
- Warum 12FA
- die 12 Faktoren
- Continuous Delivery
- Was ist CD
- Warum CD
- die Deployment-Pipeline
####01.03.2016 (briem)
- Anforderungen an ein Big Data System
- Lambda Architektur
- Datenmodell
- Eigenschaften von Daten (Rohdaten, Unveränderlichkeit)
- Batch Schicht
- Aufgaben
- Verteilte Dateisysteme (HDFS)
- MapReduce Konzept
- Phasen
- Ablauf
- Probleme
- Optimierungen
- Pipe Diagramme
- Abfrage Schicht
- Aufgaben
- Normalisierung / Denormalisierung
- Anforderungen
- Echtzeit Schicht
- Aufgaben
- CAP Theorem
- Speicherung / Gültigkeit der Daten
- Stream basierte Verarbeitung
- Fazit / Ausblick
####08.03.2016 (briem)
- MapReduce Entwurfsmuster
- Arten von Entwurfsmustern
- Summation
- Filterung
- Vereinigung
- Daten Organisation
- Metamuster
- Weitere Codebeispiele dazu unter: https://github.com/adamjshook/mapreducepatterns