174,459 research outputs found

    Supporting process reuse in PROMENADE

    Get PDF
    Process reuse (the ability to construct new processes by assembling already built ones) and process harvesting (the ability to build generic processes that may be further reused, from existing ones) are two crucial issues in process technology. Both activities involve defining a set of mechanisms, like abstraction, adaptation, composition, etc. which are appropriate to achieve their goals. In this report, we define a general framework to process reuse and harvesting that proposes a complete set of mechanisms to deal with both activities. This general framework is particularized to the context of a process modelling language to model software processes, called PROMENADE. A definition of the identified reuse and harvesting mecha-nisms is proposed in the context of PROMENADE. Finally, two process reuse case studies which composes various reuse mechanisms are presented.Postprint (published version

    IMPROVING DEVELOPMENT TIMES BY REUSING FLEXIBLE HARDWARE AND SOFTWARE COMPONENT

    Get PDF
    Product development time estimation is important for project management tasks. This study investigates the impact of requirements reuse on product development duration for different products in a similar domain. We propose an analytical tool to estimate the minimum time to be saved given the percentage of requirements reused from earlier projects. This paper presents basis for the formal reuse of hardware components as a strategy to reduce the task for verifying new hardware elements. Assuming the existence of a library of formally verified hardware components, we propose to make effective reuse of these existing elements when creating new ones. The concept of software component reuse is simple: the idea of building and using "software preferred parts." By building systems out of carefully designed, pre-tested components, one will save the cost of designing, writing and testing new code. The practice of reuse has not proven to be this simple however, and there are many misconceptions about how to implement and gain benefit from software reuse. One case from organization has been studied for software and system development projects, which consist of hardware and software components. The results of the case studies are compared with a study in the literature on product development time

    Comparing reuse practices in two large software-producing companies

    Get PDF
    Context Reuse can improve productivity and maintainability in software development. Research has proposed a wide range of methods and techniques. Are these successfully adopted in practice? Objective We propose a preliminary answer by integrating two in-depth empirical studies on software reuse at two large software-producing companies. Method We compare and interpret the study results with a focus on reuse practices, effects, and context. Results Both companies perform pragmatic reuse of code produced within the company, not leveraging other available artefacts. Reusable entities are retrieved from a central repository, if present. Otherwise, direct communication with trusted colleagues is crucial for access. Reuse processes remain implicit and reflect the development style. In a homogeneous infrastructure-supported context, participants strongly agreed on higher development pace and less maintenance effort as reuse benefits. In a heterogeneous context with fragmented infrastructure, these benefits did not materialize. Neither case reports statistically significant evidence of negative side effects of reuse nor inhibitors. In both cases, a lack of reuse led to duplicate implementations. Conclusion Technological advances have improved the way reuse concepts can be applied in practice. Homogeneity in development process and tool support seem necessary preconditions. Developing and adopting adequate reuse strategies in heterogeneous contexts remains challenging

    Quality Assessment and Prediction in Software Product Lines

    Get PDF
    At the heart of product line development is the assumption that through structured reuse later products will be of a higher quality and require less time and effort to develop and test. This thesis presents empirical results from two case studies aimed at assessing the quality aspect of this claim and exploring fault prediction in the context of software product lines. The first case study examines pre-release faults and change proneness of four products in PolyFlow, a medium-sized, industrial software product line; the second case study analyzes post-release faults using pre-release data over seven releases of four products in Eclipse, a very large, open source software product line.;The goals of our research are (1) to determine the association between various software metrics, as well as their correlation with the number of faults at the component/package level; (2) to characterize the fault and change proneness of components/packages at various levels of reuse; (3) to explore the benefits of the structured reuse found in software product lines; and (4) to evaluate the effectiveness of predictive models, built on a variety of products in a software product line, to make accurate predictions of pre-release software faults (in the case of PolyFlow) and post-release software faults (in the case of Eclipse).;The research results of both studies confirm, in a software product line setting, the findings of others that faults (both pre- and post-release) are more highly correlated to change metrics than to static code metrics, and are mostly contained in a small set of components/ packages. The longitudinal aspect of our research indicates that new products do benefit from the development and testing of previous products. The results also indicate that pre-existing components/packages, including the common components/packages, undergo continuous change, but tend to sustain low fault densities. However, this is not always true for newly developed components/packages. Finally, the results also show that predictions of pre-release faults in the case of PolyFlow and post-release faults in the case of Eclipse can be done accurately from pre-release data, and furthermore, that these predictions benefit from information about additional products in the software product lines

    Software Reuse in Information Systems Development

    Get PDF
    Software and Management Information Systems application development have become a key area to the performance of most firms. The reuse of previously written code is a way to increase software development productivity as well as the quality of the software (Basili, et al., 1996; Gaffney and Durek, 1989). If previously tested components are reused in a new software project, they are more likely to be error free than new components. This reduces the overall failure rate of the software project. Case studies, such as (Banker and Kauffman, 1991; Poulin, et al., 1993; Apte, et al., 1990; Lim, 1994; Swanson, et al., 1991) were instrumental in obtaining such insights. Today, an increasing number of organizations are adopting the practice of software reuse (Lim, 1994). A common misconception is that object-orientation alone will lead to reuse. While it can help facilitating a reuse approach, research has shown that object technology does not always lead to reuse (Fichman and Kemerer, 1997). Software reuse requires a substantial up-front investment for the development and maintenance of a software repository with reusable components (Barnes and Bollinger, 1991). A large part of the set-up cost comes from the fact that additional effort is needed to make regular components generic enough for use in future projects (Mili, et al., 1994). In the long-run, this initial investment can be offset by the cost savings through reuse. Using a reusable component in lieu of writing a new component from scratch saves development cost. However, the component has to be located and retrieved from the repository. Often, components cannot be used as is, but also need to be modified to fit the context of the new project. Reuse can only be economically viable, if the savings achieved through reuse will over time offset the start-up cost of implementing the reuse methodology and populating the software repository. While software reuse is not a new research area to computer science (Krueger, 1992), MIS research has only recently begun to investigate this important aspect of software development. This reflects an increased understanding that too little work has been done on nontechnical issues (Zand and Samadzadeh, 1995). Organizational and behavioral aspects, legal constraints, and economic considerations are little explored in the context of software reuse. IS research can also contribute to storage and retrieval problem by developing domain specific solutions. In this overview we summarize the work done in the areas most important to IS research

    Impact of Opportunistic Reuse Practices to Technical Debt

    Get PDF
    Technical debt (TD) has been recognized as an important quality problem for both software architecture and code. The evolution of TD techniques over the past years has led to a number of research and commercial tools. In addition, the increasing trend of opportunistic reuse (as opposed to systematic reuse), where developers reuse code assets in popular repositories, is changing the way components are selected and integrated into existing systems. However, reusing software opportunistically can lead to a loss of quality and induce TD, especially when the architecture is changed in the process. However, to the best of our knowledge, no studies have investigated the impact of opportunistic reuse in TD. In this paper, we carry out an exploratory study to investigate to what extent reusing components opportunistically negatively affects the quality of systems. We use one commercial and one research tool to analyze the TD ratios of three case systems, before and after opportunistically extending them with open-source software.Peer reviewe

    A Study on Reuse-based Requirements Engineering by Utilizing Knowledge Pattern

    Get PDF
    Software development has become an essential part of many industries over the past decade. The use of software has become an essential element for the organization to support its operation and business. Some software has certain features in common, which allow its requirements to be used repetitively in the requirement engineering phase. This paper presents a study on knowledge patterns for reuse-based requirements engineering. Reuse-based requirements engineering is saving the effort to conduct the process and, at the same time maintaining the standard since reused requirements come with its properties as well.  Software development is an iterative process itself and so does the knowledge it holds in every iteration. When analysts perform many iterations of elicitation processes, it is often the case that a significant amount of requirements is recurring and similar software system will likely benefit from them. This research adopted a literature review method to investigate and to present current studies on knowledge pattern for the purpose of reuse. Knowledge reuse by utilizing knowledge pattern is becoming a significant method in software requirements engineering as it safes the effort of developing requirements from scratch. The study found that a specific pattern is required to develop good requirements specification. A proposed prototype to deploy reuse-based requirements engineering is also presented and evaluated. Experts’ judgment method is used for evaluation by adapting the Technology Acceptance Model (TAM). The results showed that reusing knowledge pattern expedites the requirements elicitation process and improves the requirements quality.
    • …
    corecore