Folgen
-
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 -
Fehlende Folgen?
-
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.
Vorlesungsfolien als PDF -
In dieser Podcast Episode gehe ich zusammenfassend auf die Technologien ein, die im Rahmen der Übung Verwendung finden. Es wird kurz eingeführt in
EclipseLogging mit log4jSpring Framework für Dependency InjectionInternationalisierung, Resource BundlesPersistenzBenutzerschnittstelle mit Swing sowie in die von uns angebotenen Informationsquellen. Ergänzend hierzu kann man sich die Screencasts zum Basis-Beispiel ansehen.
Vorlesung als m4a -
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.
Vorlesung als m4a -
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-StrategienTest-Driven DevelopmentGranularität von TestsUnit-Test FrameworksBeispiel: Testen einer DAO MethodeVorlesung als m4a -
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 -
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 -
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:
StrategySingletonFactoryProxyObject PoolFacadeObserver (Event Listener)Model View ControlerData Access ObjectVorlesung als m4a -
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 -
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 -
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 DetailsWie funktioniert der Zusammenhang zwischen Benutzerschnittstelle und "Backend", Layered ArchitectureWie wird Spring zum Verdrahten der Objekte verwendet?Swing UI (kurzer Überblick)
DAO Interface und ImplementationLoggingTesten (Unit Tests), automatisiertResources: Konfigurationsfiles, Logging Config, Datenbank hsqldbOperative- & Test-ResourcesInteraktion mit der (hsqldb) Datenbank während der Entwicklung und Wartung der AnwendungScreencast als Quicktime (H.264) Film. -
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:NetzwerkHardwareDisplayRobustheitWie ist der aktuelle Status der Software?Herausforderungen der Software Entwicklung für das GerätUsability"Limitierungen" der HardwareEffektive Nutzung der innovativen Hardware FeaturesLokalisationDokumentation?!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 OLPCActivity Challenge
Interview als m4a -
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 -
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 MavenErstellen der Eclipse Projektfiles und importierren des Basis-Beispiels in Eclipse
Basic Beispiel in Eclipse startenNicht 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.