Konzeption und Entwicklung von regelbasiertem Mobile Device Management des Android-Betriebssystems

Größe: px
Ab Seite anzeigen:

Download "Konzeption und Entwicklung von regelbasiertem Mobile Device Management des Android-Betriebssystems"

Transkript

1 Konzeption und Entwicklung von regelbasiertem Mobile Device Management des Android-Betriebssystems Masterthesis zur Erlangung des Grades Master of Science im Studiengang Computer Science and Media der Fakultät für Druck und Medien der Hochschule der Medien Stuttgart vorgelegt von Tobias Weidinger, B.Sc. Erstprüfer: Prof. Dr. Simon Wiest Zweitprüfer: Christian Feser, M.Sc. Stuttgart, den 3. November 2012

2 Kapitel 5 Konzept 5.1 Grobkonzept In diesem Abschnitt werden grundlegende Funktionsweisen und Mechanismen der erarbeiteten Lösung beschrieben. Für die kontextsensitive Verarbeitung von Regeln wird ein Konzept, das auf der Verarbeitung von Ereignissen und dem Auslösen von Aktionen beruht, gegeben. Dabei wird auf Funktionen des bestehenden MDM Systems (vgl. Abbildung 2.1) aufgebaut. An dessen Stelle kann jedoch auch ein vergleichbares System, dass die nötigen Schnittstellen (APIs) zur Verfügung stellt, eingesetzt werden. Mithilfe der nachfolgenden Beschreibung von Arbeitsabläufen und Funktionsweisen soll das grundlegende Konzept und die Arbeitsweise des hier vorgestellten Systems erläutert werden. Durch ein Administrationswerkzeug lassen sich Regeln formulieren, die über eine kabellose Datenverbindung auf ein oder mehrere bestimmte Endgeräte übertragen werden. Die Sprache in der die Regeln formuliert werden ist eine Beschreibungssprache, deren Anspruch es ist, leicht erlernbar zu sein. Weitere Eigenschaften finden sich im Namen Receptive Ubiquitous Lightweight Execution Engine (RULE) wieder. Das Akronym soll den Charakter der Anwendung widerspiegeln. Diese Eigenschaften sind Empfänglichkeit, Omnipräsenz und Leichtigkeit. Der Aufbau und Funktionsumfang der Sprache sollen Mitarbeiter, die für Einhaltung von Geschäftsbestimmungen und Vorschriften (engl. compliance) verantwortlich sind, gewohnte Strukturen zur Verfügung stellen. Regeln definieren das Verhalten des betreffenden Geräts für gewisse Situationen. Dabei wird nach folgendem Muster vorgegangen: Wenn Situation, dann Reaktion. Eine Situation ist in diesem Kontext ein Ereignis oder mehrere Ereignisse. Sie können einen Zeitraum besitzen, müssen dies jedoch nicht. Sobald das Gerät feststellt, dass das Ereignis eintritt werden die zuvor 39

3 Kapitel 5. Konzept definierten Reaktionsmechanismen ausgeführt. Im Folgenden werden diese Reaktionsmechanismen als Aktionen bezeichnet. In Kapitel 6.3 wird auf Ereignisse und Aktionen näher eingegangen. Konkrete Beispiele für Regeln sind in Kapitel 5.2 gegeben. Der Lebenszyklus von Regeln und daraus resultierende Anforderungen an das System werden in Kapitel thematisiert. 5.2 Definition von Prozessen Einer der größten Nutzwerte durch benutzergesteuerte Regelwerke ist, dass sich dadurch individuelle und sehr unterschiedliche Verhaltensweisen in Form von Regeln definieren lassen. Nachfolgend sind einige Beispiele für mögliche Regeln und Anwendungsfälle gegeben. Die Beispielregeln sind als Prosatext 18 in kursiver Schrift formuliert und setzen sich aus Prämisse und Reaktion zusammen. Hier wird das Pfeilsymbol verwendet um die Prämisse von der Reaktion zu trennen. Das Wort Gerät bezeichnet dabei ein Hardware, auf der das Android Betriebssystem läuft und auf dem die Clientanwendung (siehe Kapitel 5.4) installiert wurde. Vor jedem Beispiel erklärt ein kurzer Text den Kontext und die Notwendigkeit der jeweiligen Regel. 1. Verlorene oder gestohlene Geräte stellen eine große Gefahr für Unternehmen dar. Firmendaten können in unbefugten Händen großen Schaden anrichten. Die Daten zu schützen und das Gerät im besten Fall dem Unternehmen zurück zu überführen haben dabei hohe Priorität. Benutzer verliert Gerät. Ortung und Sperren des Geräts. 2. Für den Fall, dass ein Gerät trotz Ortungsversuchs nicht aufgefunden werden kann soll sichergestellt werden, dass keine Dateien, Kontakte oder Anwendungen in unbefugte Hände geraten können. Deshalb sollen sie endgültig gelöscht werden. Ortung bei verlorenem Gerät schlägt fehl. Setze das Gerät auf Werkseinstellungen zurück (wipe). 3. Für viele Unternehmen entstehen durch Auslandsreisen ihrer Mitarbeiter sehr hohe Kosten. Einen bedeutenden Anteil daran tragen Roaming-Gebühren für Datenverbindungen und Telefonie aus dem Ausland. Das Gerät befindet sich im Ausland (Roaming). Leite eingehende Anrufe zu einer bestimmten Inlandsfestnetznummer um. 18 Diese Beispiele sind zur Verdeutlichung der Fachlichkeit gedacht. Die Syntax spielt dabei keine Rolle. 40

4 5.2. Definition von Prozessen 4. Zahlreiche Unternehmen verbieten es ihren Mitarbeitern und Besuchern aus Geheimhaltungsgründen Mobiltelefone mit Kameras mitzubringen. Ein verlässlicher Mechanismus, der die Kamera auf dem Werksgelände deaktiviert kann jedoch die Geheimhaltung ebenso fördern. Benutzer betritt mit dem Gerät das Werksgelände. Kamera wird deaktiviert. 5. Im Sinne der passiven Sicherheit gilt es zu erkennen, wenn eine Gefahrensituation entsteht und bereits präventiv darauf zu reagieren. Wenn sich beispielsweise durch ein gewisses Nutzerverhalten ankündigt, dass das Gerät gestohlen wurde, können erste Maßnahmen zum Schutz eingeleitet werden bevor der Diebstahl bemerkt wurde. Das Passwort wurde mindestens 2 mal falsch eingegeben und die SIM Karte daraufhin entfernt. zum Sicherheitsbeauftragten wird gesendet und das Gerät gesperrt. 6. Ein weiteres Indiz für ein gestohlenes oder manipuliertes Gerät ist, dass Datenverbindungen zum MDM Server verhindert werden. Die stellt ein Sicherheitsrisiko dar und erfordert eine angemessene Reaktion. Über 5 Tage gelingt kein Kontakt zu dem MDM Server. Sperre Anwendung und richte Passwortschutz auf dem Gerät ein. 7. Um die Kommunikation mit Mitarbeitern zu vereinfachen sollte es möglich sein, stets die Infrastruktur, die aktuell zur Verfügung steht zu nutzen. Ein Beispiel dafür ist das Festnetztelefon am Arbeitsplatz. Das Gerät befindet sich in der Nähe des Arbeitsplatzes. Richte Rufumleitung zu dem Festnetzanschluss des Arbeitsplatzes ein. 8. Zeiterfassung ist für viele Mitarbeiter ein lästiges, aber notwendiges Unterfangen. Ein Mechanismus, der die Anwesenheitszeit erfasst kann helfen den Überblick über die geleistete Arbeitszeit zu behalten und Formulare vorzubereiten. Der Benutzer betritt mit dem Gerät das Werksgelände Das Gerät meldet sich per an und beginnt die Arbeitszeiterfassung. 9. Gerade für administrative Zwecke ist es wichtig Tätigkeiten im Voraus zu planen. Bestimmte Tätigkeiten müssen zu einer gewissen Zeit ausgeführt werden. Hier kann durch Aktivitäten, die durch Zeitpläne gesteuert werden Sicherheit dazugewonnen werden. Die Ausführungszeit 16:00 Uhr wurde erreicht. Lade die aktualisierten Vertriebsdaten herunter. 10. Die Nutzung von Social Media und Web 2.0 zu privaten Zwecken während der Arbeitszeit kann sich negativ auf die Produktivität der Arbeitnehmen 41

