Was sind embedded DBMS? Eingebettete DBMS. Motivation für Embedded Databases. Besonderheiten Smartcards. in Programme eingebettet z.b.

Ähnliche Dokumente
Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Möglichkeiten der Maßschneiderung von DBMS

Allgemeines zu Datenbanken

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Teil 2 Maßgeschneidertes Datenmanagement. Gunter Saake (Universität Magdeburg) Christian Kästner (Universität Marburg)

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Grundlagen Software Engineering

Teil 2 Maßgeschneidertes Datenmanagement

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

Comparing Software Factories and Software Product Lines

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Datenbank-Service. RZ-Angebot zur Sicherstellung von Datenpersistenz. Thomas Eifert. Rechen- und Kommunikationszentrum (RZ)

Objektorientierte Programmierung

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Kapitel 10 Aktive DBMS

Softwareproduktlinien Teil 1: Einführung und Überblick

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

Generatives Programmieren

Generative Prozessmodelle Patrick Otto MDD Konferenz

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

WinVetpro im Betriebsmodus Laptop

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

Einführung in. Logische Schaltungen

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Prof. Dr. Norbert Pohlmann, Institut für Internet Sicherheit - if(is), Fachhochschule Gelsenkirchen. Lage der IT-Sicherheit im Mittelstand

ATHOS Benutzertreffen

Von Perimeter-Security zu robusten Systemen

5. Programmierschnittstellen für XML

Product Line Engineering (PLE)

Hinweise zur Installation von MySQL

Datenbanken Microsoft Access 2010

J.6 Programmierung eingebetteter Systeme

Kundenspezifische Preise im Shop WyRu Online-Shop

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Arbeiten mit UMLed und Delphi

Implementierung v. Software-Produktlinien - Einführung und Überblick

FORGE2015 HDC Session 4. Nachhaltige Infrastruktur als technologische Herausforderung. Tibor Kálmán Tim Hasler Sven Bingert

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Herausforderungen des Enterprise Endpoint Managements

Internet online Update (Mozilla Firefox)

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Neuheiten PROfirst KALKULATION Version 8. SQL ist sehr schnell. Neuheiten PROfirst KALKULATION Version 8 1/7

Microsoft SharePoint 2013 Designer

TELEMETRIE EINER ANWENDUNG

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Variabilität in Produktlinien und das orthogonale Variabilitätsmodell

Applikation servotec Antriebsparameter Optimieren

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Was ist das Tekla Warehouse

Software Release Notes

e-business - Patterns Stefan Brauch (sb058) -- Julian Stoltmann (js057)

PKV- Projektanlage Assistent

Kommunikation, Information und mobile verteilte Systeme (KIS)

C++ Tutorial: Timer 1

Datenmanagement in Android-Apps. 16. Mai 2013

Fragen Arthur Zaczek. Apr 2015

5. Programmierschnittstellen für XML

desk.modul : ABX-Lokalisierung

Systemvoraussetzungen

Datenbanken. Prof. Dr. Bernhard Schiefer.

Automatisiertes Publizieren - Der kleine Unterschied im Crossmedia Publishing macht sich bezahlt

Systemvoraussetzungen Informationscenter IFC

G.I.B ABAP Programmier-Templates, Strukturen bilden Kosten senken

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Refactoring relationaler Datenbank. Shaoke Wu

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Technische Voraussetzungen und Kompatibilitätsliste GemDat/Rubin

Entwurf einer einfachen Datenbank zur Wunschzettel- Verwaltung

EINSATZ VON MICROSOFT TERMINAL-SERVICES ODER CITRIX METAFRAME

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

SMART Newsletter Education Solutions April 2015

HelpMatics Service Management System

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Definition Informationssystem

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Ein Tool für automatische Performancetests von Java3D Applikationen

Systemvoraussetzungen für ConSol*CM Version Architektur Überblick

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Konzepte der Informatik

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

SERVICE SUCHE ZUR UNTERSTÜTZUNG

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet

Objektorientiertes Software-Engineering

Transkript:

