122,666 research outputs found

    Coordination Contracts as Connectors in Component-Based Development

    Get PDF
    Several proposals for component-based development methods have started to appear. However, the emphasis is still very much on the development of components as opposed to the development with components. The main focus is on how to generate ideal reusable components not on how to plug existing components and specify their interactions and connections. The concept of a coordination contract (Andrade and Fiadeiro 1999; Andrade and Fiadeiro 2001; Andrade, Fiadeiro et al. 2001) has been proposed to specify a mechanism of interaction between objects based on the separation between structure, what is stable, and interaction, what is changeable. This separation supports better any change of requirements, as contracts can be replaced, added or removed dynamically, i.e. in run-time, without having to interfere with the components that they coordinate. A coordination contract corresponds to an expressive architectural connector that can be used to plug existing components. In this paper we integrate the concept of a coordination contract with component-based development and show how coordination contracts can be used to specify the connectors between components

    Towards Dynamic Reverse Engineering Visual Contracts from Java

    Get PDF
    Visual contracts provide a concise and intuitive representation of preand postconditions for operations in object-oriented or component-based systems, which can be used for documentation, testing, or simulation. However, defining visual contracts to correctly describe the behaviour of existing classes or components requires a deep understanding of their data model and behaviour.We propose an approach to automatically extract instantiated versions of visual contracts, or contract instances, by observing the changes an operation performs on the objects in a system. We describe and evaluate the approach and tool to extract contract instances using the case study of Java-based DOM implementation NanoXML

    Blockchain Based Secure Interoperable Framework for the Internet of Medical Things

    Get PDF
    Internet of Medical Things (IoMT) has revolutionized the way medical infrastructure has been managed in the past. Multiple platforms in IoMT have disparate communication standards, data format requirements, and access policies, which produce immense overhead during data transfer among these platforms. In order to provide seamless healthcare services using IoMT, interoperability concerns of heterogeneous devices need to be addressed. Smart contracts using blockchain provide a secure communication for distributed objects to interact in a secure way. We propose a Blockchain-based Secure Interoperable Framework (BSIIoMT) using smart contracts for secure communication in IoMT. We present components, workflow, and design considerations of the BSIIoMT framework to show the feasibility of using edge-enabled blockchain for secure interoperability in IoMT. The BSIIoMT framework is an ongoing project where we present the framework and its components in this research where further results and evaluation will be presented in future

    Specifying Reusable Components

    Full text link
    Reusable software components need expressive specifications. This paper outlines a rigorous foundation to model-based contracts, a method to equip classes with strong contracts that support accurate design, implementation, and formal verification of reusable components. Model-based contracts conservatively extend the classic Design by Contract with a notion of model, which underpins the precise definitions of such concepts as abstract equivalence and specification completeness. Experiments applying model-based contracts to libraries of data structures suggest that the method enables accurate specification of practical software

    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

    Asynchronous Validations using Programming Contracts in Java

    Get PDF
    Design by Contract is a software development methodology based on the idea of having contracts between two software components. Programming contracts are invariants specified as pre-conditions and post-conditions. The client component must ensure that all the pre-conditions are satisfied before calling the server component. The server component must guarantee the post-conditions are met before the call returns to the client component. Current work in Design by Contract in Java focuses on writing shorthand contracts using annotations that are processed serially. Modern software systems require a lot of business rules validations on complicated domain objects. Often, such validations are in the form of a chain of independent tasks that need to be validated one after another. These tasks are computation-intensive and often involve numerous database calls and API calls over the web. This paper presents a validation rule engine framework, Rule4j to facilitate writing such business rules with the help of programming contracts in Java. The contracts are organized in a hierarchy similar to the Racket programming language. The programmer can specify the business rules in the form of a series of higher-order contracts that form a chain. These chains of contracts are validated concurrently and asynchronously to present a final validation result to the programmer. A sample scenario of trade execution is used to demonstrate the performance gain and maintainability of the framework. The experiments conducted show that validations executed using Rule4J run four times faster than the traditional approach. A clear separation of business logic and business validations for the trade execution scenario was achieved using Rule4J

    Abstracting object interactions using composition filters

    Get PDF
    It is generally claimed that object-based models are very suitable for building distributed system architectures since object interactions follow the client-server model. To cope with the complexity of today's distributed systems, however, we think that high-level linguistic mechanisms are needed to effectively structure, abstract and reuse object interactions. For example, the conventional object-oriented model does not provide high-level language mechanisms to model layered system architectures. Moreover, we consider the message passing model of the conventional object-oriented model as being too low-level because it can only specify object interactions that involve two partner objects at a time and its semantics cannot be extended easily. This paper introduces Abstract Communication Types (ACTs), which are objects that abstract interactions among objects. ACTs make it easier to model layered communication architectures, to enforce the invariant behavior among objects, to reduce the complexity of programs by hiding the interaction details in separate modules and to improve reusability through the application of object-oriented principles to ACT classes. We illustrate the concept of ACTs using the composition filters model

    Combining behavioural types with security analysis

    Get PDF
    Today's software systems are highly distributed and interconnected, and they increasingly rely on communication to achieve their goals; due to their societal importance, security and trustworthiness are crucial aspects for the correctness of these systems. Behavioural types, which extend data types by describing also the structured behaviour of programs, are a widely studied approach to the enforcement of correctness properties in communicating systems. This paper offers a unified overview of proposals based on behavioural types which are aimed at the analysis of security properties
    corecore