Proseminararbeit. Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften. Jens Knipper 8. Juli 2015

Größe: px
Ab Seite anzeigen:

Download "Proseminararbeit. Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften. Jens Knipper 8. Juli 2015"

Transkript

1 Proseminararbeit Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Jens Knipper 8. Juli 2015 Prof. Dr. Jan Jürjens Lehrstuhl 14 Software Engineering Fakultät Informatik Technische Universität Dortmund Otto-Hahn-Straße Dortmund

2 Jens Knipper Matrikelnummer: Studiengang: Bachelor Angewandte Informatik Prüfungsordnung: BPO2007 Proseminar: Werkzeugunterstützung für sichere Software Thema: Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Eingereicht: 8. Juli 2015 Betreuer: Jens Bürger Prof. Dr. Jan Jürjens Lehrstuhl 14 Software Engineering Fakultät Informatik Technische Universität Dortmund Otto-Hahn-Straße Dortmund

3 i

4 ii Ehrenwörtliche Erklärung Ich erkläre hiermit ehrenwörtlich, dass ich die vorliegende Arbeit selbstständig angefertigt habe; die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht. Die Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch noch nicht veröffentlicht. Dortmund, den 8. Juli 2015 Jens Knipper

5 INHALTSVERZEICHNIS iii Inhaltsverzeichnis 1 Einleitung 1 2 Modellgetriebene Softwareentwicklung Grundkonzepte Zusammenfassung Eclipse Modeling Framework Einführung Technologie UML XML Model Querys EMF Validation Framework Validierung Vor- und Nachteile EMF Model Queries Vor- und Nachteile EMF-IncQuery Querys Vor- und Nachteile Überprüfung sicherheitsrelevanter Eigenschaften Sicherheitsrelevante Eigenschaften Überprüfung Fazit 12 Literaturverzeichnis 13

6 iv INHALTSVERZEICHNIS

7 KAPITEL 1. EINLEITUNG 1 1 Einleitung Die Modellgetriebene Softwareentwicklung stellt eine besondere Art der Programmierung dar, welche durch ihre Nähe am Modell und ihrer Übersichtlichkeit eine einfach zu erlernende Art der Programmierung darstellt. Die automatische Erzeugung des Codes ermöglicht es diese auch besonders leicht zu testen. Das macht vor allem das Auffinden von Sicherheitslücken einfacher und erhöht die Qualität des Codes. Für diese Funktionen gibt bereits einige sehr gute Lösungen, von denen einige im Rahmen diese Seminararbeit vorgestellt werden. Model Querys sind ein elementarer Bestandteil der Modellgetriebenen Softwareentwicklung und dienen zur Validierung und der Simulation von Modellen. Mit ihnen ist es möglich das Modell automatisiert auf bestimmte Eigenschaften zu untersuchen. In dieser Arbeit liegt der Fokus auf das Überprüfen von sicherheitsrelevanten Eigenschaften. Dies soll eine höhere Qualität der Software und ein hohes Maß an Sicherheit garantieren. Dies ist vor allem bei wachsenden Systemen von Vorteil, da dadurch eine durchgängige Sicherheit garantiert werden kann. Der erste Teil der Arbeit wird auf die Modellgetriebene Softwareentwicklung eingehen und die dahinter stehenden Verfahren und Arbeitsabläufe genauer erläutern. Die dahinterstehenden Sprachen, die Modellierungssprachen, werden im Anschluss daran erklärt. Als Beispiel dienen hierbei UML und textuelle Modelle. Nachdem die Grundlagen geschaffen wurden, gehe ich auf ein praktisches Beispiel für die Modellgetriebene Softwareentwicklung, dem Eclipse Modeling Framework, ein. An diesem sollen Vorgänge und Arbeitsabläufe näher erläutert werden. Anhand des Frameworks soll die Funktionsweise von Queries auf Modellen erläutert werden und diese anschließend zum testen auf Sicherheitsrelevante Eigenschaften genutzt werden.

8 2 2 Modellgetriebene Softwareentwicklung Die Modellgetriebene Softwareentwicklung (engl. Model Driven Development, MDSD) ist eine Weiterentwicklung der Programmierung, in der Modelle, z.b. in Form von UML-Diagrammen, nicht mehr allein zum Zweck der Dokumentation von Software dienen. Stattdessen sind sie mit dem Code gleichzusetzen, welcher automatisch aus Modellen erzeugt werden soll. So sollen Inkonsistenzen und hoher Anpassungsaufwand vermieden werden.[hvse12] 2.1 Grundkonzepte Um modellgetrieben entwickeln zu können, wird eine Modellierungssprache benötigt. Mit dieser können Modelle erstellt werden, aus welchen, z.b. von einem Interpreter, Code erstellt werden kann. Dabei ist es unwichtig, welche Art von Modell genutzt und wie der Code umgewandelt wird. In der Praxis wird dies, allerdings häufig durch das benutzte Tool vorgegeben. [HVSE12] Um generierten und selbst geschriebenen Code voneinander zu trennen, wird häufig die dreistufige Vererbung genutzt (siehe Abbildung 2.1). In der Plattformschicht befinden sich die Basisklassen zur Erstellung von Modellen. Daraus können in der Modellschicht Zwischenklassen abgeleitet werden, welche dort als Teil des Modells auftauchen. Die letzte Schicht ist manuell implementiert, was von den entsprechenden Entwicklern vorgenommen wird, die entsprechende Modelle erstellen. [HVSE12] Abbildung 2.1: Die Dreistufige Vererbung. [HVSE12]

