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 条
  • [1] A workbench for program comprehension during software maintenance
    Canfora, G
    Mancini, L
    Tortorella, M
    FOURTH WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 1996, : 30 - 39
  • [2] Workbench for program comprehension during software maintenance
    Canfora, G.
    Mancini, L.
    Tortorella, M.
    Program Comprehension, Workshop Proceedings, 1996, : 30 - 39
  • [3] Refining existing theories of program comprehension during maintenance for concurrent software
    Fleming, Scott D.
    Kraemer, Eileen
    Stirewalt, R. E. K.
    Dillon, Laura K.
    Xie, Shaohua
    PROCEEDINGS OF THE 16TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, 2008, : 23 - 32
  • [4] Partial domain comprehension in software evolution and maintenance
    Petrenko, Maksym
    Rajlich, Vaclav
    Vanciu, Radu
    PROCEEDINGS OF THE 16TH IEEE INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, 2008, : 13 - 22
  • [5] Experiences in teaching software evolution and program comprehension
    van Deursen, A
    Favre, JM
    Koschke, R
    Rilling, J
    IWPC 2003: 11TH IEEE INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, 2003, : 283 - 284
  • [6] Evaluating software maintenance support tools for their support of program comprehension.
    von Mayrhauser, A
    Lang, S
    1998 IEEE AEROSPACE CONFERENCE PROCEEDINGS, VOL 4, 1998, : 173 - 187
  • [7] Software comprehension/maintenance: An introductory course
    Austin, MA
    Samadzadeh, MH
    18TH INTERNATIONAL CONFERENCE ON SYSTEMS ENGINEERING, PROCEEDINGS, 2005, : 414 - 419
  • [8] Comprehension and evolution of legacy software
    Rajlich, V
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 669 - 670
  • [9] Enriching program comprehension for software reuse
    Burd, E
    Munro, M
    FIFTH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION - IWPC '97, PROCEEDINGS, 1997, : 130 - 137
  • [10] Collaborative Software Visualization for Program Comprehension
    Krause-Glau, Alexander
    Bader, Marcel
    Hasselbring, Wilhelm
    2022 WORKING CONFERENCE ON SOFTWARE VISUALIZATION (IEEE VISSOFT), 2022, : 75 - 86