17 research outputs found

    A Model for Configuration Management of Open Software Systems

    Full text link
    The article proposes a model for the configuration management of open systems. The model aims at validation of configurations against given specifications. An extension of decision graphs is proposed to express specifications. The proposed model can be used by software developers to validate their own configurations across different versions of the components, or to validate configurations that include components by third parties. The model can also be used by end-users to validate compatibility among different configurations of the same application. The proposed model is first discussed in some application scenarios and then formally defined. Moreover, a type discipline is given to formally define validation of a configuration against a system specificationComment: 13 page

    Lifecycle management in government-driven open source projects – practical framework

    Get PDF
    In many parts of the world, public sector organizations are increasingly interested in collaborating across organizational (and even national) boundaries to develop software solutions under an open licence. However, without sound lifecycle management practices, the full benefits of open collaboration are not achieved and projects fail to achieve sustained success. This paper introduces a lifecycle management model and framework for government-driven open-source projects and reports about its use in a real-life case study. Our focus is on lifecycle management activities which take place between deployment and end-of-life. The framework was developed iteratively through a series of focus group discussions with representatives of public sector organizations. After the framework had been taken into use in our real-life case project, individual qualitative interviews were conducted to collect experiences on its benefits and weaknesses. According to the initial evidence, the deployment of the framework seems to have brought concrete benefits to the project, e.g. by contributing positively to community growth, software quality and inter-organizational learning

    Lifecycle management in government-driven open source projects – practical framework

    Get PDF
    In many parts of the world, public sector organizations are increasingly interested in collaborating across organizational (and even national) boundaries to develop software solutions under an open licence. However, without sound lifecycle management practices, the full benefits of open collaboration are not achieved and projects fail to achieve sustained success. This paper introduces a lifecycle management model and framework for government-driven open-source projects and reports about its use in a real-life case study. Our focus is on lifecycle management activities which take place between deployment and end-of-life. The framework was developed iteratively through a series of focus group discussions with representatives of public sector organizations. After the framework had been taken into use in our real-life case project, individual qualitative interviews were conducted to collect experiences on its benefits and weaknesses. According to the initial evidence, the deployment of the framework seems to have brought concrete benefits to the project, e.g. by contributing positively to community growth, software quality and inter-organizational learning

    Ant Build Maintenance with Formiga

    Get PDF
    A build system produces a set of deliverables from a software project\u27s source code and resources. Build maintenance refers to the changes made to the build system as a software project evolves over time. It has been shown to impose a significant overhead on overall development costs, in part because changes to source code often require parallel changes in the build system. However, little tool support exists to assist developers with build maintenance, particularly for those changes that must accompany changes to the source code. Formiga is a build maintenance and dependency discovery tool for the Ant build system. Formiga\u27s primary uses are to automate build changes as the source code is updated, to identify the build dependencies within a software project, and to assist with build refactoring. Formiga is implemented as an IDE plugin, which allows it to recognize when project resources are updated and automatically update the build system accordingly. This implementation also allows it to leverage existing metaphors used by developers to maintain source code, thus making it easier to use. A controlled experiment was conducted to assess Formiga\u27s ability to assist developers with build maintenance. Formiga was shown to signficantly reduce the time required to perform build maintenance while increasing the correctness with which it can be performed

    Handling High-Level Model Changes Using Search Based Software Engineering

    Full text link
    Model-Driven Engineering (MDE) considers models as first-class artifacts during the software lifecycle. The number of available tools, techniques, and approaches for MDE is increasing as its use gains traction in driving quality, and controlling cost in evolution of large software systems. Software models, defined as code abstractions, are iteratively refined, restructured, and evolved. This is due to many reasons such as fixing defects in design, reflecting changes in requirements, and modifying a design to enhance existing features. In this work, we focus on four main problems related to the evolution of software models: 1) the detection of applied model changes, 2) merging parallel evolved models, 3) detection of design defects in merged model, and 4) the recommendation of new changes to fix defects in software models. Regarding the first contribution, a-posteriori multi-objective change detection approach has been proposed for evolved models. The changes are expressed in terms of atomic and composite refactoring operations. The majority of existing approaches detects atomic changes but do not adequately address composite changes which mask atomic operations in intermediate models. For the second contribution, several approaches exist to construct a merged model by incorporating all non-conflicting operations of evolved models. Conflicts arise when the application of one operation disables the applicability of another one. The essence of the problem is to identify and prioritize conflicting operations based on importance and context – a gap in existing approaches. This work proposes a multi-objective formulation of model merging that aims to maximize the number of successfully applied merged operations. For the third and fourth contributions, the majority of existing works focuses on refactoring at source code level, and does not exploit the benefits of software design optimization at model level. However, refactoring at model level is inherently more challenging due to difficulty in assessing the potential impact on structural and behavioral features of the software system. This requires analysis of class and activity diagrams to appraise the overall system quality, feasibility, and inter-diagram consistency. This work focuses on designing, implementing, and evaluating a multi-objective refactoring framework for detection and fixing of design defects in software models.Ph.D.Information Systems Engineering, College of Engineering and Computer ScienceUniversity of Michigan-Dearbornhttp://deepblue.lib.umich.edu/bitstream/2027.42/136077/1/Usman Mansoor Final.pdfDescription of Usman Mansoor Final.pdf : Dissertatio
    corecore