9 KAPITEL 2. MODELLGETRIEBENE SOFTWAREENTWICKLUNG Zusammenfassung Der größte Vorteil der Modellgetriebenen Softwareentwicklung ist die Programmierung in einer höheren Abstraktionsebene [HVSE12], wodurch Zusammenhänge schneller deutlich werden und die Komplexität des Programms auf einzelne Bausteine, z.b. Entitäten, reduziert wird. Daraus resultiert auch, dass der Code einheitlich, immer auf dieselbe Art und Weise, übersetzt wird und somit frei von persönlichen Stilen und Präferenzen ist [HVSE12]. Durch die Gleichsetzung von Code und Modell, werden Inkonsistenzen und Aufwand für Anpassungen an den Modellen vermieden. Dies führt zu einer besseren Dokumentation und einer erheblichen Zeitersparnis. Da für ein Modell verschiedene Generatoren benutzt werden können, kann aus diesem, Software in verschiedenen Sprachen und für verschiedene Plattformen entwickelt werden [HVSE12]. Trotz des hohen Anteils an generiertem Code, muss in den meisten Fällen noch Code ergänzt werden, da mit der Modellgetriebenen Entwicklung meist nur ein Grundrahmen und keine große Funktionalität geschaffen werden kann [SBMP08].

10 4 3 Eclipse Modeling Framework Das Eclipse Modeling Framework (kurz EMF) ist ein mächtiges Werkzeug, um modellgetrieben in Java zu entwickeln. Es ist ein Framework in Eclipse, welches die Grundkonzepte der Modellgetriebenen Softwarentwicklung umsetzt. Verschiedene Arten von Modellen können damit einfach ineinander umgewandelt werden und zum Erzeugen von Code benutzt werden. Dabei soll laut [SBMP08] der generierte Code genau so sauber, einfach und effizient sein, wie selbst geschriebener. Zusätzlich zur Entwickeln ist es mit dem EMF möglich Modelle mittels Querys zu validieren. 3.1 Einführung Das Framework vereinigt verschiedene Sprachen,welche wie in Abbildung 3.1 zu sehen ist, alle ineinander umgewandelt werden können. Abbildung 3.1: Das Eclipse Modeling Framework vereinigt XML, UML und Java. [SBMP08] Zusätzlich ist es möglich aus Java-Interfaces Modelle zu erzeugen [SBMP08]. Dies ist ein elementarer Bestandteil des Frameworks, da alle Modelle in entsprechende Interfaces umgewandelt werden und die eigentliche Programmierung in extra dafür bereitgestellten Dateien stattfindet. So wird eine einheitliche Trennung von automatisiertem und selbst geschriebenem Code gewährleistet und Inkonsistenzen zwischen diesen vermieden. 3.2 Technologie Das EMF enthält ein Metamodell, welches die Regeln der Modellerstellung definiert. Daraus folgt, dass sämtliche Modelle nur nach dem vorgegebenen Schema erstellbar sind. Alle Objekte stammen laut Vorgabe von der Oberklasse EObject ab. Die daraus

11 KAPITEL 3. ECLIPSE MODELING FRAMEWORK 5 abgeleiteten Elemente bilden die Basisklassen in der dreistufigen Vererbung und sind in Abbildung 3.2 zu sehen. Zu diesen Elementen gehören unter anderem Referenzen (EReference), Attribute (EAttribute), Datentypen (EDataType) und Klassen (EClass). Abbildung 3.2: Das Ecore-Metamodell. [SBMP08] Die Hauptelemente sind dabei Klassen, welche mittels Referenzen Assoziationen untereinander bilden. Zudem können Klassen mehrere Attribute haben, die immer von einem bestimmten Datentyp sind (Abbildung 3.2). Vererbung ist laut [BURV] ebenfalls möglich. Auf dem ersten Blick ist ersichtlich, dass das Metamodell in seinem Aufbau dem der UML-Klassendiagramme entspricht. Es definiert Regeln zur Erstellung entsprechender Diagramme UML UML ist eine der am weitesten verbreiteten Modellierungssprachen. Durch die Vielzahl an unterschiedlichen Modellen ist es möglich ein System aus verschiedenen Sichtweisen zu beschreiben. Dadurch wird es möglich größere Softwarearchitekturen und komplette Programmabläufe übersichtlich zu modellieren. Das Eclipse Modeling Framework unterstützt nur die Umsetzung von UML-Klassendiagrammen und der daraus folgenden Generierung von Code. Weitere Modelle werden von dem Framework nicht beachtet uns sind somit in diesem Zusammenhang unwichtig. Das Abbildung 3.3: Beispiel eines UML-Diagramms, welches einen Supermarkt modelliert. Beispiel in Abbildung 3.3, welches das Einkaufen in einem Supermarkt simuliert, wird auch im weiteren Verlauf zum Erläutern diverser Techniken genutzt werden.

12 TECHNOLOGIE XML XML ist ein Sprache, mit der unter Anderem textuelle Modelle beschrieben werden können. Diese gelten im Vergleich zu den grafischen, als weniger gut leserlich, was vor allem daran liegt, dass diese Assoziationen etc. nicht so stark hervorheben, wie es z.b. bei UML der Fall ist. Abhängigkeiten und Zugehörigkeiten werden so nicht so schnell ersichtlich. Die Leserlichkeit kann trotzdem durch Einrückung und einer farbigen Darstellung verbessert werden (vgl. [HVSE12]). Wie in Abbildung 3.1 zu sehen ist es möglich mit XML Modelle für das Eclipse Modeling Framework zu definieren. Für den weiteren Verlauf der Ausarbeitung ist die Sprache allerdings nicht mehr relevant.

