Visuelle Codeanalyse
Thomas Haug (MATHEMA Software GmbH)
Interessant für
Themenbereich: Architektur
Stichworte: Metriken, Visualisierung, Dynamische und Statische Codeanalyse
Abstract:
- Folien zum Vortrag A5 - JFS 2013 (
, 3.9 MByte)
Themenbereich: Architektur
Stichworte: Metriken, Visualisierung, Dynamische und Statische Codeanalyse
Themenbereich: Embedded/Mobile
Stichworte: Android, REST, JEE, Modellierung, Codegenerierung
Android ist zurzeit das meistgenutzte mobile Betriebssystem. In vielen Fällen, vor allem auch bei Business-Anwendungen und bei Anwendungen die bisher klassischen Embedded-Geräten vorbehalten waren (z.B. Mess- und Steuergeräte), spricht viel für die native Entwicklung von mobilen Anwendungen. Typischerweise benötigen solche Apps eine Anbindung an ein Backend.
Bei der Entwicklung für Android sind einige architektonische Muster zu beachten und APIs zu benutzen, um eine leistungsfähige, stabile App hinzubekommen: Nebenläufigkeit für SQLite-Zugriffe, Android Loaders, Nutzung von REST-APIs, Integration mit anderen Apps, Push Notifications, Server-Push, Application Lifecycle Events, um nur ein paar zu nennen.
In diesem Vortrag wird gezeigt, wie schnell und einfach man mit Hilfe von Java, JEE, Eclipse, JAX-RS und JSON in Verbindung mit Codegenerierung eine komplette Android App samt Backend entwickeln und in der Cloud bereitstellen kann. Mit Hilfe von textueller Modellierung mit DSLs und dem Einsatz von Generatoren für Android, JAX-RS, EJB und JPA wird live eine Android App und das passende Backend generiert/entwickelt. Das Backend wird dann in der Jelastic-Cloud installiert und gestartet, live, während des Vortrages. Auch die Installation und Ausführung der Android App erfolgt während des Vortrages.
Zusätzlich werden die Software-Architektur der Android App und des Backends kurz erläutert. Auch auf die Möglichkeiten der Cloud-Plattform Jelastic (PaaS) wird eingegangen.
Themenbereich: Parallelisierung
Stichworte: Grundlagen, Java Memory Model, JIT-Compiler
Viele Softwareentwickler arbeiten täglich mit Java und verwenden dessen Konstrukte zur nebenläufigen Programmierung (synchronized, volatile und Co.) ohne sich Gedanken über deren technischen Hintergrund zu machen. Doch gerade bei der Suche nach Erklärungen zu subtilen Fehlern hilft einem ein grobes Verständnis der Grundlagen oft weiter.
Der Vortrag startet mit einem einfachen fehlerhaften Beispiel, dessen Fehler den meisten direkt auffallen dürfte, die sich schon mit Nebenläufigkeit in Java beschäftigt haben. Dabei werden wir unter anderem beobachten, dass
* der Code bei normaler Ausführung so nicht funktioniert.
* der Code, im Debugger ausgeführt, offensichtlich aber korrekt arbeitet.
* der Code nach dem Einfügen einer Debug-Ausgabe plötzlich zuverlässig funktioniert.
Die Erklärung für diese (vielleicht überraschenden) Beobachtungen liefert das Java Memory Model und ein Blick auf die Optimierungen des Just in Time (JIT) Compilers. Der Vortrag erläutert die wichtigsten Grundlagen für das Zusammenspiel des Java Memory Model und des JIT Compilers für eine korrekte, performante und plattformunabhängige Ausführung von Code in der JVM.
Themenbereich: Sonstiges
Themenbereich: Prozess
Stichworte: Build Tools, ALM, Maven-Alternativen
Die meisten Java-Entwickler verbindet eine Hass-Liebe mit Maven. Apache Buildr ist ein Ruby-basiertes Buildsystem 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 dieser Session stellen wir die Konzepte anhand von Beispielen vor.
Themenbereich: Sonstiges
Stichworte: Soft Skills, Präsentationen, Kommunikation, Rethorik
Michael Plöd ist Principal Architect und Partner bei der Senacor Technologies AG und in dieser Rolle überwiegend in Projekten tätig, die die Transformation großer IT-Landschaften anstreben. Michael ist Speaker auf zahlreichen Konferenzen und regelmäßiger Autor diverser Fachartikel zu den Themen Java Persistence, Apache Wicket und Präsentationstechniken.
Themenbereich: Sonstiges
Stichworte: Java, API, Grundlagen
Im Package java.lang.* finden sich die grundlegendsten Bestandteile der Java API. Auch wenn die Java Plattform einen Entwickler weitestgehend von den Internas des Betriebssystems und der Hardware abschirmt, ist es bei vielen Problemstellungen dennoch hilfreich grundlegende Funktionsweisen der VM zu verstehen unter die Haube blicken zu können. Gerade über die Klassen in java.lang.* ist die Schnittstelle zur Virtual Machine besonders greifbar. Oftmals existieren hier aber noch Wissenslücken sowie kleinere und größere Fragezeichen über die genaue Funktionsweise bestimmter API-Bestandteile.
Der Vortrag greift Beispiele aus der Praxis heraus, die zeigen wie mit ein wenig (mehr) Hintergrundwissen reale Probleme einfacher bzw. besser angegangen werden und effizienter gelöst werden können und wo potentielle Stolperfallen lauern. Auch etablierte Java-Entwickler werden manches Aha-Erlebnis mit nach Hause nehmen können.
Themenbereich: Architektur
Stichworte: Peer2Peer, Chord-Algorithmus, Auto
Peer2Peer kennt schon fast jeder... VoiceOverIP, Filesharing, Social Networking... alles alte Hüte!
Mit dem Einzug des Internets und der mobilen Technologien in Fahrzeuge öffnet sich die Tür für Car2Car Systeme!
Im ersten Teil des Vortrags werden die möglichen Peer2Peer Lösungen in der Theorie dargestellt. Dabei werden verschiedene technische Ansätze diskutiert, die eine effiziente Umsetzung in Java ermöglichen. Kern der Diskussion ist der Chord-Algorithmus und dessen Umsetzung mit JEE Technologien. Zusätzlich werden mehrere Anwendungsmöglichkeiten und Businesscases vorgestellt.
Stau- und Unfallmeldung - Wieso aufs Radio warten wenn das Auto selber melden kann?
Routenplanung und Positionierung - Immer den optimalen Weg nehmen und dabei noch Spezialangebote von nahe liegenden Läden erhalten.
Parkplatzfindung - Es wäre doch nett, wenn ein Auto Bescheid geben würde, dass sein Platz frei wurde, oder?
Aus (meiner) langjähriger Erfahrung in Peer2Peer Entwicklung und mehreren Patenten zum Chord-Algorithmus wird anhand praktischen Beispielen vorgestellt, wie die Zukunft der Sicherheits- und Unterhaltungselektronik in Fahrzeugen aussehen könnte.
Das Auto und das Smartphone sind die beliebtesten Spielzeuge, wieso sie nicht kombinieren?