Aller Anfang …

Begrüßung und Organisatorisches

Das Herbstcampus-Team

Bookware
Dienstag, 4. 9., 09:30 – 10:00 Uhr Di de

Dauerhaft schlank

Kein Lean ohne Automatisierung

Hans Dockter

Gradleware GmbH
K10 Dienstag, 4. 9., 10:00 – 10:50 Uhr Di de

Eine leistungsfähige Automatisierung ist eine notwendige Bedingung für agile und schlanke Software-Entwicklung – zumindest ab einer gewissen Projektkomplexität. In dieser Keynote wird deshalb für jedes der sieben Prinzipien der Lean Software-Entwicklung herausgestellt, welche Bedeutung die Praxis der Continuous Delivery dafür hat. Allerdings steckt die Disziplin des Continuous Delivery trotz ihrer Beduetung noch in ihren Anfängen. Deswegen schließt die Keynote mit einer Bestandsaufnahme der großen Baustellen in diesem Bereich, was sowohl das Fehlen wichtiger Konzepte als auch die Defizite beim Tooling betrifft.

New School IT

Cloud, Continuous Delivery und DevOps

Eberhard Wolff

adesso AG
K20 Mittwoch, 5. 9., 08:30 – 09:20 Uhr Keynote Mi de PDF

Der IT-Sektor steht vor einer grundlegenden Wandlung. Infrastruktur kommt in Zukunft aus der Cloud – entweder aus dem eigenen Rechenzentrum oder von Public Clouds. Dadurch stehen Server mit einem Mausklick zur Verfügung. So können Anwendungen dank Continuous Delivery viel schneller in die Produktion gebracht werden. Und die Zusammenarbeit zwischen Entwicklung und Betrieb ändert sich dank DevOps.

Diese Keynote zeigt die verschiedenen Trends und ihre Beziehungen – und was Entwickler heute schon tun können, um sich auf die Zukunft vorzubereiten.

Dies & Das

Dreierlei in aller Kürze

Golo Roden

David Tanzer

Michael Wiedeking

MATHEMA Software GmbH
K30 Donnerstag, 6. 9., 08:30 – 09:20 Uhr Java Do de PDF PDF

In dieser Keynote wird – fast schon traditionsgemäß – in aller Kürze (in 30, 10 bzw. 5 Minuten) über Wissenswertes und Persönliches rund um die Software-Entwicklung referiert.

Das Beste kommt zum Schluss

Verabschiedung

Das Herbstcampus-Team

Bookware
Donnerstag, 6. 9., 17:00 – 17:15 Uhr Do de

In der Abschlussveranstaltung wird noch einmal resümiert, die besten Sprecher gekürt und unter den Anwesenden einige wenige glückliche „gesucht“, die mit mehr als nur einem Wissensgewinn nach Hause gehen sollen.

Beispielhaft

Specification by Example

Nicole Rauch

msgGillardon AG

Andreas Leidig

msgGillardon AG
A13 Dienstag, 4. 9., 14:00 – 15:10 Uhr Di de PDF

Bei der Software-Entwicklung wird viel Wert darauf gelegt, dass die Software richtig erstellt wird. Der viel wichtigerer Aspekt, nämlich dass die Software tatsächlich das leistet, was sich der Kunde vorgestellt hat, wird dabei oft noch hinten angestellt. Dies führt häufig zu unzufriedenen Kunden und frustrierten Entwicklern. Eine Technik, um gleich im ersten Anlauf dahin zu kommen, die richtige Software zu entwickeln, ist Specification by Example.

Der Vortrag zeigt, wie diese Technik vor, während und nach der Entwicklung eines Features zum Einsatz kommt, und wie man mit ihrer Hilfe auch das Design der Software beeinflussen kann.

Wolkenschlösser

Architekturen für die Cloud

Eberhard Wolff

adesso AG
A14 Dienstag, 4. 9., 15:40 – 16:50 Uhr Di de PDF

Die Architektur einer Cloud-Anwendungen muss ganz anderen Anforderungen in Bezug auf Skalierbarkeit und Dynamik gerecht werden.

Dieser Vortrag zeigt die konkreten Probleme und Lösungen mit aktuellen Technologien. Dabei werden sowohl IaaS-Angebote wie Amazon erläutert als auch PaaS-Angebote wie Google AppEngine. Und natürlich wird neben der Public Cloud auch die Private Cloud betrachtet.

Darf's ein wenig größer sein?

Architekturmuster für hochskalierbare Systeme

Uwe Friedrichsen

codecentric AG
A15 Dienstag, 4. 9., 17:20 – 18:30 Uhr Di de PDF

Hochskalierbare Anwendungen sind anders. Die normalen Gesetze von Anwendungsarchitekturen gelten hier nicht mehr. Viele selbstverständlich erscheinenden Konzepte müssen für sehr große Anwendungen komplett überdacht und grundlegende Architekturentscheidungen neu getroffen werden.

In diesem Vortrag werden die Basisdimensionen hochskalierbarer Systeme und ihre Konsequenzen für das Anwendungsdesign betrachtet. Darauf aufbauend werden eine Reihe verschiedener und komplementärer Muster vorgestellt, die beim Entwurf hochskalierbarer Anwendungen unterstützen. Und natürlich wird auch über die Trade-offs der Muster, praktische Entscheidungshilfen sowie konkrete Design-Ansätze für die Umsetzung gesprochen. Die dargestellten Aspekte geben eine Reihe alternativer Ideen und Konzepte an die Hand, die nicht nur in hochskalierbaren Cloud-Systemen gewinnbringend angewendet werden können.

Lifehacker-Zeitmanagement

Agiles Zeitmanagement für Programmierer mit Lifehacker-Methoden

Karsten Schulz

karstenschulz.biz
A16 Dienstag, 4. 9., 20:00 – 21:10 Uhr Di de PDF

In der heutigen Zeit nutzen wir ständig neuartige Kommunikationsformen und -kanäle. Es gibt neue Formen der Arbeit und neuartige Jobs. Wir sind dauernd online, erreichbar und betreiben auf Schritt und Tritt Social Networking. Konventionelle Selbst- und Zeitmanagement-Methoden versagen in dieser schnelllebigen, modernen und vernetzten Welt regelmäßig. Wenn nach der alten Schule die Aufgaben in A-, B- und C-Prioritäten unterteilt und die Wochenplanungen erledigt sind, ist diese Planung oft schon überholt und der Kunde einen Schritt weiter. Die alten Methoden versagen, weil sie starr, langsam und inflexibel sind. Als Programmierer im Team und als selbstständiger Programmierer brauchen wir also Arbeitsmethoden für ein funktionierendes Selbst- und Zeitmanagement. Methoden, die genauso agil und dynamisch sind, wie die Welt in der wir uns bewegen.

In diesem lebhaften und pragmatischen Vortrag wird anschaulich gezeigt, wie agiles Selbst- und Zeitmanagement funktioniert und worauf es bei aktuellem Zeitmanagement ankommt. Mit konkreten Tipps und How-to's wird gezeigt, wie die hohen Taktraten unserer vielschichtigen Kommunikation gemeistert und die Vielzahl von Aufgaben in einem Software-Projekt und drumherum bewältigt werden können. Modernes Zeitmanagement funktioniert nachhaltig und ganzheitlich, ganz ohne sinnlose Pufferzeiten, abgestufte Prioritäten und vollgemaltem Kalender. Es funktioniert agil, mit Spaß und mit Lifehacks.

Modellgetrieben

Vom Modell zur GUI mit der UI Description Language

Dr. Shota Okujava

Isento GmbH

Ralf Quaas

Isento GmbH
A21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Die modellbasierte Beschreibung der Benutzeroberflächen ist eine Herausforderung, der sich selten jemand stellt. In den meisten Fällen wird auf spezielle Werkzeuge zurückgegriffen, die lediglich eine prototypische Abbildung der Oberfläche als Grafik bereitstellen. Die UI Description Language ist ein Paket, bestehend aus mehreren DSLs, die eine durchgehende Modellierung der Benutzeroberflächen von GUI-Widgets über das Data-Binding bis hin zu Plausibilitätsbedingungen an den Datenelementen ermöglicht.

In diesem Beitrag werden die Grundlagen des Pakets vorgestellt und das Werkzeug zur Modellierung und Generierung demonstriert.

Absturz unerwünscht

Architekturmuster für fehlertolerante Systeme

Uwe Friedrichsen

codecentric AG
A22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Fehlertoleranz gewinnt für große, hochskalierbare Cloud-Systeme eine ganz andere Bedeutung als für normale Unternehmensanwendungen. Fertige HA-Lösungen skalieren jenseits einer bestimmten Größe nicht mehr oder werden schlicht zu teuer. Sich ausschließlich auf klassische Anwendungsüberwachung zu verlassen, ist bei massiv verteilten Systemen auch keine Option, regelmäßige Systemausfälle sind aber auch nicht akzeptabel. Als Konsequenz muss man Fehlertoleranz explizit in die Anwendungen einbauen. Aber wie geht das eigentlich, wenn man sich so lange auf fertige Cluster- und HA-Lösungen verlassen hat, dass man das ganz verlernt hat. In letzter Zeit hört man zwar ab und zu etwas über die "Let it crash"-Prinzipien aus ERLANG, aber das ist nur ein Anfang und bei weitem nicht hinreichend.

In diesem Vortrag wird ein wenig auf die Grundkonzepte von fehlertoleranten Anwendungen eingegangen und eine Reihe alternativer und komplementärer Muster vorgestellt, mit denen Anwendungung fehlertolerant gestaltet werden können. Und natürlich gibt es auch Hinweise zu den Trade-offs der Muster, praktische Entscheidungshilfen sowie konkrete Design-Ansätze für die Umsetzung. Zwar können in diesem Vortrag nur einige ausgesuchte Aspekte des Themengebiets gestreift werden, aber es werden trotzdem eine Reihe alternativer Ideen und Konzepte an die Hand gegeben, die nicht nur in großen Cloud-Systemen gewinnbringend angewendet werden können.

Copy & Paste & Bug

Vom Umgang mit Redundanz in Software-Artefakten

Dr. Elmar Jürgens

