Skip to main content

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 422))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://octochess.org.

  2. 2.

    http://stockfishchess.org.

  3. 3.

    http://metrixplusplus.sourceforge.net.

References

  1. Bertolino A (2007) Software testing research: achievements, challenges, dreams. In: 2007 future of software engineering. IEEE Computer Society, pp. 85–103

    Google Scholar 

  2. Spivey JM (1989) The z notation: a reference manual. Prentice-Hall International Series in Computer Science

    Google Scholar 

  3. Zhu H, Hall PAV, May JHR (1997) Software unit test coverage and adequacy. J ACM Comput 29(4):366–427

    Google Scholar 

  4. 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

    Google Scholar 

  5. Halstead MH (1977) Elements of software science (Operating and Programming Systems Series). Elsevier Science Inc, Amsterdam

    Google Scholar 

  6. McCabe TJ (1976) A complexity measure. In: Proceedings of the 2nd international conference on software engineering, ICSE ’76. IEEE Computer Society Press, p 407

    Google Scholar 

  7. Fenton N, Bieman J (1997) Software metrics: a rigorous and practical approach. CRC Press, Boca Raton, FL

    Google Scholar 

  8. 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

    Article  Google Scholar 

  9. 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

    Google Scholar 

  10. Pedrycz W, Succi G, Sillitti A, Iljazi J (2015) Data description: a general framework of information granules. Knowl Based Syst 80:98–108 (Elsevier)

    Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. 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

    Article  Google Scholar 

  13. 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

    Google Scholar 

  14. Catal C, Diri B (2009) A systematic review of software fault prediction studies. Exp Syst Appl 36(4):7346–7354

    Google Scholar 

  15. 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

    Google Scholar 

  16. 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

    Google Scholar 

  17. 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

    Google Scholar 

  18. 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

    Google Scholar 

  19. 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

    Google Scholar 

  20. Brito M, Felizardo KR, Souza P, Souza S (2010), Concurrent software testing: a systematic review. In: Testing Software and Systems: Short Papers, p 79

    Google Scholar 

  21. 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

    Google Scholar 

  22. Grottke M, Trivedi KS (2007) Fighting bugs: remove, retry, replicate, and rejuvenate. IEEE Comp 40(2):107–109

    Google Scholar 

  23. Menzies T, Caglayan B, Kocaguneli E, Krall J, Peters F, Turhan B (2012) The promise repository of empirical software engineering data

    Google Scholar 

  24. Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Soft Eng 20(6):476–493

    Google Scholar 

  25. Di Bella E, Sillitti A, Succi G (1994) A multivariate classification of open source developers. IEEE Trans Soft Eng 221:72–83

    Google Scholar 

  26. Scotto M, Sillitti A, Succi G, Vernazza T (2006) A non-invasive approach to product metrics collection. J Syst Arch 52(11):668–675

    Google Scholar 

  27. 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

    Google Scholar 

  28. 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

    Google Scholar 

  29. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paolo Ciancarini .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics