LA CALIDAD DEL SOFTWARE by QQaoh1

VIEWS: 172 PAGES: 28

									LA CALIDAD DEL
  SOFTWARE
  Administración de la calidad del Software

• Se refiere a lograr un nivel de calidad
  requerido en el producto de software
• Involucra a la definición de estándares de
  calidad apropiados y procedimientos que
  permitan asegurar que estos se cumplan.
• Debe llevar a desarrollar una cultura de
  calidad en donde la calidad es
  responsabilidad de todos
Administración de la calidad del Software

 – comprobación independiente de los procesos de
   desarrollo
 – los productos resultantes de los procesos se introducen
   en el proceso de administración de la calidad para
   asegurar su consistencia con estándares y objetivos de
   calidad
 – equipo de aseguramiento y control: independientes de los
   equipos de desarrollo
    • responsabilidad de la administración de la calidad
    • visión objetiva del proceso
    • informan de problemas y dificultades a los administradores
      principales de la organización
      CONCEPTO DE CALIDAD
Calidad  significa que un producto debe cumplir
con sus especificaciones
Es  la totalidad de aspectos y características de un producto
o servicio que se refieren a su capacidad para satisfacer
necesidades dadas en la adecuación de sus objetivos (ISO)
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
(Pressman).
  Atributos de la calidad del Software


Safety        Underst andability   Port abilit y
Security      Test abilit y        Usabilit y
Reliability   Adapt ability        Reusabilit y
Resilience    Modularit y          Efficiency
Robustness    Complexity           Learnability
    Administración de la calidad del Software
                        •   tres actividades principales
                              – aseguramiento de la calidad
Aseguramiento de la
     calidad
                                    • establecimiento de un marco de trabajo de
                                       procedimientos y estándares corporativos que
                                       conduzcan a la obtención de software de alta
                                       calidad
 Planificación de la
                              – planificación de la calidad
       calidad                      • selección de procedimientos y estándares
                                       adecuados a partir de ese marco de trabajo y
                                       adaptación de éstos para un proyecto de software
                                       específico
                              – control de la calidad
Control de la calidad
                                    • definición y aplicación de los procesos que
                                       aseguren que los procedimientos y estándares son
                                       seguidos por el equipo de desarrollo
      aseguramiento de la calidad y estándares
                        •   actividades de aseguramiento de la calidad (SQA)
                              – definir un marco de trabajo para lograr la calidad del software:
                                 definir o seleccionar estándares aplicables al proceso de
Aseguramiento de la              desarrollo o a los productos de software
     calidad
                        •   importancia de los estándares
                              – ofrecen un conjunto de las mejores prácticas, evitando repetir
                                 errores anteriores y capturando el conocimiento de valor para la
                                 organización
 Planificación de la          – ofrecen un marco de trabajo alrededor del que se implementa el
       calidad
                                 proceso de SQA
                              – ayudan a la continuidad del trabajo de unos ingenieros a otros
                        •   desarrollo de estándares
                              – proceso largo y complicado
                              – organizaciones nacionales e internacionales diferentes (ANSI,
Control de la calidad
                                 IEEE, OTAN, Agencia Espacial, NASA, Departamento de
                                 Defensa de EE.UU., ...)
                              – los equipos de SQA de las empresas desarrollan un “manual de
                                 estándares” basado en estándares nacionales e internacionales
                     Estandares (SQA)
•   dos tipos de estándares
     – estándares del producto: se aplican al producto a desarrollar
           • estándares de documentos (p.ej., estructura del documento de requerimientos a
              producir)
           • estándares de documentación (encabezados estándar de comentarios para una
              definición de clase)
           • estándares de codificación (cómo utilizar un lenguaje de programación)
     – estándares del proceso: definen los procesos a seguir durante el desarrollo
           • definiciones de los procesos de especificación y análisis, diseño, validación,
              descripción de los documentos a generar en cada uno de estos procesos,...


       Estándares del producto                      Estándares del proceso
       Formulario para revisión del diseño          Conducto para la revisión del diseño

       Estructura del documento de requerimientos   Sometimiento de documentos a revisiones

       Formato del encabezado del procedimiento     Proceso de entrega de las versiones

       Estilo de programación en Java               Proceso de aprobación del plan del proyecto
       Formato del plan del proyecto                Proceso de control del cambio
       Forma de petición de cambios                 Proceso de registro de las pruebas
             SQA: estándares de documentación
•   importancia de los documentos estandarizados
       – documentos: única forma tangible de representar el software y el proceso del software
       – documentos estandarizados: apariencia, estructura y calidad consistentes; más fáciles
          de leer y comprender
