1,429 research outputs found

    Design reuse research : a computational perspective

    Get PDF
    This paper gives an overview of some computer based systems that focus on supporting engineering design reuse. Design reuse is considered here to reflect the utilisation of any knowledge gained from a design activity and not just past designs of artefacts. A design reuse process model, containing three main processes and six knowledge components, is used as a basis to identify the main areas of contribution from the systems. From this it can be concluded that while reuse libraries and design by reuse has received most attention, design for reuse, domain exploration and five of the other knowledge components lack research effort

    Semantic annotation, publication, and discovery of Java software components: an integrated approach

    Get PDF
    Component-based software development has matured into standard practice in software engineering. Among the advantages of reusing software modules are lower costs, faster development, more manageable code, increased productivity, and improved software quality. As the number of available software components has grown, so has the need for effective component search and retrieval. Traditional search approaches, such as keyword matching, have proved ineffective when applied to software components. Applying a semantically- enhanced approach to component classification, publication, and discovery can greatly increase the efficiency of searching and retrieving software components. This has been already applied in the context of Web technologies, and Web services in particular, in the frame of Semantic Web Services research. This paper examines the similarities between software components and Web services and adapts an existing Semantic Web Service publication and discovery solution into a software component annotation and discovery tool which is implemented as an Eclipse plug-in

    Automating reuse support in a small company

    Get PDF
    Software engineering has been facing a crisis for several years now - there is more demand for new software than there is ability to supply. Software reuse is a potential way to tackle the problems caused by the software crisis with its promises of increased productivity and cheaper development costs. Several software reuse successes have been reported, but these have been predominantly in large, well structured companies. However, there are numerous smaller companies that could also benefit from reuse if it were made available to them. This thesis addresses these issues by implementing a reuse programme in a small company. An incremental approach to reuse introduction is adopted, following the Seven Steps to Success, and 'lightweight' processes are recommended to support the reuse programme. A prototype tool set, ReThree- C++, was developed to automate support for the reuse programme. The results of the case study are presented. The reuse programme was successful, with benefits to the company including both increased speed of production and financial gains from selling reusable components. The challenges faced are also identified. Details of the tool set giving automated support for reuse are also presented. The tool set is an approach to reuse repository control which also integrates information abstraction from C++ source code to generate class hierarchy charts and software documentation automatically. It helps developers store, retrieve, understand and use reusable components. The usefulness of the tool set is shown with an experiment and as part of the case study. The purpose of the thesis is to show that small companies can implement reuse, and that the method presented supports the introduction of a reuse programme. It concludes that although challenges were faced, great benefits can be gained by using the method with automated support for reuse in a small company

    Semantic-driven matchmaking of web services using case-based reasoning

    Get PDF
    With the rapid proliferation of Web services as the medium of choice to securely publish application services beyond the firewall, the importance of accurate, yet flexible matchmaking of similar services gains importance both for the human user and for dynamic composition engines. In this paper, we present a novel approach that utilizes the case based reasoning methodology for modelling dynamic Web service discovery and matchmaking. Our framework considers Web services execution experiences in the decision making process and is highly adaptable to the service requester constraints. The framework also utilises OWL semantic descriptions extensively for implementing both the components of the CBR engine and the matchmaking profile of the Web services

    An application of machine learning to the organization of institutional software repositories

    Get PDF
    Software reuse has become a major goal in the development of space systems, as a recent NASA-wide workshop on the subject made clear. The Data Systems Technology Division of Goddard Space Flight Center has been working on tools and techniques for promoting reuse, in particular in the development of satellite ground support software. One of these tools is the Experiment in Libraries via Incremental Schemata and Cobweb (ElvisC). ElvisC applies machine learning to the problem of organizing a reusable software component library for efficient and reliable retrieval. In this paper we describe the background factors that have motivated this work, present the design of the system, and evaluate the results of its application

    An investigation into evolving support for component reuse

    Get PDF
    It is common in engineering disciplines for new product development to be based on a concept of reuse, i.e. based on a foundation of knowledge and pre-existing components familiar to the discipline's community. In Software Engineering, this concept is known as software reuse. Software reuse is considered essential if higher quality software and reduced development effort are to be achieved. A crucial part of any engineering development is access to tools that aid development. In software engineering this means having software support tools with which to construct software including tools to support effective software reuse. The evolutionary nature of software means that the foundation of knowledge and components on which new products can be developed must reflect the changes occurring in both the software engineering discipline and the domain in which the software is to function. Therefore, effective support tools, including those used in software reuse, must evolve to reflect changes in both software engineering and the varying domains that use software. This thesis contains a survey of the current understanding of software reuse. Software reuse is defined as the use of knowledge and work components of software that already exist in the development of new software. The survey reflects the belief that domain analysis and software tool support are essential in successful software reuse. The focus of the research is an investigation into the effects of a changing domain on the evolution of support for component-based reuse and domain analysis, and on the application of software reuse support methods and tools to another engineering discipline, namely roll design. To broaden understanding of a changing domain on the evolution of support for software reuse and domain analysis, a prototype for a reuse support environment has been developed for roll designers in the steel industry

    Traceability Management Architectures Supporting Total Traceability in the Context of Software Engineering

    Get PDF
    In the area of Software Engineering, traceability is defined as the capability to track requirements, their evolution and transformation in different components related to engineering process, as well as the management of the relationships between those components. However the current state of the art in traceability does not keep in mind many of the elements that compose a product, specially those created before requirements arise, nor the appropriated use of traceability to manage the knowledge underlying in order to be handled by other organizational or engineering processes. In this work we describe the architecture of a reference model that establishes a set of definitions, processes and models which allow a proper management of traceability and further uses of it, in a wider context than the one related to software development

    Traceability Management Architectures Supporting Total Traceability in the Context of Software Engineering

    Get PDF
    In the area of Software Engineering, traceability is defined as the capability to track requirements, their evolution and transformation in different components related to engineering process, as well as the management of the relationships between those components. However the current state of the art in traceability does not keep in mind many of the elements that compose a product, specially those created before requirements arise, nor the appropriated use of traceability to manage the knowledge underlying in order to be handled by other organizational or engineering processes. In this work we describe the architecture of a reference model that establishes a set of definitions, processes and models which allow a proper management of traceability and further uses of it, in a wider context than the one related to software development

    Promoting Reuse with Active Reuse Repository Systems

    Full text link
    Abstract. Software component-based reuse is diÆcult for software de-velopers to adopt because rst they must know what components exist in a reuse repository and then they must know how to retrieve them easily. This paper describes the concept and implementation of active reuse repository systems that address the above two issues. Active reuse repository systems employ active information delivery mechanisms to deliver potentially reusable components that are relevant to the current development task. They can help software developers reuse components they did not even know existed. They can also greatly reduce the cost of component location because software developers need neither to specify reuse queries explicitly, nor to switch working contexts back and forth between development environments and reuse repository systems.
    • …
    corecore