skip to main content
10.1145/1181775.1181795acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Detecting increases in feature coupling using regression tests

Published: 05 November 2006 Publication History

Abstract

Repeated changes to a software system can introduce small weaknesses such as unplanned dependencies between different parts of the system. While such problems usually go undetected, their cumulative effect can result in a noticeable decrease in the quality of a system. We present an approach to warn developers about increased coupling between the (potentially scattered) implementation of different features. Our automated approach can detect sections of the source code contributing to the increased coupling as soon as software changes are tested. Developers can then inspect the results to assess whether the quality of their changes is adequate. We have implemented our approach for C++ and integrated it with the development process of a proprietary 3D graphics software. We report on our evaluation of the approach in the field, and on a study showing that, for files in the target system, causing increases in feature coupling is a significant predictor of future modifications due to bug fixes.

References

[1]
E. Arisholm, L.C. Briand, and A. Føyen. Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30 (8), pp. 491--506, 2004.
[2]
T. Ball, The concept of dynamic analysis. In Proceedings of the 7th European Software Engineering Conference and 7th ACM SIGSOFT Symposium on the Foundations of Software Engineering, volume 1687 of Lecture Notes in Computer Science, Springer-Verlag, pp. 216--234, 1999.
[3]
L. A. Belady and M. M. Lehman. A model of large program development. IBM Systems Journal, 15(3), pp. 225--252, 1976.
[4]
S. G. Eick, T. L. Graves, A. F. Karr, J. S. Marron and A. Mockus. Does code decay? Assessing the evidence from change management data. IEEE Transactions on Software Engineering, 27(1), pp. 1--12, 2001.
[5]
T. Eisenbarth, R. Koschke, and D. Simon. Locating features in source code. IEEE Transactions on Software Engineering, 29(3), pp. 210--224, 2003.
[6]
A. Eisenberg and K. De Volder. Dynamic feature traces: finding features in unfamiliar code. In Proceedings of the 21st International Conference on Software Engineering, pp. 337--346, 2005.
[7]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming, pp. 220--242, 1997.
[8]
J. Law and G. Rothermel, Whole program path-based dynamic impact analysis. In Proceedings of the International Conference on Software Engineering, pp. 308, 2003.
[9]
D. R. Licata, C. D. Harris and S. Krishnamurthi. The feature signatures of evolving programs. In Proceedings of the 18th IEEE International Conference on Automated Software Engineering, pp. 281--285, 2003.
[10]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N degrees of separation: multi-dimensional separation of concerns. In Proceedings of the 21st International Conference on Software Engineering, pp. 107--119, 1999.
[11]
D. L. Parnas. Software aging. In Proceedings of the 16th International Conference on Software Engineering, pp. 279--287, 1994.
[12]
M. M. Tikir and J. K. Hollingsworth. Efficient instrumentation for code coverage testing. In Proceedings of the 2002 International Symposium on Software Testing and Analysis, pp. 86--96, 2002.
[13]
N. Wilde, J. A. Gomez, T. Gust, and D. Strasburg. Locating user functionality in old code. In Proceedings of the Conference on Software Maintenance, pp. 200--205, 1992.
[14]
N. Wilde and M.C. Scully. Software Reconnaissance: mapping program features to code. Journal of Software Maintenance: Research and Practice, 7(1), pp. 49--62, 1995.

Cited By

View all
  • (2018)MODE: automated neural network model debugging via state differential analysis and input selectionProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236082(175-186)Online publication date: 26-Oct-2018
  • (2014)Which configuration option should I change?Proceedings of the 36th International Conference on Software Engineering10.1145/2568225.2568251(152-163)Online publication date: 31-May-2014
  • (2014)Examination of the software architecture change characterization scheme using three empirical studiesEmpirical Software Engineering10.1007/s10664-012-9223-y19:3(419-464)Online publication date: 1-Jun-2014
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
November 2006
298 pages
ISBN:1595934685
DOI:10.1145/1181775
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 November 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic analysis
  2. feature associations
  3. feature coupling
  4. feature implementation
  5. feature location
  6. regression testing

Qualifiers

  • Article

Conference

SIGSOFT06/FSE-14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)MODE: automated neural network model debugging via state differential analysis and input selectionProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236082(175-186)Online publication date: 26-Oct-2018
  • (2014)Which configuration option should I change?Proceedings of the 36th International Conference on Software Engineering10.1145/2568225.2568251(152-163)Online publication date: 31-May-2014
  • (2014)Examination of the software architecture change characterization scheme using three empirical studiesEmpirical Software Engineering10.1007/s10664-012-9223-y19:3(419-464)Online publication date: 1-Jun-2014
  • (2012)Evolution of features and their dependencies - an explorative study in OSSProceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement10.1145/2372251.2372270(111-114)Online publication date: 19-Sep-2012
  • (2012)DARWINACM Transactions on Software Engineering and Methodology10.1145/2211616.221162221:3(1-29)Online publication date: 3-Jul-2012
  • (2011)Using structural and textual information to capture feature coupling in object-oriented softwareEmpirical Software Engineering10.1007/s10664-011-9159-716:6(773-811)Online publication date: 1-Dec-2011
  • (2010)ReferencesProduct Release Planning10.1201/EBK0849326202-b(305-318)Online publication date: 8-Jul-2010
  • (2009)DarwinProceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering10.1145/1595696.1595704(33-42)Online publication date: 24-Aug-2009
  • (2009)Explicit Concern-Driven Development with ArchEvolProceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2009.70(185-196)Online publication date: 16-Nov-2009
  • (2007)Bi-objective release planning for evolving software systemsProceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering10.1145/1287624.1287641(105-114)Online publication date: 7-Sep-2007

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media