Nothing Special   »   [go: up one dir, main page]

Skip to main content

On the Use of FCA Models in Static Analysis Tools to Detect Common Errors in Programming

  • Conference paper
  • First Online:
Graph-Based Representation and Reasoning (ICCS 2021)

Abstract

Static code analysis is widely used to detect code quality issues before execution. Thus, it can provide information that is important for improving programming skills. Such tools have been successfully used in teaching programming courses. In this paper we present algorithms for combining Formal Concept Analysis (FCA) with Pylint, a static code analysis tool, in order to detect and assess behavioral patterns in students’ programming styles. We design a generalized framework that can be subsequently used to analyze any category/subset of errors. We apply the approach for detecting common errors related to design by considering two scenarios that tackle object oriented design and increased code complexity. We argue how the results can be used to understand common mistakes and to improve the teaching content and methods.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 64.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 84.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

Similar content being viewed by others

Notes

  1. 1.

    https://pypi.org/project/pylint/.

References

  1. Bey, A., Jermann, P., Dillenbourg, P.: A comparison between two automatic assessment approaches for programming: an empirical study on MOOCs. J. Educ. Technol. Soc. 21(2), 259–272 (2018)

    Google Scholar 

  2. Cellier, P., Ducassé, M., Ferré, S., Ridoux, O.: Formal concept analysis enhances fault localization in software. In: Medina, R., Obiedkov, S. (eds.) ICFCA 2008. LNCS (LNAI), vol. 4933, pp. 273–288. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78137-0_20

    Chapter  MATH  Google Scholar 

  3. Dekel, U.: Applications of concept lattices to code inspection and review, December 2002

    Google Scholar 

  4. Duquenne, V.: What can lattices do for teaching math. and education? vol. 331, January 2007

    Google Scholar 

  5. Düwel, S., Hesse, W.: Bridging the gap between use case analysis and class structure design by formal concept analysis (2001)

    Google Scholar 

  6. Edwards, S.H., Kandru, N., Rajagopal, M.B.: Investigating static analysis errors in student java programs. In: Proceedings of ICER 2017, pp. 65–73 (2017)

    Google Scholar 

  7. Ganter, B., Wille, R.: Formal Concept Analysis, Mathematical Foundation. Springer, Heidelberg (1999). https://doi.org/10.1007/978-3-642-59830-2

    Book  MATH  Google Scholar 

  8. Godin, R., Mineau, G., Missaoui, R., St-Germain, M., Faraj, N.: Applying concept formation methods to software reuse. Int. J. Softw. Eng. Knowl. Eng. 5, 119–142 (1995)

    Article  Google Scholar 

  9. Kis, L., Sacarea, C., Troanca, D.: FCA tools bundle-a tool that enables dyadic and triadic conceptual navigation. In: Proceedings of FCA4AI@ ECAI 2016, pp. 42–50 (2016)

    Google Scholar 

  10. Lajis, A., Baharudin, S.: A review of techniques in automatic programming assessment for practical skill test. J. Telecommun. Electron. Comput. Eng. 10(2), 109–113 (2018)

    Google Scholar 

  11. Lehmann, F., Wille, R.: A triadic approach to formal concept analysis. In: Ellis, G., Levinson, R., Rich, W., Sowa, J.F. (eds.) ICCS-ConceptStruct 1995. LNCS, vol. 954, pp. 32–43. Springer, Heidelberg (1995). https://doi.org/10.1007/3-540-60161-9_27

    Chapter  Google Scholar 

  12. McConnell, S.: Code Complete, 2nd edn. Microsoft Press (2004)

    Google Scholar 

  13. Molnar, A., Motogna, S., Vlad, C.: Using static analysis tools to assist student project evaluation. In: Proceedings of EASEAI@ESEC/SIGSOFT FSE (2020)

    Google Scholar 

  14. Motogna, S., Cristea, D., Sotropa, D., Molnar, A.J.: Formal concept analysis model for static code analysis. Carpathian J. Math. 37(3), 49–58 (2021). Special issue dedicated to the 60th anniversary of University of Baia Mare, Print Edition: ISSN 1584 - 2851. Online Edition: ISSN 1843 - 4401

    Google Scholar 

  15. Poshyvanyk, D., Marcus, A.: Combining formal concept analysis with information retrieval for concept location in source code. In: Proceedings of ICPC, pp. 37–48 (2007)

    Google Scholar 

  16. Priss, U.: Using FCA to analyse how students learn to program. In: Cellier, P., Distel, F., Ganter, B. (eds.) ICFCA 2013. LNCS (LNAI), vol. 7880, pp. 216–227. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-38317-5_14

    Chapter  Google Scholar 

  17. Priss, U.: A preliminary semiotic-conceptual analysis of a learning management system. Proc. Comput. Sci. 176, 3702–3709 (2020)

    Article  Google Scholar 

  18. Pylint Documentation. http://pylint.pycqa.org/en/latest/user_guide/output.html. Accessed April 2021

  19. Rudolph, S., Sacarea, C., Troanca, D.: Membership constraints in formal concept analysis. In: Proceedings of IJCAI 2015, pp. 3186–3192. AAAI Press (2015)

    Google Scholar 

  20. Rudolph, S., Săcărea, C., Troancă, D.: Towards a navigation paradigm for triadic concepts. In: Baixeries, J., Sacarea, C., Ojeda-Aciego, M. (eds.) ICFCA 2015. LNCS (LNAI), vol. 9113, pp. 252–267. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19545-2_16

    Chapter  Google Scholar 

  21. Schleimer, S., Wilkerson, D.S., Aiken, A.: Winnowing: local algorithms for document fingerprinting. In: Proceedings of ACM SIGMOD, pp. 76–85 (2003)

    Google Scholar 

  22. Stanford MOSS Home. https://theory.stanford.edu/~aiken/moss/. Accessed April 2021

  23. Striewe, M., Goedicke, M.: A review of static analysis approaches for programming exercises. In: Kalz, M., Ras, E. (eds.) CAA 2014. CCIS, vol. 439, pp. 100–113. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08657-6_10

    Chapter  Google Scholar 

  24. Tilley, T., Cole, R., Becker, P., Eklund, P.: A survey of formal concept analysis support for software engineering activities. In: Ganter, B., Stumme, G., Wille, R. (eds.) Formal Concept Analysis. LNCS (LNAI), vol. 3626, pp. 250–271. Springer, Heidelberg (2005). https://doi.org/10.1007/11528784_13

    Chapter  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diana Cristea .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Cristea, D., Şotropa, D., Molnar, AJ., Motogna, S. (2021). On the Use of FCA Models in Static Analysis Tools to Detect Common Errors in Programming. In: Braun, T., Gehrke, M., Hanika, T., Hernandez, N. (eds) Graph-Based Representation and Reasoning. ICCS 2021. Lecture Notes in Computer Science(), vol 12879. Springer, Cham. https://doi.org/10.1007/978-3-030-86982-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-86982-3_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-86981-6

  • Online ISBN: 978-3-030-86982-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics