176,150 research outputs found

    Rewriting Constraint Models with Metamodels

    Get PDF
    An important challenge in constraint programming is to rewrite constraint models into executable programs calculat- ing the solutions. This phase of constraint processing may require translations between constraint programming lan- guages, transformations of constraint representations, model optimizations, and tuning of solving strategies. In this paper, we introduce a pivot metamodel describing the common fea- tures of constraint models including different kinds of con- straints, statements like conditionals and loops, and other first-class elements like object classes and predicates. This metamodel is general enough to cope with the constructions of many languages, from object-oriented modeling languages to logic languages, but it is independent from them. The rewriting operations manipulate metamodel instances apart from languages. As a consequence, the rewriting operations apply whatever languages are selected and they are able to manage model semantic information. A bridge is created between the metamodel space and languages using parsing techniques. Tools from the software engineering world can be useful to implement this framework

    Being Van Kampen in Presheaf Topoi is a Uniqueness Property

    Get PDF
    Fibred semantics is the foundation of the model-instance pattern of software engineering. Software models can often be formalized as objects of presheaf topoi, e.g. the category of directed graphs. Multimodeling requires to construct colimits of diagrams of single models and their instances, while decomposition of instances of the multimodel is given by pullback. Compositionality requires an exact interplay of these operations, i.e., the diagrams must enjoy the Van Kampen property. However, checking the validity of the Van Kampen property algorithmically based on its definition is often impossible. In this paper we state a necessary and sufficient yet easily checkable condition for the Van Kampen property to hold for diagrams in presheaf topoi. It is based on a uniqueness property of path-like structures within the defining congruence classes that make up the colimiting cocone of the models. We thus add to the statement "Being Van Kampen is a Universal Property" by Heindel and Sobocinski presented at CALCO 2009 the fact that the Van Kampen property reveals a set-based structural uniqueness feature

    A Reference Architecture and a Software Platform for Engineering Internet of Things Search Engines

    Get PDF
    The Internet of Things (IoT) is here. Enabled by advances in the wireless networking and the miniaturization of embedded computers, billions of physical things have been connecting to the Internet and offering their ability to sense and react to the real-world phenomena. These abilities form the content of IoT, which enable applications such as smart-city, smartbuilding, assisted living, and supply chain automation. The Internet of Things Search Engines (IoTSE) support human users and software systems to detect and retrieve IoT content for realizing the stated applications. Due to the diversity and sensitivity of IoT content, the literature has suggested that IoTSE will emerge as a large number of small instances, each of which monitors a specific IoT infrastructure and specializes in querying a particular type of IoT content. Various internal activities (i.e., components), as well as the logical and physical arrangement of those activities (i.e., architectural patterns), will overlap between IoTSE instances. The emergence of a large number of IoTSE instances, which possess overlapping operations and architecture, highlights the need for leveraging prior components and architectural patterns in engineering IoTSE instances. However, as an IoTSE reference architecture and a software infrastructure to guide and support such reuse-centric IoTSE engineering have not existed, a majority of IoTSE instances have been engineered from scratch. This thesis aims at proposing the reference architecture and the software infrastructure to support leveraging prior components and architectural patterns in engineering IoTSE instances. The key contributions of this thesis include a reference architecture that describes the constituting components and architectural patterns of an IoTSE instance, and software infrastructure that supports utilizing the reference architecture in developing reusable, composable IoTSE components and engineering IoTSE instances from those components. In order to propose the IoTSE reference architecture, we conducted a systematic and extensive survey of over one decade of IoTSE research and development effort from both an academic and an industrial perspective. We identified commonalities among diverse classes of IoTSE instances and compiled this knowledge into a reference architecture, which defines 18 components, 13 composition patterns, and 6 deployment patterns. We assessed the reference architecture by mapping it onto two IoTSE prototypes that represent the most common types of IoTSE in the literature and possess the more complicated architecture compared to other types. In order to develop the software infrastructure, we first proposed a kernel-based approach to IoTSE engineering, which was inspired by the design of modern operating systems. In this approach, IoTSE instances operate as a collection of independently developed IoTSE components that are plugged into a shared kernel. This kernel provides essential utilities to run IoTSE components and control their interactions to fulfill the functionality of an IoTSE instance. The kernel also provides templates that simplify the development of IoTSE components that are interoperable and compliant with the proposed reference architecture. In a case study, which involves engineering an IoTSE prototype, the kernel managed to reduce the amount of new source line of code to just 30%. The kernel-based approach supports engineering a majority of prominent IoTSE types detected in the literature. To enhance its support for emerging classes of IoTSE and prepare for future features in the reuse-centric IoTSE engineering, we proposed a platform-based approach to IoTSE engineering that extends the kernel-based approach. The platform-based approach revolves around an Internet of Things Search Engine Platform – ISEP – that supports developing interoperable IoTSE components, accumulating those components, and allowing search engine operators to engineer IoTSE instance from them using any valid architectural pattern defined in the reference architecture, without modifying the implementation of the components. In a case study, the platform-based approach enabled engineering complex IoTSE instances entirely from the components of simpler ones. Both the ability to engineer various IoTSE instances from a set of components and the engineering of new IoTSE instances entirely from accumulated components are unprecedented in the IoTSE literature. Future research can focus on devising mechanisms that leverage the architecture and the infrastructure proposed in this thesis to accumulate the knowledge generated in the process of engineering IoTSE instances and use it to introduce automation gradually to IoTSE engineering. Eventually, when the automation is proven to be trustworthy and reliable, machines might compose and deploy IoTSE instances in real-time to adapt to the incoming queries and the state of the computing infrastructure. By achieving this degree of automation, we will have realized a search engine for the Internet of Things.Thesis (Ph.D.) -- University of Adelaide, School of Computer Science, 201

    Learning Combinatorial Interaction Test Generation Strategies Using Hyperheuristic Search

    Get PDF
    The surge of search based software engineering research has been hampered by the need to develop customized search algorithms for different classes of the same problem. For instance, two decades of bespoke Combinatorial Interaction Testing (CIT) algorithm development, our exemplar problem, has left software engineers with a bewildering choice of CIT techniques, each specialized for a particular task. This paper proposes the use of a single hyperheuristic algorithm that learns search strategies across a broad range of problem instances, providing a single generalist approach. We have developed a Hyperheuristic algorithm for CIT, and report experiments that show that our algorithm competes with known best solutions across constrained and unconstrained problems: For all 26 real-world subjects, it equals or outperforms the best result previously reported in the literature. We also present evidence that our algorithm's strong generic performance results from its unsupervised learning. Hyperheuristic search is thus a promising way to relocate CIT design intelligence from human to machine

    SWE-bench: Can Language Models Resolve Real-World GitHub Issues?

    Full text link
    Language models have outpaced our ability to evaluate them effectively, but for their future development it is essential to study the frontier of their capabilities. We consider real-world software engineering to be a rich, sustainable, and challenging testbed for evaluating the next generation of language models. We therefore introduce SWE-bench, an evaluation framework including 2,2942,294 software engineering problems drawn from real GitHub issues and corresponding pull requests across 1212 popular Python repositories. Given a codebase along with a description of an issue to be resolved, a language model is tasked with editing the codebase to address the issue. Resolving issues in SWE-bench frequently requires understanding and coordinating changes across multiple functions, classes, and even files simultaneously, calling for models to interact with execution environments, process extremely long contexts and perform complex reasoning that goes far beyond traditional code generation. Our evaluations show that both state-of-the-art proprietary models and our fine-tuned model SWE-Llama can resolve only the simplest issues. Claude 2 and GPT-4 solve a mere 4.84.8% and 1.71.7% of instances respectively, even when provided with an oracle retriever. Advances on SWE-bench represent steps towards LMs that are more practical, intelligent, and autonomous.Comment: Data, code, and leaderboard are available at https://www.swebench.co

    Rewriting Constraint Models with Metamodels

    Get PDF
    International audienceAn important challenge in constraint programming is to rewrite constraint models into executable programs calculat- ing the solutions. This phase of constraint processing may require translations between constraint programming lan- guages, transformations of constraint representations, model optimizations, and tuning of solving strategies. In this paper, we introduce a pivot metamodel describing the common fea- tures of constraint models including different kinds of con- straints, statements like conditionals and loops, and other first-class elements like object classes and predicates. This metamodel is general enough to cope with the constructions of many languages, from object-oriented modeling languages to logic languages, but it is independent from them. The rewriting operations manipulate metamodel instances apart from languages. As a consequence, the rewriting operations apply whatever languages are selected and they are able to manage model semantic information. A bridge is created between the metamodel space and languages using parsing techniques. Tools from the software engineering world can be useful to implement this framework
    • …
    corecore