Alternativas para mejorar la Calidad del Software

Anuncio
Alternativas para mejorar la
Calidad del Software
Como es bien sabido por las profesionales de la industria del software, la calidad del software se define
como el grado en que un producto de software satisface las necesidades explícitamente solicitadas
(requerimientos explícitos) y las necesidades implícitas esperadas por el cliente (requerimientos
implícitos). En este sentido esta década ha contribuido a mejorar la calidad de los sistemas informáticos al
considerar, dentro de la especificación de requisitos del software a las características de calidad “no
funcionales”, como ser la facilidad de uso conocida como usabilidad, la eficiencia o performance,
interoperabilidad con otros sistemas, portabilidad a otros entornos. Aún falta un camino por recorrer en lo
que hace a la identificación temprana de requisitos de confiabilidad (tolerancia a fallas, capacidad de
recuperación), y a la facilidad del mantenimiento, las cuales son características importantes a considerar,
teniendo en cuenta los problemas que evitarían en el futuro uso del sistema.
Para mejorar en estos aspectos debemos utilizar como herramientas los estándares internacionales, de
manera de mejorar nuestra industria. Para mejorar la calidad de las aplicaciones de software no sólo
basta con alinearnos a estándares de calidad de producto, sino que es necesario mejorar los procesos de
desarrollo y mantenimiento. Como indica la norma ISO/IEC 9126-1, mejorando la calidad del proceso se
mejoran los atributos internos del software, lo que mejora sus atributos externos impactando en la
calidad en el uso. La norma también explica que, conocer las características y sub-características de
calidad de nuestro producto es necesario para alinear nuestro proceso de manera que el producto
resultante conlleve esas características deseadas.
El primer problema que se presenta al emprender un proyecto de mejora que persigue una adecuada
calidad del software, es elegir la o las normas directrices para implementar esa mejora, las cuales nos
guían en el proceso y, en el caso de las normas certificables, nos permiten alcanzar el reconocimiento a
través de la certificación.
Hoy en día existen más de 400 normas internacionales (ISO/IEC) relacionadas con la ingeniería de software
y sistemas. Las normas usualmente se orientan a los procesos o a los productos. En lo que respecta a la
calidad del software y para facilitar su comprensión, las he clasificado en 3 conjuntos solapados: normas
orientadas a productos, normas orientadas a procesos, y normas orientadas a la gestión, las cuales para
muchos autores están incluidas dentro del conjunto de normas orientadas a procesos. Esta separación la
he realizado viendo al conjunto de normas de procesos con una especialización en TI, mientras que las
normas de gestión son más amplias, incluyendo no sólo los sistemas de gestión del software sino otros
como ser gestión ambiental, gestión energética, gestión de riesgos, etc. Esta posición ha sido adoptada
por IRAM, el Instituto Argentino de Normalización y Certificación que representa al país en la
Organización Internacional de Estandarización conocida como ISO.
A su vez hemos realizado una sub-clasificación en lo que respecta a las normas de procesos TI, en las
cuales se ha incluido a las normas del ciclo de vida, como hilo conductor de los procesos, y a las normas
de servicios de TI, que especifican buenas prácticas para la gestión de los servicios.
A continuación se detallan las principales normas de cada grupo:
CALIDAD DEL PRODUCTO
IRAM-ISO/IEC 14598 – Tecnología de la Información – Ingeniería de software - Evaluación del producto de
software.
NM-IRAM-ISO/IEC 9126 - Ingeniería de software – Calidad del producto.
NOTA: Actualmente el JTC1/ SC7 de la ISO está elaborando una serie de normas para la evaluación del
producto bajo el título general de SQuaRE (Software Quality Requirements and Evaluation) que abarcará a las
normas ISO/IEC 14598 e ISO/IEC 9126.
La serie de normas IRAM-ISO/IEC 14598 proporciona un marco de trabajo para evaluar la calidad de todos
los tipos de productos de software e indica los requisitos de los métodos de medición y del proceso de
evaluación. La serie consta de seis partes, tres generales y tres que describen los requisitos del proceso de
evaluación en situaciones diferentes:

