Konzipierung und Erstellung einer generischen HMI-Komponente für ein Embedded Framework

Größe: px
Ab Seite anzeigen:

Download "Konzipierung und Erstellung einer generischen HMI-Komponente für ein Embedded Framework"

Transkript

1 Hochschule Darmstadt University of Applied Sciences - Fachbereich Informatik - Konzipierung und Erstellung einer generischen HMI-Komponente für ein Embedded Framework von Tobias Holstein Abschlussarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) Referent: Prof. Dr. Joachim Wietzke Korreferentin: Prof. Dr. Elke Hergenröther Darmstadt, 16. August 2010

2 Design is not just what it looks like and feels like. Design is how it works. Steve Jobs

3 Eidesstattliche Erklärung Ich versichere hiermit, dass ich die vorliegende Arbeit selbstständig verfasst und keine anderen als die im Literaturverzeichnis angegebenen Quellen benutzt habe. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder noch nicht veröffentlichten Quellen entnommen wurden, sind als solche kenntlich gemacht. Die Zeichnungen oder Abbildungen in dieser Arbeit sind von mir selbst erstellt worden oder mit einem entsprechenden Quellennachweis versehen. Diese Arbeit ist in gleicher oder ähnlicher Form noch bei keiner anderen Prüfungsbehörde eingereicht worden. Tobias Holstein Darmstadt, den 16. August 2010

4 Abstrakt Gegenstand dieser Arbeit ist die Konzipierung und Realisierung einer neuen Benutzerschnittstelle für das ICM-Framework, ein Embedded Framework, das an der Hochschule Darmstadt im Rahmen der Forschung ständig weiterentwickelt wird. Ein Ziel dieser Arbeit ist die Einbindung bekannter Techniken, wie z.b. Adobe Flash, HTML oder Qt, die zur Entwicklung grafischer Benutzerschnittstellen genutzt werden können. Durch den Einsatz bekannter und weit verbreiteter Techniken ist eine Optimierung des Entwicklungsprozesses möglich. Dies ist möglich, da es für z.b. Flash und HTML zahlreiche bekannte Entwicklungsumgebungen gibt, mit denen grafische Oberflächen oder gar komplette Applikationen per Drag&Drop erstellt werden können. Bei der Einbindung solcher Techniken kann zudem ein Nutzen aus den großen Entwicklergemeinden gezogen werden. Im Rahmen dieser Arbeit werden Open-Source-Projekte getestet, mit denen HTML, Flash sowie Qt für die Entwicklung grafischer Oberflächen genutzt werden können. Dabei spielt die Integration der Frameworks und Bibliotheken eine entscheidende Rolle. Für die spätere Realisierung werden Konzepte erstellt und Prototypen entwickelt. Die in dieser Arbeit entwickelte HMI-Komponente ermöglicht es, Qt-Applikationen inklusive aller Vorteile von Qt nahtlos in das ICM-Framework zu integrieren. T. Holstein, 2010 i

5 Abstract The purpose of this master thesis is the design and development of a user interface for an embedded framework, called ICM-Framework, which is a research project at the University of Applied Sciences in Darmstadt and constantly evolved. One main topic of this work is the integration of well known techniques, such as Adobe Flash, HTML or Qt, which can be used to develop graphical user interfaces. By using well-known and widely used techniques, optimisations can be made to the development process. This possibility occures throught the fact, that Flash and HTML user interfaces can be developed by using numerous well-known development environments. Furthermore, using those techniques includes the benefit from large developer communitites. In context of this work, open-source projects are tested and evaluated, which provide development options for graphical interfaces with HTML, Flash or Qt. The integration of those projects is another main topic of this master thesis. Concepts and prototypes are developed to provide the underlying background for a concrete implementation. The final implementation enables the ICM-Framework to seamlessly integrate any given Qt application as part of its HMI-Component, including all benefits and advantages of the Qt framework. T. Holstein, 2010 ii

6 Inhaltsverzeichnis Abstrakt Abstract Inhaltsverzeichnis Tabellenverzeichnis Abbildungsverzeichnis Danksagung i ii iii vi vii ix 1 Einführung Motivation Zielsetzung Struktur Grundlagen Mensch-Maschine-Schnittstelle Definition Framework, Middleware und Bibliothek Middleware Bibliothek Embedded Automotive Framework Komponenten, Prozesse und Threads Inter-Prozess-Kommunikation Leistung und Speicherverbrauch Flash Chronik Verbreitung Adobe Flash Lite Flash Format Anwendungen mit Flash & ActionScript T. Holstein, 2010 iii

7 INHALTSVERZEICHNIS Flash Player von Drittanbietern und Open-Source-Projekte Performance und Speicherverbrauch Qt Qt Features Signale und Slots Ereignisse (Events) in Qt UI-Entwicklung WebKit Hyper Text Markup Language Document Object Model Cascading Style Sheets JavaScript WebKit als Widget in Qt OpenGL Konzeption Anforderungen Framework Integration Variante Variante Variante Konzipierung einer Test-Applikation Konzipierung einer Applikation mit dem Spiel JawBreaker JawBreaker Anwendungsfälle Skizze der grafischen Benutzeroberfläche Zustandsdiagramm Proof of Concept Flash Player Flash-Testprogramme Flirt swfdec gameswf & lightspark Qt GUI GUI mit Qt-Designer Qt mit QWebView QWebView und HTML QWebView und HTML/Javascript QWebView und HTML/QWidgets Weitere Prototypen T. Holstein, 2010 iv

8 INHALTSVERZEICHNIS Zustandsmaschine mit Qt JawBreakerWidget in Qt Movie in Movie Beispiel in Flash Zusammenfassung Realisierung Anpassungen für Qt Struktur des ICM-Frameworks Qt & Variante Qt & Variante Benutzerdefinierte Ereignisse und Zustandsmaschinen Kommunikation innerhalb der HMI Klassendiagramme JawBreaker-GUI QWebView Qt & Variante Test und Evaluation Test Evaluation Zusammenfassung 63 8 Ausblick 65 Literaturverzeichnis 66 A Inhalt der beiliegenden CD 69 A.1 Prototypen & Beispiele A.2 ICM-Framework A.3 Masterarbeit T. Holstein, 2010 v

9 Tabellenverzeichnis 6.1 Direkter Vergleich der CPU-Zeit der Test-Applikation mit und ohne QWebView Test-Applikation mit Qt-Steuerelementen: CPU-Zeit pro Komponente Test-Applikation mit QWebView: CPU-Zeit pro Komponente T. Holstein, 2010 vi