CQSE GmbH
A23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Programmiersprachen bieten eine Vielzahl von Abstraktionsmechanismen, um die Wiederverwendung zu erleichtern. Trotzdem ist Copy & Paste nach wie vor weit verbreitet. Oft wird einfach mal schnell ein existierendes Code-Fragment kopiert und geringfügig angepasst, anstatt eine Funktion oder eine Basisklasse zu erstellen, über die man die gewünschte Funktionalität wiederverwenden könnte. Was kurzfristig als gute Idee erscheint, führt langfristig zu Mehraufwänden, da Änderungen in der Regel nicht nur an einer Stelle sondern an allen sogenannten Klonen vorgenommen werden müssen. Werden dabei Klone übersehen, führen die resultierenden Inkonsistenzen oft zu Fehlern. Tatsächlich enthalten viele Software-Systeme 20–30 % geklonten Code, in manchen Fällen sind es sogar 50 % oder noch mehr. Da es in großen Software-Systemen unmöglich ist manuell einen Überblick über existierende Klone zu behalten, sind Entwickler auf Werkzeugunterstützung angewiesen. Werkzeuge zur Clone-Detection erkennen Klone in existierender Software und können dadurch den Umgang mit existierenden Klonen erleichtern und die Entstehung von Neuen eindämmen.

In diesem Vortrag werden Beispiele von Klonen und dadurch entstandene Fehler in produktiver Software gezeigt, Clone-Detection mit Hilfe des OpenSource-Werkzeugs ConQAT vorgestellt und Best Practices und Grenzen des Einsatzes von Klonerkennung in der Praxis diskutiert. Außerdem wird kurz die Erkennung von Klonen in Anforderungsspezifikationen, Testfällen und Modellen dargestellt.

Matt in drei Iterationen

Lebendiger Architekturentwurf am Beispiel einer Schach-Engine

Stefan Zörner

oose Innovative Informatik GmbH
A25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Ein Jahrhunderttraum wie das Fliegen: Eine Maschine, die Menschen im Schach bezwingt. Auch heute ist das für viele Entwickler noch eine faszinierende Aufgabe. Wie zerlegt man das Problem geschickt? Welche wichtigen Entscheidungen sind bei der Umsetzung zu treffen?

In diesem Vortrag lernen Sie das Nötigste, um selbst ein Schachprogramm zu bauen. Und Sie erfahren auf vergnügliche Weise nebenbei – sozusagen en passant –, wie Sie ganz allgemein eine nachvollziehbare, angemessene Software-Architektur entwerfen, bewerten und festhalten können.

Ene Mene Mentor

Mentoring im Selbstversuch

Jens Schauder

Steven Schwenke

A26 Mittwoch, 5. 9., 20:00 – 21:10 Uhr Mi de ZIP

Telemachos hatte den Mentor, alle anderen müssen sich besten Falls mit einem Mentor zufrieden geben und die meisten haben gar keinen. Wie findet man einen Mentor oder einen Mentee? Wenn man einen hatte, was tut man dann damit? Wie viel und wie oft? Und was hat man davon?

In diesem Vortrag berichten ein Mentee und ein Mentor von Ihren Erfahrungen und möglichen Antworten auf die Fragen.

Pure Magie oder doch nur geträumt?

Möglichkeiten und Grenzen emergenter Architektur

Uwe Friedrichsen

codecentric AG
A31 Donnerstag, 6. 9., 09:40 – 10:50 Uhr Do de PDF

Schaut man sich die Qualitätsattribute einer Software an, für die Architekturarbeit zuständig ist, lassen sich diese in drei verschiedene Bereiche aufteilen, die grundlegend unterschiedliche Herangehensweisen erfordern: Nicht-fachliche Features: Ableitung und Implementierung von nicht-fachlichen Features aus den Anforderungen an ein System, z. B. für Sicherheitsaspekte oder Zuverlässigkeit; Komplexitätsmanagement: Aufgrund der Beschränkungen des menschlichen Gehirns ist es notwendig, die Unmengen an Details in einem Softwaresystem auf eine Art und Weise zu organisieren, dass die Personen, die mit dem System arbeiten müssen, die gerade für sie relevanten Details schnell wiederfinden und so überhaupt handlungsfähig sind; Änderbarkeit: Eine Software muss offen für Veränderungen und neue Features sein. Das bedeutet, die Software so zu organisieren, dass zukünftige Änderungen in der Mehrzahl der Fälle auf möglichst einfache Art und Weise durchgeführt werden können. Gerade der letzte Aspekt wird zwar immer wieder als zentrale Aufgabe von Architektur genannt, in der praktischen Umsetzung aber meistens ausgeblendet. So adressiert die Emergenz-Behauptung der agilen Puristen letztlich nur die zweite Aufgabe, ignoriert aber die dritte und essentielle Aufgabe. Das ist gerade heute ein massives Problem, da Änderbarkeit aufgrund des hohen geschäftlichen Änderungsdrucks die wahrscheinlich wichtigste Anforderung an ein Softwaresystem ist. Kurzum: Emergenz allein reicht nicht!

In diesem Vortrag geht es darum, was man mit Emergenz erreichen kann, was nicht und was man sonst noch benötigt, um den Aufgaben von Architektur gerecht zu werden.

Big Bang statt Big Data?

Was Architekten bei NoSQL beachten sollten

Dr. Halil-Cem Gürsoy

adesso AG
A32 Donnerstag, 6. 9., 11:20 – 12:30 Uhr Do de PDF

Inzwischen hat NoSQL die Hype-Kurve verlassen und der Einsatz der NoSQL-Datenbanken in Individualentwicklungsprojekten ist zum Mainstream geworden. Dabei ist der Begriff „NoSQL“ recht unspezifisch und das Spektrum der Datenbanken, die unter diesem Begriff zusammen gefasst werden, recht groß und reicht von „einfachen“ Key-Value-Datenbanken bis hin zu komplexen Graphendatenbanken, in denen ganze Objektbäume abgelegt werden können.

In diesem Vortrag geht es um die Aspekte, dieein Architekt in einem Projekt beachten muss, wenn eine NoSQL-Datenbank eingesetzt werden soll. Damit wird gleichzeitig die Frage beantwortet, wann überhaupt ein solcher Einsatz sinnvoll ist und nicht auch eine „normale“ relationale Datenbank ausreichen würde.

Wie Software-Generatoren die Welt verändern können

Von der Einmalfertigung hin zur Massenfertigung

Stephan Hochdörfer

bitExpert AG
A33 Donnerstag, 6. 9., 14:00 – 15:10 Uhr Do de PDF

Um ein Software-Produkt an Kundenwünsche anpassen zu können, ist es wichtig, ein hohes Maß an Flexibilität in der Software-Architektur zu gewährleisten. Aber selbst mit vorhandener Flexibilität ist es notwendig, die einzelnen Module und Komponenten manuell zusammen zu bauen bzw. gemäß der Kundenspezifikation zu konfigurieren. Welche Möglichkeiten gibt es um diesen Prozess zu automatisieren?

Zur Beantwortung dieser Frage werden im ersten Teil des Vortrags die theoretischen Grundlagen der generativen Programmierung behandelt. Den Teilnehmern werden Begriffe wie Software-Systemfamilie, Domain-Modellierung und Merkmalsdiagramm nahe gebracht. Aufbauend auf diesen Grundlagen erfolgt im zweiten Teil eine Hands-on-Demonstration wie ein Software-Generator mit Hilfe eines OpenSource-Frameworks aufgebaut und Schritt für Schritt weiterentwickelt werden kann. Als Abschluss wird die Frage beantwortet, wie sich eine bestehende Applikation in einen Software-Generator umwandeln lässt.

Wiki ausgedruckt?

10 praxistaugliche Tipps für eine Architekturdokumentation

Stefan Zörner

oose Innovative Informatik GmbH
A34 Donnerstag, 6. 9., 15:40 – 16:50 Uhr Do de PDF

„Füllen Sie diese tolle Vorlage aus, dann vergessen Sie garantiert nichts. Verwenden Sie UML! Ist standardisiert, versteht jeder ...“

Mit solch eines Beraters würdigen Hinweisen wird man in diesem Vortrag verschont. Stattdessen gibt es echtes Erfahrungswissen zum Festhalten einer Software-Architektur. Welche Ziele können damit verfolgt werden? Was gehört unbedingt rein? Welche Werkzeuge und Notationen haben sich bei Erstellung und Pflege bewährt? Und welche bei der Kommunikation im Team und an Dritte? Und vielleicht soll ja wirklich etwas ausgedruckt werden ...

Algorithmen züchten

Simulierte Evolution im Einsatz als Optimierungsverfahren

Heiko Spindler

P12 Dienstag, 4. 9., 11:20 – 12:30 Uhr Di de PDF

Die Evolution ist ein erstaunlich effizientes und schnelles Optimierungsverfahren. Immerhin hat es alle Lebewesen und auch uns quasi aus dem Nichts erschaffen. Mit simulierter Evolution kann man das Prinzip auf viele andere Aufgabenstellungen übertragen.

Wie das funktioniert, zeigt der Vortrag an mehreren konkreten und unterhaltsamen Live-Beispielen, wie das Züchten eines Algorithmus. Zusätzlich werden die Grundlagen aus Sicht der Biologie und Mathematik vorgestellt. Die Implementierung wird anhand des Java-Frameworks JPGA an Code-Beispielen demonstriert.

Fählerprevention

Vom Umgang mit Komplexität in der Software-Entwicklung

Joachim Hofer

imbus AG
P14 Dienstag, 4. 9., 15:40 – 16:50 Uhr Di de PDF

Beim Entwickeln komplexer Systeme kommt es naturgemäß zu Fehlern.

Dieser Vortrag vermittelt Techniken, um die Zahl dieser Fehler von vorneherein gering zu halten. Die grundsätzliche Methode dabei ist, Komplexität – wo es möglich ist – zu reduzieren und – wo nicht – einzugrenzen. Neben technischen wird dabei auch auf systemtheoretische und psychologische Aspekte eingegangen. Konkrete Beispiele illustrieren die vorgestellten Techniken.

Schatzsuche

In-House-Bibliotheken identifizieren und fördern

Dr. Malte Clasen

adesso AG
P15 Dienstag, 4. 9., 17:20 – 18:30 Uhr Di de PDF