5 Kapitel 5. Konzept auswirken. Um dies zu Verhindern sollen gezielt einzelne Anwendungen (z.b. Facebook 19 [Wei11]) während der Arbeitszeit gesperrt werden. Das Gerät befindet sich zu Geschäftszeiten in der Nähe des Arbeitsplatzes. Sperre produktivitätshemmende Apps. 5.3 Anforderungen Funktionale Anforderungen Für die zu entwickelnde Lösung sind folgende funktionale Anforderungen zu erfüllen: 1. Die Installation muss für Laien durchführbar sein. 2. Um die Produktivität der Mitarbeiter bzw. der Nutzer der Mobilfunkgeräte zu gewährleisten muss sichergestellt sein, dass keine Nutzerinteraktion während des Betriebs erforderlich ist. 3. Aus Sicherheitsgründen darf der Benutzer keinen Einfluss auf die Regelverarbeitung und Situationserkennung haben. 4. Die Regelverarbeitung muss deterministisch sein. Das bedeutet, dass bei gleichen äußeren Bedingungen das Verhalten der Anwendung reproduzierbar ist. 5. Regeln auf Geräten müssen von zentraler Stelle aus verwaltet werden können. 6. Nach einem Neustart müssen die zuvor bekannten Regeln sofort wiederhergestellt und aktiviert werden. 7. Die Regeln verschiedener Geräte müssen sich an zentraler Stelle verwalten und editieren lassen Nichtfunktionale Anforderungen Neben den oben genannten funktionalen Anforderungen sind folgende nichtfunktionale Anforderungen zu erfüllen: 1. Die Lösung muss auf Endgeräten mit dem Android Betriebssystem (API Level 8 bzw. Android Version 2.2) lauffähig sein. 2. Die Benutzbarkeit darf nicht spürbar eingeschränkt werden. 19 https://play.google.com/store/apps/details?id=com.facebook.katana&hl=de 42

6 5.4. Technisches Konzept (a) Die Reaktionsgeschwindigkeit des Geräts darf nicht deutlich verschlechtert werden. (b) Die Akkulebensdauer darf sich nicht drastisch verschlechtert. 3. Die Lösung muss im Stande sein, dauerhaft den Status des Geräts zu erkennen und im Sinne der zuvor definierten Regeln zu handeln. 4. Bei Konnektivitätsverlust zu dem MDM Server muss die Lösung in der Lage sein, mithilfe der ihr bekannten Regeln selbstständig auf die jeweilige Situation zu reagieren. Weitere Anforderungen sind in Kapitel beschrieben. 5.4 Technisches Konzept Aufbau der Anwendung In diesem Abschnitt werden die technischen Aspekte des Konzepts beschrieben und Wege zur konkreten Umsetzung von RULE diskutiert. Wie bereits erwähnt, wird für das gegebene Problem eine zweigeteilte Lösung angestrebt. Sie besteht zum Einen aus einem Modul, das zur Definition und Verwaltung der Regeln dient. Die andere Komponente bildet der clientseitige Teil. Er sorgt für die Regelverarbeitung und Überwachung der in Kapitel 6.3 beschriebenen Status. Der grobe Aufbau bzw. die Struktur ist in Abbildung 5.1 dargestellt. Der links abgebildete Kasten stellt das Werkzeug zur Regelerstellung dar. Es beinhaltet die DSL mit einer zugehörigen Definition von Syntax und Grammatik. Der Regeleditor nutzt diese und bietet dem Benutzter Hilfestellung bei der Erstellung von Regeln. Der Parser wandelt die in der DSL formulierten Regeln in ein Übertragungsformat um. In diesem neuen Format werden die Regelsätze auf das Gerät (in Abbildung 5.1 rechts dargestellt) übertragen. Dort werden sie erneut geparst und in ein Format für die State Machine gewandelt. Die State Machine ist die Komponente, die die Status der Ereignisse (siehe Kapitel 6.3) kontrolliert und verarbeitet Ereignisse und Aktionen Ereignisse (engl. events) nehmen bei RULE eine zentrale Bedeutung ein. Dabei wird David Luckhams 20 Definition für Ereignisse zugrunde gelegt. (Vgl. [Luc02, S. 88]) 20 Research Professor of Electrical Engineering (Emeritus) an der Universität Stanford 43

7 Kapitel 5. Konzept mcap MDM Client DSL «use» Rule Editor Regelsatz State Machine Parser Parser Abbildung 5.1: Schematischer Aufbau der angestrebten Lösung Demnach ist ein Ereignis eine Aufzeichnung einer Aktivität (engl. activity) in einem System. Das Ereignis bezeichnet die Aktivität. Nach Luckham verfügt ein Ereignis über Gestalt (egl. form), Bedeutung (engl. significance) und Relativität (engl. relativity). Die Gestalt äußert sich in dem Aufbau eines Ereignisobjekts. Dieser wird durch Attribute oder Datenkomponenten gegeben. Sie können beispielsweise die Information über das Eintrittsdatum des Ereignisses oder die äußeren Umstände aufnehmen. Die Bedeutung beschreibt wofür das Ereignisobjekt steht, also seine Aussagekraft. Die Daten der Gestalt des Objekts beschreiben die Bedeutung der Aktivität. Als dritten Aspekt nennt Luckham die Ralativität. Damit meint er den Bezug eines Ereignisses zu anderen Ereignissen, der durch Zeit, Ursache und Aggregation bedingt wird. Hierbei werden die Beziehungen der Aktivitäten, für die die Ereignisse stehen, zueinander aufgegriffen. Auch die Relativität von Ereignissen wird in der Form der Objekte ausgedrückt. Dazu stellen sie Methoden, mit denen der Bezug zu anderen Ereignissen ermittelt und hergestellt werden kann, zur Verfügung. [Luc02, S. 88] In dieser Anwendung steuern Ereignisse die Verarbeitung von Aktivitäten und sind somit ein Werkzeug um das Verhalten der Applikation zu beeinflussen. Ein Ereignis besitzt hier die Status aktiv (engl. active) und passiv (engl. passive). Es ist passiv wenn die äußeren Bedingungen zum Eintritt des Ereignisses nicht erfüllt sind. Ein Ereignis kann etwa das Fehlen der SIM Karte sein. Solange sie eingesetzt und funktionstüchtig ist, hat das Ereignis den Status passiv. Erst wenn die SIM Karte fehlt ändert er sich auf aktiv und wird beibehalten bis die Karte wieder eingesetzt wird. Status sind integrale Bestandteile der Regeln, da sie den Auslösezeitpunkt von Ak- 44

8 5.4. Technisches Konzept tionen definieren. Dazu werden drei Zeitpunkte bestimmt. Der Wechsel von passiv auf aktiv (1), der von aktiv auf passiv (2) und die Dauer des Status aktiv (3). Diese sind in Abbildung 5.2 dargestellt. Die Beziehung zwischen Ereignis und Aktion ist eine Besitzbeziehung. Das Ereignis verfügt über eine oder mehrere Aktionen. Eine Instanz einer Aktion kann dabei nur einem einzigen Ereignis gehören, da es sich durch seine Konfiguration (also die Ausprägung der Eigenschaften) von anderen Instanzen des gleichen Typs unterscheidet. Näheres dazu findet sich in Kapitel zur Persistenz von Regeln. sm Event activate() 1 Passive Active entry/executeenteractions do/executeenduringactions exit/executeexitaction 3 deactivate() 2 Abbildung 5.2: Zustandsdiagramm eines Ereignisses mit Aktionen in der State Machine Ereignisse können für sich selbst gültig sein oder in Kombination mit anderen Ereignissen ein komplexes Ereignis (engl. complex event) (vgl. [Luc02, S. 95]) bilden. Im Kontext dieser Arbeit wird jedoch der Begriff Multiple Event (Mehrfachereignis) verwendet. Ein Multiple Event setzt sich, wie in Abbildung 5.3 zu sehen, aus mehreren einfachen Ereignissen (Member Events) zusammen. So kann die wiederholte falsche Eingabe eines Passworts (bsp. Persönliche Identifikationsnummer (PIN)) mit darauffolgendem Entfernen der SIM Karte auf einen Betrugsversuch hindeuten. Erst wenn alle zugehörigen Member Events gleichzeitig den Status aktiv haben, wird der Status des Multiple Events auf aktiv gesetzt und die zugehörigen Aktionen ausgeführt. Den einzelnen Member Events werden keine Aktionen zugewiesen Auslösen der Abarbeitung von Aktionen Für die Ereignisse sind die Methoden Polling (etwa Abfragen) und Pushing (etwa Anstoßen), die nachfolgend beschrieben werden möglich. Beim Polling überwachen sich Ereignisobjekte selbst und prüfen dazu periodisch ob die Bedingungen für das Auslösen (Feuern) bzw. einen Statuswechsel erfüllt sind. Jedes Ereignis verfügt dafür über eine Methode check(). Je nach Ereignistyp werden darin verschiedene Parameter überprüft und ggf. ein Zustandswechsel ausgelöst. 45

