by Hongyu Kuang, Patrick Mäder, Hao Hu, Achraf Ghabi, LiGuo Huang, Jian Lu, Alexander Egyed
Abstract:
It is common practice for requirements traceability research to consider method call dependencies within the source code (e.g., fan-in/fan-out analyses). However, current approaches largely ignore the role of data. The question this paper investigates is whether data dependencies have similar relationships to requirements as do call dependencies. For example, if two methods do not call one another, but do have access to the same data then is this information relevant? We formulated several research questions and validated them on three large software systems, covering about 120 KLOC. Our findings are that data relationships are roughly equally relevant to understanding the relationship to requirements traces than calling dependencies. However, most interestingly, our analyses show that data dependencies complement call dependencies. These findings have strong implications on all forms of code understanding, including trace capture, maintenance, and validation techniques (e.g., information retrieval).
Reference:
Do data dependencies in source code complement call dependencies for understanding requirements traceability? (Hongyu Kuang, Patrick Mäder, Hao Hu, Achraf Ghabi, LiGuo Huang, Jian Lu, Alexander Egyed), In Proceedings of the 28th International Conference on Software Maintenance (ICSM 2012), Riva del Garda, Italy, (IEEE) Computer Society, 2012.
Bibtex Entry:
@Conference{DBLP:conf/icsm/KuangMHGHJE12,
author = {Hongyu Kuang and Patrick Mäder and Hao Hu and Achraf Ghabi and LiGuo Huang and Jian Lu and Alexander Egyed},
title = {Do data dependencies in source code complement call dependencies for understanding requirements traceability?},
booktitle = {Proceedings of the 28th International Conference on Software Maintenance (ICSM 2012), Riva del Garda, Italy},
year = {2012},
pages = {181-190},
publisher = {(IEEE) Computer Society},
abstract = {It is common practice for requirements traceability research to consider
method call dependencies within the source code (e.g., fan-in/fan-out
analyses). However, current approaches largely ignore the role of
data. The question this paper investigates is whether data dependencies
have similar relationships to requirements as do call dependencies.
For example, if two methods do not call one another, but do have
access to the same data then is this information relevant? We formulated
several research questions and validated them on three large software
systems, covering about 120 KLOC. Our findings are that data relationships
are roughly equally relevant to understanding the relationship to
requirements traces than calling dependencies. However, most interestingly,
our analyses show that data dependencies complement call dependencies.
These findings have strong implications on all forms of code understanding,
including trace capture, maintenance, and validation techniques (e.g.,
information retrieval).},
file = {:Conferences\\ICSM 2012 - On the Relationship between Requirements, Code, and Code Dependencies\\Do Data Dependencies in Source Code complement Call Dependencies for Understanding Requirements Traceability-preprint.pdf:PDF},
keywords = {FWF P23115, FWF M1268},
url = {http://doi.ieeecomputersociety.org/10.1109/ICSM.2012.6405270},
}