Software-Entwickler erleichtern sich gerne ihre tägliche Arbeit. Dabei entstehen vielfältige Hilfsmittel, von Shell-Skripten über einzelne Klassen bis zu ganzen Bibliotheken. Diese sind allerdings meist nur dem ursprünglichen Entwickler und seinem engeren Umfeld bekannt.

In diesem Vortrag wird anhand eines Beispiels gezeigt, wie man dieses Wissen und die zugehörigen Implementierungen findet und für ein größeres Publikum nutzbar machen kann.

Continuous Bugfixing

Wie man statische Code-Analyse einführt

Holger Thom

main GmbH
P21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Statische Code-Analyse mit Tools wie FindBugs, PMD oder CheckStyle sind das Mittel der Wahl, um Fehler zu finden, noch bevor der Code ausgeführt wird. Die Konzepte, die bei mittlerer Projektgröße gut funktionieren, lassen sich aber nicht eins zu eins auf Großprojekte übertragen. Eines der Hauptprobleme ist dabei, dass zwar die Tools der Wahl eingeführt wurden, aber keiner die Reports liest und die gemeldeten Fehler beachtet. Zu viele Informationen, zu viele Falschmeldungen, keine „für das Management geeignete“ und übersichtliche Aufbereitung der Reports. Alle Beteiligten „ermüden“ und verfolgen die gemeldeten Fehler nicht konsequent. Aber dann nützt auch das beste Tool der Welt nichts.

Im ersten Teil dieses Vortrags werden die Arbeitsweisen, Konzepte und Reporte der führenden OpenSource-Tools vorgestellt. Es wird auf die Vor- und Nachteile im Kontext von sehr großen Projekten eingegangen. Danach wird erläutert, wie statische Code-Analyse in einem Projekt eingeführt wurde, bei dem 10 Millionen „Lines of Code“ jede Nacht analysiert werden. Es wird gezeigt, wie man eine solch riesige Informationsmenge so aufbereitet, dass die Entwickler und Manager die gefundenen Fehler auf einen Blick erkennen und sie dann auch beheben können. Darüber hinaus werden die Visualisierung von Fehlern in Großprojekten, Trend-Analysen, Fehler-Landkarten, 3D-Visualisierung, Historisierung der Daten, die Umsetzung eines Code-Ownership-Konzepts, Sinn und Unsinn von E-Mail-Benachrichtigungen und der Aufbau eines Qualitätskreislaufs gezeigt. Ergänzend wird der Einsatz mehrerer Tools zur Analyse des Codes, die Festlegung des richtigen Rule-Sets, dynamische Rule-Sets und die Vermeidung von Falschmeldungen besprochen. Abschließend wird die Analyse in der IDE versus Analyse beim Build diskutiert und die Integration von JUNIT/CodeCoverage-Daten demonstriert.

Steter Tropfen ...

Eine Continuous Delivery Live-Demo

Daniel Arndt

codecentric AG

Bastian Spanneberg

codecentric AG
P23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Continuous Integration, Test Driven Development und diverse Tools zur Messung von Code-Qualität oder zur Ausführung von Akzeptanztests gibt es nicht erst seit Kurzem. Der nächste logische Schritt ist die Verbindung und Automatisierung dieser und weiterer Techniken um ein möglichst kontinuierliches Ausrollen von Bugfixes und neuen Features zu ermöglichen.

Am Beispiel einer Java-basierten Web-Anwendung wird gezeigt, wie ein möglicher Technologie-Stack zum Aufbau einer Deployment-Pipeline aufgebaut und wie damit Continuous Delivery umgesetzt werden kann. Dabei kommen Technologien wie Jenkins (Continuous Integration, Pipeline), JBehave (Akzeptanztests), Vagrant und Puppet (Virtualisierung und Provisionierung), Sonar (Qualitätsanalyse), Jmeter (Performanztests) und Liquibase (DB-Migrationen) zum Einsatz. Ziel ist es, in der zur Verfügung stehenden Zeit das komplette Szenario, von der neuen Anforderung über die konkrete Implementierung bis hin zum Livegang auf dem Produktionssystem, durchzuspielen und zu erläutern.

Die Welt ist (leider) kein Apfelmännchen

Von der Parallelisierung realen Codes und warum wir es tun müssen

Dr. Ulrich Hilburger

NÜRNBERGER Versicherungsgruppe
P24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Die Zeit, in der die Prozessoren parallel zu den immer höheren Anforderungen an Software-Systeme schneller wurden, ist leider vorbei. Im Gegenteil, die durchschnittliche Taktfrequenz von Prozessoren sinkt inzwischen wieder, wir werden aber dafür mit mehreren Prozessorkernen „entschädigt"“. Was für ein Computer-System mit mehreren gleichzeitig zu bearbeitenden Aufgaben noch Sinn macht, stellt den klassischen Entwickler vor eine große neue Aufgabe: Wie nutzt man die vielen Kerne für seine Anwendung, denn im Single-Thread-Betrieb mutiert klassische Software zur Schnecke!? Die Hersteller der IDEs und Compiler haben diesen Umstand lange Zeit verschlafen, denn eine vollautomatische Parallel-Optimierung gibt es auch heute noch nicht. Vor der Parallelisierung und vor „echten“ Anwendungen steht also eine eingehende Analyse des Codes und der Teilaufgaben. Dabei geht es um nicht weniger als einen Umbruch im Denken der Programmierer, ähnlich wie bei der Einführung der Objektorientierung.

In diesem Vortrag kann man sich von Beispielen inspirieren lassen und in eine rege Diskussion einsteigen, wohin die Reise geht.

(Persistenz-)Abenteuer gefällig?

Eine Expedition in den NoSQL-Dschungel

Carl Anders Düvel

Holisticon AG

Enno Thieleke

Holisticon AG
P25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Mit NoSQL eröffnet sich dem Entwickler eine spannende Welt: Völlig neue Konzepte und Optionen mit bisher so nicht dagewesenen Schnittstellen, aber auch mit jeder Menge Fragezeichen.

Zu Beginn unseres Vortrags wird daher eine Schneise in das Datenbank-Dickicht geschlagen, indem kurz einige wichtige Begriffe erläutern werden, wie CAP-Theorem, BASE, Consistent Hashing und Map-Reduce. Danach werden die verschiedenen neuen Spezies studiert, darunter ihre bekanntesten Vertreter Key/Value Stores, Document Stores, Graph DBs und Wide Column Stores. Dem unerschrockenen Entdecker wird abschließend noch einen Plan an die Hand gegeben, mit dessen Hilfe er den richtigen Datenbanktyp finden kann.

Träumen Roboter von elektrischen Schafen?

Spielerisch (besser) programmieren lernen mit Scalatron und Robocode

Joachim Hofer

imbus AG
P26 Mittwoch, 5. 9., 20:00 – 21:10 Uhr Mi de PDF

Laut „Pragmatic Programmer“ soll man jedes Jahr eine neue Programmiersprache lernen. Das ist sicher eine gute Idee, aber es stellt sich immer die Frage, anhand welcher Problemstellungen man sich mit möglichst viel Spaß und Motivation einarbeiten kann.

In diesem Vortrag werden dazu mit Scalatron und Robocode zwei Programmier-Frameworks vorgestellt. Mit Hilfe dieser Frameworks kann man in JVM-basierten oder .NET-basierten Sprachen Roboter-AIs programmieren, die dann im Wettbewerb gegeneinander antreten. Einfache Einstiegs-Roboter werden hierzu jeweils vorgestellt.

Testing untestable code

Ideen und Anregungen um Legacy Code ein Schnippchen zu schlagen

Stephan Hochdörfer

bitExpert AG
P31 Donnerstag, 6. 9., 09:40 – 10:50 Uhr Do de PDF

Die testgetriebene Entwicklung ist heutzutage ein weit verbreiterter Standard in der Welt der Software-Entwicklung. Allerdings existieren immer noch Alt-Anwendungen die aufgrund der internen Strukturen nicht vollständig automatisiert testbar sind. In machen Fällen gilt dies auch für Software die heutzutage neu entwickelt wird. Das automatisierte Testen ist vor allem dann nicht möglich, wenn es nicht gelingt einzelne Komponenten in vollständiger Isolation testen zu können. In solchen Fällen bleibt meist nur die Einführung von manuellen Testvorgängen. Diese sind zum Einen fehleranfällig und zum Anderen sehr aufwändig in der Umsetzung.

Der Vortag demonstriert einen möglichen Lösungsansatz durch die Einführung einer zusätzlichen Abstraktionsschicht. Mit Hilfe dieser Abstraktionsschicht lassen sich Teile von Alt-Anwendungen in testbare Komponenten transformieren ohne dabei den Original-Quellcode zu verändern.

Und bist du nicht willig, so brauch' ich Gewalt

Testen von Datenbank-Code

Jens Schauder

P32 Donnerstag, 6. 9., 11:20 – 12:30 Uhr Do de PDF ZIP

Ohne Datenbanken ist kaum eine Unternehmensanwendung denkbar. Leider machen gerade diese Datenbanken das Leben für Entwickler schwer, die die Notwendigkeit und den Sinn von automatisierten Tests erkannt haben. Datenbanktests gelten als langsam, instabil und schwer zu implementieren, sodass in vielen Projekten die Datenbankschicht ohne adäquate Tests auskommen muss.

Ausgehend von einem unwartbaren Monster von Datenbanktests wird gezeigt, wie daraus eine DSL für DB Tests wird. Und wie diese Tests performant ausgeführt werden können.

Echolot

Qualitätssicherung mit Sonar

Thomas Haug

MATHEMA Software GmbH
P33 Donnerstag, 6. 9., 14:00 – 15:10 Uhr Do de PDF

