sábado, 12 de enero de 2008

La Calidad en General y los Modelos de Calidad

La implantación de sistemas de calidad aportan gran número de beneficios a las compañías que apuestan por esta estrategia. No sólo reducen sus costes de manera razonable, sino que además incrementan sus ingresos gracias al mayor grado de satisfacción de sus clientes y en una mejora de la motivación de sus empleados.

En 1988 nace la European Foundation for Quality Managment (EFQM), organización que apuesta por los modelos de gestión de calidad total (GTC o TQM), estrategias encaminadas a optimizar los recursos, reducir costes y mejorar los resultados, con el objetivo de perfeccionar constantemente el proceso productivo.

Soy estudiante de Ingenieria en Ciencias y Sistemas de la Universidad de San Carlos de Guatemala y esta actividad la realizó como parte complementaria del curso de Teoria de Sistemas 2.
En el presente blog postearé información que vaya encontrando acerca de los modelos de calidad y algunas aplicaciones practicas espero. El enfoque de este blog es a los modelos de gestion de la calidad del software pero previo a ello es bueno hablar acerca de la calidad en general.

Definicion de Calidad

La calidad se puede definir como "una característica o atributo de una cosa". De esta forma se podría decir que la calidad de los productos puede medirse como una comparación de sus características y atributos. Así, este concepto puede aplicarse a cualquier producto.
Una de las formas de realizar una medida de calidad es observar las diferencias ocurridas en la producción dos productos iguales. La producción de artículos de cualquier especie no asegura que dos de ellos sean totalmente iguales. Quizás sea preciso realizar observaciones detalladas para lograr distinguir las variaciones entre uno y otro, ya que estas pueden no ser obvias.
De acuerdo a la definicion de la ISO 8402 "Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud para satisfacer una necesidades explícitas o implícitas "

¿Que es un Modelo de Calidad?

Los Modelos de Calidad son herramientas que guían a las Organizaciones a la Mejora Continua y la Competitividad dando les especificaciones de que tipo de requisitos deben de implementar para poder brindar productos y servicios de alto nivel.

Existen varios tipos de modelos de calidad:

  • Modelo de Dirección por Calidad 2006-2008 (SMCT)
  • Modelo de Calidad para Gobiernos Municipales 2005
  • Modelo Iberoamericano de Ecxelencia en la Gestión (FUNDIBEQ)
  • Modelo de Excelencia de European Foundation Quality Management (EFQM)
  • Modelo Shingo-Excellence in Manufacturing (E.U.A)
  • Modelo Malcom Baldrige (E.U.A)
  • Modelo Deming (Japón)

Calidad del Software

De acuerdo a la definicion del Instituto de Ingenieros Electricos y Electronicos (IEEE, Std. 610-1990) “La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificacados y las necesidades o expectativas del cliente o usuario”.

Factores que determinan la Calidad el Software
  • Corrección. ¿Hace lo que quiero?
  • Fiabilidad. ¿Lo hace de forma fiable todo el tiempo?
  • Eficiencia. ¿Se ejecutará en mi hardware lo mejor que pueda?
  • Seguridad (Integridad). ¿Es seguro?
  • Facilidad de uso. ¿Está diseñado para ser usado?

Caracteristicas de las Empresas de Desarrollo de Software Inmaduras

En una organización inmadura se presentan las siguientes caracteristicas:

  • Procesos software normalmente improvisados
  • Si se han especificado, no se siguen rigurosamente
  • Organización reactiva (resolver crisis inmediatas)
  • Planes y presupuestos excedidos sistemáticamente, al no estar basados en estimaciones realistas
Para desarrollar software de calidad se deben corregir estoas practicas erroneas.

Medicion Calidad del Software

Existe necesidad de obtener datos objetivos que ayuden a mejorar la calidad del software.
Algunos modelos incluyen métricas para evaluar diferentes atributos de calidad del producto casi siempre en el nivel del diseño o del código
Los modelos de calidad más recientes están orientados a la mejora de procesos.

Medidas de Calidad basadas en modelos

El éxito en la medición del software está ligado a la obtención, definición y manipulación conjunta de dos modelos:
  • Modelos empíricos
    • Contexto empírico del mundo real
  • Modelos numéricos
    • Formalización de las medidas del contexto empírico
