39 research outputs found

    Model Driven Development of Distributed Business Applications

    Get PDF
    The present paper presents a model driven generative approach to the design and implementation of destributed business applications, which consequently and systematically implements many years of MDSD experience for the software engineering of large application development projects in an industrial context

    REALISTIC CORRECT SYSTEMS IMPLEMENTATION

    Get PDF
    The present article and the forthcoming second part on Trusted Compiler Implementation\ud address correct construction and functioning of large computer based systems. In view\ud of so many annoying and dangerous system misbehaviors we ask: Can informaticians\ud righteously be accounted for incorrectness of systems, will they be able to justify systems\ud to work correctly as intended? We understand the word justification in the sense: design\ud of computer based systems, formulation of mathematical models of information flows, and\ud construction of controlling software are to be such that the expected system effects, the\ud absence of internal failures, and the robustness towards misuses and malicious external attacks\ud are foreseeable as logical consequences of the models.\ud Since more than 40 years, theoretical informatics, software engineering and compiler\ud construction have made important contributions to correct specification and also to correct\ud high-level implementation of compilers. But the third step, translation - bootstrapping - of\ud high level compiler programs to host machine code by existing host compilers, is as important.\ud So far there are no realistic recipes to close this correctness gap, although it is known\ud for some years that trust in executable code can dangerously be compromised by Trojan\ud Horses in compiler executables, even if they pass strongest tests.\ud In the present first article we will give a comprehensive motivation and develop\ud a mathematical theory in order to conscientiously prove the correctness of an initial fully\ud trusted compiler executable. The task will be modularized in three steps. The third step of\ud machine level compiler implementation verification is the topic of the forthcoming second\ud part on Trusted Compiler Implementation. It closes the implementation gap, not only for\ud compilers but also for correct software-based systems in general. Thus, the two articles together\ud give a rather confident answer to the question raised in the title

    Korrektheit der Übersetzung objektorientierter Wissensrepräsentationssprachen mit statischer Vererbung

    Get PDF
    Different techniques have been proposed in order to describe the semantics of sequential object oriented progrmming languages. Most of them use denotational semantics to define SMALLTALK-like languages with single inheritance. The situation is not yet clear in the presence of multiple inheritance. The programm semantics strongly depends on which components a class actually inherits from its superclasses. Hence, the definition of inheritance is crucial to the meaning of an object oriented program. At present there is no accepted notion of inheritance for languages wirh multiple inheritance. Different topological sorting algorithms, for example, have been used in a graph theoretical framework in order to define inheritance in Lisp-like object oriented languages

    Realistic correct systems implementation

    Get PDF
    Подана перша частина статті і наступна її друга частина присвячені методам коректної побудови і функціонування великих комп'ютерних систем. У центрі уваги – проблема обґрунтування, що подається в сенсі формулювання математичної моделі інформаційних потоків у комп'ютерній системі і побудови керуючого програмного забезпечення, що контролює слушність поводження, відсутність внутрішніх помилок і усталеність стосовно зовнішніх атак як логічні наслідки, що одержуються з моделі. У першій частині статті викладена математична теорія доказової побудови компіляторівПредставленная первая часть статьи и последующая ее вторая часть посвящены методам корректного построения и функционирования больших компьютерных систем. В центре внимания – проблема обоснования, понимаемая в смысле формулирования математической модели информационных потоков в компьютерной системе и построения управляющего программного обеспечения, контролирующего правильность поведения, отсутствие внутренних ошибок и устойчивость по отношению к внешним атакам как логические следствия, получаемые из модели. В первой части статьи изложена математическая теория доказательного построения компиляторов

    Will Informatics be able to Justify the Construction of Large Computer Based Systems? Part II. Trusted compiler implementation

    Get PDF
    The present and the previous article on Realistic Correct Systems Implementation together address correct construction and functioning of large computer based systems. In view of so many annoying and dangerous system misbehaviors we want to ask: Can informaticians righteously be accounted for incorrectness of ystems, will they be able to justify systems to work correctly as intended? We understand the word justification in this sense, i.e. for the design of computer based systems, the formulation of mathematical models of information flows, and the construction of controlling software to be such that the expected system effects, the absence of internal failures, and the robustness towards misuses and malicious external attacks are foreseeable as logical consequences of the models. Since more than 40 years, theoretical informatics, software engineering and compiler construction have made important contributions to correct specification and also to correct high-level implementation of compilers. But the third step, translation — bootstrapping — of high level compiler programs into host machine code by existing host ompilers, is as important. So far there are no realistic recipes to close this gap, although it is known for many years that trust in executable code can dangerously be compromised by Trojan Horses in compiler executables, even if they pass strongest tests. Our article will show how to close this low level gap. We demonstrate the method of rigorous syntactic a-posteriori code inspection, which has been developed by the research group Verifix funded by the Deutsche Forschungsgemeinschaft (DFG).Багато років теоретична інформатика вчастині розробки програмного забезпечення і побудови компіляторів займалась проблемами правильності специфікацій і високорівневих реалізацій компіляторів. У другій частині статті розглядається проблема коректного і безпечного перекладу (bootstrapping) програм з мови високого рівня в коди машини. Показано, як вирішуються проблеми коректності програм на мовах низького рівня. Продемонстрований метод строго синтаксичного апостеріор ного аналізу, котрий був розроблений дослідною групою Verifix в університеті м. Киля (ФРН).Много лет теоретическая информатика в части разработки программного обеспечения и построения компиляторов занималась проблемами правильности спецификаций и высокоуровневых реализаций компиляторов. Во второй части статьи рассматривается проблема корректного и безопасного перевода (bootstrapping) программ с языка высокого уровня в коды машины. Показано, как решаются проблемы корректности программ на языках низкого уровня. Продемонстрирован метод строго синтаксического апостериорного анализа, который был разработан исследовательской группой Verifix в университете г. Киля (ФРГ)

    DynaMod: Dynamische Analyse für modellgetriebene Software-Modernisierung

    Get PDF
    Erfolgreiche Softwaresysteme leben lange. Gleichzeitig sind diese jedoch der enormen Geschwindigkeit der Fortentwicklung der technischen Komponenten und Plattformen unterworfen, so dass die Anwendungen technisch sehr schnell altern. Von dieser Alterung sind jedoch nicht nur Programmiertechniken betroffen, sondern auch die Softwarearchitekturen erodieren sehr schnell. Um dieser Alterung entgegenzuwirken, neue technologische Potentiale zu nutzen und auch auf zukünftige Anforderungen flexibel reagieren zu können, ist eine kontinuierliche Modernisierung von Softwaresystemen erforderlich. Bei der Neuentwicklung von Softwaresystemen hat sich mit der Modellgetriebenen Softwareentwicklung (Model-Driven Software Development, MDSD) ein Konzept etabliert, das eine elegante Lösung dieser Problematik bietet: Anstatt das System vollständig in einer technischen Programmiersprache zu entwickeln, werden fachliche Aspekte mittels geeigneter, abstrakter Modellierungssprachen dargestellt. Hierbei handelt es sich oftmals um sogenannte domänenspezifische Sprachen (Domain Specific Languages, DSLs), die speziell auf die betreffende Anwendungsdomäne zugeschnitten sind und dadurch eine knappe und präzise Formulierung der relevanten Sachverhalte ermöglichen. Die Überführung dieser abstrakten Modelle in technische Artefakte, beispielsweise Quellcode in einer Programmiersprache, wird automatisiert durch Codegeneratoren vorgenommen. Auf diese Weise ist es möglich, durch Anpassung der Generatoren die Implementierung der Modelle zu verändern, ohne Modifikationen an den zugrundeliegenden Modellen vornehmen zu müssen. Im Gegensatz zu Neuentwicklungen stehen bei vielen Bestandssystemen keine derartigen Modelle zur Verfügung. Klassische Ansätze der Modernisierung von Bestandssystemen versuchen stattdessen, die im Quellcode unmittelbar codierten Strukturen des bestehenden Systems automatisiert in Quellcode des Neusystems zu überführen. Da durch diesen Ansatz eine Transformation auf sehr elementarer Ebene stattfindet, kann dieser Ansatz der zuvor erwähnten Erosion der Anwendungsarchitektur nicht begegnen. Zudem ist auch die Übertragung elementarer Strukturen zwischen Programmiersprachen nicht trivial; häufig muss in der Zielsprache das originäre Konstrukt mit zusätzlichem Aufwand simuliert werden. Dadurch kommt es zu einer Aufblähung des Quellcodes, was der Wartbarkeit abträglich ist. Zuletzt bleiben technologische Potentiale der Zielplattform häufig ungenutzt, da das ursprüngliche System letztlich strukturuell unverändert übertragen wird. Im DynaMod-Projekt wurde mit der modellgetriebenen Modernisierung (Model Driven Modernisation, MDM) ein neuer, innovativer Ansatz untersucht, Modelle aus bestehenden Softwaresystemen abzuleiten, die in einem MDSD-Prozess genutzt werden können und dem Bestandssystem auf diese Weise die zuvor beschriebene Flexibilität der Implementierung verleiht. Zur Ableitung dieser Modelle werden nicht nur die statischen Strukturen des Softwaresystems betrachtet; ein besonderer Schwerpunkt ist die Nutzung dynamischer Analyseverfahren, d.h. der Untersuchung des Verhaltens des Softwaresystems zur Laufzeit. Diese dynamischen Analysen erlauben Einblick in die tatsächliche Nutzung des Systems durch die Nutzer und produziert somit Informationen, die zur Modernisierung eines Systems unabdingbar sind. Von besonderem Interesse ist eine gleichzeitige Betrachtung statisch und dynamisch gewonnener Informationen, eine sogenannte hybride Analyse. Hierbei entfaltet die Nutzung abstrakter Modelle eine besondere Stärke, da die Modelle eine Plattform bieten, auf der die verschiedenen Daten zusammengeführt werden können. Auch Daten aus anderen Quellen, beispielsweise Expertenwissen, können den Modellen hinzugefügt werden und führen Wissen auf der Semantikebene hinzu, das automatisiert nicht erhoben werden kann. Auf diese Weise zeigen die Modelle ein strukturiertes und umfangreiches Bild der Anwendung, das als Grundlage für eine Modernisierung dienen kann. Neben der eigentlichen Modernisierung lag ein weiterer Fokus auf der Nutzung der gewonnenen Analysedaten zum systematischen Testen der modernisierten Anwendung. Hier bestand das Ziel darin, Methoden zu entwickeln und zu erproben, die Tests zur Prüfung funktionaler und nicht-funktionaler Eigenschaften der Anwendung aus den Analysedaten generieren können

    Crystal Phase Transitions in the Shell of PbS CdS Core Shell Nanocrystals Influences Photoluminescence Intensity

    Get PDF
    ABSTRACT We reveal the existence of two different crystalline phases, i.e., the metastable rock salt and the equilibrium zinc blende phase within the CdS shell of PbS CdS core shell nanocrystals formed by cationic exchange. The chemical composition profile of the core shell nanocrystals with different dimensions is determined by means of anomalous small angle X ray scattering with subnanometer resolution and is compared to X ray diffraction analysis. We demonstrate that the photoluminescence emission of PbS nanocrystals can be drastically enhanced by the formation of a CdS shell. Especially, the ratio of the two crystalline phases in the shell significantly influences the photoluminescence enhancement. The highest emission was achieved for chemically pure CdS shells below 1 nm thickness with a dominant metastable rock salt phase fraction matching the crystal structure of the PbS core. The metastable phase fraction decreases with increasing shell thickness and increasing Exchange times. The photoluminescence intensity depicts a constant decrease with decreasing metastable rock salt phase fraction but Shows an abrupt drop for shells above 1.3 nm thickness. We relate this effect to two different transition mechanisms for changing from the metastable rock salt phase to the equilibrium zinc blende phase depending on the shell thicknes
    corecore