12 research outputs found
Neuere Entwicklungen der deklarativen KI-Programmierung : proceedings
The field of declarative AI programming is briefly characterized. Its recent developments in Germany are reflected by a workshop as part of the scientific congress KI-93 at the Berlin Humboldt University. Three tutorials introduce to the state of the art in deductive databases, the programming language Gödel, and the evolution of knowledge bases. Eleven contributed papers treat knowledge revision/program transformation, types, constraints, and type-constraint combinations
Java in eingebetteten Systemen
Moderne, objektorientierte Sprachen spielen bei der Entwicklung von
Software für eingebettete Systeme bislang kaum eine Rolle. Die Gründe
hierfür sind vielfältig, meist wird jedoch die mangelnde Effizienz und
der größere Speicherbedarf hervorgehoben.
Obwohl Java viele Eigenschaften hat, die sehr für einen Einsatz in
eingebetteten Systemen sprechen, so hängt doch gerade Java vielfach
immer noch das Vorurteil an, in Systemen mit beschränkter Rechenleistung
und Speicher zu viele Ressourcen zu benötigen.
Diese Arbeit soll dazu beitragen, diese Vorurteile abzutragen. Sie
stellt insbesondere Techniken vor, die den Speicherbedarf einer
JVM so gering wie möglich halten und diese effizient mit der zur
Verfügung stehenden Rechenleistung umgehen lassen. Viele der
dargestellten Verfahren und Algorithmen wurden in der Kertasarie
VM implementiert, einer virtuellen Maschine, die speziell für den
Einsatz in eingebetteten Systemen konzipiert wurde.
Durch die weit verbreitete Vernetzung eingebetteter Systeme über das
Internet stellt sich in vielen Fällen zudem das Problem einer modernen,
abstrakten und effizienten Form der Kommunikation. Aus diesem Grund
liegt der zweite Schwerpunkt dieser Arbeit auf dem Vergleich von
objektorientierten Middleware-Architekturen, insbesondere von
Java-RMI. Auch auf diesem Gebiet wird eine eigene, speziell an
eingebettete Systeme angepasste RMI-Variante vorgestellt.Modern, object oriented languages do not play an important role when developing software for embedded systems. There are many reasons for it, most often an inadequate performance and a greater memory demand are mentioned. In spite of the fact that Java has many features suitable for embedded systems, Java often faces the prejudice to consume too much resources in systems with limited processing power and memory. This work is a contribution to diminish this prejudices. It presents techniques to limit the memory demands of a Java Virtual Machine and to effectively cope with limited computing power. Many of the presented methods and algorithms are implemented in the Kertasarie VM, a JVM designed to run in embedded systems.Due to the fact of increasing network capabilities embedded systems often face the problem of a modern, abstract and efficient communication. Therefore the second emphasis of this work is put on the comparison of object oriented middleware architectures, especially Java-RMI. An own implementation for embedded systems is also presented
Adaptive anwendungsspezifische Verarbeitung von XML-Dokumenten
In dieser Arbeit wird ein Konzept vorgeschlagen, mit dem neue hohere Operatoren auf der Grundlage existierender Operatoren einer XML-Transformationsprache aufgebaut werden können. Durch das Zusammenfassen von immer wieder auftretenden Operatorkombinationen zu höheren Operatoren können Transformationsdefinitionen bspw. kürzer und verständlicher beschrieben werden. Zur Umsetzung des Konzeptes ist die Ausführungsumgebung XTC entstanden. XTC koordiniert den Ablauf, um höhere Operatoren in niedrigere, letztendlich elementare Operatoren einer Basistransformationssprache zu überführen. Neben XTC wird das Generatorsystem XOpGen entwickelt, welches den Implementierungsaufwand für die neuen höheren Operatoren weiter verringert. Das Potential von höheren Operatoren wird an der vom W3C standardisierten XML-Transformationssprache XSLT demonstriert. XSLT wird mit verschiedenen, sowohl universellen als auch domänenspezifischen, Operatoren erweitert
Realisierung von Softwareproduktlinien durch Komposition von Belangimplementierungen
Softwareproduktlinienentwicklung ist ein Ansatz zur systematischen Wiederverwendung von Softwareartefakten. In dieser Arbeit stellen wir ein Verfahren vor, welches es erlaubt, unterstützte Merkmale einer Produktlinie in Form voneinander abgegrenzter Belangimplementierungen zu spezifizieren und diese zu maßgeschneiderten Varianten der Produktlinie zu komponieren. Das Verfahren vereinigt hierzu Konzepte der mehrdimensionalen Belangtrennung, der generischen Programmierung sowie der Generierung
Relevanzbasierte Informationsbeschaffung für die informierte Entscheidungsfindung intelligenter Agenten
This dissertation introduces relevance-based information acquisition for intelligent software agents based on Howard s information value theory and decision networks. Active information acquisition is crucial in domains with partial observability in order to establish situation awareness of autonomous systems for deliberate decisions. The new semi-myopic approach addresses the complexity challenge of decision-theoretic relevance computation by reducing the set of variables to be evaluated in the first place. Links in a decision network encode stochastic dependencies of variables. Through utility dependency analysis using Pearl s d-separation criterion, the set of relevant variables can be efficiently reduced to a proven minimum without actually computing information value. In addition to an implementation with detailed runtime performance analysis, the applicability of the approach is shown in the domain of intelligent logistics control
Verhaltensdesign: Technologische und ästhetische Programme der 1960er und 1970er Jahre
Ob Neokybernetik, Computer-, Sprach- oder Sound-Experiment, ob Brainstorming, Lernumgebung oder Konferenz, Gruppendynamik oder Umweltschutz - zahlreiche populäre Verfahren der 1960er und 1970er Jahre erzählen von medialer und humaner Transformation. Der Band geht der ästhetischen und politischen Genealogie dieser Bildungs-, Erziehungs- und Regierungsprogramme nach, indem er Verhaltenslehren der europäischen Literaturgeschichte mit medien- und designtheoretischen Diskursen konfrontiert. Dabei erlaubt er auch einen Blick hinter den 'eisernen Vorhang' aktueller Programme, die unter dem Diktum von Kreativität, Katastrophe oder Komplexität weiterhin bilden, erziehen und regieren. Mit Beiträgen aus Designtheorie, Literatur-, Medien-, Kultur- und Bildwissenschaft
Qualitätssicherung von Modelltransformationen - Über das dynamische Testen programmierter Graphersetzungssysteme
Modelle und Metamodelle repräsentieren Kernkonzepte der modellgetriebenen Softwareentwicklung (MDSD). Programme, die Modelle (unter Bezugnahme auf ihre Metamodelle) manipulieren oder ineinander überführen, werden als Modelltransformationen (MTs) bezeichnet und bilden ein weiteres Kernkonzept. Für dieses klar umrissene Aufgabenfeld wurden und werden speziell angepasste, domänenspezifische Transformationssprachen entwickelt und eingesetzt.
Aufgrund der Bedeutung von MTs für das MDSD-Paradigma ist deren Korrektheit essentiell und eine gründliche Qualitätssicherung somit angeraten. Entsprechende Ansätze sind allerdings rar. In der Praxis erweisen sich die vornehmlich erforschten formalen Verifikationsansätze häufig als ungeeignet, da sie oft zu komplex oder zu teuer sind. Des Weiteren skalieren sie schlecht in Abhängigkeit zur Größe der betrachteten MT oder sind auf Abstraktionen bezogen auf die Details konkreter Implementierungen angewiesen. Demgegenüber haben testende Verfahren diese Nachteile nicht. Allerdings lassen sich etablierte Testverfahren für traditionelle Programmiersprachen aufgrund der Andersartigkeit der MT-Sprachen nicht oder nur sehr eingeschränkt wiederverwenden. Zudem sind angepasste Testverfahren grundsätzlich wünschenswert, da sie typische Eigenschaften von MTs berücksichtigen können. Zurzeit existieren hierzu überwiegend funktionsbasierte (Black-Box-)Verfahren.
Das Ziel dieser Arbeit besteht in der Entwicklung eines strukturbasierten (White-Box-)Testansatzes für eine spezielle Klasse von Modelltransformationen, den sog. programmierten Graphtransformationen. Dafür ist anhand einer konkreten Vertreterin dieser Sprachen ein strukturelles Überdeckungskonzept zu entwickeln, um so den Testaufwand begrenzen oder die Güte der Tests bewerten zu können. Auch müssen Aspekte der Anwendbarkeit sowie der Leistungsfähigkeit der resultierenden Kriterien untersucht werden.
Hierzu wird ein auf Graphmustern aufbauendes Testüberdeckungskriterium in der Theorie entwickelt und im Kontext des eMoflon-Werkzeugs für die dort genutzte Story- Driven-Modeling-Sprache (SDM) praktisch umgesetzt. Als Basis für eine Wiederverwendung des etablierten Ansatzes der Mutationsanalyse zur Leistungsabschätzung des Kriteriums hinsichtlich der Fähigkeiten zur Fehlererkennung werden Mutationen zur synthetischen Einbringung von Fehlern identifiziert und in Form eines Mutationstestrahmenwerks realisiert. Letzteres ermöglicht es, Zusammenhänge zwischen dem Überdeckungskonzept und der Mutationsadäquatheit zu untersuchen. Im Rahmen einer umfangreichen Evaluation wird anhand zweier nichttrivialer Modelltransformationen die Anwendbarkeit und die Leistungsfähigkeit des Ansatzes in der Praxis untersucht und eine Abgrenzung gegenüber einer quellcodebasierten Testüberdeckung durchgeführt.
Es zeigt sich, dass das entwickelte Überdeckungskonzept praktisch umsetzbar ist und zu einer brauchbaren Überdeckungsmetrik führt. Die Visualisierbarkeit einzelner Überdeckungsanforderungen ist der grafischen Programmierung bei Graphtransformationen besonders nahe, so dass u. a. die Konstruktion sinnvoller Tests erleichtert wird. Die Mutationsanalyse stützt die These, dass die im Hinblick auf Steigerungen der Überdeckungsmaße optimierten Testmengen mehr Fehler erkennen als vor der Optimierung. Vergleiche mit quellcodebasierten Überdeckungskriterien weisen auf die Existenz entsprechender Korrelationen hin. Die Experimente belegen, dass die vorgestellte Überdeckung klassischen, codebasierten Kriterien vielfach überlegen ist und sich so insbesondere auch für das Testen von durch einen Interpreter ausgeführte Transformationen anbietet