Para el desarrollo de software nos debemos apoyar en los modelos empiricos.

Modelos Gestion de Calidad del Software

Un modelo de calidad del software es un conjunto de buenas practicas para el ciclo de vida del software, enfocado en los procesos de gestión y desarrollo de proyectos.
Construir un modelo de calidad es bastante complejo y es usual que estos modelos descompongan la calidad del producto software jerárquicamente en una serie de características y subcaracterísticas que pueden usarse como una lista de comprobación de aspectos relacionados con la calidad.

Modelo de Calidad no es una metodologia !!!

Se debe entender que un modelo de calidad no es una metodologia que nos resuelva la vida de forma sencilla y clara, los modelos de calidad nos dicen QUE hacer, no COMO hacerlo.

Modelos de Calidad del Software existentes

Existen una variedad de modelos para la gestion de la calidad del software a continuacion se presentan algunos de ellos:

  • CMMI: Diseñado por el Carnegie Mellon Software Engineering Institute – SEI http://www.sei.cmu.edu/cmmi/ Orientado a mejora de procesos en diferentes niveles de madurez, mas hacia proyectos específicos.
  • Norma ISO/IEC 12007: Diseñada por la International Organization for Standardization http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=21208&ICS1=35&ICS2=80&ICS3 Orientado al proceso del ciclo de vida del software
  • Metrica3: Diseñada por el Ministerio de Administración Pública de España http://www.csi.map.es/csi/metrica3/Modelo e Implementación
  • ISO 15504: Modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software.

Existen otros modelos que conforme vaya encontrando voy a ir posteando.

Modelo CMMI



El CMMI es un modelo de calidad del software que clasifica las empresas en niveles de madurez. Estos niveles sirven para conocer la madurez de los procesos que se realizan para producir software.

Niveles CMMI
Los niveles CMMI son 5:
  • Inicial o Nivel 1 CMMI. Este es el nivel en donde están todas las empresas que no tienen procesos. Los presupuestos se disparan, no es posible entregar el proyecto en fechas, los empleados si tienen que quedar durante noches y fines de semana para terminar un proyecto. No hay control sobre el estado del proyecto, el desarrollo del proyecto es completamente opaco, no se sabe que pasara con el.
  • Nivel 2 CMMI. Quiere decir que el éxito de los resultados obtenidos se pueden repetir. La principal diferencia entre este nivel y el anterior es que el proyecto es gestionado y controlado durante el desarrollo del mismo. El desarrollo no es opaco y se puede saber el estado del proyecto en todo momento.
    • Los procesos que hay que implantar para alcanzar este nivel son:
      • Gestión de requisitos
      • Planificación de proyectos
      • Seguimiento y control de proyectos
      • Gestión de proveedores
      • Aseguramiento de la calidad
      • Gestión de la configuración

  • Nivel 3 CMMI. alcanzar este nivel significa que la forma de desarrollar proyectos (gestión e ingeniería) esta definida, por definida quiere decir que esta establecida, documentada y que existen métricas (obtención de datos objetivos) para la consecución de objetivos concretos.
    • Los procesos que hay que implantar para alcanzar este nivel son:
      • Desarrollo de requisitos
      • Solución Técnica
      • Integración del producto
      • Verificación
      • Validación
      • Desarrollo y mejora de los procesos de la organización
      • Definición de los procesos de la organización
      • Planificación de la formación
      • Gestión de riesgos
      • Análisis y resolución de toma de decisiones
    • La mayoría de las empresas que llegan al nivel 3 paran aquí, ya que es un nivel que proporciona muchos beneficios y no ven la necesidad de ir más allá porque tienen cubiertas la mayoría de sus necesidades.

  • Nivel 4 CMMI. Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organización. Se usan métricas para gestionar la organización.
    • Los procesos que hay que implantar para alcanzar este nivel son:
      • Gestión cuantitativa de proyectos
      • Mejora de los procesos de la organización
  • Nivel 5 CMMI. Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica.
    • Los procesos que hay que implantar para alcanzar este nivel son:
      • Innovación organizacional
      • Análisis y resolución de las causas
Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan simultáneamente ya que están muy relacionados.
La implantación de un modelo de estas características es un proceso largo y costoso que puede costar varios años de esfuerzo. Aun así el beneficio obtenido para la empresa es mucho mayor que lo invertido.