Eingebettete DBMS Was sind embedded DBMS? in Programme eingebettet z.b. (embedded database management systems) Aktuelle Praxis und Herausforderungen Berkeley DB DB4O embedded systems z.b. Smartcard Christian Kästner, Martin Kuhlemann, Norbert Siegmund, Marko Rosenmüller, Sven Apel, Thomas Leich, Gunter Saake Sensoren, Sensornetzwerke PDAs Handys ITI_DB/MD Datenbanken 2: Embedded DBMS 1 ITI_DB/MD Datenbanken 2: Embedded DBMS 2 Motivation für Embedded Databases Besonderheiten Smartcards 98 % aller im Einsatz befindlichen Rechnersysteme sind eingebettete Systeme Extreme Ressourcenbeschränkung Hohe Heterogenität von Hard- und Software Ubiquitous und Pervasive Computing Sensornetzwerke, Gerätesteuerung Datenaufkommen in diesem Bereich wächst ständig Extrem wenig Speicher 24-48kB Footprint für DBMS Kaum bis gar kein RAM -> neuartige Anfragepläne Schnelles Lesen, aber sehr langsames Schreiben, beschränkte Rechenleistung Externe Stromversorgung -> Transaktionen Sicherheitsmanagment, Privacy, z.b. für den Einsatz als Gesundheitskarte ITI_DB/MD Datenbanken 2: Embedded DBMS 3 ITI_DB/MD Datenbanken 2: Embedded DBMS 4

Beispiel Sensor-Datenbanken: Biotop-Überwachung 1000 drahtlose Sensoren : Temperatur, Luftdruck, Vibrationen, Lichtintensität, Feuchtigkeit, Chemische Zusammensetzungen Mikrosensoren: Stark ressourcenbeschränkte eingebettete Systeme Datenkollektoren Zusammenführung von Sensordaten Vorbereitung der Datenauswertung Problem: ressourcenknappe Umgebung Kein kontinuierliches Senden von Messwerten möglich Voraggregation verhindert Ad-hoc-Anfragen Verringerung zu übertragender Daten Besonderheiten Sensornetzwerke Wenig Speicher 100-200kB Footprint für DBMS, sehr wenig RAM Verteiltes System mit veränderlicher Anzahl an Teilnehmern Stromversorungsprobleme (Batterie) Kommunikationsstörungen (Funk) Verteilte Transaktionen Abfragen über Zeit Werteaggregation über mehrere Sensoren Komplexe Anfragen über veränderliches Netzwerk ITI_DB/MD Datenbanken 2: Embedded DBMS 5 ITI_DB/MD Datenbanken 2: Embedded DBMS 6 Weitere Anwendungsszenarien Sensoren in Autos (24V) Cisco Router Telefonanlage, Mobiltelefon Jeweils rel. hohe Datenmenge bei rel. schwachen Prozessoren Waerme Energieverbrauch Kosten ITI_DB/MD Datenbanken 2: Embedded DBMS 7 Und in Zukunft? Speicherung geringer Datenmengen untereingeschränkten Ressourcen Ähnliche Situation bereits vor Jahren: Handys noch vor kurzem Desktop Bereich in 80ern Business Applikationen in 70ern Und in Zukunft? Ubiquitous Computing, Smart Dust Immer DM für kleine Datenmengen und extreme Ressourcenbeschränkungen notwendig ITI_DB/MD Datenbanken 2: Embedded DBMS 8

Datenmanagement (DM) in Eingebetteten Systemen Breites Anwendungsspektrum Sensoren bis Navigationssysteme Biologie bis Technik Unterschiedliche Daten Einzelne Werte + einfache Strukturen (z.b. Array) Einzelne Tabellen Vollständige Datenbank (z.b. Navigationssystem) Unterschiedliche Hardware Spezielle Anforderungen (z.b. für EEPROM) Ressourcenbeschränkungen (CPU, Speicher, Energie) ITI_DB/MD Datenbanken 2: Embedded DBMS 9 Existierende embedded DBMS Oft gebaut für sehr spezielle Anforderungen Unterstützen nur wenige Systeme z.b. nur Smartcards Kaum Anpassbar Teils unnötiger Overhead ITI_DB/MD Datenbanken 2: Embedded DBMS 10 Von Macro über Mini und Micro zu Nano-DBMS Macro Mini Micro Nano Datenmodelle/ Speicherformen Objektrelationales -. Multidimensionales -, und Relationales Datenmodell Relationales Datenmodell persistente Tabellen einfache persistente Speicherstrukturen (Array, Hash Map,..) Anfragen SQL 3 SQL 1 (Ad-hoc Anfragen möglich) 1-Relationen Zugriff meist über eine API API Einsatzgebiet Serversysteme Desktop, Laptop PDA, Smartphones (tief) eingebettete Systeme, Smartcards Typische Systeme Oracle, IBM, MS SQL-Server MySQL, Oracle Lite Berkeley DB, RDM- Embedded, COMET DBMS Prevayler Maßgeschneiderte Datenhaltung Kommerzielle DBMS Oracle, IBM DB2, SQL Server, -> Eierlegende Wollmilchsäue Obermenge aller denkbaren kommerziell einsetzbarer Funktionalität Aufgrund Ressourcenbeschraenkung nicht einsetzbar Individuelle Datenhaltungs-Software teuer, schwer wartbar, time to market.. Lösung: Maßgeschneidertes DM Für jede Anwendung nur notwendige Funktionalität ITI_DB/MD Datenbanken 2: Embedded DBMS 11 ITI_DB/MD Datenbanken 2: Embedded DBMS 12

