Rubén Soleto Buenvarón, Enrique Benito Domínguez, David ... · Estructura de Sonar 1....

Post on 18-Aug-2020

2 views 0 download

Transcript of Rubén Soleto Buenvarón, Enrique Benito Domínguez, David ... · Estructura de Sonar 1....

Rubén Soleto Buenvarón, Enrique Benito Domínguez, David Miranda Barrera y Julián Pérez Sampedro.

Índice

• - ¿Qué es Sonar?

• - Características

• - Funcionalidades

• - Utilidades

• - Caso práctico

• - Limitaciones y/o problemas encontrados

¿Qué es Sonar? y… ¿Para qué sirve?

• Plataforma de código abierto. (licencia

GNU) (It’s free!!!)

• Herramienta de auditoría y evaluación de proyectos software.

• Gestión de la calidad del código fuente de un proyecto.

• Depuración de código.

• Facilitar dichas tareas.

Características principales

• Multilenguaje (Java, C++, C#, COBOL, .NET, …)

• Interfaz personalizable

• Aporta test de prueba unitarios (cobertura)

• Provee seguridad: – Mecanismo de autenticación – Mecanismo de autorización – Ej: restringir acceso a recursos, permisos por grupos, login

al entrar a un proyecto.

Características principales II

• Maven y Ant -> generan un XML con la estructura y las depencencias de un proyecto para agilizar la compilación.

• Metodología SQALE -> evaluación y monitorización del código fuente de la forma más objetiva y precisa posible para gestionar la ‘Deuda técnica’ y prevenir problemas.

(Deuda técnica: consecuencias provocadas por un desarrollo apresurado de software o un despliegue descuidado de hardware.)

Estructura de Sonar

1. Analizadores de código -> escanean el código fuente en busca de errores, código repetido, cobertura, complejidad, etc.

2. Base de datos -> almacena datos de los análisis, la configuración y un historial de sucesos o eventos (MySQL, SQL server, Oracle)

VENTAJAS

• Depuración de código más sencilla.

• Aumento de la calidad del producto final.

• Aumento de la eficiencia en el trabajo.

• Apto para ámbitos empresariales y particulares.

VENTAJAS II

• Integrable en un IDE masivamente utilizado como es Eclipse.

• Multilenguaje.

• Facilidad de uso.

• Disponibilidad de plugins para aumentar su funcionalidad.

INCONVENIENTES

• Algunos plugins son de pago: SQALE (2700€/año), COBOL (7,500€/año), Developer Cockpit (7,000€/año)…

• Más información sobre plugins en

http://www.sonarsource.com/products/plugins • Para poder soportar algunos lenguajes es

necesario descargar un plugin.

• Acumulación de plugins y su mantenimiento.

Funcionalidad

• Inspección continua • Informes procesables • Perspectiva para desarrolladores • Monitorización de cambios recientes • Evaluación de la deuda técnica • Gestión del ciclo de vida de las aplicaciones • Soporte multitecnológico • Panel de accesibilidad • Seguridad

Inspección continua

• Enfoque holístico.

• Fases:

– Analizar código, informar y tomar medidas.

Fases inspección continua

• Descubrir tendencias de programación:

Fases de la inspección

• Identificar los defectos en las últimas modificaciones con criterios diferenciales

Fases de la inspección

• Enfoque individual con informes personalizados por usuario

Fases de la inspección

• Tomar el control sobre nuevas incidencias

Funcionalidad

• Informes procesables

Otras funcionalidades

• Reglas personalizadas de identificación de defectos

• Perspectiva de desarrollador

• Gestión del ciclo de vida de las aplicaciones

• Soporte multitecnológico

• Panel de accesibilidad

Otras funcionalidades

• Seguridad

Utilidades

• En esta parte vamos a dar a conocer una herramienta muy útil sobre todo para el rol de "Jefe de Desarrollo" ya que de un sólo vistazo da valiosa información de como de bien está escrito el código de un proyecto

• Controla el desarrollo implementado por los programadores de un equipo.

Utilidades

• 1. Analiza el código fuente generando informes.

• Sección Violations: Errores del código dividido en niveles de gravedad. En la siguiente imagen nos damos cuenta también que SONAR se apoya en 3 herramientas útiles:

»Pmd:

»Cpd:

»Findbugs :

PMD

• PMD es un conjunto de reglas estáticas del código fuente del analizador, que identifica problemas potenciales como:

• Posibles bugs: Vacío try / catch / finally / switch.

• Variables Deads: variables del código no utilizadas, variables locales, parámetros y métodos privados.

• Vaciar if / while.

• Excesivamente complicada expresiones innecesarias-if, bucles for que podría ser bucles while.

CPD

• Es el Detector Copy /Paste. Es un add-on para el PMD que utiliza el algoritmo de búsqueda de Rabin-Karp , es decir , cadena a buscar para encontrar código duplicado. CPD trabaja con Java, JSP, C, C + +, Fortran, PHP y el código C.

FindBugs

• FindBugs es un programa de tipo código abierto creado por William Pugh que busca errores en programas escritos en código Java.

• ¿Cómo detecta errores?: Utiliza análisis estático para identificar cientos de tipos de errores potenciales1 en programas Java.

Otras utilidades.

• Sonar también nos ofrece la posibilidad de configurar nuestras propias reglas para cada una de las tres tecnologías explicadas, en base a archivos de definición en XML.

• Si queremos ver que errores hemos cometido deberemos ir al apartado “Violations drilldown” donde podemos ir navegando por cada categoría hasta llegar a la clase donde se encuentra el error y ver el propio código con una explicación detallada de la violación cometida (Ver Foto).

Otras utilidades.

Otras utilidades.

• Sonar también nos ofrece la posibilidad de configurar nuestras propias reglas para cada una de las tres tecnologías explicadas, en base a archivos de definición en XML.

• Si queremos ver que errores hemos cometido deberemos ir al apartado “Violations drilldown” donde podemos ir navegando por cada categoría hasta llegar a la clase donde se encuentra el error y ver el propio código con una explicación detallada de la violación cometida (Ver Foto).

Caso Practico

• Requisitos para su uso.

• Instalación.

• Caso de prueba.

Caso Practico: Requisitos

• Tener la JDK de Java instalado en tu SO (versión 6 o mayor)

• Una Base de datos

• Un Cliente

• Un Servidor

• Un Servidor Web Servidor

BD Cliente

Caso Practico: Instalación

• Primero: Instalación de Base de datos, MySQL, Oracle, H2, Apache, etc…

• Segundo: Tener instalado un Navegador Web.

• Tercero: Instalar el servidor de Sonar e iniciarlo

• Cuarto: Instalar el Cliente, SonarRunner, Maven, Ant Task, etc…

• Existe un pluging para Eclipse (version 3.2 o superior).

Caso Practico

• Después de este proceso iniciar servidor

• Iniciar cliente sobre un proyecto(SonarRunner, Maven, Ant Task, etc…)

• Ver resultados en un explorador web en la dirección localhost:9000 (por defecto), y nos aparecerá algo como esto…

Caso practico

Caso Practico

Limitaciones y/o problemas encontrados

• La versión final es de pago

• Los plugins de los lenguajes también son de pago

• Solo un lenguaje gratuito Java

• Necesitas unos conocimientos medios sobre bases de datos, clientes y servidores, etc…

• Software orientado principalmente a las empresas grandes.