Abstract
As physical limits began to negate the assumption known as Moore’s law, chip manufacturers started focusing on multicore architectures as the main solution to improve the processing power in modern computers. Today, multicore CPUs are commonly found in servers, PCs, smartphone, cars, airplanes, and home appliances. As this happens, more and more programs are designed with some degree of parallelism to take advantage of these implicitly concurrent architectures. In this context, new challenges are presented to software engineers. For example, software validation becomes much more expensive (since testing concurrency is difficult) and strategies such as bug prediction could be used to better focus the effort during the development process. However, most of the existing bug prediction approaches have been designed with sequential programs in mind. In this paper, we propose a novel set of concurrency-related source code metrics to be used as the basis for bug prediction methods; we discuss our approach with respect to the existing state of the art, and we outline the research challenges that have to be addressed to realize our goal.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bertolino A (2007) Software testing research: achievements, challenges, dreams. In: 2007 future of software engineering. IEEE Computer Society, pp. 85–103
Spivey JM (1989) The z notation: a reference manual. Prentice-Hall International Series in Computer Science
Zhu H, Hall PAV, May JHR (1997) Software unit test coverage and adequacy. J ACM Comput 29(4):366–427
Lu S, Park S, Seo E, Zhou Y (2008) Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: ACM Sigplan Notices, vol 43, ACM, pp 329–339
Halstead MH (1977) Elements of software science (Operating and Programming Systems Series). Elsevier Science Inc, Amsterdam
McCabe TJ (1976) A complexity measure. In: Proceedings of the 2nd international conference on software engineering, ICSE ’76. IEEE Computer Society Press, p 407
Fenton N, Bieman J (1997) Software metrics: a rigorous and practical approach. CRC Press, Boca Raton, FL
Fronza I, Sillitti A, Succi G, Vlasenko J, Terho M (2013) Failure prediction based on log files using random indexing and support vector machines. J Syst Soft Elsevier 86(1):2–11
Coman I, Sillitti A, Succi G (2008) Investigating the usefulness of pair-programming in a mature agile team. In: 9th international conference on extreme programming and agile processes in software engineering (XP2008), Limerick, Ireland, 10–14 June 2008
Pedrycz W, Succi G, Sillitti A, Iljazi J (2015) Data description: a general framework of information granules. Knowl Based Syst 80:98–108 (Elsevier)
Coman I, Robillard PN, Sillitti A, Succi G (2014) Cooperation, collaboration and pair-programming: field studies on back-up behavior. J Syst Soft 91(5):124–134 (Elsevier)
Di Bella E, Fronza I, Phaphoom N, Sillitti A, Succi G, Vlasenko J (2013) Pair programming and software defects—a large, industrial case study. IEEE Trans Soft Eng 39(7):930–953
Fronza I, Sillitti A, Succi G (2009) An interpretation of the results of the analysis of pair programming during novices integration in a team. In: 3rd international symposium on empirical software engineering and measurement (ESEM 2009), Lake Buena Vista, FL, USA, 15–16 Oct 2009
Catal C, Diri B (2009) A systematic review of software fault prediction studies. Exp Syst Appl 36(4):7346–7354
D’Ambros M, Lanza M, Robbes R (2010) An extensive comparison of bug prediction approaches. In: 2010 7th IEEE working conference on mining software repositories (MSR), IEEE, pp 31–41
Carrozza G, Cotroneo D, Natella R, Pietrantuono R, Russo S (2013) Analysis and prediction of mandelbugs in an industrial software system. In: 2013 IEEE sixth international conference on Software testing, verification and validation (ICST), IEEE, pp 262–271
Fonseca P, Li C, Rodrigues R (2011) Finding complex concurrency bugs in large multi-threaded applications. In: Proceedings of the sixth conference on computer systems, ACM, pp 215–228
Shihab E, Mockus A, Kamei Y, Adams B, Hassan AE (2011) High-impact defects: a study of breakage and surprise defects. In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering. ACM, pp 300–310
Zhou B, Neamtiu I, Gupta R (2015) Predicting concurrency bugs: how many, what kind and where are they? In: Proceedings of the 19th international conference on evaluation and assessment in software engineering, ACM, p 6
Brito M, Felizardo KR, Souza P, Souza S (2010), Concurrent software testing: a systematic review. In: Testing Software and Systems: Short Papers, p 79
Souza SR, Brito MA, Silva RA, Souza PS, Zaluska E (2011) Research in concurrent software testing: a systematic review. In: Proceedings of the workshop on parallel and distributed systems: testing, analysis, and debugging, ACM, pp 1–5
Grottke M, Trivedi KS (2007) Fighting bugs: remove, retry, replicate, and rejuvenate. IEEE Comp 40(2):107–109
Menzies T, Caglayan B, Kocaguneli E, Krall J, Peters F, Turhan B (2012) The promise repository of empirical software engineering data
Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Soft Eng 20(6):476–493
Di Bella E, Sillitti A, Succi G (1994) A multivariate classification of open source developers. IEEE Trans Soft Eng 221:72–83
Scotto M, Sillitti A, Succi G, Vernazza T (2006) A non-invasive approach to product metrics collection. J Syst Arch 52(11):668–675
Scotto M, Sillitti A, Succi G, Vernazza T (2004) A relational approach to software metrics. In: 19th ACM symposium on applied computing (SAC 2004), Nicosia, Cyprus, 14–17 Mar 2004
Janes A, Piatov D, Sillitti A, Succi G (2013) How to calculate software metrics for multiple languages using open source parsers. Springer, Berlin, pp 264–270
Terceiro A, Costa J, Miranda J, Meirelles P, Rios LR, Almeida L, Chavez C, Kon F (2010) Analizo: an extensible multi-language source code analysis and visualization toolkit. In: Brazilian conference on software: theory and practice (Tools Session)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Ciancarini, P., Poggi, F., Rossi, D., Sillitti, A. (2016). Improving Bug Predictions in Multicore Cyber-Physical Systems. In: Ciancarini, P., Sillitti, A., Succi, G., Messina, A. (eds) Proceedings of 4th International Conference in Software Engineering for Defence Applications. Advances in Intelligent Systems and Computing, vol 422. Springer, Cham. https://doi.org/10.1007/978-3-319-27896-4_24
Download citation
DOI: https://doi.org/10.1007/978-3-319-27896-4_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-27894-0
Online ISBN: 978-3-319-27896-4
eBook Packages: EngineeringEngineering (R0)