Sichere Einbindung von Open Source in kommerzielle Projekte Wiederverwendung von Open Source kann auch in kommerziellen Projekten massive Kosten- und Zeiteinsparungen bringen. Leider besteht immer noch bei vielen Firmen, Projektmanagern und Entwicklern Unsicherheit. Noser Engineering durfte für einen Kunden eine Graph Database <Neo4j (Lizenz GPLv3)> auf Android portieren. Diese wird in einem kommerziellen Projekt eingesetzt. Der Kunde bleibt dabei auch für die Öffentlichkeit anonym. Der Referent beleuchtet das Vorgehen im Projekt bezgl. sicherem Lizenzmanagement und technischer Einbindung. Warum wurde eine Open Source Graph Database gewählt? Wie wurde diese auf Android portiert? Wie ging das Projekt mit der Copyleft-Lizenz um? Was ist allgemein beim Umgang mit Open Source Software zu beachten? Der Teilnehmer lernt, wie Open Source mit den entsprechenden Lizenzen in kommerziellen Projekten erfolgreich eingesetzt werden kann. Und natürlich mit Schwerpunkt Embedded. Referent: Firma: Zielpublikum: Kategorie: Urs Böhm Noser Engineering AG Entscheidungsträger / Entwickler / Produktmanager Beratung
zum Referat von CSA Engineering AG Thema: Referent: Firma: Effizientes und effektives Testen von Embedded SW mit Google Test Michael Bernhard (Diplomierter Ingenieur FH in Elektro- & Kommunikationstechnik ) Nachdiplomstudium FH in Software Engineering CSA Engineering AG Abstract: Immer leistungsfähigere HW, aufwendige MMIs und globale Vernetzung machen auch die Software in Embedded Systemen stetig umfangreicher und komplexer. Systematisches und strukturiertes Testen ist darum unabdingbar um eine effiziente und termingerechte Entwicklung auch mit grösseren Teams zu erreichen. CSA Engineering AG hat zusammen mit seinen Kunden erfolgreich die Open Source Frameworks Google Test und Google Mock zum Testen von C und C++ Code für Embedded Systeme eingesetzt. In diesem Vortrag werden die Frameworks vorgestellt und erklärt, wie die Tests implementiert werden. Ausserdem wird gezeigt, wie sich die Tests nahtlos in die Toolchain integrieren lassen. Testen wird so intuitiv und natürlich und ist nicht nur mehr eine lästige Aufgabe für die eh niemand Zeit hat.
Effizientes Memory Debugging in C/C++ Programmierfehler beim Umgang mit Arrays und Pointern und bei der dynamischen Speicherverwaltung sind schwer zu diagnostizieren. Es kostet sehr viel Zeit solche Fehler zu debuggen, weil sie sich oft nicht an der Stelle des eigentlichen Fehlers bemerkbar machen, sondern erst deutlich später im Programmverlauf. Heutzutage existieren zahlreiche Open-Source-Programme und Compiler Features, welche die Fehlerdiagnose erleichtern und eine automatisierte Fehlersuche z.b. im Rahmen einer Continuous Integration erlauben. In diesem Vortrag werden aktuelle Methoden zur automatischen und manuellen Fehlersuche vorgestellt und Tipps zur Fehlervermeidung vermittelt. Grundidee: Potentielle Fehler im Umgang mit C/C++ Pointern Werkzeuge zum automatischen Erkennen potentieller Probleme Tipps zur manuellen Fehlersuche und Fehlervermeidung Referent: Adam Szalkowski, bbv Software Services
Verzweigungen im Versionsmanagement beherrschen Soft- und Hardware unterliegt stetigen Änderungen und Versionsmanagement dient dazu, diese Änderungen zu speichern und nachvollziehbar zu machen. In der Entwicklung eingebetteter Systeme werden vielfach Komponenten und Varianten entwickelt. Gleichzeitig unterliegen ausgelieferte Produkte gewöhnlich einer langfristigen Wartung. Um dieser Komplexität zu begegnen werden Projekte und Komponenten gewöhnlich in Verzweigungen oder Strömen organisiert und zu diesem Zweck teilweise oder ganz wiederholt kopiert. Hieraus resultiert der Bedarf nach einer gesicherten Methode nach welcher Änderungen zwischen den unterschiedlichen Verzweigungen oder Strömen fliessen. Eine Methode, die die Fragen beantwortet, wo Änderungen initial vorgenommen werden, wann und wie oft sie kopiert oder aber zusammenzuführen sind und welche Flussrichtung die Änderungen haben. Die Mainline-Methode, welche unabhängig vom eingesetzten Versionierungswerkzeug ist, liefert Antworten auf diese Fragen. Nutzen und Besonderheiten In dem Vortrag geht es in erster Linie darum, Entwicklern und Projektmanagern Sicherheit im Umgang mit Verzeigungen (Branches) in der Versionierung von Änderungen zu geben. Auch wenn mit modernen Versionierungswerkzeugen Verzweigen und Zusammenführen technisch einfacher geworden ist, so bedarf es dennoch eines Gerüsts, mit dem die Komplexität von Verzweigungen bei grossen Projekten oder langlebigen Produkten beherrschbar wird und der Überblick erhalten bleibt. Namenskonventionen dienen hierzu, ebenso wie leistungsstarke Visulisierungen. Erst eine etablierte Methode jedoch verschafft Sicherheit im Vorgehen und ermöglicht gleichzeitig Automatisierungen. Mit der Mainline- Methode liegt ein solches Hilfsmittel vor, welches Änderungen in komplexen Verzweigungsstrukturen einfach beherrschbar macht. Da Komponenten besondere Anforderungen stellen, wird auch deren Unterstützung mit der Methode. Referent: Ralf Gronkowski, Perforce Software (EVOCEAN Partner)
Do-it-yourself Code-Generierung Je weniger von Hand eingegeben werden muss, desto weniger Fehler gibt es. Hier leistet ein Code- Generator gute Dienste: Repetitive und schablonenartige Teile der Software sollen maschinell erzeugt werden. Aber dann kommen Dinge wie abstrakte Modelle und UML ins Spiel und man ist bald einmal bei grossen, monolithischen Tool-Suiten angelangt. Gerade für kleine Projekte ist der damit verbundene Initialaufwand zu hoch. Weitere Komplexität kommt hinzu, weil das Tool häufig so zurechtgebogen wird, dass ein möglichst grosser Teil des Codes damit generiert wird, obwohl Modelle naturgemäss nicht alles abdecken. Dieses Referat will ein Gegengewicht schaffen: Code-Generierung kann auch mit einfacheren Mitteln realisiert und punktuell dort eingesetzt werden, wo der Nutzen wirklich da ist. Neben einer kurzen Übersicht über dieses umfangreiche Thema folgen konkrete Beispiele mit den Bordmitteln von Visual Studio bzw. der Script-Sprache Python. Es wird gezeigt, dass die Generierung von Code schneller auf die Beine gestellt ist, als man denkt. Referent: Firma: Zielpublikum: Kategorie: Willi Flühmann Noser Engineering AG Entwickler Entwicklungs-Tools
Erfahrungsbericht einer Entwicklung für eine mobile medizinische Anzeigeeinheit mit UML und Qt 4.7.2 Bei einer eingebetteten Anwendung im medizinischen Umfeld sind Aspekte wie Zuverlässigkeit, Wartung und Wiederverwendbarkeit unverzichtbar. In dem vorgestellten Projekt wurde mit Hilfe von UML ( Rational Rhapsody für C++ ) und einer Schnittstelle zu Qt ein transparentes Embedded System geschaffen. Mittels JSON-RPC findet der Datenaustausch zwischen der Businesslogik und dem GUI statt. Die Datenelemente werden beim Systemstart eingelesen, zentral verwaltet und bei Änderungen an die registrierten Objekte verteilt. Das System verwendet einen Freescale i.mx Multimedia Prozessor und basiert auf dem Linux Betriebssystem. Die Video-Pipeline verwendet den gstreamer und v4l2. Prozessor und prozessornahe Komponenten sind auf einem SoM (System on Module) untergebracht. Referent: Stefan Beetschen, Teamleiter SW
Embedded Linux for Desktop Software Developers Die Leistungsfähigkeit von Embedded Geräten nimmt rasant zu. Anwendungen, welche früher einen separaten PC benötigten, werden zunehmend direkt auf Embedded Geräten umgesetzt. Beispiele sind Steuerungen mit umfangreichem GUI, Cloud Anwendungen etc. Um dies umzusetzen benötigen Embedded Linux Geräte oft zahlreiche Netzwerk-Services, umfangreiche Benutzer-Applikationen, Datenbanken etc. In der Embedded Welt trifft der Entwickler aber nach wie vor auf Einschränkungen welche eine direkte Portierung von Desktop Applikationen erschweren oder verhindern. Dieser Vortrag erklärt, welche Technologien Ihnen die Software Entwicklung erleichtern, was ein State-of-the-Art Embedded Linux Target mitbringen muss und wie Sie Ihre Effizienz beim Entwickeln von Software steigern können. Referent: David Andrey / René Straub, NetModule AG
PFC200 Der Linux Controller SPS-Entwicklungsumgebung oder höhere Programmiersprache: Der PFC200 von Wago ist in beiden Welten zuhause. Mit dem Board-Support-Package (BSP) für den Linux-Controller stehen Embedded-Entwicklern alle Möglichkeiten des Open- Source-Betriebssystemszur Verfügung. Das Wago-Basisimage lässt sich durch Open-Source- Pakete erweitern und so das Betriebssystem nach eigenen Wünschen zusammenzustellen. Auf diesem Wege etwa können verschiedenste Umgebungen wie Java, PHP oder Python genutzt werden. Zudem sind über externe Codesys-Bibliotheken Erweiterungen der SPS-Funktionalität aus beliebigem C-Code heraus erstellbar. Der Embedded-Programmierer kann die SPS-Laufzeitumgebung auch vollständig durch eigene C/C++-Anwendungen mit Zugriff auf den Klemmenbus (K-Bus), Can und Profibus ersetzen. Der Einsatz von Linux im industriellen Umfeld hat darüber hinaus weitere Vorteile: Das echtzeitfähige System ist ausgereift und läuft äußerst robust und stabil. Eine umfassende Benutzerverwaltung, Speicherschutz-mechanismen und überprüfbare Datenintegrität sorgen für maximale Sicherheit. Neben Linux selbst stehen Software-Tools für nahezu jede Aufgabe als Open-Source-Lösungen bereit. Linux wird von einer großen Community laufend weiterentwickelt. Das Open-Source-Konzept gewährleistet dem Nutzer hierbei alle Freiheiten, es gibt weder Update- oder Upgrade-Vorgaben noch proprietäre Komponenten. Referent: Halter Andreas, WAGO Contact SA