•   tres tipos de estándares
       – estándares del proceso de documentación:
              • proceso a seguir para la producción del documento
              • documentos de trabajo: no es necesario aplicar procesos formales de calidad
              • documentos formales (para desarrollos posteriores o a entregar al cliente):
                 necesario adoptar un proceso formal de calidad
       – estándares del documento:
              • estructura y presentación de los documentos
              • deben tener un estilo y apariencia consistente, y los del mismo tipo deben tener
                 una estructura consistente con los del proyecto y la organización
       – estándares para el intercambio de documentos:
              • aseguran que todas las copias electrónicas de los documentos sean compatibles
              • utilización de herramientas concretas para elaborar los documentos (hojas de
                 cálculo, procesadores de texto, herramientas de diagramación,...)
                      SQA: Estandares de documentación

 Proceso formal de producción de un documento



                                                                Incorporar                          Rehacer
             Crear borrador            Revisar
                                                              comentarios a                        documento
                 inicial               borrador
                                                                la revisión                         borrador

Etapa 1: creación
                                         Documento aprobado




                                        Producir               Comprobar
             Corregir texto
                                      borrador final          borrador final

Etapa 2: refinamiento
                              Documento aprobado



                                                                  Producir
                                         Revisar                                                       Imprimir
             Arreglar texto                                     patrones de
                                         arreglos                                                       copias
                                                                 impresión

Etapa 3: producción


                                                                 fuente: I. Sommerville, Ingeniería de Software, Pearson 2002
    SQA: calidad del proceso y del producto

•   mejora de la calidad:
      1. identificar productos de calidad
      2. examinar el proceso utilizado para desarrollarlos
      3. generalizar esos procesos para aplicarlos a otros proyectos
•   fabricación: relación clara entre calidad de proceso y del producto
      – proceso fácil de estandarizar y supervisar
      – una vez definido el proceso de fabricación se ejecuta una y otra vez para
         producir el mismo producto con el mismo nivel de calidad
•   software: existe relación, pero menos directa
      – proceso más creativo que mecánico: influencia de habilidades individuales
         y experiencia
      – factores externos (novedad de la aplicación, presión comercial,...)
      – el proceso puede ser inapropiado para un tipo de software
           • por ejemplo, un estándar puede indicar que la especificación tiene
              que estar terminada y aprobada para implementar, pero puede hacer
              falta realizar prototipos.
                        control de la calidad

                           •   control de calidad
                                – vigilar el proceso de desarrollo para asegurar que se
Aseguramiento de la                 siguen los procedimientos de SQA y estándares de
     calidad
                                    calidad ajustándose al plan de calidad
                                – dos enfoques complementarios
                                      • revisiones técnicas: el software, documentación y
 Planificación de la                     procesos son revisados por un grupo de personas
       calidad
                                      • valoración: normalmente automática, con algún
                                         tipo de herramienta
                                            – el software y los documentos se procesan y
                                               se comparan con los estándares que se
Control de la calidad
                                               aplican a ese proyecto
                                            – implica una medida cuantitativa de de
                                               algunos atributos del software (medición y
                                               métricas)
  control de calidad: revisiones técnicas formales


   Se revisa UN producto
   (especificación, módulo, listado,...)      Poca gente, preparación y
                                              duración breves




Decisión final:                            Participantes: jefe de revisión, revisores
 - Aceptación                              (ingenieros,programadores,...) y
 - Rechazo                                 productor
 - Aceptación condicionada a pequeñas
modificaciones
    revisiones técnicas formales
•   objetivos:
                 descubrir errores en la función, lógica o implementación de cualquier representación del
                 softwre.
                 verificar el cumplimiento de los requisitos
                 garantizar el cumplimiento de los estándares.
                 conseguir un desarrollo uniforme del software
                obtener proyectos que hagan más sencillo los trabajos técnicos (análisis que permitan
                buenos diseños, diseños que permitan implementaciones sencillas, estrategias de
                pruebas que faciliten éstas,...)
•   RTFs: son un filtro que permite “purificar” las actividades de ingeniería de software.
      – se aplican en diversos momentos del desarrollo para detectar defectos.
      – diseño: entre el 50 y el 60% de los errores del desarrollo.
      – aprovecha la diversidad de un grupo de personas para:
                 señalar la necesidad de mejoras en el producto de ingeniería (diagramas del análisis,
                 diccionario de datos, diseño, código, estrategia de pruebas,...)
                 confirmar las partes en las que no es necesaria una mejora.
                conseguir un trabajo técnico de calidad más uniforme.
      – efectividad: se calcula que son efectivas en un 75%.
                          ejemplo
  Errores encontrados        Número            Coste unitario   Total
                        Llevando a cabo revisiones
