7 research outputs found

    Efficiency implications of open source commonality and reuse

    Get PDF
    This paper analyzes the reuse choices made by open source developers and relates them to cost efficiency. We make a distinction between the commonality among applications and the actual reuse of code. The former represents the similarity between the requirements of different applications and, consequently, the functionalities that they provide. The latter represents the actual reuse of code. No application can be maintained for ever. A fundamental reason for the need for periodical replacement of code is the exponential growth of costs with the number of maintenance interventions. Intuitively, this is due to the increasing complexity of software that grows in both size and coupling among different modules. The paper measures commonality, reuse and development costs of 26 open-source projects for a total of 171 application versions. Results show that reuse choices in open-source contexts are not cost efficient. Developers tend to reuse code from the most recent version of applications, even if their requirements are closer to previous versions. Furthermore, the latest version of an application is always the one that has incurred the highest number of maintenance interventions. Accordingly, the development cost per new line of code is found to grow with reuse

    System requirements-OSS components: matching and mismatch resolution practices – an empirical study

    Get PDF
    Developing systems by integrating Open Source Software (OSS) is increasingly gaining importance in the software industry. Although the literature claims that this approach highly impacts Requirements Engineering (RE) practices, there is a lack of empirical evidence to demonstrate this statement. To explore and understand problems and challenges of current system requirement–OSS component matching and mismatches resolution practices in software development projects that integrate one or more OSS components into their software products. Semi-structured in-depth interviews with 25 respondents that have performed RE activities in software development projects that integrate OSS components in 25 different software development companies in Spain, Norway, Sweden, and Denmark. The study uncovers 15 observations regarding system requirements-OSS components matching and mismatch resolution practices used in industrial projects that integrate OSS components. The assessed projects focused mainly on pre-release stages of software applications that integrate OSS components in an opportunistic way. The results also provide details of a set of previously unexplored scenarios when solving system requirement–OSS component mismatches; and clarify some challenges and related problems. For instance, although licensing issues and the potential changes in OSS components by their corresponding communities and/or changes in system requirements have been greatly discussed in the RE literature as problems for OSS component integration, they did not appear to be relevant in our assessed projects. Instead, practitioners highlighted the problem of getting suitable OSS component documentation/information.Peer ReviewedPostprint (author's final draft

    F/OSS para el reuso: métricas, desarrollo de herramientas y marco para su evaluación

    Get PDF
    La disponibilidad de una creciente variedad de Software Libre y de CĂłdigo Abierto (F/OSS por sus siglas en inglĂ©s) distribuidos bajo licencias que permiten explĂ­citamente su modificaciĂłn y el desarrollo de aplicaciones derivadas, abre nuevas posibilidades para el desarrollo con reutilizaciĂłn. Las caracterĂ­sticas y la informaciĂłn disponible en relaciĂłn a cada producto de F/OSS es muy heterogĂ©nea; no obstante, todas tienen en comĂșn la libre disponibilidad del cĂłdigo fuente. Esta tesis presenta nuevas formas de abordar el problema de evaluar y seleccionar productos de F/OSS, centrĂĄndose en dos aspectos: La utilizaciĂłn de mĂ©tricas que pueden obtenerse del cĂłdigo fuente para la evaluaciĂłn de F/OSS, de modo de caracterizar el diseño general de los productos de software que se consideren para la reutilizaciĂłn. La elaboraciĂłn de un marco de trabajo para la selecciĂłn y evaluaciĂłn de software que sirva de base para una sistematizaciĂłn paulatina de la incorporaciĂłn de la reutilizaciĂłn de F/OSS en diferentes procesos de desarrollo de software. A partir del estudio de una muestra de 560 versiones diferentes de aplicaciones de F/OSS, y en base al estudio de distribuciones de frecuencia, se proponen umbrales para mĂ©tricas que reflejan aspectos generales del diseño de una aplicaciĂłn. EspecĂ­ficamente, se consideran el promedio de la cantidad de mĂ©todos por clase y la proporciĂłn de referencias a mĂ©todos de otras clases respecto del total de mĂ©todos definidos en la aplicaciĂłn. Estas dos medidas se refieren a la aplicaciĂłn en su conjunto y no a clases o mĂłdulos particulares, lo que supone una utilidad diferente de estos valores respecto del papel que cumplen en otros aspectos de la gestiĂłn de proyectos de software. En relaciĂłn al segundo aspecto, se presenta un marco de trabajo en tres etapas, a saber, la detecciĂłn de oportunidades de reutilizaciĂłn, la bĂșsqueda de recursos candidatos y la selecciĂłn y evaluaciĂłn. Este marco es de carĂĄcter general, pudiendo adaptarse a diferentes metodologĂ­as y contextos de desarrollo. La elaboraciĂłn del marco parte de la realizaciĂłn de una experiencia de desarrollo con reutilizaciĂłn de F/OSS, la revisiĂłn de la literatura relacionada con las temĂĄticas de selecciĂłn de elementos reutilizables y la evaluaciĂłn de Ă©stos para su incorporaciĂłn en nuevos desarrollos. Este marco se aplica posteriormente al desarrollo de una herramienta para computar un conjunto de mĂ©tricas basadas en el cĂłdigo fuente para dar soporte al proceso de selecciĂłn de F/OSS para la reutilizaciĂłn tomando en cuenta los umbrales propuestos previamente. De esta forma, se ofrece aquĂ­ una base para abordar la reutilizaciĂłn de F/OSS de manera de permitir la sistematizaciĂłn paulatina de esta prĂĄctica, brindando un criterio de valoraciĂłn provisional basado en mĂ©tricas obtenidas del cĂłdigo fuente.Facultad de InformĂĄtic

    Driving and Inhibiting Factors in the Adoption of Open Source Software in Organisations

    Get PDF
    The aim of this research is to investigate the extent to which Open Source Software (OSS) adoption behaviour can empirically be shown to be governed by a set of self-reported (driving and inhibiting) salient beliefs of key informants in a sample of organisations. Traditional IS adoption/usage theory, methodology and practice are drawn on. These are then augmented with theoretical constructs derived from IT governance and organisational diagnostics to propose an artefact that aids the understanding of organisational OSS adoption behaviour, stimulates debate and aids operational management interventions. For this research, a combination of quantitative methods (via Fisher’s Exact Test) and complimentary qualitative method (via Content Analysis) were used using self-selection sampling techniques. In addition, a combination of data and methods were used to establish a set of mixed-methods results (or meta-inferences). From a dataset of 32 completed questionnaires in the pilot study, and 45 in the main study, a relatively parsimonious set of statistically significant driving and inhibiting factors were successfully established (ranging from 95% to 99.5% confidence levels) for a variety for organisational OSS adoption behaviours (i.e. by year, by software category and by stage of adoption). In addition, in terms of mixed-methods, combined quantitative and qualitative data yielded a number of factors limited to a relatively small number of organisational OSS adoption behaviour. The findings of this research are that a relatively small set of driving and inhibiting salient beliefs (e.g. Security, Perpetuity, Unsustainable Business Model, Second Best Perception, Colleagues in IT Dept., Ease of Implementation and Organisation is an Active User) have proven very accurate in predicting certain organisational OSS adoption behaviour (e.g. self-reported Intention to Adopt OSS in 2014) via Binomial Logistic Regression Analysis

    SERVICE-BASED AUTOMATION OF SOFTWARE CONSTRUCTION ACTIVITIES

    Get PDF
    The reuse of software units, such as classes, components and services require professional knowledge to be performed. Today a multiplicity of different software unit technologies, supporting tools, and related activities used in reuse processes exist. Each of these relevant reuse elements may also include a high number of variations and may differ in the level and quality of necessary reuse knowledge. In such an environment of increasing variations and, therefore, an increasing need for knowledge, software engineers must obtain such knowledge to be able to perform software unit reuse activities. Today many different reuse activities exist for a software unit. Some typical knowledge intensive activities are: transformation, integration, and deployment. In addition to the problem of the amount of knowledge required for such activities, other difficulties also exist. The global industrial environment makes it challenging to identify sources of, and access to, knowledge. Typically, such sources (e.g., repositories) are made to search and retrieve information about software unitsand not about the required reuse activity knowledge for a special unit. Additionally, the knowledge has to be learned by inexperienced software engineers and, therefore, to be interpreted. This interpretation may lead to variations in the reuse result and can differ from the estimated result of the knowledge creator. This makes it difficult to exchange knowledge between software engineers or global teams. Additionally, the reuse results of reuse activities have to be repeatable and sustainable. In such a scenario, the knowledge about software reuse activities has to be exchanged without the above mentioned problems by an inexperienced software engineer. The literature shows a lack of techniques to store and subsequently distribute relevant reuse activity knowledge among software engineers. The central aim of this thesis is to enable inexperienced software engineers to use knowledge required to perform reuse activities without experiencing the aforementioned problems. The reuse activities: transformation, integration, and deployment, have been selected as the foundation for the research. Based on the construction level of handling a software unit, these activities are called Software Construction Activities (SCAcs) throughout the research. To achieve the aim, specialised software construction activity models have been created and combined with an abstract software unit model. As a result, different SCAc knowledge is described and combined with different software unit artefacts needed by the SCAcs. Additionally, the management (e.g., the execution of an SCAc) will be provided in a service-oriented environment. Because of the focus on reuse activities, an approach which avoids changing the knowledge level of software engineers and the abstraction view on software units and activities, the object of the investigation differs from other approaches which aim to solve the insufficient reuse activity knowledge problem. The research devised novel abstraction models to describe SCAcs as knowledge models related to the relevant information of software units. The models and the focused environment have been created using standard technologies. As a result, these were realised easily in a real world environment. Softwareengineers were able to perform single SCAcs without having previously acquired the necessary knowledge. The risk of failing reuse decreases because single activities can be performed. The analysis of the research results is based on a case study. An example of a reuse environmenthas been created and tested in a case study to prove the operational capability of the approach. The main result of the research is a proven concept enabling inexperienced software engineers to reuse software units by reusing SCAcs. The research shows the reduction in time for reuse and a decrease of learning effort is significant
    corecore