540 research outputs found

    Adaptable processes

    Get PDF
    We propose the concept of adaptable processes as a way of overcoming the limitations that process calculi have for describing patterns of dynamic process evolution. Such patterns rely on direct ways of controlling the behavior and location of running processes, and so they are at the heart of the adaptation capabilities present in many modern concurrent systems. Adaptable processes have a location and are sensible to actions of dynamic update at runtime; this allows to express a wide range of evolvability patterns for concurrent processes. We introduce a core calculus of adaptable processes and propose two verification problems for them: bounded and eventual adaptation. While the former ensures that the number of consecutive erroneous states that can be traversed during a computation is bound by some given number k, the latter ensures that if the system enters into a state with errors then a state without errors will be eventually reached. We study the (un)decidability of these two problems in several variants of the calculus, which result from considering dynamic and static topologies of adaptable processes as well as different evolvability patterns. Rather than a specification language, our calculus intends to be a basis for investigating the fundamental properties of evolvable processes and for developing richer languages with evolvability capabilities

    How do Microservices Evolve?:An Empirical Analysis of Changes in Open-Source Microservice Repositories

    Get PDF
    Context.Microservice architectures are an emergent service-oriented paradigm widely used in industry to develop and deploy scalable software systems. The underlying idea is to design highly independent services that implement small units of functionality and can interact with each other through lightweight interfaces.Objective.Even though microservices are often used with success, their design and maintenance pose novel challenges to software engineers. In particular, it is questionable whether the intended independence of microservices can actually be achieved in practice.Method.So, it is important to understand how and why microservices evolve during a system’s life-cycle, for instance, to scope refactorings and improvements of a system’s architecture or to develop supporting tools. To provide insights into how microservices evolve, we report a large-scale empirical study on the (co-)evolution of microservices in 11 open-source systems, involving quantitative and qualitative analyses of 7,319 commits.Findings.Our quantitative results show that there are recurring patterns of (co-)evolution across all systems, for instance, “shotgun surgery” commits and microservices that are largely independent, evolve in tuples, or are evolved in almost all changes. We refine our results by analyzing service-evolving commits qualitatively to explore the (in-)dependence of microservices and the causes for their specific evolution.Conclusion.The contributions in this article provide an understanding for practitioners and researchers on how microservices evolve in what way, and how microservice-based systems may be improved

    Evaluation of genetic improvement tools for improvement of non-functional properties of software

    Get PDF
    Genetic improvement (GI) improves both functional properties of software, such as bug repair, and non-functional properties, such as execution time, energy consumption, or source code size. There are studies summarising and comparing GI tools for improving functional properties of software; however there is no such study for improvement of its non-functional properties using GI. Therefore, this research aims to survey and report on the existing GI tools for improvement of non-functional properties of software. We conducted a literature review of available GI tools, and ran multiple experiments on the found open-source tools to examine their usability. We applied a cross-testing strategy to check whether the available tools can work on different programs. Overall, we found 63 GI papers that use a GI tool to improve nonfunctional properties of software, within which 31 are accompanied with open-source code. We were able to successfully run eight GI tools, and found that ultimately only two ---Gin and PyGGI--- can be readily applied to new general software

    Structural dynamics in the evolution of a bilobed protein scaffold

    Get PDF
    Novel biophysical tools allow the structural dynamics of proteins and the regulation of such dynamics by binding partners to be explored in unprecedented detail. Although this has provided critical insights into protein function, the means by which structural dynamics direct protein evolution remain poorly understood. Here, we investigated how proteins with a bilobed structure, composed of two related domains from the periplasmic-binding protein–like II domain family, have undergone divergent evolution, leading to adaptation of their structural dynamics. We performed a structural analysis on ∼600 bilobed proteins with a common primordial structural core, which we complemented with biophysical studies to explore the structural dynamics of selected examples by single-molecule Förster resonance energy transfer and Hydrogen–Deuterium exchange mass spectrometry. We show that evolutionary modifications of the structural core, largely at its termini, enable distinct structural dynamics, allowing the diversification of these proteins into transcription factors, enzymes, and extracytoplasmic transport-related proteins. Structural embellishments of the core created interdomain interactions that stabilized structural states, reshaping the active site geometry, and ultimately altered substrate specificity. Our findings reveal an as-yet-unrecognized mechanism for the emergence of functional promiscuity during long periods of evolution and are applicable to a large number of domain architectures

    JointCalc: A web-based personalised patient decision support tool for joint replacement

    Get PDF
    Background and purpose Health information systems (HIS) are expected to be effective and efficient in improving healthcare services, but empirical observation of HIS reveals that most perform poorly in terms of these metrics. Theoretical factors of HIS performance are widely studied, and solutions to mitigate poor performance have been proposed. In this paper we implement effective methods to eliminate some common drawbacks of HIS design and demonstrate the synergy between the methods. JointCalc, the first comprehensive patient-facing web-based decision support tool for joint replacement, is used as a case study for this purpose. Methods and results User-centred design and thorough end-user involvement are employed throughout the design and development of JointCalc. This is supported by modern software production paradigms, including continuous integration/continuous development, agile and service-oriented architecture. The adopted methods result in a user-approved application delivered well within the scope of project. Conclusion This work supports the claims of high potential efficiency of HIS. The methods identified are shown to be applicable in the production of an effective HIS whilst aiding development efficiency

    Managing Systemic Risk in Legal Systems

    Get PDF
    The American legal system has proven remarkably robust even in the face vast and often tumultuous political, social, economic, and technological change. Yet our system of law is not unlike other complex social, biological, and physical systems in exhibiting local fragility in the midst of its global robustness. Understanding how this “robust yet fragile†(RYF) dilemma operates in legal systems is important to the extent law is expected to assist in managing systemic risk — the risk of large local or even system-wide failures — in other social systems. Indeed, legal system failures have been blamed as partly responsible for disasters such as the recent financial system crisis and the Deepwater Horizon oil spill. If we cannot effectively manage systemic risk within the legal system, however, how can we expect the legal system to manage systemic risk elsewhere? This Article employs a complexity science model of the RYF dilemma to explore why systemic risk persists in legal systems and how to manage it. Part I defines complexity in the context of the institutions and instruments that make up the legal system. Part II defines the five dimensions of robustness that support functionality of the legal system: (1) reliability; (2) efficiency; (3) scalability; (4) modularity, and (5) evolvability. Part III then defines system fragility, examining the internal and external constraints that impede legal system robustness and the fail-safe system control strategies for managing their effects. With those basic elements of the RYF dilemma model in place, Part IV defines systemic risk, exploring the paradoxical role of increasingly organized complexity brought about by fail-safe strategies as a source of legal system failure. There is no way around the RYF dilemma — some degree of systemic risk is inherent in any complex adaptive system — but the balance between robustness and fragility is something we can hope to influence. To explore how, Part V applies the RYF dilemma model to a concrete systemic risk management context — oil drilling in the deep Gulf of Mexico. The legal regime governing offshore oil exploration and extraction has been blamed as contributing to the set of failures that led to the catastrophic Deepwater Horizon spill and is at the center of reform initiatives. Using this case study, I argue that the RYF dilemma model provides valuable insights into how legal systems fail and how to manage legal systemic risk
    corecore