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,

Embedded Computing Conference 2014 Embedded UI Qt5

Embedded Computing Conference 2014 Embedded UI Qt5 Embedded Computing Conference 2014 Embedded UI Qt5 2 Embedded User Interfaces in the Smartphone Age The Power of Qt5 and the QNX OS Qt Vorstellung 3 Qt ( cute ) Hat eine lange Geschichte (Beginn der Entwicklung:

Mehr

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

Rapid Prototyping. Mai 2008 Allan Jäke usability@jaeke.de

Rapid Prototyping. Mai 2008 Allan Jäke usability@jaeke.de Mai 2008 Allan Jäke usability@jaeke.de Allgemein Ursprung Ursprünglich für Maschinenbau erfunden Holz, Metall, Kunststoffe, Beton,... Danach Softwareentwicklung frühzeitiges Feedback bezüglich der Eignung

Mehr

Technische Hintergründe des Web 2.0. Praxisprojekt Du bist das Netz! Web 2.0 Morten Strüwe, Florian Brachten

Technische Hintergründe des Web 2.0. Praxisprojekt Du bist das Netz! Web 2.0 Morten Strüwe, Florian Brachten Technische Hintergründe des Web 2.0 Praxisprojekt Du bist das Netz! Web 2.0 Morten Strüwe, Florian Brachten Überblick 1. die Ursprünge des Internet 2. die Techniken des Internet 2.1 Hardware 2.2 Software

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

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

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

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools 1 Kurze HTML-Geschichte Die HTML4-Spezifikation wurde im Dezember 1997 vorgelegt. Seitdem Stagnation! Das W3C arbeitete

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

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

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Glossar Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Methoden und/oder Eigenschaften, die eine bestimmte Berechnung ausführt, eine Eigenschaft ändert oder eine Methode

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

Übersicht GUI PyQT TU Dresden, 23.05.2011 Sommerkurs Python - 05. GUI Folie 1 von XYZ

Übersicht GUI PyQT TU Dresden, 23.05.2011 Sommerkurs Python - 05. GUI Folie 1 von XYZ Übersicht GUI PyQT Folie 1 von XYZ Graphical User Interface GUI Folie 2 von XYZ GUI - Graphical User Interface Ø Wikipedia sagt: Eine grafische Benutzeroberfläche ist eine Software-Komponente, die dem

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

Programmieren. Programmieren. Webseiten aufpeppen. Grafikkarte ausreizen. Coole Sprachen. Kinect am PC. 3D-Programmierung

Programmieren. Programmieren. Webseiten aufpeppen. Grafikkarte ausreizen. Coole Sprachen. Kinect am PC. 3D-Programmierung jquery: E-Book und Video auf DVD DVD Listings: Win-8-App im Eigenbau E-Book: jquery Das JavaScript- Framework für interaktives Design Videotutorial Moderne Webseiten gestalten mit jquery UI Visual Studio

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

Was ist QT? Beispiele: KDE Google Earth Mathematika

Was ist QT? Beispiele: KDE Google Earth Mathematika Einführung in QT Was ist QT? QT ist eine Klassenbibliothek für plattformübergreifende Programmierung graphischer Benutzeroberflächen QT ist für verschiedene Graphikplattformen wie X11 (Unix), Windows,

Mehr

Adobe Certified Expert-Programm

Adobe Certified Expert-Programm Adobe Certified Expert-Programm Product Proficiency-Prüfungs-Bulletin Adobe Flash CS3 Prüfungsnr. 9A0-058 Checkliste für die ACE-Zertifizierung Die folgende Checkliste hilft Ihnen dabei, die ACE-Zertifizierung

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

GUI Programmierung mit GTK

GUI Programmierung mit GTK LinuxFocus article number 295 http://linuxfocus.org GUI Programmierung mit GTK by Özcan Güngör About the author: Ich benutze Linux seit 1997. Freiheit, Flexibilität, Open

Mehr

Advanced IT-Basics. Referenten: Olga Assmus Marc Pawlowski 28.05.14

Advanced IT-Basics. Referenten: Olga Assmus Marc Pawlowski 28.05.14 Advanced IT-Basics Referenten: Olga Assmus Marc Pawlowski 28.05.14 Was ist Linux? Bezeichnet nur den Kernel Betriebssystemkern: - legt Betriebs- und Datenorganisation fest, auf der die weitere Software

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

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail.

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail. Rich Internet Applications, Flex & Mate (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail.com Überblick Mein Thema im Überblick 1. Definitionen 2. Rich Internet Applications

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2 02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein

Mehr

Think Mobile Effiziente Entwicklungsstrategien im GIS. Kai Hoffmann, BTC AG

Think Mobile Effiziente Entwicklungsstrategien im GIS. Kai Hoffmann, BTC AG Think Mobile Effiziente Entwicklungsstrategien im GIS Kai Hoffmann, BTC AG Mobile Endgeräte Was ist zu beachten? In dieser Betrachtung Smartphone Tablet Unterschiedliche Hardwareausstattung Bildschirmgröße

Mehr

1 Einleitung. 1.1 Flash? Was ist das überhaupt? 1.1.1 ActionScript

1 Einleitung. 1.1 Flash? Was ist das überhaupt? 1.1.1 ActionScript 1 1.1 Flash? Was ist das überhaupt? Bestimmt sind Ihnen im Web schon Seiten begegnet, in die mehr oder weniger große Flash-Filme eingebunden waren. Dabei reicht das Spektrum von einfachen Intro-Animationen

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

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2012 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

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

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

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

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

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

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

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

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

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

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

Die Arbeitsweise von Flash

Die Arbeitsweise von Flash Die Arbeitsweise von Flash Daten importieren Wenn man auf das Datei-Menü in Flash klickt kann man einfach eine Datei aus Photoshop oder anderen Grafik-Programmen einfügen. Dazu klickt man auf den Befehl

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

FLASH. Flash und Video. Flash und Video, macht das Sinn?

FLASH. Flash und Video. Flash und Video, macht das Sinn? FLASH Flash und Video Flash und Video Flash und Video, macht das Sinn?! Ja, weil es eine wichtige Präsentationsform ist, gerade dort, wo reale Abläufe dargestellt werden müssen! Ja, weil es zum Teil eine

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

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Dokumentation. MC Frog von André Klonz, Rico Andrich und Steve Schneider

Dokumentation. MC Frog von André Klonz, Rico Andrich und Steve Schneider Dokumentation MC Frog von André Klonz, Rico Andrich und Steve Schneider Aufgabenstellung: Die Aufgabe bestand darin, einen offline Editor für Multiple-Choice-Tests im QTI 2 Format zu schreiben, der Eigenschaften

Mehr

Benutzeroberflächen. Java Teil 4

Benutzeroberflächen. Java Teil 4 Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in

Mehr

Hochschule Heilbronn Technik Wirtschaft Informatik

Hochschule Heilbronn Technik Wirtschaft Informatik Hochschule Heilbronn Technik Wirtschaft Informatik Studiengang Electronic Business Diplomarbeit "Java-Frameworks für Rich Internet Applications" vorgelegt bei Professor Dr. Michael Gröschel von Tushig

Mehr

Simulink - Modelle grafisch vergleichen

Simulink - Modelle grafisch vergleichen Simulink - Modelle grafisch vergleichen Effizienzsteigerung bei der modellbasierten Softwareentwicklung Dr. Helmuth Stahl ExpertControl GmbH Email: hstahl@expertcontrol.com Web: www.expertcontrol.com Übersicht

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

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

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

Mobile Webapps in kürzester Zeit: APEX mobile!

Mobile Webapps in kürzester Zeit: APEX mobile! Mobile Webapps in kürzester Zeit: APEX mobile! Carsten Czarski ORACLE Deutschland B.V. & Co KG Riesstr. 25, 80992 München Schlüsselworte APEX, Mobile Anwendungen, jquery Mobile Einleitung Anwendungen für

Mehr

Einführung Internettechnologien. - Clientseitige Programmierung -

Einführung Internettechnologien. - Clientseitige Programmierung - Einführung Internettechnologien - Clientseitige Programmierung - Client Client: Programm, das Daten von einem Server anfordert In einem Netzwerk können unterschiedliche Clients zum Einsatz kommen Im Folgenden:

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Vaadin TouchKit. W3L AG info@w3l.de 10.2012

Vaadin TouchKit. W3L AG info@w3l.de 10.2012 1 Vaadin TouchKit W3L AG info@w3l.de 10.2012 2 Inhaltsverzeichnis Einführung Software-Plattformen TouchKit-Plug-In Integrationsmöglichkeiten Vaadin-TouchKit-Projekt GUI-Komponenten Live-Demo Geräte-Unterstützung

Mehr

Das Open Source Content Management System

Das Open Source Content Management System Das Open Source Content Management System Erweiterbarkeit und Individualisierung visions-marketing Unternehmensberatung Alexander Winkler Postfach 950180 81517 München Tel.+Fax: 089 / 38 90 06 53 Mobil.:

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

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

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

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

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

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

Mehr

Das Handbuch zu KSnapshot

Das Handbuch zu KSnapshot Richard J. Moore Robert L. McCormick Brad Hards Korrektur: Lauri Watts Entwickler: Richard J Moore Entwickler: Matthias Ettrich Übersetzung des Handbuchs: Robert Gogolok Übersetzung des Handbuchs: Kilian

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

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

Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten

Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten Bachlor-Abschlussarbeit Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten im Studiengang Informatik der Fakultät IV - Wirtschaft und Informatik Sommersemester 2009 Burim

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

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

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

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Was ist eine GUI? Was ist QT? Erste Schritte:

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

Java Applet Alternativen

Java Applet Alternativen White Paper Java Applet Alternativen Version 1.0, 21.01.2014 Tobias Kellner tobias.kellner@egiz.gv.at Zusammenfassung: Aufgrund diverser Meldungen über Sicherheitslücken in Java haben in letzter Zeit Browser-Hersteller

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Di 8.4. Silverlight: Windows Presentation Foundation für s Web. Christian Wenz

Di 8.4. Silverlight: Windows Presentation Foundation für s Web. Christian Wenz Di 8.4 January 21-25, 2008, Munich, Germany ICM - International Congress Centre Munich Silverlight: Windows Presentation Foundation für s Web Christian Wenz Silverlight // WPF für s Web OOP 2008 // Di

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

Model View Controller Pattern

Model View Controller Pattern Christian Vogt HAW Hamburg 19. Dezember 2011 Inhaltsverzeichnis 1 Prolog Einleitung Entwurfsmuster andere Muster 2 Model-View-Controller Hintergrund Konzept Umsetzung 3 Beispiele Überblick Beispiel in

Mehr

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

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

Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht

Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht Platz für ein Bild (optional) Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht 1.0 1.1 Elektronik? Was heisst modellbasierte Software-Entwicklung für uns? Was sind für eine

Mehr

Verbesserung des Prototyping Prozesses von Infotainment Systemen mit der Hilfe von Adobe Flash und Flex

Verbesserung des Prototyping Prozesses von Infotainment Systemen mit der Hilfe von Adobe Flash und Flex Verbesserung des Prototyping Prozesses von Infotainment Systemen mit der Hilfe von Adobe Flash und Flex Abschlussvortrag Projektarbeit Simon Stusak Betreuer: Michael Sedlmair Externer Betreuer: Mario Tokarz

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

Mehr

Web Dynpro / FloorPlanManager / NWBC

Web Dynpro / FloorPlanManager / NWBC Web Dynpro / FloorPlanManager / NWBC Bernd Zehentner TECHNISCHE SAP BERATUNG bze@snapconsult.com snapconsult.com Norbert Prager TECHNISCHE SAP BERATUNG npr@snapconsult.com snapconsult.com 16.06.2014 SNAP

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

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

Apollo Überblick. Klaus Kurz. Manager Business Development. 2007 Adobe Systems Incorporated. All Rights Reserved.

Apollo Überblick. Klaus Kurz. Manager Business Development. 2007 Adobe Systems Incorporated. All Rights Reserved. Apollo Überblick Klaus Kurz Manager Business Development 1 Was ist Apollo? Apollo ist der Codename für eine plattformunabhängige Laufzeitumgebung, entwickelt von Adobe, die es Entwicklern ermöglicht ihre

Mehr

epub Von epub bis Flash HTML5 Flash XML xhtml Apps IDML ebook Kindle 16. September 2011 Swiss Publishing Week

epub Von epub bis Flash HTML5 Flash XML xhtml Apps IDML ebook Kindle 16. September 2011 Swiss Publishing Week IDML epub ebook Kindle HTML5 XML xhtml Flash Apps Von epub bis Flash 16. September 2011 Swiss Publishing Week Kontakt: Folien: gregor.fellenz@publishingx.de http://www.publishingx.de/dokumente Digitale

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

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

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

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

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. Inhalt 1 Übersicht 2 Anwendungsbeispiele 3 Einsatzgebiete 4 Systemanforderungen 5 Lizenzierung 6 Installation 7 Key Features 8 Funktionsübersicht (Auszug) Seite 2 von 14 1. Übersicht MIK.starlight bietet

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

Inhalt und Ziele. Homepage von Anfang an. Herzlich Willkommen! HTML Syntax; grundlegende Grafik- und Bildbearbeitung für das Internet;

Inhalt und Ziele. Homepage von Anfang an. Herzlich Willkommen! HTML Syntax; grundlegende Grafik- und Bildbearbeitung für das Internet; Homepage von Anfang an Herzlich Willkommen! Caroline Morhart-Putz caroline.morhart@wellcomm.at Inhalt und Ziele!! HTML Grundlagen - die Sprache im Netz; HTML Syntax;!! Photoshop - Optimieren von Bildern,

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

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

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

InfoPoint vom 9. November 2011

InfoPoint vom 9. November 2011 InfoPoint vom 9. November 2011 Was ist Joomla? Theorie Installation Extensions Administration Demo Joomla ist ein modulares content management system (CMS) Es ermöglicht eine Website zu erstellen und online

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