Empirical investigation of SEA-based dependence cluster properties

A. Beszédes, Lajos Schrettner, Béla Csaba, Tamás Gergely, Judit Jász, T. Gyimóthy

Research output: Contribution to journalArticle

2 Citations (Scopus)

Abstract

Dependence clusters are (maximal) groups of source code entities that each depend on the other according to some dependence relation. Such clusters are generally seen as detrimental to many software engineering activities, but their formation and overall structure are not well understood yet. In a set of subject programs from moderate to large sizes, we observed frequent occurrence of dependence clusters using Static Execute After (SEA) dependences (SEA is a conservative yet efficiently computable dependence relation on program procedures). We identified potential linchpins; these are procedures that can primarily be made responsible for keeping the cluster together. Furthermore, we found that as the size of the system increases, it is more likely that multiple procedures are jointly responsible as sets of linchpins. We also give a heuristic method based on structural metrics for locating possible linchpins as their exact identification is unfeasible in practice, and presently there are no better ways than the brute-force method. We defined novel metrics to be able to uncover clusters of different sizes in programs, and also to relate programs in terms of their degree of clusterization. Finally, we present a possible application of SEA-based dependences in change impact analysis, and investigate the effect of dependence clusters on the successfulness of this activity.

Original languageEnglish
Pages (from-to)3-25
Number of pages23
JournalScience of Computer Programming
Volume105
DOIs
Publication statusPublished - Jul 1 2015

Fingerprint

Heuristic methods
Software engineering

Keywords

  • Change impact analysis
  • Dependence clusters
  • Linchpins and linchpin sets
  • Source code dependence analysis
  • Static Execute After

ASJC Scopus subject areas

  • Software

Cite this

Empirical investigation of SEA-based dependence cluster properties. / Beszédes, A.; Schrettner, Lajos; Csaba, Béla; Gergely, Tamás; Jász, Judit; Gyimóthy, T.

In: Science of Computer Programming, Vol. 105, 01.07.2015, p. 3-25.

Research output: Contribution to journalArticle

Beszédes, A. ; Schrettner, Lajos ; Csaba, Béla ; Gergely, Tamás ; Jász, Judit ; Gyimóthy, T. / Empirical investigation of SEA-based dependence cluster properties. In: Science of Computer Programming. 2015 ; Vol. 105. pp. 3-25.
@article{924c8a6373c74855b7cbd8a1a1130203,
title = "Empirical investigation of SEA-based dependence cluster properties",
abstract = "Dependence clusters are (maximal) groups of source code entities that each depend on the other according to some dependence relation. Such clusters are generally seen as detrimental to many software engineering activities, but their formation and overall structure are not well understood yet. In a set of subject programs from moderate to large sizes, we observed frequent occurrence of dependence clusters using Static Execute After (SEA) dependences (SEA is a conservative yet efficiently computable dependence relation on program procedures). We identified potential linchpins; these are procedures that can primarily be made responsible for keeping the cluster together. Furthermore, we found that as the size of the system increases, it is more likely that multiple procedures are jointly responsible as sets of linchpins. We also give a heuristic method based on structural metrics for locating possible linchpins as their exact identification is unfeasible in practice, and presently there are no better ways than the brute-force method. We defined novel metrics to be able to uncover clusters of different sizes in programs, and also to relate programs in terms of their degree of clusterization. Finally, we present a possible application of SEA-based dependences in change impact analysis, and investigate the effect of dependence clusters on the successfulness of this activity.",
keywords = "Change impact analysis, Dependence clusters, Linchpins and linchpin sets, Source code dependence analysis, Static Execute After",
author = "A. Besz{\'e}des and Lajos Schrettner and B{\'e}la Csaba and Tam{\'a}s Gergely and Judit J{\'a}sz and T. Gyim{\'o}thy",
year = "2015",
month = "7",
day = "1",
doi = "10.1016/j.scico.2014.09.010",
language = "English",
volume = "105",
pages = "3--25",
journal = "Science of Computer Programming",
issn = "0167-6423",
publisher = "Elsevier",

}

TY - JOUR

T1 - Empirical investigation of SEA-based dependence cluster properties

AU - Beszédes, A.

AU - Schrettner, Lajos

AU - Csaba, Béla

AU - Gergely, Tamás

AU - Jász, Judit

AU - Gyimóthy, T.

PY - 2015/7/1

Y1 - 2015/7/1

N2 - Dependence clusters are (maximal) groups of source code entities that each depend on the other according to some dependence relation. Such clusters are generally seen as detrimental to many software engineering activities, but their formation and overall structure are not well understood yet. In a set of subject programs from moderate to large sizes, we observed frequent occurrence of dependence clusters using Static Execute After (SEA) dependences (SEA is a conservative yet efficiently computable dependence relation on program procedures). We identified potential linchpins; these are procedures that can primarily be made responsible for keeping the cluster together. Furthermore, we found that as the size of the system increases, it is more likely that multiple procedures are jointly responsible as sets of linchpins. We also give a heuristic method based on structural metrics for locating possible linchpins as their exact identification is unfeasible in practice, and presently there are no better ways than the brute-force method. We defined novel metrics to be able to uncover clusters of different sizes in programs, and also to relate programs in terms of their degree of clusterization. Finally, we present a possible application of SEA-based dependences in change impact analysis, and investigate the effect of dependence clusters on the successfulness of this activity.

AB - Dependence clusters are (maximal) groups of source code entities that each depend on the other according to some dependence relation. Such clusters are generally seen as detrimental to many software engineering activities, but their formation and overall structure are not well understood yet. In a set of subject programs from moderate to large sizes, we observed frequent occurrence of dependence clusters using Static Execute After (SEA) dependences (SEA is a conservative yet efficiently computable dependence relation on program procedures). We identified potential linchpins; these are procedures that can primarily be made responsible for keeping the cluster together. Furthermore, we found that as the size of the system increases, it is more likely that multiple procedures are jointly responsible as sets of linchpins. We also give a heuristic method based on structural metrics for locating possible linchpins as their exact identification is unfeasible in practice, and presently there are no better ways than the brute-force method. We defined novel metrics to be able to uncover clusters of different sizes in programs, and also to relate programs in terms of their degree of clusterization. Finally, we present a possible application of SEA-based dependences in change impact analysis, and investigate the effect of dependence clusters on the successfulness of this activity.

KW - Change impact analysis

KW - Dependence clusters

KW - Linchpins and linchpin sets

KW - Source code dependence analysis

KW - Static Execute After

UR - http://www.scopus.com/inward/record.url?scp=84929706839&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84929706839&partnerID=8YFLogxK

U2 - 10.1016/j.scico.2014.09.010

DO - 10.1016/j.scico.2014.09.010

M3 - Article

VL - 105

SP - 3

EP - 25

JO - Science of Computer Programming

JF - Science of Computer Programming

SN - 0167-6423

ER -