Das Messen und Kontrollieren von Qualität ist ein wichtiger Baustein zur Entwicklung von professioneller Software. Häufig kommt dies in Projekten zu kurz. Andererseits existieren in der Java-Welt eine Vielzahl von (frei verfügbaren) Werkzeugen zur statischen und dynamischen Code-Analyse. Aber eine konsolidierte Sicht auf die gemessenen Werte der Werkzeuge fehlt oft und führt unter anderem zu Mehrfachmessung der gleichen Metriken durch unterschiedliche Werkzeuge oder unterschiedlicher Interpretation der gleichen Metriken. Dies lässt sich nur durch ensprechenden Augenmerk vermeiden. Wesentlich schwieriger ist das Zusammenführen der gemessenen Werte aus den verschiedenen Werkzeugen zu einer konsolidierten Sicht, um aus dieser abzuleiten, an welchen Stellen des Systems Handlungsbedarf besteht. Ohne ein geeignetes Werkzeug ist diese Aufgabe aufwändig und somit kostenintensiv. Mit Sonar existiert ein freiverfügbares Werkzeug, das eine konsolidierte Sicht auf gängige Analyse-Werkzeuge im Sinne der Konfiguration und der Darstellung der Ergebnisse ermöglicht. Diese Konsolidierung erleichtert die Analyse des gemessenen Systems wesentlich und ermöglich somit schnell unter Berücksichtigung aller gemessenen Parameter zu entscheiden, ob und wo am System refaktoriert werden soll.

In diesem Vortrag wird demonstriert, wie Sonar aufzusetzen ist, welche Messgrößen gesammelt und auf welche Art visualisiert werden können. Hierzu wird exemplarisch ein Projekt in mehreren Iterationen gemessen.

Alles Gurke?

BDD mit Cucumber

Carl Anders Düvel

Holisticon AG

Roland Jülich

Holisticon AG
P34 Donnerstag, 6. 9., 15:40 – 16:50 Uhr Do de PDF

Wie stellt man eigentlich sicher, dass man die richtige Software entwickelt? Eine schwierige Aufgabe, die seit jeher die Software-Entwicklung begleitet. Wie versteht man den Kunden und wie macht dieser sich am Besten verständlich? Wie kommuniziert man die Requirements möglichst effizient mit allen Kollegen, die an der Entwicklung und am Testen beteiligt sind? Ach ja, dokumentieren muss man die Software auch. Und automatisch auf Akzeptanzkriterien testen.

Viele Anforderungen, für deren Bewältigung in diesem Vortrag das Behavior Driven Development (BDD) mit Cucumber vorschlagen wird. Anhand von zwei kleinen Szenarien aus einem realen Projekt wird zunächst illustriert, wie dabei "Specification-By-Example" als Methode hilft das richtige System zu spezifizieren. Im Anschluss wird gezeigt, wie man diese Spezifikation zielgerichtet mit Cucumber – einem Tool, das die Ruby-Community im Sturm erobert hat und mittlwerweile auch auf der JVM verfügbar ist – in funktionsfähige Software überführt. Dabei wird dargelegt, wie man aus den natürlichsprachlichen Beschreibungen automatisierte Akzeptanztests erzeugt, welche Erfahrungen mit dem Tool in Projekten gemacht wurde und wo beim Einsatz die Fallstricke lauern.

Einfach simpel

Granuläres .NET-Web-Development mit Nancy- und Simple.Data- Framework

Timothée Bourguignon

MATHEMA Software GmbH
N12 Dienstag, 4. 9., 11:20 – 12:30 Uhr Di de PDF

Nancy und Simple.Data sind zwei leichtgewichtige Frameworks für .NET, um Web-Applikationen zu implementieren und auf einfache Art und Weise mit Datenbanken zu verbinden.

Dieser Vortrag beleuchtet die Philosophie, die Konzepte und den Aufbau dieser beiden Frameworks. Hierbei werden in verschiedenen Demonstrationen, ausgehend von einem „Hallo Welt“-Beispiel bis hin zu einer Real-Life Web-Anwendung, die Objekte aus einer SQL-Datenbank als auch von NoSQL-Datenbanken abgefragt und die Fähigkeiten der beiden Frameworks gezeigt.

Das muss man wissen!

Windows 8 für Entwickler

Daniel Meixner

Microsoft Deutschland GmbH
N13 Dienstag, 4. 9., 14:00 – 15:10 Uhr Di de PDF

Windows 8 bietet jede Menge Neues, allem voran natürlich Metro Style, die Touch-optimierte Oberfläche, für die man eigene Apps schreiben kann. Dabei ist es fast egal, was man bisher programmiert hat, denn der Einstieg in die App-Entwicklung wird einem relativ leicht gemacht.

Dieser Votrag zeigt, was ein Entwickler für Windows-8-Apps wissen muss, an welcher Stelle es neue Konzepte gibt und was es mit der Windows Runtime auf sich hat.

Ab ins Web!

.NET-Anwendungen webfähig machen

Golo Roden

N15 Dienstag, 4. 9., 17:20 – 18:30 Uhr Di de PDF

Eine beliebige .NET-Anwendung Web-fähig zu machen, kann doch nicht so schwer sein – oder doch? Was in der Theorie nach keiner besonderen Herausforderung klingt, stellt sich in der Praxis ein klein wenig anders dar: WCF ist nicht so einfach zu konfigurieren wie gedacht, die ASP.NET Web-API ist doch komplizierter als geglaubt und die Frage des Hostings ungeklärt: IIS? WAS? Azure? Lokal? Selfhosting? ...?

Dass all das auch viel einfacher funktionieren kann, wird in diesem Vortrag gezeigt. Es wird das Manos-Framework vorgestellt, mit dem es ein Leichtes ist, jede x-beliebige .NET-Anwendung Web-fähig zu machen – sei es für REST-Services oder eine Web-basierte UI.

Jetzt geht's bis 11

Highlights in Visual Studio 11

Daniel Meixner

Microsoft Deutschland GmbH
N21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Nach dem umfassenden Erfolg von Visual Studio 2010 folgt mit dem Nachfolger „Dev11“ eine Version, die nicht nur mit spannenden Detailverbesserungen aufwartet sondern – wie auch der Vorgänger – insbesondere auch den Kollaborationsaspekt und Teamgedanken in der Software-Entwicklung aufgreift.

In diesem Vortrag erfährt man, wie die kommende Version von Visual Studio in Zukunft beim Entwickeln von Software unterstützen wird.

Metropol

Programming Windows 8 Metro-Style-Apps with JavaScript and WinRT

Rainer Stropek

N22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

With Windows 8 Microsoft will introduce a new technology for developing apps on their platform: WinRT – the Windows Runtime. WinRT bridges the gap between the Windows 8 operating system's SDK and higher level languages like C#, VB or even JavaScript. Microsoft's goal is to make developing Windows 8 metro-style apps with HTML5 and JavaScript feel natural to people familiar with these web technologies.

This talk is especially for web developers who want to learn how they can build upon their existing knowledge to create apps for Microsoft's coming new operating system and market place. In this session after a short overview about WinRT the WinRT architecture and the functionality it offers will be introduced. Based on this information it will be demonstrated how Microsoft's „Chakra“ JavaScript engine projects WinRT into the JavaScript language. It will be shown how to consume existing functionality from WinRT's library to e. g. access the underlying hardware of the Windows 8 tablet PC. In a second step the sample will be extended by creating a custom WinRT component in C++ and consuming it in JavaScript.

Die fünfte Generation

Das Entity Framework 5.0

Thomas Haug

MATHEMA Software GmbH
N24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Das Entity Framework 5.0 wird der nächste Major Release des Objekt-relationalen (OR) Mapping-Werkzeugs aus dem Hause Microsoft. Diese Version wird auf .NET 4.5 aufsetzen und weitere wichtige Neuerungen mitbringen, um den Anforderungen eines Enterprise-Anwendungstauglichen OR-Mappers gerecht zu werden, wie zum Beispiel Performance Optimierungen, Unterstützung von Enums usw.

In diesem Vortrag werden wird das Entity Framework 5.0 unter die Lupe genommen und insbesondere die Neuerungen gegenüber den 4.x-Versionen begutachten. Hierbei wird auch ein Blick auf NHibernate geworfen, um diesen mit dem Entity Framework 5.0 zu vergleichen.

Effizient Arbeiten in agilen Teams mit VS und TFS 2012

Neno Loje

N31 Donnerstag, 6. 9., 09:40 – 10:50 Uhr Do de PDF

Gerade in kleinen Teams geht es darum, sich ohne viel Bürokratie und Overhead zu organisieren, um beeindruckende Ergebnisse zu erzeugen. Die vierte Generation von Microsofts ALM-Plattform, dem Team Foundation Server, bietet speziell für kleine und mittlere Teams Werkzeuge zur Planung der Backlogs, Sprints und Tasks, um sich so auf die eigentlichen Aufgaben fokussieren zu können: der Umsetzung von Anforderungen in Software.

In diesem Vortrag wird das effiziente Arbeiten mit VS 11 und TFS 2012 vorgestellt.

Produktiver Entwickleralltag mit VS & TFS 2012

Neno Loje

N32 Donnerstag, 6. 9., 11:20 – 12:30 Uhr Do de PDF

In diesem Vortrag geht es um alle Neuerungen, die den Entwickleralltag direkt beeinflussen, konkret über den neuen Team Explorer, verbessertes Offline-Arbeiten, gemeinsame Code Reviews, u.v.m. Ein Muss für jeden Visual Studio & TFS-Nutzer.

Umzug

ASP.NET-WebForms-Elemente in MVC weiterverwenden

Dr. Malte Clasen

adesso AG
N34 Donnerstag, 6. 9., 15:40 – 16:50 Uhr Do de PDF

Über Jahre entwickelte ASP.NET WebForms-Anwendungen enthalten oft komplexe Controls und Pages. Das stellt für eine Migration auf ASP.NET eine Hürde dar, weil die dahinter liegende Eingabe- und Darstellungslogik oft nicht ausreichend spezifiziert und dokumentiert ist. Aber auch in Fällen mit guter Spezifikation ist der damit verbundene Implementierungsaufwand nicht zu unterschätzen.

In diesem Vortrag wird an einem Beispiel aus der Praxis gezeigt, wie man bestehende WebForms-Controls und -Pages in MVC-Anwendungen und -Layouts integriert und so innerhalb des neuen Frameworks nutzen kann.

Jetzt auch auf einem Server in Ihrer Nähe

JavaScript & node.js

Ralph Winzinger

Senacor Technologies AG
JS12 Dienstag, 4. 9., 11:20 – 12:30 Uhr Di de PDF

