High-level software requirements and iteration changes: a predictive model

被引:0
|
作者
Kelly Blincoe
Ali Dehghan
Abdoul-Djawadou Salaou
Adam Neal
Johan Linaker
Daniela Damian
机构
[1] University of Auckland,
[2] University of Victoria,undefined
[3] Persistent Systems,undefined
[4] Lund University,undefined
来源
Empirical Software Engineering | 2019年 / 24卷
关键词
Software requirements; Completion prediction; Release planning; Mining software repositories; Machine learning;
D O I
暂无
中图分类号
学科分类号
摘要
Knowing whether a software feature will be completed in its planned iteration can help with release planning decisions. However, existing research has focused on predictions of only low-level software tasks, like bug fixes. In this paper, we describe a mixed-method empirical study on three large IBM projects. We investigated the types of iteration changes that occur. We show that up to 54% of high-level requirements do not make their planned iteration. Requirements are most often pushed out to the next iteration, but high-level requirements are also commonly moved to the next minor or major release or returned to the product or release backlog. We developed and evaluated a model that uses machine learning to predict if a high-level requirement will be completed within its planned iteration. The model includes 29 features that were engineered based on prior work, interviews with IBM developers, and domain knowledge. Predictions were made at four different stages of the requirement lifetime. Our model is able to achieve up to 100% precision. We ranked the importance of our model features and found that some features are highly dependent on project and prediction stage. However, some features (e.g., the time remaining in the iteration and creator of the requirement) emerge as important across all projects and stages. We conclude with a discussion on future research directions.
引用
收藏
页码:1610 / 1648
页数:38
相关论文
共 50 条
  • [31] Are high-level languages suitable for robust telecoms software?
    Nyström, JH
    Trinder, PW
    King, DJ
    COMPUTER SAFETY, RELIABILITY, AND SECURITY, PROCEEDINGS, 2005, 3688 : 275 - 288
  • [32] Characterising Malicious Software with High-Level Behavioural Patterns
    Stastna, Jana
    Tomasek, Martin
    SOFSEM 2017: THEORY AND PRACTICE OF COMPUTER SCIENCE, 2017, 10139 : 473 - 484
  • [33] High-level static and dynamic visualisation of software architectures
    Grundy, J
    Hosking, J
    2000 IEEE INTERNATIONAL SYMPOSIUM ON VISUAL LANGUAGES, PROCEEDINGS, 2000, : 5 - 12
  • [34] High-Level Synthesis: Productivity, Performance, and Software Constraints
    Liang, Yun
    Rupnow, Kyle
    Li, Yinan
    Min, Dongbo
    Do, Minh N.
    Chen, Deming
    JOURNAL OF ELECTRICAL AND COMPUTER ENGINEERING, 2012, 2012
  • [35] An integrated high-level hardware/software partitioning methodology
    Abdelhalim, M. B.
    Habib, S. E-D.
    DESIGN AUTOMATION FOR EMBEDDED SYSTEMS, 2011, 15 (01) : 19 - 50
  • [36] SOFTWARE SUPPORT .2. HIGH-LEVEL LANGUAGES
    DOWSING, RD
    MICROPROCESSORS, 1978, 2 (01): : 42 - 43
  • [37] High-level software energy macro-modeling
    Tan, TK
    Raghunathan, A
    Lakshminarayana, G
    Jha, NK
    38TH DESIGN AUTOMATION CONFERENCE PROCEEDINGS 2001, 2001, : 605 - 610
  • [38] SOFTWARE TECHNIQUES IN ADA FOR HIGH-LEVEL HARDWARE DESCRIPTIONS
    GHOSH, S
    IEEE CIRCUITS & DEVICES, 1986, 2 (02): : 32 - 47
  • [39] SOFTWARE TOOLS - THE ROLE OF MODERN HIGH-LEVEL LANGUAGES
    GALLACHER, J
    MICROPROCESSORS AND MICROSYSTEMS, 1987, 11 (02) : 76 - 76
  • [40] Implementing cooperative software with high-level communication packages
    Forst, A
    Kuhn, E
    EIGHTH IEEE SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING, PROCEEDINGS, 1996, : 60 - 67