Abstract
There is a plethora of studies investigating object-oriented measures and their link with external quality attributes, but usefulness of the measures may differ across empirical studies. This study aims to aggregate and identify useful object-oriented measures, specifically those obtainable from the source code of object-oriented systems that have gone through such empirical evaluation. By conducting a systematic literature review, 99 primary studies were identified and traced to four external quality attributes: reliability, maintainability, effectiveness and functionality. A vote-counting approach was used to investigate the link between object-oriented measures and the attributes, and to also assess the consistency of the relation reported across empirical studies. Most of the studies investigate links between object-oriented measures and proxies for reliability attributes, followed by proxies for maintainability. The least investigated attributes were: effectiveness and functionality. Measures from the C&K measurement suite were the most popular across studies. Vote-counting results suggest that complexity, cohesion, size and coupling measures have a better link with reliability and maintainability than inheritance measures. However, inheritance measures should not be overlooked during quality assessment initiatives; their link with reliability and maintainability could be context dependent. There were too few studies traced to effectiveness and functionality attributes; thus a meaningful vote-counting analysis could not be conducted for these attributes. Thus, there is a need for diversification of quality attributes investigated in empirical studies. This would help with identifying useful measures during quality assessment initiatives, and not just for reliability and maintainability aspects.







Similar content being viewed by others
Notes
From here on in, the original LCOM proposed by Chidamber and Kemerer (1991) is referred to as LCOM1
Total vote-counting on the y-axis is the sum of the number of “++”, “– –”, “+” results “–”, where “++” and “– –” are both multiplied by two and each “+”, “–” and “Unclear” result is one point.
References
Abreu F B, Carapuça R (1994) Object-oriented software engineering: measuring and controlling the development process. In: Proceedings of the 4th international conference on software quality, vol 186
Abreu F, Melo W (1996) Evaluating the impact of object-oriented design on software quality. In: Proceedings of the 3rd international software metrics symposium, pp 90–99
Abreu F B E, Goulão M, Esteves R, Abreu O B E (1995) Toward the design quality evaluation of object-oriented software systems. In: Proceedings of the 5th international conference on software quality, pp 44–57
Abubakar A, AlGhamdi J, Ahmed M (2006) Can cohesion predict fault density? In: Proceedings of the 30th IEEE international conference on computer systems and applications, pp 890–893
Aggarwal K, Singh Y, Kaur A, Malhotra R (2007) Investigating effect of design metrics on fault proneness in object-oriented systems. J Object Technol 6(10): 127–141
Aggarwal K, Singh Y, Kaur A, Malhotra R (2009) Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: a replicated case study. Softw Process: Improv Pract 14(1): 39–62
Ajrnal Chaumun M, Kabaili H, Keller R, Lustman F (1999) A change impact model for changeability assessment in object-oriented software systems. In: Proceedings of the 3rd european conference on software maintenance and reengineering, 1999, pp 130–138
Al Dallal J (2011a) Improving the applicability of object-oriented class cohesion metrics. Info Softw Technol 53(9): 914–928
Al Dallal J (2011b) Transitive-based object-oriented lack-of-cohesion metric. Procedia Comput Sci 3: 1581–1587
Al Dallal J (2012a) Fault prediction and the discriminative powers of connectivity-based object-oriented class cohesion metrics. Inf Softw Technol 54(4): 396–416
Al Dallal J (2012b) The impact of accounting for special methods in the measurement of object-oriented class cohesion on refactoring and fault prediction activities. J Syst Softw 85(5): 1042–1057
Al Dallal J, Briand L (2010) An object-oriented high-level design-based class cohesion metric. Inf Softw Technol 52(12): 1346–1361
Al Dallal J, Briand L C (2012) A precise method-method interaction-based cohesion metric for object-oriented classes. ACM Trans Softw Eng Methodol 21(2): 8:1–8:34
Alshayeb M, Li W (2003) An empirical validation of object-oriented metrics in two different iterative software processes. IEEE Trans Softw Eng 29: 1043–1049
Aman H, Mochiduki N, Yamada H (2006) A model for detecting cost-prone classes based on mahalanobis-taguchi method. IEICE Trans Info Syst E89-D: 1347–1358
Arisholm E (2006) Empirical assessment of the impact of structural properties on the changeability of object-oriented software. Info Softw Technol 48(11): 1046–1055
Arisholm E, Sjøberg D (2000) Towards a framework for empirical assessment of changeability decay. J Syst Softw 53(1): 3–14
Babich D, Clarke P J, Power J F, Kibria B M G (2011) Using a class abstraction technique to predict faults in OO classes: a case study through six releases of the eclipse JDT. In: Proceedings of the 2011 ACM symposium on applied computing. ACM, New York, pp 1419–1424
Badri M, Toure F (2012) Evaluating the effect of control flow on the unit testing effort of classes: an empirical analysis. Adv Soft Eng 2012: 5:5–5:17
Badri L, Badri M, Toure F (2011) An empirical analysis of lack of cohesion metrics for predicting testability of classes. Int J Softw Eng Appl 5(2): 69–86
Bakar N S A A (2011) Empirical analysis of object-oriented coupling and cohesion measures in determining the quality of open source systems. In: Proceedings of the IASTED international conference on software engineering and applications, SEA 2011
Bandi RK, Vaishnavi VK, Turk DE (2003) Predicting maintenance performance using object-oriented design complexity metrics. IEEE Trans Softw Eng 29(1): 77–87
Bansiya J, Davis C G (2002) A hierarchical model for object-oriented design quality assessment. IEEE Trans Softw Eng 28(1): 4–17
Basili V R, Briand L C, Melo W L (1996) A validation of object-oriented design metrics as quality indicators. IEEE Trans Softw Eng 22(10): 751–761
Benlarbi S, Melo W (1999) Polymorphism measures for early risk prediction. In: Proceedings of the 1999 international conference on software engineering, pp 334–344
Benlarbi S, El Emam K, Goel N, Rai S (2000) Thresholds for object-oriented measures. In: Proceedings of the 11th international symposium on software reliability engineering, pp 24–38
Bocco M, Moody D, Piattini M (2005) Assessing the capability of internal metrics as early indicators of maintenance effort through experimentation. J Softw Maint Evol 17(3): 225–246
Brereton P, Kitchenham B A, Budgen D, Turner M, Khalil M (2007) Lessons from applying the systematic literature review process within the software engineering domain. J Syst Softw 80(4): 571–583
Briand L, Wüst J (2002) Empirical studies of quality models in object-oriented systems. Adv Comput 56: 97–166
Briand L, Devanbu P, Melo W (1997) An investigation into coupling measures for C++. In: Proceedings of the 19th international conference on software engineering, pp 412–421
Briand L C, Wüst J, Ikonomovski S V, Lounis H (1999) Investigating quality factors in object-oriented designs: an industrial case study. In: Proceedings of the 21st international conference on software engineering, pp 345–354
Briand L C, Wüst J, Daly J W, Porter D V (2000) Exploring the relationship between design measures and software quality in object-oriented systems. J Syst Softw 51(3): 245–273
Briand L, Melo W, Wüst J (2002) Assessing the applicability of fault-proneness models across object-oriented software projects. IEEE Trans Softw Eng 28(7): 706–720
Bruntink M, van Deursen A (2006) An empirical study into class testability. J Syst Softw 79(9): 1219–1232
Cartwright M, Shepperd M (2000) Empirical investigation of an object-oriented software system. IEEE Trans Softw Eng 26(8): 786–796
Catal C, Diri B (2009) A systematic review of software fault prediction studies. Expert Syst Appl 36(4): 7346–7354
Catal C, Diri B, Ozumut B (2007) An artificial immune system approach for fault prediction in object-oriented software. In: Proceedings of the 2nd international conference on dependability of computer systems, pp 238–245
Chidamber S, Kemerer C (1991) Towards a metrics suite for object oriented design. SIGPLAN Not 26(11): 197–211
Chidamber S R, Kemerer C F (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6): 476–493
Chidamber S R, Darcy D P, Kemerer C F (1998) Managerial use of metrics for object-oriented software: an exploratory analysis. IEEE Trans Softw Eng 24(8): 629–639
Cruz A E C, Ochimizu K (2010) A UML approximation of three Chidamber-Kemerer metrics and their ability to predict faulty code across software projects. IEICE Trans Info Syst 93(11): 3038–3050
Dagpinar M, Jahnke J H (2003) Predicting maintainability with object-oriented metrics – an empirical comparison. In: Proceedings of the 10th working conference on reverse engineering, pp 155–164
Dandashi F, Rine D (2002) A method for assessing the reusability of object-oriented code using a validated set of automated measurements. In: Proceedings of the 2002 ACM symposium on applied computing, pp 997–1003
Darcy D, Kemerer C, Slaughter S, Tomayko J (2005) The structural complexity of software: an experimental test. IEEE Trans Softw Eng 31(11): 982–994
Díaz J, Pérez J, Alarcón P P, Garbajosa J (2011) Agile product line engineering–a systematic literature review. Softw: Pract experience 41(8): 921–941
Dick S, Sadia A (2006) Fuzzy clustering of open-source software quality data: a case study of Mozilla. In: Proceedings of the international joint conference on neural networks, pp 4089–4096
Dybå T, Dingsøyr T, Hanssen G (2007) Applying systematic reviews to diverse study types : an experience report. In: Proceedings of the 1st international symposium on empirical software engineering and measurement, pp 225–234
El Emam K, Benlarbi S, Goel N, Melo W, Lounis H, Rai S (2002) The optimal class size for object-oriented software. IEEE Trans Softw Eng 28(5): 494–509
Elish MO (2010) Exploring the relationships between design metrics and package understandability: a case study. In: Proeceeding of the 18th IEEE international conference on program comprehension, pp 144–147
Elish MO, Rine D (2006) Design structural stability metrics and post-release defect density: an empirical study. In: 30th annual international conference of computer software and applications, pp 1–8
Elish MO, Al-Yafei A H, Al-Mulhem M (2011) Empirical comparison of three metrics suites for fault prediction in packages of object-oriented systems: a case study of eclipse. Adv Eng Softw 42(10): 852– 859
Eski S, Buzluca F (2011) An empirical study on object-oriented metrics and software evolution in order to reduce testing costs by predicting change-prone classes. In: Proceedings of the 4th IEEE international conference on software testing, verification and validation workshops, pp 566–571
Etzkorn L, Davis C, Li W (1997) A statistical comparison of various definitions of the LCOM metric. Technical Report TR-UAH-CS-1997-02
Fenton N E, Pfleeger S L (1998) Software metrics: a rigorous and practical approach, 2nd edn. PWS Publishing, Boston
Fioravanti F, Nesi P (2001) A study on fault-proneness detection of object-oriented systems. In: Proceedings of the European conference on software maintenance and reengineering, pp 121–130
Genero M, Piattini M, Jiménez L (2001) Empirical validation of class diagram complexity metrics. In: Proceedings of the 11th internatinal conference of the Chilean computer science society, pp 95–104
Genero M, Piattini M, Calero C (2005) A survey of metrics for UML class diagrams. J Object Technol 4: 59–92
Giger E, Pinzger M, Gall H (2012) Can we predict types of code changes? An empirical analysis. In: Proceedings of the 9th IEEE working conference on mining software repositories, pp 217– 226
Goel B, Singh Y (2008) Empirical investigation of metrics for fault prediction on object-oriented software. Stud Comput Intell 131: 255–265
Guo Y, Wuersch M, Giger E, Gall H (2011) An empirical validation of the benefits of adhering to the law of demeter. In: Proceeding of the 18th working conference on reverse engineering, pp 239–243
Gupta V, Chhabra J K (2009) Package coupling measurement in object-oriented software. J Comput Sci Technol 24(2): 273–283
Gupta V, Chhabra J K (2012) Package level cohesion measurement in object-oriented software. J Braz Comput Soc 18(3): 251–266
Gyimóthy T, Ferenc R, Siket I (2005) Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Trans Softw Eng 31(10): 897–910
Halstead M H (1977) Elements of software science (Operating and programming systems series). Elsevier, New York
Harrison R, Counsell S (1998) The role of inheritance in the maintainability of object-oriented systems. In: Proceedings of European software control and metrics conference, pp 449–457
Harrison R, Counsell S, Nithi R (1997) An overview of object-oriented design metrics. In: Proceedings of the 8th IEEE international workshop on software technology and engineering practice, pp 230–235
Henningsson K, Wohlin C (2005) Monitoring fault classification agreement in an industrial context. In: Proceedings of the 9th conference on empirical assessment in software engineering
Holschuh T, Päuser M, Herzig K, Zimmermann T, Premraj R, Zeller A (2009) Predicting defects in SAP Java code: an experience report. In: Proceedings of the 31st international conference on software engineering-companion volume, pp 172–181
Huang P, Zhu J (2009) A multi-instance model for software quality estimation in OO systems. In: Proceedings of the 5th international conference on natural computation, pp 436–440
ISO/IEC-25010 (2010) Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – system and software quality models. International organization for standardization
ISO/IEC-9126 (2001) Software engineering – product quality – Part 1: quality model. International organization for standardization
ISO/IEC/IEEE-24765 (2010) Systems and software engineering – vocabulary. International organization for standardization
Janes A, Scotto M, Pedrycz W, Russo B, Stefanovic M, Succi G (2006) Identification of defect-prone classes in telecommunication software systems using design metrics. Info Sci 176(24): 3711–3734
Jia H, Shu F, Yang Y, Wang Q (2009) Predicting fault-prone modules: a comparative study. In: Software engineering approaches for offshore and outsourced development, vol 35. Springer, Berlin, pp 45–59
Jin C, Jin S-W, Ye J-M, Zhang Q-G (2009) Quality prediction model of object-oriented software system using computational intelligence. In: Proceedings of the 2nd international conference on power electronics and intelligent transportation system, vol 2, pp 120–123
Kamiya T, Kusumoto S, Inoue K (1999) Prediction of fault-proneness at early phase in object-oriented development. In: Proceedings of the IEEE 2nd international symposium on object-oriented real-time distributed computing, pp 253–258
Kanellopoulos Y, Antonellis P, Antoniou D, Makris C, Theodoridis E, Tjortjis C, Tsirakis N (2010) Code quality evaluation methodology using the ISO/IEC 9126 standard. Int J Softw Eng Appl 1(3): 17–36
Kanmani S, Rhymend Uthariaraj V, Nakkeeran R, Inbavani P (2004) Object oriented software fault prediction using adaptive neuro fuzzy inference system. WSEAS Trans Info Sci Appl 1(5): 1142–1145
Kanmani S, Uthariaraj V R, Sankaranarayanan V, Thambidurai P (2007) Object-oriented software fault prediction using neural networks. Info Softw Technol 49(5): 483–492
Karus S, Dumas M (2012) Code churn estimation using organisational and code metrics: an experimental comparison. Inf Softw Technol 54(2): 203–211
Kitchenham B (2010) Whats up with software metrics? A preliminary mapping study. J Syst Softw 83(1): 37–51
Kitchenham BA, Charters S (2007) Guidelines for performing systematic literature reviews in software engineering. Technical Report EBSE-2007-01, Keele University
Landis J, Koch G (1977) The measurement of observer agreement for categorical data. Biometrics 33(1): 159–174
Lavazza L, Morasca S, Taibi D, Tosi D (2012) An empirical investigation of perceived reliability of open source java programs. In: Proceedings of the 27th Annual ACM Symposium on Applied Computing. ACM, New York, pp. 1109–1114
Li W, Shatnawi R (2007) An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. J Syst Softw 80(7): 1120–1128
Lincke Rd, Lundberg J, Löwe W (2008) Comparing software metrics tools. In: Proceedings of the international symposium on software testing and analysis, pp 131–142
Liu Y, Poshyvanyk D, Ferenc R, Gyimothy T, Chrisochoides N (2009) Modeling class cohesion as mixtures of latent topics. In: Proceedings of the 2009 IEEE international conference on software maintenance, pp 233–242
Lorenz M, Kidd J (1994) Object-oriented software metrics: a practical guide. Prentice-Hall, New Jersey
Malhotra R, Jain A (2011) Software fault prediction for object oriented systems: a literature review. SIGSOFT Softw Eng notes 36(5): 1–6
Malhotra R, Jain A (2012) Fault prediction using statistical and machine learning methods for improving software quality. J Inf Process Syst 8(2): 241–262
Marinescu R, Marinescu C (2011) Are the clients of flawed classes (also) defect prone? In: Proceedings of the 11th IEEE international working conference on source code analysis and manipulation, pp 65–74
McCabe T J (1976) A complexity measure. IEEE Trans Softw Eng (4):308–320
Nair T G, Selvarani R (2012) Defect proneness estimation and feedback approach for software design quality improvement. Inf Softw Technol 54(3): 274–285
Nguyen V, Boehm B, Danphitsanuphan P (2011) A controlled experiment in assessing and estimating software maintenance tasks. Inf Softw Technol 53(6): 682–691
Olague HM, Etzkorn LH, Cox GW (2006) An entropy-based approach to assessing object-oriented software maintainability and degradation – A method and case study. In: Proceedings of the international conference on software engineering research and practice, pp 442–452
Olague H, Etzkorn L, Gholston S, Quattlebaum S (2007) Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly iterative or agile software development processes. IEEE Trans Softw Eng 33(6): 402–419
Olague HM, Etzkorn LH, Messimer SL, Delugach HS (2008) An empirical validation of object-oriented class complexity metrics and their ability to predict error-prone classes in highly iterative, or agile, software: A case study. J Softw Maint Evol Res Pract 20(3): 171–197
Olbrich S, Cruzes DS, Basili V, Zazworka N (2009) The evolution and impact of code smells: a case study of two open source systems. In: Proceedings of the 2009 3rd international symposium on empirical software engineering and measurement, pp 390–400
Pai G, Bechta Dugan J (2007) Empirical analysis of software fault content and fault proneness using bayesian methods. IEEE Trans Softw Eng 33(10): 675–686
Pickard LM, Kitchenham BA, Jones PW (1998) Combining empirical results in software engineering. Inf Softw Technol 40(14): 811–821
Poshyvanyk D, Marcus A, Ferenc R, Gyimóthy T (2009) Using information retrieval based coupling measures for impact analysis. Empir Softw Eng 14(1): 5–32
Pritchett I, W. W (2001) An object-oriented metrics suite for Ada 95. In: Proceedings of the 2001 annual ACM SIGAda international conference on Ada, pp 117–126
Quah JT, Thwin MM (2002) Prediction of software readiness using neural network. In: Proceedings of 1st international conference on information technology & applications, pp 307–312
Radjenović D, Heric̆ko M, Torkar R, živkovic̆ A (2013) Software fault prediction metrics: a systematic literature review. Inf Softw Technol 55: 1397–1418
Ramasubbu N, Kemerer C F, Hong J (2012) Structural complexity and programmer team strategy: an experimental test. IEEE Trans Softw Eng 38(5): 1054–1068
Rathore S, Gupta A (2012a) Investigating object-oriented design metrics to predict fault-proneness of software modules. In: Proceedings of 6th CSI international conference on software engineering, pp 1–10
Rathore S, Gupta A (2012b) Validating the effectiveness of object-oriented metrics over multiple releases for predicting fault proneness. In: Proceedings of the 19th Asia-Pacific Software Engineering Conference (APSEC), vol. 1, pp 350–355
Revelle M, Gethers M, Poshyvanyk D (2011) Using structural and textual information to capture feature coupling in object-oriented software. Empir Softw Eng 16(6): 773–811
Reyes L, Carver D (1998) Predicting object reuse using metrics. In: Proceedings of the 10th international conference on software engineering and knowledge engineering, pp 156–159
Riaz M, Mendes E, Tempero E (2009) A systematic review of software maintainability prediction and metrics. In: Proceedings of the 3rd international symposium on empirical software engineering and measurement, pp 367–377
Robson C (2011) Real world research, 2nd edn. John Wiley & Sons, West Sussex
Rosenberg LH, Hyatt LE (1997) Software quality metrics for object-oriented environments. Crosstalk Journal
Saxena P, Saini M (2011) Empirical studies to predict fault proneness: a review. Int J Comput Appl 22(8): 41–45
Shatnawi R (2010) A quantitative investigation of the acceptable risk levels of object-oriented metrics in open-source systems. IEEE Trans Softw Eng 36(2): 216–225
Shatnawi R, Li W (2008) The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process. J Syst Softw 81(11): 1868–1882
Shatnawi R, Li W, Swain J, Newman T (2010) Finding software metrics threshold values using ROC curves. J Softw Maint Evol Res Pract 22(1): 1–16
Singh Y, Saha A (2012) Prediction of testability using the design metrics for object-oriented software. Int J Comput Appl Technol 44(1): 12–22
Singh P, Verma S (2012) Empirical investigation of fault prediction capability of object oriented metrics of open source software. In: Proceeding of the international joint conference on computer science and software engineering, pp 323–327
Singh Y, Kaur A, Malhotra R (2007) Application of logistic regression and artificial neural network for predicting software quality models. In: Software engineering research and practice, pp 664–670
Singh Y, Kaur A, Malhotra R (2009a) Comparative analysis of regression and machine learning methods for predicting fault proneness models. Int J Comput Appl Technol 35(2): 183–193
Singh Y, Kaur A, Malhotra R (2009b) Software fault proneness prediction using support vector machines. In: Proceedings of the world congress on engineering, vol. 1., pp 1–3
Singh Y, Kaur A, Malhotra R (2010) Empirical validation of object-oriented metrics for predicting fault proneness models. Softw Qual J 18(1): 3–35
Singh Y, Kaur A, Malhotra R (2011) Comparative analysis of J48 with statistical and machine learning methods in predicting fault-prone classes using object-oriented systems. J Stat Manag Syst 14(3): 595–616
Subramanyam R, Krishnan M (2003) Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. IEEE Trans Softw Eng 29(4): 297–310
Succi G, Pedrycz W, Stefanovic M, Miller J (2003) Practical assessment of the models for identification of defect-prone classes in object-oriented commercial systems using design metrics. J Syst Soft 65(1): 1–12
Szabo RM, Khoshgoftaar TM (2004) Classifying software modules into three risk groups. Int J Reliab, Qual Saf Eng 11(1): 59–80
Újházi B, Ferenc RDP, Gyimóthy T (2010) New conceptual coupling and cohesion metrics for object-oriented systems. In: Proceedings of the IEEE working conference on source code analysis and manipulation, pp 33–42
Xenos M, Stavrinoudis D, Zikouli K, Christodoulakis D (2000) Object-oriented metrics – a survey. In: Proceedings of the European software measurement conference, pp 1–10
Xu J, Ho D, Capretz L. F (2008) An empirical validation of object-oriented design metrics for fault prediction. J Comput Sci 4(7)
Yu P, Systa T, Muller H (2002) Predicting fault-proneness using OO metrics: an industrial case study. In: Proceedings of the 6th European conference on software maintenance and reengineering, pp 99–107
Zhou Y, Leung H (2006) Empirical analysis of object-oriented design metrics for predicting high and low severity faults. IEEE Trans Softw Eng 32(10): 771–789
Zhou Y, Xu B, Leung H (2010) On the ability of complexity metrics to predict fault-prone classes in object-oriented systems. J Syst Softw 83(4): 660–674
Zhou Y, Leung H, Song Q, Zhao J, Lu H, Chen L, Xu B (2012) An in-depth investigation into the relationships between structural metrics and unit testability in object-oriented systems. Sci China Inf Sci 55(12): 2800–2815
Zimmerman T, Nagappan N, Herzig K, Premraj R, Williams L (2011) An empirical study on the relation between dependency neighborhoods and failures. In: Proceedings of the IEEE 4th international conference on software testing, verification and validation, pp 347–356
Acknowledgments
This work was funded by the Swedish Knowledge Foundation in Sweden under the grants 2009/0249 and 2010/0311, and Ericsson Software Research. We thank Indira Nurdiani, a PhD Student at Software Engineering Research Lab (SERL), for valuable comments on the paper.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Sandro Morasca
Appendices
Appendix A
Appendix B
Rights and permissions
About this article
Cite this article
Jabangwe, R., Börstler, J., Šmite, D. et al. Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empir Software Eng 20, 640–693 (2015). https://doi.org/10.1007/s10664-013-9291-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-013-9291-7