Brauchen wir alles? 1. Integration 2. Operationen 3. Katalog 4. Benutzersichten 5. Integritätssicherung (Konsistenzüberwachung) 6. Zugriffskontrolle/Datenschutz 7. Transaktionen 8. Synchronisation 9. Datensicherung Was ist gemeinsam/ähnlich? Was wird meist in ähnlicher Form gebraucht Storage Management (Einpassen auf Seiten etc) Anfrageverarbeitung (SQL parsen, Pläne erstellen und optimieren) Transaktionsverwaltung Was ist oft gemeinsam Zugriffsrechte Recovery Logging DDL/DML/SQL Dialekte ITI_DB/MD Datenbanken 2: Embedded DBMS 13 ITI_DB/MD Datenbanken 2: Embedded DBMS 14 Architektur Verteilt Was ist unterschiedlich? Stand-alone Minimaler Footprint Unterschiedliche Implementierung gleicher Funktionalität Optimiert für geringen Stromverbrauch Optimiert für Performance Minimaler Footprint Systemspezifika z.b. kein RAM Idee: Produktlinien Aus einheitlicher Basis eine Vielzahl verschiedener Produkte erstellen Alle Produkte gehoeren zu einer Produktfamilie Unterscheiden sich durch Features (deutsch: Merkmale) Konfiguration durch Auswahl der Features ITI_DB/MD Datenbanken 2: Embedded DBMS 15 ITI_DB/MD Datenbanken 2: Embedded DBMS 16

BMW-Produktlinie PC-Produktlinie ITI_DB/MD Datenbanken 2: Embedded DBMS 17 ITI_DB/MD Datenbanken 2: Embedded DBMS 18 Features in MS Office Software-Produktlinien (SPL) Basis-Code enthält nur Grundfunktionalität Alles weitere wird in Features implementiert und kann hinzugefügt werden. ITI_DB/MD Datenbanken 2: Embedded DBMS 19 ITI_DB/MD Datenbanken 2: Embedded DBMS 20

Feature-Modell Modellierung einer Produktlinie in einem Feature-Baum Verfeinerung der Funktionalität zu den Blättern im Modell hin Beziehungen zwischen Features werden im Modell durch verschiedene Eltern-Kind Kanten dargestellt r Beispiel p s G H A B mandatory optional and alternative or ITI_DB/MD Datenbanken 2: Embedded DBMS 21 implies ITI_DB/MD Datenbanken 2: Embedded DBMS 22 Feature Modelle Existierende Systeme/Forschungsentwuerfe PicoDBMS Comet DBMS Cougar DBMS Tiny DB Berkeley DB Geplante Systeme/Subsysteme Fame DBMS Für Smartcards PicoDBMS ITI_DB/MD Datenbanken 2: Embedded DBMS 23 ITI_DB/MD Datenbanken 2: Embedded DBMS 24

Für Sensornetzwerke Comet DBMS Für Sensornetzwerke Cougar DBMS ITI_DB/MD Datenbanken 2: Embedded DBMS 25 ITI_DB/MD Datenbanken 2: Embedded DBMS 26 Tiny DB Berkeley DB Embedded Java Storage Engine ITI_DB/MD Datenbanken 2: Embedded DBMS 27 ITI_DB/MD Datenbanken 2: Embedded DBMS 28

FAME DBMS FAME DBMS: Storage Manager Zusammenfügen der Erfahrungen aus Domainanalyse und Domainwissen zu einem einzigen hochkonfigurierbarem DBMS DFG Projekt FAME Methods and tools for the construction of highly configurable database families for embedded systems (Magdeburg, Erlangen) Modellierung und Implementierung von Modulen Query Processor (SQL) Storage Manager ITI_DB/MD Datenbanken 2: Embedded DBMS 29 ITI_DB/MD Datenbanken 2: Embedded DBMS 30 Implementierung von SPL: Aktuelle Praxis Fallstudie: Berkeley DB Jedes System neuentwickeln Hoher Aufwand, aber ueblich Low-level languages (C, Assembler) #ifdef im code Resultiert teils in schlecht wartbarem Code Beispiel: Berkeley DB Komponenten, Frameworks Unvollständige Konfigurierbarkeit (z.b. Transaktionsverwaltung) Verschachtelte Präprozessoranweisungen Sehr lange Methoden (bis zu ca. 500 Zeilen) Hoher Overhead, im Embedded Bereich oft nicht moeglich ITI_DB/MD Datenbanken 2: Embedded DBMS 31 ITI_DB/MD Datenbanken 2: Embedded DBMS 32