9 Kapitel 5. Konzept Multiple Event Member Event a Member Event b Member Event n Abbildung 5.3: Beziehung zwischen Multiple Events und ihren beliebig vielen Member Events als Organigramm Beim Pushing werden Ereignisobjekte von außen über veränderte Bedingungen benachrichtigt. Android bietet in diesem Zusammenhang das Konzept der Broadcast- Receiver (vgl. Kapitel 3.1.3). Eine Komponente registriert sich für gewisse Vorfälle beim Betriebssystem und wird fortan benachrichtigt wenn diese eintreten. Es ist somit nicht nötig das Vorhandensein dieser Vorfälle aktiv zu prüfen. Wie in Abbildung 5.2 dargestellt, können durch die verschiedenen Status eines Ereignisses drei Zeitpunkte zum Auslösen einer Aktion definiert werden. Ändert sich der Status eines Ereignisses, führt es selbstständig die jeweiligen Aktionen aus. Dazu nutzt es die Methoden executeenteractions(), executeenduringactions() und executeexitactions(). Daraus ergibt sich die in Abbildung 5.4 dargestellte Struktur für den Basistyp eines Ereignisses. Von diesem werden die konkreten Ereignisse, zu denen auch Multiple Events und Member Events gehören, abgeleitet. Das Feld active bezeichnet den aktuellen Zustand eines Ereignisses. Aktionen verfügen über die Methode execute(), welche die Ausführung der jeweiligen Aktivität auslöst. Das Feld succesfull kennzeichnet ob die Ausführung erfolgreich war. Im Negativfall wird die Ausführung später erneut versucht. Das kann für einzelne Aktionen nötig sein, die von äußeren Umständen abhängig sind. Beispielsweise ist eine aktive Datenverbindung erforderlich um Dokumente aus dem Internet herunterzuladen. Wenn gerade keine Datenverbindung verfügbar, oder das Ziel aus sonstigen Gründen nicht erreichbar ist, wird dies protokolliert und eine spätere Ausführung angeordnet. Für der Strategie zur Wiederholung von Aktionen bei Misserfolg ist zu entscheiden, wie mit einem Statuswechsel des Ereignisses dem die Aktionen gehören umgegangen werden soll. Eine EnterAction erfordert den Status active. Was soll aber geschehen wenn der erste Versuch der Ausführung fehlschlägt und sich zum Zeitpunkt des zweiten Versuchs der Status des Ereignisses von active auf passive ändert? Eine Antwort 46

10 5.4. Technisches Konzept <<abstract>> Event active: boolean enduringactions: List<Action> enteractions: List<Action> exitactions: List<Action> + check() - executeeactions() - executeenteractions() - executeexitactions() 1 1..* <<abstract>> Action -successfull: boolean +execute() Abbildung 5.4: UML Klassendiagramm für die Basistypen der Entitäten Ereignis und Aktion auf diese Frage ist nicht trivial, da die Strategie vom jeweiligen Anwendungsfall abhängt. Um das zu verdeutlichen werden hier, analog zu den Beispielen in Kapitel 5.2, zwei Regeln gegeben, die je stellvertretend für eine Strategie sind. 1. Wenn das Gerät via Bluetooth mit dem Arbeitsplatzrechner verbunden ist Schicke eine an den Zeitenserver um mit der Zeiterfassung zu beginnen. 2. Wenn das Handy gestohlen wurde Sperre den Zugriff auf Adressbuch, s, Short Message Service (SMS) und das Dateisystem. Die erste Regel ist stellvertretend für Anwendungsfälle, die keine Wiederholung bei einem Statuswechsel des Events erfordern. Würde bei diesem Beispiel die Zeiterfassung begonnen werden, obwohl der Mitarbeiter sich nicht mehr am Arbeitsplatz befindet, könnten umfangreiche Fehlbuchungen entstehen. Beim zweiten Beispiel ist ein erneuter Versuch der Ausführung trotz Statuswechsel ratsam. Wenn ein Gerät seinen Vertrauensstatus verliert und kurz darauf neue Umstände nicht mehr auf eine direkte Gefahr schließen lassen, ist die Sicherheit nicht zweifelsfrei gewährleistet. Hier ist eine defensive Strategie ratsam. Sie kann besagen, dass bei verlorenem Vertrauensstatus bis zur Rückführung und Bestätigung der Unversehrtheit der auf dem Gerät gespeicherten Daten durch Fachpersonal, das Misstrauen bestehen bleibt. Also wären die Aktionen bei der zweiten Regel auch nach einer erneuten Statusänderung (hier von active auf passive) auszuführen. Die zweite Variante stellt einen Sonderfall dar. Die meisten anderen Anwendungsfälle lassen sich mit der ersten Strategie abdecken. In diesem Konzept wird daher diese Strategie verwendet. Also werden bei missglückten Erstversuchen nur Wiederholungen ausgeführt, sofern das Ereignis noch die Bedingungen zur Ausführungen erfüllt, der Status also unverändert ist. Als weitere Limitierung wird eine Obergrenze für die Anzahl der Versuche angegeben. Da nicht zu erwarten ist, dass sich dieser Wert häufig ändert, kann hierfür eine systemweite Konstante genutzt werden. 47

11 Kapitel 5. Konzept Persistenz von Regeln und Datenmodell Regeln sind langlebige Konstrukte. Ihr Lebenszyklus kann mehrere Neustarts des Geräts überdauern. Das bringt die Notwendigkeit mit sich, Regeln auf dem Gerät zu persistieren. Nach dem Systemstart werden die Regeln und ihr zuletzt bekannter Zustand wiederhergestellt. Somit erhalten Regeln ein (Langzeit-) Gedächtnis und bereits gesammelte Informationen gehen nicht verloren. Der Bedarf dafür soll an folgendem Beispiel verdeutlicht werden: Eine Regel besagt, dass das Gerät gesperrt wird, sobald drei Mal in Folge ein falsches Passwort zum Endsperren des Bildschirms eingegeben wurde. Würde die Software den Status nicht wiederherstellen, könnte der Zähler für die Fehlversuche durch einen Neustart des Geräts nach zwei Fehlversuchen zurückgesetzt werden und ein Angreifer hätte erneut drei, bzw. bei wiederholten Neustarts unendlich viele Versuche. Regeln und Zustände gehören also zwingend zusammen und müssen verlässlich persistiert werden. Android bringt mit SQLite 21 ein eigenes relationales Datenbankmanagementsystem (RDBMS) mit sich. Allerdings eignet sich ein klassisches RDBMS nur bedingt um die Regeln zu sichern. Ereignisse und Aktionen können sehr unterschiedlich aufgebaut sein. Attribute und Zustände variieren zwischen einzelnen Ereignis- bzw. Aktionstypen unter Umständen stark, sodass diese Struktur sich nur schwer in tabellarischer Form darstellen lässt. Eine vereinfachte Datenstruktur ist in Abbildung 5.5 dargestellt. Hierbei sind nur die Eigenschaften berücksichtigt, die alle Ereignisse bzw. Aktionen gemeinsam haben. Zudem ist die Verschachtelung von Ereignissen über die Beziehung besteht aus möglich. Hierdurch lassen sich die oben beschriebenen Multiple Events mit zugehörigen Member Events abbilden. Weitere Attribute sind hier zugunsten der Übersichtlichkeit ausgelassen. ID 1 besteht aus ID name event * 1 löst aus n action name avtive Abbildung 5.5: Vereinfachtes Entity-Relationship-Modell für die Datenhaltung von Regeln in SQLite Das Datenmodell aus Abbildung 5.5 setzt sich aus den beiden Entitäten Event und Action zusammen. Neben einer Identifikationsnummer (ID) und einem Namen (name) besitzt ein Event ein Attribut (active) zur Erfassung des Status (vgl. Abbildung 5.2). Eine Action besitzt lediglich ID und name

