Donnerstag, 6. März 2008

Vorlesung SS08: Folien

Alle Podcasts dieser Serie sind enhanced Podcasts und beinhalten sowohl Ton als auch Präsentationsgrafiken.

Dennoch, an dieser Stelle nochmals zusammengefasst die Folien aller Teile um eine Gesamtübersicht und ein einfacheres Lernen zu ermöglichen. Das PDF Dokument ist mit Bookmarks strukturiert um einen direkten Zugriff auf einzelne Vorlesungen zu ermöglichen.

Mittwoch, 20. Februar 2008

Vorlesung Teil 7: Technology Roundup

In dieser Podcast Episode gehe ich zusammenfassend auf die Technologien ein, die im Rahmen der Übung Verwendung finden. Es wird kurz eingeführt in
  • Eclipse
  • Logging mit log4j
  • Spring Framework für Dependency Injection
  • Internationalisierung, Resource Bundles
  • Persistenz
  • Benutzerschnittstelle mit Swing
sowie in die von uns angebotenen Informationsquellen. Ergänzend hierzu kann man sich die Screencasts zum Basis-Beispiel ansehen.

Sonntag, 17. Februar 2008

Vorlesung Teil 6: Team Collaboration

In diesem Podcast diskutiere ich wieder mit Reinhard Pötz. Das Thema ist Team Collaboration und Cooperation. Wir besprechen wesentliche Strategien und Hilfsmittel der Zusammenarbeit im (verteilten) Software Team.

Hauptsächlich diskutieren wir die Bedeutung von Sourcecode Management Systemen. Am Beispiel von Subversion (SVN) werden die wesentlichen Prinzipien vorgestellt. Der zweite Teil beschäftigt sich mit der Behandlung und dem Management von Problemen ("Issues"). In kommerziellen wie Open Source Projekten ist es ebenfalls von großer Bedeutung den Überblick über Probleme, Todos, Issues aller Art nicht zu verlieren, und diese gut managen zu können. Am Beispiel von Trac zeigen wir hier einige wichtie Strategien auch im Zusammenspiel mit Subversion.

Samstag, 16. Februar 2008

Vorlesung Teil 5: Test-Driven Development

Gemeinsam mit Erik Gostischa-Franta, der uns auch kräftig bei der Qualitätssicherunges-Vorlesung und Übung hilft geben wir einen kurzen Einblick in Test-getriebene Entwicklung. Die Kernaussage auf den Punkt gebracht ist folgende: Für jedes Feature, das man plant und in die eigene Anwendung einbauen möchte, muss gleichzeitig nachgedacht werden, wie dieses zu testen ist. Dasselbe gilt dann für die eigentliche Implementation: hier ist immer zu überlegen, ob die konkrete Implementation auch (automatisch) zu testen ist. Über Automatisierung sprechen wir in diesem Podcast allerdings nicht, das ist schon in der Einheit mit Reinhard Pötz diskutiert worden.

Konkrete Inhalte sind:
  • Bedingungen für erfolgreiche Test-Strategien
  • Test-Driven Development
  • Granularität von Tests
  • Unit-Test Frameworks
  • Beispiel: Testen einer DAO Methode
Vorlesung als m4a

Freitag, 15. Februar 2008

Vorlesung Teil 4: Komponentenorientierte Softwareentwicklung

In dieser Vorlesung spreche ich mit Markus Demolsky, der mit mir gemeinsam die Best-Practice Beispiele entwickelt.

Thema dieser Vorlesung ist komponentenorientierte Entwicklung, Wir sprechen über den Weg von Objekten über Komponenten zu Services, Entkopplung und Abstraktion. Weiters erklärt Markus das Dependency Injection Pattern und wir führen daraufhin in das Springframework ein.

Zum Abschluss erklärt Markus die wesentlichen Ideen der Schichtenarchitektur und wir beenden die Vorlesung mit einer "Vorschau" auf Service-orientierte Architekturen.

Vorlesung als m4a

Sonntag, 10. Februar 2008

Vorlesung Teil 3: Build Automation

In dieser Vorlesung diskutiere ich mit Reinhard Pötz, der langjähriger Entwickler am Apache Cocoon Projekt ist, und entsprechend viel Erfahrung in diesem Kontext hat, Automatisierung in der Software Entwicklung.

Konkret besprechen wir was im Lebenszyklus der Anwendungsentwicklung überhaupt automatisiert werden kann und die Vorteile dieser Automatisierung. Es werden Build-Tools vorgestellt und am Beispiel von Maven 2 gezeigt, wie moderne Softwareentwicklung von Automatisierung profitieren kann.