13 KAPITEL 4. MODEL QUERYS 7 4 Model Querys Model Querys dienen der unter anderem der Validierung und der Simulation von Modellen in der Modellgetriebenen Softwareentwicklung [BURV]. Dafür gibt es einige Lösungen für das Eclipse Modeling Framework. Zum einen wird durch das Validation Framework und das Query Framework, im EMF integrierte Lösungen bereitgestellt diese durchzuführen, als auch durch die Erweiterung EMF IncQuery. Im folgenden sollen die Unterschiede zwischen diesen herausgestellt und die jeweiligen Stärken und Schwächen erläutert werden. 4.1 EMF Validation Framework Das Validation Framework ist ein Bestandteil des Eclipse Modeling Framework und bietet die Möglichkeit, mittels Beschränkungen und Invarianten, Modelle zu validieren. Diese können direkt in das Modell eingetragen werden, wobei der zugehörige Code automatisch genieriert wird und durch den Nutzer erweitert werden kann, bzw bei Invarianten auch erweitert werden muss ([SBMP08]) Validierung Die Möglichkeiten der Validierung bestehen darin, Beschränkungen und Invarianten zu erstellen. Beschränkungen gelten nur für einen bestimmten Zeitpunkt. Das kann z.b. eine Vorbedingung oder ähnliches sein ([SBMP08]). Wie diese im Code des Java-Interfaces deklariert werden ist in Listing 4.1 zu sehen. 1 / annotation = http : / /www. e c l i p s e. org /emf /2002/ Ecore c o n s t r a i n t s = ValidPrice 3 / 4 p u b l i c i n t e r f a c e Product 5 { } Listing 4.1: Deklaration einer Beschränkung Dies kann stattdessen auch im XML-Schema oder mittels der grafischen Oberfläche in Eclipse realisiert werden. Bei der Code-Generierung wird anschließend eine Validator-Klasse erzeugt, in der die Beschränkung in einer ebenfalls generierten Methode genauer spezifiziert werden muss ([SBMP08]). In unserem Beispiel soll der Preis eines Produktes (Abbildung 3.3) zu einem bestimmten Zeitpunkt nicht negativ

14 EMF MODEL QUERIES sein. Dies muss nur, wie in Listing 4.2 zu sehen ist, in die entsprechende if-anweisung eingetragen werden. 1 p u b l i c boolean v a l i d a t e P r o d u c t V a l i d P r i c e ( Product product, DiagnosticChain d i a g n o s t i c s, Map<Object, Object> context ) { 2 i f ( product. g e t P r i c e ( ) < 0) { } 5 return true ; 6 } Listing 4.2: Erstellen einer Beschränkung Aus Gründen der Übersichtlichkeit wurde generierter Code entfernt, in welchem die Auswertung im Fehlerfall spezifiziert wird. Die erzeugten Variablen diagnostics und context sind dafür notwendig ([SBMP08]). Invarianten sollen zu jedem Zeitpunkt gültig sein und sind dementsprechend mächtiger als Beschränkungen. Sie werden als Methoden in der entsprechenden Klasse definiert. Im Anschluss muss, ähnlich wie bei den Beschränkungen, eine Bedingung vervollständigt werden ([SBMP08]) Vor- und Nachteile Die Sprache eignet sich, durch die Möglichkeit Beschränkungen und Invarianten zu beschreiben, nur zur Validierung des Modells und nicht dazu Querys auf diesem durchzuführen. Das durchführen von Querys auf Modellen, mittels des Query Frameworks, wird im folgenden Kapitel behandelt. 4.2 EMF Model Queries Das Query Framework unterstützt die Object Constraint Language (OCL), um mit dieser Querys auf Modellen durchzuführen ([EMFb]). OCL ist eine Erweiterung von UML und dient dazu Beschränkungen für Objekte zu definieren. Anhand dieser Beschränkungen kann eine Query auf ein Modell durchgeführt werden ([Ber]). Wie im Beispiel, in Listing 4.3, muss zunächst eine Beschränkung definiert werden, Diese wird benötigt,um eine SQL-artige Query auf dem Modell durchzuführen. In dem Beispiel wird überprüft, ob es ein Produkt gibt, dessen Preis unter 0 liegt. 1 Resource myresource = products 2 3 OCL o c l = org. e c l i p s e. o c l. e c o r e.ocl. newinstance ( ) ; 4 Condition c o n d i t i o n = new BooleanOCLCondition<E C l a s s i f i e r, EClass, EObject >( 5 o c l. getenvironment ( ), 6 s e l f. g e t P r i c e ( ) < 0, 7 EXTLibraryPackage. L i t e r a l s.writer) ; 8 9 SELECT statement = new SELECT(SELECT.UNBOUNDED, f a l s e, 10 new FROM( myresource. getcontents ( ) ), new WHERE( c o n d i t i o n ), 11 new NullProgressMonitor ( ) ) ; IQueryResult r e s u l t s = statement. execute ( ) ; Listing 4.3: Eine einfache OCL-Query. [EMFa]

