Índice
¿Qué es la calidad de software?
La calidad del software es el grado con el que un sistema, componente o proceso cumple los requisitos especificados y las necesidades o expectativas del cliente o usuario. Una organización inmadura: – Realizar procesos improvisados; incluso procesos especificados no son seguidos ni se exige su cumplimiento.
Importancia de la Calidad de Software
Cuando en nuestro ordenador aparece un mensaje de error o una pantalla azul, estamos ante un problema de calidad del software; cuando un fallo en el sistema de gestión aeroportuaria provoca retrasos, pérdidas de maletas o inutiliza pantallas de información, estamos ante un problema de calidad del software; cuando en un restaurante se bloquean los terminales de cobro y anotación de pedidos, estamos ante un problema de calidad del software.
Un ejemplo bien documentado se produjo con el lanzamiento en 1996 del primer cohete Arianne 5 de la Agencia Espacial Europea. Este ingenio que costó 10 años y 7.000 millones de euros desarrollar, explotó por un defecto en el software de control interno antes de que pasara un minuto de vuelo.
Factores de Calidad
Entre los factores que Determinan la Calidad existen dos tipos de factores:
- Factores que pueden ser medidos directamente (errores/KLDC/unidad de tiempo).
- Factores que solo pueden ser medidos indirectamente (la facilidad de uso o de mantenimiento).
En ambos casos se puede medir la calidad, debemos comparar el software (documentos, programas, etc.) con alguna referencia y llegar a una indicación de calidad.
Factores de Calidad según McCall
PUNTO DE VISTA | FACTOR |
REVISIÓN DEL PRODUCTO | Mantenibilidad |
Flexibilidad | |
Testeabilidad | |
TRANSICIÓN DEL PRODUCTO | Portabilidad |
Reusabilidad | |
Interoperabilidad | |
OPERACIÓN DEL PRODUCTO | Correctitud |
Confiabilidad | |
Eficiencia | |
Integridad | |
Usabilidad |
Factores de Calidad según Boehm
El modelo que presenta Boehm presenta una jerarquía de características donde cada una de ellas contribuye a la calidad global. Dentro de los factores que se describen en el modelo se toman muchos de los que propone McCall. Parte de la estructura del modelo de Boehm se presenta en la siguiente figura, se hace énfasis en los factores presentes en dicho modelo. En total el modelo de Boehm presenta siete factores:
Factores de Calidad según ISO 9126
Es un modelo jerárquico con seis atributos especiales.
Aseguramiento de calidad de software
En los años 50, el software comenzó a encontrar su camino dentro de los sistemas del DoD (del inglés Deparment of Defense of USA). Usualmente estos proyectos estaban muy alejados de la planificación, se pasaban del presupuesto y tenían muchos problemas técnicos.
Para intentar resolver este problema se estableció la Verificación y Validación Independientes (IV&V del inglés Independent Verification and Validation), un proceso de ingeniería que empleaba metodologías rigurosas para evaluar la correctitud y calidad del software a lo largo de su ciclo de vida.
El primer software en usar IV&V fue el programa del misil atlas a finales de los años 50.
La actividad que llamamos SQA (Software Quality Assurance) evoluciona directamente de la Verificación y Validación Independientes(IV&V), muchas de las tareas que asociamos con SQA son originarias de IV&V.
Estándares y Métricas De Calidad en la Ingeniería de Software
Estándares
Los estándares de calidad de software son normas emitidas por organismos específicos, que sirven para sentar un marco con el que comparar si un proceso de desarrollo es o no de calidad. Las normas de calidad del software más conocidas han sido desarrolladas por ISO, y son la serie ISO-9000.
1.-ISO 9000
Las normas ISO-9000 son un estándar de calidad para todo tipo de industrias; contiene una normativa específica para el desarrollo de software, la ISO-9003. Consiste en una serie de cláusulas que deben aplicarse en el marco de trabajo, en el ciclo de vida del proyecto y en las actividades de apoyo al mismo.
2.-CMMI
CMM fue desarrollado por el Software Engineering Institute en estados unidos, sirve para comprobar la habilidad de los procesos de las organizaciones para realizar determinados proyectos.
3.-SPICE
SPCE es el modelo de madurez propuesto por ISO, similar a CMMI.
-Factores de calidad
Los factores de calidad sirven para descomponer el concepto genérico de “calidad”; para facilitar su control y su medición. Se clasifican en:
1)Factores operativos
Los factores operativos son aquellos que afectan al uso del software.
2)Factores de mantenimiento
Los factores de mantenimiento son aquellos que se aplican a la capacidad de modificación del software.
3)Factores evolutivos
Los factores evolutivos son aquellos que indican si el software se puede trasladar con facilidad a otra máquina o a otro producto de base (SO, SGBD).
MÉTRICAS
Las métricas del producto son una medida cuantitativa que permite a la gente del software tener una visión profunda de la eficacia del proceso del software y de los proyectos que dirigen utilizando el proceso como un marco de trabajo; son analizadas y evaluadas por los administradores del software.
- VENTAJAS DEL USO DE METRICAS:
- Determina la calidad del producto.
- Evalúa la productividad de los desarrolladores.
- Se tiene conocimiento cuantitativo de las características del proceso y del producto.
- Se tiene un soporte para la estimación y la planificación.
Se evalúan los beneficios (en cuanto a calidad y productividad) derivados del uso de nuevos métodos y herramientas de ingeniería del software.
-Establece una línea base para la estimación
CARACTERISTICAS DE LAS METRICAS:
- Exactas/Precisas: No se debe perder información en los redondeos ya que la información se desvirtúa.
- Consistentes: Una medición de un atributo debe dar el mismo valor independientemente de la medición.
Modelos de madurez en CMMI
CMMI propone 5 distintos modelos de madurez de las organizaciones:
- Inicial – Estado inicial donde el desarrollo se basa en la heroicidad y responsabilidad de los individuos.
- Los procedimientos son inexistentes o localizados a áreas concretas.
- No existen plantillas definidas a nivel corporativo.
- Gestionado – Se normalizan las buenas prácticas en el desarrollo de proyectos (en base a la experiencia y al método).
- En este nivel consolidado, las buenas prácticas se mantienen en los momentos de estrés.
- Están definidos los productos a realizar.
- Se definen hitos para la revisión de los productos.
- Definido – La organización entera participa en el proceso eficiente de proyecto software.
- Se conoce de antemano los procesos de construcción de software.
- Existen métodos y plantillas bien definidas y documentados.
- Los procesos no solo afectan a los equipos de desarrollo sino a toda la organización relacionada.
- Los proyectos se pueden definir cualitativamente.
- Cuantitativamente Gestionado
- Se puede seguir con indicadores numéricos (estadísticos) la evolución de los proyectos.
- Las estadísticas son almacenadas para aprovechar su aportación en siguientes proyectos.
- Los proyectos se pueden pedir cuantitativamente.
- Optimizado
- En base a criterios cuantitativos se pueden determinar las desviaciones más comunes y optimizar procesos.
- En los siguientes proyectos se produce una reducción de costes gracias a la anticipación de problemas y la continua revisión de procesos conflictivos.
Requisitos en niveles de madurez
Para asegurar la evolución por estos modelos de madurez, se deben cumplir una serie de requisitos y prácticas.
Existen prácticas a realizar de modo particular (SP = práctica específica) en cada requerimiento y otras que son globales (GP = Practica global) y van apareciendo repetitivamente en distintos puntos.
Cada práctica tiene a su vez sub-prácticas y practicas opcionales.