12 5.4. Technisches Konzept In Abbildung 5.6 ist eine Datenstruktur dargestellt, die weitere Eigenschaften berücksichtigt. Hierfür werden die Entitäten Eigenschaft und Zustand eingeführt. Da nicht jede Eigenschaft einen Zustand besitzen muss, handelt es sich hierbei um eine optionale Beziehung. In dem oben genannten Beispiel entspricht die maximale Anzahl der Fehlversuche dem Wert der Eigenschaft und die bisher erreichten Fehlversuche dem Wert des zugehörigen Zustands. Ein Beispiel für einen Fall, in dem eine Eigenschaft keinen Zustand hat ist die Aktion Dateidownload. Hierbei ist die Uniform Resource Locator (URL) eine Eigenschaft. Ein Zustand, wie etwa ein Zählerstand oder ein Wert einer Benutzeringabe, ist jedoch nicht nötig. Lediglich Informationen über eine erfolgreiche Ausführung bzw. einen Misserfolg werden protokolliert. ID name event besteht aus 1 * 1 löst aus n action ID name active 1 ID 1 besitzt * property * besitzt name 1 value hat 0..1 state ID value Abbildung 5.6: Entity-Relationship-Modell für die Datenhaltung von Regeln in SQ- Lite mit zugehörigen Eigenschaften und Zuständen Durch die zweite Datenstruktur lassen sich sehr divergente Objekte abbilden, jedoch sind wegen der höheren Anzahl der Entitäten zahlreiche Join-Operationen nötig um einen Regelsatz zu erzeugen. Alternativen dazu stellen die hierarchischen Formate XML und JavaScript Object Notation (JSON) dar. Hierbei können sehr verschiedenartige Objekte nebeneinander gespeichert werden. Die Notwendigkeit von Join- Operationen fällt dabei weg, jedoch müssen eigene Parser zur Verfügung gestellt 49

13 Kapitel 5. Konzept werden. Wenn die Regeln in XML oder JSON gespeichert werden, stellt sich die Frage des Speicherorts. Eine Textdatei eignet sich kaum, da sie komplett ausgelesen werden muss um einen einzelnen Datensatz zu adressieren. Zudem muss die Logik für Schreiben, Lesen, Aktualisieren und Löschen (engl. create, read, update and delete) (CRUD) Operationen, also schreiben, lesen, aktualisieren und löschen, komplett neu implementiert werden, wohingegen sie bei SQLite durch die Standardfunktionen eines RDBMS recht einfach umzusetzen sind. Um die Vorteile beider Varianten zu nutzen, wird hier ein Ansatz gewählt, der die Struktur in JSON abbildet und für die Datenhaltung SQLite verwendet. Somit ergibt sich eine große Flexibilität bei der Struktur der zu verwaltenden Daten sowie die Vorteile der einfachen Handhabung eines RDBMS. Dabei wird lediglich eine Tabelle mit zwei Attributen benötigt. Diese sind die ID zur Identifikation der jeweiligen Regel und der Regelsatz selbst in Form eines JSON Texts. Das Entity-Relationship-Modell (ERM) fällt dementsprechend geringer aus. (Vgl. Abbildung 5.7) Ereignissen besitzen andere Ereignisse, Eigenschaften und Aktionen, die wiederum selbst eine beliebige Anzahl von Eigenschaften besitzen können. Diese Beziehungen hängen von dem konkreten Ereignistyp ab. So benötigt die Aktion Dateidownload zwingend die Eigenschaft URL. Die Aktion zum Sperren des Geräts kennt diese Eigenschaft jedoch nicht und kann sie auch nicht als optionale Eigenschaft berücksichtigen. Die Entitäten verfügen über Kenntnis ihres eigenen Aufbaus und können sich deshalb selbst persistieren. Dazu erstellen sie aus ihren Eigenschaften bzw. Zuständen ein JSON Objekt und übergeben dieses an die Persistenzschicht. Die Regeln persistieren sich somit weitgehend selbst. Lediglich zur Übergabe an das RDBMS wird eine gesonderte Komponente (Datenbankadapter) benötigt, die mithilfe der JSON Daten die SQL Statements für die CRUD Operationen erstellt. Beim Lesen aus der Datenbank wird der Ereignistyp des ausgelesenen JSON Objekts von dem Datenbankadapter ermittelt und daraufhin das JSON Objekt dem jeweiligen Ereignis übergeben. Dieses weist sich dann selbst eigenständig Eigenschaften und Zustandswerte zu und ermittelt die auszulösenden Aktionen mit Parametern für die einzelnen Status. ID JSON Rule Abbildung 5.7: Entity-Relationship-Modell für die Datenhaltung von Regeln als JSON Datensätze in SQLite 50

14 5.4. Technisches Konzept Aufbau der Clientanwendung In Kapitel wurde bereits der grobe Aufbau der gesamten Anwendung beschrieben. Dabei wurde auch gezeigt, dass es sich bei dem hier vorgestellten Konzept um eine zweiteilige Lösung handelt. (Vgl. Abbildung 5.1) Dieser Abschnitt betrachtet den clientseitigen Bereich näher. In Abbildung 5.8 ist eine Erweiterung des Klassendiagramms von Abbildung 5.4 dargestellt. Darin werden neben den Entitäten auch die Komponenten, die die Geschäftslogik beinhalten gezeigt. StateMachineService rules: List<Event> + oncreate() + ondestroy() +onbind(intent) +geteventbyid() +addevent(event) +removeeventbyid(int) -checkevents() DbHelper +getrulebyid(int) +isertorupdaterule(event) +delterulebyidint) 1..* <<abstract>> Event active: boolean enduringactions: List<Action> enteractions: List<Action> exitactions: List<Action> + check() - executeenduringactions() - executeenteractions() - executeexitactions() 1 1..* <<abstract>> Action -successfull: boolean +execute(jsonobject) LostDevice TrackingFailed TrackDevice LockDevice Roaming MultipleEvent memberevents: List<Event> LockDevice Wipe SimRemoved NoContactToMdmService days: int RedirectCalls DeactivateCamera WrongPassword maximumtries: int usedtries: int ConnectedToDevice madadress: String LocationReached longitude: double latitude: double radius: double ExecuteAtTime executiontime: Date ExecuteAtTimeWindow startdate: Date enddate: Date Notification UnblockApp SendSms Send BlockApp Abbildung 5.8: UML Klassendiagramm der wichtigsten Komponenten der Clientanwendung Die wichtigsten Bestandteile des Konzepts sind die Regeln, die aus Instanzen der Entitäten Event und Action bestehen und ein Dienst (engl. service) (vgl. StateMachineService in 5.8). Die Basisklassen Event und Action sind bereits aus Abbildung 5.4 bekannt. Hier sind dazu noch einige Beispiele für konkrete Implementierungen gegeben. Dadurch wird die Vererbungshierarchie aufgezeigt. 51

