Actividad de aprendizaje Nro.
16
CONTROL DE CALIDAD DE COMPONENTES
La calidad ha sido una preocupación desde hace mucho en las empresas de producción o servicio, y esto
no es ajeno para los ingenieros de software en el análisis y diseño de sistemas de información. El prin-
cipal objetivo de los ingenieros del software es producir un sistema de información, aplicaciones o pro-
ducto de alta calidad, para lo cual emplean métodos y herramientas efectivas dentro del contexto de un
proceso desarrollo del software y además deben realizar mediciones que den como resultado sistemas
de alta calidad. Para obtener esta evaluación, el ingeniero debe utilizar medidas técnicas, que evalúan la
calidad con objetividad, no con subjetividad.
Para lograr que un producto de software sea de calidad adecuada es necesario realizar determinadas
actividades de manera sistemática, esto implica planificar desde el comienzo del proyecto la calidad y
realizar un plan para alcanzar los objetivos trazados.
¿Qué es el control de calidad?
Es el seguimiento realizado en forma detallada, de los procesos dentro de una empresa para mejorar la
calidad del producto o servicio que brinda y consiste en la implantación de: programas, mecanismos,
herramientas o técnicas para la mejora de la calidad de sus productos.
Dicho de otro modo, el control de la calidad es una estrategia para asegurar el cuidado y mejora continua
en la calidad ofrecida de un producto de la empresa.
Objetivos
Establecer un control de calidad ofreciendo satisfacción a los clientes al máximo para conseguir los
propósitos de las empresas.
Aplicar el control de calidad a todos los procesos de las empresas.
Obtener información necesaria de los estándares de calidad que el mercado espera y con ello contro-
lar cada proceso hasta la obtención del producto o servicio.
Elaborar el plan de control de calidad para los procesos de los productos de las empresas.
Ventajas
Muestra el orden, la importancia y la interrelación de los distintos procesos del producto de la em-
presa.
Aumento del número de clientes
Aumenta la motivación del personal
Logro de fidelidad de los clientes
Reducción de costos y beneficios
Se detectan los problemas antes y se corrigen con más fácilidad.
¿Qué es un plan de calidad?
Es un plan donde se recogen los proyectos y acciones orientados a maximizar la calidad de las opera-
ciones y, por consiguiente, la satisfacción de los clientes consumidores.
¿Qué es gestión de calidad?
Gestión de la Calidad es el conjunto de acciones, planificadas y sistemáticas, que son necesarias para
proporcionar la confianza adecuada de que un producto o servicio va a satisfacer los requisitos dados
sobre la calidad.
1. Estructura de la gestión de la calidad.
La gestión de calidad de software se estructura en torno a tres actividades principales:
1.1. Garantía de calidad. La calidad es definida como el grado de relación que tiene el producto
para satisfacer las necesidades del usuario. Un software que cumple con todos los requisitos con
su usuario, y que sus procesos se ejecuten correctamente garantiza una buena calidad. Para ello
debe considerar tipos de estándar como:
1.1.1. Estándares de producto. Estándares que se aplican sobre el producto software que se co-
mienza a desarrollar. Incluye estándares de documentación, estándares de codificación.
1.1.2. Estándares de proceso. Define los procesos que deben seguirse durante el desarrollo de
software. Incluyen definiciones de procesos de especificación, diseño y validación, así
como una descripción de los documentos que deben escribirse durante los procesos.
1.1.3. Importancia de los estándares de software. Los estándares de un producto guardan rela-
ción estrecha con los estándares de un proceso. Los estándares de producto se aplican a la
salida del proceso de software, mientras que los estándares de proceso incluyen actividades
de proceso que garantizan que se sigan los estándares de producto. Los estándares de soft-
ware:
Se basan en el conocimiento de la mejor práctica de la empresa.
Proveen el marco de trabajo alrededor del cual se implementa el proceso de garantía de
la calidad.
Permite que una persona continúe con facilidad el trabajo iniciado por otra. El utilizar
buenas prácticas por todo el personal de la organización reduce el esfuerzo de aprendi-
zaje cuando se inicia un nuevo proyecto.
1.2. Planificación de la calidad
La planificación de la calidad es el proceso en el cual se desarrolla un plan de calidad para un
proyecto. Define la calidad del software deseado y describe cómo debe valorarse como se detalla
en el siguiente gráfico:
Control de la Aseguramiento
calidad de la calidad
Revisiones y Laboratorios Marco de Estrategia
auditorias de certificación referencia de mejora
Productos Proce- Productos final y
(Entregables) sos organizaciones
Humphrey1, propone una estructura para un plan de calidad basado en los siguientes pasos:
Introducción del producto. Debe incluir la descripción del producto, el mercado al que se
dirige y las expectativas de calidad.
Planes de producto. Contiene las fechas y plazos de terminación de producto y las respon-
sabilidades asignadas.
Descripciones del proceso. Contiene los procesos de desarrollo y de servicio.
Metas de calidad. Contiene metas y planes de calidad para el producto, que deberán incluir
la identificación de los atributos seleccionados como más relevantes.
Riesgos y gestión de riesgos. Contiene los riesgos clave que podrían afectar la calidad del
producto.
Durante el proceso de planificación de la calidad debe considerarse los siguientes atributos de
calidad:
1
Humphrey, Watts S. 1989. Managing the software process. Addison-Wesley, USA.
Seguridad Comprensión Portabilidad Protección Experimentación
Usabilidad Fiabilidad Adaptabilidad Reutilización Flexibilidad
Modularidad Eficacia Robustez Complejidad Aprendizaje
Por lo general, no se utiliza todos los atributos para un sistema, por lo que, debe priorizarse
los atributos más relevantes para un determinado producto a desarrollar.
1.3. Control de la calidad
El control de calidad considera la vigilancia del proceso de desarrollo de software para asegurar
que se sigan los procedimientos y los estándares de garantía de calidad.
La obtención de un software con calidad implica la utilización de metodologías o procedimientos
estándares para el análisis, diseño, programación y prueba del software que permitan uniformar
la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de
prueba.
La política establecida debe estar sustentada sobre tres principios básicos:
El principio tecnológico. Define las técnicas a utilizar en el proceso de desarrollo del soft-
ware.
El principio administrativo. Contempla las funciones de planificación y control del desarro-
llo del software, así como la organización del ambiente o centro de ingeniería de software.
El principio ergonómico. Define la interfaz entre el usuario y el ambiente automatizado.
La adopción de una buena política contribuye en gran medida a lograr la calidad del software,
pero no la asegura. Para el aseguramiento de la calidad es necesario su control o evaluación.
El control de calidad se puede realizarse desde dos enfoques:
Revisión personal. El proceso de revisión de calidad de software, documentación y los pro-
cesos están a cargo de un grupo de personas.
Revisión automática. El proceso de revisión de calidad de software, documentación y los
procesos es realizado por un programa utilizando para ello una medida cuantitativa de algu-
nos atributos de software basados en métricas: inspecciones de diseño o programa, revisiones
de progreso y revisiones de calidad.
El equipo de garantía de calidad debe crear un manual de estándares, el que debe incluir:
1. Estándares de producto
Formulario para revisión de diseño
Estructura del documento de requerimiento
Formato del encabezado de método
Formato de plan de proyecto
Estilo de programación
Formulario de petición de cambios
2. Estándares de proceso
Conducto para la revisión de diseño
Proceso de entrega de versiones
Proceso de aprobación del plan de proyecto
Proceso de registro de pruebas
2. Normas de calidad
Comúnmente se interpreta como norma a un conjunto de reglas, parámetros o principios que definen
un comportamiento, o regulan un proceso.
Una norma de calidad es una regla o directriz para las actividades, diseñadas con el fin de conseguir
un grado óptimo de orden en el contexto de la calidad. Es un documento, establecido por consenso y
probado por un organismo reconocido (nacional o internacional), que proporciona, para un uso co-
mún y repetido, reglas, directrices o características para las actividades de calidad o sus resultados,
con el fin de conseguir un grado óptimo de orden en el contexto de la calidad.
3. Estandarización
La estandarización es toda actividad documentada que norma el comportamiento de un grupo de
personas. Los estándares nos dan los medios para que todos los procesos se realicen siempre de la
misma forma, mientras nos surjan ideas para mejorarlos. Son nuestra guía para la productividad y la
calidad.
3.1. Expectativas de los estándares:
Mejora de procesos de software acorde a los objetivos estratégicos
Mejora de los productos
Protección del cliente o usuario
Protección de la organización (cultura de la organización y mejora continua)
Existen varias organizaciones de estandarización internacional, algunas son regionales mientras
que otras son globales. Las últimas están relacionadas con la ONU o son independientes, como
por ejemplo la International Telecomunication Union (ITU) La International Electrotechnical
Commission (IEC) que fue fundada en el año 1906 para definir estándares en eléctrica y electró-
nica, mientras que la International Organization for Standarization (ISO) fue creada en 1947 para
abarcar otros temas. Ambas tienen por objetivo facilitar el intercambio de bienes y servicios a
nivel internacional, entre otras.
Organizaciones como la ISO, BOOTSTRAP, entre otras se han dedicado a crear modelos para
mejorar la Calidad del Software, entre ellos tenemos:
ISO 9000, 9001, 9126
Tick IT (Inglaterra)
CMMI (Estados Unidos)
Bootstrap (Europa)
Trillium (Canadá)
ISO/SPICE (Australia )
4. Estándares de documentación.
Los estándares de documentación en un proyecto de software son documentos muy importantes ya
que son la única forma tangible de representar al software y su proceso. Los documentos deben ser
fáciles de leer y de comprender 2.
4.1. Tipos de estándares de documentación:
Estándares del proceso de documentación. Define que proceso seguir para la producción
del documento.
Estándares del documento. Determinan la estructura y presentación de los documentos.
2
ISO 9000 constituye un conjunto de estándares internacionales que se pueden utilizar en el desarrollo de un sistema de gestión de calidad en
todas las industrias. ISO 9001 define que estándares y procedimientos deben considerarse en una organización, los cuales deben documentarse
en un manual de calidad organizacional. La norma ISO 9126 hacen referencia a la operación, transición y revisión del software y aunque no
las dividen en estos tres grupos, señalan entre otras cosas la necesidad de lograr que el software opere correctamente y con el grado de exactitud
requerido, que los usuarios sean capaces de entenderlo y usarlo, es decir que sea amigable con quienes interactúen con él, que sea capaz de
responder correctamente ante fallos o cambios del entorno y que proporcione una ejecución o desempeño apropiado, teniendo en cuenta los
recursos utilizados.
Estándares para el intercambio de documentos. Permiten que todas las copias electrónicas
de los documentos sean compatibles
5. Proceso de medición
Todo proceso de medición del software tiene como objetivo fundamental satisfacer necesidades de
información a partir de las cuales se deben identificar las entidades y los atributos que deben ser
medidos. Las mediciones se realizan para hacer predicciones generales acerca del sistema, o bien
para identificar componentes anómalos. Para la medición se utilizan métricas, que son medidas rela-
cionadas con un sistema, proceso o documentación de software. Las métricas pueden ser de control
o de predicción.
5.1. Fases del proceso de medición
El proceso de medición se realiza a través de varias fases como:
5.1.1. Elegir medidas a realizar. Debe definirse claramente lo que se quiere medir. Para ello
debe formularse las preguntas que la medición quiere responder y definir las mediciones
requeridas para resolver las preguntas.
5.1.2. Seleccionar componentes a valorar. Se debe elegir un conjunto de componentes repre-
sentativos, para la medición, no es necesario medir todos los componentes.
5.1.3. Medir características de los componentes. Se miden los componentes seleccionados y
se calculan los valores de las métricas.
5.1.4. Identificar medidas anómalas. Luego de obtener las mediciones de los componentes,
se comparan entre sí con las mediciones de una base de datos de mediciones.
5.1.5. Analizar componentes anómalos. Luego de identificados los componentes anómalos
para las métricas particulares, se examinan estos componentes para decidir si los valores
de las métricas indican que la calidad de los componentes está en peligro.
5.2. Clasificación de métricas.
Con el fin de describir la conducta del software, se establecen las métricas que miden, entre otros
aspectos, la competencia, calidad, desempeño y complejidad del software.
Presentamos a continuación la clasificación de las mismas:
5.2.1. Métricas de complejidad: Definen la medición de la complejidad, tales como volumen,
tamaño, anidaciones, costo (estimación) y configuración. Estas son los puntos críticos de
la concepción, viabilidad, análisis y diseño de software.
5.2.2. Métricas de calidad: Definen la medición de la calidad del software, tales como exacti-
tud, estructuración o modularidad, pruebas, mantenimiento, reusabilidad, entre otras. Es-
tos son los puntos críticos en el diseño, codificación, pruebas y mantenimiento.
5.2.3. Métricas de competencia: Definen la valoración de las actividades de productividad de
los programadores o practicantes con respecto a su certeza, rapidez, eficiencia y compe-
tencia.
5.2.4. Métricas de desempeño: Definen la medición de la conducta de módulos y sistemas de
un software, bajo la supervisión del sistema operativo o hardware. Generalmente tienen
que ver con la eficiencia de ejecución, tiempo, almacenamiento, complejidad de algorit-
mos computacionales, etc.
5.2.5. Métricas estilizadas: Definen los mecanismos para medir la experimentación y prefe-
rencia, por ejemplo, estilo de código, las convenciones denominado de datos, las limita-
ciones, etc.
6. Conclusiones
La industria de software viene desarrollándose en los últimos años y con ello la necesidad de pro-
ducir software de calidad. Para lograr se tienen en cuenta numerosos factores entre los que se en-
cuentran las métricas de software, una herramienta indiscutible para ayudar a mantener el control
de los procesos y productos durante el desarrollo del software.
La administración de la calidad es esencial a lo largo de todos los pasos de desarrollo de un sistema.
Los planes de calidad pueden variar, en función del tamaño y el tipo del sistema a desarrollar.
La redacción del plan de calidad debe ser lo más compacto posible, a fin de que los ingenieros lean
y cumplan. Si son muy extensos y complicados, se corre el riesgo de no ser considerado y poniendo
en riesgo la consecución de un plan de calidad.
Dependiendo del tipo de software requieren distintos procesos de desarrollo.
Cada gestor de proyecto deberá decidir qué estándares de procesos utilizar, o modificarlos si es
necesario.
La norma ISO 9000 constituye un conjunto de estándares internacionales que se pueden utilizar en
el desarrollo de un sistema de gestión de calidad en todas las industrias.
La norma ISO 9001 define qué estándares y procedimientos deben considerarse en una organiza-
ción, los cuales deben documentarse en un manual de calidad organizacional.
La norma ISO 9126 hace referencia a la operación, transición y revisión del software y aunque no
las divide en estos tres grupos, señala entre otras cosas la necesidad de lograr que el software opere
correctamente y con el grado de exactitud requerido, que los usuarios sean capaces de entenderlo y
usarlo, es decir que sea amigable con quienes interactúen con él, que sea capaz de responder correc-
tamente ante fallos o cambios del entorno y que proporcione una ejecución apropiado, teniendo en
cuenta los recursos utilizados.