15 KAPITEL 4. MODEL QUERYS 9 Des weiteren ist es möglich mehrere Beschränkungen in einer Query mittels logischer Operationen miteinander zu verknüpfen und so fortschrittlichere Anfragen auszuführen ([EMFb]) Vor- und Nachteile Die Sprache ermöglicht ein einfaches Abfragen von Bedingungen auf Objekten. Sie ist allerdings nicht ausdrucksstark genug für fortschrittlichere Anwendungsfälle. Es fehlen immer noch wichtige Features, wie zum Beispiel Rekursion. Zudem können Referenzen nicht rückwärts durchlaufen werden ([BURV]). Zur Überprüfung Sicherheitsrelevanter Eigenschaften ist sie somit nur eingeschränkt geeignet. 4.3 EMF-IncQuery EMF-IncQuery ist eine graphenbasierte Anfragesprache für EMF-Modelle. Mit ihr ist es möglich sowohl globale Model Querys, welche das gesamte Modell auswerten, als auch lokale Model Querys, welche nur Informationen bezüglich eines gegebenen Modell-Elements zurückgeben. Das Ziel ist es eine präzise und gut verständliche Sprache, welche an die Modelle des EMF angepasst ist, zu bieten ([BURV]) Querys Im Folgenden soll EMF-IncQuery anhand eines Beispiels genauer erläutert werden. Als Ausgangspunkt dient hierbei ebenfalls Abbildung 3.3, das UML-Diagramm von einem Supermarkt. In Listing 5.1 wird eine Query durchgeführt, welche überprüft, ob ein übergebenes Produkt queryproduct einen negativen Preis besitzt. 1 pattern v a l i d P r i c e ( queryproduct ) = { 2 Product ( queryproduct ) ; 3 EFloat ( queryproduct. p r i c e ) ; 4 check ( queryproduct. p r i c e > 0) ; 5 } ; Listing 4.4: Eine einfache Query. Die erste zu erfüllende Bedingung ist, dass queryproduct vom Typ Product ist. Das enthaltene Attribut, der Preis des übergebenen Produktes, soll den im Modell vorgegebenen Typen, float, haben. Danach ist sichergestellt, dass der Vergleich des Preises von queryproduct anwendbar ist. Dieser wird in der folgenden Zeile mittels check durchgeführt. Nun ist es ein leichtes die Query auf alle Artikel des Store durchzuführen. Dazu kann einfach die bereits erstellte Query wiederverwendet werden Vor- und Nachteile Mittels EMF-IncQuery ist es einfach ausdrucksstarke Querys zu spezifizieren und Modelle dadurch zu validieren. Die Möglichkeit einer transitiven Hülle und Rekursion, sowie das Erzeugen von Java-Ausdrücken sind durch die Sprache gegeben ([BURV]). Zudem ist sie kurz und prägnant, was das Lesen und Erlernen deutlich einfacher macht. Zur Überprüfung Sicherheitsrelevanter Eigenschaften ist sie somit sehr gut geeignet.

16 10 5 Überprüfung sicherheitsrelevanter Eigenschaften Der Aspekt Sicherheit wird in der heutigen Zeit der Softwareentwicklung immer wichtiger und sollte möglichst in den Prozess dieser einbezogen werden. Um dies zu gewährleisten ist eine automatische Überprüfung der sicherheitsrelevanten Eigenschaften besonders praktisch ([MWY]). Verschiedene Arten sicherheitsrelevanter Eigenschaften für Software sollen im folgenden Kapitel erläutert werden und beispielhaft anhand einer Query überprüft werden. 5.1 Sicherheitsrelevante Eigenschaften Sicherheitsrelevante Eigenschaften werden formuliert, um Dinge, wie Daten, Personen oder beides, zu schützen. Ein Beispiel dafür ist laut [MWY] unter Anderem Zugriffskontrolle. Es soll sichergestellt werden, dass der Zugriff zu sensiblen Daten nur an autorisierten Benutzern gewährt wird, um Missbrauch dieser zu vermeiden. Allerdings müssen die Nutzer genug Berechtigungen haben, um mit der Software ihre Arbeit erledigen zu können. Weitere Eigenschaften sind zum Beispiel, dass bestimmte Daten verschlüsselt übertragen werden sollen. Die Lösung des Problems, besteht darin entweder die entsprechenden Daten oder den gesamten Datenverkehr von Ende zu Ende zu verschlüsseln ([BGR + ]). Redundanz ist eine weitere Eigenschaft, welche vor allem bei Datenbanken etc. besonders wichtig ist. Sie soll vor Datenverlust und schützen und die Integrität der Daten bewahren ([BURV]). Die benötigten Eigenschaften sollten allerdings immer mit bedacht gewählt werden, da sich diese gegenseitig widersprechen können. Beispiele dafür sind unter anderem Nachweisbarkeit und Anonymität. Für solche Paradigmen wird es schwer Querys zu formulieren, die nicht verletzt werden ([BGR + ]). 5.2 Überprüfung Die Überprüfung von Sicherheitsrelevante Eigenschaften soll mittels EMF Inc-Query geschehen, da diese von den bereits genannten Anfrage-Sprachen die mächtigste und vergleichsweise einfachste ist. In [BURV] werden zwei sicherheitsrelevante Eigenschaften auf einem gegebenen Modell überprüft. Bei dem Modell müssen Akteure, welche sich untereinander vertrauen, Anforderungen erfüllen. Aufgaben können von Akteur zu Akteur weitergereicht werde. Dabei soll sichergestellt werden, dass nur ein Akteur eine Anforderung abschließt, welcher vertrauensvoll ist oder der Pfad an Zwischenakteuren vertrauensvoll ist und dass dieser mehrmals, Redundant, ab-

