PROGRAM COMPREHENSION DURING SOFTWARE MAINTENANCE AND EVOLUTION

被引:254
|
作者
VONMAYRHAUSER, A
VANS, AM
机构
[1] Colorado State Univ, Fort Collins, United States
关键词
D O I
10.1109/2.402076
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
How well programmers comprehend programs is key to effective software maintenance and evolution. But how exactly do programmers understand code? Over the years, several code-comprehension models have been developed to help researchers answer this question. Five types of tasks are commonly associated with software maintenance and evolution: adaptive, perfective, and corrective maintenance; reuse; and code leverage. Each type has its own set of typical activities. Some of them, such as understanding a system or problem, are common to several tasks. Code comprehension models describe the cognitive processes involved in these tasks. Experiments support some, but not all of these models. The authors analyze six comprehension models and their validation experiments to determine the current state of knowledge program comprehension offers. They begin by describing some common elements of cognition models. Programmer knowledge plays a key role in the understanding process. The mental model-an internal,working representation of the software under consideration-includes both static and dynamic elements. Static elements include text-structure knowledge, ''chunks,'' plans, hypotheses, beacons, and rules of discourse. Dynamic elements include strategies, actions, episodes, and processes. The authors compare the six models in this light and identify a need for more experimental studies with experienced software engineers working on specific maintenance tasks and large-scale code in state-of-the-art computing environments.
引用
收藏
页码:44 / 55
页数:12
相关论文
共 50 条
  • [41] A cost model for software maintenance & evolution
    Sneed, HM
    20TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2004, : 264 - 273
  • [42] Special issue on software maintenance and evolution
    Harman, M
    Korel, B
    Linos, PK
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (10) : 801 - 803
  • [43] Empirical studies in software maintenance and evolution
    Torchiano, Marco
    Ricca, Filippo
    De Lucia, Andrea
    2007 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2007, : 499 - +
  • [44] Software assurance during maintenance
    Black, Paul E.
    ICSM 2006: 22nd IEEE International Conference on Software Maintenance, Proceedings, 2006, : 70 - 71
  • [45] SYN: Ultra-Scale Software Evolution Comprehension
    Occhipinti, Gianlorenzo
    Nagy, Csaba
    Minelli, Roberto
    Lanza, Michele
    2023 IEEE/ACM 31ST INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC, 2023, : 69 - 73
  • [46] A SOFTWARE METRIC SET FOR PROGRAM MAINTENANCE MANAGEMENT
    STARK, GE
    KERN, LC
    VOWELL, CW
    JOURNAL OF SYSTEMS AND SOFTWARE, 1994, 24 (03) : 239 - 249
  • [47] APPLYING SOFTWARE COMPLEXITY METRICS TO PROGRAM MAINTENANCE
    HARRISON, W
    MAGEL, K
    KLUCZNY, R
    DEKOCK, A
    COMPUTER, 1982, 15 (09) : 65 - 79
  • [48] Software metric set for program maintenance management
    1600, Publ by John Wiley & Sons Ltd, Chichester, Engl (18):
  • [49] A unified ontology-based process model for software maintenance and comprehension
    Rilling, Juergen
    Zhang, Yonggang
    Meng, Wen Jun
    Witte, Rene
    Haarslev, Volker
    Charland, Philippe
    MODELS IN SOFTWARE ENGINEERING, 2007, 4364 : 56 - +
  • [50] METHADONE MAINTENANCE - EVOLUTION OF A DAY PROGRAM
    KROMBERG, CJ
    PROCTOR, JB
    AMERICAN JOURNAL OF NURSING, 1970, 70 (12) : 2575 - 2577