Wir diskutieren Archetypen, Dependency Management, Generierung von Reports (Tests, Checkstyle) sowie Dokumentation. Zuletzt behandeln wir das Konzept "Continuous Integration" und wie diese in erfolgreichen und großen Projekten eingesetzt wird.

Vorlesung als m4a

Freitag, 8. Februar 2008

Vorlesung Teil 2: Design Patterns

In zweiten Teil der Vorlesung erkläre ich die wichtigsten GoF Design Patterns. Natürlich ist in dieser Kürze keine detailierte Behandlung des Themas möglich und dieser Podcast ist eher als Auffrischung gedacht.

Die hier erwähnten Patterns werden alle in den Beispielen sowie in der Übung verwendet, müssen daher beherrscht werden. Diese Vorlesung ist auch die Basis für das Verständnis der weiteren Vorlesungseinheiten v.a. der komponentenorientierten Entwicklung.

Konkret bespreche ich folgende Patterns:
  • Strategy
  • Singleton
  • Factory
  • Proxy
  • Object Pool
  • Facade
  • Observer (Event Listener)
  • Model View Controler
  • Data Access Object
Vorlesung als m4a

Dienstag, 5. Februar 2008

Vorlesung Teil 1: Einführung in das Sommersemester 2008

In dieser kurzen Podcast Episode erkläre ich das didaktische Konzept das aus Podcasts und Vorlesungen besteht. Weiters gebe ich einen Überblick über die bevorstehenden Themen der weiteren Vorlesungs-Podcasts.

Es werden in den nächsten Tagen folgende Podcasts folgen, die alle für die Übung sowie für die Vorlesungsprüfung relevant sind:

  • Design Patterns
  • Build-Automation
  • Komponentenorienterte Entwicklung
  • Team Kooperation
  • Technology Roundup
Vorlesung als m4a

Samstag, 2. Februar 2008

Interview: SEPM Gruppe Projekt SimULeit

In diesem Interview spreche ich eine sehr erfolgreiche SEPM Studentengruppe, deren Projekt "SimULeit" vorgestellt wird. Im Rahmen dieses Projekte wird eine Leitstellensoftware für eine Rettungsorganisation entwickelt.

Das Projekt ist sehr umfangreich und wurde auch aus SE Sicht sehr schön implementiert, inklusive umfangreicher Tests, Projektautomation, Dokumentation, SCM und Issue Tracking.

Drei Mitglieder der Gruppe, sowie der Tutor erzählen von ihren Erfahrungen während der Gruppenphase.

Vielen Dank an Kristof Meixner (Tutor) sowie Andreas Pieber, Jakob Spörk und Michael Seydl.

Interview als m4a.

Montag, 19. November 2007

Screencast: Basic Beispiel, Überblick, Architektur

Im ersten Screencast zum Basic Beispiel wurde die Dateistruktur sowie der Build-Vorgang bis zum Eclipse Projekt erklärt. In diesem zweiten Teil setzten wir fort wo der erste geendet hat:

  • Architektonische Details
  • Wie funktioniert der Zusammenhang zwischen Benutzerschnittstelle und "Backend", Layered Architecture
  • Wie wird Spring zum Verdrahten der Objekte verwendet?
  • Swing UI (kurzer Überblick)
  • DAO Interface und Implementation
  • Logging
  • Testen (Unit Tests), automatisiert
  • Resources: Konfigurationsfiles, Logging Config, Datenbank hsqldb
  • Operative- & Test-Resources
  • Interaktion mit der (hsqldb) Datenbank während der Entwicklung und Wartung der Anwendung
Screencast als Quicktime (H.264) Film.

Montag, 15. Oktober 2007

"One Laptop per Child" Projekt: SE Herausforderungen

In dieser Episode des BPSE Podcasts spreche ich mit Aaron Kaplan und Christoph Derndorfer von OLPC Austria. OLPC steht für "One Laptop per Child" und ist eine Initiative die vor wenigen Jahren vom MIT Media Lab gestartet wurde. Das Projekt ist auch unter dem Namen "100$ Laptop" bekannt geworden.

Es ist ein faszinierendes aber auch umstrittenes Projekt, gleichzeitig ist auch viel Fehlinformation über das Projekt in Umlauf. OLPC Austria hat daher vorige Woche an der TU einen Vortrag zum Thema gehalten und wir wollen heute über das OLPC Projekt im allgemeinen aber im besonderen auch über technische Aspekte und die Herausforderungen im Software Engineering für das Gerät diskutieren.

Dies ist besonders auch für Studenten der TU und andere interessant, weil es vielfältige Möglichkeiten der Mitarbeit (auch im Rahmen von TU Praktika, DAs...) gibt.