10 Abbildungsverzeichnis 2.1 Shared Memory Event Verarbeitung Flash Entwicklungsprozess Flash Entwicklungsumgebung Zusammenspiel von Qt-Dateien, Kompiler und normalen Quellcode HTML Beispiel als Baumstruktur HMI Aufbau - Variante HMI Aufbau - Variante Skizze der grafischen Oberfläche der Test-Applikation Zustandsdiagramm für HMI-Komponente der Test-Applikation Zustandsdiagramm für logische Komponente der Test-Applikation Sequenzdiagramm mit Kommunikationsbeispiel zwischen logischer und HMI-Komponente der Test-Applikation Anwendungsfalldiagramm für JawBreaker Spiel Skizze der grafischen Oberfläche des JawBreaker Spiels Zustandsdiagramm für HMI-Komponente der JawBreaker-Applikation Prototyp: Flash Player mit Flirt -Bibliothek Flash-Testprogramme im Vergleich Prototyp: QtGUIDynamicLoader Prototyp: QtWebTest-HTML Prototyp: QtWebTest-HTMLundJavaScript Prototyp: QtWebTest-HTMLundQWidget Prototyp: QtGUITestApplikation Prototyp: Movie in Movie Beispiel ICM-Framework: Struktur inkl. Test- und JawBreaker-Applikation ICM-Framework: interne Kommunikation der HMI-Komponente Klassendiagramm: Daten-Container Klassendiagramm: HMI-Komponente T. Holstein, 2010 vii

11 ABBILDUNGSVERZEICHNIS 5.5 Klassendiagramm: JawBreaker-Komponente Klassendiagramm: TestText-Komponente (Test-Applikation) JawBreaker-Oberfläche in HMI: Hauptmenü und Spiel-Oberfläche HTML-Dokument als grafische Oberfläche der HMI T. Holstein, 2010 viii

12 Danksagung Zu Beginn dieser Arbeit möchte ich mich zunächst bei den Personen bedanken, die mich während meiner, nun schon zweiten Master-Arbeit, tatkräftig unterstützt haben. Ich bedanke mich bei Herrn Wietzke, der mir diese Masterarbeit ermöglicht hat, immer ein offenes Ohr für Ideen und Vorschläge hatte und mir auch bei kritischen Phasen der Arbeit zur Seite stand. Bei Frau Hergenröther bedanke ich mich dafür, dass sie sich als Korreferentin so kurzfristig zur Verfügung gestellt hatte und für die Betreuung dieser Arbeit. Ich bedanke mich bei meinen Eltern, die mich während meines Studiums immer unterstützt haben und mir immer zur Seite stehen. Besonders bedanken möchte ich mich bei meinen Korrekturlesern, die mir in technischer Hinsicht viele Tipps gegeben haben. Vielen Dank Tobias Eckerth und Rainer Gunkel! Weiterhin möchte ich mich bei Anja Rudolf für das Finden und Korrigieren zahlreicher Komma- und Rechtschreibfehler bedanken, die ich ohne sie wahrscheinlich niemals gefunden hätte. Michael Prager danke ich für die zahlreichen Tipps zu LaTeX, ohne die diese Arbeit jetzt wahrscheinlich ganz anders aussehen würde und für die vielen Diskussionen zum Thema dieser Arbeit. Ich bedanke mich auch bei Andreas Knirsch und Bettina Kurz-Kalweit, die mir zahlreiche Fragen über das ICM-Framework beantwortet haben und bei Problemen immer erreichbar und hilfsbereit waren. Zum Abschluss dieses Studiums möchte ich noch die Gelegenheit nutzen und mich bei meinen Kommilitonen Tobias, Stefan, Michael und Timo bedanken. Auf das noch zahlreiche lustige Pizza-Abende kommen werden... ;) T. Holstein, 2010 ix

13 Kapitel 1 Einführung Die Interaktion mit elektronischen Geräten, insbesondere mit Computern, ist aus dem heutigen Alltagsleben kaum mehr wegzudenken. Nur wenige Geräte funktionieren heute noch ohne Mikroprozessor. Selbst im Auto, in der Waschmaschine oder in der einfachen Personenwaage wird Software eingesetzt, um das Gerät zu steuern. Der Benutzer sieht meist nur die hoffentlich intuitiv gestaltete Benutzerschnittstelle, die sich z.b. durch Tasten, Displays oder sogar Touch-Screens dem Benutzer präsentiert. Ein Entwickler spricht im Bezug auf eben jene Geräte von Hard- und Software in Embedded Systemen. Derartige Systeme unterscheiden sich stark von Systemen wie z.b. Desktop Computern. An Systeme im Embedded Bereich werden weit höhere Anforderungen gestellt. Die Rechenleistung solcher Systeme ist meist geringer, auch Arbeits- und nichtflüchtige Speicher sind oft stark begrenzt im Vergleich zu normalen Systemen. Gleichzeitig muss das System zu 100 Prozent verlässlich sein, wenn z.b. hoch komplexe Berechnungen in Echtzeit durchgeführt werden müssen. Das Verhältnis der Rechenleistung zwischen Embedded und Desktop Systemen hat sich in den vergangenen Jahren jedoch stark verändert. Rechenleistung, die vor einigen Jahren nur auf High-End Computer Systemen verfügbar war, ist heute auch in Embedded Systemen verfügbar. Hardware wurde billiger, die Funktionalität der Systeme umfangreicher. Software, die zuvor nur für Desktop Computer entwickelt wurde, wird immer häufiger auch auf Embedded Systeme portiert. 1.1 Motivation Die Software-Entwickler werden durch die geschilderten Tendenzen vor neue Herausforderungen gestellt. Durch die rasante Entwicklung innerhalb des Marktes für Embedded Systeme (z.b. in Blick auf mobile Geräte wie Smartphones etc.) T. Holstein,