Der Vortrag gibt eine knappe Einführung in JavaScript und begutachtet darauf basierend das node.js Framework. Die JavaScript-Einführung beschränkt sich auf wesentliche Sprachkonstrukte bzw. Besonderheiten, die JavaScript konzeptionell von anderen Sprachen wie beispielsweise Java unterscheiden. Kleine Code-Beispiele sind natürlich inklusive. node.js wird zuerst aus der technologischen Perspektive begutachtet und geklärt, was an node.js so anders und weshalb die Performanz so gut ist. Nachdem die theoretische Basis gelegt ist, wird das Ganze anhand einer kleinen Anwendung Schritt für Schritt mit Praxis unterfüttert. Natürlich wird auch das eine oder andere Framework erwähnt, das sich inzwischen im Bereich node.js etabliert hat.

JavaScript goes Enterprise

Mit JavaScript Business-Anwendungen erstellen

Stefan Hildebrandt

consulting.hildebrandt.tk
JS14 Dienstag, 4. 9., 15:40 – 16:50 Uhr Di de PDF

Bei der Entwicklung von Web-Anwendungen bietet sich JavaScript als Sprache für den Client an, da außer dem Browser keine weitere Ausführungsumgebung benötigt wird. Um größere Anwendungen mit JavaScript zu erstellen, die auch noch Jahre später evolvierbar sind, sollte man die Best Practices und Standards im Bereich JavaScript kennen.

In dem Vortrag wird das Programmiermodel für Web-Anwendungen vorgestellt. Hier sind zwei Punkte hervorzuheben: Trennung von View (HTML) und JavaScript-Code (Controller, Model) sowie die Ausführung von Unit-Tests. Die Umsetzung dieser Aspekte wird mit aktuellen Frameworks verdeutlicht, sodass ein Eindruck von der Vorgehensweise entsteht.

Building Performance

Client-seitige Performance-Optimierung automatisiert sicherstellen

Oliver Ochs

Holisticon AG
JS15 Dienstag, 4. 9., 17:20 – 18:30 Uhr Di de PDF

Die Geschwindigkeit einer Web-Site ist entscheidend für den Umsatz mitverantwortlich. Ein wesentlicher Faktor hierbei sind die Zeiten für das Laden und Rendern von Seiten im Browser. Steve Souders zeigte z. B., dass ca. 80% der Ladezeit einer Seite im Client verbraucht werden.

Im ersten Teil des Vortrags werden die wichtigsten Optimierungsmaßnahmen vorgestellt. Für eine dauerhafte, nachhaltige Performance-Optimierung müssen die Maßnahmen automatisiert bzw. in den Build-Prozess integriert werden. Im zweiten Teil des Vortrags wird ein beispielhafter Build-Prozess für Java Web-Anwendungen gezeigt, der Teile der Optimierungsmaßnahmen durchführt. Andere Teile müssen durch eine geeignete Architektur sichergestellt werden, wofür ebenfalls Ideen geliefert werden.

Scriptease

Was Sie schon immer über JavaScript wissen wollten, aber bisher nicht zu fragen wagten

Golo Roden

JS21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Guten JavaScript-Code zu schreiben, ist gar nicht so schwer – wenn man weiß, worauf man achten muss und warum. Selten genutzte Schlüsselwörter wie void, Sinn und Unsinn von Konstruktorfunktionen und unverstandene Features wie Variable Hoisting sind nur einige wenige Beispiele.

Der Vortrag macht einen Rundflug über die wenig bis gar nicht bekannten Bereiche von JavaScript und erläutert, warum sich die Sprache derart verhält. Nach diesem Vortrag kennt man nicht nur einige Sprach-Features besser, sondern kann insbesondere auch deren Konsequenzen und Nebenwirkungen besser einschätzen.

Der dunkle Ritter

Das Batman.js Framework

Andreas Schubert

MATHEMA Software GmbH
JS23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de

Mit CoffeeScript gibt es eine interessante Sprache, die nach JavaScript übersetzt wird. In der letzten Zeit entstehen rund um CoffeeScript einige sehr interessante Projekte. Das Model-View-Controller-Framework Batman.js ist eines davon. Es basiert auf Node.js und ermöglicht auf einfache Art und Weise, Rich Web-Applikationen zu entwickeln. Batman.js stellt ein mächtiges System mit sogennanten „View Bindings“ und „Observable Properties“ bereit, die den Code kurz und selbsterklärend halten.

In diesem Vortrag wird per „Live-Coding“ Batman.js anhand einer kleinen Demo-Applikation vorgestellt.

Der vergessene Code

JavaScript in Java-Projekten

Stefan Hildebrandt

consulting.hildebrandt.tk
JS25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Bei der Entwicklung von Web-Anwendungen mit Java wird immer häufiger auch JavaScript-Code erstellt. Für den JavaScript-Code sollten dann auch die gleichen Qualitätskriterien gelten wie für den Java-Code. Seit langem gelten als Standard ein reproduzierbarer Build, die Unit-Tests und ggf. eine statische Code-Analyse. Idealerweise werden diese in den Build-Prozess für den Java-Anteil eingebunden.

In diesem Vortrag werden die Projektstruktur, typische Build-Schritte – wie Zusammenfassung und Kompression – und die Ausführung von Tests mit Gradle und Maven vorgestellt.

Verbindungsprobleme

Offline Web-Anwendungen

David Tanzer

JS32 Donnerstag, 6. 9., 11:20 – 12:30 Uhr Do de PDF

HTML bietet Anwendungsentwicklern mittlerweile so viele Möglichkeiten, dass ein Rich Client oft gar nicht mehr in Betracht gezogen wird. Selbst wenn der Benutzer auch offline arbeiten muss, ist es oft möglich, das mit einer reinen Web-Anwendung zu gewährleisten.

In diesem Vortrag wird gezeigt, wie man ein einfaches Web-Formular mit Hilfe von „Offline Web Applications“ und „Indexed Database API“ auch offline verfügbar machen kann.

Mind the gap

Mobile Entwicklung mit PhoneGap und jQuery Mobile

Werner Eberling

MATHEMA Software GmbH
JS33 Donnerstag, 6. 9., 14:00 – 15:10 Uhr Do de PDF

In keinem Bereich der Software-Entwicklung scheinen gerade so viele neue Projekte aus dem Boden zu sprießen, wie bei der Entwicklung für mobile Endgeräte. Doch sobald mehrere Plattformen adressiert werden sollen, kämpfen diese Projekte mit der Heterogenität der mobilen Welt.

Dieser Vortrag zeigt anhand von vorgeführten Beispielen (auf Android und iOS) welche Möglichkeiten PhoneGap und jQuery Mobile für die mobile Entwicklung (unabhängig vom eingesetzten System) bieten und wie auf dieser Basis ein Multiplatform-Projekt aufgesetzt werden kann.

HTML5, JavaScript und der ganze REST

Multi-Channel-Architekturen für Enterprise-Entwickler

Norman Erck

Holisticon AG
JS34 Donnerstag, 6. 9., 15:40 – 16:50 Uhr Do de PDF

Die Herausforderungen bei Single Page Applikationen (SPA), Mobile Apps und anderen modernen Anwendungen, die auf HTML5 und JavaScript basieren, liegen im Frontend darin, die Anwendungslogik, Modelle und Darstellung in eine geeignete Struktur zu bringen. Und dabei muss darauf geachtet werden, dass sich nicht alle Endgeräte gleichen. Schnittstellen zum Server werden meist über REST-basierte Services bereitgestellt, die in eine Unternehmensinfrastruktur eingefügt werden müssen. Dazu gilt es, eine Ressourcen-orientierte API in ein prozess- bzw. Service-orientiertes Backend zu integrieren.

Ausgeschlafen?

Mit BPMN Integrationsprozesse bereichern

Dr. Volker Stiehl

SAP AG
B12 Dienstag, 4. 9., 11:20 – 12:30 Uhr Di de PDF

Business Process Model and Notation (BPMN) als Programmiersprache für Integrationsprozesse – passt denn das? Oh ja, und wie das passt! BPMN wurde bisher primär aus der Brille von Fachabteilungen gesehen und zur Modellierung von Fachprozessen eingesetzt. Kein Wunder, schließlich hat sie ja dort auch ihren Ursprung. Doch welche Möglichkeiten BPMN für Java-Programmierer insbesondere für die Implementierung von Integrationsprozessen bereithält, ist vielfach unbekannt.

In diesem Vortrag wird also gezeigt, welches enorme Potenzial gerade in diesem Einsatzbereich in der BPMN schlummert. So wird demonstriert, wie überraschend vielseitig BPMN (gerade auch in Kombination mit Java) einsetzbar ist und wie sie auch bei der Umsetzung von Integrationsanforderungen behilflich sein kann.

Apache Buildr

Die Mavenalternative

Tammo van Lessen

innoQ Deutschland GmbH
B13 Dienstag, 4. 9., 14:00 – 15:10 Uhr Di de PDF

Viele Java-Entwickler verbindet eine Hassliebe mit Maven. Apache Buildr ist ein Ruby-basiertes Build-System für Java-Anwendungen und stellt eine gute Alternative zu Maven dar. Es verbindet dessen Vorteile mit einer leichtgewichtigen und anpassbaren DSL, ist sehr leicht erweiterbar und ist fast doppelt so schnell wie Maven.

In diesem Vortrag werden die Konzepte von Apache Buildr anhand von Beispielen vorgestellt.

Gemeinsam sind wir stark

BPMN und Camel

Dr. Daniel Lübke

innoQ Schweiz GmbH

Martin Huber

innoQ Deutschland GmbH
B14 Dienstag, 4. 9., 15:40 – 16:50 Uhr Di de PDF

Mit der Business Process Execution Language (BPEL) und nun zunehmend auch mit Business Process Modeling and Notation 2 (BPMN2) werden Geschäftsprozesse in eigenen Business Process Management-Systemen (BPMS) ausgeführt. Dabei übernimmt das BPMS die Ausführung und Verwaltung langläufiger Prozessinstanzen sowie die Versionierung von Prozessmodellen. Allerdings sind Prozesse typischerweise sehr langläufig, sodass benutzte (Web-)Services in der zum Deployment aktuellen Version über lange Zeiträume vorgehalten werden müssen. Sollten diese Services sich ändern, müssen Adapter geschrieben werden, die Datenformate ineinander übersetzen. Hier bietet sich Apache Camel an, das auf einfache Art und Weise erlaubt, Transformationsketten zu definieren. Apache Camel bietet somit einen pragmatischen Weg Geschäftsprozessautomatisierungsprojekte sinnvoll zu ergänzen und so zu einer langfristig laufenden und einfacher wartbaren Lösung beizutragen.