Grenzen von OOP Grenzen von OOP Problem: Was wenn beide Eigenschaften benötigt werden? Problem: Was wenn beide Eigenschaften benötigt werden? Codereplikation und exponentiell viele Varianten! ITI_DB/MD Datenbanken 2: Embedded DBMS 33 ITI_DB/MD Datenbanken 2: Embedded DBMS 34 Idee Zusammenbau von Klassen OOP Basis-Struktur OOP Mixins Rollen von Klassen SortedList FindList Unterschiedlich kombinierbar Mixins ITI_DB/MD Datenbanken 2: Embedded DBMS 35 ITI_DB/MD Datenbanken 2: Embedded DBMS 36

Mixins Mixins OOP Ungenaue Definition der Basisimplementierung FOP Features Schrittweise Erweiterung der Basisimplementierung durch Verfeinerungen (Refinements) ITI_DB/MD Datenbanken 2: Embedded DBMS 37 Refinements ITI_DB/MD Datenbanken 2: Embedded DBMS 38 Mixins Sortierte Liste Large Scale Refinements Für Software-Produktlinien Skalierung auf ganze Software (mehrere Klassen) notwendig -> Large Scale Refinements Mixin-Schichten fassen Erweiterungen unterschiedlicher Klassen zusammen Bsp.: Bibliothek von Container-Klassen Klassen (List, Array, etc.), werden um Features (Sortierung, Suche, etc.) erweitert. Beliebige Merkmalskombinationen erstellbar ITI_DB/MD Datenbanken 2: Embedded DBMS 39 ITI_DB/MD Datenbanken 2: Embedded DBMS 40

