miércoles, 23 de marzo de 2016

METRICAS DEL PROYECTO DEL SISTEMA DE INFORMACION DE ADMINISTRACION PARA LOS GIMNASIOS APP BODYPERFECT GYM

1.    METRICA ENTORNO AL PRODUCTO
-       FRECUENCIA DE ERRORES
Esta métrica será importante en la evaluación de nuestro producto del proyecto como tal, ya que con esta podremos evaluar la calidad y la eficiencia entorno al comportamiento que tendrá el sistema de información.
Una manera de medición de esta métrica seria:
N= número de errores del usuario
T= tiempo de la prueba o número de tareas

F = N / T
2.    METRICA ENTORNO AL PRODUCTO
-       ESCALA DE SATISFACCION
El propósito de esta métrica es tomar el nivel de satisfacción que puede expresar el usuario final frente a nuestro producto de software, la cual puede comprender varios aspectos en esta satisfacción como la navegabilidad, la funcionalidad, diseño y demás factores.
Esta métrica la podremos medir en nuestro producto con un simple cuestionario en el cual se aborden todas las posibles evaluaciones de cada uno de los componentes del producto.
A= calificación obtenida en el cuestionario
T = total posible de calificación del cuestionario
C= A / T





3.    METRICA ENTORNO AL PROYECTO (METRICA ORIENTADA A OBJETO- ORIENTADA A CLASES)
-       ARBOL DE PROFUNDIDAD DE HERENCIA (APH)
Esta métrica orientada a clases nos permitirá analizar en gran valor la herencia y la reutilización que se aplicaron en el diseño del código de cierto modulo.
Ya que a medida que va creciendo la longitud del APH  significara que mayor herencia y reusabilidad de métodos serán aplicados por las clases inferiores.
El siguiente esquema nos puede dar una imagen clara de cómo representar esta clase con sus subclases que reúsan sus métodos.



4.    METRICA ENTORNO AL PRODUCTO
-       TAREAS COMPLETADAS (EFECTIVIDAD)
En esta métrica se podrá evaluar la cantidad y proporción de numero de tareas o requerimientos que el producto puede realizar de una manera correcta tal y como se elaboró en el análisis del sistema. Permitiéndonos obtener un nivel de efectividad del sistema de información
Una fórmula para medir esta métrica podría aplicarse de esta manera:
EfectividadTareas= A / B
A= número de tareas completadas
B= tiempo de la tarea o requerimiento



HERRAMIENTAS DE SOFTWARE LIBRE PARA APLICAR METRICAS EN EL SOFTWARE

PMD.
Analizador estático de código que utiliza unos conjuntos de reglas para identificar problemas dentro del software. Detecta cosas como código duplicado (te recomiendo aquí este post), código muerto (variables, parámetros o métodos sin usar), complejidad de métodos (if innecesarios, etc., te recomiendo aquí este otro post sobre código complejo). Trabaja principalmente con lenguaje Java, aunque, con menos soporte, también posee conjuntos de reglas para JavaScript, xsl y ecmascript. Página oficial: http://pmd.sourceforge.net/.

Check Style.
Herramienta de análisis estático de código que se utiliza para comprobar que el código analizado cumple con una serie de reglas de estilo. Ejemplo, analiza el código según el estandar “Sun Code Conventions” (mira las cabeceras, importaciones de paquetes, Javadoc, etc.). Página oficial: http://checkstyle.sourceforge.net/. Trabaja para Java. La licencia es: GNU Lesser General Public License Version 2.1.

SONAR.
 Una herramienta de software libre y gratuita que permite gestionar la calidad del código fuente. Al instalarla podremos recopilar, analizar, y visualizar métricas del código fuente. Sonar es básicamente la fusión de las siguientes herramientas Checkstyle y PMD, más otras que no menciono en este post, como Findbugs, Clover y Cobertura. También realiza un histórico de todas las métricas del proyecto. Permite visualizar informes con resumenes de las métricas. Página oficial: http://www.sonarsource.org. Trabaja, principalmente, para Java. Aunque da soporte, gracias a la amplia librería de plugins (algunos de pago), a los siguientes lenguajes: ABAP, C, Cobol, C#, Delphi/Pascal, Flex/ActionScript, Groovy, JavaScript, Natural, PHP, PL/SQL, Visual Basic 6, Web y XML.  La licencia es: LGPL.

Google CodePro Analytix.
 Otra de las herramientas de calidad software, ofrece un entorno para evaluación de código, métricas, análisis de dependencias, cobertura de código, generación de Test unitarios, etc. Mira las excepciones, refactorizaciones potenciales (te dejo un post de refactorización), convenios de JavaDoc, métricas, etc. Disponible como plugin de Eclipse. Página oficial: http://code.google.com/intl/es-ES/javadevtools/codepro/doc/index.html. Trabaja para Java, concretamente en Eclipse. La herramienta es gratis.