14 KAPITEL 1. EINFÜHRUNG muss auch der Entwicklungsprozess der verwendeten Software angepasst werden. Software muss für verschiedene Plattformen und Geräte gleichzeitig entwickelt werden. Im gleichen Zug soll der Entwicklungsprozess schneller vorangetrieben werden. Entwickler versuchen daher, stets Verbesserungen und Optimierungen an ihrem Arbeitsablauf und der verwendeten Werkzeuge durchzuführen. Eine solche Möglichkeit bietet sich vor allem im Bereich der Benutzerschnittstelle, also die Ebenen oder Komponenten der Software, in der eine Interaktion zwischen Benutzer und Software stattfindet. Auf dieser Ebene muss Software oft herstellerspezifisch angepasst werden. So ist zum Beispiel die grafische Oberfläche eines Smartphones der Firma X rot, während Firma Y blaue Oberflächen bevorzugt. An dieser Stelle spielt der Aufwand (u.a. Entwicklungskosten und Zeit) für eine solche Anpassung eine große Rolle. Dieser Aufwand wird maßgeblich durch die eingesetzten Software-Komponenten beeinflusst, die für die Darstellung bzw. die Benutzerschnittstelle genutzt werden. Wenn zum Beispiel die komplette Software für die Änderung der Farbe neu kompiliert werden müsste, wäre dies wesentlich aufwendiger als die Änderung einer XML-Datei, in der die Farbe festgelegt werden kann. Einstellungen bzgl. der Farbe sind offensichtlich ein Minimalbeispiel. Komplizierter und aufwendiger werden z.b. Änderungen im Layout der Oberfläche, in der Strukturierung des Menüs oder wenn Oberflächen auf verschiedene Display-Formate angepasst werden müssen. 1.2 Zielsetzung In dieser Arbeit sollen zunächst verschiedene Frameworks und Bibliotheken, die sich für die Realisierung einer Benutzerschnittstelle in einem Embedded System eignen könnten, untersucht werden. Ziel ist es, eine HMI-Komponente für ein Embedded Framework zu entwickeln, die ein Framework oder eine Bibliothek nutzt um z.b. die grafische Oberfläche darzustellen. Dabei spielt die Integration des Frameworks bzw. der Bibliothek eine wesentliche Rolle, insbesondere im Bezug auf den Kosten/Nutzen Faktor. Gesucht wird eine Möglichkeit, die Entwicklung der Benutzerschnittstelle für das Embedded Framework schneller, einfacher und flexibler durchzuführen, ohne dabei die Stabilität und Leistung des Frameworks zu sehr zu beeinflussen. Dabei stehen Frameworks und Bibliotheken im Vordergrund, die nach dem Stand der Technik im Embedded Bereich eingesetzt werden. Adobe Flash und Qt werden z.b. in zahlreichen mobilen Systemen eingesetzt, um die grafische Benutzerschnittstelle zu realisieren. Tests werden zeigen, inwieweit sich Speicherverbrauch und Rechenleistung gegenüber herkömmlicher Methoden ändern. T. Holstein,

15 KAPITEL 1. EINFÜHRUNG 1.3 Struktur Die vorliegende Arbeit gliedert sich wie folgt: In Kapitel 2 werden Grundlagen, Begriffe und der aktuelle Stand der Technik dargestellt, die für die folgenden Kapitel von Relevanz sind. Kapitel 3 zeigt die Konzepte, die Grundlage für Prototypen sowie die spätere Realisierung sind. In Kapitel 4 werden die Konzepte anhand einfacher Beispiele getestet. Die Ergebnisse der Tests werden diskutiert und Schlussfolgerungen für die Realisierung gezogen. Kapitel 5 zeigt, wie ausgewählte Konzepte, die im vorherigen Kapitel überzeugend waren, in das ICM Framework (Definition in 2.3) übernommen werden. Kapitel 6 beschreibt verschiedene Tests und Evaluationen der Implementierung. In Kapitel 7 wird die Implementation beurteilt und eine Schlussfolgerung aus den Testergebnissen gezogen. T. Holstein,

16 Kapitel 2 Grundlagen In diesem Kapitel werden Grundlagen beschrieben sowie der aktuelle Stand der Technik erläutert und diskutiert. 2.1 Mensch-Maschine-Schnittstelle Die Mensch-Maschine-Schnittstelle [MMS] (engl.: Human-Machine-Interface [HMI]) beschreibt die Möglichkeiten der Interaktion zwischen Mensch und Maschine. In der Informatik wird häufig auch der Begriff Human-Computer-Interface [HCI] verwendet. Die Art, in der Menschen mit Maschinen interagieren können, ändert sich rasant. Hatte man in den 80er Jahren ausschließlich die Tastatur, um Eingaben am Computer zu tätigen, gibt es heutzutage zahlreiche andere Möglichkeiten. Die Vielfalt der Interaktions-Möglichkeiten wird auch in Filmen wie Iron Man 2 oder Minority Report gezeigt. Dort werden Computer mit Sprache, Gesten oder gar durch Gedanken gesteuert. Der Computer antwortet z.b. mit Sprachausgaben, grafischen Projektionen und anderen Signalen. Diese Art der Interaktion liegt der Realität nicht fern. Verschiedene aktuelle Forschungen beschäftigen sich mit dieser Thematik. Ein Beispiel dafür ist das Projekt Natal, eine Spielekonsole, die ganz ohne Controller auskommen soll. Der Spieler bzw. der Benutzer interagiert nur noch durch Sprache und/oder Gesten mit der Konsole. Eine grafische Benutzerschnittstelle (engl.: graphical user interface [GUI]) ist heute Standard, während Sprachschnittstellen oder Gestenerkennung noch eine geringe Verbreitung aufweisen. Die Gestenerkennung auf modernen Multitouch- Geräten, wie Mobiltelefonen, beschränkt sich auf einige wenige Gesten, die durch einen Benutzer ausgeführt werden können. Oft wird nicht explizit die Bezeichnung grafische Benutzerschnittstelle verwendet, sondern der Einfachheit wegen nur Benutzerschnittstelle (engl.: User T. Holstein,

17 KAPITEL 2. GRUNDLAGEN Interface [UI]). 2.2 Definition Framework, Middleware und Bibliothek Ein Framework gibt u.a. Funktionen, Mechanismen und Architekturmuster vor, die für ein Software-Projekt verwendet werden sollen. Bei größeren Projekten mit mehreren Entwicklern ist es besonders wichtig, entsprechende Richtlinien und Vorgaben für eine verteilte Entwicklung festzulegen, um eine gute Zusammenarbeit zu ermöglichen. Auch die Komplexität eines Projektes kann durch konkrete Vorgaben reduziert werden. Wenn sich alle Entwickler an die gleichen Vorgaben halten, steigt zudem die Integrationsfähigkeit der Komponenten und Module, da diese auch in andere Projekte übernommen werden können, in denen dasselbe Framework eingesetzt wird. Ein Framework abstrahiert oft auch Funktionen eines Betriebssystems, wodurch eine Plattformunabhängigkeit angestrebt wird. Ein Entwickler, der das Framework einsetzt, nutzt nicht direkt die Funktionen des Betriebssystems, sondern die abstrahierten Funktionen. Entwickler des Frameworks kümmern sich um die plattformspezifische Implementierung der entsprechenden Funktionen. In einem Framework können z.b. Namenskonventionen, Basisklassen oder die Art der Kommunikation zwischen Komponenten festgelegt werden, die bei der Implementierung verwendet werden müssen. Ein Framework ist außerdem immer domänenspezifisch, d.h. es wird immer für eine bestimmte Art von Software (z.b. Embedded Automotive Systeme) entwickelt Middleware In der Literatur finden sich sehr viele unterschiedliche Beschreibungen zu Middleware. In dieser Arbeit wird der Begriff Middleware wie folgt verwendet: Eine Middleware bietet Funktionen und Architekturmuster, die verwendet werden können. Sie abstrahiert Funktionen unterer Schichten (z.b. des Betriebssystems) und bietet außerdem Funktionen, um höhere Schichten zu implementieren bzw. zu steuern. Die in Kapitel vorgestellte Middleware bietet z.b. Funktionen, um OpenGL Grafik und Adobe Flash gemeinsam bzw. gleichzeitig zu verwenden Bibliothek Eine Bibliothek stellt Funktionen und Methoden zur Lösung spezifischer Probleme bereit. Bibliotheken sind nicht eigenständig lauffähig, sondern werden als Hilfsmodule in Software eingebunden. T. Holstein,

