Understanding large-scale software systems - structure and flows

被引:4
|
作者
Levy, Omer [1 ]
Feitelson, Dror G. [1 ]
机构
[1] Hebrew Univ Jerusalem, Dept Comp Sci, IL-91904 Jerusalem, Israel
基金
以色列科学基金会;
关键词
Program comprehension; System comprehension; Code structure; Program flows; PROGRAM COMPREHENSION; MAINTENANCE; BEHAVIOR;
D O I
10.1007/s10664-021-09938-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Program comprehension accounts for a large portion of software development costs and effort. The academic literature contains mainly research on program comprehension of short code snippets, but comprehension at the system level is no less important. We claim that comprehending a software system is a distinct activity that differs from code comprehension. We interviewed experienced developers, architects, and managers in the software industry and open-source community, to uncover the meaning of program comprehension at the system level; later we conducted a survey to verify the findings. The interviews demonstrate, among other things, that system comprehension is largely detached from code and programming language, and includes scope that is not captured in the code. It focuses on one hand on the structure of the system, and on the other hand on the flows in the system, but less on the code itself. System comprehension is a continuous, unending, iterative process, which utilizes white-box and black-box approaches at different layers of the system depending on needs, and combines both bottom-up and top-down comprehension strategies. In summary, comprehending a system is not just comprehending the code at a larger scale, and it is not possible to comprehend large systems at the same level as comprehending code.
引用
收藏
页数:39
相关论文
共 50 条
  • [41] Employing multiple views to separate large-scale software systems
    Deubler, HH
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2001, 56 (02) : 105 - 113
  • [42] Efficient and effective exploratory testing of large-scale software systems
    Martensson, Torvald
    Stahl, Daniel
    Martini, Antonio
    Bosch, Jan
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2021, 174 (174)
  • [43] A Fast Clustering Algorithm for Modularization of Large-Scale Software Systems
    Teymourian, Navid
    Izadkhah, Habib
    Isazadeh, Ayaz
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (04) : 1451 - 1462
  • [44] On the challenges of maintaining large-scale software systems at Lockheed Martin
    Alexander, Lawrence D.
    [J]. ICSM 2006: 22nd IEEE International Conference on Software Maintenance, Proceedings, 2006, : 2 - 2
  • [45] Using the k-core decomposition to analyze the static structure of large-scale software systems
    Zhang, Haohua
    Zhao, Hai
    Cai, Wei
    Liu, Jie
    Zhou, Wanlei
    [J]. JOURNAL OF SUPERCOMPUTING, 2010, 53 (02): : 352 - 369
  • [46] Using the k-core decomposition to analyze the static structure of large-scale software systems
    Haohua Zhang
    Hai Zhao
    Wei Cai
    Jie Liu
    Wanlei Zhou
    [J]. The Journal of Supercomputing, 2010, 53 : 352 - 369
  • [47] Scale-free feature and evolving model of large-scale software systems
    Institute of Contemporary Manufacturing Engineering, Zhejiang University, Hangzhou 310027, China
    [J]. Wuli Xuebao, 2006, 8 (3799-3804):
  • [48] The scale-free feature and evolving model of large-scale software systems
    Yan Dong
    Qi Guo-Ning
    [J]. ACTA PHYSICA SINICA, 2006, 55 (08) : 3799 - 3804
  • [49] A Large-Scale Analysis of Mathematical Expressions for an Accurate Understanding of Their Structure
    Aly, Walaa
    Uchida, Seiichi
    Suzuki, Masakazu
    [J]. PROCEEDINGS OF THE 8TH IAPR INTERNATIONAL WORKSHOP ON DOCUMENT ANALYSIS SYSTEMS, 2008, : 549 - 556
  • [50] Understanding Team Influence on Professionals' Acceptance of Large-Scale Systems
    Ke, Weiling
    Xue, Yajiong
    Liang, Huigang
    Wei, Kwok Kee
    [J]. PACIFIC ASIA CONFERENCE ON INFORMATION SYSTEMS 2006, SECTIONS 1-8, 2006, : 1172 - 1190