En la imagen adjunta se describen los niveles del CMMI

Soluciones y Problematicas del CMMI

Soluciones:

  • Compromiso asegurado
  • Automatizar los mas posible las actividades de control y gestión de los procesos de los proyectos.
  • Comenzar a documentar los procesos implícitos, en la medida de lo posible 0 plantillas en office, implementación de sistemas de gestión.
  • Utilización de sistemas libres para minimizar los costos de implementación de

Problematica:

  • Requiere mucho esfuerzo, compromiso de toda la organización.
  • Comenzar a diseñar y/o documentar procesos, luego desplegarlos y ponerlos en práctica.
  • Requiere un mínimo de cantidad de personal (no menos de 10 personas en lapráctica).
  • Fuerte inversión económica.

Caso de Estudio CMMI


Se presenta una grafica en la que se muestran las evaluaciones reportadas al Instituto de Ingenieria de Software(SEI) de las empresas evaluadas en el mundo.

Definiciones Previas de lo que es un ISO

Antes de entrar de lleno al tema de la norma ISO 9000-3 hagamos primero una revision de los conceptos que implica las normas ISO en general.

ISO

La Organización Internacional para la Estandarización, mejor conocida como ISO, es la agencia especializada en estandarización, conformada por representantes de los cuerpos normalizadores, fue establecida oficialmente el 23 de febrero de 1947 con el objeto de promover la estandarización internacional, de tal manera que se facilitara el intercambio internacional de bienes y servicios casi como el desarrollo científico y tecnológico.. Actualmente abarca los estándares nacionales de 91 países. En los Estados Unidos, la representación se llama The American National Standards Institute (ANSI).

Normas ISO 9000

