Analisis Espias del mundo

2
PEC 2. Calidad del software Pablo A. Benavides Ortigosa Análisis de calidad para Espias del Mundo. Objeto La empresa ESPIASDELMUNDO quiere incorporar a los servicios que proporciona a sus agentes una herramienta de mensajería instantánea para la comunicación entre ellos de forma segura. Dados los contenidos que comparten, la organización quiere disponer de control sobre el código del servidor a emplear y ha decidido realizar un desarrollo propio a partir de alguna de las opciones OpenSource disponibles en JAVA Las opciones candidatas son GujChat, OpenChat, LlamaChat y Claros Chat. Se solicita un informe “breve” (600 palabras) basado en atributos internos (métricas estáticas del software) conforme al estándar ISO 25010. Elección de métricas Justificación Los atributos internos de un producto (código o documentación) son el fundamento para determinar la calidad del software, por tanto, teniendo en cuenta que la calidad externa de un determinado producto dependerá siempre de su calidad interna podemos utilizar técnicas heurísticas enfocadas justamente a conseguir que la calidad interna del productos analizado sea buena. Para el análisis cualitativo de la aplicación a seleccionar, basaremos nuestro estudio en el modelo de calidad de producto software conforme a la norma ISO/IEC 25010 en el que se definen ocho características que el producto elegido debe satisfacer en mayor grado: 1. Adecuación funcional. 2. Fiabilidad. 3. Eficiencia de desempeño. 4. Capacidad de uso. 5. Seguridad. 6. Compatibilidad. 7. Mantenibilidad. 8. Portabilidad. Al tratarse de un análisis conducente a la adopción de un código u otro para que sea utilizado como código base del desarrollo propio, descartaremos algunos de los puntos anteriores, considerando oportuno en esta fase centrarnos en los puntos 1, 5 y 7 y 8. Para la obtención de los valores de los indicadores analizados, haremos uso de la herramienta Codepro Analytix de la familia de herramientas para desarrolladores de Google en el entorno de desarrollo Eclipse. Atributos analizados Adecuación funcional. Para el análisis de adecuación funcional, se han tenido en cuenta la relación entre el número de clases implementadas y las dependencias de cada uno de los cuatro candidatos, cuyos test han arrojado los siguientes datos: Proyecto Total Clases Clases Abstractas Clases Concretas Acoplamiento aferente Acoplamiento eferente Abstracción Inestabilidad Distancia GujChat 148 16 132 0 121 0.11 1.0 0.11 LlamaChat 33 2 31 0 32 0.06 1.0 0.06 clarosChat 29 0 29 0 25 0.0 1.0 0.0 OpenChat 8 0 8 0 8 0.0 1.0 0.0 Esta métrica nos da idea del grado de desarrollo de cada uno de los candidatos, en virtud del número de clases que implementa y de las dependencias que soporta. Es de suponer que a mayor número de clases mayor número de funciones implementadas, lo que proporcionará una mayor adecuación funcional a los requisitos del cliente.

description

Calidad. Analisis Espias del mundo.

Transcript of Analisis Espias del mundo

Page 1: Analisis Espias del mundo

PEC 2. Calidad del software Pablo A. Benavides Ortigosa

Análisis de calidad para Espias del Mundo.

ObjetoLa empresa ESPIASDELMUNDO quiere incorporar a los servicios que proporciona a sus agentes una herramienta de mensajería instantánea para la comunicación entre ellos de forma segura. Dados los contenidos que comparten, la organización quiere disponer de control sobre el código del servidor a emplear y ha decidido realizar un desarrollo propio a partir de alguna de las opciones OpenSource disponibles en JAVA Las opciones candidatas son GujChat, OpenChat, LlamaChat y Claros Chat.

Se solicita un informe “breve” (600 palabras) basado en atributos internos (métricas estáticas del software) conforme al estándar ISO 25010.

Elección de métricas

JustificaciónLos atributos internos de un producto (código o documentación) son el fundamento para determinar la calidad del software, por tanto, teniendo en cuenta que la calidad externa de un determinado producto dependerá siempre de su calidad interna podemos utilizar técnicas heurísticas enfocadas justamente a conseguir que la calidad interna del productos analizado sea buena.

Para el análisis cualitativo de la aplicación a seleccionar, basaremos nuestro estudio en el modelo de calidad de producto software conforme a la norma ISO/IEC 25010 en el que se definen ocho características que el producto elegido debe satisfacer en mayor grado:

