Ingeniería de Sw II
Métricas, estándares y calidad de software
Ing. José Fernando Rueda
Ing. Juan Sebastian Garcia
Con la aparición de nuevas tecnologías es inherente la aparición de nuevo software y con él una buena gestión de calidad es necesaria para mantenerlo y ofrecer calidad a largo plazo.
Y2K “falta de un control riguroso y sistemático de la gestión de calidad de software”
Con los modelos de calidad de software se logra:
Tener un buen control de los procesos desde el comienzo del diseño de una aplicación
Brindar calidad y alternativas para futuros cambios o mejoras del software
Administrar y controlar los riegos de un proyecto
Tomar decisiones que permitan mejorar la calidad del producto final.
Antecedentes del concepto de calidad
Antecedentes del concepto de calidad
Dos conceptos diferentes:
Calidad del producto final de software
Calidad en el proceso de desarrollo (esta lleva a la 1)
Diferencias entre la calidad de productos y la calidad de software
Diferencias entre la calidad de productos y la calidad de software
Según el estándar iso 8420(1986), un modelo de calidad se puede definir como un conjunto de factores de calidad y de relaciones entre ellos, que proporcionan una base para la especificación de requisitos de calidad y para la evaluación de los componentes de software.
Modelo de McCALL
Modelo de calidad de software basado en 3 puntos de vista, definidas por 11 factores que a su vez están compuestos por 23 criterios de calidad, adicional el modelo propone 41 métricas subjetivas (métricas que evaluadas por personas diferentes pueden dar resultados diferentes)


Cada uno de estos factores se descompone, a su vez, en criterios. En el modelo se definen un total de 23 criterios, con el siguiente significado:
Modelo de FURPS
Modelo desarrollado por Hewlett Packard (HP) en 1987, desarrollando un conjunto de factores de calidad de software y sus respectivos atributos.
Acrónimo:
Se encarga de realizar una clasificación para diferentes tipos de necesidades; examinando cada uno de los requerimientos.
Se observan las características de los requerimientos funcionales y no funcionales, también se identifican algunos requerimientos si son independientes de la tecnología y otros de tecnología específica.
Por ello necesitamos una clasificación que nos permita pensar en estos diferentes aspectos.

Funcionalidad (Functionality)
El F en el FURPS + acrónimo representa a todos los requerimientos funcionales de todo el sistema que describiríamos. Estos por lo general representan las principales características de los productos que son familiares dentro del dominio del negocio de la solución que está siendo desarrollado.
La ISO 9241-11:1998 “Guidance on usability”, define la usabilidad como:
La medida con la que un producto se puede usar por usuarios determinados para conseguir objetivos específicos con efectividad, eficiencia y satisfacción en un contexto de uso concreto.
Reliability - Confiabilidad
Performance - Rendimiento
Rendimiento implica cosas como el rendimiento de la información a través del sistema, el tiempo de respuesta del sistema (que también se refiere a la usabilidad), el tiempo de recuperación y el tiempo de inicio.
Adaptabilidad, facilidad en el mantenimiento, facilidad de configuración
Por último, tenemos la tendencia a incluir una sección llamada compatibilidad, donde se especifica una serie de requisitos tales como la capacidad de prueba, la adaptabilidad, facilidad de mantenimiento, la compatibilidad, configurabilidad, capacidad de instalación, escalabilidad, localizabilidad, y así sucesivamente.
Adaptabilidad.
Extensibilidad.
Mantenibilidad.
Compatibilidad.
Configurabilidad.
El "+" de la sigla FURPS + nos permite especificar restricciones, incluyendo el diseño, la implementación, la interfaz y las limitaciones físicas.
Modelo CMMI (Capability Maturity Model Integrator)

Nivel 1 CMMI
Empresas sin procesos en el desarrollo
Presupuestos desfasados
Incumplimiento de fechas de entrega
No existe control sobre el estado del proyecto
La forma de desarrollar proyectos (gestión e ingeniería) esta definida, Definida = establecida, documentada.
Existen métricas (obtención de datos objetivos) para la consecución de objetivos concretos.
Los procesos que hay que implantar para alcanzar este nivel son:
Desarrollo de requisitos
Solución Técnica
Integración del producto
Verificación
Verificación
Validación
Desarrollo y mejora de los procesos de la organización
Definición de los procesos de la organización
La mayoría de las empresas que llegan al nivel 3 paran aquí, ya que es un nivel que proporciona muchos beneficios y no ven la necesidad de ir más allá porque tienen cubiertas la mayoría de sus necesidades.
Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organización.
Se usan métricas para gestionar la organización.
Los procesos que hay que implantar para alcanzar este nivel son:
Gestión cuantitativa de proyectos
Mejora de los procesos de la organización
Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades.
Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica.
Los procesos que hay que implantar para alcanzar este nivel son:
Innovación organizacional
Análisis y resolución de las causas
Nivel 1:
Nivel 1: El resultado de los procesos suele ser impredecible.
No existen áreas o funciones formales
No existen puntos de control en el proceso
No es posible el estado del proyecto en sus procesos intermedios.
Nivel 2:
Existen puntos de control en cada etapa principal del proyecto
Cada etapa es aún una caja.
Nivel 5:
Cada proceso es analizado y controlado para mejóralo.
Los controles permiten la mejora continua.
Se tienen implementadas todas las áreas clave de proceso recomendadas por el modelo.

