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 条
  • [21] Impact of the Visitor Pattern on Program Comprehension and Maintenance
    Jeanmart, Sebastien
    Gueheneuc, Yann-Gael
    Sahraoui, Houari
    Habra, Naji
    ESEM: 2009 3RD INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, 2009, : 69 - +
  • [22] Software architecture: leverage for system/program comprehension
    Perry, D
    9TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 2001, : 123 - 123
  • [23] Search based software engineering for program comprehension
    Harman, Mark
    ICPC 2007: 15TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, PROCEEDINGS, 2007, : 3 - 13
  • [24] Exploring Software Measures to Assess Program Comprehension
    Feigenspan, Janet
    Apel, Sven
    Liebig, Joerg
    Kaestner, Christian
    2011 FIFTH INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2011), 2011, : 127 - 136
  • [25] Program understanding needs during corrective maintenance of large scale software
    vonMayrhauser, A
    Vans, AM
    COMPSAC 97 : TWENTY-FIRST ANNUAL INTERNATIONAL COMPUTER SOFTWARE & APPLICATIONS CONFERENCE, 1997, : 630 - 637
  • [26] Experimental analysis of the cognitive processes of program maintainers during software maintenance
    Iio, K
    Furuyama, T
    Arai, Y
    INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 1997, : 242 - 249
  • [27] Software Maintenance and Evolution and Automated Software Engineering
    Carver, Jeffrey C.
    Serebrenik, Alexander
    IEEE SOFTWARE, 2018, 35 (02) : 102 - 104
  • [28] THE ROLE OF PROGRAM STRUCTURE IN SOFTWARE MAINTENANCE
    BOEHMDAVIS, DA
    HOLT, RW
    SCHULTZ, AC
    INTERNATIONAL JOURNAL OF MAN-MACHINE STUDIES, 1992, 36 (01): : 21 - 63
  • [29] A QUALITY ASSURANCE PROGRAM FOR SOFTWARE MAINTENANCE
    CENTER, JW
    AFIPS CONFERENCE PROCEEDINGS, 1982, 51 : 399 - &
  • [30] Using program slicing in software maintenance
    Gallagher, Keith Brian, 1600, (17):