18 KAPITEL 2. GRUNDLAGEN 2.3 Embedded Automotive Framework In diesem Projekt wird ein für Infotainment-Systeme in Fahrzeugen entwickeltes Embedded Automotive Framework eingesetzt. Es handelt sich dabei um ein Framework, das nach Prinzipien und Richtlinien in [Wie07], die auf dem neusten Stand der Technik im Embedded Bereich beruhen, realisiert wurde. Der Fokus des Frameworks liegt auf Multimedia-Anwendungen und wird im Rahmen von Forschung und Lehre im Labor für In-Car-Multimedia des Fachbereichs Informatik an der Hochschule Darmstadt ständig weiterentwickelt bzw. durch Erforschung neuer Konzepte und Designs erweitert. Das Framework wird in diesem Zusammenhang auch als ICM-Framework bezeichnet. Das ICM-Framework wurde in C++ entwickelt und richtet sich nach dem Posix Standard, was es zu allen Linux basierten System kompatibel macht. In den folgenden Abschnitten werden die für dieses Projekt wichtigsten Funktionen und Eigenschaften erläutert. Für weitere Informationen zu diesem Framework wird auf [Wie07] verwiesen Komponenten, Prozesse und Threads Das ICM-Framework schreibt eine Aufteilung in Komponenten bzw. Software- Module vor. Eine Komponente wird implementiert als Prozess, der einen oder auch mehrere Threads beherbergen kann. Der erste Thread in einem Prozess wird Main-Thread genannt. Prozesse werden durch forken erzeugt, also durch das kopieren bzw. klonen eines laufenden Prozesses. Die Art der Prozess-Erzeugung ist wichtig im Hinblick auf die Inter-Prozess-Kommunikation, bei der gemeinsam genutzte Speicherbereiche notwendig sind. Komponenten haben verschiedene Aufgaben (engl.: tasks). Aufgaben können unterschiedlichen Schichten des Systems zugeordnet werden. Die Schichten lassen sich wie folgt einteilen: Darstellungsschicht / View: Stellt den Zustand des Systems z.b. grafisch dar Bedienwissen / Controller: Implementiert eine Zustandsmaschine (engl.: statemachine), die entscheidet, welche Aktionen zur Zeit möglich sind oder nicht Gerätewissen / Model: Implementiert die Steuerung von Hardware, die Kommunikation zwischen Geräten etc. Das ICM-Framework definiert einige Standard-Komponenten, die zur Kommunikation zwischen und zur Verwaltung von Komponenten vorhanden sein müssen. T. Holstein,

19 KAPITEL 2. GRUNDLAGEN Sogenannte logische Komponenten sind u.a. für die Steuerung der Hardware zuständig und stellen Schnittstellen für Funktionen der Hardware für den Rest des Systems bereit. Eine Administrations-Komponente regelt das Starten und Initialisieren aller Komponenten (Prozesse inkl. aller Threads) des Systems. Die grafische Ausgabe und die Steuerung des Systems wird in der HMI- Komponente gehandhabt. Die HMI kennt alle Zustände des Systems und verwaltet sie in einer Zustandsmaschine. Benutzereingaben werden in den meisten Fällen direkt an die HMI gesendet. Anhand des aktuellen Zustands wird entschieden, ob die Eingabe eine Veränderung bewirkt oder ob sie ignoriert wird, weil die entsprechende Eingabe gerade nicht möglich oder ungültig ist. Weiterhin entscheidet die HMI darüber, ob und wann es nötig ist, die grafische Ausgabe (z.b. eine GUI) zu aktualisieren. Eine GUI muss z.b. nur neu gezeichnet werden, wenn sich Elemente, die gerade angezeigt werden, verändert haben. Eine Input-Komponente erkennt Benutzereingaben z.b. an der Tastatur oder an einem Controller und leitet sie z.b. an die HMI-Komponente oder andere Komponenten weiter. Die MainDispatcher-Komponente ist für die Kommunikation zwischen Komponenten zuständig. Sie regelt die Weiterleitung von Nachrichten von einer Komponente zu einer anderen Inter-Prozess-Kommunikation Wollen zwei Komponenten bzw. Prozesse miteinander kommunizieren, gibt es mehrere Möglichkeiten. Die drei Wichtigsten sind die Folgenden: 1. Dateien im Dateisystem 2. Inter-Prozess-Kanäle (Pipes, Sockets,...) 3. Gemeinsame Speicherbereiche (Shared Memory [SHM]) Im ICM-Framework wird ein Shared Memory genutzt, um die Inter-Prozess- Kommunikation zu ermöglichen. Für jeden Prozess gibt es einen eigenen Bereich im Shared Memory, der für Message Queues und Daten-Container reserviert ist. Eine Queue arbeitet nach dem Prinzip Zuerst rein, Zuerst raus (engl.: First In First Out [FIFO]), d.h. eingehende Nachrichten werden zunächst eingereiht und dann nacheinander abgearbeitet. Innerhalb einer Komponente kann es mehrere Queues mit unterschiedlichen Prioritäten und Aufgaben geben. Für die interne Kommunikation eines Prozesses wird eine Internal Queue definiert. Nachrichten von anderen Prozessen werden entweder in der Normal Queue abgelegt oder in der System Queue, wobei letzere mit einer höheren Priorität abgearbeitet wird. T. Holstein,

