Skip to main content
Erschienen in: Software Quality Journal 1/2019

01.05.2018

On the proposal and evaluation of a benchmark-based threshold derivation method

verfasst von: Gustavo Vale, Eduardo Fernandes, Eduardo Figueiredo

Erschienen in: Software Quality Journal | Ausgabe 1/2019

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Software-intensive systems have been growing in both size and complexity. Consequently, developers need better support for measuring and controlling the software quality. In this context, software metrics aim at quantifying different software quality aspects. However, the effectiveness of measurement depends on the definition of reliable metric thresholds, i.e., numbers that characterize a metric value as critical given a quality aspect. In fact, without proper metric thresholds, it might be difficult for developers to indicate problematic software components for correction, for instance. Based on a literature review, we have found several existing methods for deriving metric thresholds and observed their evolution. Such evolution motivated us to propose a new method that incorporates the best of the existing methods. In this paper, we propose a novel benchmark-based method for deriving metric thresholds. We assess our method, called Vale’s method, using a set of metric thresholds derived with the support of our method, aimed at composing detection strategies for two well-known code smells, namely god class and lazy class. For this purpose, we analyze three benchmarks composed of multiple software product lines. In addition, we demonstrate our method in practice by applying it to a benchmark composed of 103 Java open-source software systems. In the evaluation, we compare Vale’s method to two state-of-the-practice threshold derivation methods selected as a baseline, which are Lanza’s method and Alves’ method. Our results suggest that the proposed method provides more realistic and reliable thresholds, with better recall and precision in the code smell detection, when compared to both baseline methods.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Literatur
Zurück zum Zitat Abilio, R., Vale, G., Oliveira, J., Figueiredo, E., Costa, H. (2014). Code smell detection tool for compositional-based software product lines. In Proceedings of the 5th Brazilian Conference on Software: Theory and Practice (CBSoft), Tools Session (pp. 109–116). Abilio, R., Vale, G., Oliveira, J., Figueiredo, E., Costa, H. (2014). Code smell detection tool for compositional-based software product lines. In Proceedings of the 5th Brazilian Conference on Software: Theory and Practice (CBSoft), Tools Session (pp. 109–116).
Zurück zum Zitat Abilio, R., Padilha, J., Figueiredo, E., Costa, H. (2015). Detecting code smells in software product lines: An exploratory study. In Proceedings of the 12th International Conference on Information Technology: New Generations (ITNG) (pp. 433–438). Abilio, R., Padilha, J., Figueiredo, E., Costa, H. (2015). Detecting code smells in software product lines: An exploratory study. In Proceedings of the 12th International Conference on Information Technology: New Generations (ITNG) (pp. 433–438).
Zurück zum Zitat Abilio, R., Vale, G., Figueiredo, E., Costa, H. (2016). Metrics for feature-oriented programming. In Proceedings of 7th International Workshop on Emerging Trends in Software Metrics (WETSoM) (pp. 36–42). Abilio, R., Vale, G., Figueiredo, E., Costa, H. (2016). Metrics for feature-oriented programming. In Proceedings of 7th International Workshop on Emerging Trends in Software Metrics (WETSoM) (pp. 36–42).
Zurück zum Zitat Alves, T., Ypma, C., Visser, J. (2010). Deriving metric thresholds from benchmark data. In Proceedings of the 26th International Conference on Software Maintenance (ICSM) (pp. 1–10). Alves, T., Ypma, C., Visser, J. (2010). Deriving metric thresholds from benchmark data. In Proceedings of the 26th International Conference on Software Maintenance (ICSM) (pp. 1–10).
Zurück zum Zitat Apel, S., Kästner, C., Lengauer, C. (2009). FeatureHouse: language-independent, automated software composition. In Proceedings of the 31st International Conference on Software Engineering (ICSE) (pp. 221–231). Apel, S., Kästner, C., Lengauer, C. (2009). FeatureHouse: language-independent, automated software composition. In Proceedings of the 31st International Conference on Software Engineering (ICSE) (pp. 221–231).
Zurück zum Zitat Batory, D., & O’Malley, S. (1992). The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering Methodology, 1(4), 335–398.CrossRef Batory, D., & O’Malley, S. (1992). The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering Methodology, 1(4), 335–398.CrossRef
Zurück zum Zitat Brereton, P., Kitchenham, B., Budgen, D., Tumer, M., & Khalil, M. (2007). Lessons from applying the systematic literature review process within the software engineering domain. Journal of Systems and Software (JSS), 80(4), 571–583.CrossRef Brereton, P., Kitchenham, B., Budgen, D., Tumer, M., & Khalil, M. (2007). Lessons from applying the systematic literature review process within the software engineering domain. Journal of Systems and Software (JSS), 80(4), 571–583.CrossRef
Zurück zum Zitat Chidamber, S., & Kemerer, C. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493.CrossRef Chidamber, S., & Kemerer, C. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493.CrossRef
Zurück zum Zitat Coleman, D., Lowther, B., & Oman, P. (1995). The application of software maintainability models in industrial software systems. Journal of Systems and Software, 29(1), 3–16.CrossRef Coleman, D., Lowther, B., & Oman, P. (1995). The application of software maintainability models in industrial software systems. Journal of Systems and Software, 29(1), 3–16.CrossRef
Zurück zum Zitat Concas, G., Marchesi, M., Pinna, S., & Serra, N. (2007). Power-laws in a large object-oriented software system. IEEE Transactions on Software Engineering, 33(10), 687–708.CrossRef Concas, G., Marchesi, M., Pinna, S., & Serra, N. (2007). Power-laws in a large object-oriented software system. IEEE Transactions on Software Engineering, 33(10), 687–708.CrossRef
Zurück zum Zitat Dumke, R., & Winkler, A. (1997). Managing the component-based software engineering with metrics. In Proceedings of the 5th International Symposium on Assessment of Software Tools and Technologies (SAST) (pp. 104–110). Dumke, R., & Winkler, A. (1997). Managing the component-based software engineering with metrics. In Proceedings of the 5th International Symposium on Assessment of Software Tools and Technologies (SAST) (pp. 104–110).
Zurück zum Zitat Erni, K., & Lewerentz, C. (1996). Applying design-metrics to object-oriented frameworks. In Proceedings of the 3rd International Symposium on Software Metrics (METRICS) (pp. 64–72). Erni, K., & Lewerentz, C. (1996). Applying design-metrics to object-oriented frameworks. In Proceedings of the 3rd International Symposium on Software Metrics (METRICS) (pp. 64–72).
Zurück zum Zitat Fenton, N. (1991). Software metrics: a rigorous Approach (pp. 28–37). London: Chapman-Hall.MATH Fenton, N. (1991). Software metrics: a rigorous Approach (pp. 28–37). London: Chapman-Hall.MATH
Zurück zum Zitat Fernandes, E., Oliveira, J., Vale, G., Paiva, T., Figueiredo, E. (2016). A review-based comparative study of bad smell detection tools. In Proceedings of the 20th International Conference on Evaluation and assessment in software engineering (EASE). Limerick, 1–3 June 2016. Fernandes, E., Oliveira, J., Vale, G., Paiva, T., Figueiredo, E. (2016). A review-based comparative study of bad smell detection tools. In Proceedings of the 20th International Conference on Evaluation and assessment in software engineering (EASE). Limerick, 1–3 June 2016.
Zurück zum Zitat Fernandes, E., Vale, G., Sousa, L., Figueiredo, E., Garcia, A., Lee, J. (2017). No code anomaly is an island: anomaly agglomeration as sign of product line instabilities. In Proceedings of the 16th International Conference on Software Reuse (ICSR), pp. 48–64. Fernandes, E., Vale, G., Sousa, L., Figueiredo, E., Garcia, A., Lee, J. (2017). No code anomaly is an island: anomaly agglomeration as sign of product line instabilities. In Proceedings of the 16th International Conference on Software Reuse (ICSR), pp. 48–64.
Zurück zum Zitat Ferreira, K., Bigonha, M., Bigonha, R., Mendes, L., & Almeida, H. (2012). Identifying thresholds for object-oriented software metrics. Journal of Systems and Software, 85(2), 244–257.CrossRef Ferreira, K., Bigonha, M., Bigonha, R., Mendes, L., & Almeida, H. (2012). Identifying thresholds for object-oriented software metrics. Journal of Systems and Software, 85(2), 244–257.CrossRef
Zurück zum Zitat Ferreira, G., Gaia, F., Figueiredo, E., & Maia, M. (2014). On the use of feature-oriented programming for evolving software product lines: a comparative study. Science Computer Programming, 93(1), 65–85.CrossRef Ferreira, G., Gaia, F., Figueiredo, E., & Maia, M. (2014). On the use of feature-oriented programming for evolving software product lines: a comparative study. Science Computer Programming, 93(1), 65–85.CrossRef
Zurück zum Zitat Figueiredo, E., Cacho, N., Sant’Anna, C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari F, Khan S, Castor Filho F, Dantas F (2008) Evolving software product lines with aspects: an empirical study on design stability. In: Proceeding of the 30th iInternational Conference on Software Engineering (ICSE) (pp. 261–270). Leipzig: IEEE Computer Society. Figueiredo, E., Cacho, N., Sant’Anna, C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari F, Khan S, Castor Filho F, Dantas F (2008) Evolving software product lines with aspects: an empirical study on design stability. In: Proceeding of the 30th iInternational Conference on Software Engineering (ICSE) (pp. 261–270). Leipzig: IEEE Computer Society.
Zurück zum Zitat Fowler, M. (1999). Refactoring: improving the design of existing code. Reading: Addison Wesley. Fowler, M. (1999). Refactoring: improving the design of existing code. Reading: Addison Wesley.
Zurück zum Zitat French, V. (1999). Establishing software metric thresholds. In Proceedings of the 4th International Workshop on Software Measurement (IWSM). French, V. (1999). Establishing software metric thresholds. In Proceedings of the 4th International Workshop on Software Measurement (IWSM).
Zurück zum Zitat Gamma, G., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Reading: Addison-Wesley. Gamma, G., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Reading: Addison-Wesley.
Zurück zum Zitat Heitlager, I., Kuipers, T., & Visser, J. (2007). A practical model for measuring maintainability. In Proceedings of the 6th International Conference on the Quality of Information and Communications Technology (QUATIC) (pp. 30–39). Heitlager, I., Kuipers, T., & Visser, J. (2007). A practical model for measuring maintainability. In Proceedings of the 6th International Conference on the Quality of Information and Communications Technology (QUATIC) (pp. 30–39).
Zurück zum Zitat Herbold, S., Grabowki, J., & Waack, S. (2011). Calculation and optimization of thresholds for sets of software metrics. Empirical Software Engineering, 16(6), 812–841.CrossRef Herbold, S., Grabowki, J., & Waack, S. (2011). Calculation and optimization of thresholds for sets of software metrics. Empirical Software Engineering, 16(6), 812–841.CrossRef
Zurück zum Zitat Kitchenham, B., & Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering. EBSE Technical Report, Keele University. Kitchenham, B., & Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering. EBSE Technical Report, Keele University.
Zurück zum Zitat Lanza, M., & Marinescu, R. (2006). Object-oriented metrics in practice: using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Berlin Heidelberg: Springer-Verlag. Lanza, M., & Marinescu, R. (2006). Object-oriented metrics in practice: using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Berlin Heidelberg: Springer-Verlag.
Zurück zum Zitat Lima, E., Resende, A., & Lethbridge, T. (2016). The uncomfortable discrepancies of software metric thresholds and reference values in literature. In Proceedings of the 6th International Conference on Software Engineering Advances (ICSEA) (pp. 1–9). Lima, E., Resende, A., & Lethbridge, T. (2016). The uncomfortable discrepancies of software metric thresholds and reference values in literature. In Proceedings of the 6th International Conference on Software Engineering Advances (ICSEA) (pp. 1–9).
Zurück zum Zitat Lorenz, M., & Kidd, J. (1994). Object-oriented software metrics. New York: Englewood Cliffs. Lorenz, M., & Kidd, J. (1994). Object-oriented software metrics. New York: Englewood Cliffs.
Zurück zum Zitat Louridas, P., Spinellis, D., & Vlachos, V. (2008). Power laws in software. ACM Transactions on Software Engineering Methodology, 18(1), 1–26.CrossRef Louridas, P., Spinellis, D., & Vlachos, V. (2008). Power laws in software. ACM Transactions on Software Engineering Methodology, 18(1), 1–26.CrossRef
Zurück zum Zitat Marinescu, R. (2004). Detection strategies: metrics-based rules for detecting design flaws. In Proceedings of the 20th International Conference on Software Maintainability (ICSM) (pp. 350–359). Marinescu, R. (2004). Detection strategies: metrics-based rules for detecting design flaws. In Proceedings of the 20th International Conference on Software Maintainability (ICSM) (pp. 350–359).
Zurück zum Zitat Mori, A., Vale, G., Viggiato, M., Oliveira, J., Figueiredo, E., Cirilo, E., Jamshidi, P., Kastner, C. (2018) Evaluating domain-specific metric thresholds: an empirical study. International Conference on Technical Debt (TechDebt). Mori, A., Vale, G., Viggiato, M., Oliveira, J., Figueiredo, E., Cirilo, E., Jamshidi, P., Kastner, C. (2018) Evaluating domain-specific metric thresholds: an empirical study. International Conference on Technical Debt (TechDebt).
Zurück zum Zitat Munro, M. (2005). Product metrics for automatic identification of “bad smell” design problems in java source-code. In Proceeding of the 11th international software METRICS symposium (METRICS) (pp. 1–9). Munro, M. (2005). Product metrics for automatic identification of “bad smell” design problems in java source-code. In Proceeding of the 11th international software METRICS symposium (METRICS) (pp. 1–9).
Zurück zum Zitat Nejmeh, B. (1988). NPATH: A measure of execution path complexity and its applications. Communications of the ACM, 31(2), 188–200.CrossRef Nejmeh, B. (1988). NPATH: A measure of execution path complexity and its applications. Communications of the ACM, 31(2), 188–200.CrossRef
Zurück zum Zitat Oliveira, P., Valente, M., Lima, F. (2014). Extracting relative thresholds for source code metrics. In Proceedings of the 18th International Conference on Software Maintenance and Reengineering (CSMR) (pp. 254–263). Oliveira, P., Valente, M., Lima, F. (2014). Extracting relative thresholds for source code metrics. In Proceedings of the 18th International Conference on Software Maintenance and Reengineering (CSMR) (pp. 254–263).
Zurück zum Zitat Padilha, J., Pereira, J., Figueiredo, E., Almeida, J., Garcia, A., Sant'Anna, C.. (2014) On the effectiveness of concern metrics to detect code smells: an empirical study. In Proceedings of the 26th International Conference on Advanced Information Systems Engineering (CAiSE). Padilha, J., Pereira, J., Figueiredo, E., Almeida, J., Garcia, A., Sant'Anna, C.. (2014) On the effectiveness of concern metrics to detect code smells: an empirical study. In Proceedings of the 26th International Conference on Advanced Information Systems Engineering (CAiSE).
Zurück zum Zitat Perkusich, M., Medeiros, A., Silva, L., Gorgônio, K., Almeida, H., Perkusich, A. (2015). A Bayesian network approach to assist on the interpretation of software metrics. In Proceedings of the 30th Symposium on Applied Computing (SAC) (pp. 1498–1503). Perkusich, M., Medeiros, A., Silva, L., Gorgônio, K., Almeida, H., Perkusich, A. (2015). A Bayesian network approach to assist on the interpretation of software metrics. In Proceedings of the 30th Symposium on Applied Computing (SAC) (pp. 1498–1503).
Zurück zum Zitat Riel, J. (1996). Object-oriented design heuristics. Boston: Addison-Wesley. Riel, J. (1996). Object-oriented design heuristics. Boston: Addison-Wesley.
Zurück zum Zitat Schulze, S., Apel, S., Kastner, C. (2010). Code clones in feature-oriented software product lines. In Proceedings of the 9th International Conference on Generative Programming and Component Engineering (GPCE) (pp. 103–112). Schulze, S., Apel, S., Kastner, C. (2010). Code clones in feature-oriented software product lines. In Proceedings of the 9th International Conference on Generative Programming and Component Engineering (GPCE) (pp. 103–112).
Zurück zum Zitat Spinellis, D. (2008). A tale of four kernels. In Proceedings of the 30th International Conference on Software Engineering (ICSE) (pp. 381–390). Spinellis, D. (2008). A tale of four kernels. In Proceedings of the 30th International Conference on Software Engineering (ICSE) (pp. 381–390).
Zurück zum Zitat Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H., Noble, J. (2010). Qualitas Corpus: A curated collection of Java code for empirical studies. In Proceedings of 17th the Asia-Pacific Software Engineering Conference (APSEC) (pp. 336–345). Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H., Noble, J. (2010). Qualitas Corpus: A curated collection of Java code for empirical studies. In Proceedings of 17th the Asia-Pacific Software Engineering Conference (APSEC) (pp. 336–345).
Zurück zum Zitat Vale, G., & Figueiredo, E. (2015). A method to derive metric thresholds for software product lines. In Proceedings of the 29th Brazilian Symposium on Software Engineering (SBES) (pp. 110–119). Vale, G., & Figueiredo, E. (2015). A method to derive metric thresholds for software product lines. In Proceedings of the 29th Brazilian Symposium on Software Engineering (SBES) (pp. 110–119).
Zurück zum Zitat Vale, G., Albuquerque, D., Figueiredo, E., Garcia, A. (2015). Defining metric thresholds for software product lines: a comparative study. In Proceedings of the 19th International Software Product Line Conference (SPLC) (pp. 176–185). Vale, G., Albuquerque, D., Figueiredo, E., Garcia, A. (2015). Defining metric thresholds for software product lines: a comparative study. In Proceedings of the 19th International Software Product Line Conference (SPLC) (pp. 176–185).
Zurück zum Zitat Vasa, R., Lumpe, M., Branch, P., Nierstrasz, O. (2009). Comparative analysis of evolving software systems using the Gini coefficient. In Proceedings of the 25th International Conference on Software Maintenance (ICSM) (pp. 179–188). Vasa, R., Lumpe, M., Branch, P., Nierstrasz, O. (2009). Comparative analysis of evolving software systems using the Gini coefficient. In Proceedings of the 25th International Conference on Software Maintenance (ICSM) (pp. 179–188).
Zurück zum Zitat Veado, L., Vale, G., Fernandes, E., Figueiredo, E. (2016). TDTool: threshold derivation tool. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering (EASE), Tools Session (Article No. 24). Veado, L., Vale, G., Fernandes, E., Figueiredo, E. (2016). TDTool: threshold derivation tool. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering (EASE), Tools Session (Article No. 24).
Metadaten
Titel
On the proposal and evaluation of a benchmark-based threshold derivation method
verfasst von
Gustavo Vale
Eduardo Fernandes
Eduardo Figueiredo
Publikationsdatum
01.05.2018
Verlag
Springer US
Erschienen in
Software Quality Journal / Ausgabe 1/2019
Print ISSN: 0963-9314
Elektronische ISSN: 1573-1367
DOI
https://doi.org/10.1007/s11219-018-9405-y

Weitere Artikel der Ausgabe 1/2019

Software Quality Journal 1/2019 Zur Ausgabe

Premium Partner