269 research outputs found

    The C Object System: Using C as a High-Level Object-Oriented Language

    Full text link
    The C Object System (Cos) is a small C library which implements high-level concepts available in Clos, Objc and other object-oriented programming languages: uniform object model (class, meta-class and property-metaclass), generic functions, multi-methods, delegation, properties, exceptions, contracts and closures. Cos relies on the programmable capabilities of the C programming language to extend its syntax and to implement the aforementioned concepts as first-class objects. Cos aims at satisfying several general principles like simplicity, extensibility, reusability, efficiency and portability which are rarely met in a single programming language. Its design is tuned to provide efficient and portable implementation of message multi-dispatch and message multi-forwarding which are the heart of code extensibility and reusability. With COS features in hand, software should become as flexible and extensible as with scripting languages and as efficient and portable as expected with C programming. Likewise, Cos concepts should significantly simplify adaptive and aspect-oriented programming as well as distributed and service-oriented computingComment: 18

    A model-driven approach for facilitating user-friendly design of complex event patterns

    Get PDF
    Complex Event Processing (CEP) is an emerging technology which allows us to efficiently process and correlate huge amounts of data in order to discover relevant or critical situations of interest (complex events) for a specific domain. This technology requires domain experts to define complex event patterns, where the conditions to be detected are specified by means of event processing languages. However, these experts face the handicap of defining such patterns with editors which are not user-friendly enough. To solve this problem, a model-driven approach for facilitating user-friendly design of complex event patterns is proposed and developed in this paper. Besides, the proposal has been applied to different domains and several event processing languages have been compared. As a result, we can affirm that the presented approach is independent both of the domain where CEP technology has to be applied to and of the concrete event processing language required for defining event patterns

    Can Programming be Liberated from the Two-Level Style? Multi-Level Programming with DeepJava

    Get PDF
    Since the introduction of object-oriented programming few programming languages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively aimed at describing language properties—i.e., their metaclasses exert linguistic control on language concepts and mechanisms— often in order to make the language extensible. In terms of supporting logical domain classification levels, however, they are still limited to two levels. In this paper we conservatively extend the object-oriented programming paradigm to feature an unbounded number of domain classification levels. We can therefore avoid the introduction of accidental complexity into programs caused by accommodating multiple domain levels within only two programming levels. We present a corresponding language design featuring “deep instantiation ” and demonstrate its features with a running example. Finally, we outline the implementation of our compiler prototype and discuss the potentials of further developing our language design

    Requirements Modeling for Multi-Agent Systems

    Get PDF
    Different approaches for building modern software systems in complex and open environments have been proposed in the last few years. Some efforts try to take advantage of the agent-oriented paradigm to model/engineer complex information systems in terms of independent agents. These agents may collaborate in a computational organization (Multi-Agent Systems, MAS) by playing some specific roles having to interact with others in order to reach a global or individual goal. In addition, due to the complex nature of this type of systems, dealing with the classical functional and structural perspectives of software systems are not enough. The organizational perspective, that describes the context where these agents need to collaborate, and the social behavior perspective, that describes the different "intelligent" manners in which these agents can collaborate, need to be identified and properly specified. Several methodologies have been proposed to drive the development of MAS (e.g., Ingenias, Gaia, Tropos) although most of them mainly focus on the design and implementation phases and do not provide adequate mechanisms for capturing, defining, and specifying software requirements. Poor requirements engineering is recognized as the root of most errors in current software development projects, and as a means for improving the quality of current practices in the development of MAS, the main objective of this work is to propose a requirements modeling process to deal with software requirements covering the functional, structural, organizational, and social behavior perspectives of MAS. The requirements modeling proposed is developed within the model-driven engineering context defining the corresponding metamodel and its graphical syntax. In addition, a MAS requirements modeling process is specified using the Object Management Group's (OMG) Software Process Engineering Metamodel (SPEM). Finally, in order to illustrate the feasibility of our approach, we specified the software requirements of a strategic board game (the Diplomacy game).RodrĂ­guez Viruel, ML. (2011). Requirements Modeling for Multi-Agent Systems. http://hdl.handle.net/10251/11416Archivo delegad

    Formal transformation methods for automated fault tree generation from UML diagrams

    Get PDF
    With a growing complexity in safety critical systems, engaging Systems Engineering with System Safety Engineering as early as possible in the system life cycle becomes ever more important to ensure system safety during system development. Assessing the safety and reliability of system architectural design at the early stage of the system life cycle can bring value to system design by identifying safety issues earlier and maintaining safety traceability throughout the design phase. However, this is not a trivial task and can require upfront investment. Automated transformation from system architecture models to system safety and reliability models offers a potential solution. However, existing methods lack of formal basis. This can potentially lead to unreliable results. Without a formal basis, Fault Tree Analysis of a system, for example, even if performed concurrently with system design may not ensure all safety critical aspects of the design. [Continues.]</div

    An Architecture-based Approach for Change Impact Analysis of Software-intensive Systems

    Get PDF
    A main property of software-intensive technical systems is sustainability. Sustainable systems need to change continuously. A change to a system element can result in further changes to other system elements. If these elements originate from different domains, the change can also propagate between several domains. This book presents an architecture-based approach to change propagation analysis of software-intensive technical systems that considers heterogeneous elements from different domain
    • …
    corecore