20 KAPITEL 2. GRUNDLAGEN Prozess 2 Shared Memory Prozess 3 Prozess 1 Abbildung 2.1: Ein gemeinsamer Speicherbereich von Prozessen wird Shared Memory genannt (Abbildung 9.5 in [Wie07, S. 138]). Während Queues nur für die Verteilung von Nachrichten fester Größe gedacht sind, können Daten-Container komponentenspezifische Daten speichern. Ein Daten- Container variiert von Komponente zu Komponente. Um eine Nachricht von einem Prozess zu einem anderen Prozess zu schicken, wird diese in die Message Queue des MainDispatchers kopiert. Der MainDispatcher hat die Aufgabe, alle Nachrichten an die entsprechenden Zielprozesse weiterzuleiten. Dies geschieht, indem der MainDispatcher die Nachricht in die Queue des Zielprozesses kopiert (siehe 2.2). Hierzu enthält jede Nachricht die ID der jeweiligen Empfängerkomponente. Obwohl es auch möglich wäre, eine Nachricht direkt in die Queue des Zielprozesses einzureihen, wurde dieser Umweg festgelegt, um Analysen und Optimierungsverfahren zu vereinfachen. Wenn alle Nachrichten immer über den MainDispatcher geschickt werden, können Fehler und Probleme an einer zentralen Stelle festgestellt werden. Andernfalls müsste jeder Prozess einzeln überwacht werden. Außerdem wird die Prioritätsverteilung erleichtert, da alle Nachrichten von derselben Komponente übermittelt werden. Während des Einreihens einer neuen Nachricht in die Queue eines Prozesses wird der jeweilige Prozess automatisch per Semaphor benachrichtigt. Eine Routine wird ausgelöst, die die Nachricht innerhalb des Prozesses abarbeitet. Im optimalen Fall ist ein Prozess solange blockiert bzw. am Warten, bis neue Nachrichten in dessen Queue bereitliegen Leistung und Speicherverbrauch Wie in der allgemeinen embedded Programmierung wird auch im ICM-Framework darauf geachtet, Speicher nicht dynamisch zu allokieren. Speicher wird stattdessen schon während des Kompilierens berechnet und reserviert, bevor er später von T. Holstein,

21 KAPITEL 2. GRUNDLAGEN Semaphor Internal Queue Normal Queue Shared Memory HMI HMI Komponente Wird getriggert durch Semaphor. Message von Logik Komponente hat ihr Ziel erreicht. MainDispatcher Semaphor Internal Queue Normal Queue Logik Komponente MainDispatcher Komponente Wird getriggert durch Semaphor. Kopiert Message in die Queue der Ziel Komponente. Semaphor Internal Queue Normal Queue Daten- Container Logik Komponente HMI Logik Komponente Erzeugt ein Event mit dem Ziel HMI und kopiert es in die NormalQueue des MainDispatchers Abbildung 2.2: Eine Nachricht wird von einer logischen Komponente an die HMI gesendet. Der MainDispatcher stellt die Nachricht zu. Objektinstanzen instantiiert wird. Dies hat mehrere Gründe. Zum einen kann so gezielter mit den nur begrenzt verfügbaren Speicher-Ressourcen umgegangen werden und zum anderen wird dadurch der Speicher nicht fragmentiert. Da Objekte im Speicher nicht gelöscht werden bzw. der Speicher nicht freigegeben wird, kann er auch nicht von anderen Objekten allokiert werden, wie es bei der dynamischen Speicherverwaltung der Fall wäre. In [Wie07] wird darauf hingewiesen, dass eine dynamische Allokierung von Speicher zu Problemen führen kann. In Bezug auf die Verwendung von CPU-Ressourcen wird darauf geachtet, dass eine Komponente kein rechenintensives Polling verwendet oder unsinnige Berechnungen durchführt. Erst wenn ein Modul tatsächlich wieder etwas zu tun hat, darf es wieder Rechenleistung in Anspruch nehmen. Am Beispiel des Grafik- Threads innerhalb der HMI kann dies gut erklärt werden. Der Grafik-Thread soll nur aktiv sein, wenn sich die grafische Oberfläche verändert hat, d.h. ein unnötiges Neuzeichnen der grafischen Oberfläche wird gezielt vermieden, um Performance zu sparen. 2.4 Flash Adobe Flash ist vor allem durch große Webseiten wie z.b. YouTube.com oder Scribd.com bekannt, die auf Flash setzen, um interaktive Videos und Inhalte zu präsentieren. Flash umfasst eine Reihe von Produkten, die oft auch als Adobe Flash Plattform referenziert werden. Die beiden wichtigsten Bestandteile davon sind die Adobe Flash Autorenumgebung und der Adobe Flash Player. Mit der Autoren- T. Holstein,

GUI Programmierung mit Qt

GUI Programmierung mit Qt GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

Mehr

CREATIVE PROGRAMMING TOOLKITS

CREATIVE PROGRAMMING TOOLKITS CREATIVE PROGRAMMING TOOLKITS Unter Creative Programming Toolkits verstehen wir Software-Teile welche uns helfen vielfältige Medien-kunst zu erstellen. Viele dieser Werkzeuge wurden durch Künstler für

Mehr

DBUS Interprozess-Kommunikation für Embedded-Plattformen

DBUS Interprozess-Kommunikation für Embedded-Plattformen DBUS Interprozess-Kommunikation für Embedded-Plattformen Andreas Schwarz Neratec Solutions AG Firmenprofil Neratec Solutions AG Produkt-Entwicklungen für kundenspezifische elektronische Produkte Produkte

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

Mehr

NEXT GENERATION MOBILE PHONE PLATFORMS

NEXT GENERATION MOBILE PHONE PLATFORMS Stephan Zeisberg NEXT GENERATION MOBILE PHONE PLATFORMS Ein Einblick in die Systemarchitekturen aktueller Smartphones 1 Motivation Technologischer Stillstand in der Entwicklung mobiler Betriebssysteme

Mehr

Einführung in die Programmierung mit Qt

Einführung in die Programmierung mit Qt Einführung in die Programmierung mit Qt Dr. Ralf Schüler 5.11.2009 Was ist Qt? sprich: [kju:t] Klassenbibliothek für C++ (ferner Java, Python u.a.) sehr umfangreich: GUI, Stringverarbeitung, reguläre Ausdrücke,

Mehr

Datenhaltung für Android. Model First

Datenhaltung für Android. Model First Datenhaltung für Android Model First Frederik Götz, Johannes Tysiak 26.05.2011 Unser Ziel! 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 2 Agenda Android Quickstart Datenhaltung

