653,543 research outputs found

    The dance of classes:a stochastic model for software structure evolution

    Get PDF
    In this study, we investigate software structure evolution and growth. We represent software structure by means of a generic macro-topology called Little House, which models the dependencies among classes of object-oriented software systems. We, then, define a stochastic model to predict the way software architectures evolve. The model estimates how the classes of object-oriented programs get connected one to another along the evolution of the systems. To define the model, we analyzed data from 81 versions of six Java based projects. We analyzed each pair of sequential versions, for each project, in order to depict a pattern of software structure evolution based on Little House. To evaluate the model, we performed two experiments: one with the data used to derive the model, and another with data of 35 releases, in total, of four open-source Java project. In both experiments, we found a very low rate of error for the application of the proposed model. The evaluation of the model suggests it is able to predict how a software structure will evolve

    Focus Issue on Legacy Information Systems and Business Process Change: Migrating Large-Scale Legacy Systems to Component-Based and Object Technology: The Evolution of a Pattern Language

    Get PDF
    The process of developing large-scale business critical software systems must boost the productivity both of the users and the developers of software, while at the same time responding flexibly to changing business requirements in the face of sharpening competition. Historically, these two forces were viewed as mutually hostile. Component-based software development using object technology promises a way of mediating the apparent contradiction. This paper presents a successful new approach which focuses primarily on the architecture of the software system to migrate an existing system to a new form. Best practice is captured by software patterns that address not only the design, but also the process and organizational issues. The approach was developed through four completed, successful live projects in different business and technical areas. It resulted in a still-evolving pattern language called ADAPTOR (Architecture-Driven and Pattern-based Techniques for Object Re-engineering). This article outlines the approach that underlies ADAPTOR. It challenges popular notions of legacy systems by emphasizing business requirements. Architectural approaches to migration are then contrasted with traditional reverse engineering approaches, including the weakness of reverse engineering in the face of paradigm shifts. The evolution of the ADAPTOR pattern language is outlined with a brief history of the projects from which the patterns were abstracted

    A pattern language for evolution reuse in component-based software architectures

    Get PDF
    Context: Modern software systems are prone to a continuous evolution under frequently varying requirements and changes in operational environments. Architecture-Centric Software Evolution (ACSE) enables changes in a system’s structure and behaviour while maintaining a global view of the software to address evolution-centric trade-offs. Lehman’s law of continuing change demands for long-living and continuously evolving architectures to prolong the productive life and economic value of software. Also some industrial research shows that evolution reuse can save approximately 40% effort of change implementation in ACSE process. However, a systematic review of existing research suggests a lack of solution(s) to support a continuous integration of reuse knowledge in ACSE process to promote evolution-off-the-shelf in software architectures. Objectives: We aim to unify the concepts of software repository mining and software evolution to discover evolution-reuse knowledge that can be shared and reused to guide ACSE. Method: We exploit repository mining techniques (also architecture change mining) that investigates architecture change logs to discover change operationalisation and patterns. We apply software evolution concepts (also architecture change execution) to support pattern-driven reuse in ACSE. Architecture change patterns support composition and application of a pattern language that exploits patterns and their relations to express evolution-reuse knowledge. Pattern language composition is enabled with a continuous discovery of patterns from architecture change logs and formalising relations among discovered patterns. Pattern language application is supported with an incremental selection and application of patterns to achieve reuse in ACSE. The novelty of the research lies with a framework PatEvol that supports a round-trip approach for a continuous acquisition (mining) and application (execution) of reuse knowledge to enable ACSE. Prototype support enables customisation and (semi-) automation for the evolution process. Results: We evaluated the results based on the ISO/IEC 9126 - 1 quality model and a case study based validation of the architecture change mining and change execution processes. We observe consistency and reusability of change support with pattern-driven architecture evolution. Change patterns support efficiency for architecture evolution process but lack a fine-granular change implementation. A critical challenge lies with the selection of appropriate patterns to form a pattern language during evolution. Conclusions: The pattern language itself continuously evolves with an incremental discovery of new patterns from change logs over time. A systematic identification and resolution of change anti-patterns define the scope for future research

    Book review: Basics in medical education

    Get PDF
    Software evolves continuously. As a consequence, software systems tend to become increasingly complex and, as such, more difficult to change. A software system's complexity is for a large part determined by its structure, or architecture. In this thesis we investigate how to reduce the risks and costs associated with the evolution of software architectures. Automation and abstraction are two basic software engineering techniques to deal with complexity. In this thesis we investigate the applicability of model-driven engineering, a new software development approach based on abstraction and automation, to support the evolution of software architectures. The main research question we address in this thesis is: "How can evolution of software architectures be supported?". Three subquestions related to industrial integration, software product lines, and automation further clarify the scope of our work. We first conducted a survey among several software development organisation to inventory the state-of-the-practice in software engineering technologies. Some trends we observed from this inventory include: the informal use modelling in industry, the use of product-line approaches, and the importance of the evolutionary aspect of software. Next, we investigated how to support four tasks related to software architecture evolution: evaluation, conformance checking, migration, and documentation. We aim to automate this support where possible. To this end, we employ model-driven software development technologies. For each of the software evolution tasks, we present a case study that investigates how that task can be supported. The informal use of modelling in industry calls for a normalisation step to enable the integration of evolution support in practice. Several chapters address the impact of the use of product-line approaches on the evolution support. Although the increased scope make such support more difficult to develop, the return on investment for the model-driven support is much improved. The model-driven evolution support follows a similar three-step pattern. First, a set of source models is preprocessed into a form suitable for the application of model transformations. Then, model transformations are applied that do the actual work, such as conformance checking or a migration. Finally, the resulting models are postprocessed in a resulting into a desired target form.Electrical Engineering, Mathematics and Computer Scienc

    Evidence-based decision support for pediatric rheumatology reduces diagnostic errors.

    Get PDF
    BACKGROUND: The number of trained specialists world-wide is insufficient to serve all children with pediatric rheumatologic disorders, even in the countries with robust medical resources. We evaluated the potential of diagnostic decision support software (DDSS) to alleviate this shortage by assessing the ability of such software to improve the diagnostic accuracy of non-specialists. METHODS: Using vignettes of actual clinical cases, clinician testers generated a differential diagnosis before and after using diagnostic decision support software. The evaluation used the SimulConsult® DDSS tool, based on Bayesian pattern matching with temporal onset of each finding in each disease. The tool covered 5405 diseases (averaging 22 findings per disease). Rheumatology content in the database was developed using both primary references and textbooks. The frequency, timing, age of onset and age of disappearance of findings, as well as their incidence, treatability, and heritability were taken into account in order to guide diagnostic decision making. These capabilities allowed key information such as pertinent negatives and evolution over time to be used in the computations. Efficacy was measured by comparing whether the correct condition was included in the differential diagnosis generated by clinicians before using the software ( unaided ), versus after use of the DDSS ( aided ). RESULTS: The 26 clinicians demonstrated a significant reduction in diagnostic errors following introduction of the software, from 28% errors while unaided to 15% using decision support (p \u3c 0.0001). Improvement was greatest for emergency medicine physicians (p = 0.013) and clinicians in practice for less than 10 years (p = 0.012). This error reduction occurred despite the fact that testers employed an open book approach to generate their initial lists of potential diagnoses, spending an average of 8.6 min using printed and electronic sources of medical information before using the diagnostic software. CONCLUSIONS: These findings suggest that decision support can reduce diagnostic errors and improve use of relevant information by generalists. Such assistance could potentially help relieve the shortage of experts in pediatric rheumatology and similarly underserved specialties by improving generalists\u27 ability to evaluate and diagnose patients presenting with musculoskeletal complaints. TRIAL REGISTRATION: ClinicalTrials.gov ID: NCT02205086

    Monitoring Platform Emergence: Guidelines from Software Networks

    Get PDF
    In this paper we explore how platforms emerge and evolve due to independent actions by companies providing them or launching products on them. We use the software industry as the setting for our study. We analyze the pattern of evolution for Windows, Unix, and Linux over 14 years. Based on this, we derive some lessons for companies aspiring to compete in settings where platforms and complementors play a major role. We support our analysis using visualizations. PLEASE NOTE: This is a very large article, over 1 MB in size

    The effect of regional differences on the performance of software firms in the Netherlands

    Get PDF
    In this paper, we concentrate on how evolutionary economics contributes to a better understanding of the spatial evolution of newly emerging industries. Inspired by evolutionary thinking, four types of explanations are discussed and tested in an empirical analysis of the spatial pattern of the software sector in the Netherlands. Traditionally, agglomeration economies provide an explanation for the spatial concentration of an industry. Firms located in a cluster of similar or related sectors benefit from cost reductions, due to lower transportation costs, a thick labour market, specialised suppliers and information spillovers. An evolutionary approach on agglomeration economies provides an alternative view. It focuses explicit attention on knowledge spillovers as a vehicle of local diffusion of organizational routines or competences from one firm to the other. Such transfers of (tacit) knowledge are facilitated by spatial proximity of firms and a common knowledge base. In addition, an evolutionary approach takes a dynamic perspective on the role of agglomeration economies. During the initial stage of development of a new industry, the surrounding environment is still directed to routines and competences related to existing industries. When the new industry concentrates in a particular area to a considerable degree, a supportive environment (specialized knowledge, labour with specific skills) may gradually come into being, and localization economies may arise. Other evolutionary mechanisms may also provide an explanation for the spatial formation of new industries. We distinguish another three of them. First of all, transfer of knowledge and successful routines between firms in an emerging industry may occur through spin-off dynamics. Secondly, (social) networks may function as effective channels of knowledge diffusion and interactive learning, because they can provide a common knowledge base and mutual understanding and trust. Thirdly, firms in new industries with organizational capabilities that can deal effectively with the lack of required resources (such as knowledge, skills and capital) may become dominant, due to selection and imitation. Based on cross-sectional data gathered among 265 software firms in the Netherlands in 2003, we have tested which factors have influenced the innovative productivity of these firms. Using regression techniques, the outcomes suggest that spin-offs and firms with organizational capabilities perform better, while networks relations do not seem to affect the performance of software firms. Geography matters as well: software firms located in a region with a labour market with more ICT-skills show a higher innovative productivity. Keywords: evolutionary economics, industrial location, evolution of industries, software sector, agglomeration economies, organizational capabilities, spin-off, networks

    The effect of regional differences on the performance of software firms in the Netherlands

    Get PDF
    In this paper, we concentrate on how evolutionary economics contributes to a better understanding of the spatial evolution of newly emerging industries. Inspired by evolutionary thinking, four types of explanations are discussed and tested in an empirical analysis of the spatial pattern of the software sector in the Netherlands. Traditionally, agglomeration economies provide an explanation for the spatial concentration of an industry. Firms located in a cluster of similar or related sectors benefit from cost reductions, due to lower transportation costs, a thick labour market, specialised suppliers and information spillovers. An evolutionary approach on agglomeration economies provides an alternative view. It focuses explicit attention on knowledge spillovers as a vehicle of local diffusion of organizational routines or competences from one firm to the other. Such transfers of (tacit) knowledge are facilitated by spatial proximity of firms and a common knowledge base. In addition, an evolutionary approach takes a dynamic perspective on the role of agglomeration economies. During the initial stage of development of a new industry, the surrounding environment is still directed to routines and competences related to existing industries. When the new industry concentrates in a particular area to a considerable degree, a supportive environment (specialized knowledge, labour with specific skills) may gradually come into being, and localization economies may arise. Other evolutionary mechanisms may also provide an explanation for the spatial formation of new industries. We distinguish another three of them. First of all, transfer of knowledge and successful routines between firms in an emerging industry may occur through spin-off dynamics. Secondly, (social) networks may function as effective channels of knowledge diffusion and interactive learning, because they can provide a common knowledge base and mutual understanding and trust. Thirdly, firms in new industries with organizational capabilities that can deal effectively with the lack of required resources (such as knowledge, skills and capital) may become dominant, due to selection and imitation. Based on cross-sectional data gathered among 265 software firms in the Netherlands in 2003, we have tested which factors have influenced the innovative productivity of these firms. Using regression techniques, the outcomes suggest that spin-offs and firms with organizational capabilities perform better, while networks relations do not seem to affect the performance of software firms. Geography matters as well: software firms located in a region with a labour market with more ICT-skills show a higher innovative productivity.Evolutionary economics, industrial location, evolution of industries, software sector, agglomeration economies, organizational capabilities, spin-off, networks

    Service-oriented architecture of adaptive, intelligent data acquisition and processing systems for long-pulse fusion experiments

    Get PDF
    The data acquisition systems used in long-pulse fusion experiments need to implement data reduction and pattern recognition algorithms in real time. In order to accomplish these operations, it is essential to employ software tools that allow for hot swap capabilities throughout the temporal evolution of the experiments. This is very important because processing needs are not equal during different phases of the experiment. The intelligent test and measurement system (ITMS) developed by UPM and CIEMAT is an example of a technology for implementing scalable data acquisition and processing systems based on PXI and CompactPCI hardware. In the ITMS platform, a set of software tools allows the user to define the processing algorithms associated with the different experimental phases using state machines driven by software events. These state machines are specified using the State Chart XML (SCXML) language. The software tools are developed using JAVA, JINI, an SCXML engine and several LabVIEW applications. Within this schema, it is possible to execute data acquisition and processing applications in an adaptive way. The power of SCXML semantics and the ability to work with XML user-defined data types allow for very easy programming of the ITMS platform. With this approach, the ITMS platform is a suitable solution for implementing scalable data acquisition and processing systems based on a service-oriented model with the ability to easily implement remote participation applications
    corecore