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

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

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

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

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Aufgabe 1: Beschreibung des Forschungsgebietes der Wirtschaftsinformatik

Aufgabe 1: Beschreibung des Forschungsgebietes der Wirtschaftsinformatik Übungsblatt 01 / 2011 Datum: 5. Mai 2011 Aufgabe 1: Beschreibung des Forschungsgebietes der Wirtschaftsinformatik Beschreiben Sie das Lehr- und Forschungsgebiet der Wirtschaftsinformatik und zeigen Sie

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

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

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

generic.de WebStateViewer Produktinformationsblatt Zeigt den Status beliebiger IT-Komponenten an und ist über ein WebFrontend intuitiv bedienbar.

generic.de WebStateViewer Produktinformationsblatt Zeigt den Status beliebiger IT-Komponenten an und ist über ein WebFrontend intuitiv bedienbar. generic.de WebStateViewer Produktinformationsblatt Zeigt den Status beliebiger IT-Komponenten an und ist über ein WebFrontend intuitiv bedienbar. Produktbeschreibung generic.de WebStateViewer Der generic.de

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

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

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

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

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

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

Ersatzteile der Extraklasse Magento-Module der Shopwerft

Ersatzteile der Extraklasse Magento-Module der Shopwerft Ersatzteile der Extraklasse Magento-Module der Shopwerft MicroStudio - Fotolia.com Werden von Kunden oder Suchmaschinen Elemente des Shops aufgerufen, die nicht vorhanden sind, wird statt des gewünschten

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

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

Quellen: Towards a Human Computer InteractionPerspective. Übersicht. Warum visuelle Sprachen? Begriffsdefinitionen: Hinderungsgründe bisher:

Quellen: Towards a Human Computer InteractionPerspective. Übersicht. Warum visuelle Sprachen? Begriffsdefinitionen: Hinderungsgründe bisher: Quellen: Towards a Human Computer InteractionPerspective von B.K. & B.K. LV: Visuelle Sprachen (03-763) Universität Bremen WS 2001/02 Visual Language Theory: Towards a Human- Computer Perspective; N. Hari

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Vorwort. Aufbau und Struktur

Vorwort. Aufbau und Struktur Vorwort Herzlich willkommen zu einem Fachbuch aus dem Verlag Comelio Medien. Dieses Buch aus dem Bereich Datenbanken soll Sie dabei unterstützen, die Oracle SQL zu lernen, um DB-Objekte zu erstellen und

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

xcall Technische Dokumentation

xcall Technische Dokumentation xcall Technische Dokumentation zu Version 4.x Autor: Martin Roth Erstelldatum: 14.08.2008 Version: 1.4 Seite 2 / 7 Zweck...3 Schnittstellenarchitektur...3 Outbound-Schnittstellen...3 Outlook...3 TwixTel...3

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

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

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

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

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

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Aktive Schnittstellenkontrolle

Aktive Schnittstellenkontrolle Aktive Schnittstellenkontrolle Version 1.0 Ausgabedatum 05.03.2013 Status in Bearbeitung in Abstimmung Freigegeben Ansprechpartner Angelika Martin 0431/988-1280 uld34@datenschutzzentrum.de Inhalt 1 Problematik...2

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

Mitarbeiterbefragung

Mitarbeiterbefragung Arbeitspsychologie CoPAMed Arbeitspsychologie Mitarbeiterbefragung Zusatzmodul zur Verwaltung von arbeitspsychologischen Leistungen und zur Durchführung von anonymen Mitarbeiterbefragungen. CoPAMed Arbeitspsychologie

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

Vorlesung Programmieren

Vorlesung Programmieren 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

Dokument Information. Hilfe für. ArmorToken. Hilfe für ArmorToken Seite 1 von 8

Dokument Information. Hilfe für. ArmorToken. Hilfe für ArmorToken Seite 1 von 8 Dokument Information Hilfe für ArmorToken Hilfe für ArmorToken Seite 1 von 8 Inhalt Inhalt 1 Hilfe für ArmorToken... 3 1.1.1 Willkommen bei ArmorToken... 3 1.1.2 ArmorToken installieren... 3 1.1.3 Verschlüsseln

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

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

Produktskizze. 28. November 2005 Projektgruppe Syspect

Produktskizze. 28. November 2005 Projektgruppe Syspect 28. November 2005 Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme Inhaltsverzeichnis 1 Einleitung 3 2 Die graphische Oberfläche der

Mehr

7.11 Besprechungen planen und organisieren

7.11 Besprechungen planen und organisieren 7. Effektive Zeitplanung und Organisation von Aufgaben 7.11 Besprechungen planen und organisieren Wie bereits zu Beginn des Kapitels erwähnt, nehmen im Gegensatz zu einem normalen Termin mehrere Teilnehmer

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

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

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

