in Python and Java projects, since this type of issues
directly impacts the maintainability and reliability of
the source code.
The study shows that junior developers have dif-
ficulties handling output operations both in Java and
Python. Moreover, the results showed that bad prac-
tice issues in Java are often associated to security is-
sues, while bad practice issues in Python are often
associated to issues related to high maintainability
costs.
As future work, we plan to further explore FCA-
based data mining and static analysis tools in software
projects in order to analyze the error-prone behavior
of junior developers and to find ways in which it can
be improved regarding other categories of issues as
well, such as ”brain-overload”.
REFERENCES
Avgeriou, P. and o. (2021). An Overview and Compari-
son of Technical Debt Measurement Tools. IEEE Soft-
ware, PP.
Baldassarre, M. T., Lenarduzzi, V., Romano, S., and Saari-
maki, N. (2020). On the diffuseness of technical debt
items and accuracy of remediation time when using
SonarQube. IST, 128:106377.
Boehm, B. and Basili, V. R. (2001). Software defect reduc-
tion top 10 list. Computer, 34(1):135–137.
Boehm, B. and Papaccio, P. N. (1988). Understanding and
controlling software costs. IEEE Transactions on Soft-
ware Engineering, 14(10):1462–1477.
Cristea, D., S¸otropa, D., Molnar, A.-J., and Motogna, S.
(2021). On the use of FCA models in static analysis
tools to detect common errors in programming. In
Proc. of ICCS, pages 3–18.
Dekel, U. (2002). Applications of Concept Lattices to Code
Inspection and Review.
Duquenne, V. (2007). What can lattices do for teaching
math. and education? volume 331.
Ganter, B. and Wille, R. (1999). Formal Concept Analysis -
Mathematical Foundations. Springer.
Gebser, M., Kaminski, R., Kaufmann, B., and Schaub, T.
(2012). Answer Set Solving in Practice. SLAIML.
Godin, R., Mineau, G., Missaoui, R., St-Germain, M., and
Faraj, N. (1995). Applying Concept Formation Meth-
ods to Software Reuse. IJSEKE, 5:119–142.
Khaund, A., Sharma, A. M., Tiwari, A., Garg, S., and
Kailasam, S. (2023). RD-FCA: A resilient distributed
framework for formal concept analysis. J. Parallel
Distributed Comput., 179:104710.
Kis, L. L., Sacarea, C., and Troanca, D. (2016). FCA Tools
Bundle - A Tool that Enables Dyadic and Triadic Con-
ceptual Navigation. In Proc. of FCA4AI. CEUR.
Lehmann, F. and Wille, R. (1995). A triadic approach to
formal concept analysis. In Proc. of ICCS. Springer.
Lenarduzzi, V., Lomio, F., Huttunen, H., and Taibi, D.
(2020). Are SonarQube Rules Inducing Bugs? In
Proc. of SANER, pages 501–511.
Lenarduzzi, V., Mandi
´
c, V., Katin, A., and Taibi, D.
(2020a). How long do Junior Developers take to Re-
move Technical Debt Items? In Proc. of ESEM.
Lenarduzzi, V., Saarimaki, N., and Taibi, D. (2020b). Some
SonarQube issues have a significant but small effect
on faults and changes. A large-scale empirical study.
Journal of Systems and Software, 170:110750.
Martin, R. C. (2008). Clean Code: A Handbook of Agile
Software Craftsmanship. Prentice Hall PTR, USA.
McConnell, S. (2004). Code Complete, Second Edition. Mi-
crosoft Press, USA.
Molnar, A. and Motogna, S. (2020a). Longitudinal evalua-
tion of open-source software maintainability. In Proc.
of ENASE, pages 120–131. INSTICC, SciTePress.
Molnar, A.-J. (2024). Open Data Package. https://doi.org/
10.6084/m9.figshare.25270243.v1.
Molnar, A.-J. and Motogna, S. (2020b). Long-Term Evalu-
ation of Technical Debt in Open-Source Software. In
ESEM 2020. ACM.
Murillo, M. I., Lopez, G., Spanola, R., Guzman, J., Rios,
N., and Pacheco, A. (2023). Identification and Man-
agement of Technical Debt: A Systematic Mapping
Study Update. JSERD, 11(1):8:1 – 8:20.
Paul Ralph (ed.) (2021). ACM Sigsoft Empirical Standards
for Software Engineering Research, version 0.2.0.
Pl
¨
osch, R. and Neum
¨
uller, C. (2020). Does Static Analysis
Help Software Engineering Students? In ICEIT.
Poshyvanyk, D. and Marcus, A. (2007). Combining For-
mal Concept Analysis with Information Retrieval for
Concept Location in Source Code. In Proc. of ICPC.
Potassco (02024). Potassco, the Potsdam Answer Set Solv-
ing Collection.
Priss, U. (2013). Using FCA to analyse how students learn
to program. In Proc. of ICFCA, volume 7880 of
LNCS, pages 216–227. Springer.
Priss, U. (2020). A preliminary semiotic-conceptual analy-
sis of a learning management system. Procedia Com-
puter Science, 176:3702–3709.
Rudolph, S., Sacarea, C., and Troanca, D. (2015a). Mem-
bership Constraints in Formal Concept Analysis. In
Proc. of IJCAI, pages 3186–3192. AAAI Press.
Rudolph, S., Sacarea, C., and Troanca, D. (2015b). Towards
a Navigation Paradigm for Triadic Concepts. In Proc.
of ICFCA, volume 9113 of LNCS. Springer.
Runeson, P. and H
¨
ost, M. (2008). Guidelines for conduct-
ing and reporting case study research in software en-
gineering. ESE, 14:131–164.
Slezak, D. (2012). Rough Sets and FCA - Scalability Chal-
lenges. In Proc. of ICFCA, volume 7278 of LNCS.
SonarSource (2024). Sonar source static code analysis.
Tan, J., Feitosa, D., Avgeriou, P., and Lungu, M. (2021).
Evolution of technical debt remediation in Python: A
case study on the Apache Software Ecosystem. Jour-
nal of Software: Evolution and Process, 33(4).
Walkinshaw, N. and Minku, L. (2018). Are 20% of files
responsible for 80% of defects? In Proc. of ESEM.
Uncovering Bad Practices in Junior Developer Projects Using Static Analysis and Formal Concept Analysis
759