15 Kapitel 5. Konzept Nachdem Aufbau und Wirkungsweisen von Events und Actions und deren Umsetzung als Java Klassen bereits in Kapitel 6.3 behandelt wurden, wird hier besonderer Wert auf die Verarbeitung der Regeln gelegt. Es besteht der Bedarf Regeln zu verwalten und zu überwachen. Das umfasst Aufgaben wie das Erstellen, Konfigurieren und Überführen von Regeln von einem Status in einen anderen. Aber auch die Entsorgung und die in Kapitel thematisierte Persistenz werden durch den Client umgesetzt. Für letztgenannte sorgt die Klasse DbHelper. Sie übernimmt die CRUD Operationen auf dem RDBMS. Der Hauptteil der Anwendungslogik wird jedoch durch den Dienst StateMachineService realisiert. (Vgl. StateMachineService in Abbildung 5.8) Der Service muss stets laufen um sicherzustellen, dass alle potentiellen Ereignisse der realen Welt, die zu einer Statusänderung eines Events führen können, wahrgenommen werden. Zudem muss der Service jederzeit von der serverseitigen Komponente aus ansprechbar sein, um etwa neue Regelsätze auf das Gerät zu übertragen oder bestehende zu entfernen. Ähnliche Anforderungen muss ein MDM Client ohnehin bereits erfüllen um ständig die Kommandos des MDM Backends empfangen und Umsetzen zu können. Beim Start des MDM Clients wird auch der Service gestartet, wodurch dessen Methode oncreate() aufgerufen wird. Darin werden bestehende und gültige 22 Regelsätze aus dem RDBMS ausgelesen und in Objektinstanzen transformiert. Zur Laufzeit hält der Service die Regeln und überwacht die Statusänderungen. Dabei greift er periodisch auf die Methode check() der Events zu. Darin werden die jeweiligen Parameter, die zu einem Statuswechsel nötig sind überprüft und gegebenenfalls der Zustandswechsel eingeleitet. 5.5 Konzeption der Domänensprache Vergleich von textbasierter Domain Specific Language und grafischen Ansätzen Dieser Abschnitt diskutiert die Frage, ob eine grafische Notation einer textuellen zur Formulierung von Regeln überlegen ist. Stefan Schiffer untersucht in Visuelle Programmierung Grundlagen und Einsatzmöglichkeiten [Sch03] beide Ansätze und führt eine umfassende Literaturanalyse durch. Er gelangt zunächst zur Erkenntnis, dass eine grundlegende Begriffsdefinition notwendig ist. Dabei definiert er die Begriffe Visuell, Visuelle Sprache, Visuelle Programmiersprache, Visuelle Softwarebeschreibungssprache, Visuelle Programmierung und Softwarevisualisierung. Da 22 Das Wort gültige bezieht sich hierbei auf den Lebenszyklus einer Regel. Wenn sie noch auf dem Gerät resident ist wird davon ausgegangen, dass sie noch Gültigkeit besitzt und somit ausgeführt werden muss. 52

16 5.5. Konzeption der Domänensprache für diese Diskussion die gleichen Begriffe notwendig sind, werden an dieser Stelle die Definitionen von Schiffer wiedergegeben und Kernaussagen zusammengefasst. Visuell Visuell ist die Bezeichnung für jene Eigenschaft eines Objekts, durch die mindestens eine Information über das Objekt, die für das Erreichen eines Handlungsziels unverzichtbar ist, nur durch das visuelle Wahrnehmungssystem des Menschen gewonnen werden kann. [Sch03, S. 43] Der Kern dieser Definition liegt in der Unverzichtbarkeit der visuellen Wahrnehmung. Im Kontrast dazu ist Schrift zu sehen. Sie wird zwar ebenfalls durch Sehen aufgenommen, jedoch durch das verbale Wahrnehmungssystem interpretiert. Bsp: Die Symbolik von Fußgängerampeln arbeitet mit visuellen Informationen. Durch Piktogramme wird den Fußgängern signalisiert wann sie die jeweilige Straße gefahrlos überqueren können. Visuelle Sprache Eine visuelle Sprache ist eine formale Sprache mit visueller Syntax oder visueller Semantik und dynamischer oder statischer Zeichengebung. [Sch03, S. 43 f.] Im Gegensatz zu verbalen Sprachen, deren Zeichenketten im eindimensionalen Raum liegen, verfügen visuelle Sprachen über Zeichen in zwei- oder mehrdimensionalen Räumen. Visuelle Sprachen können laut Schiffer auch Textzeichen beinhalten. Das in Abbildung 5.9 gegebene Beispiel zeigt dies. 23 Visuelle Programmiersprache Eine visuelle Programmiersprache ist eine visuelle Sprache zur vollständigen Beschreibung der Eigenschaften von Software. Sie ist entweder eine Universalprogrammiersprache oder eine Spezialprogrammiersprache. [Sch03, S. 44 f.] Mit einer solchen Sprache sollen gezielt einzelne Aspekte bzw. Handlungsweisen eines Systems formuliert werden. Ähnlich einer einer DSL hat sie nicht den Anspruch berechnungsuniversell zu sein. Ein Beispiel hierfür ist die Programmierung mit Visual Rules. (Vgl. Abbildung 5.10) Visuelle Softwarebeschreibungssprache Eine visuelle Softwarebeschreibungssprache ist eine visuelle Sprache zur Beschreibung bestimmter Aspekte von Software. Aus den damit erstellten Beschreibungen ist Programmcode maschinell generierbar. [Sch03, S. 45 f.] 23 Die Unterscheidung zwischen dynamischer und statischer Zeichengebung hat für diese Arbeit keine Relevanz. 53

17 Kapitel 5. Konzept 8-18 h Abbildung 5.9: Beispiel für eine visuelle Sprache [nop00] Besondere Bedeutung kommt in dieser Definition der Möglichkeit der maschinellen Generierung von Programmcode zu. Dadurch werden bewusst Dokumentations- bzw. Entwurfsnotationen ausgegrenzt, die zwar einzelne Aspekte wie die Struktur oder das grobe Verhalten beschreiben, aber keinen Bezug zur konkreten Implementierung der Software haben. Ein voll funktionierendes Programm ließe sich dadurch nicht generieren. Ein Beispiel für eine visuelle Softwarebeschreibungssprache ist Unified Modeling Language (UML). Abbildung 5.4 auf Seite 47 zeigt ein sehr einfaches UML Klassendiagramm, aus dem sich bereits die Struktur einzelner Komponenten ergeben. Weitere Beispiele finden sich in Kapitel 6. Visuelle Programmierung Visuelle Programmierung ist die Erstellung von Software mit visuellen Programmiersprachen und visuellen Softwarebeschreibungssprachen. Eine Menge integrierter Werkzeuge zur visuellen Programmierung heißt VP- System. [Sch03, S. 46] Schiffer grenzt in diesem Zuge Entwicklungsumgebungen für verbale Programmiersprachen mit grafischer Oberfläche, die Generierung von Teilen einer Software aus grafischen Entwürfen (z.b. die Generierung von Klassen mit Methodenköpfen aus UML) und Software für die grafische Datenverarbeitung aus. Somit ist Eclipse 24 als Integrierte Entwicklungsumgebung (engl. Integrated Development Environment) (IDE) für Java und andere textuelle Programmiersprachen trotz eines graphischen GUI kein Werkzeug zur visuellen Programmierung. Jedoch ist die auf Eclipse basie

18 5.5. Konzeption der Domänensprache Abbildung 5.10: Berechnung eines Mietwagenpreises mit Visual Rules als ein Beispiel für eine visuelle Programmiersprache [vis12] rende IDE Visual Rules Modeler (vgl. Abbildung 5.10) ein solches Werkzeug, da es mit Visual Rules eine visuelle Programmiersprache nutzt. Softwarevisualisierung Softwarevisualisierung ist die werkzeugunterstützte, visuelle Darstellung von Software für Analysezwecke, d.h. für Untersuchungen der statischen und dynamischen Eigenschaften von Software. [Sch03, S. 46 f.] Diese Kategorie dient dem Zweck der Dokumentation und als Kommunikationsmittel. Dabei ist es unerheblich, ob die Software, die beschrieben wird mit einer verbalen oder mit einer visuellen Programmiersprache entstand. Erheblich ist jedoch der Werkzeugeinsatz. Handskizzen zählen nicht, UML zählt jedoch zur Softwarevisualisierung. Für das gegebene Problem ist also zu entscheiden, ob eine visuelle Programmiersprache zur Formulierung der Regeln geeignet ist. Nachfolgend werden Vor- und Nachteile der visuellen Programmierung diskutiert. Je nach Kontext und Anwendungsgebiet kann eine visuelle Sprache von Vorteil sein. In der Literatur wird das Thema bereits seit den 1980er Jahren diskutiert. Alexander 55