Mehr

Content Management Systeme

Content Management Systeme Content Management Systeme Ein Vergleich unter besonderer Berücksichtigung von CoreMedia und TYPO3 Bachelorthesis im Kooperativen Bachelor Studiengang Informatik (KoSI) der Fachhochschule Darmstadt University

Mehr

3 Anwendungsarchitektur und Entwicklungsumgebung

3 Anwendungsarchitektur und Entwicklungsumgebung 21 3 Anwendungsarchitektur und Bei den Entwicklern von Web-basierten Dialogsystemen hat sich im Laufe der Zeit eine Vorgehensweise im Design von Anwendungen entwickelt, dies es ermöglicht, flexible Web-Dialoge

Mehr

Browserbasiertes, kollaboratives Whiteboard

Browserbasiertes, kollaboratives Whiteboard WS 2011/12 Bachelorarbeit Browserbasiertes, kollaboratives Whiteboard Sebastian Dorn 1 von 21 Inhalt 1. Motivation 2. Analyse 3. Design 4. Evaluation 5. Fazit Inhalt 2 von 21 Motivation Zusammenarbeit

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Autorensysteme für mobile Anwendungen - Totgesagte leben länger. Prof. Dr. Michael Bauer 25.10. 2012 Autorensysteme

Autorensysteme für mobile Anwendungen - Totgesagte leben länger. Prof. Dr. Michael Bauer 25.10. 2012 Autorensysteme Autorensysteme für mobile Anwendungen - Totgesagte leben länger Was ist, was will ein Autor? Produzent interaktiver, multimedialer Inhalte geschlossene Einheiten (Apps) keine Grenzen für Kreativität Entwicklungs-

Mehr

Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse

Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Wie man in C++ mit Hilfe von Qt GUI-Anwendungen programmieren kann.

Mehr

Praktikum IKT 3. Semester

Praktikum IKT 3. Semester Praktikum IKT 3. Semester Dr. Andreas Müller, TU Chemnitz, Fakultät für Informatik Inhaltsverzeichnis 1 1 Einführung in QT 1.1 Die QT-Bibliothek Informationen: http://www.trolltech.com Lehner, B: KDE-

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Calligra. Eine allgemeine Einführung

Calligra. Eine allgemeine Einführung Eine allgemeine Einführung Raphael Langerhorst Jost Schenck Deutsche Übersetzung: Maren Pakura Deutsche Übersetzung: Marco Wegner Deutsche Übersetzung: Hans-Frieder Hirsch 2 Inhaltsverzeichnis 1 Einführung

Mehr

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen P3.1. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Qt Framework. Thomas Keller - itcampus GmbH 14.08.2008. Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz

Qt Framework. Thomas Keller - itcampus GmbH 14.08.2008. Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz Qt Framework Thomas Keller - itcampus GmbH 14.08.2008 Creative Commons Namensnennung-Keine kommerzielle Nutzung 2.0 Deutschland Lizenz 1 Überblick 2 Die Themen Was ist Qt? Anwendungen Module Was macht

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme Smartphone - Betriebssysteme Peter Rami - Graz, 28.04.2009 Inhalt Smartphone Symbian OS Windows Mobile BlackBerry OS iphone OS Android Marktanteile & Ausblick Smartphone - Betriebssysteme Peter Rami -

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

Agilo [1] ist ein auf Trac [2] basierendes Scrum [3] Tool. Im Folgenden soll eine kurze Überischt gegeben werden, wie Agilo benutzt wird.

Agilo [1] ist ein auf Trac [2] basierendes Scrum [3] Tool. Im Folgenden soll eine kurze Überischt gegeben werden, wie Agilo benutzt wird. AGILO HOWTO Agilo [1] ist ein auf Trac [2] basierendes Scrum [3] Tool. Im Folgenden soll eine kurze Überischt gegeben werden, wie Agilo benutzt wird. ROLLEN IM TEAM In Scrum hat jedes Teammitglied eine

Mehr

Glossar. Launching auf.

Glossar. Launching auf. 243 Ad Hoc Distribution Die Ad Hoc Distribution ist eine Möglichkeit, um Ihre entwickelte Anwendung auf anderen Endgeräten zu verteilen. Diese Art der Verteilung erfolgt ohne den App Store. Die Anzahl

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

DURCH DEN EINSATZ VON REVAPP VEREINFACHEN SIE DEN SONST EHER KOMPLIZIERTEN UND

DURCH DEN EINSATZ VON REVAPP VEREINFACHEN SIE DEN SONST EHER KOMPLIZIERTEN UND 1 DURCH DEN EINSATZ VON REVAPP VEREINFACHEN SIE DEN SONST EHER KOMPLIZIERTEN UND ZEITAUFWENDIGEN ABNAHMEPROZESS IHRER VIDEOASSETS. DENN REVAPP ERMÖGLICHT DIE SICHTUNG UND ABNAHME (REVIEW AND APPROVAL)

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests Masterarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) im Masterstudiengang Wirtschaftswissenschaft

Mehr

C++ und mobile Plattformen

C++ und mobile Plattformen Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) C++ und mobile Plattformen Mit diesem Artikel möchte ich euch einen kurzen Überblick über die verschiedenen Plattformen für

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

Mehr

Präsentation Von Laura Baake und Janina Schwemer

Präsentation Von Laura Baake und Janina Schwemer Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel ab 2.6, aktuell 3.8 Managed Code,

Mehr

SMARTE WEB-TECHNOLOGIE FÜR HMIS DER GENERATION 4.0

SMARTE WEB-TECHNOLOGIE FÜR HMIS DER GENERATION 4.0 SMARTE WEB-TECHNOLOGIE FÜR HMIS DER GENERATION 4.0 PORTABEL INDIVIDUELL EFFIZIENT www.smart-hmi.de WebIQ Features List Das Framework WebIQ ist die ganzheitliche Lösung für die Erstellung von HMIs der Generation

Mehr

Medienkompetenz, Grafik und DTP

Medienkompetenz, Grafik und DTP VO 340381 Informationsdesign; Medienkompetenz, Grafik und DTP Zentrum für Translationswissenschaft Letztes Mal sprachen wir über: Computer Aufbau Software Was ist Software? Software Soft im Sinne von weich/veränderbar

Mehr

Web und Mobile Apps Programmieren mit Dart

Web und Mobile Apps Programmieren mit Dart Web und Mobile Apps Programmieren mit Dart Marco Jakob Kalaidos Fachhochschule Schweiz majakob@gmx.ch Abstract: Bisher war es kaum realistisch, im Anfängerunterricht mobile oder webbasierte Applikationen