17 KAPITEL 5. ÜBERPRÜFUNG SICHERHEITSRELEVANTER EIGENSCHAFTEN 11 geschlossen wird. Das Modell und die Querys in dem Beispiel sind allerdings sehr komplex und nicht für diese Ausarbeitung geeignet, weshalb dieses in einer vereinfachten Form erläutert wird. Ein vereinfachtes Modell könnte wie in Abbildung 5.1 aussehen. Akteure können sich Abbildung 5.1: Vereinfachtes Modell gegenseitig vertrauen und Aufgaben abschließen. Ein einfaches Beispiel zur Überprüfung der Redundanz eines Objektes wird in Listing 5.1 dargestellt. 1 pattern redundancyoa ( redundancydegree ) = { 2 f i n d t r u s t R e f e r e n c e ( object, redundancydegree ) ; 3 } 4 5 pattern redundancy ( object, redundancydegree ) = { 6 check ( redundancydegree <= count o b j e c t ) ; 7 } Listing 5.1: Überprüfung auf Redundanz Es wird im Pattern redundancy einfach die Häufigkeit des entsprechenden Objektes gezählt und mit dem vorgegebenen Grad der Redundanz verglichen. Die Query ist erfüllt, wenn die Anzahl an Objekten höher ist als der Grad. Um das gesamte Modell auf diese Anforderung zu testen muss diese Query nur noch auf alle Elemente durchgeführt werden. Dadurch wird die Redundanz von allen Objekten in dem Modell sichergestellt. Dies wird ermöglicht, indem in das Pattern mit einer leeren Variable als Objekt aufgerufen wird. Dadurch versucht Inc-Query die Bedingung mit jeder möglichen Kombination zu erfüllen. Die andere in [BURV] genannte Eigenschaft kann soweit vereinfacht werden, dass ein Akteur, dem vertraut wird einen Vorgang abschließen darf. Dazu muss nur ein anderer Akteur gefunden werden, welcher dem abschließenden vertraut. Dies wird durch Listing 5.2 erreicht. 1 pattern i s T r u s t e d ( t r u s t e d ) = { 2 f i n d t r u s t R e f e r e n c e ( anytruster, t r u s t e d ) ; 3 } 4 5 pattern t r u s t R e f e r e n c e ( t r u s t e r, t r u s t e d ) = { 6 Actor. t r u s t s ( t r u s t e r, t r u s t e d ) ; 7 } Listing 5.2: Überprüfung auf Vertrauen Das Pattern trustreference versucht eine Referenz zwischen den beiden übergebenen Akteuren zu finden. Dies wird im übergeordneten Pattern istrusted aufgerufen, wobei als truster eine leere Variable übergeben wird. Falls ein Pfad gefunden wird gilt die Bedingung als erfüllt.

18 12 6 Fazit Sicherheitsaspekte nehmen einen immer wichtigeren Teil in der Softwareentwicklung ein, wodurch es nötig ist diese besonders sorgfältig zu testen und möglichst früh in die Software einzubinden. Durch die Modellgetriebene Softwareentwicklung und Model Querys kann dies schon in der Projektplanung, beim erzeugen von Modellen, gemacht werden. Das spart hohen Anpassungsaufwand, führt zu einer besseren Qualität der Software und besser durchdachten Sicherheitsmechanismen, die strikt eingehalten werden können. EMF Inc-Query ist zum Testen von Eigenschaften besonders geeignet, da es eine einfach zu erlernende, aber mächtige Anfragesprache ist. Sämtliche Anfragen können dadurch abgebildet werden und zum Überprüfen auf sicherheitsrelevante Eigenschaften genutzt werden. Model Querys sind somit gut geeignet Software von Anfang an zu überwachen und bei stetig wachsenden Anforderungen dessen Sicherheit zu garantieren.

19 LITERATURVERZEICHNIS 13 Literaturverzeichnis [Ber] [BGR + ] Gábor Bergmann. Translating ocl to graph patterns extended version*. Technical report, Budapest University of Technology and Economics, Department of Measurement and Information Systems. Jens Bürger, Stefan Gärtner, Thomas Ruhroth, Johannes Zweihoff, Jan Jürjens, and Kurt Schneider. Restoring security of long-living systems by co-evolution. Technical report, Chair of Software Engineering, TU Dortmund, Germany, Fraunhofer ISST, Dortmund, Germany, Software Engineering Group, Leibniz Universit at Hannover, Germany. [BURV] Gábor Bergmann, Zoltán Ujhelyi, István Ráth, and Dániel Varró. A graph query language for emf models. Technical report, Department of Measurement and Information Systems, Budapest University of Technology and Economics, 1117 Budapest, Magyar tudósok krt. 2. [EMFa] EMF Inc-Query. Abruf: [EMFb] EMF Model Query Developer Guide. org/online_books/eclipse_documentation/eclipse_emf_model_ query_developer_guide/topic/org.eclipse.emf.query.doc/ tutorials/eclipse_emf_model_query_oclquerytutorial.html. Abruf: [HVSE12] Arno Haase, Markus Völter, Thomas Stahl, and Sven Efftinge. Modellgetriebene Softwareentwicklung. dpunkt.verlag, Heidelberg, 2 edition, [MWY] Lionel Montrieux, Michel Wermelinger, and Yijun Yu. Tool support for uml-based specification and verification of role-based access control properties. Technical report, Centre for Research in Computing and Computing Department, The Open University, Milton Keynes, UK. [SBMP08] Dave Steinberg, Frank Budinsky, Ed Merks, and Marcelo Paternostro. EMF: Eclipse Modeling Framework, Second Edition. Addison-Wesley Professional, 2 edition, 2008.

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Einführung in das Eclipse Modeling Framework. Dr. Thorsten Arendt Marburg, 22. Oktober 2015

Einführung in das Eclipse Modeling Framework. Dr. Thorsten Arendt Marburg, 22. Oktober 2015 Einführung in das Eclipse Modeling Framework Dr. Thorsten Arendt Marburg, 22. Oktober 2015 Überblick Einführung in das Eclipse Modeling Framework: zur objektorientierten Modellierung von Datenstrukturen