In diesem Vortrag werden einige Grundlagen zu BPMN und Apache Camel erläutert und gezeigt, wie man ein BPMS mit einem Integrations-Framework kombinieren kann, um den Herausforderungen in einem BPM-Projekt zu begegnen.

Rocking the Gradle

Build-Automatisierung mit Gradle

Hans Dockter

Gradleware GmbH
B16 Dienstag, 4. 9., 20:00 – 21:10 Uhr Di de PDF

Gradle ist der neue Stern am Himmel der Open-Source-Build-Systeme. Mit Gradle lässt sich der Build und die sonstige Automatisierung elegant an die projektspezifischen, unvorhersehbaren Anforderungen anpassen und standardisieren. Anhand vieler Live-Beispiele wird ein Einblick in die Konzepte und die Anwendung von Gradle gegeben. Dabei werden auch viele einzigartige Funktionen gezeigt, die in der letzten Zeit zu Gradle hinzugefügt wurden. Die Teilnehmer dürfen sich auf elegante Build-Skripts, noch schnellere Builds und innovative Features freuen.

Build-Dreikampf

Ein Vergleich zwischen Ant, Maven und Gradle

Carl Anders Düvel

Holisticon AG

Sven Bunge

Holisticon AG
B22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Beim Thema Build-Tool herrscht in der Java-Community nach wie vor keine Einigkeit. Neben dem Urgestein Ant und dem ebenso schon sehr lange etablierten Maven gibt es mit Gradle jetzt noch ein weiteres Werkzeug, das sehr viele Anhänger gewonnen hat. Bei dieser Auswahl stellt sich natürlich die Frage nach dem optimalen Kandiaten für das eigene Projekt: Welche Unterschiede bestehen zwischen den Tools? Was sind Stärken bzw. Schwächen? Lohnt ein Umstieg oder sind die Kosten für eine Migration höher als der eigentliche Nutzen?

Diese Fragen werden im Rahmen des Vortrags beleuchtet und versucht eine Entscheidungshilfe zu geben.

Besser Gits nicht

Best Practices mit GIT

Martin Dilger

PENTASYS AG
B24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Der Vortrag bietet einen Überblick über Best Practices bei der Verwendung mit GIT. Hierbei wird kurz auf die grundsätzliche Funktionsweise von GIT und anschließend auf Best Practices direkt aus der Praxis und der täglichen Arbeit mit GIT eingegangen. Unter anderem wird vorgestellt, wie Commits sauber strukturiert werden können, wie erfolgreich mit GIT-Branches gearbeitet werden kann und vor allem wie man Spaß bei der Arbeit mit GIT haben kann.

Ziel des Vortrags ist es, Entwicklern die Arbeit mit GIT zu erleichtern und nützliche Werkzeuge vorzustellen, die die tägliche Arbeit sehr vereinfachen. Der Vortrag ist interaktiv, Fragen sind sehr erwünscht und eine gute Portion GIT garantiert.

Maven hasst mich!

... und wie ich mich räche

Mirko Zeibig

IST GmbH
B31 Donnerstag, 6. 9., 09:40 – 10:50 Uhr Do de PDF

Maven ist heute in vielen Java-Projekten „gesetzt“. Das es sich durchgesetzt hat, heißt jedoch nicht, dass es besonders gut ist. So wird der Eine oder Andere in seinen Projekten jeden Tag mit den Ärgernissen von Maven konfrontiert.

In diesem Vortrag wird gezeigt, was einen an Maven besonders ärgern kann und was man dagegen (bzw. stattdessen) tun kann. Dabei wird der Schwerpunkt nicht auf „Best Practices“ gelegt, denn es gibt ja eine Welt jenseits von Maven.

Agitation

Warum Sie auf Subversion verzichten sollten

Lars Hupel

B33 Donnerstag, 6. 9., 14:00 – 15:10 Uhr Do de PDF

Trotz seit längerem bekannter Unzulänglichkeiten wird im Unternehmensumfeld noch zu oft Subversion als verteiltes Versions-Kontroll-System (DVCS) verwendet, während Git in der OpenSource-Entwicklung längst unabdingbar geworden ist.

Der Vortrag gibt für DVCS-Neulinge einen Überblick über die Terminologie und Konzepte von Git und demonstriert, wie ein unternehmensfreundlicher Workflow umgesetzt werden kann. Hierbei ist die Integration von Code Review – in diesem Vortrag mittels Gerrit – besonders interessant. Dieser Vortrag dient nicht zur Einführung in Versionierungskonzepte und soll auch kein Git-Tutorial sein. Stattdessen werden ausgewählte interessante Funktionalitäten vorgestellt, die helfen sollen, die Entscheidung für Git zu erleichtern.

Java SE 8 & Beyond

Dalibor Topic

ORACLE Deutschland B.V. & Co. KG
J12 Dienstag, 4. 9., 11:20 – 12:30 Uhr Di de PDF

Seit dem aktuellen Release von Java SE 7 tut sich wieder was auf der Java-Plattform, was den Bedürfnissen der Entwickler bei den sich ständig ändernden Anforderungen der Plattformen und Applikationen sehr entgegenkommt.

In diesem Vortrag wird deshalb kurz über die aktuellen Entwicklungen in Java SE 7 und dem Java Community Process (JCP) gesprochen, bevor es um die geplanten Features in Java SE 8 gehen wird. Darüber hinaus wird skizziert, wie die wichtigsten Ideen von Oracle für Java SE 9 und darüber hinaus aussehen. Abschließend wird noch ein Blick auf die Features geworfen, die in zukünftige Versionen von Java einfließen könnten – bis hin zu Java SE 12.

OSGi Mars World in Action

OSGi heißt Modularität, Komponenten und Services in Java

Christian Baranowski

SEITENBAU GmbH
J13 Dienstag, 4. 9., 14:00 – 15:10 Uhr Di de PDF

Durch eine OSGi-Modularisierung ergeben sich die folgenden Vorteile: Service-orientierte Programmiermodelle durch OSGi-Services; Dynamische Software-Komponenten mit OSGi-Declarative Services; Lose Kopplung und Trennung von Service-API und Implementierung; Koexistenz von mehreren API- und Implementierungs-Versionen; Dynamik und dynamische Erweiterung von Funktionalitäten zur Laufzeit; usw. Darüber hinaus können auch klassische Java EE-Technologien in OSGi genutzt werden, beispielsweise JPA oder Java Web-Anwendungen (WARs).

Der Vortrag zeigt spielerisch, anhand einer 3D Robot-Simulation, welche Vorteile man durch die Modularisierung mit OSGi und einem Service-orientierten Programmiermodell gewinnt. Der Vortrag richtet sich in erster Linie an Java- und Java EE-Entwickler, die bisher noch wenig oder keine Erfahrung mit dem OSGi-Framework gesammelt haben. Es wird anhand dieser Anwendung gezeigt, wie sich das Programmiermodell von einer klassischen Java-Anwendung in eine modularisierte OSGi-Anwendung ändert. Darüber hinaus wird in der vorwiegend live gezeigten Demo wird mit den Eclipse-Bndtools demonstriert, wie man schon bei der Entwicklung durch Modularisierung profitieren kann.

Ride the Camel like a Pro

Fortgeschrittene Integrationsfälle gelöst mit Apache Camel

Martin Huber

innoQ Deutschland GmbH
J15 Dienstag, 4. 9., 17:20 – 18:30 Uhr Di de

Apache Camel ist ein Integrations-Framework basierend auf Java. Apache Camel ist mit seiner Vielzahl an Integrationsmöglichkeiten zu einem mächtigen Tool herangewachsen. Dabei muss man nicht immer gleich an ESBs denken, wenn es um Integration geht. Man findet schnell einige Anwendungsfälle für Apache Camel, deren Lösung mit Bord-Mitteln in der Java-Welt unweit schwieriger zu lösen wären.

Neben einer kurzen Einführung in die „Philosophie der Kamele“ werden in diesem Vortrag einige fortgeschrittene Anwendungsfälle behandelt, in denen sich der Einsatz eines Integrations-Frameworks als vorteilhaft erweist. Dazu werden auch reale Code-Beispiele in Camel durchgesprochen, die die pragmatischen Lösungsansätze veranschaulichen.

Roboter-Baukasten

Einführung in Android

Manfred Borzechowski

LambdaLogic Informationssysteme GmbH
J16 Dienstag, 4. 9., 20:00 – 21:10 Uhr Di de PDF

Obwohl erst seit 2008 am Markt, liegt das Smartphone-Betriebssystem von Google in der Käufergunst ganz weit vorne. Auch der Java-Entwickler kann sich an offenen Quellen, reichhaltigen APIs und der einfachen Einbindung in die Geräte-Infrastruktur erfreuen.

Dieser Vortrag zeigt anschaulich, wie man mit dem Android-SDK und Eclipse-Apps für ein Android-Smartphone entwickelt, welchen Konzepten man dabei begegnet und welche Möglichkeiten es gibt, Daten und Funktionen mit anderen Apps auszutauschen.

Schlankheitskur

Lean Web Architecture mit JSF 2.0, CDI & Co.

Andreas Hartmann

adesso AG
J21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendung realisieren – wenn man weiß wie.

Anhand des Technologiestacks aus JSF2, CDI, Lombok, HTML 5, JQuery und Spring Data wird innerhalb dieses Vortrags eine leichtgewichtige Architektur anhand von anschaulichen Anwendungsbeispielen vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird.

Web-Anwendungen auf Klick

Web-Programmierung mit Apache Click

Rustam Khakimov

MATHEMA Software GmbH
J22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Apache Click ist ein JEE-Web-Application-Framework, das die Entwicklung von Web-Anwendungen durch eine „natürliche“ Rich-Client-Programmierungsweise wesentlich erleichtert. Apache Click verwendet statt MVC und JSP ein Event-basiertes Programmiermodel in Verbindung mit HTML-Templates und Plain Old Java Objects (POJOs). Das Framework hat eine IDE-Unterstützung und bietet eine Mock-API für testgetriebene Entwicklung.

