9 research outputs found

    Software Reuse in Agile Development Organizations - A Conceptual Management Tool

    Get PDF
    The reuse of knowledge is considered a major factor for increasing productivity and quality. In the software industry knowledge is embodied in software assets such as code components, functional designs and test cases. This kind of knowledge reuse is also referred to as software reuse. Although the benefits can be substantial, software reuse has never reached its full potential. Organizations are not aware of the different levels of reuse or do not know how to address reuse issues. This paper proposes a conceptual management tool for supporting software reuse. Furthermore the paper presents the findings of the application of the management tool in an agile development organization

    Managing reuse in manufacturing system modelling and design: a value net approach

    Get PDF
    In the past, reuse programs have assumed that technical solutions would overcome barriers to effective reuse. However, recent retrospectives of reuse programs show that organizational factors can greatly affect the implementation of a reuse program. Reuse is often approached as an independent collection of tools and techniques, and the technical and non-technical aspects are commonly examined separately. This research proposes that all the factors affecting reuse are interdependent and therefore should be studied simultaneously. It is therefore very important that all elements and relationships are identified and documented in a structured, clear manner. The concept of value nets, based on game theory has been identified as a means of capturing the different factors involved in the reuse driven software process. The value net is a useful model for viewing multiple interactions from various perspectives. The value net of the reuse-driven software development process is a map of the various factors and players identified in the reuse process, and the interactions occurring between the players. Hence the reuse value net helps in identifying the important factors that can provide the points of leverage to make the reuse process more efficient

    A Qualitative Model for Barriers to Software Reuse Adoption

    Get PDF

    SOFTWARE REUSE: SURVEY AND RESEARCH DIRECTIONS

    Get PDF
    Software reuse is the use of software resources from all stages of the software development process in new applications. Given the high cost and difficulty of developing high quality software, the idea of capitalizing on previous software investments is appealing. However, software reuse has not been as effective as expected and has not been very broadly or systematically used in industry. This paper surveys recent software reuse research using a framework that helps identify and organize the many factors that must be considered to achieve the benefits of software reuse in practice. We argue that software reuse needs to be viewed in the context of a total systems approach that addresses a broad range of technical, economic, managerial, organizational and legal issues and conclude with a summary of the major research issues in each of these areas.Information Systems Working Papers Serie

    A meta-semantic language for smart component-adapters

    Get PDF
    The issues confronting the software development community today are significantly different from the problems it faced only a decade ago. Advances in software development tools and technologies during the last two decades have greatly enhanced the ability to leverage large amounts of software for creating new applications through the reuse of software libraries and application frameworks. The problems facing organizations today are increasingly focused around systems integration and the creation of information flows. Software modeling based on the assembly of reusable components to support software development has not been successfully implemented on a wide scale. Several models for reusable software components have been suggested which primarily address the wiring-level connectivity problem. While this is considered necessary, it is not sufficient to support an automated process of component assembly. Two critical issues that remain unresolved are: (1) semantic modeling of components, and (2) deployment process that supports automated assembly. The first issue can be addressed through domain-based standardization that would make it possible for independent developers to produce interoperable components based on a common set of vocabulary and understanding of the problem domain. This is important not only for providing a semantic basis for developing components but also for the interoperability between systems. The second issue is important for two reasons: (a) eliminate the need for developers to be involved in the final assembly of software components, and (b) provide a basis for the development process to be potentially driven by the user. To resolve the above remaining issues (1) and (2) a late binding mechanism between components based on meta-protocols is required. In this dissertation we address the above issues by proposing a generic framework for the development of software components and an interconnection language, COMPILE, for the specification of software systems from components. The computational model of the COMPILE language is based on late and dynamic binding of the components\u27 control, data, and function properties. The use of asynchronous callbacks for method invocation allows control binding among components to be late and dynamic. Data exchanged between components is defined through the use of a meta- language that can describe the semantics of the information but without being bound to any specific programming language type representation. Late binding to functions is accomplished by maintaining domain-based semantics as component metainformation. This information allows clients of components to map generic requested service to specific functions

    Reusability in manufacturing, supported by value net and patterns approaches

    Get PDF
    The concept of manufacturing and the need or desire to create artefacts or products is very, very old, yet it is still an essential component of all modem economies. Indeed, manufacturing is one of the few ways that wealth is created. The creation or identification of good quality, sustainable product designs is fundamental to the success of any manufacturing enterprise. Increasingly, there is also a requirement for the manufacturing system which will be used to manufacture the product, to be designed (or redesigned) in parallel with the product design. Many different types of manufacturing knowledge and information will contribute to these designs. A key question therefore for manufacturing companies to address is how to make the very best use of their existing, valuable, knowledge resources. […] The research reported in this thesis examines ways of reusing existing manufacturing knowledge of many types, particularly in the area of manufacturing systems design. The successes and failures of reported reuse programmes are examined, and lessons learnt from their experiences. This research is therefore focused on identifying solutions that address both technical and non-technical requirements simultaneously, to determine ways to facilitate and increase the reuse of manufacturing knowledge in manufacturing system design. [Continues.

    SOFTWARE REUSE: SURVEY AND RESEARCH DIRECTIONS

    Get PDF
    Software reuse is the use of software resources from all stages of the software development process in new applications. Given the high cost and difficulty of developing high quality software, the idea of capitalizing on previous software investments is appealing. However, software reuse has not been as effective as expected and has not been very broadly or systematically used in industry. This paper surveys recent software reuse research using a framework that helps identify and organize the many factors that must be considered to achieve the benefits of software reuse in practice. We argue that software reuse needs to be viewed in the context of a total systems approach that addresses a broad range of technical, economic, managerial, organizational and legal issues and conclude with a summary of the major research issues in each of these areas.Information Systems Working Papers Serie

    Semantic Component Retrieval in Software Engineering

    Get PDF
    In the early days of programming the concept of subroutines, and through this software reuse, was invented to spare limited hardware resources. Since then software systems have become increasingly complex and developing them would not have been possible without reusable software elements such as standard libraries and frameworks. Furthermore, other approaches commonly subsumed under the umbrella of software reuse such as product lines and design patterns have become very successful in recent years. However, there are still no software component markets available that would make buying software components as simple as buying parts in a do-it-yourself hardware store and millions of software fragments are still lying un(re)used in configuration management repositories all over the world. The literature primarily blames this on the immense effort required so far to set up and maintain searchable component repositories and the weak mechanisms available for retrieving components from them, resulting in a severe usability problem. In order to address these issues within this thesis, we developed a proactive component reuse recommendation system, naturally integrated into test-first development approaches, which is able to propose semantically appropriate, reusable components according to the specification a developer is just working on. We have implemented an appropriate system as a plugin for the well-known Eclipse IDE and demonstrated its usefulness by carrying out a case study from a popular agile development book. Furthermore, we present a precision analysis for our approach and examples of how components can be retrieved based on a simplified semantics description in terms of standard test cases
    corecore