19 Kapitel 5. Konzept Repenning und Tamara Summer sehen eine visuelle Programmiersprache für Domänenexperten dann als hilfreich, wenn sie die Nutzer nicht zwingt einfache Funktionen wie Schleifen und Bedingungen zu programmieren oder eine semantische Lücke zwischen dem fachlichen Modell des zu lösenden Problems und dem technischen Modell der Programmiersprache zu schließen. [RS95] Besonders häufig wird bei dieser Art von Diskussionen angeführt, dass visuelle Sprachen intuitiver sein als textuelle Sprachen. [Hun][CDX + 05] Stefan Schiffer erläutert, dass kognitive Fähigkeiten von Menschen durch eine visuelle Sprache gestärkt werden können, da im Gegensatz zu textuellen bzw. verbalen Sprachen beide Gehirnhälften parallel genutzt werden und somit mehr Denkkapazität für die Problemlösung bereitsteht. [Sch03, S. 48 ff.] Die Tatsache, dass bei vielen grafischen Notationen der Abstraktionsgrad sehr hoch ist soll dafür sorgen, dass keine Notwendigkeit besteht computerspezifische Eigenheiten der jeweiligen Programmiersprache zu erlernen. [Sch03, S. 51] Das trifft allerdings auch auf DSLs zu. (Vgl. Kapitel 3.3.) Durch das Abstraktionsniveau ist Anfängern ein leichter Einstieg möglich und die Motivation eine neue Sprache zu erlernen wird gesteigert. Jedoch ist der Vorteil der leichten Erlernbarkeit nur dann gegeben, wenn die Entwicklungsumgebung den Programmierer bei der Arbeit unterstützt. So muss sie einen Mechanismus, etwa ein Just-In-Time (JIT) Compiler oder Parser, zur Verfügung stellen, der ständig prüft, ob die gewählten Kombinationen von Symbolen zulässig sind. Er kann über Warnungen, z.b. Färbung von Verbindungslinien in einer Signalfarbe auf nicht zulässige Kombination von Symbolen hinweisen. Bilder haben einen hohen Wiedererkennungswert und können somit schnell verarbeitet werden. Wo bei textueller Notation häufig viele Zeilen notwendig sind, kann eine einzige Grafik die gleiche Aussage prägnant zusammenfassen. Schiffer weist jedoch auf die Gefahr von [...] dekorativen Elemente[n] von Bildern, die der Gestalt oder Ästhetik dienen, aber keine wichtigen Informationen vermitteln [Sch03, S. 55] hin. Die Gefahr dekorativer Elemente ist allerdings bei der hier vorliegenden Problemstellung nicht zu erwarten, da sich die Regeln für MDM Systeme in der Hauptsache auf einfache Wenn-Dann Entscheidungen und Nebenläufigkeit belaufen werden. Besonders die Art der Information, die dargestellt werden soll ist bei visuellen Sprachen von Relevanz. Dabei ist zwischen Daten und Kontrollflüssen zu unterscheiden. [Hun] Nach Schiffer können Zahlenreihen und Messwerte in mehrdimensionalen Anordnungen schneller ausgewertet werden. Textuelle Sprachen sind nicht geeignet um Vektoren oder Matrizen zu beschreiben, da zwei- bzw. dreidimensionale (graphische) Informationen in eine eindimensionale textuelle Sprache transformiert werden müssen. Dies ist gegenüber einer graphischen Darstellung mit Mehraufwand verbunden. Auch der Kontrollfluss einer Anwendung und die Beziehungen verschiedener Objekte zueinander lassen sich grafisch dargestellt schnell erfassen. [Sch03, S. 58 ff.] Doch eine solche Darstellung birgt das Risiko von Missverständnissen und Fehlinterpretationen. So muss sichergestellt werden, dass grundlegende Anforderungen wie die 56

20 5.5. Konzeption der Domänensprache Leserichtung und die Bedeutung von Symbolen geklärt ist. Außerdem ist es bei einer visuellen Notation schwierig Konstrukte wie Rekursionen darzustellen. Bei sehr komplexen Kontrollflüssen kann schnell ein sehr unübersichtliches Gewirr aus Pfeilen und Kästen entstehen. Die in dieser Arbeit thematisierten Regelwerke sind in diese Kategorie der Kontrollflüsse einzuordnen. Es ist nicht davon auszugehen, dass sie ein Komplexitätsniveau erreichen werden, das die Übersicht gefährdet. Die Auswahl der Vokabeln ist besonders bei visuellen Notationen bedeutsam. Um Objekte aus der realen Welt zu zitieren bzw. abzubilden eignen sich Piktogramme. Schwieriger wird es hingegen bei abstrakten Objekten. Hier sind geeignete Metaphern zu verwenden. Häufig werden beispielsweise Zahnräder oder Schraubenschlüssel verwendet um Einstellungen zu visualisieren. Ein neues Dokument wird durch ein leeres Blatt Papier ausgedrückt. Sind jedoch komplett neue Objekte einzuführen, die sich nur durch Metaphern visualisieren lassen, birgt das die Gefahr von Fehlinterpretationen. Je Abstrakter der Sachverhalt oder das zu visualisierende Objekt ist, desto schwieriger ist es ein geeignetes Piktogramm dafür zu wählen. Dies kann auch auf die Ereignisse bzw. Status und Interaktionsmöglichkeiten von Smartphones zutreffen. Diese sind sehr abstrakte Objekte und können schwierig zu visualisieren sein. Ein weiteres Argument für den Einsatz von visuellen Notationen ist der internationale Charakter von Bildern. Textuelle Programmiersprachen basieren in der Regel auf der englischen Sprache. [Hun] Im Gegensatz dazu bedarf es bei visuellen Abbildungen zwar keiner Übersetzung, allerdings sind verschiedene Symbole bzw. Gesten je nach Kulturkreis mit unterschiedlichen Bedeutungen belegt. So bedeutet Kopfschütteln in Indien etwa Zustimmung. Visuelle Notationen sind deshalb nicht per se internationalisiert, können aber helfen Sprachbarrieren zu verschieben. Nach Schiffer sind Grafiken besonders bei der Entwurfsphase und bei der Kommunikation zwischen verschiedenen Domänen (z.b. Auftraggeber und Entwickler) geeignet. [Sch03, S. 58] Die Implementierung in einer visuellen Notation hat den Vorteil, dass es zu keinem Medienbruch mehr kommt. Ein solcher entsteht wenn der Entwurf einer Software mit grafischen Hilfsmitteln, etwa UML, durchgeführt wird, die Umsetzung aber mit textuellen Programmiersprachen erfolgt. Wenn der Entwurf durch eine visuelle Programmiersprache gleichbedeutend mit der Umsetzung ist, ist der Programmcode im Idealfall ein Teil der Dokumentation. Diese kann wenn nötig noch um Prosatext ergänzt werden. Einen bedeutenden Nachteil sieht Schiffer in der schlechten Skalierbarkeit von visuellen Programmiersprachen. Bei großen Projekten geht schnell die Übersicht verloren. Sich kreuzende Linien können Autoren und Leser verwirren. [Sch03, S. 60 f.] Besonders wenn das Projekt so umfangreich ist, dass es nicht mehr auf eine gedruckte Seite oder auf einen Bildschirm passt ist dieses Risiko gegeben. Diese Art von Skalierungsproblem ist hier jedoch nicht zu erwarten. 57

Mobile Security Configurator

Mobile Security Configurator Mobile Security Configurator 970.149 V1.1 2013.06 de Bedienungsanleitung Mobile Security Configurator Inhaltsverzeichnis de 3 Inhaltsverzeichnis 1 Einführung 4 1.1 Merkmale 4 1.2 Installation 4 2 Allgemeine

Mehr

SOFTWARE. ekey TOCAhome pc. Herausgeber: ekey biometric systems GmbH Lunzerstraße 64 A-4030 Linz office@ekey.net n www.ekey.net

SOFTWARE. ekey TOCAhome pc. Herausgeber: ekey biometric systems GmbH Lunzerstraße 64 A-4030 Linz office@ekey.net n www.ekey.net SOFTWARE ekey TOCAhome pc Herausgeber: ekey biometric systems GmbH Lunzerstraße 64 A-4030 Linz office@ekey.net n www.ekey.net Ihr Finger ist der Schlüssel Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS 3

