Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CALIDAD
Objetivos
Introducción
La guía SWEBOK indica expresamente que los ingenieros del software deben conocer el
significado y características de la calidad, así como su valor en el desarrollo y mantenimiento
del software.
La calidad aparece por vez primera en los requisitos que es donde se establecen los
parámetros y criterios de calidad del software que se construirá. Las características de
calidad que se definan en este momento serán la referencia de ahí en adelante, por lo que
todo aquello que se establezca como requisito de calidad en este punto tendrá una enorme
influencia, tanto en la forma en que posteriormente se medirá la calidad, como en los
criterios utilizados para evaluar si los parámetros de calidad establecidos se cumplieron o
no al final del desarrollo.
Cultura de
la calidad
Calidad
Valor y Asegurami
costes de ento de la
la calidad calidad
Modelos
de calidad
Cultura de la calidad: se podría definir como el compromiso de los ingenieros del software
de una organización con las metas de calidad de su organización y particularmente, con
aquellos que tienen que ver con la obtención de software de calidad. Algunos de los más
importantes principios a tener en cuenta son:
La perspectiva del producto: Relaciona la calidad con ciertas características del producto,
tales como la facilidad de mantenimiento, la funcionalidad o su fiabilidad.
La Perspectiva Del Valor: Establece una relación entre la cantidad de dinero que el cliente
está dispuesto a pagar y la calidad del producto.
La calidad que tiene que ver más con la denominada perspectiva de usuario, y buscan por tanto que
el software satisfaga sus necesidades y expectativas, que sea razonable el esfuerzo necesario para
aprender a utilizarlo, que sea fácil de usar y que la frecuencia e impacto de los fallos sea mínima.
Los desarrolladores tienden, por el contrario, a ver la calidad desde la perspectiva del producto:
cantidad y tipos de errores, bajo impacto de las modificaciones o facilidad de comprensión del
código, son algunos de los puntos que tienen más sentido desde esta perspectiva.
Se denomina calidad del software al grado en el que un software posee una combinación de
atributos deseables.
El modelo de calidad de McCall
EL modelo de McCall (1997) fue creado para las fuerzas aéreas norteamericanas con la intención de
acercar las visiones de calidad de los desarrolladores y los usuarios. Tres tipos de características de
la calidad:
Factores de calidad, que permiten especificar cómo ven el software sus usuarios desde el
exterior.
Criterios de calidad, que indican cómo debe construirse internamente el software desde la
perspectiva del desarrollador.
Métricas de calidad, que indican cómo controlar y medir la calidad.
Este modelo define tres perspectivas desde las que deben estudiarse los once factores que en total
se computan en la medida de la calidad de un producto de software. Estas perspectivas son las
siguientes:
Revisión del producto. Esta perspectiva estudia la capacidad del producto para adaptarse a
los cambios.
Transición del producto. Esta perspectiva identifica los factores de calidad que influyen en
la capacidad que tiene un cierto software para adaptarse a distintos contextos de operación.
Operación del producto. Esta perspectiva identifica aquellos factores de calidad que tienen
que ver con la forma en que el software lleva a cabo sus funcionalidades, y la medida en la
cual cumple con sus especificaciones.
Son 11 los factores de calidad apuntados por McCall están organizados las tres perspectivas
anteriores:
Corrección: mide el grado en que un programa satisface sus especificaciones y consigue los
objetivos del usuario.
Fiabilidad: mide el grado en que se puede esperar que un programa lleve a cabo sus
funciones esperada con la precisión requerida.
Eficiencia: mide la cantidad de recursos de computadora y de código requerido por un
programa para que lleve a cabo las funciones especificadas.
Integridad: es el grado en que puede controlarse el acceso al software o a los datos por
personal no autorizado.
Facilidad de Uso: es el esfuerzo requerido para aprender un programa e interpretar la
información de entrada y de salida.
El modelo de BOEHM
Boehm planea un modelo jerárquico en el que se definen tres utilidades de alto nivel, que serían los
requisitos básicos del software. Dichas utilidades son las siguientes:
Modelo de calidad (ISO/IEC 9126-1 2001). Describe el marco de modelo de calidad y las
relaciones entre los diferentes enfoques de la misma.
Métricas internas (ISO/IEC 9126-3 2003). Describe métricas para medir aquellas
características internas de la calidad definidas en el modelo descrito en ISO/IEC 9126-1.
Calidad de las métricas en uso (ISO/IEC TR 9126-4 2004 ). Identifica las métricas que
permitirán medir la calidad desde el punto de vista del usuario.
funcionalidad Adecuación
Exactitud
Seguridad
interoperabilidad
fiabilidad Madurez
Tolerancia a fallos
recuperabilidad
usabilidad Comprensibilidad
Facilidad de aprendizaje
operabilidad
portabilidad Adaptabilidad
Facilidad de instalación
Conformidad
Facilidad para ser reemplazado
Teniendo en cuenta todo lo anterior, la calidad del software puede evaluarse según el modelo de
calidad de estándar ISO/IEC 9126, bien midiendo los atributos de calidad internos. Con medidas
estáticas de productos intermedios, no del software en ejecución. Midiendo los atributos de calidad
externos a través de la medida del código cuando se ejecuta, Midiendo los atributos de calidad en
uso sobre el software
El modelo de Dromey: enfatiza la perspectiva de la calidad del producto, y así, niega que la
calidad de un producto software pueda manifestarse a partir de un conjunto de atributos
de por sí mismos indiquen calidad.
El modelo FURPS / FURPS+: define un conjunto de atributos considerados esenciales para
el diseño, uso y mantenimiento del software divididos en dos categorías principales:
funcionales y no funcionales.
El estándar IEEE 1061: define una metodología para métricas de calidad del software. El
estándar define específicamente una metodología para establecer requisitos de calidad, así
como para identificar, implementar, analizar y validar métricas de calidad.
En esta sección, enfocaremos el estudio de la calidad desde otro punto de vista: el del proceso de
producción.
Aseguramiento de la calidad
Los procesos de aseguramiento de la calidad garantizan que tanto los productos como los procesos
de producción del software cumplen con los requisitos de calidad establecidos.
Obligaciones:
Durante la construcción hay que validar, verificar y decidir cuando el producto está listo
para su entrega
El modelo CMMI
Un enfoque para la mejora de procesos que proporciona a una organización los elementos esenciales
para llevar a cabo sus procesos de manera efectiva.
CMMI no es un proceso de desarrollo de software, sino más bien una guía que describe las
características que hacen efectivo a un proceso.
El CMMI tiene dos representaciones:
1. Por Etapas (Staged): Da una secuencia probada para la mejora en donde cada una es base
para la siguiente.
2. Continuo (Continuous): Cada nivel de madurez es una plataforma bien definida para
evolucionar la mejora. Existen cinco niveles de madurez. Cada nivel es una base para la
mejora utilizando una secuencia probada desde sus bases.
Define un marco de trabajo de evaluación y mejora de procesos que puede ser utilizado por las
organizaciones para planificar, gestionar, monitorizar, controlar y, en definitiva, mejorar la
adquisición, desarrollo, operación, evaluación y soporte del software. El estándar, en su versión
actual (2003 - 2006), está formado por cinco documentos:
El modelo SPICE es bidimensional, pues trata la evaluación de procesos de software desde dos
dimensiones: (i) la dimensión de procesos, relacionadas con (ii) la dimensión de la capacitación.
Conjunto de estándares para sistemas de gestión de la calidad. Tiene como meta ayudar a las
organizaciones a definir y mantener sistemas de calidad. Su objetivo primordial es por tanto la
consistencia en la calidad de los productos y servicios, junto con una continua mejora en la
satisfacción del cliente y en la disminución de los ratios de error.
Principios:
Orientación al cliente: las organizaciones dependen de sus clientes por tanto deben luchar
por superar sus expectativas.
Liderazgo: los estamentos superiores de gestión de la organización deben definir políticas
de calidad y crear un entorno en el cual el personal se comprometa completamente con los
objetivos de calidad.
Implicación de los empleados: solo emplearan todas sus capacidades y aptitudes en
beneficio de la organización si están completamente involucrados en el proceso de calidad.
Modelo de procesos: los resultados esperados solo se alcanzarán si las actividades y los
recursos pertinentes se gestionan y controlan como procesos.
Modelo de gestión orientado a sistemas.
Mejora continua.
Enfoque a la toma de decisiones objetivas.
Relaciones con los proveedores mutuamente interdependientes.
ITIL: Está formado por un conjunto de documentos de buenas prácticas para facilitar la
implementación de un marco de gestión de este tipo de servicios.
Divide la gestión de servicios en dos áreas principales: los servicios de soportes y la prestación de
servicios. Conjuntamente engloban diez disciplinas que abarcan todas las áreas para la provisión y
gestión de servicios eficaces:
Los servicios de soporte están formados por las practicas que permiten la prestación de los
servicios de tecnología de la información, y son las cuales serían imposible proporcionar
dichos servicios.
La prestación de servicios tiene que ver con los servicios que las organizaciones requieren
de sus proveedores para así poder dar a su vez servicios de negocio a sus usuarios.
Trillium: su objetivo inicial era minimizar el riesgo y asegurar tanto el correcto rendimiento como la
entrega en plazos de los sistemas de software adquiridos por la organización.
Bootstrap: el objetivo de dicho proyecto era desarrollar una metodología para la evaluación de
procesos de software, la medición cuantitativa y la mejora continua, y posteriormente validarla
mediante un proceso de prueba en diversas organizaciones.
El principal objetivo del PSP es inducir disciplina en el proceso de desarrollo de software de cada
individuo, para lo cual describe prácticas para el desarrollo individual de programas pequeños,
desde la asignación del problema hasta las pruebas de unidad.