Simian. Herramienta para detectar código duplicado (que es el mayor enemigo de la mantenibilidad, es decir, que si hay código repetido te va a costar más euros mantener el software, te recomiendo aquí este post) en desarrollos realizados con los lenguajes: Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML y Visual Basic. Página oficial: http://www.redhillconsulting.com.au/products/simian/. La licencia es libre si su uso está destinado a proyectos OpenSource.

miércoles, 16 de marzo de 2016

CALIDAD DEL SOFTWARE

Calidad de software

La calidad del software es una preocupación a la que se dedican muchos esfuerzos. Sin embargo, el software casi nunca es perfecto. Todo proyecto tiene como objetivo producir software de la mejor calidad posible, que cumpla, y si puede supere las expectativas de los usuarios.

Calidad

·         Es la aptitud de un producto o servicio para satisfacer las necesidades del usuario.
·         Es la cualidad de todos los productos, no solamente de equipos sino también de programas.
En el desarrollo de software, la calidad de diseño acompaña a la calidad de los requisitos, especificaciones y diseño del sistema. La calidad de concordancia es un aspecto centrado principalmente en la implementación; Si la implementación sigue al diseño, y el sistema resultante cumple con los objetivos de requisitos y de rendimiento, la calidad de concordancia es alta.

Calidad de software

Características propias del software aquellas que tu quieres controlar y asegurar, el software es un producto inmaterial que no se fabrica, tampoco se degradan físicamente, sino que se desarrolla. El software puede tener errores, incidencias pero no son similares a lo que cualquier equipo de carácter físico.
La calidad del software se encuentra casi a la par de la calidad tradicional, ligeramente detrás debido a que la calidad tradicional tiene varias décadas de historia, mientras que la calidad de software tiene entre 50 y 30 años de haber surgido.
El software necesita ser actualizado

Certificación del software

Consecuencia de un proceso que es asegurar la calidad pero nunca es el objetivo final. La calidad de software no se certifica, lo que se certifica son los procedimientos para construir un software de calidad, los procedimientos deben ser correctos y estar en función de la normalización (ISO 9000, CMMI, Moprosoft...).
Normativa ISO 9000
Pone a disposición de un auditor o certificador los procesos internos, de forma que este indique si cumple o no la normativa al 100%, audita el sistema; Si los resultados son positivos se emite la certificación y cada cierto tiempo se tiene que renovar; La certificación es costosa, a consecuencia de costes que ocasionan la lejanía y el tiempo de duración de proceso (aprox. 6 meses). Se certifica la empresa y la metodología para el desarrollo de la aplicación.

Medición del software

En el software lo que se mide son atributos propios del mismo, se descompone un atributo general en otros más simples de medir, a veces se mide bien o mal ya que la descomposición del atributo genérico de calidad en otros sub-atributos se torna irreal, se mide con datos estadísticos no avalados, es imposible decir que la medición se hace en forma correcta.
El concepto de medida va de más a menos, va de lo general a lo concreto y lo concreto es asociado a la métrica, cuya combinación te daría el nivel de calidad o seguridad de tu producto. Las ciencias bien estructuradas se basan en medidas bien hechas, se basan en la matemática.

Tipos de medidas

·         Número de errores durante un periodo determinado.
·         Fallo en la codificación o diseño de un sistema que causa que el programa no funcione correctamente o falle.
ü  Tamaño de un producto informático (líneas de código)
Ø  Métrica de punto función (IBM): relaciona funcionalidades que ofrecía.
ü  Estimación de costes y esfuerzos.
Ø  COCOMO

Utilidad de la medida del software

·         Normativa ISO 9126, medida de la calidad de software descomponiendo atributos, para no tener márgenes de error e interpretación.
ü  Atributo de funcionalidad.
ü  Atributo de capacidad de respuesta frente a errores externos.
ü  Atributo de nivel de seguridad. La calidad no puede existir sin seguridad, un producto sin seguridad sería un producto sin calidad. El observador o usuario final indica que atributos más o menos importantes de seguridad.

Conclusión

No se puede medir la calidad del software de forma correcta debido a su naturaleza, la certificación se da a los procesos, la correcta consecución de los mismos garantizaría un buen software. No se puede medir al software como tal, sino los atributos que la conforman, tales métodos de medida deben ser exactos.

El usuario final mide la calidad del software según lo que tenga o no, es en ese sentido que la calidad del software depende de quien la juzgue. El hecho de que una empresa tenga certificación en calidad de software no garantiza que su software sea de calidad.