Der Vortrag stellt das Framework vor und zeigt an Beispielen, wie Web-Anwendungen mit Apache Click entwickelt werden können.

Wolkenheim

Cloud mit Java konkret

Eberhard Wolff

adesso AG
J23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Verschiedene Cloud-Technologien buhlen um die Aufmerksamkeit der Java-Entwickler.

Dieser Vortrag gibt einen Überblick über die verschiedenen Technologien. Neben Angeboten aus dem Public-Cloud-Bereich wie Amazon, Cloud Foundry oder Google App Engine wird auch gezeigt, wie Cloud-Umgebungen im eigenen Rechenzentrum realisiert werden können. Im Mittelpunkt dieses Szenarios stehen Systeme zur automatisierten Installation wie Chef und Virtualisierungslösungen.

Spielend leicht

Einführung in das Play!-Framework

Frank Goraus

MATHEMA Software GmbH
J24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Das Play-Framework ist ein noch recht unbekanntes Web-Framework. Es bringt einige interessante Ansätze mit und will außerdem Spaß beim Entwicklen bieten – bei gleichzeitiger hoher Produktivität, indem zum Beispiel lästige Deployment-Zeiten entfallen. Dabei kombiniert es unter anderem „Groovy“-ge Ansätze mit klassichem Java und bietet ab Version 2.0 auch nativen Scala-Support.

Deshalb heißt es in diesem Vortrag: Let's have a look and let's play!

Symbiose

Wie passen JavaEE und OSGi zusammen?

Frank Pientka

MATERNA GmbH
J25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Apache Geronimo steht mit seinem modularen Plugin-Konzept für eine neue Generation von Java-EE-Anwendungs-Servern.

Im Vortrag werden der zertifizierte Anwendungsserver Geronimo 3.0, das ARIES-Framework und Konzepte für das Deployment von OSGi-Anwendungen vorgestellt. Als Beispiel dient eine Blog-Anwendung mit JPA 2.0 und OSGi 4.2. Dabei wird die Frage beantwortet, wie JavaEE und OSGi zusammen passen können.

Polyplex

Programmieren für C, CLR und JVM

Michael Wiedeking

MATHEMA Software GmbH
J26 Mittwoch, 5. 9., 20:00 – 21:10 Uhr Mi de

Unterschiedliche Probleme – so scheint es – brauchen unterschiedliche Programmiersprachen. Die domänenspezifischen Sprachen (DSLs) und die dafür existierenden (Meta-)Werkzeuge unterstreichen diese Vermutung. Was wäre denn, wenn es eine Sprache gäbe, die man um eigene, auch domänenspezifische Features erweitern könnte? Die ALx-Programmiersprachenfamilie adressiert dieses Problem und bietet deshalb – neben vielen anderen nützlichen Eigenschaften – eine erweiterbare Syntax.

Dieser Vortrag stellt die ALx-Sprachfamilie vor, zeigt deren wichtigsten Charakteristika und demonstriert, wie man damit sicherer und effizienter für so unterschiedliche Plattformen wie C, CLR und JVM programmieren kann.

Lucky Seven

Java Enterprise Edition 7

Wolfgang Weigend

ORACLE Deutschland B.V. & Co. KG
J31 Donnerstag, 6. 9., 09:40 – 10:50 Uhr Do de PDF

Bereits seit fünfzehn Monaten existiert das JDK 7 und rechtzeitig vor dem JDK 8 in 2013 soll sich die Java Enterprise Edition 7 (Java EE 7) der angestrebten Ziellinie im Sommer 2013 nähern und ihre Merkmale innerhalb der Plattform-as-a-Service (PaaS)-Schicht herausstellen. Neu zu definierende Rollen müssen an das PaaS-Modell angepasst werden. Die Einführung von Metadaten ist erforderlich, zur Service-Provisionierung und Konfiguration, für die Service-Qualität und Elastizität, zur gemeinsamen Nutzung von Anwendungen und Ressourcen und schließlich zur Umkonfiguration und Anpassung sind Metadaten notwendig. Einige nützliche Schnittstellen sind für die PaaS-Umgebung ebenfalls zu ergänzen: JAX-RS Client API, Caching API, State Management, JSON und andere APIs. Zwingendermaßen müssen die APIs erweiterbar sein, wenn sie mandantenfähig ausgelegt sein sollen.

In diesem Vortrag werden die folgenden Java EE 7-Spezifikationen genauer betrachtet: Plattform 7 / Web Profile 7, JPA 2.1, JAX-RS 2.0, EJB 3.2, JMS 2.0, Servlet 3.1, EL 3.0, JSF 2.2, CDI 1.1, Bean Validation 1.1, JCache 1.0 (JSR 107), Concurrency Utilities 1.0, State Management 1.0, Batch Processing 1.0, JSON 1.0, Common Annotations 1.2 MR, JAX-WS 2.3 MR, JTA 1.2 MR, JSP 2.3! MR und JASPIC 1.2 MR.

Freundliche Eindringlinge

Moderne Web-Applikationen mit CDI

Norman Erck

Holisticon AG
J32 Donnerstag, 6. 9., 11:20 – 12:30 Uhr Do de PDF

Was bis jetzt nur mit der Unterstützung von Frameworks wie Spring möglich war, möchte EJB 3.1 nun auch allein können: typsichere Dependency Injection von Managed Beans aller Art innerhalb von Java?Kontexten, die über einen eigenen Lebenszyklus verfügen. Möglich macht es die „Contexts and Dependency Injection for Java EE“ (CDI).

Dieser Vortrag stellt die neuen Konzepte und Sprachmittel, die dem Entwickler mit CDI zur Verfügung stehen, an einer durchgängigen Beispielanwendung vor, in deren Rahmen Dependency Injection, Qualifier, Scores und Contexts, Interzeptoren sowie Dekoratoren, Events und Produzenten vorgestellt werden. Neben einer Demo der Beispielapplikation „Friendly Invaders“ wird auch ein Ausblick auf die Konzepte gegeben, welche die neue Version Weld 2.0, die derzeit noch im Alpha-Status ist, den Entwicklern zur Verfügung stellt.

Moment, ich verbinde!

EAI mit Spring Integration

Joachim Weinbrenner

jsolutions
J33 Donnerstag, 6. 9., 14:00 – 15:10 Uhr Do de ZIP

Mittlere oder größere IT-Projekte beschränken sich selten auf eine isolierte Anwendung. Stattdessen gilt es, verschiedene Applikationen miteinander zu verknüpfen und Daten zwischen diesen auszutauschen. Die grundlegenden Herausforderungen sind dabei die unterschiedliche
Daten-Repräsentation und die Implementierung der einzelnen Applikationen, Änderungen in den Applikationen sowie die Unzuverlässigkeit von Netzwerken. Mit den Enterprise Integration-Patterns haben Gregor Hohpe und Bobby Woolf das Fundament für eine Message-basierte Integration verschiedener Systeme geschaffen. Spring Integration ist eine leichtgewichtige Implementierung der Enterprise Integration-Patterns, die ein Messaging für Java-Anwendungen mit nahezu grenzenlosen Anbindungsmöglichkeiten ermöglicht.

Der Vortrag gibt eine praxisnahe Einführung in Spring Integration und zeigt, wie einfach lose gekoppelte Systeme erstellt werden können. Dabei wird auf die wesentlichen Komponenten Message, Message Channel, Message Endpoint, Channel Adapter und Message Router eingegangen.

Aber sicher!

Javas Pluggable Types

Michael Wiedeking

MATHEMA Software GmbH
J34 Donnerstag, 6. 9., 15:40 – 16:50 Uhr Do de

Mit Hilfe eines Typs kann viel mehr erreicht werden, als sicher zu stellen, dass nur verträgliche Objekte einander zugewiesen oder an entsprechende Methoden übergeben werden. Im Grunde kann man jede beliebe Eigenschaft an das Typsystem koppeln und diese in Bezug auf ihre gegenseitige Verträglichkeit schon zur Übersetzungszeit prüfen.

In diesem Vortrag wird gezeigt, was man mit den Typsystemerweiterungen erreichen kann, die mit Java 8 standardmäßig verfügbar sein werden. Dabei wird kurz angerissen, welche Vor- und Nachteile und welche Aufwände dabei entstehen und wie man selbst mit Hilfe der Pluggable Types das Typsystem erweitern kann.

Leitern mit Stil

Eine Einführung in ScalaFX

Phillipp Dörfler

imbus AG
S13 Dienstag, 4. 9., 14:00 – 15:10 Uhr Di de PDF

Totgesagte leben länger. Auf JavaFX 1 könnte das durchaus zutreffen, denn zumindest tot ist es mit Sicherheit. Der vielversprechende Nachfolger JavaFX 2 hat ambitionierte Verbündete und schafft somit möglicherweise die Reinkarnation: Die beiden DSLs ScalaFX und GroovyFX streben danach, in die Fußstapfen von JavaFX Script zu treten.

Wie gut das gelingt, verrät dieser Vortrag: Nach einer kurzen Einführung in JavaFX 2 stehen die Unterschiede zwischen der Java API, ScalaFX und GroovyFX im Vordergrund. Anhand praktischer Beispiele werden die Stärken und Schwächen beider DSLs beleuchtet und Lösungen für einige interessante Probleme entwickelt. Grundlegende Kenntnisse in Scala werden empfohlen.

Gang of Many

Funktionale Entwurfsmuster in Scala

Lars Hupel

S14 Dienstag, 4. 9., 15:40 – 16:50 Uhr Di de PDF

Das sogenannte „Gang Of Four“-Buch ist jedem OO-Programmierer ein Begriff, denn darin werden die gängigsten Entwurfsmuster im objektorientierten Design vorgestellt. Hinzu kommen oft genutzte Technologien wie z. B. Dependency Injection, die in fast allen größeren Projekten anzutreffen sind. Oftmals werden dadurch fehlende Sprach-Features oder selbstgemachte Probleme ausgeglichen. Beim genaueren Hinsehen entpuppen diese sich oft als simpel zu lösen – zumindest in funktionalen Sprachen, denn dort sind andere Abstraktionsebenen möglich, ohne den Sprachumfang zu verlassen.