Las series de ISO 9000 son un grupo de 5 individuales, pero relacionadas, estándares internacionales de administración de la calidad y aseguramiento de calidad.
De acuerdo a referencia de la pagina de wikipedia (http://es.wikipedia.org/wiki/Normas_ISO_9000)
La principal norma de la familia es:
  • ISO 9001:2000 - Sistemas de Gestión de la Calidad - Requisitos.
  • Y otra norma es vinculante a la anterior: ISO 9004:2000 - Sistemas de Gestión de la Calidad - Guía de mejoras del funcionamiento.
  • La ISO 9000:2000 contiene las definiciones de los términos que se utilizan en las otras dos normas. Es decir que si alguien necesita conocer qué se entiende por "sistema de gestión de la calidad", "no conformidad", "producto", por ejemplo, debe referirse a esta norma.
  • La ISO 9001:2000 es la norma que contiene los requisitos que debe cumplir una organización para la implementación de un SGC.

Algunos beneficios que se alcanzan al instrumentar estas series en la empresa, son:

  • La posibilidad de darle calidad al producto o servicio
  • Evitar costos de inspecciones finales, costos de garantías y reprocesos
  • Puede reducirse el número de auditorías de los clientes a los procesos de operación
  • Mayor aceptación por parte de los clientes y acogida en los mercados tanto nacionales como internacionales

Verificacion de las Normas

Para verificar que se cumple con los requisitos de la norma, existen unas entidades de certificación que dan sus propios certificados y permiten el sello. Estas entidades están vigiladas por organismos nacionales que les dan su acreditación.

NORMA ISO 9000-3

Ahora pasaremos a describir la Norma ISO 9000-3 que es una norma derivada de la norma ISO 9001 dedicada a el proceso de desarrollo con calidad del software.
Desde que la ISO 9001 fue escrita para ser utilizada por toda clase de industrias, es regularmente difícil interpretarla para el desarrollo de software, por lo cual se publicó la ISO 9000-3 "Guía para la aplicación de ISO 9001 para el desarrollo, implementación y mantenimiento de software".

Objetivo de la Norma ISO 9000-3

Su objetivo es simple, proveer las especificaciones de cómo aplicar la ISO 9001 al desarrollo del software, implementación y mantenimiento.

Porque es requerida la ISO 9000-3?

La norma ISO 9000-3 es requerida por todas las compañías desarrolladoras de software:

Para poder incursionar en la competencia del mercado europeo.
Como un medio para cubrir las expectativas de los clientes.
Para obtener beneficios de calidad y ventajas competitivas en el mercado.
Como parte de la estrategia del mercado.
Estrategia para reducir los costos de producción.

Beneficios de la Norma ISO 9000-3

Dentro de los beneficios que se obtienen de la certificación ISO 9000-3, se encuentran:

  • Mejor documentación de los sistemas.
  • Cambio cultural positivo.
  • Incremento en la eficiencia y productividad.
  • Mayor percepción de calidad.
  • Se amplía la satisfacción del cliente.
  • Se reducen las auditorías de calidad de los clientes.
  • Agiliza el tiempo de desarrollo de un sistema.

Secciones de la Norma ISO 9000-3:

Las secciones de la norma ISO 9000-3 son bastantes por lo que en este post unicamente presentaré una lista de ellas, para una mejor referencia se debe consultar la propia norma:

  • Responsabilidades de la dirección
  • Sistemas de calidad
  • Revisión del contrato
  • Control de documentos y datos
  • Productos provistos por el comprador
  • Identificación y trazabilidad del producto
  • Inspección y pruebas
  • Equipos de Inspección, medición y pruebas
  • Estado de Inspección y pruebas
  • Control de producto no conforme
  • Acciones correctivas y preventivas
  • Manejo, almacenaje, empaque, preservación y embargue
  • Control de registros de calidad
  • Auditorias internas de calidad
  • Capacitación
  • Técnicas estadísticas

ISO 12207

Esta norma esta orientada a los procesos de ciclo de vida del software de la organización ISO.
Establece un proceso de ciclo de vida para el software que incluye procesos y actividades que se aplican desde la definición de requisitos, pasando por la adquisición y configuración de los servicios del sistema, hasta la finalización de su uso.

Procesos norma ISO 12207:

Los procesos de la norma ISO 12207 se clasifican en tres grandes grupos:
  • Procesos Principales
  • Procesos de Apoyo
  • Procesos de Gestion

Procesos Principales norma ISO 12207

Los procesos principales de la norma ISO 12207 son los siguientes:
  • Adquisición.
  • Suministro.
  • Desarrollo.
  • Explotación.
  • Mantenimiento.

miércoles, 9 de enero de 2008

Procesos de Soporte norma ISO 12207

Los procesos de Soporte de la norma ISO 12207 son los siguientes:
  • Documentación
  • Gestión de la configuración.
  • Aseguramiento de calidad.
  • Verificación. Validación.
  • Revisión conjunta.
  • Auditoría.
  • Resolución de problemas.

Procesos de Gestion norma ISO 12207

Los procesos de gestion de la norma ISO 12207 son los siguientes:
  • Gestión.
  • Infraestructura.
  • Mejora.
  • Formación.

Metodologia Metrica3

Como ya se ha explicado anteriormente la norma metrica3 ha sido desarrollada por el Ministerio de Administracion Publica de España,es una metodología de Planificación, Desarrollo y Mantenimiento de Sistemas de información para sistemizar las actividades del ciclo de vida de los proyectos software dentro de las Administraciones Públicas.

Esta metodología propia está basada en el Modelo de Procesos del Ciclo de vida de desarrollo ISO/IEC 12207 (Information Technology - Software Life Cycle Processes) así como en la norma ISO/IEC 15504 SPICE (Software Process Improvement And Assurance Standards Capability Determination). Esta metodologia esta orientada a procesos.

La metodología descompone cada uno de los procesos en actividades, y éstas a su vez en tareas.
Se describen sus principales elementos:

  • Planificación de Sistemas de Información (PSI)
  • Desarrollo de Sistemas de Información
  • Estudio de Viabilidad del Sistema (EVS)
  • Análisis del Sistema de Información (ASI)
  • Diseño del Sistema de Información (DSI)
  • Construcción del Sistema de Información (CSI)
  • Implantación y Aceptación del Sistema (IAS)
  • Mantenimiento de Sistemas de Información (MSI)
Interfases
A su vez contiene una serie de interfaces que se describen a continuacion:
  • Gestión de Proyectos (GP)
  • Seguridad (SEG)
  • Aseguramiento de la Calidad (CAL)
  • Gestión de la Configuración (GC)

Como este sitio esta dedicado a la calidad del software haré un enfases en la interfase de Aseguramiento de Calidad en el siguiente post.

Aseguramiento de Calidad Metrica3

Las actividades propias de la interfaz de Calidad en MÉTRICA Versión 3 están orientadas a verificar la calidad de los productos.
Objetivos:

  • Reducir, eliminar y lo más importante, prevenir las deficiencias de calidad de los productos a obtener.
  • Alcanzar una razonable confianza en que las prestaciones y servicios esperados por el cliente o el usuario queden satisfechas.

En cada fase del proyecto se deberán llevar a cabo determinadas actividades:

  • EVS
    • EVS - CAL 1 - Identificación de las Propiedades de Calidad del SI
    • EVS - CAL 2 - Establecimiento del Plan de Aseguramiento de Calidad
    • EVS - CAL 3 - Adecuación del Plan de Aseguramiento de Calidad a la Solución
  • ASI
    • ASI - CAL 1 - Especificación inicial del Plan de Aseguramiento de Calidad
    • ASI - CAL 2 - Especificación detallada del Plan de Aseguramiento de Calidad
    • ASI - CAL 3 - Revisión del Análisis de Consistencia
    • ASI - CAL 4 - Revisión del Plan de Pruebas
    • ASI - CAL 5 - Registro de la Aprobación del Análisis del SI
  • DSI
    • DSI - CAL 1 - Revisión de la Arquitectura del SI
    • DSI - CAL 2 - Revisión de la Especificación Técnica del Plan de Pruebas
    • DSI - CAL 3 - Revisión de los Requisitos de Implantación
    • DSI - CAL 4 - Registro de la Aprobación del Diseño del SI
  • CSI
    • CSI - CAL 1 - Revisión del Código
    • CSI - CAL 2 - Revisión de las Pruebas unitarias, de integración y del sistema.
    • CSI - CAL 3 - Revisión de los Manuales de Usuario
    • CSI - CAL 4 - Revisión de la Formaució a Usuarios
    • CSI - CAL 5 - Registro de la Aprobación del SI
  • IAS
    • IAS - CAL 1 - Revisión del Plan de Implantación
    • IAS - CAL 2 - Revisión de las Pruebas de Implantación
    • IAS - CAL 3 - Revisión de las Pruebas de Aceptación
    • IAS - CAL 4 - Revisión de las Pruebas de Mantenimiento
    • IAS - CAL 5 - Registro de la Aprobación de la Implantación SI
  • MSI
    • MSI - CAL 1 - Revisión del Mantenimiento
    • MSI - CAL 2 - Revisión del Plan de Pruebas de Regresión
    • MSI - CAL 3 - Revisión de la Realización de las Pruebas de Regresión

Norma ISO 15504


Es un modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software.


La imagen adjunta muestra una estructura del modelo ISO 15504
Caracteristicas
  • Establece un marco para métodos de evaluación, no es un método o modelo en sí.
  • Comprende: evaluación de procesos, mejora de procesos, determinación de capacidad.
  • Está alineado con el estándar ISO/IEC 12207 que define los procesos del ciclo de vida del desarrollo, mantenimiento y operación de los sistemas de software.
  • Equivalencia y compatibilidad con CMMI. ISO forma parte del panel elaborador del modelo CMMI y SEI mantiene la compatibilidad y equivalencia de ésta última con 15504.

Arquitectura Norma ISO 15504

La norma tiene una arquitectura basada en dos dimensiones: de proceso y de capacidad de proceso.

Desde la dimensión de proceso agrupa a los procesos en tres grupos que contienen cinco categorías de acuerdo al tipo de actividad:
Procesos primarios
  • CUS: Cliente - Proveedor
  • ENG: Ingeniería

Procesos de soporte
  • SUP: Soporte
Procesos organizacionales
  • MAN: Gestión
  • ORG: Organización

Para todos los procesos se definen los componentes: Identificador, Nombre, Tipo, Propósito, Salidas y Notas.


Desde la dimensión de capacidad el modelo define una escala de 6 niveles para determinar la capacidad de cualquier proceso:

  • Nivel 0: Incompleto
  • Nivel 1: Realizado
  • Nivel 2: Gestionado
  • Nivel 3: Establecido
  • Nivel 4: Predecible
  • Nivel 5: En optimización