Mehr

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) Einführung in das Eclipse Modeling Framework (EMF) Timo Kehrer, Cristoph Berane Praktische Informatik November 2010 Überblik Ecore Was ist EMF? EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling

Mehr

Software Engineering in der Projektpraxis

Software Engineering in der Projektpraxis Software Engineering in der Projektpraxis Praktische Übungen Josef Adersberger Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 15. Mai 2008 Inhalt

Mehr

Model Driven Software Development

Model Driven Software Development Model Driven Software Development Vergleich von Metametamodellen Marcel Hoyer 1von 19 Themenvorstellung Vergleich von Metametamodellen Was sind überhaupt Metametamodelle? Analyse und Vergleich existierender

Mehr

Grundlagen von MOF. Alexander Gepting 1

Grundlagen von MOF. Alexander Gepting 1 Grundlagen von MOF Alexander Gepting 1 Kurzfassung Meta-Object Facility (MOF) ist ein Standard der OMG der im Rahmen der Standardisierung von Modellierungstechniken für verteilte Architekturen und Softwaresysteme

Mehr

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

Mehr

Modellbasierte Softwareentwicklung mit EMF

Modellbasierte Softwareentwicklung mit EMF Softwaretechnik I, WS 2009/10 Modellbasierte Softwareentwicklung mit EMF Übungsblatt 5 13. November 2009 Organisatorisches Zur Bearbeitung der Übungsaufgabe stehen Ihnen die folgenden 3 Wochen (Kalenderwochen

Mehr

MDRE die nächste Generation des Requirements Engineerings

MDRE die nächste Generation des Requirements Engineerings MDRE die nächste Generation des Requirements Engineerings Tom Krauß, GEBIT Solutions GmbH Copyright 2007 GEBIT Solutions Agenda Requirements Engineering heute eine Bestandsaufnahme Modell-Driven Requirements

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester

Mehr

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo) Gert Bikker, Kevin Barwich, Arne Noyer Domänenspezifisch entwickeln mit UML (Vortrag mit Demo) Die Modellierung mit UML bietet auch für eingebettete Systeme viele Vorteile. Um die Vorteile effizient nutzen

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012

Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012 Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012 29 Textuelle Visuelle Alphabete Textuelle Sprachen: eindimensional (Sätze) Basiselemente: Buchstaben, Ziffern,

Mehr

Thema 2 Acceleo-MTL- Sprachmittel

Thema 2 Acceleo-MTL- Sprachmittel SE Vertiefung Beuth-Hochschule Berlin Thema 2 Acceleo-MTL- Sprachmittel Sprachstruktur Template-Sprache implementiert MOFM2T Bausteine: Modul Template Query Block Protected Area (c) schmiedecke 13 Generator-Kapsel;

Mehr

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath ) Schulung ) AUTOR Zoltan Horvath Orientation in Objects GmbH ) Beratung ) Veröffentlicht am: 26.2.2010 ÜBERSICHT ECLIPSE MODELING PROJECT ) Entwicklung ) ) Artikel ) Das Eclipse Modeling Project dient

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

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

Oracle JDeveloper 10 g

Oracle JDeveloper 10 g Oracle JDeveloper 10 g Modellierung Evgenia Rosa Business Unit Application Server ORACLE Deutschland GmbH Agenda Warum Modellierung? UML Modellierung Anwendungsfall (Use Case)-Modellierung Aktivitätenmodellierung

Mehr

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle Doktoranden-, Diplomandenseminar, Institut für Informatik, TU Clausthal 23. Juni 2009 Motivation: Modelle werden in der

Mehr

Merkblatt zur Anfertigung von Studienarbeiten, Diplomarbeiten und Bachelor-Abschlussarbeiten

Merkblatt zur Anfertigung von Studienarbeiten, Diplomarbeiten und Bachelor-Abschlussarbeiten 1 Merkblatt zur Anfertigung von Studienarbeiten, Diplomarbeiten und Bachelor-Abschlussarbeiten LS Praktische Informatik IV 17.02.2005 Dieses Merkblatt gibt einen kurzen Überblick über die formalen Anforderungen

Mehr

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4. SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen

Mehr

Integration von SBVR in Workflows der Windows Workflow Foundation und Veröffentlichung unter Microsoft SharePoint

Integration von SBVR in Workflows der Windows Workflow Foundation und Veröffentlichung unter Microsoft SharePoint Technik Christoph Zoller Integration von SBVR in Workflows der Windows Workflow Foundation und Veröffentlichung unter Microsoft SharePoint Diplomarbeit FH JOANNEUM - University of Applied Sciences Integration

Mehr

Modellprüfung von UML-Zustandsmaschinen und UML-Kollaborationen in SAL

Modellprüfung von UML-Zustandsmaschinen und UML-Kollaborationen in SAL Institut für Informatik, Lehr- und Forschungseinheit für Programmierung und Softwaretechnik der Ludwig-Maximilians-Universität München Diplomarbeit Modellprüfung von UML-Zustandsmaschinen und UML-Kollaborationen

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Metamodellbasierte Codegenerierung in Java

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Metamodellbasierte Codegenerierung in Java Metamodellbasierte Codegenerierung in Java Codegenerierung Markus Völter, voelter@acm.org, www.voelter.de Codegenerierung bezeichnet die automatische Erstellung von Quelltext aus üblicherweise abstraktereren,

Mehr

COPE COuPled Evolution of metamodels and models