Modelo de DROMEY
Un modelo presentado por el Sr. R. Geoff Dromey se basa en reconocer que evaluación de la calidad es diferente para cada producto, que es necesario contar con una idea más dinámica que permita modelar el proceso.
Dromey se centra en la relación entre los atributos de calidad y los sub-atributos, así como intentar conectar propiedades de productos de software con la calidad de los atributos de software .
Normas ISO 9000 - ISO/IEC 9126.

DOCUMENTACIÓN
MANUAL DE CALIDAD
PROCEDIMIENTOS Y PROCESOS
REGISTROS
IMPLANTACIÓN
Los pasos típicos en un proceso de implantación las ISO en nuestra empresa son:
Los pasos para la adopción de un sistema de calidad ISO son:
El estándar ISO 9126, establece un modelo de calidad para la caracterización de la calidad del producto software.
Este estándar propone un modelo de calidad que se divide en tres vistas:
• interior
• exterior
• en uso.
Estas vistas están compuestas por características, que se dividen en sub características, y que estas a su vez se componen de atributos.
Los atributos obtienen sus valores tras realizar mediciones sobre el software.
Estas mediciones dan como resultado una serie de métricas que se pueden clasificar en tres categorías según sea su naturaleza:
Métricas básicas, que se obtienen directamente de analizar el código o la ejecución del software.
Métricas de agregación, que consisten en la composición de una métrica a partir de un conjunto definido de métricas básicas, generalmente mediante una suma ponderada.
Métricas derivadas, que son una función matemática que utiliza como entrada el valor de otras métricas.
El modelo establece diez características, seis que son comunes a las vistas interna y externa y cuatro que son propias de la vista en uso.
Las características que definen las vistas interna y externa, se muestran a continuación:

Características propias de la vista en uso, se muestran a continuación

MOSCA (Modelo Sistémico de Calidad).
La estructura de MOSCA consta de 4 niveles los cuales son explicados brevemente a continuación:

TSP (Team Software Process) – PSP (Personal Software Process).
Es una metodología reciente
Creada por Instituto de Ingeniería del Software (SEI).
Permite mejorar la forma en la que construyen software.
Considera aspectos como la planeación, calidad, estimación de costos y productividad.
VENTAJAS Y DESVENTAJAS PARA UTILIZAR PSP
PSP es una metodología basada en estimación.
La estimación permite saber cuándo y cómo se desarrollan las tareas de un proceso,
Estar basada en métricas y estimaciones.
La información de las métricas y estimaciones se utiliza para evaluar y mejorar procesos futuros. PSP parte de la premisa que, si el ingeniero de software conoce sus fortalezas y debilidades, puede establecer las acciones necesarias para erradicar o explotar los aspectos identificados en la forma en que desarrolla software.
Desventajas:
Llegar a ese auto conocimiento puede resultar tedioso y, en el peor de los casos, una pesadilla para el desarrollador.
Los ingenieros de software rara vez realizan procedimientos formales para conocer la forma en que trabajan,
No saben con exactitud cuántas líneas de código generan por hora,
Cuánto tiempo invierten al corregir un error,
Cuánto tiempo invierten en pruebas, etcétera.
Los pasos de registro de información a detalle en el nivel de medición pueden resultar frustrantes cuando se tiene presión de tiempo.
Las tareas y actividades que el ingeniero de software debe realizar durante el proceso de desarrollo de un producto de software, están puntualmente definidas en un conjunto de documentos conocidos como scripts.
Los scripts son el punto medular de PSP, deben ser seguidos en forma disciplinada, ya que de ello depende el éxito.
Gran parte de las tareas y actividades definidas en los scripts generará en su realización un conjunto de datos, fundamentalmente de carácter estadístico.
Permite al ingeniero de software identificar, tanto sus fortalezas como sus debilidades,
Permite al ingeniero de software crecer a través de un proceso de auto aprendizaje y auto mejora.
La calidad en PSP, es un aspecto fuertemente relacionado con la cantidad de defectos que el producto de software contiene.
El modelo PSP propone al igual que CMMI una forma de medir calidad mediante escalafones o niveles:



El TSP/PSP, cuando se implementa correctamente, ha probado ser más eficaz que el CMMI Nivel 5.
Contar con un método avalado por el SEI que permitirá demostrar objetivamente la calidad de los proyectos desarrollados por las empresas que usan el TSP.