Abstract
This article presents the application of a machine learning technique to a software code analysis tool. This tool builds a base of elementary and relevant program structures, acquired from the analysis of a primitive set of programs of good programming style. These program structures are compared to new programs to determine the quality of the latter. In this paper we stress the framework of the tool and discuss the critical details of its modules.
The learning technique has been developed to use intensively a specific knowledge base in order to acquire the base of relevant program structures. We present problems that arise due to the necessity of using knowledge which is non-monotonic in nature.
Particular issues will be highlighted by the analysis of requests written in the SQL language.
G. Fouqué is currently pursuing post-doctoral studies at the University of Ottawa with the Ottawa Machine Learning Group
a part of this research has been made in the Inference and Learning Group, LRI, Université Paris XI
Chapter PDF
References
Bailin, S.C. & Gattis, R.H. & Truszkowski, W. 1991. A learning software engineering environment. 6th knowledge-based software engineering conference. pp 251–263.
Dershowitz, N. 1986. Programming by analogy. Machine learning 2: an artificial intelligence approach. Michalski R.S., Carbonel J.G., Mitchell T.M., Morgan Kaufmann eds, pp 395–423.
Geldrez, C. & Matwin, S. & Morin, J. & Probert, R.L. 1990. An application of EBL to protocol conformance testing. IEEE Expert. October 1990. pp 45–60.
Halstead, M. 1978. Elements of software engineering. Elsevier eds.
Harandi, M.T. & Lee, H. 1991. Acquiring software design schemas: a machine learning perspective. 6th knowledge-based software engineering conference, pp 239–250.
Kodratoff, Y. & Ganascia, J.G. 1986. Improving the generalization step in learning. Machine learning 2: an artificial intelligence approach. Michalski R.S., Carbonel J.G., Mitchell T.M., Morgan Kaufmann eds, pp 215–244.
Laurent, J.P. & Fouet, J.M. 1982. Outillage de manipulation de programmes fondé sur une représentation arborescente. Premier colloque de génie logiciel. pp 105–118.
Maarek, Y.S. & Berry, D.M. & Kaiser, G.E. 1991. An Information Retrieval Approach For Automatically Constructing Software Libraries. IEEE Transactions on Software Engineering. Vol 17, N 8. pp 800–813.
Michalski, R.S. 1983. A theory and methodology of inductive learning. Machine learning 1: an artificial intelligence approach. Michalski R.S., Carbonel J.G., Mitchell T.M., Morgan Kaufmann eds, pp 1–19.
Ning, J. & Harandi, M.J. 1989. An experiment in automatic program analysis. Proc AAAI symp artificial intelligence and software engineering. AAAI Press eds. pp 51–55.
Prieto-Diaz, R. 1991. Implementing Faceted Classification for Software Reuse. Communication of the ACM. Vol 34, N 5. pp 88–97.
Saporta, G. 1990. Probabilités, analyse des données et statistiques. Editions technip.
Utgoff, P.E. 1986. Shift of bias of inductive concept learning. Machine learning 2: an artificial intelligence approach. Michalski R.S., Carbonel J.G., Mitchell T.M., Morgan Kaufmann eds, pp 107–148.
Vrain, C. 1990. OGUST: a system that learns using domain properties expressed as theorems. Machine learning 3, an artificial intelligence approach. Kodratoff, Y. & Michalski, R.S. Morgan Kaufmann eds. pp 360–382.
Webb, J. 1988. Static analysis: an introduction and example. Journées Internationales: le génie logiciel et ses applications. pp 523–539.
Wills, L.M. 1990. Automated program recognition: a feasibility demonstration. Artificial intelligence N∘45. pp 113–171.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fouqué, G., Vrain, C. (1992). Building a tool for software code analysis a machine learning approach. In: Loucopoulos, P. (eds) Advanced Information Systems Engineering. CAiSE 1992. Lecture Notes in Computer Science, vol 593. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0035137
Download citation
DOI: https://doi.org/10.1007/BFb0035137
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55481-3
Online ISBN: 978-3-540-47099-1
eBook Packages: Springer Book Archive