ABSTRACT
Some previous work began studying the relationship between application domains and quality, in particular through the prevalence of code and design smells (e.g., anti-patterns). Indeed, it is generally believed that the presence of these smells degrades quality but also that their prevalence varies across domains. Though anecdotal experiences and empirical evidence gathered from developers and researchers support this belief, there is still a need to further deepen our understanding of the relationship between application domains and quality. Consequently, we present a large-scale study that investigated the systematic relationships between the presence of smells and quality-related metrics computed over the bytecode of 1,343 Java Mobile Edition applications in 13 different application domains. Although, we did not find evidence of a correlation between smells and quality- related metrics, we found (1) that larger differences exist between metric values of classes exhibiting smells and classes without smells and (2) that some smells are commonly present in all the domains while others are most prevalent in certain domains
- AGGARWAL, K.K., SINGH, Y., KAUR, A., and MALHOTRA, R., 2009. Empirical Analysis for Investigating the Effect of Object-Oriented Metrics on Fault Proneness: A Replicated Case Study. Software Process: Improvement and Practice 14, 1 (January), 39- 62. Google ScholarDigital Library
- ANTONIOL, G., FIUTEM, R., and CRISTOFORETTI, L., 1998. Design pattern recovery in object-oriented software. In 6th IEEE International Workshop on Program Understanding (IWPC 1998), 153-160. Google ScholarDigital Library
- BAKOTA, T., HEGEDUS, P., KÖRTVÉLYESI, P., FERENC, R., and GYIMÓTHY, T., 2011. A Probabilistic Software Quality Model. In 27th IEEE International Conference on Software Maintenance (ICSM'11), Williamsburg, Virginia, USA, 243-252. Google ScholarDigital Library
- BANSIYA, J. and DAVIS, C.G., 2002. A Hierarchical Model for Object-Oriented Design Quality Assessment. IEEE Transactions on Software Engineering (TSE) 28, 1 (January), 4-17. Google ScholarDigital Library
- BASILI, V.R., BRIAND, L.C., and MELO, W.L., 1996. A Validation of Object-Oriented Design Metrics as Quality Indicators. IEEE Transactions on Software Engineering (TSE) 22, 10 (October), 751-761. Google ScholarDigital Library
- BINKLEY, A. and SCHACH, S., 1998. Validation of the Coupling Dependency Metric as a Predictor of Run-Time Failures and Maintenance Measures. In 20th International Conference on Software Engineering (ICSE'98), Kyoto, 452-455. Google ScholarDigital Library
- BRANDT, J., GUO, P.J., LEWENSTEIN, J., KLEMMER, S.R., and DONTCHEVA, M., 2009. Opportunistic Programming: Writing Code to Prototype, Ideate, and Discover. IEEE Software 26, 5, 18-24. Google ScholarDigital Library
- BRIAND, L.C., DALY, J.W., PORTER, V., and WÜST, J., 1998. A Comprehensive Empirical Validation of Design Measures for Object-Oriented Systems. In 5th International Software Metrics Symposium (METRICS'98) IEEE Computer Science, Bethesda, MD, 43-53. Google ScholarDigital Library
- BRIAND, L.C., DALY, J.W., and WÜST, J., 1998. A Unified Framework for Cohesion Measurement in Object-Oriented Systems. Empirical Software Engineering 3, 1, 65-117. Google ScholarDigital Library
- BRIAND, L.C., WÜST, J., DALY, J.W., and PORTER, V.D., 2000. Exploring the Relationship between Design Measures and Software Quality in Object-Oriented Systems. Journal of System and Software (JSS) 51, 3 (May), 245-273. Google ScholarDigital Library
- BROWN, W.J., MALVEAU, R.C., MCCORMICK III, H.W., and MOWBRAY, T.J., 1998. AntiPatterns. John Willey & Sons.Google Scholar
- BRUNTINK, M. and VAN DEURSEN, A., 2006. An empirical study into class testability. Systems and Software 79, 9 (September), 1219-1232. Google ScholarDigital Library
- BURROWS, R., FERRARI, F., LEMOS, O., GARCIA, A., and TAÏANI, F., 2010. The Impact of Coupling on the Fault-Proneness of Aspect-Oriented Programs: An Empirical Study. In IEEE 21st International Symposium on Software Reliability Engineering, San Jose, CA, USA, 329-338. Google ScholarDigital Library
- BUSE, R.P.L. and WEIMER, W.R., 2010. Learning a Metric for Code Readability. IEEE Transacttions on Software Engineering (TSE) 35, 4 (July-August 2010), 546-558. Google ScholarDigital Library
- CARTWRIGHT, M. and SHEPPERD, M., 2000. An Empirical Investigacion of an Object-Oriented System. IEEE Transacttions Software Engineering (TSE) 26, 7, 786-796. Google ScholarDigital Library
- CHIDAMBER, S., DARCY, D., and KEMERER, C., 1998. Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis. IEEE Transactions on Software Engineering (TSE) 24, 8 (August), 629-639. Google ScholarDigital Library
- CHIDAMBER, S.R. and KEMERER, C.F., 1994. A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering (TSE) 20, 6, 476-493. Google ScholarDigital Library
- CORDER, G.W. and FOREMAN, D.I., 2009. Nonparametric Statistics for Non-Statisticians. John Wilet and Sons.Google Scholar
- DENARO, G., MORASCA, S., and PEZZÈ, M., 2002. Deriving models of software proneness. In 14th international conference on Software engineering and knowledge engineering (SEKE'02), Ischia, Italy, 361-368. Google ScholarDigital Library
- DI PENTA, M., CERULO, L., GUÉHÉNEUC, Y.-G., and ANTONIOL, G., 2008. An empirical study of the relationships between design pattern roles and class change proneness. In 24th IEEE International Conference on Software Maintenance (ICSM 2008), Beijing, China, 217-226.Google ScholarCross Ref
- EL-EMAM, K., BENLARBI, S., GOEL, N., and RAI, S.N., 2001. The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics. IEEE Transactions on Software Engineering (TSE) 27, 7, 630-650. Google ScholarDigital Library
- FONTANA, F., FERME, V., MARINO, A., WALTER, B., and MARTENKA, P., 2013. Investigating the Impact of Code Smells on System's Quality: An Empirical Study on Systems of Different Application Domains. In IEEE International Conference on Software Maintenance (ICSM '13), 260-269. Google ScholarDigital Library
- GAMMA, E., HELM, R., JOHNSON, R., and VLISSIDES, J., 1995. Design Patterns. Addison-Wesley Professional.Google Scholar
- GRISSOM, R.J. and KIM, J.J., 2005. Effect Sizes for Research: A Broad Practical Approach. Lawrence Earlbaum Associates.Google Scholar
- GUÉHÉNEUC, Y.-G. and ANTONIOL, G., 2008. DeMIMA: A Multilayered Approach for Design Pattern Identification. IEEE Transacttions on Software Engineering (TSE) 34, 5, 667-684. Google ScholarDigital Library
- GUÉHÉNEUC, Y.-G., SAHRAOUI, H., and ZAIDI, F., 2004. Fingerprinting Design Patterns. In 11th Working Conference on Reverse Engineering (WCRE), 172-181. Google ScholarDigital Library
- GUÉHÉNEUC, Y.G. and HERVÉ, A.A., 2004. Recovering Binary Class Relationships: Putting Icing on the UML Cake. In 19th Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'04) ACM Press, 301--314. Google ScholarDigital Library
- GUO, Y., SEAMAN, C., ZAZWORKA, N., and SHULL, F., 2010. Domain-specific tailoring of code smells: an empirical study. In ACM/IEEE 32nd International Conference on Software Engineering (ICSE'10), 167-170. Google ScholarDigital Library
- GYIMÓTHY, T., FERENC, R., and SIKET, I., 2005. Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction. IEEE Transactions on Software Engineering (TSE) 31, 10 (October), 897-910. Google ScholarDigital Library
- ISO/IEC, 2001. ISO/IEC 9126. Software Engineering - Product Quality.Google Scholar
- JAAFAR, F., GUÉHÉNEUC, Y.-G., HAMEL, S., and F., K., 2013. Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness. In Working Conference on Reverse Engineering (WCRE'13), To appear.Google ScholarCross Ref
- JANES, A., SCOTTO, M., PEDRYCZ, W., RUSSO, B., STEFANOVIC, M., and SUCCI, G., 2006. Identification of defectprone classes in telecommunication software systems using design metrics. Information Sciences 177, 2 (December 15), 3711-3734. Google ScholarDigital Library
- KHOMH, F., DI PENTA, M., GUÉHÉNEUC, Y.-G., and ANTONIOL, G., 2011. An Exploratory Study of the Impact of Antipatterns on Class Change- and Fault-Proneness. Empirical Software Engineering (EMSE). Google ScholarDigital Library
- KHOMH, F., GUÉHÉNEUC, Y.-G., and ANTONIOL, G., 2009. Playing roles in design patterns: An empirical descriptive and analytic study. In 25th IEEE International Conference on Software Maintenance (ICSM 2009), Edmonton, AB, 83-92.Google ScholarCross Ref
- LANZA, M. and MARINESCU, R., 2006. Object-Oriented Metrics in Practice. Springer. Google ScholarDigital Library
- LI, W. and HENRY, S., 1993. Object-oriented metrics that predict maintainability. Journal of Systems and Software 23, 2, 111-122. Google ScholarDigital Library
- LI, W. and SHATNAWI, R., 2007. An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. Journal of Systems and Software 80, 7. Google ScholarDigital Library
- MÄNTYLÄ, M.V., VANHANEN, J., and LASSENIUS, C., 2004. Bad Smells - Humans as Code Critics. In International Conference on Software Maintenance (ICSM'04), 399-408. Google ScholarDigital Library
- MARINESCU, A., 2004. Detection Strategies: Metrics-Based Rules for Detecting Design Flaws. In 20th IEEE International Conference on Software Maintenance (ICSM 2004), 350-359. Google ScholarDigital Library
- MOHA, N., GUÉHÉNEUC, Y.-G., DUCHIEN, L., and MEUR, A.-F., 2010. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Transacttions on Software Engineering (TSE) 36, 2 (January 2010), 20-26. Google ScholarDigital Library
- OLAGUE, H., ETZKORN, L., GHOLSTON, S., and 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 Transactions on Software Engineering (TSE) 33, 6 (June), 402-419. Google ScholarDigital Library
- OLBRICH, S.M., CRUZES, D.S., and SJOBERG, D.I.K., 2010. Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems. In IEEE International Conference on Sofftware Maintenance (ICSM'10), 1- 10. Google ScholarDigital Library
- PALOMBA, F., BAVOTA, G., DI PENTA, M., OLIVETO, R., DE LUCIA, A., and POSHYVANYK, D., 2013. Detecting Bad Smells in Source Code Using Change History Information. In Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering (ASE'13) (Palo Alto, CA, November 11-15 2013).Google ScholarDigital Library
- POSNETT, D., BIRD, C., and DÉVANBU, P., 2011. An Empirical Study on the Influence of Pattern Roles on Change-Proneness. Empirical Software Engineering (EMSE) 16, 3 (June 2011), 396- 423. Google ScholarDigital Library
- ROMANO, D., RAILA, P., PINZGER, M., and F., K., 2012. Analyzing the Impact of Antipatterns on Change-Proneness Using Fine-Grained Source Code Changes. In 19th Working Conference on Reverse Engineering (WCRE'12), 437-446. Google ScholarDigital Library
- ROSS, S., 2009. Introduction to Probability and Statistics for Engineers and Scientists. Elsevier Academic Press.Google Scholar
- SHATNAWI, R., 2008. The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process. Systems and Software 81, 11 (November), 1868-1882. Google ScholarDigital Library
- SHESKIN, D.D., 2000. Handbook of Parametric and Nonparametric Statistical Procedures. Chapman & Hall/CRC.Google Scholar
- SINGH, Y., ARVINDER, K., and MALHOTRA, R., 2010. Empirical validation of object-oriented metrics for predicting fault proneness models. Software Quality 18, 1, 3-35. Google ScholarDigital Library
- SUBRAMANYAM, R. and KRISHNAN, M.S., 2003. Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects. IEEE Transactions on Software Engineering (TSE) 29, 4 (April), 297-310. Google ScholarDigital Library
- SUCCI, G., PEDRYCZ, W., STEFANOVIC, M., and MILLER, J., 2003. Practical assessment of the models for identification of defect-prone classes in object-oriented commercial systems using design metrics. Systems and Software 65, 1 (January 15), 1-12. Google ScholarDigital Library
- TANG, M.-H., KAO, M.-H., and CHEN, M.-H., 1999. An empirical study on object-oriented metrics. In 6th International Software Metrics Symposium (METRICS'99), 242-249. Google ScholarDigital Library
- YAMASHITA, A. and COUNSELL, S., 2013. Code smells as system-level indicators of maintainability: An empirical study. Journal of Systems and Software 86, 2639-2653.Google ScholarCross Ref
- YAMASHITA, A. and MOONEN, L., 2013. To what extent can maintenance problems be predicted by code smell detection? – An empirical study. Information and Software Technology 55, 2223- 2242. Google ScholarDigital Library
- YU, P., SYSTA, T., and MULLER, H., 2002. Predicting faultproneness using OO metrics. An industrial case study. In 6th European Conference on Software Maintenance and Reengineering (CSMR'02), 99-107. Google ScholarDigital Library
- ZHANG, C. and BUDGEN, D., 2011. What do we Know about the Effectiveness of Software Design Patterns? IEEE Transacttions on Software Engineering (TSE) 99(July). Google ScholarDigital Library
- ZHOU, Y. and LEUNG, H., 2006. Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults. IEEE Transacttions on Software Engineering (TSE) 32, 10 (October), 771-789. Google ScholarDigital Library
Index Terms
- Domain matters: bringing further evidence of the relationships among anti-patterns, application domains, and quality-related metrics in Java mobile apps
Recommendations
Analyzing software evolution and quality by extracting Asynchrony change patterns
An empirical study to identify the more risky part of code in software systems.Cloned files that follow Asynchrony change patterns are more fault-prone.Anti-patterns following Asynchrony change pattern are up to five times faultier. Change patterns ...
Quality Analysis of Object Oriented Cohesion Metrics
QUATIC '10: Proceedings of the 2010 Seventh International Conference on the Quality of Information and Communications TechnologyNumerous class cohesion metrics can be found in the literature. However, they end up capturing different aspects of cohesion. Which metric is best suited for a given situation is always a critical question. This work focuses on exploring the strengths ...
On the relationships among three software metrics
Proceedings of the 1981 ACM workshop/symposium on Measurement and evaluation of software qualityAutomatable metrics of software quality appear to have numerous advantages in the design, construction and maintenance of software systems. While numerous such metrics have been defined, and several of them have been validated on actual systems, ...
Comments