Mehr

Entwicklung und Integration mobiler Anwendungen. Oracle Deutschland B.V. & Co. KG

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG Entwicklung und Integration mobiler Anwendungen Oracle Deutschland B.V. & Co. KG Global Users (Millions) Der Trend ist eindeutig. Trend zu mobilen Endgeräten Wachstum des mobilen Datenverkehrs

Mehr

Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009

Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009 Subversion von Stefan Arndt, Christian Autermann und Dustin Demuth 5. November 2009 Inhaltsverzeichnis 1 Versionierung 1 1.1 Zweck von Versionierung................................. 1 1.2 Geschichtliches......................................

Mehr

PDF FormServer Quickstart

PDF FormServer Quickstart PDF FormServer Quickstart 1. Voraussetzungen Der PDF FormServer benötigt als Basis einen Computer mit den Betriebssystemen Windows 98SE, Windows NT, Windows 2000, Windows XP Pro, Windows 2000 Server oder

Mehr

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina Ajax & GWT Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina Ajax Technisches Verfahren, bei dem Browser aktualisierte Inhalte nicht mehr synchron

Mehr

Mobile Applications. Adrian Nägeli, CTO bitforge AG

Mobile Applications. Adrian Nägeli, CTO bitforge AG Mobile Applications Adrian Nägeli, CTO bitforge AG Inhalt Vorstellung Marktübersicht Entwicklung Adrian Nägeli Dipl. Inf.-Ing FH Seit 2005 bei bitforge bitforge AG Standort Rapperswil-Jona Gründung 2004

Mehr

Programmieren für iphone und ipad

Programmieren für iphone und ipad Markus Stäuble Programmieren für iphone und ipad Einstieg in die App-Entwicklung für das ios 4 3., aktualisierte und erweiterte Auflage dpunkt.verlag 1 Einleitung 1 1.1 Begriffe 2 1.2 Was behandelt dieses

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

TM1 mobile intelligence

TM1 mobile intelligence TM1 mobile intelligence TM1mobile ist eine hochportable, mobile Plattform State of the Art, realisiert als Mobile BI-Plug-In für IBM Cognos TM1 und konzipiert als Framework für die Realisierung anspruchsvoller

Mehr

Auffrischung jquery. jquery Mobile. Marco Francke I 24.02.2011

Auffrischung jquery. jquery Mobile. Marco Francke I 24.02.2011 Auffrischung jquery jquery Mobile Marco Francke I 24.02.2011 Mayflower GmbH 2010 write less do more Marco Francke 24. Februar 2011 24.02.11 Mayflower GmbH 2 Mayflower GmbH 2010 Was ist jquery und was kann

Mehr

Sicherheit in Android

Sicherheit in Android Motivation Aufbau Sicherheit Ausblick Quellen Sicherheit in Android Peter Salchow INF-M2 - Anwendungen 1 Sommersemester 2008 Department Informatik HAW Hamburg 20. Mai 2008 Peter Salchow Sicherheit in Android

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Open Source. Thomas Weibel, Multi & Media thomas.weibel@bluewin.ch www.thomasweibel.ch

Open Source. Thomas Weibel, Multi & Media thomas.weibel@bluewin.ch www.thomasweibel.ch Open Source Thomas Weibel, Multi & Media thomas.weibel@bluewin.ch www.thomasweibel.ch Inhalt 1. Begriff, Lizenzen 2. HTML 5, Nachschlagewerke 3. Software 4. Linux: Ubuntu 5. Content-Management-Systeme

Mehr

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

VCM Solution Software

VCM Solution Software VCM Solution Software Die BORUFA VCM Solution ist ein umfangreiches Werkzeug für virtuelles Content Management basierend auf hochauflösenden vollsphärischen Bildern, 360 Videos und Punktwolken. In der

Mehr

Falko Braune Präsentation - Hauptseminar Web Engineering Professur Verteilte und selbstorganisierende Rechnersysteme Technische Universität Chemnitz

Falko Braune Präsentation - Hauptseminar Web Engineering Professur Verteilte und selbstorganisierende Rechnersysteme Technische Universität Chemnitz Falko Braune Präsentation - Hauptseminar Web Engineering Professur Verteilte und selbstorganisierende Rechnersysteme Technische Universität Chemnitz - 19.12.2012 1. Einleitung 2. Technologie 3. Bewertung

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Handbuch für ios 1.4 1

Handbuch für ios 1.4 1 Handbuch für ios 1.4 1 Inhaltsverzeichnis 1. Leistungsumfang... 3 1.1 Über Boxcryptor Classic... 3 1.2 Über dieses Handbuch... 4 2. Installation... 5 3. Grundfunktionen... 6 3.1. Einrichtung von Boxcryptor

Mehr

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme

Diplomarbeit. Entwurf eines generischen Prozessleitstandes für Change Request Systeme Fakultät für Mathematik, Informatik und Naturwissenschaften Forschungsgruppe Softwarekonstruktion Diplomarbeit Entwurf eines generischen Prozessleitstandes für Change Request Systeme Development of a Generic

Mehr

Multimedia/Graphics Libraries & Systems

Multimedia/Graphics Libraries & Systems Multimedia/Graphics Libraries & Systems Einführung und Themenvorstellung Prof. Dr. Jürgen Döllner Juri Engel, Tassilo Glander, Martin Beck, Stefan Buschmann, Matthias Trapp Ziele des Seminars 2 Analyse,

Mehr

Deutschland 8,50 Österreich 9,80 Schweiz 16,80 sfr. www.dotnet-magazin.de 7.2011. Outlook-Kalender in WPF

Deutschland 8,50 Österreich 9,80 Schweiz 16,80 sfr. www.dotnet-magazin.de 7.2011. Outlook-Kalender in WPF z.net MAGAZIN dot Alle Beispiele und Quellcodes zu den Artikeln dieser Ausgabe Bonus-Video von der BASTA! Spring 2011 Architektur für die Cloud Testversionen TeamPulse Ranorex Automation Framework dotpeek

Mehr

Objektorientierte Softwareentwicklung SoSe 15

Objektorientierte Softwareentwicklung SoSe 15 Objektorientierte Softwareentwicklung SoSe 15 Heinz Faßbender Raum E148 Tel. 0241/6009 51913 Email: fassbender@fh-aachen.de www.fassbender.fh-aachen.de FH AACHEN UNIVERSITY OF APPLIED SCIENCES FACHBEREICH

Mehr