COPE COuPled Evolution of metamodels and models COPE COuPled Evolution of metamodels and models Diplomarbeit in Zusammenarbeit mit der BMW Car IT (Betreuer: Elmar Jürgens, Sebastian Benz) Markus Herrmannsdörfer 7. November 2007 Perlen der Informatik

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen Fachhochschule Köln Cologne University of Applied Sciences Fakultät für Informations-, Medien- und Elektrotechnik Institut für Automatisierungstechnik Labor für Informations- und Automatisierungstechnik

Mehr

Rollen- und Berechtigungskonzepte in der IT-Prüfung. Bachelorarbeit

Rollen- und Berechtigungskonzepte in der IT-Prüfung. Bachelorarbeit Rollen- und Berechtigungskonzepte in der IT-Prüfung Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft der Wirtschaftswissenschaftlichen

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

Jochen Bauer 08.01.2010

Jochen Bauer 08.01.2010 08.01.2010 Um was geht s und wie läuft s ab? Eclipse-EMP-MDT: Standards unter einem Dach! Gliederung 1. der Model (MDT) 2. Model-Driven- (MDD) und MDT 3. Interne Domain-Specific-Languages (DSL) 4. 5. 6.,

Mehr

openarchitectureware

openarchitectureware openarchitectureware Enrico Schnepel EAS, FHTW-Berlin 07.06.2007 2007 (CC by-nc-sa 2.0 Germany) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 1 / 26 Gliederung 1 Einleitung 2 Begriffsdefinitionen

Mehr

Einführung in das Eclipse Modeling Framework. 31. Oktober 2012

Einführung in das Eclipse Modeling Framework. 31. Oktober 2012 Einführung in das Eclipse Modeling Framework 31. Oktober 2012 Überblick Einführung in das Eclipse Modeling Framework: eine Infrastruktur für die modellgetriebene Softwareentwicklung Wie funktioniert der

Mehr

Notationen zur Prozessmodellierung

Notationen zur Prozessmodellierung Notationen zur Prozessmodellierung August 2014 Inhalt (erweiterte) ereignisgesteuerte Prozesskette (eepk) 3 Wertschöpfungskettendiagramm (WKD) 5 Business Process Model and Notation (BPMN) 7 Unified Modeling

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

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

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,

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

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

Inhaltsverzeichnis.

Inhaltsverzeichnis. Wegweiser durch das Buch 1 1 Problembereich und Lösungsbereich 10 1.1.Unterschiede zwischen Problembereich und Lösungsbereich 10 1.2 Paradigmen der Softwareentwicklung 12 1.3 Methoden für die verschiedenen

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Prinzipien Objektorientierter Programmierung

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

Mehr

UML. Weiteres Vorgehen im Projekt

UML. Weiteres Vorgehen im Projekt UML Download objectif Personal Edition (kostenlos): http://www.microtool.de/objectif/de/download.asp Weiteres Vorgehen im Projekt Komponenten, Klassen, Objekte Prozesse Nichtfunktionale Anforderungen Skizzen,

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools MOF Meta Object Facility Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools Überblick Object Management Group (OMG) Model Driven Architecture (MDA) Exkurs: Modelle, Metamodelle MOF Architektur

Mehr

Business Intelligence Praktikum 1

Business Intelligence Praktikum 1 Hochschule Darmstadt Business Intelligence SS 2014 Fachbereich Informatik Praktikumsversuch 1 Prof. Dr. C. Wentzel Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 07.05.2014 Business Intelligence Praktikum

Mehr

Model Driven Architecture Praxisbeispiel

Model Driven Architecture Praxisbeispiel 1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel 2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch

Mehr

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Modellierungstechniken im Softwaredesign Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Was ist Modellierung? Modell = Ein Modell ist eine Repräsentation eines Systems von Objekten,

Mehr

Changelog objectif 7.0 Service Pack 3

Changelog objectif 7.0 Service Pack 3 Changelog objectif 7.0 Service Pack 3 Mit dem Service Pack 3 zu objectif haben wir wieder zahlreiche Neuerungen in objectif integriert und eine ganze Reihe von Fehlern behoben. Lesen Sie hier im Detail,

Mehr

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis Einfach generieren Susanne Klar, Michael Klar Generative Programmierung verständlich und praxisnah ISBN 3-446-40448-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40448-1

Mehr

«Titel der Arbeit» SEMINARARBEIT. an der. Universität Regensburg. Eingereicht bei der Honorarprofessur für Wirtschaftsinformatik,

«Titel der Arbeit» SEMINARARBEIT. an der. Universität Regensburg. Eingereicht bei der Honorarprofessur für Wirtschaftsinformatik, «Titel der Arbeit» SEMINARARBEIT an der Universität Regensburg Eingereicht bei der Honorarprofessur für Wirtschaftsinformatik, -Prof. Dr. Hans-Gert Penzel- von: Name, Vorname Matrikel-Nr.: 123 456 Adresse:

Mehr

Problemseminar ModelDrivenSoftwareDevelopment

Problemseminar ModelDrivenSoftwareDevelopment Problemseminar ModelDrivenSoftwareDevelopment Metamodellierungswerkzeuge Björn Dassow Aufbau Definition Beschreibung Metamodellierung Kurzer Überblick über EMF, GME, MetaEdit+ Interoperabilitätsbetrachtung

Mehr

APPS für ios 10. professionell entwickeln. Apple Watch

APPS für ios 10. professionell entwickeln. Apple Watch thomas SILLMANN APPS für ios 10 professionell entwickeln // Sauberen Code schreiben mit Swift 3 und Objective-C // Stabile Apps für iphone und ipad programmieren // Techniken & Methoden von Grund auf verstehen