requisitos para desarrolladores (parte 3);

requisitos para compradores (parte 4);

requisitos para evaluadores (parte 5).
Esta serie se está terminando de publicar como serie de normas argentina (a la fecha se han publicado las
primeras cuatro partes y están en estudio las dos faltantes). A nivel MERCOSUR se mantiene el mismo
estado de publicación.
La serie de normas ISO/IEC 9126-1:2009 define las características de calidad del producto de software
(parte 1), las métricas internas y externas (partes 2 y 3), y la calidad en uso, que explica cómo la calidad
del producto está sujeta a las condiciones particulares de uso (parte 4).
De esta serie sólo se ha publicado como norma argentina IRAM-NM-ISO/IEC la parte 1, como adopción
directa de la norma MERCOSUR (NM). Uruguay ha publicado la parte 2 como norma UNIT-ISO/IEC.
GESTIÓN DE LA CALIDAD
IRAM-ISO 9001:2008 – Sistemas de gestión de la calidad – Requisitos.
IRAM-ISO/IEC 90003: 2006 Tecnología de la Información - Ingeniería de software – Directrices para la
aplicación de la norma IRAM-ISO 9001 al software.
Estas dos normas forman un conjunto. La IRAM-ISO 9001 especifica los requisitos para un sistema de
gestión de la calidad, es la norma que se certifica, y la IRAM-ISO/IEC 90003 es su guía de aplicación para la
industria del software. El foco de estas normas es lograr la satisfacción del cliente a través de la
aplicación eficaz de un sistema de gestión de la calidad que incluya los procesos para asegurar la mejora
continua.
CALIDAD DEL PROCESO
ISO/IEC 15504 – Tecnología de la Información – Evaluación de procesos.
CMMI - Modelo de madurez de las capacidades, integración de disciplinas: ingeniería de sistemas,
ingeniería de software, desarrollo de productos y procesos, y gestión de proveedores.
NMX-059/01-NYCE-2005 TI-Software-Modelos de procesos y evaluación para el desarrollo y
mantenimiento de software.
La serie de normas ISO/IEC 15504 hoy en día evalúa no sólo la capacidad de los procesos, sino también la
madurez. Esta serie de normas ha sido estudiada por el Subcomité 7 Software and Systems Engineering del
JTC1, Comité Técnico Conjunto de ISO (Internacional Standardization Organization) e IEC (International
Electro technical Commission). El CMMI es un modelo desarrollado por el SEI (Software Engineering
Institute) de Carnegie Mellon University (USA), que tomó como antecedente a las partes de la norma
ISO/IEC 15504 referidas a la evaluación por niveles de capacidad, y fue el precursor en lo que respecta a
la madurez. Otra norma a destacar hoy en día es la NMX-59/01: la norma mexicana referente a MoProSoft
(Modelo de Procesos para la industria de Software), cuya importancia radica no sólo en que está siendo
bien adoptada en México, sino que ha sido considerada como antecedente de la norma peruana NTP
291100, y como antecedente del modelo Iberoamericano COMPETISOFT (disponible en Internet) y como
antecedente de la futura norma ISO/IEC para PyMEs: la ISO/IEC 29110, en cuyo estudio estoy participando
como delegada argentina.
El propósito de utilizar una o más de estas normas puede ser:

entender el estado actual de los procesos, en pro de mejorar su eficacia y eficiencia,
teniendo en cuenta las necesidades del negocio;

identificar las fortalezas y debilidades de los procesos, para evaluar si se puede cumplir
con uno o más requerimientos particulares;

