Calidad Del Software Utt

15
1 Calidad del Software. Ing. José Luis Sánchez Vázquez, UTTN. [email protected] ResumenLos 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 clavesIEEE, 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

Transcript of Calidad Del Software Utt

Page 1: Calidad Del Software Utt

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

Page 2: Calidad Del Software Utt

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.

Page 3: Calidad Del Software Utt

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]

Page 4: Calidad Del Software Utt

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,

Page 5: Calidad Del Software Utt

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

Page 6: Calidad Del Software Utt

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

Page 7: Calidad Del Software Utt

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.

Page 8: Calidad Del Software Utt

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]

Page 9: Calidad Del Software Utt

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

Page 10: Calidad Del Software Utt

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.

Page 11: Calidad Del Software Utt

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.

Page 12: Calidad Del Software Utt

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

Page 13: Calidad Del Software Utt

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).

Page 14: Calidad Del Software Utt

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.

Page 15: Calidad Del Software Utt

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]