skip to main content
10.1145/2351676.2351705acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Code patterns for automatically validating requirements-to-code traces

Published: 03 September 2012 Publication History

Abstract

Traces between requirements and code reveal where requirements are implemented. Such traces are essential for code understanding and change management. Unfortunately, traces are known to be error prone. This paper introduces a novel approach for validating requirements-to-code traces through calling relationships within the code. As input, the approach requires an executable system, the corresponding requirements, and the requirements-to-code traces that need validating. As output, the approach identifies likely incorrect or missing traces by investigating patterns of traces with calling relationships. The empirical evaluation of four case study systems covering 150 KLOC and 59 requirements demonstrates that the approach detects most errors with 85-95% precision and 82-96% recall and is able to handle traces of varying levels of correctness and completeness. The approach is fully automated, tool supported, and scalable.

References

[1]
N. Aizenbud-Reshef, B. T. Nolan, J. Rubin, and Y. Shaham-Gafni. Model traceability. IBM Systems Journal, 45(3):515–526, 2006.
[2]
G. Antoniol, G. Canfora, G. Casazza, A. De Lucia, and E. Merlo. Recovering traceability links between code and documentation. IEEE Transactions on Software Engineering, 28(10):970–983, Oct. 2002.
[3]
L. C. Briand, Y. Labiche, and T. Yue. Automated traceability analysis for UML model refinements. Inf. Softw. Technol., 51(2):512–527, Feb. 2009.
[4]
K. Chen and V. Rajlich. Case study of feature location using dependence graph, after 10 years. In 18th IEEE International Conference on Program Comprehension, pages 1–3, Braga, Portugal, June 2010.
[5]
J. Cleland-Huang, B. Berenbach, S. Clark, R. Settimi, and E. Romanova. Best practices for automated traceability. Computer, vol. 40:27–35, 2007.
[6]
B. Dit, M. Revelle, M. Gethers, and D. Poshyvanyk. Feature location in source code: A taxonomy and survey. Journal of Software Maintenance and Evolution: Research and Practice (JSME), accepted for publication, 2011.
[7]
M. Eaddy, A. V. Aho, G. Antoniol, and Y. Guéhéneuc. CERBERUS: tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. In 16th IEEE International Conference on Program Comprehension, pages 53–62, Amsterdam, The Netherlands, June 2008.
[8]
A. Egyed, F. Graf, and P. Grunbacher. Effort and quality of recovering Requirements-to-Code traces: Two exploratory experiments. In 18th IEEE International Requirements Engineering Conference, pages 221–230, Sydney, Australia, Sept. 2010.
[9]
A. Ghabi and A. Egyed. Observations on the connectedness between requirements-to-code traces and calling relationships for trace validation. In 26th IEEE/ACM Internation Conference on Automated Software Engineering, 2011.
[10]
O. Gotel and C. Finkelstein. An analysis of the requirements traceability problem. In Proceedings of IEEE International Conference on Requirements Engineering, pages 94–101, Colorado Springs, CO, USA, Apr. 1994.
[11]
J. Hayes, A. Dekhtyar, and S. Sundaram. Advancing candidate link generation for requirements tracing: the study of methods. IEEE Transactions on Software Engineering, 32(1):4–19, Jan. 2006.
[12]
M. Jiang, M. Groble, S. Simmons, D. Edwards, and N. Wilde. Software feature understanding in an industrial setting. In 22nd IEEE ICSM, pages 66–67, Philadelphia, PA, USA, Sept. 2006.
[13]
W. Kong, J. Hayes, A. Dekhtyar, and J. Holden. How do we trace requirements? an initial study of analyst behavior in trace validation tasks. In Fourth International Workshop on Cooperative and Human Aspects of Software Engineering, May 2011.
[14]
A. Marcus and J. I. Maletic. Recovering documentation-to-source-code traceability links using latent semantic indexing. In Proceedings of the 25th ICSE, ICSE ’03, pages 125–135, Washington, DC, USA, 2003. IEEE Computer Society.
[15]
M. Marin, A. V. Deursen, and L. Moonen. Identifying crosscutting concerns using Fan-In analysis. ACM Transactions on Software Engineering and Methodology, 17(1):1–37, Dec. 2007.
[16]
C. McMillan, D. Poshyvanyk, and M. Revelle. Combining textual and structural analysis of software artifacts for traceability link recovery. In ICSE Workshop on Traceability in Emerging Forms of Software Engineering, pages 41–48, Vancouver, BC, Canada, May 2009.
[17]
P. Mäder and A. Egyed. Do software engineers benefit from source code navigation with traceability? – an experiment in software change management. In 26th International Conference on Automated Software Engeering, Kansas, November 2011. IEEE/ACM.
[18]
R. E. K. S. Min Deng and B. H. C. Cheng. Retrieval by construction: A traceability technique to support verification and validation of uml formalizations. International Journal of Software Engineering and Knowledge Engineering (IJSEKE), 15:837–872, 2005.
[19]
D. L. Parnas. Software aging. In Proceedings of the 16th international conference on Software engineering, ICSE ’94, pages 279–287, Los Alamitos, CA, USA, 1994. IEEE Computer Society Press.
[20]
D. Poshyvanyk and A. Marcus. Using traceability links to assess and maintain the quality of software documentation. In TEFSE’07, pages 27–30, 2007.
[21]
B. Ramesh, L. C. Stubbs, and M. Edwards. Lessons learned from implementing requirements traceability. Crosstalk – Journal of Defense Software Engineering, 8:11–15, 1995.
[22]
M. Robillard, W. Coelho, and G. Murphy. How effective developers investigate source code: an exploratory study. IEEE Transactions on Software Engineering, 30(12):889–903, Dec. 2004.
[23]
M. P. Robillard and G. C. Murphy. Concern graphs: finding and describing concerns using structural program dependencies. In Proceedings of the 24th ICSE, page 406, Orlando, Florida, 2002.
[24]
P. Tonella. Using a concept lattice of decomposition slices for program understanding and impact analysis. IEEE Transactions on Software Engineering, 29(6):495–509, June 2003.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '12: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
September 2012
409 pages
ISBN:9781450312042
DOI:10.1145/2351676
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 September 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. feature location
  2. requirements
  3. traceability
  4. validation

Qualifiers

  • Article

Conference

ASE'12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media