skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Software design analysis and technical debt management based on design rule theory
In this paper we reflect on our decade-long journey of creating, evolving, and evaluating a number of software design concepts and technical debt management technologies. These include: a novel maintainability metric, a new model for representing design information, a suite of design anti-patterns, and a formalized model of design debt. All of these concepts are rooted in options theory, and they all share the objective of helping a software project team quantify and visualize major design principles, and address the very real maintainability challenges faced by their organizations in practice. The evolution of our research has been propelled by our continuous interactions with industrial collaborators. For each concept, technology, and supporting tool, we embarked on an ambitious program of empirical validation—in “the lab”, with industry partners, and with open source projects. We reflect on the successes of this research and on areas where significant challenges remain. In particular, we observe that improved software design education, both for students and professional developers, is the prerequisite for our research and technology to be widely adopted. During this journey, we also observed a number of gaps: between what we offer in research and what practitioners need, between management and development, and between debt detection and debt reduction. Addressing these challenges motivates our research moving forward.  more » « less
Award ID(s):
1835292 2232720 2232721
PAR ID:
10492821
Author(s) / Creator(s):
;
Publisher / Repository:
ELSEVIER
Date Published:
Journal Name:
Information and Software Technology
Volume:
164
Issue:
C
ISSN:
0950-5849
Page Range / eLocation ID:
107322
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Architecture debt is a form of technical debt that derives from the gap between the intended and the actual architecture design. In this study we measured architecture debt in two ways: 1) in terms of system-wide coupling measures, and 2) in terms of the number and severity of architecture flaws. In recent research it was shown that the amount of architecture debt has a huge impact on software maintainability and evolution. Consequently, reducing debt is expected to make software less costly and more amenable to change. This paper reports on a longitudinal study of a healthcare communications product created by BrightSquid Secure Communications Corp. This young company is facing the typical trade-off problem of desiring responsiveness to change requests, but wanting to avoid the ever-increasing effort that the accumulation of quick-and- dirty changes eventually incurs. In the first stage of the study, we analyzed the status of the “before” system, which showed the impacts of change requests. This initial study motivated a more in-depth analysis of architecture debt. The results of this debt analysis were used in the second stage of the work to motivate a comprehensive refactoring of the software system. The third stage was a follow-on architecture debt analysis which quantified the improvements realized. Using this quantitative evidence, augmented by qualitative evidence gathered from in- depth interviews with BrightSquid’s architects, we present lessons learned about the costs and benefits of paying down architecture debt in practice. 
    more » « less
  2. Software design debt aims to elucidate the rectification attempts of the present design flaws and studies the influence of those to the cost and time of the software. Design smells are a key cause of incurring design debt. Although the impact of design smells on design debt have been predominantly considered in current literature, how design smells are caused due to not following software engineering best practices require more exploration. This research provides a tool which is used for design smell detection in Java software by analyzing large volume of source codes. More specifically, 409,539 Lines of Code (LoC) and 17,760 class files of open source Java software are analyzed here. Obtained results show desirable precision values ranging from 81.01% to 93.43%. Based on the output of the tool, a study is conducted to relate the cause of the detected design smells to two software engineering challenges namely "irregular team meetings" and "scope creep". As a result, the gained information will provide insight to the software engineers to take necessary steps of design remediation actions. 
    more » « less
  3. Software design debt aims to elucidate the rectification attempts of the present design flaws and studies the influence of those to the cost and time of the software. Design smells are a key cause of incurring design debt. Although the impact of design smells on design debt have been predominantly considered in current literature, how design smells are caused due to not following software engineering best practices require more exploration. This research provides a tool which is used for design smell detection in Java software by analyzing large volume of source codes. More specifically, 409,539 Lines of Code (LoC) and 17,760 class files of open source Java software are analyzed here. Obtained results show desirable precision values ranging from 81.01% to 93.43%. Based on the output of the tool, a study is conducted to relate the cause of the detected design smells to two software engineering challenges namely "irregular team meetings" and "scope creep". As a result, the gained information will provide insight to the software engineers to take necessary steps of design remediation actions. 
    more » « less
  4. Whenever developers choose among alternative technical approaches, they make a design decision. Collectively, design decisions shape how software implements its requirements and shape non-functional quality attributes such as maintainability, extensibility, and performance. Developers work with design decisions both when identifying, choosing, and documenting alternatives and when later work requires following and understanding previously made design decisions. Design decisions encompass design rationale, describing the alternatives and justification for a design choice, as well as design rules, describing the constraints imposed by specific alternatives. This article summarizes and classifies research on these activities, examining different approaches through which tools may support developers in working with design decisions in code. We focus both on the technical aspects of tools as well as the human aspects of how tools support developers. Our survey identifies goals developers have in working with design decisions throughout the lifecycle of design decisions. We also examine the potential support tools may offer developers in achieving these goals and the challenges in offering better support. 
    more » « less
  5. Abstract This paper (Wu 2016), which was published in AI EDAM online on August 22, 2016, has been retracted by Cambridge University Press as it is very similar in content to a published ASME Conference Proceedings paper. The article in question and the ASME Conference Proceedings paper were submitted for review with AI EDAM and the ASME at similar times, but copyright was assigned to ASME before the paper was accepted in AI EDAM and therefore the article in AI EDAM is being retracted. (In recent years, industrial nations around the globe have invested heavily in new technologies, software, and services to advance digital design and manufacturing using cyber-physical systems, data analytics, and high-performance computing. Many of these initiatives, such as cloud-based design and manufacturing, fall under the umbrella of what has become known as Industry 4.0 or Industrial Internet and are often hailed as pillars of a new industrial revolution. While an increasing number of companies are developing or already offer commercial cloud-based software packages and services for digital design and manufacturing, little work has been reported on providing a review of the state of the art of these commercial software and services as well as identifying research gaps in this field. The objective of this paper is to present a state-of-the-art review of digital design and manufacturing software and services that are currently available on the cloud. The focus of this paper is on assessing to what extent engineering design, engineering analysis, manufacturing, and production across all phases of the product development lifecycles can already be performed based on the software and services accessed through the cloud. In addition, the key capabilities and benefits of these software packages and services are discussed. Based on the assessment of the core features of commercial software and services, it can be concluded that almost all phases of product realization can be conducted through digital design and manufacturing software and services on the cloud. Finally, existing research gaps and related challenges to overcome are identified. The state-of-the-art review serves to provide a technology guide for decision makers in their efforts to select suitable cloud-based software and services as alternatives to existing in-house resources as well as to recommend new research areas.) 
    more » « less