In diesem Vortrag werden ausgewählte Patterns aus dem Standardwerk anhand von Beispielen erläutert und mit funktionalen Lösungen verglichen. Darüber hinaus werden auch Entwurfsmuster gezeigt, die Schwächen von funktionalen Sprachen (wie beispielsweise die begrenzte Stack-Größe) ausgleichen.

Monaden

Die nächste Herausforderung der funktionalen Welt

Nicole Rauch

msgGillardon AG
S22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Funktionale Sprachen sind derzeit in aller Munde, und Scala entwickelt sich zum nächsten großen Hype. Gleichzeitig basieren funktionale Sprachen auf verschiedenen Konzepten, die für viele Entwickler unbekannt, aber in der funktionalen Welt schon lange etabliert sind. Wer sich eingehend mit funktionalen Sprachen befasst, wird früher oder später über sie stolpern. Zu diesen Konzepten gehören Monaden, die in funktionalen Sprachen dazu dienen, Seiteneffekte in die Sprache zu integrieren, ohne ihre starke statische Typisierung aufzuweichen.

Der Vortrag möchte die theoretischen Grundlagen von Monaden in leicht verdaulichen Häppchen vermitteln.

Treppenschach(t)

Bessere Testfälle mit ScalaCheck

Andreas Flierl

imbus AG
S23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Wenn wir Entwickler Tests schreiben, sind wir oft sehr optimistisch – besonders bei der Wahl der Testfälle. Fehlt beispielsweise der kritische Blick eines erfahrenen Testers, werden leicht wichtige Code-Pfade übersehen und Fehler schleichen sich ein.

Der Vortrag möchte beleuchten, warum z. B. Code-Coverage nur bedingt weiterhilft und wie die Bibliothek ScalaCheck helfen kann, bessere Testfälle zu finden, zu generieren und weiterhin noch jede Menge Code zu sparen. Dabei bleibt bestimmt noch Zeit für Live-Coding, die Beantwortung von Fragen wie "Wie teste ich meine grandiose Implementierung der Quadratwurzelfunktion für BigInts?" und interessante Spitzfindigkeiten.

Taschenspielertrick

Spaßige Dinge, die man mit dem Scala-Typsystem machen kann

Jens Schauder

S24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Die JVM-Sprache Scala zeichnet sich unter anderem durch ein sehr leistungsfähiges Typsystem aus.

In diesem Vortrag werden einige Dinge vorgestellt, die man mit dem Typsystem anstellen kann – angefangen beim beliebten „Pimp my Library“-Pattern bis zum Nachweis, dass das Typsystem Turing-vollständig ist. Aber nicht alles ist Taschenspielerei. So manches lässt sich sehr sinnvoll in realen Projekten einsetzen.

Abgehoben

Schnelles, funktionales Web-Development mit Liftweb

Franz Bettag

Bettag Systems UG
S25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de

Wenn man den Lift-Entwicklern glauben schenkt, dann ist Liftweb das mächtigste der heute verfügbaren Web-Frameworks. Das begründen sie unter anderem damit, dass Lift-Applikationen gegen die meisten der OWASP Top 10 Attacken gefeit sind; einfach zu bauen und schnell und einfach zu warten sind; hochperformant und skalierbar sind; und nicht zuletzt durch einzigartige Ajax- und Comet-Unterstützung interaktiv wie Desktop-Anwendungen sind.

In diesem Vortrag wird das Liftweb-Framework vorgestellt, View-First/CSS-Selectors und die HTML-Render-Engine grob erklärt, Comet/Long-Polling Actors demonstriert und Formulare mit entsprechenden Datenverknüpfungen gezeigt.

Datagraph

A Programmatic Introduction to the Neo4j Graph-Database

Ian Robinson

Neo Technology
T01 Montag, 3. 9., 09:40 – 18:30 Uhr Tutorium Mo de

Neo4j is a JVM-based graph database. Its graph data model is intuitive and expressive, mapping closely to your whiteboard domain model. For highly connected data, Neo4j is thousands of times faster than relational databases, making it ideal for managing complex data across many domains, from finance to social, telecoms to geospatial.

This tutorial covers the core functionality of the Neo4j graph database. With a mixture of theory and entertaining hands-on coding sessions, you'll quickly learn how easy it is to develop a Neo4j-backed application. Sessions include a NoSQL and graph database overview, Neo4j fundamentals and architecture, the Neo4j Core API, Neo4j Traverser APIs, and declarative querying with Cypher. Each session (apart from the fundamentals and architecture) comprises a set of practical exercises designed to introduce and reinforce an aspect of the Neo4j stack. The practical parts of the tutorial consist of Koan-style lessons where a specific aspect of the Neo4j stack is presented as a set of failing unit tests that participants will work to fix. The exercises gradually become more challenging until the attendees are capable of implementing sophisticated graph operations against Neo4j.

JavaScript goes Business

JavaScript für Enterprise-Entwickler

Stefan Hildebrandt

consulting.hildebrandt.tk
T02 Montag, 3. 9., 09:40 – 18:30 Uhr Tutorium Mo de

Auch bei Web-Anwendungen im Unternehmensumfeld wünschen sich die Anforderer die Bedienbarkeit, die sie von öffentlich zugänglichen Anwendungen im Web kennen. Am besten sollen die Anwendungen dann noch auf Tablets und Smartphones laufen. Diese Anforderungen mit JSF2 und Prime-/Rich-/IceFaces zu lösen, ist nicht gerade einfach, da dort zum Beispiel Ajax-Integration sehr indirekt erfolgt und häufig die Performance nicht so wie gewünscht ist. GWT könnte eine Alternative sein, für richtig coole Features muss aber auch dort viel JavaScript geschrieben werden. Also warum nicht gleich direkt JavaScript verwenden?

In diesem Workshop wird eine kleine Anwendung mit einem der aktuellen JavaScript-Frameworks (jQuery, Javascriptmvc, extJS) erstellt, die per REST-Services Daten abruft und anlegt und dabei eine MVC-Struktur, Unit-Tests und das Build-System Gradle (Maven) verwendet.

Maßgeschneidert

Language Engineering mit MPS

Markus Völter

Freier Berater/itemis AG

Bernd Kolb

itemis AG
T03 Montag, 3. 9., 09:40 – 18:30 Uhr Tutorium Mo de

Was wäre, wenn sich eine Sprache genauso einfach weiterentwickeln und erweitern ließe wie wir das von Bibliotheken schon lange gewohnt sind?

In diesem Tutorium wird erklärt, wie dies mit der JetBrains MPS Language Workbench möglich ist. Nach einer generellen Einführung in die Konzepte von MPS wird gemeinsam mit den Teilnehmern Java und C mit eigenen Sprachkonstrukten angereichert. So wird an konkreten Use Cases gezeigt, wie APIs vereinfacht und Programme typsicherer werden, Requirements sich als Teil des Entwicklungsprozesses zusammen mit dem Code entwickeln und Fachexperten direkt in die Entwicklung mit einbezogen werden können. Dabei wird auch gezeigt, wie nicht-textuelle Notationen (tabellarisch oder mathematische Symbole) diesen Prozess unterstützen.

Das Tutorial ist als Hands-On Tutorial geplant – bitte den eigenen
(schnellen!) Laptop mitbringen; die nötige Software zur Installation wird gestellt.

Operndiva

Kleine Einführung in Scala

Rüdiger Keller

MATHEMA Software GmbH
T04 Montag, 3. 9., 09:40 – 18:30 Uhr Tutorium Mo de

In den letzten Jahren sind viele Sprachen für die Java Virtual Machine entstanden, von denen einige mehr und andere weniger populär geworden sind. Eine Sprache, die zweifelsohne viel Aufmerksamkeit auf sich zieht ist Scala. Sie versucht ein besseres Java zu sein, das die Konzepte objektorientierter und funktionaler Programmierung in sich vereint, dabei aber im Gegensatz zu den meisten anderen populären Sprachen an statischer Typisierung festhält.

Dieses Tutorium wendet sich an ein Java-kundiges Publikum und gibt eine Einführung und Übersicht zu Scala. Dabei werden die wichtigsten Features vorgestellt und verschiedene Code-Beispiele gezeigt, wie sich alltägliche Java-Probleme in Scala leichter und mit meist erheblich weniger Code lösen lassen.

Für die Teilnahme an dem Tutorium wird ein Notebook benötigt.

Spielerisch

Web-Entwicklung auf der JVM mit Play!

Yann Simon

adesso AG

Remo Schildmann

adesso AG
T05 Montag, 3. 9., 09:40 – 18:30 Uhr Tutorium Mo de

Mit dem Play-Framework existiert ein Java Web-Framework, das den Geist von Ruby on Rails auf die JVM bringt. Play ist von Web-Entwicklern für Web-Entwickler entworfen worden. Es bricht mit herkömmlichen Java-Standards und Gepflogenheit – zu Gunsten einer einfachen Entwicklung und schnellen Entwicklungszyklen. Eine sehr gute Developer Experience ist das Ergebnis: Veränderte Code-Dateien werden beim Reload im Browser automatisch kompiliert, neu geladen und in die Web-Anwendung integriert, ohne Neustart des Servers oder Redeploy.
Das jetzt erschienene Play 2-Framework wurde in Scala vollkommen neu implementiert, ermöglicht aber die schnelle Entwicklung von Web-Anwendungen in Java und Scala. Hinzugekommen sind u. a. statisch-typisierte Templates und eine leichtgewichtige asynchrone Architektur, wozu Play 2 das Middleware-Framework Akka nutzt.

In diesem Tutorium wird die neue Version von Play vorgestellt und das Erstellen von Web-Anwendungen damit gezeigt. Neben dem statisch-typisierten Templating wird auf Plays Persistenzschnittstellen zu relationalen Datenbanksystemen und NoSQL-Datenbanken eingegangen. In Übungen werden die verschiedenen Aspekte von Play demonstriert: Testen von Web-Anwendungen, Play Build Management mit SBT, Asynchronität und Skalierung. Abgerundet wird der Workshop mit der Integration aktueller Technologien wie WebSockets oder die dynamiche Stylesheet-Sprache LESS zur Erstellung moderner Web-Applikationen. Am Ende des Tutoriums sollten die Teilnehmer dazu in der Lage sein, eigene Projekte mit Play 2 aufzusetzen und erfolgreich durchzuführen.

KaffeeKlatsch
Bookware
MATHEMA
CLEAR IT