In diesem Dokument soll kurz auf die Bedienung von VST3PluginTestHost.exe eingegangen werden.

In diesem Dokument soll kurz auf die Bedienung von VST3PluginTestHost.exe eingegangen werden. Hochschule für Angewandte Wissenschaften Hamburg Hamburg University of Applied Sciences Fakultät Technik und Informatik Department Informations- und Elektrotechnik Projekt E7 im Bachelorstudiengang Informations-

Mehr

Eclipse User Interface Guidelines

Eclipse User Interface Guidelines SS 2009 Softwarequalität 06.05.2009 C. M. Bopda, S. Vaupel {kaymic/vaupel84}@mathematik.uni-marburg.de Motivation (Problem) Motivation (Problem) Eclipse is a universal tool platform - an open, extensible

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Business Process Execution Language. Christian Vollmer Oliver Garbe

Business Process Execution Language. Christian Vollmer <christian.vollmer@udo.edu> Oliver Garbe <oliver.garbe@udo.edu> Business Process Execution Language Christian Vollmer Oliver Garbe Aufbau Was ist BPEL? Wofür ist BPEL gut? Wie funktioniert BPEL? Wie sieht BPEL aus?

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

CloudMatic V1.0. Inhalt

CloudMatic V1.0. Inhalt CloudMatic V1.0 Inhalt Einleitung... 2 CCUs hinzufügen... 3 meine-homematic.de... 4 Eigenes VPN... 4 View Editor... 5 Übersicht... 5 Allgemeine Einstellungen... 6 Kanäle hinzufügen... 6 Spezielle Kanäle...

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

Mehr

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de Webmail Anleitung für Ihr online E-Mail-Postfach http://webmail.willytel.de Inhalt: Inhalt:... 2 Übersicht:... 3 Menü:... 4 E-Mail:... 4 Funktionen:... 5 Auf neue Nachrichten überprüfen... 5 Neue Nachricht

Mehr

re-lounge GmbH MEDIENBÜRO

re-lounge GmbH MEDIENBÜRO re-lounge GmbH MEDIENBÜRO Think mobile: Die Bedeutung des mobilen Web für Unternehmen 26. JANUAR 2013 01 Ansprechpartner Oliver Schmitt // Geschäftsführer der re-lounge GmbH oliver.schmitt@re-lounge.com

Mehr

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Konzept eines Datenbankprototypen 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Inhalt (1) Projektvorstellung & Projektzeitplan Softwarekomponenten Detailierte Beschreibung der System Bausteine

Mehr

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia Auf einen Blick Auf einen Blick TEIL I Grundlagen 1 Android eine offene, mobile Plattform... 21 2 Hallo Android!... 43 3 Von der Idee zur Veröffentlichung... 73 TEIL II Elementare Anwendungsbausteine 4

Mehr

OpenCms jbpm Workflow Engine. OpenCms und jbpm Workflow Engine

OpenCms jbpm Workflow Engine. OpenCms und jbpm Workflow Engine OpenCms und jbpm Workflow Engine Geschäftliche Abläufe in einem Unternehmen folgen zu einem großen Prozentsatz beschreibbaren Prozessen, den so genannten Geschäftsprozessen. Diese Erkenntnis führte zum

Mehr

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik Einleitung, Anwendungsfälle, Programmierung MKT Systemtechnik Autor: Stand: Ablage: Wolfgang Büscher Dipl.-Ing. Soft- und Hardware-Entwicklung buescher@mkt-sys.de 2015-01-21 (JJJJ-MM-DD) art85133_einfuehrung_mktview_scriptsprache.odp/pdf;

Mehr

Mac Desktop Entwicklung

Mac Desktop Entwicklung headquarter Mac Desktop Entwicklung Phillipp Bertram DEVELOPER DAY 20vierzehn http://www.admiralmarkets.com/images/mtmac/metatrader4-for-mac-os.png 2 "There is no reason for any individual to have a computer

Mehr

Die perfekte Online-Hilfe auf Basis von HTML5 und Open-Source- Komponenten. Jochen Marczinzik 11.04.2014, tekom Führjahrstagung

Die perfekte Online-Hilfe auf Basis von HTML5 und Open-Source- Komponenten. Jochen Marczinzik 11.04.2014, tekom Führjahrstagung Die perfekte Online-Hilfe auf Basis von HTML5 und Open-Source- Komponenten Jochen Marczinzik 11.04.2014, tekom Führjahrstagung 1 Zur Person Dipl.-Inf. (Univ.) Jochen Marczinzik 1993 1999 DATEV eg Entwickler

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

SMART Notebook 11.2 Software für Windows - und Mac-Computer

SMART Notebook 11.2 Software für Windows - und Mac-Computer Versionshinweise SMART Notebook 11.2 Software für Windows - und Mac-Computer Über diese Versionshinweise Diese Versionshinweise fassen die Funktionen der SMART Notebook 11.2 Collaborative Learning Software

Mehr

Arbeiten mit Acrobat. Vorstellung von Adobe Acrobat Bearbeitung des Dokuments Präsentationen erstellen Teamarbeit

Arbeiten mit Acrobat. Vorstellung von Adobe Acrobat Bearbeitung des Dokuments Präsentationen erstellen Teamarbeit Arbeiten mit Acrobat Vorstellung von Adobe Acrobat Bearbeitung des Dokuments Präsentationen erstellen Teamarbeit Vollbildmodus Wählen Sie das Menü Fenster Vollbildmodus. Die aktuell angezeigte Seite verdeckt

Mehr

Ohne Technik kein Online-Journalismus

Ohne Technik kein Online-Journalismus Ohne Technik kein Online-Journalismus von Frank Niebisch, Redakteur für Technologie- und Medien-Themen ECONOMY.ONE AG - Verlagsgruppe Handelsblatt Online. f.niebisch@t-online.de 0173/2934640 Bochum, 15.05.2002

Mehr

Mobile Kartenanwendungen im Web oder als App?

Mobile Kartenanwendungen im Web oder als App? Mobile Kartenanwendungen im Web oder als App? Agenda Anforderungen an eine mobile Kartenanwendung Warum mobile Anwendungen? Mobil ist nicht genug! Knackpunkte bei der Entwicklung mobiler Kartenanwendungen

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

1 Einführung Adobe sagt Danke

1 Einführung Adobe sagt Danke Einführung 2 1 Einführung. Adobe sagt Danke Für das wichtige Feedback der Community bedankt sich Adobe. So ist die erste Version von Edge Animate kostenlos erhältlich. Erst für das zweite Release werden

Mehr