Mehr

Sophos Mobile Control Benutzerhandbuch für Android

Sophos Mobile Control Benutzerhandbuch für Android Sophos Mobile Control Benutzerhandbuch für Android Produktversion: 2 Stand: Dezember 2011 Inhalt 1 Über Sophos Mobile Control... 3 2 Einrichten von Sophos Mobile Control auf einem Android-Mobiltelefon...

Mehr

Sophos Mobile Control Benutzerhandbuch für Apple ios

Sophos Mobile Control Benutzerhandbuch für Apple ios Sophos Mobile Control Benutzerhandbuch für Apple ios Produktversion: 2 Stand: Dezember 2011 Inhalt 1 Über Sophos Mobile Control... 3 2 Einrichten von Sophos Mobile Control auf einem Apple iphone... 4 3

Mehr

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

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

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

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

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Buzzword Bingo Game Documentation (Java based Game)

Buzzword Bingo Game Documentation (Java based Game) Buzzword Bingo Game Documentation (Java based Game) Meppe Patrick Djeufack Stella Beltran Daniel April 15, 2011 1 Inhaltsverzeichnis 1 Einleitung 3 2 Aufgabenstellung 3 3 Allgemeines zu Buzzword Bingo

Mehr

Win7Deploy Seite 2 von 17. Was ist Win7Deploy?

Win7Deploy Seite 2 von 17. Was ist Win7Deploy? Win7Deploy Seite 1 von 17 Win7Deploy Eine einfache, passgenaue und kostengünstige Lösung um Windows 7 in Ihrem Unternehmen einzuführen [ www.win7deploy.de ] Ablauf einer Win7Deploy Installation am Beispiel

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

KOGIS Checkservice Benutzerhandbuch

KOGIS Checkservice Benutzerhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 KOGIS Checkservice Benutzerhandbuch Zusammenfassung Diese Dokumentation beschreibt die Bedienung des KOGIS Checkservice. 4.2.2015

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen C3: Structured Query Language Lernziele: Nach der Bearbeitung dieser Lektion haben Sie folgende Kenntnisse erworben: Sie können elementaren

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:

Mehr

EINRICHTUNG DER PORTMAPPERDIENSTE VON WWW.FESTE-IP.NET!

EINRICHTUNG DER PORTMAPPERDIENSTE VON WWW.FESTE-IP.NET! EINRICHTUNG DER PORTMAPPERDIENSTE VON WWW.FESTE-IP.NET! Auf den folgenden Seiten haben wir verschiedene Anwendungsfälle für unseren IPv6 Portmapper dokumentiert. Bitte bearbeiten Sie immer nur einen Anwendungsfall.

Mehr

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 4: Domänenspezifische Sprachen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 4: Domänenspezifische Sprachen Nutzung vorhandener Sprachen

Mehr

Einführung in Android. 9. Dezember 2014

Einführung in Android. 9. Dezember 2014 Einführung in Android 9. Dezember 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

Aufgabenstellung und Zielsetzung

Aufgabenstellung und Zielsetzung Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces

Mehr

Technical Note 30 Endian4eWON einrichten für VPN Verbindung

Technical Note 30 Endian4eWON einrichten für VPN Verbindung Technical Note 30 Endian4eWON einrichten für VPN Verbindung TN_030_Endian4eWON.doc Angaben ohne Gewähr Irrtümer und Änderungen vorbehalten. Seite 1 von 21 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2

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

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc.

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc. Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 4: Stand: 03.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische Universität Eichstätt-Ingolstadt

Mehr

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0 Leistungsbeschreibung PHOENIX Archiv Oktober 2014 Version 1.0 PHOENIX Archiv Mit PHOENIX Archiv werden Dokumente aus beliebigen Anwendungen dauerhaft, sicher und gesetzeskonform archiviert. PHOENIX Archiv

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 7 Programmverstehen + Fehlersuche Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität

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

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

2 INSTALLATION DES SMS4OL-CLIENT

2 INSTALLATION DES SMS4OL-CLIENT Benutzerhandbuch Inhaltsverzeichnis INHALTSVERZEICHNIS 2 1 VORWORT 3 2 INSTALLATION DES SMS4OL-CLIENT 4 2.1 Systemvoraussetzungen 4 2.2 Downloaden der Installationsdatei 4 2.3 Installation von SMS4OL 4

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Andreas Lux 16.03.2010 Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Warum unterschiedliche Sprachen? Nicht alle Probleme eignen sich, um mit Standardsprachen beschrieben

Mehr

Lastenheft. Auftraggeber IBR Abteilung ALG

Lastenheft. Auftraggeber IBR Abteilung ALG Lastenheft Auftraggeber IBR Abteilung ALG Versionsübersicht Version Datum Autor Status Kommentar 1.0 9. 2. 2011 Auftraggeber 1.1 1. 4. 2011 Auftraggeber Ergänzung Miniflur, Personenerkennung 1.1.1 6. 4.

Mehr

Microsoft Access 2010 Bilder

Microsoft Access 2010 Bilder Microsoft Access 2010 Bilder Hyperlinks... arbeiten ähnlich wie ein Link in einer Webseite. sind ein Verweis auf eine Datei (access2010\material\beispiel\tabledevelop\automat.accdb). können ein Verweis

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

Vorwort. Zu dieser Reihe. Autoren. Vorwort

Vorwort. Zu dieser Reihe. Autoren. Vorwort Vorwort 9 10 Vorwort Vorwort Herzlich Willkommen zu einem Fachbuch von Comelio Medien, ein Bereich der Comelio GmbH. Dieses Buch aus unserer Reihe zur.net-entwicklung ist das Ergebnis einer Forschungsarbeit,

Mehr

Liste der Handbücher. Liste der Benutzerhandbücher von MEGA

Liste der Handbücher. Liste der Benutzerhandbücher von MEGA Liste der Handbücher Liste der Benutzerhandbücher von MEGA MEGA 2009 SP4 1. Ausgabe (Juni 2010) Die in diesem Dokument enthaltenen Informationen können jederzeit ohne vorherige Ankündigung geändert werden

Mehr

futurebiz whitepaper Aufbau & Erstellung von Facebook Open Graph Apps

futurebiz whitepaper Aufbau & Erstellung von Facebook Open Graph Apps futurebiz whitepaper Aufbau & Erstellung von Facebook Open Graph Apps Januar 2012 Abbildung 1 Mark Zuckerberg stellt die Open Graph Apps auf der f8 vor Mit den Open Graph-Apps hat Facebook seine Sicht

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

Mobile Device Management

Mobile Device Management Mobile Device Management Ein Überblick über die neue Herausforderung in der IT Mobile Device Management Seite 1 von 6 Was ist Mobile Device Management? Mobiles Arbeiten gewinnt in Unternehmen zunehmend

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

17.2 MS-Access Projekte

17.2 MS-Access Projekte 964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.

Mehr

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen

3 Variablen. 3.1 Allgemeines. 3.2 Definition und Verwendung von Variablen 3 Variablen 3.1 Allgemeines Variablen werden in Prozeduren, Mustern und Parameter-Dokumenten definiert und verwendet und bei der Jobgenerierung durch die Werte, die ihnen zugewiesen werden, ersetzt. Variablen

Mehr

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise A-Plan 12.0 Zeiterfassung 2.0 Ausgabe 1.1 Copyright Copyright 1996-2014 braintool software gmbh Kein Teil dieses Handbuches darf ohne ausdrückliche Genehmigung von braintool software gmbh auf mechanischem

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

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

Eltako FVS. Verwendung von Systemfunktionen. Grenzenlose Flexibilität und Komfort in der Gebäudeinstallation

Eltako FVS. Verwendung von Systemfunktionen. Grenzenlose Flexibilität und Komfort in der Gebäudeinstallation Eltako FVS Verwendung von Systemfunktionen Grenzenlose Flexibilität und Komfort in der Gebäudeinstallation 1. Erstellen einer Systemfunktion 1. Beachten Sie zur Voreinstellung/Inbetriebnahme Ihres FVS-Systems

Mehr

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

1 Welcher Service Operation Prozesse fehlen? Incident Management, Problem