determinar la capacidad de los procesos de la propia o de otra empresa, antes de firmar
un contrato.
CICLO DE VIDA
ISO/IEC 12207:2008 – Tecnología de la Información – Procesos del ciclo de vida del software.
ISO/IEC 15288:2008 – Systems and software engineering -- System life cycle processes.
NOTA 1: Estas normas fueron revisadas y vueltas a publicar en el año 2008.
NOTA 2: Existen guías sobre estas normas como ser la ISO/IEC 15271 y la ISO/IEC19760 respectivamente.
La norma ISO/IEC 12207 describe los procesos del ciclo de vida del software. Su versión anterior
clasificaba los procesos en los siguientes 3 grupos: los procesos principales del ciclo de vida (adquisición,
suministro, desarrollo, operación y mantenimiento), los procesos de apoyo (documentación,
administración de la configuración, aseguramiento de la calidad, verificación, validación, revisión
conjunta, auditoría y solución de problemas), y los procesos organizativos del ciclo de vida (gestión,
mejora, infraestructura y recursos humanos). La nueva versión ha incorporado procesos de ingeniería de
sistemas, aumentando su complejidad.
CALIDAD DEL SERVICIO
IRAM-ISO/IEC 20000-1: 2008 – Tecnología de la Inf. – Gestión de los servicios – Parte 1: Especificación.
NM-ISO/IEC 20000-2: 2009 – Tecnología de la Inf. – Gestión de los servicios – Parte 2: Código de práctica.
La serie de normas ISO/IEC 20000 proporciona un marco para ofrecer servicios bien administrados que
sean a un mismo tiempo eficientes y económicos. Incluye las mejores prácticas de procesos, y se utiliza
para satisfacer tanto a los clientes externos como a los internos. Es especialmente útil para homogeneizar
los servicios en una cadena de abastecimiento.
La parte 2 de la norma ISO/IEC 20000 proporciona lineamientos que sirven de guía a los responsables de
implementarlos el proceso de mejora de los servicios. Se puede utilizar en cualquier tipo de organización,
independientemente de su estructura.
La subcategoría de Gestión de los servicios de TI se incluye tanto en el conjunto de normas de procesos de
TI, como en el de Gestión.
Certificación de la calidad del Software
Una vez lograda la implementación de las normas es importante lograr que una parte independiente
certifique que los sistemas estén correctamente aplicados y efectúe su seguimiento en el tiempo. Lo
mismo ocurre con la certificación de la calidad de los productos.
Esta certificación tiene como beneficios:







alinear la gestión y el desarrollo de los sistemas de información a los objetivos de la
actividad,
brindar una mayor visibilidad a los proyectos de sistemas para facilitar su seguimiento,
permitiendo alcanzar las metas con éxito,
incorporar las mejores prácticas en todas las áreas de proceso relacionadas con el
desarrollo, mantenimiento e integración de los sistemas informáticos,
implantar una cultura de la Calidad que permita mantener los procesos en un círculo de
mejora continua,
demostrar la capacidad de la empresa para elaborar y entregar productos que satisfagan
los requerimientos de sus clientes, respetando las reglamentaciones aplicables,
mejorar la imagen de la compañía en pro de las crecientes posibilidades de exportación
del software,
incrementar la competitividad de las empresas del sector.
Percibiendo la importancia que tiene la calidad en el desarrollo, adquisición, operación y mantenimiento
del software, el Instituto Argentino de Normalización y Certificación (IRAM) firmó un convenio de
cooperación técnica regional con el Banco Interamericano de Desarrollo (BID), con el propósito de
elaborar normas técnicas que faciliten el acceso de las empresas a la exportación con calidad certificada,
con especial atención a la problemática particular de las PyMEs. En este convenio, BID-FOMIN ATM/ME
8532 – RG, participan: el IRAM, el Instituto Uruguayo de Normas Técnicas (UNIT), la Asociación Brasilera
de Normas Técnicas (ABNT), el Instituto Nacional de Normalización de Chile (INN) y la Asociación
MERCOSUR de Normalización (AMN).
El convenio no sólo contempla la elaboración de normas, sino la sensibilización y capacitación de las
empresas del sector, para que comprendan las ventajas de mejorar sus procesos de producción de
software y los beneficios que brinda la certificación.
Mg. Paula María Angeleri
Profesora de Diseño de sistemas, Ingeniería de software y Métricas de Software
–
Facultad de Tecnología Informática – UB
Responsable técnico del programa Calidad de software del proyecto BID-FOMIN
ATN-ME-8532-RG
Delegada argentina ante el ISO/IEC JTC1/SC7 Software and systems
engineering
Descargar