4 research outputs found

    A pattern-oriented and model-driven architecture for interactive systems

    Get PDF
    Day-to-day experiences suggest that it is not enough to approach a complex design equipped with design tips, guidelines, and hints. Developers must also be able to use proven solutions emerging from the best design practices to solve new design challenges. Without these, the designer is unable to properly apply guidelines or take full advantage of the power of technology, resulting therefore in poor performance, poor scalability, and poor usability. Furthermore, the designer might "reinvent the wheel" when attempting to implement a design solution. A number of design problems continue to arise, such as: (1) decoupling the various aspects of interactive systems (for example, business logic, the UI, navigation, and information architecture) and (2) isolating platform specifics from the concerns common to all interactive systems. In the context of a proposal for a Pattern-Oriented and Model-driven Architecture (POMA) for interactive systems, this thesis identifies an extensive list of pattern categories and types of models aimed at providing a pool of proven solutions to these problems. The models of patterns span several levels of abstraction, such as domain, task, dialog, presentation and layout. The proposed POMA architecture illustrates how several individual models can be combined at different levels of abstraction into heterogeneous structures which can then be used as building blocks in the development of interactive systems. This document is divided into six chapters: the first chapter presents a background and related work on "Patterns" in general and on various architectures for interactive systems development such as "N-tiers architectures", "Pattern-Oriented Design" (POD), "Pattern- Supported Approach" (PSA), and "Model-Driven Architecture" (MDA). The second chapter introduces the research topic with its objectives, its limits, the research methodology, and research steps. The third chapter describes primarily the most important parts of the research which is the development of a new architecture called Pattern-Oriented and Model-Driven Architecture, facilitating the development of interactive systems including fundamentals and key concepts, an overview, justifications versus N-tiers, POD, PSA, and MDA architectures and specifications. The fourth chapter describes architectural levels and categories of patterns used in POMA. The fifth chapter describes the categories of models used in POMA. The sixth chapter presents an exploratory case study applied to the architecture proposed in this research. The last chapter presents a conclusion on this research work and its expected evolution in the future

    A Conceptual Perspective on the Comparison of Object-Oriented Programming Languages

    No full text
    The understanding of object-oriented programming languages is generally based on their included features. In this understanding, these features form the underlying concepts of both the languages and the modeling processes based on the languages. Consequently, object-oriented languages are generally compared and evaluated based on these features. Alternatively, object-oriented programming languages may be seen as supporting a conceptual perspective on programming. Instead of the features, the underlying concepts are then concepts such as phenomenon and concept , and also the abstraction processes in relation to these concepts. A comparison of object-oriented languages from the conceptual perspective gives additional understanding of each language and the mutual relations and differences between these. 1 Introduction The paper presents a comparison of object-oriented programming languages using a conceptual framework. The framework is based on a conceptual perspective on programming and..

    Entwurf und Implementierung effizienter Objektsysteme für funktionale und imperative Programmiersprachen am Beispiel von Lisp

    Get PDF
    Bisherige Objektsysteme funktionaler und imperativer Programmiersprachen weisen eine Lücke auf. Aus der funktionalen Tradition wurde das ausdrucksstärkste Objektsystem CLOS entwickelt, das insbesondere durch sein Metaobjektprotokoll hervorsticht, dessen Performanz aber zu wünschen übrig läßt. Auf der anderen Seite zeichnet sich C++ als besonders effizient aus, unterstützt aber zentrale Konzepte objektorientierter Programmierung wie Spezialisieren und Generalisieren von Objektklassen nur unzureichend, was abgeschwächt auch für Java gilt. In dieser Arbeit wird am Beispiel von Lisp gezeigt, wie man effiziente Objektsysteme unter Berücksichtigung des Verursacherprinzips so entwirft und implementiert, daß einfache Konstrukte keinen Overhead durch die Präsenz aufwendiger Konzepte, wie des Metaobjektprotokolls oder des Redefinierens von Klassen, mittragen müssen. Entgegen bisherigen Annahmen wird hier erstmals nachgewiesen, daß diese Konzepte auch ohne Quellcodeinterpretation bzw. -kompilation zur Laufzeit realisiert und somit auch in traditionellen, compiler-orientierten Programmiersprachen, wie Ada, Pascal, Eiffel, C++ und natürlich Java, unterstützt werden können.Up to now a gap is evident in object systems of functional and procedural programming languages. The most expressive object system developed in the family of functional languages is CLOS with its outstanding metaobject protocol. Its performance, however, does not meet the users' needs. In the family of procedural languages the most efficient object system developed is C++. But its support of central concepts of object-oriented programming, such as specialization and generalization of object classes, is not sufficient. This also applies in some degree for Java. Using Lisp as an example this thesis shows how efficient object systems can be designed and implemented so that simple constructs have no overhead because of the presence of complex concepts such as the metaobject protocol or the redefinition of classes. In contrast to former assumptions, this thesis proofs for the first time that the above mentioned concepts can be realized without embedding an interpreter or an incremental compiler in the run-time environment. Therefore, they can also be supported in traditional compileroriented programming languages such as Ada, Pascal, Eiffel, C++, and Java
    corecore