Sonar (software quality)
Encyclopedia
Sonar is an open source
software quality
platform. Sonar uses various static code analysis
tools such as Checkstyle
, PMD
, FindBugs
, Clover to extract software metrics, which then can be used to improve software quality.
under testing tools
category. Featured in continuous integration tools. Used by the Andalusian Autonomous Government
, eXo Platform
, Apache Software Foundation
, Marvelution.
Best Sonar Plugins.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
software quality
Software quality
In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...
platform. Sonar uses various static code analysis
Static code analysis
Static program analysis is the analysis of computer software that is performed without actually executing programs built from that software In most cases the analysis is performed on some version of the source code and in the other cases some form of the object code...
tools such as Checkstyle
Checkstyle
Checkstyle is a static code analysis tool used in software development for checking if Java source code complies with coding rules.- Advantages and limits :...
, PMD
PMD (software)
PMD is a static ruleset based Java source code analyzer that identifies potential problems like:* Possible bugs - Empty try/catch/finally/switch blocks.* Dead code - Unused local variables, parameters and private methods....
, FindBugs
FindBugs
FindBugs is an open source program created by Bill Pugh and David Hovemeyer which looks for bugs in Java code. It uses static analysis to identify hundreds of different potential types of errors in Java programs. FindBugs operates on Java bytecode, rather than source code. The software is...
, Clover to extract software metrics, which then can be used to improve software quality.
Features
- Offers reports on duplicated codeDuplicate codeDuplicate code is a computer programming term for a sequence of source code that occurs more than once, either within a program or across different programs owned or maintained by the same entity. Duplicate code is generally considered undesirable for a number of reasons...
, coding standardsProgramming styleProgramming style is a set of rules or guidelines used when writing the source code for a computer program. It is often claimed that following a particular programming style will help programmers to read and understand source code conforming to the style, and help to avoid introducing errors.A...
, unit tests, code coverageCode coverageCode coverage is a measure used in software testing. It describes the degree to which the source code of a program has been tested. It is a form of testing that inspects the code directly and is therefore a form of white box testing....
, complex codeCyclomatic complexityCyclomatic complexity is a software metric . It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. It directly measures the number of linearly independent paths through a program's source code...
, potential bugsDefensive programmingDefensive programming is a form of defensive design intended to ensure the continuing function of a piece of software in spite of unforeseeable usage of said software. The idea can be viewed as reducing or eliminating the prospect of Murphy's Law having effect...
, commentsComment (computer programming)In computer programming, a comment is a programming language construct used to embed programmer-readable annotations in the source code of a computer program. Those annotations are potentially significant to programmers but typically ignorable to compilers and interpreters. Comments are usually...
and design and architectureSoftware designSoftware design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...
. - Primary supported language is JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
. Other languages are supported with extensions. Today, several open source and commercial extensions can cover the languages C, PHP , Flex, Groovy, JavaScript, PL / SQL, COBOL and Visual Basic 6. - It integrates with MavenApache MavenMaven is a build automation and software comprehension tool. While primarily used for Java programming, it can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven serves a similar purpose to the Apache Ant tool, but it is based on different concepts and...
, AntApache AntApache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....
and continuous integrationContinuous integrationIn software engineering, continuous integration implements continuous processes of applying quality control — small pieces of effort, applied frequently...
tools (Atlassian BambooBamboo (software)Bamboo is a continuous integration server from Atlassian, the makers of JIRA, Confluence and Crowd.Bamboo is free for philanthropic and open-source projects. Commercial organizations are charged based on the number of build agents needed...
, JenkinsJenkins (software)Jenkins, previously known as Hudson, is an open source continuous integration tool written in Java. The project renamed itself after a dispute with Oracle who claims the right to trademark the Hudson name and has applied for such a trademark as of December 2010...
, HudsonHudson (software)Hudson is a continuous integration tool written in Java, which runs in a servlet container, such as Apache Tomcat or the GlassFish application server. It supports SCM tools including CVS, Subversion, Git and Clearcase and can execute Apache Ant and Apache Maven based projects, as well as arbitrary...
). - Expandable with the use of plugins.
- Design and Architecture Metrics.
- Implements SQALESQALESQALE is a method to support the evaluation of a software application source code. It is a generic method, independent of the language and source code analysis tools, licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported license...
methodology.
Reception
Received the Jolt AwardsJolt Awards
The Jolt Awards are awards in the software industry.Since 1990, the Dr. Dobb's Jolt Product Excellence Awards have been presented annually to showcase products that have "jolted" the industry with their significance and made the task of creating software faster, easier, and more efficient.Jolt Cola...
under testing tools
Test automation
Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions...
category. Featured in continuous integration tools. Used by the Andalusian Autonomous Government
Andalusian Autonomous Government
The Andalusian Autonomous Government is the regional government body of Andalusia, one of the 17 autonomous communities which make up Spain...
, eXo Platform
EXo Platform
eXo Platform is an open source, open standard, Enterprise-scale portal, content management system and WebOS for Microsoft Windows and Unix-like operating systems. The eXo Platform project started in 2003 as an implementation of the first portlet API . eXo Platform is developed using Java technology...
, Apache Software Foundation
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...
, Marvelution.
Best Sonar Plugins.