Sophos Mobile Control Benutzerhandbuch für Windows Mobile. Produktversion: 3

Sophos Mobile Control Benutzerhandbuch für Windows Mobile. Produktversion: 3 Sophos Mobile Control Benutzerhandbuch für Windows Mobile Produktversion: 3 Stand: Januar 2013 Inhalt 1 Über Sophos Mobile Control...3 2 Einleitung...4 3 Anmeldung am Self Service Portal...5 4 Einrichten

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

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

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE DOKUMENTATION MAAS - MONITORING AS A SERVICE DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE Dokumentation MaaS - Monitoring as a Service Inhalt 1. MaaS - Monitoring as Service... 3 1.1 Einleitung...

Mehr

Reporting Services Dienstarchitektur

Reporting Services Dienstarchitektur Reporting Services Dienstarchitektur Reporting Services Dienstarchitektur In Reporting Services wird ein Berichtsserver als ein Windows - Dienst implementiert, der aus unterschiedlichen Featurebere i-

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

Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen

Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen Wenn Sie Benutzer von ProtectOn 2 sind und überlegen, auf ProtectOn Pro upzugraden, sollten Sie dieses Dokument lesen. Wir gehen davon aus, dass

Mehr

Einsatz von Scalable Vector Graphics (SVG) zur Modellrepräsentation und -manipulation in Web-Anwendungen mit J2EE

Einsatz von Scalable Vector Graphics (SVG) zur Modellrepräsentation und -manipulation in Web-Anwendungen mit J2EE Einsatz von Scalable Vector Graphics (SVG) zur Modellrepräsentation und -manipulation in Web-Anwendungen mit J2EE www.arsnova.de ARS NOVA Technical Workshop, 24. Juni 2004 1 Agenda Motivation und Zielsetzung

Mehr

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon Visualisierung der Eidolon Auswertung VisEiA Graphischer Client für das Emailspiel Eidolon Entstanden im Ramen einer Seminararbeit in Informatik Universität Fribourg, Schweiz david.buchmann@gmx.net http://getit.at/viseia/

Mehr

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr. Language Workbench Vortrag von:! Aktuelle Themen der Softwaretechnologie Arthur Rehm Steven Cardoso Betreut von: Prof. Dr. Reichenbach [1] !2 Index Kontext Domain Specific Language (DSL) Language Workbench

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Ministerium für Kultus, Jugend und Sport Baden-Württemberg

Ministerium für Kultus, Jugend und Sport Baden-Württemberg Anlage zu 45-6512-2420/31 Ministerium für Kultus, Jugend und Sport Baden-Württemberg Schulversuch 51-6624.20/100 (früher: /84) vom 26. August 2003 Lehrpläne für das berufliche Gymnasium der sechs- und

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

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

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Web-Content-Management-Systeme () dienen dazu, komplexe Websites zu verwalten und den Autoren einzelner Webseiten möglichst

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

F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1

F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1 Mit dem Handy sicher im Internet unterwegs F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1 Inhalt 1. Installation und Aktivierung 2. Auf Viren scannen

Mehr

Normfall 7.2. Whitepaper. Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von:

Normfall 7.2. Whitepaper. Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von: Normfall 7.2 Whitepaper Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von: Microsoft SQL Server 2008 R2/2012/2014 2014 Normfall GmbH Alle Rechte vorbehalten. Vorbemerkungen

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29)

MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) MySQL Community Server 5.6 Installationsbeispiel (Ab 5.5.29) Dieses Dokument beschreibt das Herunterladen der Serversoftware, die Installation und Konfiguration der Software. Bevor mit der Migration der

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

Hochschule Augsburg. Herzlich willkommen! 26.11.2015 Hochschule Augsburg / Fakultät Elektrotechnik, Prof. F. Haunstetter 1

Hochschule Augsburg. Herzlich willkommen! 26.11.2015 Hochschule Augsburg / Fakultät Elektrotechnik, Prof. F. Haunstetter 1 Hochschule Augsburg Herzlich willkommen! 26.11.2015 Hochschule Augsburg / Fakultät Elektrotechnik, Prof. F. Haunstetter 1 Zeitplan Zeit Aktion 14.00 Warm Up (R. H3.14) 14.15 Zielvorstellung / Projektaufgabe

Mehr

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

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

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

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

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

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

What s new in risk2value 5.1

What s new in risk2value 5.1 What s new in risk2value 5.1 Dezember 2014 avedos business solutions gmbh Seite 1 Inhaltsverzeichnis 1. Anmeldung/Dashboard... 3 1.1. Standard Startseite frei konfigurierbar... 3 1.2. Dashboard um individuelle

Mehr

Pflichtenheft. 1 Zielbestimmungen 2 1.1 Musskriterien... 2 1.2 Wunschkriterien... 2 1.3 Abgrenzungskriterien... 2

