Mittwoch, 11. Februar 2009

Interview: Studentengruppe ASE/WS 08/09 "Cocoon" Projekt

In diesem Interview mit einer Gruppe aus Advanced Software Engineering des Wintersemesters 2008/2009 sprechen wir über deren Projekt im Open Source Umfeld, das u.a. von Reinhard Pötz einem Committer beim Apache Cocoon Projekt betreut wurde.

Die Gruppe hat in ihrem Projekt eine Kernkomponente im Cocoon Projekt neu entwickelt: Die Kommunikation zwischen den Pipeline Komponenten erfolgen bisher auf Basis eines SAX Parsers; die Gruppe hat eine Implementation auf StaX Basis gemacht. Dies bietet für Komponentenentwickler Vorteile.

Im Podcast sprechen wir über das Projekt, aber auch über die Besonderheiten und Herausforderungen in einem OS Projekt mitzuarbeiten, sowie über die konkreten Erfahrungen die gemacht wurden.

Allen die im nächsten Semester mit ASE beginnen und die Interesse an der Arbeit in einem realen OS Projekt haben bitte ich sich frühzeitig mit uns in Verbindung zu setzen, da diese Möglichkeit nur wenigen hochmotivierten Gruppen geboten werden kann.

Interview als mp3

Freitag, 17. Oktober 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.

Dienstag, 14. Oktober 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, 12. Oktober 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.

Freitag, 10. Oktober 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

Dienstag, 7. Oktober 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, 5. Oktober 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, 3. Oktober 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

Mittwoch, 1. Oktober 2008

Vorlesung Teil 1: Einführung in das Wintersemester 2008

In dieser kurzen Podcast Episode erkläre ich das didaktische Konzept des Podcasts der zur Unterstützung der SEPM (und ASE) Übung dient. Ich gebe hier ich einen Überblick über die bevorstehenden Themen der weiteren Vorlesungs-Podcasts.

Es werden jeweils Mo, Mi und Fr neue Podcast Episoden folgen, die alle für die Übung (sowie für die Vorlesungsprüfung relevant sind), also bitte den Podcast Feed abonnieren (für Podcast Neulinge, siehe meine Einführung).

Vorlesung als m4a

Montag, 15. September 2008

Interview: Studentengruppe ASE/SS 08 "Castor" Projekt

Im Sommersemester 2008 hat eine sehr engagierte Gruppe aus Advanced Software Engineering ein Projekt unter intensiver Betreuung von Werner Guttmann vom Castor Projekt abgewickelt. Das Castor Projekt ist eines der führenden O/R Mapping und XML-Binding Frameworks. Die Gruppe konnte sich durch die hohe Motivation und hervorragende Betreuung in sehr kurzer Zeit in wesentliche Aspekte des Projektes einarbeiten und letztlich einen wertvollen Beitrag zum Projekt leisten!

In diesem Podcast spreche ich mit Vertretern der Gruppe, sowie mit Werner Guttmann über die Erfahrungen dieser Kooperation.

Interview als mp3

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.