Durante el diseño               22                  1,5          33
Antes de la prueba              36                  6,5         234
Durante la prueba               15                 15,0         315
Tras la distribución            3                  67,0         201
                                                                783
                              Sin revisiones
Antes de la prueba              22                  6,5         143
Durante la prueba               82                 15,0         1230
Tras la distribución            12                 67,0         804
                                                                2177
           control de calidad: métricas
•     medición: calcular un valor numérico para algún atributo de un producto o un proceso del software
       – la comparación entre ellos y con los estándares de la organización permite controlar la calidad
       – métrica: cualquier tipo de medida relacionada con un sistema, proceso o documentación
       – existen atributos imposibles de medir de forma directa
             • por ejemplo: mantenibilidad, complejidad, comprensión,...
             • afectados por diversos factores
             • no existen métricas directas: necesario medir atributos internos del software y suponer que
                 existe relación con los atributos que nos interesan


                                          Número de parámetros del
                                              procedimiento
                                                                                 Proceso de           Producto de
    Mantenibilidad
                                                                                  software             software
                                           Complejidad ciclomática

      Fiabilidad
                                          Tamaño del programa en
                                             líneas de código                    Métricas de          Métricas de
     Portabilidad                                                                 control             predicción

                                           Número de mensajes de
     Usabilidad                                    error

                                                                                  Decisiones
                                            Extensión del manual de             administrativas
                                                    usuario
    modelos de calidad del software
•    Objetivo: mejora de procesos software.
•    Diversos modelos que buscan:
        – Determinar las fuerzas y debilidades en una organización
        – Aglutinar esfuerzos para conseguir acuerdos sobre lo que es un buen proceso.
•    Principales iniciativas:
        – ISO 9001 y 9000-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.
        – Capability Maturity Model (CMM) del Instituto de Ingeniería del Software
                •    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
        – Bootstrap:
                •    enfocado a pequeñas y medianas empresas
                •    valora la madurez global de una organización
                •    examina procesos individuales de software y valora la conveniencia y el impacto de nuevas tecnologías
        – SPICE:
                •    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).
                •    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.
                     ISO 9000

• Conjunto de estándares internacionales para el manejo de
  calidad
• Aplicable a un rango de organizaciones desde industrias de
  servicio a industrias de manufactura
• La ISO 9001 es aplicable a organizaciones del cual
  diseñan, desarrollan y mantienen productos
• ISO 9001 es un modelo genérico del proceso de calidad.
  Está instanciado para cada organización
      Certificación ISO 9000
• Los Estándares de calidad y procedimientos
  deberán ser documentados en un manual
  organizacional de calidad
• Personal externo puede certificar que una
  organización conforma con los estándares ISO
  9000
• Los clientes demandan cada vez mas que sus
  desarrolladores tengan la certificación ISO 9000
modelos de calidad: ISO 9000

                         Modelos de calidad
                            ISO 9000

                        instanciado como

                                                                           Proceso de la
                       Manual de calidad de la         documentos          calidad de la
                           organización                                    organización


                      se utiliza para desarrollar                         instanciado como



Plan de calidad del     Plan de calidad del         Plan de calidad del    Administración
    proyecto 1              proyecto 2                  proyecto 3        de la calidad del
                                                                              proyecto
                                      modelos de calidad: ISO-9000
•   Serie ISO-9000: conjunto de normas de sistemas de calidad y guías asociadas
    que se publicaron a partir de 1987 por la ISO (Organización Internacional de                           ISO 9001
    Normalización).                                                                         Estándar aplicable a la Ingeniería del
•   ISO9000: describe los elementos de garantía de calidad en términos genéricos             Software
    que pueden aplicarse a cualquier negocio, con independencia de los productos o          20 requisitos de un sistema de garantía
    servicios ofrecidos.                                                                     de calidad efectiva:
•   Obtención de certificado:                                                         Responsabilidad de la gestión
                                                                                      Sistema de calidad
       – Auditores externos examinan el sistema de calidad y las operaciones de       Revisión de contrato
            una compañía.                                                             Control de diseño
       – Si es correcto, se recibe el certificado.                                    Control de datos y documentos
                                                                                      Compras
       – Auditorías de seguimiento cada seis meses.
                                                                                      Control del producto suministrado por el cliente
•   Procesos documentados y practicados como se hayan descrito en el estándar.        Identificación y posibilidad de seguimiento del producto
       – Ventajas: comprensión, control y mejora de los procesos y la red de          Control del proceso
            procesos.                                                                 Inspección y prueba
                                                                                      Control de inspección, medición y equipo de pruebas
       – Inconveniente: burocracia y papeleo.                                         Inspección y estado de prueba
