1. UNIDAD I. ESTANDARES Y MODELOS DE CALIDAD APLICADOS AL
SOFTWARE.
Un Estándar de calidad es el que reúne los requisitos mínimos en busca de la
excelencia dentro de una organización institucional. Un estándar de calidad es
un documento que proporciona los requisitos, especificaciones, directrices o
características que pueden ser utilizadas consistentemente para asegurar que
los materiales, productos, procesos y servicios son adecuados para su
propósito.
Los estándares son útiles porque:
y más apropiado de las buenas prácticas y usos del
desarrollo de software.
de la calidad
o de personas y
organizaciones distintas .
El diccionario de la Real Academia Española (RAE) destaca que un modelo es
un arquetipo o punto de referencia para imitarlo o reproducirlo, o un ejemplar
que se debe seguir e imitar por su perfección. La calidad, por su parte, es una
propiedad y cualidad inherente de las cosas, que permite la comparación entre
éstas y otras de su misma especie. Se trata de una apreciación subjetiva que,
respecto a un usuario, implica satisfacer las necesidades y deseos (si lo logra,
es de buena calidad).
Un modelo de proceso es una colección estructurada de elementos que
describen características de procesos efectivos (aquellos que han demostrado
por experiencia ser eficaces).
Un modelo de calidad es, por lo tanto, un conjunto de prácticas vinculadas a los
procesos de gestión y el desarrollo de proyectos. Este modelo supone una
planificación para alcanzar un impacto estratégico, cumpliendo con los
objetivos fijados en lo referente a la calidad del producto o servicio. El modelo
debe reunir las actividades y funciones relacionadas con la calidad para que
puedan ejecutarse de un modo sistemático y formal.
Un modelo de gestión de calidad es un referente permanente y un instrumento
eficaz en el proceso de toda organización de mejorar los productos o servicios
que ofrece. El modelo favorece la comprensión de las dimensiones más
relevantes de una organización, así como establece criterios de comparación
con otras organizaciones y el intercambio de experiencias.
La utilización de un modelo de referencia se basa en que:
1. Evita tener que crear indicadores, ya que están definidos en el modelo.
2. Permite disponer de un marco conceptual completo.
3. Proporciona unos objetivos y estándares iguales para todos, en muchos
casos ampliamente contrastados.
4. Determina una organización coherente de las actividades de mejora.
2. 5. Posibilita medir con los mismos criterios a lo largo del tiempo, por lo que es
fácil detectar si se está avanzado en la dirección adecuada.
Los modelos de gestión de la calidad del software pueden enfocarse a la:
desarrollador.
emplea.
Abordaremos los modelos de calidad basados en el proceso, ya que son los
dominantes en la industria del software.
Existen diversos modelos, que previa adaptación pueden utilizarse en el ámbito
de la Ingeniería del Software (ISO) y otros que fueron desarrollados
especialmente para dicho ámbito, como son CMMI y SPICE, entre los mas
difundidos internacionalmente, y MoproSoft (NYCE NMX-I-059/02) a nivel
nacional.
Importancia de implementar Modelos y Estándares de Calidad de
Software.
Dado que la competencia es cada vez más fuerte, es necesario que las
empresas se preocupen en proporcionar un mejor producto. Aunado a esto, la
complejidad de los problemas que buscan una solución en el software va en
aumento de manera considerable, esto ha sobrepasado el aumento en la
habilidad de desarrollar y mantener el software por parte de las organizaciones
dedicadas a desarrollarlo o mantenerlo.
Por una parte las organizaciones quieren ser capaces de desarrollar y entregar
software confiable, a tiempo y apegado al presupuesto acordado con el cliente.
Y por otro lado el cliente, que quiere saber con certeza que todo lo anterior se
cumplirá.
Es por eso que las organizaciones deben buscar una norma, estándar o
modelo que pueda ayudarlos a conseguir su meta de calidad (competitividad).
La competitividad no es la única razón por la cual se busca la calidad en el
software. Debe darse importancia a cada actividad, artefacto o programa que
se desarrolla. Se debe tomar conciencia y responsabilidad de las
consecuencias que un defecto en el producto puede ocasionar. La calidad del
producto no solo se mide al término del producto, sino durante todo su proceso
de producción. La calidad del producto es responsabilidad de toda persona
involucrada en el proceso del mismo. La calidad de un producto está
determinada principalmente por la calidad del proceso usado para desarrollarlo
y mantenerlo. Es importante implementar un sistema de calidad por:
satisfacción del cliente, competencia y eliminación de defectos.
3. Porque falla la implementación de Modelos y Estándares de Calidad de
Software.
La buena implementación no solo involucra el seguir los puntos o
requerimientos que señalan cada uno de los modelos o estándares. El tener un
proceso y prácticas documentadas de nada sirve si no se siguen. Debe
además, existir un compromiso por parte de la alta gerencia, para proporcionar
los recursos necesarios para poder implementar el sistema de calidad y darle
seguimiento. Para implementar cualquier norma o modelo se deben tomar en
cuenta tres componentes:
Las prácticas deben institucionalizarse. La gente debe ser capaz y responsable
de seguir cada una de las prácticas que están definidas para toda la
organización. Las herramientas harán que las personas no vean al proceso
como algo hostil y fastidioso. Es necesario definir que se va a hacer, por quien
y cuando. Es importante definir el ciclo de vida de los procesos, ya que estos
marcan el objetivo de la organización.
ISO
La ISO (International Standarization Organization) es la entidad internacional
encargada de favorecer la normalización en el mundo. Con sede en Ginebra,
es una federación de organismos nacionales, éstos, a su vez, son oficinas de
normalización que actúan de delegadas en cada país, pueden ser delegaciones
gubernamentales o no, como por ejemplo: AENOR en España, AFNOR en
Francia, DIN en Alemania, etc. con comités técnicos que llevan a término las
normas. Se creó para dar más eficacia a las normas.
La finalidad principal de las normas ISO es orientar, coordinar, simplificar y
unificar los usos para conseguir menores costes y efectividad. Las normas
desarrolladas por ISO son voluntarias, es un organismo no gubernamental y no
depende de ningún otro organismo internacional, por lo tanto, no tiene
autoridad para imponer sus normas a ningún país. El contenido de los
estándares está protegido por derechos de copyright y para acceder a ellos el
público corriente debe comprar cada documento.
Está compuesta por representantes de los organismos de normalización (ON)
nacionales, que produce diferentes normas internacionales industriales y
comerciales. Dichas normas se conocen como normas ISO y su finalidad es la
coordinación de las normas nacionales, en consonancia con el Acta Final de la
Organización Mundial del Comercio, con el propósito de facilitar el comercio, el
intercambio de información y contribuir con normas comunes al desarrollo y a la
transferencia de tecnologías.
Las normas pueden ser cuantitativas (normas de dimensión, por ej. las DIN-A,
etc.) y cualitativas (las 9000 de cualidad, etc.). Los campos de aplicación son
4. amplios y en el ámbito de la información científica y técnica es también muy
importante.
En 1987 la Organización Internacional para la Estandarización (ISO) y la
Comisión Internacional Electrotécnica (IEC), establecieron un Comité
Internacional (JTC1) para las Tecnologías de la Información. La misión del
JTC1 es la “estandarización en el campo de los sistemas de tecnologías de la
información, incluyendo microprocesadores y equipos”.
Los estándares o instrucciones técnicas más importantes para la Ingeniería del
Software:
ISO/IEC 12207:2008
ISO/IEC TR 15504:2004
ISO/IEC TR 9126:2003
ISO/IEC 23026:2006
ISO/IEC 25000:2014
ISO/IEC/IEEE 26515:2011
ISO 9000
La serie ISO 9000 es un conjunto de estándares internacionales para sistemas
de calidad aplicables a los procesos de producción. Diseñados para la gestión
y aseguramiento de la calidad, especifican los requisitos básicos para el
desarrollo, producción, instalación y servicio a nivel de sistema y a nivel de
producto. ISO 9000-1 al ISO 9000-4 son relativas a estándares de
administración y aseguramiento de la calidad. ISO 9001 es el modelo y norma
a seguir para asegurar la calidad.
Para la industria del software los estándares relevantes son:
ISO 9001: Requisitos para el aseguramiento de la calidad, este es un estándar
que describe el sistema de calidad utilizado para mantener el desarrollo de un
producto que implique diseño.
ISO 9000-3: Guía para la aplicación de ISO 9001, este es un documento
específico que interpreta el ISO 9001 para el proceso de desarrollo de software
(desarrollar, proveer, instalar y mantener software).
ISO 9004-2: Este documento proporciona las directrices para el servicio de
facilidades del software como soporte de usuarios.
ISO 9001
ISO 9001 es el estándar (norma), que ha sido adoptado por más de 130 países
para su uso, se está convirtiendo en el medio principal con el que los clientes
pueden juzgar la competencia de un desarrollador de software. Uno de los
problemas con el estándar ISO 9001 está en que no es específico de la
industria del software: está expresado en términos generales, y puede ser
interpretado por los desarrolladores de diversos productos, al igual que por los
5. desarrolladores de software. Los requerimientos deben cumplirse
necesariamente. El estándar dice que debe hacerse pero no como hacerlo.
Estructura. El estándar ISO 9001 se basa en un conjunto de Principios
de Gestión de la Calidad: Enfoque al cliente, Liderazgo, Implicación de todo el
personal, Enfoque a procesos, Enfoque del sistema hacia la gestión, Mejora
continua, Enfoque objetivo hacia la toma de decisiones y Relaciones
mutuamente beneficiosas con los proveedores
Los requisitos se agrupan bajo 20 títulos:
1. Responsabilidad de la gestión
2. Inspección, medición y equipo de pruebas
3. Sistema de calidad
4. Inspección y estado de pruebas
5. Revisión de contrato
6. Acción correctiva
7. Control de diseño
8. Control de producto no aceptado
9. Control de documento
10. Tratamiento, almacenamiento, empaquetamiento y entrega
11. Compras
12. Producto proporcionado al comprador
13. Registros de calidad
14. Identificación y posibilidad de seguimiento del producto
15. Auditorias internas de calidad
16. Formación
17. Control del proceso
18. Servicios
19. Inspección y estado de prueba
20. Técnicas estadísticas
Las cinco secciones en que se divide ISO 9001 son:
1.- SGC Sistema de Gestión de la Calidad (Requisitos generales y Requisitos
de la documentación).
2. Responsabilidad de la Gestión (Compromiso de la dirección, Enfoque al
cliente, Política de la calidad, Planificación,…).
6. 3. Gestión de los Recursos (Provisión de recursos, Recursos humanos,
Infraestructura, Ambiente de trabajo).
4. Realización del Producto (Planificación de la realización del producto,
Procesos relacionados con los clientes, Diseño y desarrollo, Compras,
Prestación del servicio,...).
5. Medición, Análisis y Mejora (Generalidades, Supervisión y Medición,
Control de servicio no-conforme, Análisis de datos, Mejora)
Con el fin de ser certificado conforme a la norma ISO 9001 (única norma
certificable de la serie), las organizaciones deben elegir el alcance que vaya a
certificarse, los procesos o áreas que desea involucrar en el proyecto,
seleccionar un registro, someterse a la auditoría y, después de completar con
éxito, someterse a una inspección anual para mantener la certificación.
Un proyecto de implementación, involucrará, como mínimo:
alcanzan a la actividad de la empresa.
truir desde cada acción puntual un Sistema de Gestión de la Calidad.
aquellas que la actividad propia de la empresa requiera.
empresa.
varios meses.
ISO 9000-3
La norma ISO 9000-3 son los estándares utilizados para el desarrollo,
suministro y mantenimiento de software. Puesto que la disciplina del desarrollo
de software tiene características propias diferentes de otros procesos de
producción, se generó el estándar ISO 9000-3 como una guía para la
aplicación de la norma ISO 9001. Se aplica a productos y servicios de software,
productos de mercado o de soporte a otras organizaciones y software
embebido.
Las ideas básicas que se nos propone el estándar ISO 9000-3 según son las
siguientes:
El control de calidad debe ser aplicado a todas las fases de la producción de
software, incluido el mantenimiento y tareas posteriores a su implantación.
Debe existir una estricta colaboración entre la organización que adquiere el
software y el proveedor del mismo.
El proveedor del software debe definir su sistema de calidad y asegurarse que
toda la organización ponga en práctica este sistema. Asegurarse de proveer
recursos de calidad: (personal, ambiente, infraestructura). Asegurar en el
7. personal su correcta formación, experiencia, entrenamiento, habilidades, definir
su nivel de competencia y entrenamiento.
Es importante resaltar que en la ISO 9000-3 trata el concepto de ciclo de vida,
pero en ningún momento no desea imponer la utilización de un determinado
ciclo.
Esta formada por una serie de cláusulas que indican como aplicar esta guía.
NUMERO CLAUSULA
4.1 Administración de la Responsabilidad
4.2 Sistema de Calidad
4.3 Auditorias Internas del Sistema de Calidad
4.4 Acción Correctora
5.1 General
5.2 Revisión del Contrato
5.3 Especificación de los requerimientos de la Organización
5.4 Planificación del desarrollo
5.5 Planificación de la Calidad
5.6 Diseño e Implementación
5.7 Testeo y Validación
5.8 Aceptación
5.9 Generación, Entrega e Instalación
5.10 Mantenimiento
6.1 Administración de la Configuración
6.2 Documentos de Control
6.3 Calidad de los Archivos
6.4 Medidas
6.5 Reglas y Convenciones
6.6 Herramientas y Técnicas
6.7 Compra
6.8 Productos de software incluidos
8. ISO 15504 SPICE - Calidad de los procesos software
Este servicio permite instaurar una política de trabajo común en el
departamento de desarrollo software de su empresa.
La norma ISO/IEC 15504 define un modelo de evaluación de procesos.
Se trata de una estándar internacional que permite evaluar la capacidad y
madurez de los procesos software de una organización.
Los procesos de desarrollo software evaluados con la ISO 15504 se
encuentran recogidos en la norma ISO/IEC 12207. Esta norma contiene un
conjunto de procesos que abarcan el ciclo completo de un proyecto software,
desde la definición de un proyecto hasta la entrega y cierre del mismo.
La certificación se basa en 6 niveles de madurez. Cada nivel obliga a
cumplir una serie de requisitos sobre un grupo de procesos determinado. Por
ejemplo, el nivel 2 de madurez contempla 10 procesos y el nivel 3 contempla
21 procesos de ISO 12207.
Entre los principales beneficios de una implantación de SPICE,
podemos destacar los siguientes:
Reconocimiento en el mercado, siendo un factor diferenciador ante su
competencia.
Aumenta la satisfacción de sus clientes.
Mejora interna de su empresa:
o Implantación de una metodología común a todas las áreas.
o Control de todas las fases y áreas de gestión de un proyecto
software.
o Detectar y corregir posibles fallos en cada etapa de un proyecto.
o Aumento de los beneficios del proyecto.
En resumen, la implantación de SPICE en su empresa le permitirá
abordar cualquier tipo de proyecto software siguiendo unas directrices comunes
en todos ellos.
Forma de trabajo:
El objetivo principal de Audisec para sus proyectos de implantación es
aportar valor. Por ello, la filosofía de nuestros proyectos es la siguiente:
Enfoque práctico y didáctico de los proyectos. Los procesos deben ser
asimilados y comprendidos.
No a la "consultoría intrusiva": primero se analizan las necesidades
de la organización y después se decide cuál es la solución que mejor
puede encajar.
Los procedimientos fáciles de usar se utilizan y aprovechan.
Cumplimiento con la norma.
Las fases de las que consta el proyecto de SPICE son:
Evaluación inicial.
Desarrollo de procesos
Aplicación de los procesos en proyectos software de su empresa.
Evaluación final.
Certificación.
Recuerde también que podemos alinear SPICE con las Normas ISO
27001, ISO 2000, ISO 22301, ISO 9001, ISO 14001, etc.