1 Welcher Service Operation Prozesse fehlen? Incident Management, Problem 1 Welcher Service Operation Prozesse fehlen? Incident Management, Problem Management, Access Management a. Event Management b. Service Desk c. Facilities Management d. Change Management e. Request Fulfilment

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation Softwareentwicklungspraktikum Sommersemester 2007 Testdokumentation Auftraggeber Technische Universität Braunschweig

Mehr

Handbuch zu AS Connect für Outlook

Handbuch zu AS Connect für Outlook Handbuch zu AS Connect für Outlook AS Connect für Outlook ist die schnelle, einfache Kommunikation zwischen Microsoft Outlook und der AS Datenbank LEISTUNG am BAU. AS Connect für Outlook Stand: 02.04.2013

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Einführung Erste Schritte mit Mamut Online Survey

Einführung Erste Schritte mit Mamut Online Survey [Type text] Mamut Active Services Einführung Erste Schritte mit Mamut Online Survey 1 Erste Schritte mit Mamut Online Survey Inhalt Über Mamut Online Survey... 2 Erste Schritte mit Mamut Online Survey...

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

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

AJAX SSL- Wizard Referenz

AJAX SSL- Wizard Referenz AJAX SSL- Wizard Referenz Version 1.0.2+ - 04.04.2011 Präambel Die vorliegende Dokumentation beschreibt den AJAX basierten SSL- Wizard der CertCenter AG. Der SSL- Wizard kann mit wenigen Handgriffen nahtlos

Mehr

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001 V3.05.001 MVB3 Admin-Dokumentation Einrichten eines Servers für MVB3 ab Version 3.5 Inhalt Organisatorische Voraussetzungen... 1 Technische Voraussetzungen... 1 Konfiguration des Servers... 1 1. Komponenten

Mehr

Model Driven Development einige wichtige Grundprinzipien

Model Driven Development einige wichtige Grundprinzipien Model Driven Development einige wichtige Grundprinzipien Johannes Scheier j@scheier software.ch Copyright by Scheier Software Engineering Seite 1 Inhalt Was ist Model Driven Development (MDD)? Was verspricht

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt

TimePunch. TimePunch Command. Benutzerhandbuch 14.08.2013. TimePunch KG, Wormser Str. 37, 68642 Bürstadt TimePunch TimePunch Command Benutzerhandbuch 14.08.2013 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, TimePunch Command Revisions-Nummer 37 Gespeichert

Mehr

Was ist ein Computerprogramm?

Was ist ein Computerprogramm? Was ist ein Computerprogramm? Michael Sonntag Institut für Informationsverarbeitung und Mikroprozessortechnik (FIM) Johannes Kepler Universität Linz, Österreich sonntag@fim.uni-linz.ac.at 1 Problemaufriss

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

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

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Technische Beschreibung: Modul Datei und Ordnerverwaltung

Technische Beschreibung: Modul Datei und Ordnerverwaltung EPOD Encrypted Private Online Disc Technische Beschreibung: Modul Datei und Ordnerverwaltung Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

Zeiterfassungsanlage Handbuch

Zeiterfassungsanlage Handbuch Zeiterfassungsanlage Handbuch Inhalt In diesem Handbuch werden Sie die Zeiterfassungsanlage kennen sowie verstehen lernen. Es wird beschrieben wie Sie die Anlage einstellen können und wie das Überwachungsprogramm

Mehr

InterCafe 2004. Handbuch für Linux Client

InterCafe 2004. Handbuch für Linux Client Handbuch für Handbuch für Der Inhalt dieses Handbuchs und die zugehörige Software sind Eigentum der blue image GmbH und unterliegen den zugehörigen Lizenzbestimmungen sowie dem Urheberrecht. Alle genannten

Mehr

CaseWare Monitor. ProduktNEWS CaseWare Monitor. Version 4.3. Mehr Informationen zu CaseWare Monitor und unseren anderen Produkten & Dienstleistungen

CaseWare Monitor. ProduktNEWS CaseWare Monitor. Version 4.3. Mehr Informationen zu CaseWare Monitor und unseren anderen Produkten & Dienstleistungen Mit der aktuellen Version hält eine komplett neu konzipierte webbasierte Anwendung Einzug, die sich neben innovativer Technik auch durch ein modernes Design und eine intuitive Bedienung auszeichnet. Angefangen

Mehr

Mobilfunk Die wichtigsten Fragen und Antworten

Mobilfunk Die wichtigsten Fragen und Antworten Mobilfunk Die wichtigsten Fragen und Antworten Was heißt GSM? GSM = Global System for Mobile Communications = standardisiertes System für digitalen Mobilfunk Welches Netz nutzt willy.tel für seinen Mobilfunk?

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

Mehr

Software Requirements Specification

Software Requirements Specification Software Requirements Specification Identifikation von Sehenswürdigkeiten basierend auf Bildinhalten Iterationsschritt: 3 Abgabedatum: 08.06.2010 Gruppe 37: Matthias Hochsteger 0627568 Josef Kemetmüller

Mehr

Inhalt. Dokumentation VIAS_W. V32w6900 Workflow-Assistent

Inhalt. Dokumentation VIAS_W. V32w6900 Workflow-Assistent Dokumentation Inhalt 1. Der... 2 1.1 Benötigte Dateien... 2 1.2 Vorbereitung... 2 1.3 Hinterlegung von Workflows... 2 1.4 Definition eines neuen Workflows... 3 1.5 Definition von Aktionen... 5 1.1.1 Aktionstyp

Mehr

Erweiterbare Programmiersprachen und DSLs

Erweiterbare Programmiersprachen und DSLs Erweiterbare Programmiersprachen und DSLs Markus Voelter, Freiberufler/itemis Bernhard Merkle, SICK AG Dieser Vortrag (und dieses Paper) beschreiben einen neuartigen Ansatz für die Entwicklung eingebetteter

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Installationsanleitung

Installationsanleitung Avira Free Android Security Installationsanleitung Warenzeichen und Copyright Warenzeichen Windows ist ein registriertes Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und anderen Ländern.

Mehr

PLESK 7 FÜR WINDOWS INSTALLATIONSANLEITUNG

PLESK 7 FÜR WINDOWS INSTALLATIONSANLEITUNG PLESK 7 FÜR WINDOWS INSTALLATIONSANLEITUNG Copyright (C) 1999-2004 SWsoft, Inc. Alle Rechte vorbehalten. Die Verbreitung dieses Dokuments oder von Derivaten jeglicher Form ist verboten, ausgenommen Sie

Mehr

Sophos Mobile Control Benutzerhandbuch für Android

Sophos Mobile Control Benutzerhandbuch für Android Sophos Mobile Control Benutzerhandbuch für Android Produktversion: 2.5 Stand: Juli 2012 Inhalt 1 Über Sophos Mobile Control... 3 2 Anmeldung am Self Service Portal... 4 3 Einrichten von Sophos Mobile Control

Mehr

Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden

Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden 27.05.13 Autor / Redakteur: Nach Unterlagen von National Instruments / Hendrik Härter Messdaten

Mehr

Die nächste Revolution in der modelgetriebenen Entwicklung?

Die nächste Revolution in der modelgetriebenen Entwicklung? Die nächste Revolution in der modelgetriebenen Entwicklung? Me Johannes Kleiber Software Engineer bei FMC Johannes.Kleiber@fmc-ag.com Themen Überblick Window Workflow Foundation Workflows modellieren WF

Mehr

TELEMETRIE EINER ANWENDUNG

TELEMETRIE EINER ANWENDUNG TELEMETRIE EINER ANWENDUNG VISUAL STUDIO APPLICATION INSIGHTS BORIS WEHRLE TELEMETRIE 2 TELEMETRIE WELCHE ZIELE WERDEN VERFOLGT? Erkennen von Zusammenhängen Vorausschauendes Erkennen von Problemen um rechtzeitig

Mehr

17 Datenbank aufteilen

17 Datenbank aufteilen 17 Datenbank aufteilen Warum teilt man eine Datenbank auf und was bedeutet dies? Eine Access-Datenbankdatei ist ein Monolith. Sie enthält alle notwendigen Objekte wie Tabellen, Abfragen, Formulare, Berichte,

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr