INSTITUTO TECNOLÓGICO DE VILLAHERMOSA
ALUMNO: Aldo Josué Damián Félix
PROFESOR: Ing. Miguel Ángel Martínez De La Cruz
CARRERA: Ing. En Sistemas Computacionales Computacionales
MATERIA: Aseguramiento y Calidad del Software
TEMAS: Métricas de Desarrollo Ventajas y Desventajas de CMM
Las Métricas y la Calidad de Software El objetivo primordial de la ingeniería del software es producir un sistema, aplicación o producto de alta calidad. Para lograr este objetivo, los ingenieros de software deben emplear métodos efectivos junto con herramientas modernas dentro del contexto de un proceso maduro de desarrollo del software. Al mismo tiempo, un buen ingeniero del software y buenos administradores de la ingeniería del software deben medir si la alta calidad se va a llevar a cabo. A continuación se verá un conjunto de métricas del software que pueden emplearse a la valoración cuantitativa de la calidad de software El punto de vista de ¿Qué es calidad? Es diverso, y por lo tanto existen distintas respuestas, tales como se muestra a continuación:
El American Heritage Dictionary [Pressman ´98+ define la calidad como “Una característica o atributo de algo.”
La definición estándar de calidad en ISO-8402 es “La totalidad de rasgos y características de un producto, proceso o servicio que sostiene la habilidad de satisfacer estados o necesidades implícitas” *Mcdermid ’91+.
“Concordar explícitamente al estado funcional y a los requerimientos del funcionamiento,
explícitamente a los estándares de documentación de61 desarrollo, e implícitamente características que son expectativas de todos los desarrolladores profesionales de software” *Pressman ’93+.
La calidad de un sistema, aplicación o producto es tan buena como los requisitos que detallan el problema, el diseño que modela la solución, el código que transfiere a un programa ejecutable y las pruebas que ejercita el software para detectar errores. Un buen ingeniero del software emplea mediciones que evalúan la calidad del análisis y los modelos de diseño, así como el código fuente y los casos de prueba que se han establecido al aplicar la ingeniería del software. Para obtener esta evaluación de calidad, el ingeniero debe utilizar medidas técnicas, que evalúan la calidad con objetividad, no con subjetividad. Asimismo, un buen administrador de proyectos debe evaluar la calidad objetivamente y no subjetivamente. A medida que el proyecto progresa el administrador del proyecto siempre debe valorar la calidad. Aunque se pueden recopilar muchas medidas de calidad, el primer objetivo en el proyecto es medir errores y defectos. Las métricas que provienen de estas medidas proporcionan una indicación de la efectividad de las actividades de control y de la garantía de calidad en grupos o en particulares. Por ejemplo los errores detectados por hora de revisión y los errores detectados por hora de prueba suministran una visión profunda de la eficacia de cada una de las actividades envueltas en la métrica. Así los datos de errores se pueden utilizar también para calcular la eficiencia de eliminación de defectos en cada una de las actividades del marco de trabajo del proceso.
La medición del proceso implica las mediciones de las actividades relacionadas con el software siendo algunos de sus atributos típicos el esfuerzo, el coste y los defectos encontrados. Métricas sobre los errores detectados antes de la entrega del software, defectos detectados e informados por los usuarios finales, productos de trabajo entregados, el esfuerzo humano y tiempo consumido, ajuste con la planificación, etc. Los indicadores de proyecto permiten al administrador de software (Pr essman, 2001):
Evaluar el estado del proyecto en curso. Realizar un seguimiento de los riesgos potenciales.
Detectar las áreas de problemas antes de que se conviertan en “críticas”
Ajustar el flujo y las tareas de trabajo. Evaluar la habilidad del equipo del proyecto en controlar la calidad de los productos de trabajo de la ingeniería del software.
-
-
-
-
MÉTRICAS DE CÓDIGO FUENTE Líneas de código (LOC, Lines of Code) Longitud Total (LT) MÉTRICAS DE COMPLEJIDAD Complejidad Ciclomática (V(G)) V(G) = A – N + 2 Fan-in y fan-out Complejidad de un módulo MÉTRICAS PARA SISTEMAS OO - Métricas MOOSE, Chidamber y Kemerer (1994) - Métodos ponderados por clase (WMC) - Profundidad del Árbol de Herencia de una Clase (DIT) - Número de Hijos (NOC) - Acoplamiento entre Objetos (CBO) Respuesta de una clase (RFC) Falta de cohesión en los métodos (LCOM) Métricas MOOD (Brito e Abreu y Carapuca, 1994) Métricas de Lorenz y Kidd (1994) Métricas para UML
CMM DEFINICIÓN DE CMM. A nivel mundial, organizaciones de todos los tamaños han abordado iniciativas de mejora de la calidad del software con énfasis en la mejora de sus procesos de desarrollo y mantenimiento del software. La tendencia actual en el sector de las Tecnologías de Información se dirige hacia la adquisición de un nivel de madurez en los procesos de software que asegure una mayor calidad de los productos obtenidos y que sirva de base para la mejora continua de este tipo de procesos. La aparición del Capability Maturity Model for Software(CMM-SW) del Software Engineering Institute (SEI) a principios de los años 90’s ha ayudado a muchas organizaciones a lograr este objetivo. Este modelo se ha ido convirtiendo en la principal referencia para las empresas que quieren implantar iniciativas para la mejora de sus procesos de desarrollo. CUADRO DE LOS 5 NIVELES DEL CMM A continuación se describen los diferentes niveles de madurez del CMM y las áreas de procesos a las que afecta.
Ventajas De La Implantación de CMM A continuación se exponen las 7 principales ventajas que aporta a las organizaciones la implantación del modelo CMM. 1) Mayor efectividad en la detección de errores a lo largo del ciclo de vida, reduciendo drásticamente el número de errores que afecta directamente a los clientes y usuarios. 2) Reducción de las desviaciones en plazo de los proyectos. 3) Mayor tolerancia al cambio e incremento de la capacidad de adopción y adaptación de nuevas tecnologías 4) Mejora en la rapidez y efectividad de respuesta ante exigencias del negocio (Reducción del Time to Market) 5) Mejora en la colaboración y comunicación efectiva con implicados internos y externos. 6) Resultados predecibles en los proyectos. 7) Implementar técnicas proactivas de gestión, mitigando los riesgos que afectan los proyectos. Todos los beneficios derivan finalmente en un incremento de la productividad en la realización de Software y en una considerable mejora de la calidad del producto terminado. Este cuadro nuestra los beneficios cuantificados porcentualmente que se obtienen de pasar de un nivel de madurez en CMM, al inmediatamente superior.
Desventajas de usar CMM
El CMM-SW es un modelo exhaustivo‖, cuenta con más de 200 páginas *Paulk, 2002+, [Oktaba, 2003]. El CMM-SW es un modelo que dice qué hacer pero no cómo hacerlo. Describe lo que un proceso debe dirigir en lugar de cómo un proceso debe ser implementado [Paulk, 2002]. El CMM-SW no dirige todos los asuntos que son importantes para tener proyectos exitosos. Por ejemplo, el CMM no aborda dominios de aplicación especiales, defiende tecnologías de software específicas, o sugiere cómo seleccionar y contratar a personas competentes. El CMM-SW fue desarrollado específicamente para proporcionar un marco ordenado y disciplinado para software [Paulk, 1993]. El CMM-SW está siendo reemplazado por CMMI [De la Villa, 2004], [Oktaba, 2003] Muchos autores coinciden en que los estándares del ISO y modelos del SEI difícilmente pueden ser aplicados a empresas pequeñas debido a que un proyecto de mejora supone gran inversión en dinero, tiempo y recursos. Sin embargo las PYMES desarrolladoras de software adaptan y utilizan estos estándares para emprender sus esfuerzos de mejora [Pino, 2006]