AbstractThis paper presents a software quality support tool, a Java source code evaluator and a code profiler based on computational intelligence techniques. It is Java prototype software developed by AI Group [1] from the Research Laboratories at Universidad de Palermo: an Intelligent Java Analyzer (in Spanish: Analizador Java Inteligente, AJI). It represents a new approach to evaluate and identify inaccurate source code usage and transitively, the software product itself. The aim of this project is to provide the software development industry with a new tool to increase software quality by extending the value of source code metrics through computational intelligence. KeywordsSoftware metrics, artificial intelligence, neural networks, clustering algorithms, expert systems I. INTRODUCTION N order to show that a computer program is mature and free of bugs, and that Software Requirements Specifications have been met (SRS), it will be necessary to have a strategy to support this process. The goal for any software project is to accomplish the above mentioned requirements, which means to get the best quality. Historically, the word “quality” has been adapted and has evolved together with the different technologies to which it has been applied. In the thirties, the metallurgical industry defined quality as a compliance to requirements; any deviation from such requirements meant loss of quality or limited trust in product quality. The consequence of this was lower costs and less rework [2]. In the fifties, quality costs increased exponentially. Therefore, specifications including tolerance (i.e., a deviation from perfection) were proposed. Inspections ensured that the product fell within a predefined tolerance. The goal of such inspections was to avoid corrections through the identification of product deviations from the original specification [3]. The creation of software does not imply serial production costs, but it is an intensive activity [4]. It requires the interaction and coordination of several specialists during all development stages. In the following subsections, different perspectives of software quality are presented. Martín Agüero is with the Universidad de Palermo, Argentina. e-mail: aguero.martin@gmail.com A. Software Quality It can be said that, as an adaptation and extension of classical definitions, the software industry focuses on the following principles: 1. Software requirements are the quality metric fundamental. Lack of compliance with requirements is a quality failure. 2. Standards establish development criteria. Absence of standards means, in many cases, low quality [5]. 3. Indirect measures (e.g. usability, maintainability, etc.) and direct measures (e.g. lines of code). Software Quality Assurance (SQA) are a way of encompassing the software engineering processes. It mainly consists of monitoring and developing information and administration tasks [6]. Inspection and metrics make software projects successful due to their excellent quality control results. Even though intensive software quality control increases costs, it is an activity with high Return On Investment (ROI). Empiric verification without data indicators and measures make theories and propositions remain abstract [7]. B. Strategies for Software Quality Assurance Estimation Metrics: Emerged as a reaction to omissions and deficiencies in the Lines of Code (LOC), an estimation technique used at the beginning of the eighties. Albrecht presented through IEEE a concept called Function Points (FP), showing that it was not technically reliable to measure LOC. The following are some useful approaches that were devised afterward to improve QA. OO Languages: The development of languages in object paradigms reduced the bug levels in procedural languages [8]. But software always have defects such as: 1. A very ambitious scheduling. 2. Complex models. 3. Unbalanced module sizes. 4. Subtle code errors even when testing is over. Strategic Methodologies: Total Quality Management (TQM) success is only possible when there is a strong management commitment. It depends on the application of effective quality programs and technical revisions. They must be implemented before the application of Total Quality Management to the business model. Companies that do not apply quality metrics and decide to obtain a marginal profit increase by using TQM as a slogan will rarely achieve a successful outcome [8]. Test Case Tools: Test case tools are popular. They are able to identify and isolate missed and failed tracks of code. Nevertheless, a level of program execution of 90% does not mean a 90% bug–free program. It has been stated that less than 30% of defects are found by means of unit testing. Furthermore, test cases do not guarantee correctness since Artificial Intelligence for Software Quality Improvement Martín Agüero, Franco Madou, Gabriela Esperón, Daniela López De Luise I World Academy of Science, Engineering and Technology International Journal of Computer and Information Engineering Vol:4, No:3, 2010 399 International Scholarly and Scientific Research & Innovation 4(3) 2010 scholar.waset.org/1307-6892/10988 International Science Index, Computer and Information Engineering Vol:4, No:3, 2010 waset.org/Publication/10988