•   ISO9000 describe los elementos de un sistema de garantía de calidad:              Control de producto no aceptado
                                                                                      Acción correctora y preventiva
       – estructura organizativa
                                                                                      Tratamiento, almacenaje, empaquetamiento,
       – procedimientos                                                               preservación y entrega.
       – procesos y recursos para implantar la planificación de la calidad            Control de registros de calidad
                                                                                      Auditorías internas de calidad
       – control de calidad                                                           Formación
       – garantía de calidad                                                          Servicios
       – mejora de la calidad                                                         Técnicas estadísticas

•   ISO 9000 NO describe cómo debe implementar una organización estos                       Más orientada a empresas de fabricación
    elementos del sistema de calidad.
•   Objetivo: diseñar e implementar un sistema de garantía de calidad que cumpla
    los estándares y acople los productos, servicios y cultura de la empresa.                            ISO 9000-3
                                                                                     Guía para la aplicación de ISO 9001 en el
                                                                                     desarrollo, suministro y mantenimiento de
                                                                                     software
relación entre modelos de calidad del software




                   ISO 9000               CMM
                     1987                 1986




      ISO 9000-3
         1991



                              BOOTSTRAP
                                1993




                                           SPICE
                                            1994
modelos de calidad: capability maturity model (CMM)
  •   Software Engineering Institute (Carnegie Mellon University), 1986: modelo
      para evaluar el grado de madurez con que las organizaciones desarrollaban
      software.
  •   1991: aparece el CMM, prácticamente en su forma actual:
         – basado en casos reales
         – refleja las necesidades de los profesionales del desarrollo de software y de
           la mejora del proceso.
         – está documentado
         – su documentación está disponible (http://www.sei.cmu.edu/)
  •   punto de partida: definición del proceso de software: conjunto de actividades,
      métodos, prácticas y transformaciones que se usan para desarrollar el software
      y los productos a él asociados.
  •   madurez del proceso:
         – refleja la capacidad de una organización para producir software de calidad
           (cuanto más madura es una organización, mejor definido será el proceso de
           software).
         – proceso del software maduro: mayor productividad y mayor calidad del
           producto.
         – las empresas van pasando por cinco niveles de madurez
                       modelos de calidad: capability maturity model (CMM)




                                                                                        Proceso
                                                                                        mejora continua                    OPTIMIZADO
                                                                        Proceso
                                                                        predecible
                                                                                                   GESTIONADO
                                            Proceso consistente
                                            estándar                             DEFINIDO
                            Proceso
                            disciplinado                    REPETIBLE


Proceso poco                               INICIAL
estructurado, puede que
caótico. El éxito depende
más del esfuerzo
individual que de una
                                                                                            Existen conjuntos de             La mejora del proceso
aproximación organizada                                     Procesos software bien
                                                                                            métricas definidas a nivel       software es continua y
del proceso software.                                       definidos, estandarizados
                                                                                            de las diferentes etapas del     existe una realimentación
                                                            e integrados, tanto en
                                                                                            proceso, y se dispone de         de los procesos, así como
                                                            aspectos de gestión como
                     Procesos básicos de gestión                                            datos al respecto.               un enfoque de mejora a
                                                            de ingeniería, a nivel de
                     referidos a un seguimiento de                                          Los procesos y los               nivel de ideas y de
                                                            toda la organización.
                     funcionalidades, costes y                                              productos son controlados y      tecnologías.
                                                            Utilización de un proceso
                     plazos. Se implanta una                                                seguidos de modo
                                                            software estandarizado
                     disciplina de trabajo para                                             cuantitativo.
                                                            para desarrollo y
                     repetir modos de trabajo que
                                                            mantenimiento.
                     han dado resultados positivos
                 Resumen
• El manejo de la calidad del software se refiere a a asegurar
  que el software cumple con estándares requeridos
• Los procedimientos de aseguramiento de calidad deberán
  estar documentados en un manual de calidad
  organizacional
• Un plan de calidad de un proyecto deberá identificar los
  requerimientos específicos de calidad
• Los estándares de software son la reunión de las mejores
  practicas
                 Resumen
• Las revisiones son el medio principal para la
  implementación del aseguramiento de la calidad
• Las métricas reúnen información acerca de procesos y
  productos
• Las métricas de control proveen información acerca del
  manejo del proyecto del software. Las métricas de
  predicción permiten la estimación de atributos del al
  producto
• Las métricas de calidad deberán ser usadas para identificar
  componentes potencialmente problemáticos
                        bibliografía



Sommerville, I. Ingeniería de Software, cap. 24

Pressman, R.S. Ingeniería del Software. Un enfoque práctico, cap. 8

								
To top