Pflichtenheft. 1 Zielbestimmungen 2 1.1 Musskriterien... 2 1.2 Wunschkriterien... 2 1.3 Abgrenzungskriterien... 2 Pflichtenheft Inhaltsverzeichnis 1 Zielbestimmungen 2 1.1 Musskriterien........................................ 2 1.2 Wunschkriterien....................................... 2 1.3 Abgrenzungskriterien...................................

Mehr

Projekt-Planung Delphi Tage 2012

Projekt-Planung Delphi Tage 2012 Projekt-Planung Delphi Tage 2012 Daniela Sefzig (Delphi Praxis - Daniela.S) Version 1.0 Agenda Kommunikation mit dem Auftraggeber Prozesse kennen lernen - Ereignisgesteuerte Prozessketten Das System mit

Mehr

FÜR GOOGLE ANDROID OPERATING SYSTEM. Dokumentation. Version 1.2013. 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten.

FÜR GOOGLE ANDROID OPERATING SYSTEM. Dokumentation. Version 1.2013. 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten. FÜR GOOGLE ANDROID OPERATING SYSTEM Dokumentation Version 1.2013 2013 NAM.IT Software-Entwicklung Alle Rechte vorbehalten. 1 Information Diese Dokumentation beschreibt die Funktionen der kostenpflichten

Mehr

Kundenanforderungen dokumentieren

Kundenanforderungen dokumentieren Requirements Engineering Kundenanforderungen dokumentieren Bereich Anforderungen Aktivität Kunden-Anforderungen erheben Ziele Gesteigerte Kundenzufriedenheit Dokumentation der genauen Erwartungen des Kunden

Mehr

Leitfaden Datensicherung und Datenrücksicherung

Leitfaden Datensicherung und Datenrücksicherung Leitfaden Datensicherung und Datenrücksicherung Inhaltsverzeichnis 1. Einführung - Das Datenbankverzeichnis von Advolux... 2 2. Die Datensicherung... 2 2.1 Advolux im lokalen Modus... 2 2.1.1 Manuelles

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

MICROS-FIDELIO GmbH. Informationen zum Support mit der BOMGAR Software

MICROS-FIDELIO GmbH. Informationen zum Support mit der BOMGAR Software Support & Services MICROS-FIDELIO GmbH Informationen zum Support mit der BOMGAR Software 2010 MICROS-FIDELIO GmbH Europadamm 2-6 41460 Neuss Deutschland Alle Rechte vorbehalten. Ohne vorherige schriftliche

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

V1.1. Anwenderhandbuch. XPhone UC Mobile

V1.1. Anwenderhandbuch. XPhone UC Mobile V1.1 Anwenderhandbuch XPhone UC Mobile 12/2010 Inhalt 1 XPhone Mobile Control 4 1.1 Mobile Leitung im XPhone UC Commander Fehler! Textmarke nicht definiert. 1.2 Inbetriebnahme des Mobile Clients 4 1.3

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

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

App EVIS ID Plus für Google Android NFC- Smartphone

App EVIS ID Plus für Google Android NFC- Smartphone App EVIS ID Plus für Google Android NFC- Smartphone Version 1.0 Beschreibung Juli 2015 2015 EVIS AG, CH-8604 Volketswil Änderungen vorbehalten Bei der Erarbeitung dieser Dokumentation wurde mit grösster

Mehr

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort 1.3 PHP Vorzüge Erlernbarkeit Im Vergleich zu anderen Sprachen ist PHP relativ leicht erlernbar. Dies liegt hauptsächlich daran, dass PHP im Gegensatz zu anderen Sprachen ausschließlich für die Webserver-Programmierung

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

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: 978-3-446-41771-7. Weitere Informationen oder Bestellungen unter

Inhaltsverzeichnis. Fritz Jobst. Programmieren in Java ISBN: 978-3-446-41771-7. Weitere Informationen oder Bestellungen unter sverzeichnis Fritz Jobst Programmieren in Java ISBN: 978-3-446-41771-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41771-7 sowie im Buchhandel. Carl Hanser Verlag, München

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

JAVA PROJEKT. Schiffe Versenken mit GUI. Projektheft

JAVA PROJEKT. Schiffe Versenken mit GUI. Projektheft Anwendungspraktikum aus JAVA Programmierung SS 2006 Leitung: Dr. Albert Weichselbraun JAVA PROJEKT Schiffe Versenken mit GUI Projektheft Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

Fiery Driver Configurator

Fiery Driver Configurator 2015 Electronics For Imaging, Inc. Die in dieser Veröffentlichung enthaltenen Informationen werden durch den Inhalt des Dokuments Rechtliche Hinweise für dieses Produkt abgedeckt. 16. November 2015 Inhalt

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Kapitel 6. Vererbung

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

Mehr