Mehr

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung Software Factories 3 Modellgetriebene Softwareentwicklung Prof. Dr. Dirk Müller Übersicht Einordnung im Lebenszyklus Ziele Hebung des Abstraktionsniveaus Model Driven Architecture (MDA) Domänenspezifische

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Michael Piechotta - CASE Tools. openarchitecture Ware

Michael Piechotta - CASE Tools. openarchitecture Ware Model Driven Development Michael Piechotta - CASE Tools openarchitecture Ware Gliederung 1.Einleitung - Was ist MDD? - Wozu MDD? 2.Model Driven Development - OMG Konzepte: Modelle,Transformationen Meta-Modellierung

Mehr

Proseminar: Moderne Technologien für die Entwicklung von verteilten, dynamischen Anwendungen

Proseminar: Moderne Technologien für die Entwicklung von verteilten, dynamischen Anwendungen Proseminar: Moderne Technologien für die Entwicklung von verteilten, dynamischen Anwendungen Einführung Prof. Dr. Joel Greenyer 3. April 2013 Organisation Leitung: Joel Greenyer Büro: g322 email: greenyer@inf.uni-hannover.de

Mehr

Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware

Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware Dipl. Inform. Olaf Maibaum DLR, Abt. Simulations- und Softwaretechnik DLR, Abt. Simulations- und Softwaretechnik 1 Übersicht Bird-Satellit

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015 Henshin: Modelltransformationen in EMF Dr. Thorsten Arendt Marburg, 29. Oktober 2015 Überblick Modelltransformationen Einführung in Henshin Modelle im Eclipse Modeling Framework Transformationskonzepte

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

1 4. Datenmodellierung mit der Unified Modeling Language (UML)

1 4. Datenmodellierung mit der Unified Modeling Language (UML) 1 4. Datenmodellierung mit der Unified Modeling Language (UML) Objekte, Klassen und Assoziationen Multiplizitäten - Kardinalitäten Rollen (Wiederholung) Einfache Abbildung von Modellen auf Tabellen Empfehlungen

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller UML Crashkurs v0.1 UML für Fachinformatiker von Hanjo Müller 3. Mai 2005 Inhaltsverzeichnis Inhaltsverzeichnis 1 UML - Unified Modeling Language 3 2 UML im Software Entwurf 4 2.1 Ablauf der Softwareentwicklung.............................

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

Informatik II Übung 6 Gruppe 7

Informatik II Übung 6 Gruppe 7 Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,

Mehr

Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement

Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement Anfrageformulierung: Allgemeines Ein wesentliches, charakteristisches Merkmal aller Datenbankmanagement nkmanagement- systeme ist die Unterstützung einer (oder mehrerer) Anfragesprachen. Eine Anfrage ist

Mehr

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

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

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Allgemeines Entwicklung eines eigenen Diagrammeditors inklusive Interpreter und Codegenerierung Einsatz von Modellen zum Entwickeln

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

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

Mehr

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite Zusammenfassung: Alle Oracle Forms Anwendungen sind per Default durch SQL Injection angreifbar. Oracle Applications >=11.5.9 ist davon nicht betroffen, da hier standardmäßig der Wert FORMSxx_RESTRICT_ENTER_QUERY

Mehr

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15 Inhaltsverzeichnis 1 Einleitung...11 2 Motivation...15 Teil 1 - XM L......17 3 Geschichte von X M L...17 3.1 Markupsprachen...17 3.1.1 Auszeichnungsarten...17 3.1.2 Markupsprachen...20 4 Zeichensatz...

Mehr

Methoden des Software Engineering

Methoden des Software Engineering Methoden des Software Engineering Funktions-, daten-, objekt- und aspektorientiert entwickeln Bearbeitet von Joachim Goll 1. Auflage 2012. Buch. xxxviii, 794 S. Hardcover ISBN 978 3 8348 2433 2 Format

Mehr

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN Mathias Slawik, WI (M), 3. FS Aktuelle Themen der Wirtschaftsinformatik, HTW Berlin, WS 10/11 Gliederung 2 Methode

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

Model Driven Architecture (MDA)

Model Driven Architecture (MDA) Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 11/12 Fachgebiet Software Engineering Wiederholung Bisher im Laufe des Semesters umgesetzt: Modellierung eines Meta-Modells für die Workflow Diagramme mit Fujaba

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

Der Datentyp String. Stringvariable und -vergleiche

Der Datentyp String. Stringvariable und -vergleiche Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3) Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Datum: 10. Juli 2009 Themendossier Modellgetriebene Softwareentwicklung Seite 1 Einführung in das Thema Die Disziplin des Software Engineerings befasst sich bereits seit vielen Jahren mit der Frage, wie

Mehr

Verybench: grafisches Frontend für Testwell CMT++ Code Complexity Measures Tool

Verybench: grafisches Frontend für Testwell CMT++ Code Complexity Measures Tool Verybench: grafisches Frontend für Testwell CMT++ Code Complexity Measures Tool Testwell CMT++ ist ein von der finnischen Firma Testwell Oy (www.testwell.fi) entwickeltes konsolenbasiertes Werkzeug zur

Mehr

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6 Prof. Dr. Wilhelm Schäfer Paderborn, 24. November 204 Christian Brenner Tristan Wittgen Besprechung der Aufgaben:. - 4. Dezember 204 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Persistenz. Workplace Solutions. Persistenz. ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping. Abbildung Objekte auf RDBMS

Persistenz. Workplace Solutions. Persistenz. ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping. Abbildung Objekte auf RDBMS Persistenz ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping APCON Abbildung Objekte auf RDBMS Der Strukturkonflikt Basisklassen und Domänen Klassen zur Kapselung der relationalen Datenbank Abbildung

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