Mixin-Schichten Principle of Uniformity Software besteht nicht nur aus Quellcode Build Skripte (xml) Dokumentation (xml, html, txt, pdf) Grammatiken (bali) Modelle (UML,...) Alle Software-Artefakte müssen genauso erweiterbar sein ITI_DB/MD Datenbanken 2: Embedded DBMS 41 ITI_DB/MD Datenbanken 2: Embedded DBMS 42 Beispiel Implementierungsbeispiel class Graph { Vector nv = new Vector(); Vector ev = new Vector(); Edge add(node n, Node m) { Edge e = new Edge(n, m); nv.add(n); nv.add(m); ev.add(e); return e; void print() { for(int i = 0; i < ev.size(); i++) ((Edge)ev.get(i)).print(); class Edge { Node a, b; Edge(Node _a, Node _b) { a = _a; b = _b; void print() { a.print(); b.print(); class Node { int id = 0; void print() { System.out.print(id); refines class Graph { Edge add(node n, Node m) { Edge e = super.add(n, m); e.weight = new Weight(); Edge add(node n, Node m, Weight w) Edge e = new Edge(n, m); nv.add(n); nv.add(m); ev.add(e); e.weight = w; return e; refines class Edge { Weight weight = new Weight(); void print() { super.print(); weight.print(); class Weight { void print() {... ITI_DB/MD Datenbanken 2: Embedded DBMS 43 ITI_DB/MD Datenbanken 2: Embedded DBMS 44

Anwendung auf DBMS Ergebnisse: Konfigurierbarkeit in Berkeley DB 35 Features, 24 optional (11 in original Version) ITI_DB/MD Datenbanken 2: Embedded DBMS 45 Ausschnitt der Features in Berkeley DB ITI_DB/MD Datenbanken 2: Embedded DBMS 46 Ergebnisse: Codegröße Ergebnisse: Performance 1 2 3 4 5 6 7 8 Konfiguration Vollständig 1 Ohne Verschlüsselung 2 Ohne Hash 3 Ohne Replikation 4 Ohne Queue 5 Ohne Verifikation Minimal mit B-Tree Minimal mit Queue Äquivalente Umsetzung bei identischer Konfiguration Minimal FeatureC++ Performance Verbesserung bei Beschränkung auf notwendige Merkmale 1 6 7 Konfiguration Vollständig Minimal C ITI_DB/MD Datenbanken 2: Embedded DBMS 47 ITI_DB/MD Datenbanken 2: Embedded DBMS 48

Andere Implementierungslösungen in der Forschung Design Pattern Aspect Oriented Programming Multidimensional Separation of Concerns ITI_DB/MD Datenbanken 2: Embedded DBMS 49 Probleme (Auszug) Features sind oft nicht unabhängig, wie geht man damit um? Wie geht man mit der explodierenden Variantenvielfalt um? mit n unabhängigen optionalen Features können 2 n Varianten erstellt werden mit 32 Features eine Variante für jeden Menschen auf dem Planeten mit 320 Features mehr Varianten als Atome im Universum Wie kann ein Nutzer aus hunderten Features noch die richtigen auswählen? ITI_DB/MD Datenbanken 2: Embedded DBMS 50 Problem: Feature Interaktionen Unidirectional Interactions ITI_DB/MD Datenbanken 2: Embedded DBMS 51 ITI_DB/MD Datenbanken 2: Embedded DBMS 52

Interaktionen rauslösen Interaktionen rauslösen (2) ITI_DB/MD Datenbanken 2: Embedded DBMS 53 ITI_DB/MD Datenbanken 2: Embedded DBMS 54 Wie viele Interaktionen gibt es? Theoretisch möglich: Paarweise Interaktionen: Alle Interaktionen: i max = n 2 = n2 n 2 n 1 n Beobachtungen langsames quadratisches Wachstum (k*n 2 ; k<<1) scheint typisch, k spezifisch für Produktlinie h max = o=1 Tatsächliche Anzahl: deutlich weniger o 1 =2n n 1 aber immer noch oft mehr als Features im System ITI_DB/MD Datenbanken 2: Embedded DBMS 55 ITI_DB/MD Datenbanken 2: Embedded DBMS 56

Halbautomatische Featureauswahl Automatische Selektion von Features Erlaubt optimierte Auswahl von Features mit gleicher Funktionalität, aber unterschiedlicher Implementierung Auswahl basiert auf nicht funktionalen Eigenschaften von Features Footprint Performance Verfügbarkeit Optimierung Benutzer selektiert gewünschte Funktionalität im FM Benutzer definiert nicht funktionale Bedingungen des zu erstellenden Produkts Z.B. 100kB Footprint Z.B. 5.5 Performance Berechnung der besten Auswahl einer Implementation für diese Bedingungen ITI_DB/MD Datenbanken 2: Embedded DBMS 57 ITI_DB/MD Datenbanken 2: Embedded DBMS 58 Optimierung Neue Modelle werden benötigt -> Forschung Noch mehr Probleme (Aktuelle Forschung) Erstellen einer SPL aus legacy Anwendungen Refactoring, Feature Mining Kombinationen verschiedener Ansaetze und Implementierungstechniken Mixins+Aspekte, Mixins+Design Pattern Mixins+SOA, Mixins+MDA Vereinfachung von Designs Werkzeuge fuer SPLs Formalisierung ITI_DB/MD Datenbanken 2: Embedded DBMS 59 ITI_DB/MD Datenbanken 2: Embedded DBMS 60

Zerlegung von SQL3 Ausblick Entwicklung einer Datenhaltungsfamilie für Embedded Systems für Automotive-Anwendungen Design-Methoden Korrektheitseigenschaften Modellierung, Visualisierung, Strukturierung, Wiederverwendung großer Feature-Räume Ausblick Vorlesung Moderne Programmierkonzepte für maßgeschneiderte Datenhaltung im Wintersemester, Mittwochs 11-13 Laborpraktika Refactoring of legacy applications into features Feature IDE (Eclipse Entwicklung) Design Patterns in Eclipse durch Feature- Mechanismen ersetzen Kombination mit adaptiver Datenhaltung ITI_DB/MD Datenbanken 2: Embedded DBMS 61 ITI_DB/MD Datenbanken 2: Embedded DBMS 62 Diplomarbeiten Ausblick Service Oriented Product Lines (MD, Passau oder Spanien) Eine minimale Sprache zur Beschreibung Featureorientierter Software (MD, Passau) Feature Mining - Detecting Feature Code in Legacy Applications Clone-Detection mithilfe von Datenbanktechnologien Automatisierte Transformation von Objektorientiertem in Merkmalsorientierten Quellcode Refaktorisierung von Aspektorientiertem in Merkmalsorientierten Programmcode Vereinfachung des Eclipse-Designs Rückblick/Zusammenfassung Spezielle Herausforderungen für embedded DBMS Software-Produktlinien als mögliche Lösung Feature Modellierung Implementierung durch Mixin-Schichten Offene Probleme, Großes Forschungsfeld ITI_DB/MD Datenbanken 2: Embedded DBMS 63 ITI_DB/MD Datenbanken 2: Embedded DBMS 64