1. Adecuación funcional.

2. Fiabilidad.

3. Eficiencia de desempeño.

4. Capacidad de uso.

5. Seguridad.

6. Compatibilidad.

7. Mantenibilidad.

8. Portabilidad.

Al tratarse de un análisis conducente a la adopción de un código u otro para que sea utilizado como código base del desarrollo propio, descartaremos algunos de los puntos anteriores, considerando oportuno en esta fase centrarnos en los puntos 1, 5 y 7 y 8.

Para la obtención de los valores de los indicadores analizados, haremos uso de la herramienta Codepro Analytix de la familia de herramientas para desarrolladores de Google en el entorno de desarrollo Eclipse.

Atributos analizados

Adecuación funcional.Para el análisis de adecuación funcional, se han tenido en cuenta la relación entre el número de clases implementadas y las dependencias de cada uno de los cuatro candidatos, cuyos test han arrojado los siguientes datos:

Proyecto Total Clases Clases Abstractas Clases ConcretasAcoplamiento

aferenteAcoplamiento

eferenteAbstracción Inestabilidad Distancia

GujChat 148 16 132 0 121 0.11 1.0 0.11 LlamaChat 33 2 31 0 32 0.06 1.0 0.06 clarosChat 29 0 29 0 25 0.0 1.0 0.0 OpenChat 8 0 8 0 8 0.0 1.0 0.0

Esta métrica nos da idea del grado de desarrollo de cada uno de los candidatos, en virtud del número de clases que implementa y de las dependencias que soporta. Es de suponer que a mayor número de clases mayor número de funciones implementadas, lo que proporcionará una mayor adecuación funcional a los requisitos del cliente.

Page 2: Analisis Espias del mundo

PEC 2. Calidad del software Pablo A. Benavides Ortigosa

SeguridadLa seguridad de los candidatos ha sido analizada mediante la opción de auditoría de código de la herramienta CodePro Analytix y nos ha reportado los siguientes resultados:

Problemas de seguridad (severidad) GujChat clarosChat OpenChat LlamaChatAlta 9 4 12 14

Media 629 307 189 221Baja 124 29 28 0

Esta métrica nos da una idea de las violaciones de código que pueden ser potencialmente inseguras en la ejecución de nuestro candidato, por lo que es muy importante tenerlas en cuenta. En este caso, la opción OpenChat es la que nos resulta más favorable.

MantenibilidadAl tratarse de la elección de una plataforma sobre la que desarrollar nuestro propio código, es importante que el candidato elegido sea fácil de adoptar, desarrollar y mantener.

Métrica analizada GujChat clarosChat OpenChat LlamaChatAbstractness 10,8% 0% 0% 5,7%Average Cyclomatic Complexity 1,78 2,2 2,18 3,09 minimum 1 1 1 1 maximum 13 25 16 45Average Lines Of Code Per Method 7,41 9,41 19,25 11,16 minimum 1 2 3 1 maximum 67 98 275 175Average Number of Methods Per Type 4,33 4,89 6,25 4,22 minimum 0 1 1 0 maximum 43 31 13 25Comments Ratio 16,3% 12,8% 2,7% 9,5%Difficulty 174,9 123,46 75,98 88,68Distance 0,1 0 0 0,06Efferent Couplings 121 25 8 32Instability 1 1 1 1Lines of Code 7507 1882 1223 2249Number of Characters 461134 84358 53358 129,45Number of Comments 1231 241 34 215Number of Methods 641 142 50 148Program Length 23599 7054 3055 7035Program Volume 248599,01 67505,76 26579,84 68205,93

ConclusiónDel análisis de estos resultados, podemos observar cómo GuJChat posee la mayor abstracción y la menor complejidad ciclomática como características deseables. Además podemos comprobar la modularidad de su código en función del número de métodos que implementa, lo que nos da una señal de lo estructurado del mismo. También posee la mejor ratio de comentarios, lo que nos informa de que su código está bien documentado y resultará fácil de comprender por los programadores que se hagan cargo del desarrollo final de la aplicación.

Por lo tanto en virtud de los indicadores medidos y de los valores obtenidos nuestra elección es GuJChat, que aunque presenta algunos problemas de seguridad y portabilidad del código, es el que posee mejores índices de madurez, calidad de estructura, documentación de código y menor complejidad lo que facilita la adecuación funcional a los requisitos del cliente, así como la mantenibilidad futura del desarrollo final.

Pablo A. Benavides Ortigosa