Wir diskutieren im wesentlichen folgende Punkte:
  • Kernidee des Projektes?
  • Zielgruppe des OLPC?
  • Haben die Kinder in Entwicklungsländern keine anderen Probleme als fehlende Laptops?
  • Technische Aspekte:
    • Netzwerk
    • Hardware
    • Display
    • Robustheit
  • Wie ist der aktuelle Status der Software?
  • Herausforderungen der Software Entwicklung für das Gerät
    • Usability
    • "Limitierungen" der Hardware
    • Effektive Nutzung der innovativen Hardware Features
    • Lokalisation
    • Dokumentation?!
    • Wie sieht die Software-Infrastruktur des Gerätes aus (Programmierumgebung)
    • Best-Practices im SE Prozess?
  • Was kann man noch tun? Motivation für die Mitarbeit?
  • Squeak und OLPC
  • Activity Challenge
Interview als m4a

Dienstag, 2. Oktober 2007

Interview: Studentengruppe SS 07 "Midguard Master" Projekt

In diesem Podcast berichtet eine IFS SE Gruppe mit dem Projekt "Midguard Master" über ihr Projekt. Vielen Dank an David Schmid, Maximilian Ronniger, Martin Bachler, Florian Valente für das Gespräch!

Die Teammitglieder erklären die Idee der klassischen Rollenspiele und wie das Programm "MidguardMaster" den Spielleiter beim Rollenspiel unterstützen soll. Die Anwendung erlaubt die Abbildung von Rollenspielen: Karten, Charaktereigenschaften können editiert und erstellt werden, Waffen definiert usw. Um den Spielleiter in bestimmten Spielsituationen besser zu unterstützen können Spiel-Regeln erstellt werden die zu bestimmten Zeitpunkten ausgewertet werden.

Für die Implementation sind daher neben Persistenzmechanismen auch relativ komplexe und flexible Regeldefinitionen notwendig wofür eine eigene Regel-Engine eingesetzt wurde.

Weiters wird über die erfolgreiche Kommunikation innerhalb der Gruppe und einige andere Erfahrungen gesprochen.



Interview als m4a

Samstag, 22. September 2007

Screencast: Getting Started (Basic Beispiel Teil 1)

Dieser Screencast gibt eine erste Starthilfe wie mit dem Beispiel-Website und dem Basis-Beispiel umzugehen ist. Er führt kurz über die Struktur der Beispiels-Dokumentation, über den Download und Build-Vorgang der Beispiele bis zum Importieren und Starten des Basis-Beispiels in Eclipse.

In diesem Screencast sehen Sie also folgende Dinge:

  • Struktur und Idee der Webseite (v.a. bezogen auf das Basis-Beispiel)
  • Funktionalität und einige Kommentare zur Architektur und Technik des Basis-Beispiels
  • Download der Beispiele und Entpacken derselben am eigenen Computer
  • Wie sieht die Filestruktur des Basisbeispiels aus?
  • Kurze Einführung in das Konzept der Maven poms
  • Build mit Maven
  • Erstellen der Eclipse Projektfiles und importierren des Basis-Beispiels in Eclipse
  • Basic Beispiel in Eclipse starten
Nicht Teil dieses Screencasts ist es, die Struktur oder Architektur und Funktionalität des Beispiels konkret zu verstehen. Dies ist Aufgabe des zweiten Teils.

Screencast als Quicktime (H.264) Film.

Montag, 17. September 2007

Interview: Studentengruppe SS 07 "Silo" Projekt

In diesem zweiten Interview spreche ich mit Vertretern einer weiteren SE Gruppe des Sommersemesters 07. Diese Gruppe stellt ihr "Silo" Projekt vor. Dabei handelt es sich um ein Dokument-managementsystem für Studenten. Wir sprechen wieder über positive und negative Erfahrungen in der Gruppenphase und worauf man besonders achten sollte wenn man ein solches Projekt startet.

Vielen Dank an meine Gesprächspartner Marcus Zottl und Edward Dumser.

Interview als m4a

Montag, 3. September 2007

Interview: Studentengruppe SS 07 "Hotprint" Projekt

In diesem ersten Interview-Podcast spreche ich mit einer SE Gruppe, die die Übung im Sommersemester 2007 absolviert hat. Wir sprechen über ihr Projekt "Hotprint", einer Anwendung für Copy-Shops, über die Erfahrungen im Team und über Tipps, die sie anderen Studentengruppen geben würden.

Gesprochen habe ich mit:
  • Jasin Alili
  • Andrea Füresz
  • Christoph Hohenwartet
  • Kristof Meixner
  • Gerald Peter
  • Miroslav Sili
Vielen Dank an die gesamte Gruppe für die Bereitschaft zum Interview!!

Interview als m4a