758 research outputs found

    Structured Review of Code Clone Literature

    Get PDF
    This report presents the results of a structured review of code clone literature. The aim of the review is to assemble a conceptual model of clone-related concepts which helps us to reason about clones. This conceptual model unifies clone concepts from a wide range of literature, so that findings about clones can be compared with each other

    Characteristics of changeable systems across value chains

    Get PDF
    Engineering changes (ECs) are inevitable for businesses due to increasing innovation, shorter lifecycles, technology and process improvements and cost reduction initiatives. The ECs could propagate and cause further changes due to existing system dependencies, which can be challenging. Hence, change management (CM) is a relevant discipline, which aims to reduce the impact of changes. EC assessment methods form the basis of CM that support in assessing system dependencies and the impact of changes. However, there is limited understanding of which factors influence the change-ability across value chains (VCs). This research adopted a VC approach to EC assessment. Dependencies in products and processes were captured, followed by the risk (i.e. likelihood x impact) assessment of ECs using change prediction method (CPM). Four case studies were conducted from two industries (automotive, furniture) to identify design (product) and manufacturing (process) elements with high risk to be affected by ECs. Based on the case results, characteristics were identified that influence change-ability across VC. This contributed to the CM domain while businesses could also use the results to assess ECs across VC, and improve the design of products and processes by increasing their changeability across VC e.g. by proactive decoupling or reactive handling of system dependencies.Department for Business, Energy and Industrial Strategy (BEIS), UK under Advanced Manufacturing Supply Chain Initiative (AMSCI

    On the Stability of Software Clones: A Genealogy-Based Empirical Study

    Get PDF
    Clones are a matter of great concern to the software engineering community because of their dual but contradictory impact on software maintenance. While there is strong empirical evidence of the harmful impact of clones on maintenance, a number of studies have also identified positive sides of code cloning during maintenance. Recently, to help determine if clones are beneficial or not during software maintenance, software researchers have been conducting studies that measure source code stability (the likelihood that code will be modified) of cloned code compared to non-cloned code. If the presence of clones in program artifacts (files, classes, methods, variables) causes the artifacts to be more frequently changed (i.e., cloned code is more unstable than non-cloned code), clones are considered harmful. Unfortunately, existing stability studies have resulted in contradictory results and even now there is no concrete answer to the research question "Is cloned or non-cloned code more stable during software maintenance?" The possible reasons behind the contradictory results of the existing studies are that they were conducted on different sets of subject systems with different experimental setups involving different clone detection tools investigating different stability metrics. Also, there are four major types of clones (Type 1: exact; Type 2: syntactically similar; Type 3: with some added, deleted or modified lines; and, Type 4: semantically similar) and none of these studies compared the instability of different types of clones. Focusing on these issues we perform an empirical study implementing seven methodologies that calculate eight stability-related metrics on the same experimental setup to compare the instability of cloned and non-cloned code in the maintenance phase. We investigated the instability of three major types of clones (Type 1, Type 2, and Type 3) from different dimensions. We excluded Type 4 clones from our investigation, because the existing clone detection tools cannot detect Type 4 clones well. According to our in-depth investigation on hundreds of revisions of 16 subject systems covering four different programming languages (Java, C, C#, and Python) using two clone detection tools (NiCad and CCFinder) we found that clones generally exhibit higher instability in the maintenance phase compared to non-cloned code. Specifically, Type 1 and Type 3 clones are more unstable as well as more harmful compared to Type 2 clones. However, although clones are generally more unstable sometimes they exhibit higher stability than non-cloned code. We further investigated the effect of clones on another important aspect of stability: method co-changeability (the degree methods change together). Intuitively, higher method co-changeability is an indication of higher instability of software systems. We found that clones do not have any negative effect on method co-changeability; rather, cloning can be a possible way of minimizing method co-changeability when clones are likely to evolve independently. Thus, clones have both positive and negative effects on software stability. Our empirical studies demonstrate how we can effectively use the positive sides of clones by minimizing their negative impacts

    Trading Off between Flexibility and Product Platform Constraints for Effective Technology Introduction

    Get PDF
    Developing product platforms is an established method of reducing internal variety costs while delivering variety to customers. \ua0A critical aspect of a platform, that is expected to be used and extended for many years, is the ability to introduce new technologies and solutions effectively. Since these technological integration endeavours may challenge platform constraints, it is necessary to be able to assess the trade-off between their expected value and cost of realisation. New technologies can be integrated more easily into products derived from product platforms if they are flexible. However, introducing flexibility early can be wasteful, both in terms of resources used for the development of the platforms and the suboptimal design of products derived from the platform. In this study, a review of the existing literature is conducted and several case studies in the automotive sector are performed. Both technical and organizational factors are found to limit platform flexibility. This research supports the idea that the flexibility to integrate technology into existing platforms is a valuable property. Consequently, it is important to foster the ability to more objectively assess the value of proposed technology changes in organisations relying on product and production platforms.Finally, this thesis proposes a model-based methodology to trade off the flexibility of a product platform with the lifetime value it can deliver to its stakeholders. The methodology utilizes technology roadmaps, architectural modelling, value-driven design, and model-based simulations to establish the bandwidth of a product platform. As such, the constraints that the platform introduces for future derived products are balanced against valuable flexibility, which is defined as the flexibility of the platform to allow for more alternative designs, including using new technologies, of higher value in future products. The findings of this thesis have implications for the research of product platforms and their development, as well as for practitioners making decisions about product platforms with consideration to the uncertainty around the ways they will be used and upgraded in the future

    Identification and Valuation of Flexibility in Marine Systems Design

    Get PDF
    Marine systems, typically related to transport services and offshore petroleum projects, are often complex and involve a high degree of uncertainty related to their future operating context. Uncertain factors, such as oil prices and changing environmental regulations, are usually highly influential for the performance of these projects and introduce risks for investors in the capital-intensive maritime industry. This thesis investigates how flexibility can be considered at the design stage for handling uncertainty for marine systems, in contrast to traditional post-design operational methods. Flexibility opens up for both reducing the downside risk and taking advantage of upside possibilities, hence increasing the expected value of a design. Even though real options analysis represents an established approach for analysing flexibility, it may be inappropriate for more complex systems. To better structure options for marine systems design, a differentiation is made between more traditional, operational "on" options, and more complex, technical "in" options. Choosing the right method for analysis is ambiguous, therefore multiple approaches for identifying and valuing relevant flexibilities are discussed in this thesis. Identification methods include interviews and different systems engineering platforms for exploring how designs respond to changing contextual parameters. Valuation approaches include traditional analytical, lattice and Monte Carlo simulation methods for pricing real options, and more novel tradespace evaluation techniques. A generic framework for flexibility analysis is presented, serving as a stepwise approach to quantifying flexibility and as a means of communication between analysts and decision makers, both technical and non-technical. The flexibility analysis framework is illustrated through a case study of a large container ship design. By using screening methods to identify candidate flexibilities such as capacity expansion and fuel-switching, and Monte Carlo simulations for valuation, it was found that flexibility increases the profitability index by 27%, on a 200 million dollar investment. Furthermore, it was demonstrated that screening and simulation methods are appropriate for the use in design of large commercial deep-sea marine transportation systems. From an established real options valuation side, it is obvious that strategic flexibility has value, however, for non-standard applications typically involving complex "in" options, it is more ambiguous how to proceed. Even though system analysts recognise the value of flexibility, there is still a need for further research since flexibility rarely is seen in the maritime industry

    Late Propagation in Near-Miss Clones: An Empirical Study

    Get PDF
    If two or more code fragments in the code-base of a software system are exactly or nearly similar to one another, we call them code clones. It is often important that updates (i.e., changes) in one clone fragment should be propagated to the other similar clone fragments to ensure consistency. However, if there is a delay in this propagation because of unawareness, the system might behave inconsistently. This delay in propagation, also known as late propagation, has been investigated by a number of existing studies. However, the existing studies did not investigate the intensity as well as the effect of late propagation in different types of clones separately. Also, late propagation in Type 3 clones is yet to investigate. In this research work we investigate late propagation in three types of clones (Type 1, Type 2, and Type 3) separately. According to our experimental results on six subject systems written in three programming languages, late propagation is more intense in Type 3 clones compared to the other two clone-types. Block clones are mostly involved in late propagation instead of method clones. Refactoring of block clones can possibly minimize late propagation. If not refactorable, then the clones that often need to be changed together consistently should be placed in close proximity to one another

    Tradespace and Affordability – Phase 2

    Get PDF
    MOTIVATION AND CONTEXT: One of the key elements of the SERC’s research strategy is transforming the practice of systems engineering – “SE Transformation.” The Grand Challenge goal for SE Transformation is to transform the DoD community’s current systems engineering and management methods, processes, and tools (MPTs) and practices away from sequential, single stovepipe system, hardware-first, outside-in, document-driven, point-solution, acquisition-oriented approaches; and toward concurrent, portfolio and enterprise-oriented, hardware-software-human engineered, balanced outside-in and inside-out, model-driven, set-based, full life cycle approaches.This material is based upon work supported, in whole or in part, by the U.S. Department of Defense through the Office of the Assistant Secretary of Defense for Research and Engineering (ASD(R&E)) under Contract H98230-08- D-0171 (Task Order 0031, RT 046).This material is based upon work supported, in whole or in part, by the U.S. Department of Defense through the Office of the Assistant Secretary of Defense for Research and Engineering (ASD(R&E)) under Contract H98230-08- D-0171 (Task Order 0031, RT 046)
    corecore