1
Calidad del Software. Ing. José Luis Sánchez Vázquez, UTTN. [email protected]
Resumen— Los profesionistas egresados de las carreras relacionadas con las Ciencias
Computacionales se confrontan al dilema, entre desarrollar software para un mercado
local limitado o generar productos para competir en un mundo globalizado. Obviamente
la segunda opción es la más atractiva, a pesar de que implica la producción de software basada en normas y estándares internacionales, también representa mayores beneficios
económicos. Producir software por producir, pero producir software para satisfacer las
necesidades reales de los usuarios, basados en estándares o modelos de calidad, aquí esta
lo interesante. Este documento describe una revisión a la literatura de las principales
normas y modelos aplicados para generar productos de software de calidad. Esta descripción tiene como objetivo, motivar al lector a conocer los usos, costos y
beneficios, de la aplicación de la Calidad del Software. Temas claves— IEEE, ISO, SPICE, CMM, Boostrap, SQA, Moprosoft.
I. INTRODUCCIÓN
S egún la IEEE 729-83[a], la calidad del software es:
“Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas”. La
norma ISO 8402:1984 [b], la define como “Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud para satisfacer necesidades explícitas o
implícitas”.
Roger Pressmann la define como :“Concordancia del software producido con los requerimientos
explícitamente establecidos, con los estándares de desarrollo prefijados y con los
requerimientos implícitos no establecidos formalmente, que desea el usuario”
Hablar acerca de la calidad que un software debe de tener, es un tema bastante amplio y en
ocasiones desconcertante. Por años las Escuelas de Educación Media Superior y Superior en
México, se han afanado en ofrecer a sus educandos, especialidades y carreras relacionadas con
la generación de productos de software, como por ejemplo: Técnico analista programador, o
Ingeniería en Sistemas Computacional; pero en los orígenes de la enseñanza, se les
proporciona a los estudiantes las bases para que sean programadores, ya durante la carrera, ven tópicos complementarios, los cuales los llevan al término de ésta, a ser excelentes
Ingenieros o Licenciados.
¿Pero y dónde quedó la calidad del software? Se supone que según las definiciones, la calidad
debe de estar inmersa a todo lo largo del ciclo de vida seleccionado, para elaborar el producto
de software.
En la realidad, las asignaturas, en ciertos planes de estudio, están tan desvinculadas, que se
considera a la calidad del software como un ente aparte, como un tópico complementario, como
un aporte que no tiene nada que ver con las cuestiones de programación. Entonces ¿Cómo se
2
puede dar calidad a un software, bajo estas condiciones?
II. FUNDAMENTACIÓN
Antes que nada se debe de entender la importancia de la calidad del software, en cómo influye
en el proceso a automatizar, en las herramientas y métodos a utilizar, incluso cómo impacta al
usuario el estar utilizando normas y/o modelos de calidad, al momento del desarrollo del
producto. Figura 0.
Figura 0. Impacto de la calidad del software
,
Según el modelo de calidad descrito en la ISO 9126 [3] figura 1, la calidad de un proceso
contribuye a mejorar la calidad del producto, y, a su vez, la calidad del producto contribuye a
mejorar la calidad en su uso.
La finalidad de la calidad en uso, es medir la efectividad, productividad, seguridad y la
satisfacción de los usuarios pertenecientes a perfiles determinados que interactúan con el
producto en escenarios específicos de uso [1].
Cuando se habla de características de un
producto, existen dos tipos de calidad: calidad de diseño, calidad de concordancia. Calidad de
diseño, se refiere a las características que los diseñadores especifican para un elemento. La
calidad de concordancia es el grado en el que las especificaciones de diseño se aplican durante
la fabricación.
3
Fig. 1. Calidad del Proceso. ISO 9126 [9]
Al principio de éste artículo se mencionó que la calidad del software puede ser desconcertante,
¿Por qué?, porque desde el primer momento en que uno se sumerge en éste tópico, se abre
ante nosotros un mundo totalmente nuevo y desconocido.
Cada vez que uno camina un paso más en el concepto de la calidad del software, se encuentra
con información tan nueva, tan variada, tan amplia, que pareciera ser que no terminara
nunca.
Se empiezan a conocer, los modelos y las métricas, cada una con sus conceptos, definiciones,
alcances y aplicaciones. Todas igualmente importantes, todas igualmente complejas.
Entonces, nos damos cuenta, de que cada paso del ciclo de vida para el desarrollo de
productos de software, tiene una norma ISO.
Empezamos a conocer las ventajas que tiene el trabajar bajo normas de calidad: disminución
de costos, eficiencia en el mantenimiento, construcción de mejores productos, aumento en la
competitividad, funcionalidad, rendimiento, usabilidad y aseguramiento de la calidad. [2]
Normalmente, se escucha o aplica, la norma ISO 9001:2000, para acreditar algún proceso
administrativo u organización, pero ¿Cuántas normas ISO conocemos para el desarrollo de
productos de software?.
La ISO 9126 [c] figura 2, (Internacional Standard “Information technology – Software Product
Quality”), define 6 características que debe de cumplir toda aplicación para que sea un
producto de calidad: [1]
4
Fig. 2. El estándar ISO 9126 [9]
1. Funcionalidad :
Es la capacidad de un software de satisfacer los requisitos funcionales prescriptos y las necesidades implícitas de los usuarios
2. Fiabilidad :
Es la capacidad de un software de mantener su nivel de desempeño, bajo condiciones
establecidas, por un periodo de tiempo
3. Usabilidad: Es la capacidad de un software de ser comprendido, aprendido, usado, atractivo
y conforme con las reglamentaciones y guías de usabilidad
4. Eficiencia: Es la capacidad de un software de proporcionar un rendimiento apropiado, de
acuerdo a la cantidad de recursos usados bajo condiciones establecidas
5. Mantenibilidad: Es la capacidad de un software para ser modificado. Las modificaciones
pueden incluir correcciones, mejoras o adaptación del software a cambios en el entorno, en los
requisitos o en las especificaciones funcionales
6. Portabilidad: Es la capacidad de un software de ser transferido de un ambiente a otro Nota:
El ambiente puede ser organizacional, de software o de hardware [5]
Pero hay muchos más estándares en el mercado: ISO 9000-3 [d] , ISO 9004-2 [e] , ISO/IEC
12207 [f] , ISO/IEC 15504 [g] mejor conocida como SPICE y modelos: CMM (en todas sus
versiones), Boostrap , WQM, PQM, PSP [6], PSE [6] y el estándar mexicano Moprosoft [3]. Algunos de los anteriores se aplican a la generación del producto del software y algunos otros,
5
a medir la madurez de los procesos mediante los cuales se produce el mismo.
II. PRINCIPALES CARACTERISTICAS DE NORMAS Y MODELOS
ISO 9001 [h] e ISO 9000-3 [i]. Figura 3: -Muy útil en compañías que además de software
fabrican equipos
Define los procesos de calidad tanto en compañías de hardware como de software.
Muy utilizado en Europa.
Figura 3. Categorías del ISO 9000
6
CMM (Capability Maturity Model). Figura 4.
El modelo más empleado y maduro valora el desarrollo de software en sistemas de gran
complejidad Visión completa del proceso de madurez organizacional
Incluye mecanismos para mejora continua de los procesos
Figura 4. Niveles de madurez del CMM Bootstrap: Figura 5.
Propone un método y los instrumentos necesarios que permiten identificar los puntos
débiles de la organización, además de presentar los cambios necesarios para obtener una
mejora de la situación. [7]
Valora la madurez global de una organización -Examina procesos individuales de
software y valora la conveniencia y el impacto de nuevas tecnologías
7
Figura 5. Proceso de valoración del modelo Bootstrap
SPICE: (“Software Process Improvement and Capability Determination”)
Combina elementos de ISO, CMM y Bootstrap -Enfocado a estudiar el nivel de
madurez de los procesos individuales (tiene en cuenta el contexto de los procesos
evaluados). Figura 6.
Incluye 6 niveles de madurez:
No realizado. Es imposible identificar salidas en los procesos.
Realizado informalmente. No se identifican muchos procesos y éstos no están
debidamente planificados
Planificado y seguido. Los procesos están bien planificados y administrados.
Bien definido. Procesos bien adaptados, planificados y documentados. Se inician con el
estándar.
Cuantitativamente Controlado. Hay medición, control y retroalimentación en los
procesos.
Mejoramiento continuo. Los procesos se basan en los objetivos de la organización, el
estándar forma parte de su forma de trabajo y se busca la mejora continua.
Objetivo: definir un marco común de referencia en el que convivan el resto de los
modelos mencionados. -Produce un perfil del proceso, en vez de un resultado válido/no
válido.
8
Figura 6. Modelo SPICE
Moprosoft (Modelo de procesos de la industrial del software)
[3] Figura 7. -Cumple con los requerimientos expresados por la industria de software nacional
Modelo alineado con SPICE y CMM
Orientado a mejorar los procesos para contribuir a los objetivos del negocio y no
simplemente ser un marco de referencia de certificación
Práctico y fácil de aplicar, sobre todo en organizaciones pequeñas.
Figura 7. Categorías y procesos del Moprosoft [10]
9
Los anteriores, son de los más usados, aunque eso no indica que sean los más importantes, ya
que todos fueron concebidos con un único propósito: “Brindar calidad al producto de software,
satisfaciendo los requerimientos del cliente”.
Hasta el momento, se percibe que el ámbito de la calidad del software es sumamente amplio, que va inmerso dentro del ciclo de vida y aún más allá. ¿Pero, es a caso que los programadores deben ser también expertos en calidad del software? ¿Quién corrobora que se esté aplicando realmente?
Contestando la primera pregunta, los programadores y todos los que tienen que ver con el
desarrollo de un producto de software, deben de conocer, el estándar de calidad sobre el cual se va a trabajar. Si el equipo de trabajo no lo conoce y no lo sabe aplicar, dudosamente se
llegará a un producto terminado bajo un esquema de calidad.
III. ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE
La calidad del software siempre va de la mano de otro tópico igual de importante, el SQA. No
puede existir uno sin la presencia del otro. El aseguramiento de la calidad del software (SQA),
es un conjunto de actividades planificadas y ejecutadas sistemáticamente que aseguraran que
el software que se está construyendo es de alta calidad.
En los procesos de calidad del software actúan dos tipos de integrantes diferentes: Los
ingenieros de software que realizan el trabajo técnico y, un grupo SQA que tiene la responsabilidad de planificar, supervisar, guardar registros, analizar y reportar la garantía de
calidad, auxilian al equipo de desarrollo a obtener un producto final de alta calidad. [4]
El grupo de SQA se encarga de:
Preparar un plan de SQA para un proyecto.
-Participar en el desarrollo de la descripción del proceso de software del proyecto.
Revisar las actividades de ingeniería del software
Auditar productos de trabajo de software seleccionados
Garantiza que las desviaciones en el trabajo de SW y en los productos de trabajo estén
documentadas.
Registra cualquier falta de ajuste
Las revisiones del software son un filtro para el proceso de software, es un medio
efectivo para descubrir errores y mejorar la calidad del software.
Corroboran la fiabilidad del software
Evalúan continuamente la seguridad del software. Figura 8.
Determinan la confiabilidad del software
10
Figura 8. Desglose de la evaluación del software [6]
IV. COSTOS Y BENEFICIOS
Como se puede observar, para el desarrollo de un producto de software, deben de intervenir
dos equipos: el primero, el que generará el producto final basado en un estándar de calidad y el
segundo, el que corroborará que ese estándar se encuentre bien aplicado.
Todo lo anterior se lee fantástico, un producto de software, con una garantía asegurada de
calidad, a la vista de usuario es una oportunidad única de satisfacer sus necesidades y
expectativas de una sola vez.
Pero, ¿Cuánto cuesta?, los productos de software generados mediante esta vía, son productos
caros, porque es de todos sabido, que la calidad cuesta, tanto a quien la adquiere, como quien
la aplica.
La buena calidad cuesta mucho llevarla a cabo, (se invierte tiempo, dinero y mucho esfuerzo),
pero es mayor el costo de la mala calidad, el mal servicio y no cumplir con los requerimientos
especificados por el cliente.
El llevar a una empresa arraigada en el mercado por la senda de los estándares de calidad del
software, puede costarle años de lucha constante, y demasiados gastos administrativos; pero el
resultado final siempre es el mismo: La empresa logra reconocimiento no solo a nivel local,
regional o nacional, obtiene un reconocimiento internacional.
No volverán a ser una empresa más en el mercado, serán una organización que marque la
diferencia con respecto a las otras. Además, el beneficio no solo será organizacional, sino
también personal, cada individuo que labore ahí, tendrá un crecimiento profesional, porque
aprenderán a trabajar con la calidad que su giro reclama.
Una empresa que obtenga acreditaciones bajo un estándar o modelo de calidad, garantiza que
los productos de software generados en ella, cumplen los requerimientos explícitos de sus
clientes.
11
V. CONCLUSIONES
Al principio de este artículo hacía una pregunta ¿Dónde quedó la calidad del software?:
En ocasiones se trabaja de manera heurística, tomando ideas de una u otra parte, leyendo
libros o navegando en Internet. Se crean productos de software sin tener idea alguna de que
existen estándares de calidad para ellos y grupos SQA, ni nada de lo que mencionamos
anteriormente.
Pero curiosamente esos productos de software funcionan y satisfacen las necesidades actuales
del cliente, claro solo son, minoristas locales independientes. Con éxito, pero solo eso, simples
propuestas sin competitividad real. Al seguir al pie de la letra el ciclo de vida seleccionado, se
está generando productos con una calidad mínima.
Al revisar la ISO 9126, nuevamente, es claro, que los productos que se generan, siguen esos
preceptos. Solamente que no se había efectuado esa percepción por desconocimiento de las
normas.
La calidad del software está ahí, en espera de tomar la decisión y entrar en su mundo, solo
hace falta dar el paso, ser constantes, poner todo nuestro empeño y dedicación y sobre todo,
no olvidar que está presente a todo lo largo del ciclo de vida.
Con todo lo anterior, es claro que la calidad del software, definitivamente no es un tópico
aparte, va de la mano, entrelazada, con las bases de datos, los sistemas distribuidos, en red,
en Web y todos los demás desarrollos que realicemos.
La actualización debe ser constante ya que este tópico, como todos los demás, en el área de
Sistemas e Informática se mueve rápido. La calidad del software cada vez se hace más
indispensable en este mundo globalizado. Si se quiere competir y ganar el mercado, hay que
utilizar estándares, en todos los ámbitos. Seguir la senda de la calidad es la receta para tener
un éxito asegurado.
12
Glosario:
III. REFERENCIAS ISO significa Organización Internacional de Estandarización
Reportes técnicos: [1] Mtl Lourdes Cahuich, “Calidad del software, apoyo SSD4” Disponible en: http://www.slideshare.net/lcahuich/calidad-del-software-presentation#stats-bottom
[2] Dra. Coral Calero Muñoz, “Modelos de calidad. WQM, PQM, e-commerce, portlets”. Calidad de sistemas de información. Departamento de Informática, Universidad de Castilla.La Mancha. 9 de mayo del 2005.
[3] Hanna Oktaba, AMCIS, UNAM y Claudia Alquicira Avantare Consultores. “Modelo de Procesos para la Industria de Software MoProSoft”. 30 dic 2008.
[4] Dra. Coral Calero Muñoz . “Gestión de calidad. Procesos de ingeniería de software”. Calidad de sistemas de información. Departamento de Informática, Universidad de Castilla.La Mancha. 18 de junio del 2007.
[5] Ing. César Chávarry Arias. Calidad del software. Semana de Ingeniería de Sistemas 2005.
[6] Leonardo Sarango Romero y Ruth Hidalgo Tene. El proceso del software. 15 octubre 2008
[9] Abraham Dávila ([email protected]), Karin Melendez ([email protected]) y Luis Flores ([email protected]), Sección Ingeniería Informática, Pontificia Universidad Católica del Perú, Lima, Perú. “Determinación de los requerimientos de calidad del producto software basado en normas internacionales”
[10] Paola Yuritzy Reyes Delgado1, Ma. Lourdes Y. Margain Fuentes1, Francisco Javier, Álvarez Rodríguez2 , y Jaime Muñoz Arteaga. “Diseño de un Instrumento de Auto-evaluación para Diagnosticar el Estatus de las Organizaciones en México con Respecto al Modelo ProSoft: Proceso de Gestión de Procesos de la Categoría de Gestión”
[11] Dr. Vidal Alonso Secades, Cesar Parejas Llanovarced, “Propuesta de un modelo de calidad del software aplicado a la Web”. Programa de doctorado en ingeniería en software. Universidad Pontificia de Salamanca. Facultad de Informática.
[12] Christian A. Estay-Niculcar, “Fundamentos de gestión de proyectos: e la teoría de proyectos a la gestión de proyectos según el PMBOK”.
Libros [7] Jesús Ma. Minguet Melián y Juan Francisco Hernández Ballesteros. La calidad del software y su medida. Editorial: Centro de estudios Ramón Areces, S.A. ISBN: 84-8004-611-2
[8] Christian A. Estay-Niculcar, Dr ©. Fundamentos de gestión de proyectos. De la teoría de proyectos a la gestión de proyectos según PMBOK. Libro electrónico de Universidad Técnica Federico Santa María-Chile. Departamento de Informática.
Estándares: [a] IEEE 729-83
[b] ISO 8402:1984 International standard, Quality management and quality assurance – vocabulary international organisation for standarisation 1994 39 pp. [c] ISO/IEC 9126, Software engineering -Product quality – 2001 [d] ISO 9000-3. Guideline for application of ISO 9001 to the development, supply and maintenance of software, 1991 [e] ISO 9004-2 Quality management and quality systems elements – guideline-1987 [f] ISO/IEC 12207 Framework of software life cycle processes [g] ISO/IEC 15504 Information technology. Software proccess assessment [h] ISO 9001Revision of ISO 9000: 1994 WQM: Web Quality Model [11]. Modelo tridimensional de calidad
13
de los sitios web que puede utilizarse para clasificar tanto las métricas web, como los trabajos de investigación realizados sobre la misma. Fig. 11.
PQM: Tiene como objetivo definir un modelo de calidad para portales, denominado PQM, para lo que se ha utilizado el método GQM. El modelo consta de 6 dimensiones: tangibles
(adaptabilidad y transparencia), confiabilidad (disponibilidad y calidad en la búsquedas),
capacidad de respuesta (escalabilidad y velocidad), aseguramiento (confidencialidad), empatía
(navegación, presentación, integración y personalización) y calidad de los datos (calidad de los
datos intrínseca, representación, accesibilidad, calidad de los datos contextual).
14
PSP: Proceso de software personal, propuesto por Watts Humphrey.[6]. Figura 9.
Figura 9. Fases del PSP
PSE: Proceso de software en equipo, propuesto por Watts Humphrey [6]. Figura 10.
15
Trillium: Modelo de madurez de gestión de proyectos.2000. Figura 12. El modelo ha sido diseñado para ser aplicado a
sistemas de software ‘empotrados’ tales como sistemas de telecomunicaciones, no obstante buena parte del modelo
puede ser aplicado a otros segmentos de la industria del software como sería el área de Management Information
Systems.[8]