calidad de software

16
Conceptos de Calidad Definición de Calidad: Según el Diccionario de la Real Academia Española de la Lengua, la calidad es: Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor. Buena calidad, superioridad o excelencia. Carácter, genio, índole. Condición o requisito que se pone en un contrato. Definición según la ISO “Conjunto de propiedades o características de un producto o servicio que le confieren aptitud para satisfacer unas necesidades expresadas o implícitas”. La calidad suele ser transparente cuando está presente pero resulta fácilmente reconocible cuando está ausente (por ejemplo, cuando el producto falla o el servicio es deficiente). La calidad se ha convertido hoy en día en uno de los principales objetivos estratégicos para las organizaciones. Cada vez más la supervivencia de las organizaciones depende de la calidad de los productos y servicios. “No me preocupa si algo es caro o barato. Solo si es bueno. Y si algo es lo suficientemente bueno, entonces el público pagará por ello”. Walt Disney. “La calidad de producto o servicio puede ser definida como las características totales compuestas de producto y servicio de marketing, ingeniería, fabricación y mantenimiento por medio de las cuales el producto y servicio cumplirá las expectativas del cliente”. Armand V. Feigenbaum Calidad ¿Cómo podemos definirla? La Calidad se refiere a características mesurables: cosas que se pueden comparar para conocer estándares. Se pueden mencionar dos tipos de calidad: Calidad de diseño: Se refiere a las características que los diseñadores especifican para un elemento.

description

Investigacion

Transcript of calidad de software

Page 1: calidad de software

Conceptos de Calidad

Definición de Calidad:Según el Diccionario de la Real Academia Española de la Lengua, la calidad es:

Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor. Buena calidad, superioridad o excelencia. Carácter, genio, índole. Condición o requisito que se pone en un contrato.

Definición según la ISO

“Conjunto de propiedades o características de un producto o servicio que le confieren aptitud para satisfacer unas necesidades expresadas o implícitas”.

La calidad suele ser transparente cuando está presente pero resulta fácilmente reconocible cuando está ausente (por ejemplo, cuando el producto falla o el servicio es deficiente).

La calidad se ha convertido hoy en día en uno de los principales objetivos estratégicos para las organizaciones. Cada vez más la supervivencia de las organizaciones depende de la calidad de los productos y servicios.

“No me preocupa si algo es caro o barato. Solo si es bueno. Y si algo es lo suficientemente bueno, entonces el público pagará por ello”. Walt Disney.

“La calidad de producto o servicio puede ser definida como las características totales compuestas de producto y servicio de marketing, ingeniería, fabricación y mantenimiento por medio de las cuales el producto y servicio cumplirá las expectativas del cliente”. Armand V. Feigenbaum

Calidad

¿Cómo podemos definirla?

La Calidad se refiere a características mesurables: cosas que se pueden comparar para conocer estándares.

Se pueden mencionar dos tipos de calidad:

Calidad de diseño: Se refiere a las características que los diseñadores especifican para un elemento.

Calidad de concordancia: Es el grado en el que las especificaciones de diseño se aplican durante la fabricación.

* Satisfacción del usuario = producto manejable + buena calidad + entrega dentro de presupuesto y tiempo.

Calidad de Software

La calidad de software ha sido significativamente mejorada en los últimos 15 años.

Page 2: calidad de software

Las compañías han adoptado nuevas técnicas y metodologías, para manejar y mejorar la calidad de sus productos.

La calidad de software es un concepto complejo que es muy distinto a la calidad que se da en productos manufacturados.

Error común respecto a la calidad: “pensar que la calidad de software es algo que se debe de comenzar a preocupar solo después de que se haya generado código”.

La gestión de la calidad es una actividad protectora o de sombrilla que se aplica a lo largo del proceso de software.

Se dice que en los productos manufacturados se debe de cumplir con la especificación que se dio para los mismos, sin embargo en el software existen problemas como:

La especificación se debe de orientar hacia las características del producto que el cliente quiere. Sin embargo, la empresa desarrolladora del software tiene otros requerimientos (además de los solicitados por el cliente).

Problemas con la especificación de Calidad de Software:

Algunas veces no se sabe como especificar ciertas características de calidad (por ejemplo la facilidad para dar mantenimiento).

Es difícil escribir de manera completa las especificaciones de software.

Manejando la Calidad de Software

La calidad de software puede obtenerse definiendo estándares y procedimientos de calidad en la organización que verifiquen que los estándares sean seguidos por los equipos de desarrollo. Sin embargo no solo el seguimiento de los estándares y las buenas prácticas harán que el software que se construya sea de buena calidad. Se debe de construir en la empresa una cultura de buena calidad.

Actividades principales para el manejo de la calidad:

Aseguramiento de la calidad. Establecer una red de procedimientos organizacionales y estándares que conducen a la alta calidad de software.

Planificación de la Calidad. La selección de procedimientos y estándares, que se adapten a especificaciones de proyectos de software.

Control de la calidad. La definición y propagación de procesos que aseguren que el equipo de desarrollo de software ha seguido los procedimientos de calidad y los estándares.

La mejora de la calidad de software tiene los siguientes principios básicos:

Las mejoras con éxito se inician desde y son lideradas por la Alta Dirección de la organización.

La mejora de calidad del software requiere inversiones, planificación, personal dedicado, dedicación de los gerentes y capital.

La mejora de la calidad del software es un trabajo de equipo: los que no participan no solo no obtienen los beneficios, sino que pueden impedir el progreso. Al final, toda la organización está involucrada en la mejora continua.

Page 3: calidad de software

La gestión de la calidad pretenderá conseguir que estos tres círculos coincidan lo más posible. Todo lo que este fuera de dicha coincidencia será motivo de derroche, de gasto superfluo o de insatisfacción.

Aplicando Calidad

Para que las mejoras sean efectivas deben estar basadas en un conocimiento previo de la situación actual, y en unos objetivos claros: hay que saber donde se está y a donde se quiere llegar. La mejora es continua, no un esfuerzo en un momento dado: debe haber aprendizaje y evolución continua. Se requiere un esfuerzo sostenido y continuo para que las mejoras se implementen Se requiere un apoyo visible y reiterado de la Alta Dirección.

Control de la calidad

Involucra una serie de inspecciones, revisiones y pruebas empleadas a lo largo del proceso de software para garantizar que cada producto de trabajo satisfaga los requisitos que se le han asignado. El control de calidad incluye un ciclo de retroalimentación con el proceso que creó el producto de trabajo. Un concepto clave del control de calidad es que todos los productos de trabajo tienen especificaciones definidas mesurables con las cuales se puede comparar la salida de cada proceso. El ciclo es esencial para minimizar los efectos producidos.

El control de la calidad involucra el monitoreo del proceso de desarrollo de software para asegurar que los procedimientos de aseguramiento de la calidad están siendo seguidos.

Page 4: calidad de software

Existen dos aproximaciones complementarias que se usan para verificar los entregables de un proyecto:

1. Las revisiones del software, su documentación y el proceso usado para producir dicho software son verificados por un conjunto de personas. La revisión incluye una comprobación que el proyecto y sus entregables han seguido los estándares predefinidos. Las desviaciones de los estándares son anotadas y el encargado del proyecto es alertado.

2. Se realizan comparaciones para ver el grado de calidad en que se encuentra el proyecto. Aquí se involucran métricas para verificar y comparar el software contra lo planeado o contra el estándar que se debió seguir.

Garantía de calidad del software (SQA)

Es una disciplina de la ingeniería de software, se especializa en la aplicación de procesos de calidad a lo largo del proyecto de software. Consiste en los medios de la supervisión de tecnología de dotación lógica, los procesos y los métodos aseguramiento de calidad.

También se puede definir como un conjunto de funciones de auditoría e información que evalúan la efectividad y que tan completas son las actividades de control de calidad. Hace esto por medio de intervenciones de sistema de gerencia de la calidad debajo de cuál se crea el sistema de software. La meta es brindarle al gestor los datos necesarios para que este informado acerca de la calidad del producto. Si los datos que ofrece el aseguramiento de la calidad identifican problemas, es responsabilidad del gestor darle seguimiento para resolverlos.

La calidad de los procesos de software se está convirtiendo en un elemento estratégico de las grandes organizaciones debido a su fuerte impacto en la competitividad de las empresas.

La garantía de calidad del software se relaciona con la práctica de garantía de calidad en producto fabricación. Hay, sin embargo, algunas diferencias notables entre el software y un producto manufacturado. Estas diferencias provienen el hecho de que el producto manufacturado es físico y puede ser visto mientras que el producto de software no es visible. Por lo tanto su función, ventaja y costes no están según lo medido fácilmente. El software vive, crece, se desarrolla, y transforma, desemejante de sus contrapartes tangibles. Por lo tanto, los procesos y los métodos para manejar, para supervisar, y para medir su calidad en curso son tan líquido y a veces evasivos como son los defectos que se significan para mantener cheque.Su misión no se limita a actividades de verificación, sino que además asume un rol de liderazgo en la gestión de la calidad durante el proceso de creación y diseño del producto. La garantía de calidad no debe confundirse con la técnica específica de control de calidad, cuyo objetivo es verificar el producto

La garantía de calidad toma responsabilidad por los siguientes procesos:

Gestión de los procesos de ingeniería de software Iniciativas de mejoramiento de procesos a lo largo de la organización, Integración de los procesos de calidad de ingeniería y servicios a la clientela

Page 5: calidad de software

El beneficio principal de un programa de garantía de calidad de software es asegurar a la gerencia del proyecto que los procesos establecidos se han ejecutado cabalmente. Esta evaluación es hecha por un grupo independiente, especializado en métodos de calidad, con un criterio objetivo y con visión de contexto

La garantía de calidad se asegura de lo siguiente:

Se usa la metodología de desarrollo apropiada Las actividades de desarrollo han sido debidamente planeadas

Se han definido estándares y procedimientos para al proyecto

El personal ha sido debidamente entrenado en los procesos de calidad aplicables

Se llevan a cabo regularmente revisiones y auditorías independientes

El desarrollo es documentado adecuadamente para facilitar la mantención y la reutilización

La documentación se produce oportunamente y no después que el desarrollo ha sido completado

Los cambios introducidos han sido debidamente controlados

Las pruebas efectuadas son eficaces para detectar defectos, especialmente en aquellas áreas de mayor riesgo

Las actividades se llevan a cabo de acuerdo a los plazos y en los términos planeados

Las desviaciones a los estándares se identifican rápidamente

El proyecto está en condiciones para ser sometido a auditorías externas, si corresponde

La calidad es verificada con respecto a criterios preestablecidos

La gerencia es oportunamente informada de problemas y riesgos relativos a la calidad

Los problemas de calidad se analizan y las causas se comunican al proyecto para tomar medidas preventivas que eviten su repetición

Costo de la calidad

El Costo de la Calidad del Software CoQ, es una técnica introducida por Juran en 1996 con el fin de proporcionar a los directores de proyectos instrumentos que les permitan justificar la promoción de mejoras en el proceso de desarrollo.

Incluye todos los costos que genera la búsqueda de calidad o que demanda el desarrollo de las actividades relacionadas con la calidad. Así como incurre el proyecto para mejorar los entregables

Page 6: calidad de software

prometidos. Estos costos pueden ser de dos tipos: Costos de Prevención, Costos de Evaluación y fallas.

Costos de Prevención: están causados por las medidas tomadas en el proyecto para prevenir defectos o problemas en los entregables, para evitar la aparición de errores. En un proyecto de software esto sería por ejemplo implementar una metodología de desarrollo consistente.

Costos de Evaluación: están causados por las medidas tomadas para evaluar los entregables una vez producidos, y corregirlos si es necesario. En un proyecto de software esto sería por ejemplo dedicar recursos a las pruebas de integración del sistema una vez desarrollado.

Capacitación (este es un Costo de Prevención): capacitación en la construcción o entrega del producto o servicio. Sirve para insertar el proceso de administración de calidad dentro del proceso de elaboración. Sirve para implementar la calidad en términos técnicos, específicos a los entregables.

Mantenimiento (Costo de Prevención): definición de políticas de mantenimiento posteriores a la finalización del proyecto. Sirve para conservar el buen desempeño de los entregables una vez finalizado el proyecto.

Pruebas (Costo de Evaluación): especificación y ejecución de pruebas para verificar el cumplimiento de los requerimientos por parte de los entregables. Sirve para validar el funcionamiento normal de los entregables antes de que se usen en producción.

Auditorías (Costo de Evaluación): desarrollo de auditorías que inspeccionen el proceso de construcción de los entregables. Sirven para no cometer el mismo error dos veces.

Costos de Fallas

Son aquellos que no se presentan cuando el producto esta bien hecho, es decir no existieran si no hay defectos antes de enviar un producto a los clientes.

Se dividen en: Costos de fallas internas: (se detectan antes de enviar el producto) incluyen

reelaboración, reparación y análisis en modo de falla. Costos de fallas externas: (se detectan ya que se envió el producto al cliente),

ejemplos: resolución de quejas, devolución y reemplazo del producto, soporte de ayuda en línea y trabajo de garantía.

Los costos relativos para encontrar y reparar un defecto aumentan sustancialmente conforme pasa de la prevención a detección y de los de falla interna a externa.

Función del SQA

Se refiere al aspecto de revisión y de reporte de la administración.Es un enfoque sistemático de evaluación de la calidad del Software desarrollado, basado en el correcto cumplimiento de los estándares y procedimientos durante el ciclo de vida del Software. Su función básica es proporcionar datos sobre la calidad del producto a la gerencia y asegurarle que los estándares de calidad especificados se están cumpliendo.

Page 7: calidad de software

El propósito del SQA es: Evaluar críticamente el software desarrollado Comprobar si los estándares de calidad se han cumplido Si el producto satisface o no las necesidades del cliente y también si identifica las

debilidades que el cliente puede detectar.

Procesos de aseguramiento de la calidad

Se deben de seleccionar herramientas y metodologías para poder soportar los estándares que se van a seguir.Existen dos tipos de estándares que pueden ser establecidos como parte del proceso de aseguramiento de la calidad que son:Estándares de Productos: Estos estándares aplican al producto de software que se va a desarrollar. Incluyen estándares de documentación, estándares o guías para obtener requerimientos, políticas o reglas para la programación.Estándares de Procesos: Estos estándares definen el proceso que debe de ser seguido durante el desarrollo de software, pueden incluir definiciones de especificación, diseño y validación de procesos y descripción de documentos que deben de ser escritos en el transcurso de los procesos.

SQA (Software Quality Assurance; Garantía de la Calidad del Software).

El SQA se puede definir como la conformidad a las necesidades funcionales y de rendimiento, a los estándares de desarrollo y a las características implícitas requeridas de todo el software que se ha desarrollado profesionalmente. A su vez, es un set de actividades sistemáticas que aseguran que el proceso del software y productos conformados por requerimientos, estándares, y procedimientos. Los procesos incluyen todas las actividades involucradas en el diseño, codificación, pruebas y mantenimiento; Los productos incluyen software, datos asociados, documentación, y toda la documentación para soporte y reportes.

La implementación de una disciplina de SQA tiene como principal objetivo aumentar la calidad de los entregables durante todo el proceso de desarrollo. Muchos requerimientos de calidad, sobre todo aquellos que tienen que ver con el rendimiento, la usabilidad, la carga, la disponibilidad, etc. pueden ser tratados como riesgos. Es decir que, el hecho de que uno de ellos no se cumpla, implica un riesgo. Entonces, al asegurar la calidad del software durante su proceso, se disminuyen los riesgos asociados, aumentando la predictibilidad del desarrollo de software. Esto trae aparejado una serie de beneficios de variada visibilidad.

Objetivos del SQA:

Page 8: calidad de software

1. Planificar las actividades de aseguramiento de la calidad. 2. Revisar y auditar objetivamente los productos y las actividades para verificar que están

conformes con los procedimientos y estándares aplicables. 3. Proporcionar los resultados de estas revisiones o auditorías informando a la dirección

cuando sea necesaria su mediación.

Brinda a la administración la seguridad de que procesos oficialmente establecidos están siendo implementados. Y asegura que:

1. Una metodología de desarrollo apropiada este establecida 2. Que los proyectos utilicen estándares y procedimientos en su trabajo 3. Que la documentación sea creada para mantenimiento y mejoramiento 4. La administración de configuración de software este adecuada para controlar cambios 5. Se realicen pruebas y que se aprueben 6. Cualquier deficiencia y desviaciones sean identificadas y llevadas con atención a la

administración.

Presencia de SQA

Muchas organizaciones empiezan a crear grupos de SQA. Estas personas actúan como representantes internos del cliente. Es responsabilidad del grupo SQA ayudar a los Ing., a lograr una alta calidad en el

programa o aplicación de software determinado.

Este grupo tiene una serie de actividades que se presentan a continuación

Esta relación implica a varios responsables durante el proceso de la elaboración del software de calidad, estos son:

Ingenieros de software Jefes de proyecto Clientes Vendedores Quienes trabajan dentro de un grupo de la SQA

Page 9: calidad de software

Estos últimos pueden ser independientes y tendrán las siguientes actividades para llegar al objetivo de la SQA:

1. Establecimiento de un plan de la SQA para un proyecto.

En este plan se identifica: Evaluaciones a realizar Auditorías y revisiones a realizar Estándares que se pueden aplicar al proyecto Procedimientos para información y seguimiento de errores Documentos producidos por el grupo SQA Realimentación de información proporcionada al equipo de proyecto del software 1. Participación en el desarrollo de la descripción del proceso de software del proyecto 2. Revisión de las actividades de ingeniería del software para verificarsu ajuste al proceso de

software definido 3. Auditoría de los productos de software designados para verificar el ajuste con los definidos

como parte del proceso de software 4. Asegurar que las desviaciones del trabajo y los productos del software se documenten y se

manejen de acuerdo con un procedimiento establecido 5. Registrar lo que no se ajuste a los requisitos e informar a sus superiores

Actividades del Personal de SQA

Es responsable de asegurar la calidad de los productos generados en el proyecto y del proceso utilizado. Para asegurar la calidad debe revisar la calidad de los entregables de planificación del proyecto y los entregables de valoración del proyecto. Además revisa el nivel de apego al modelo de proceso de desarrollo de software y a los planes de Verificación, Gestión de Proyecto y Gestión de Calidad, documentando las desviaciones encontradas. Debe conocer los conceptos y técnicas de Gestión de Calidad del Software. Debe identificar las propiedades de calidad que deben cumplir los productos del proyecto. Centralizar y revisar las entregas que se realizan durante el ciclo de vida del proyecto. Realiza las Revisiones Técnicas Formales con los responsables de los productos a revisar.

El Responsable de SQA debe: Asegurarse de que se desarrollen prototipos para probar y eliminar riesgos técnicos que

hagan fracasar el proyecto así como también disminuir la calidad del mismo Asegurarse de que se realicen estudios de factibilidad Realizar mediciones para comprobar la calidad del proyecto Asegurarse de que se realice la actividad de implementación y se haga según los

estándares de calidad propuestos Evitar el desperdicio de esfuerzo en conjunto con el Administrador y el Arquitecto Registrar las métricas de aceptación tomando en cuenta el Documento de Validación con

el Cliente.

Perfil del rol Debe conocer los requerimientos del sistema. Debe conocer los estándares o lineamientos del proyecto para asegurar la calidad.

Page 10: calidad de software

Actividades que son responsabilidad del rol Planificar la Calidad Revisión Técnica Formal (RTF) Revisar las Entregas Revisar el Ajuste al Proceso Evaluar la Calidad de los Productos Realizar el Informe Final de Calidad

Entregables que son responsabilidad del rol Plan de Calidad Informe de RTF Entrega Semanal de SQA Informe de Revisión de SQA Informe Final de Calidad

Actividades en las que está involucrado el rol Relevar los Requerimientos Especificar los Requerimientos Priorizar los Requerimientos Validar los Requerimientos Validar con Prototipo Definir el Alcance del Sistema Definir la Línea Base del Proyecto Planificar el Proyecto Describir la Versión Planificar la Transición Seguimiento de Satisfacción del Cliente Gestión de Riesgos Registrar Esfuerzo Auto estudio Reunión de Equipo Preparar Cierre del Proyecto Reunión Conmemorativa

Actividades del SQA

Es una disciplina que está compuesta por una serie de actividades que acompañan al proceso de desarrollo. El objetivo de estas tareas es aumentar, administrar y monitorear la calidad de los entregables producidos. Para poder identificar estas actividades y el momento oportuno para realizarlas es necesario revisar el ciclo de vida de un proyecto. Para identificar las actividades se basa en el análisis de fases/disciplinas/esfuerzo realizado en RUP por ser un proceso muy difundido en el mercado, aunque el mismo análisis puede aplicarse a otros procesos de desarrollo.

Page 11: calidad de software

Verificación de requerimientos: esta actividad se concentra en validar la completitud, correctitud, claridad y no ambigüedad de los requerimientos de un sistema.

Validación y verificación de documentación: esta actividad se encarga de controlar la correctitud, completitud y no ambigüedad de la documentación. La documentación en UML es muy útil para esta práctica por el poder semántico que tiene y por la posibilidad de validar sintácticamente la documentación.

Validación de arquitectura: esta actividad es muy importante para evaluar la factibilidad de cumplir con los requerimientos no funcionales y detectar de forma temprana los principales riesgos asociados al proyecto.

Control de código: se subdivide en 2 actividades: Control estático del código: es la validación del código contra un conjunto de reglas,

mejores prácticas y estándares predefinidos. Control dinámico del código: el control se focaliza en el uso de los recursos que hace la

aplicación y la cobertura del código que hacen las pruebas unitarias

Para poder lograr una buena adherencia con los estándares se debe medir cuantitativamente, donde sea posible, los aspectos de calidad (por ejemplo complejidad, confiabilidad, mantenimiento, seguridad, defectos, número de problemas) utilizando métricas bien establecidas. Para cumplir con esto, se deben realizar chequeos de:

- Administración.- Documentación.- Estándares, prácticas, convenciones y métricas. - Revisiones e intervenciones. - Actividades de testeo. - Reporte de errores y acciones correctivas. - Herramientas, técnicas y métodos. - Control del código.- Control de medios.- Colección de registros, mantenimiento y retención.- Control de los proveedores.- Entrenamiento.- Administración del riesgo.

Page 12: calidad de software

Problemas que Resuelve SQA Aumenta las posibilidades del éxito final del proyecto Ayuda a definir los parámetros de medición de la calidad del software Verifica que los estándares sean aplicados correctamente Define un plan de monitoreo del proceso de desarrollo del software (ciclo de vida)

Referencias

1. [Desconocido] “Calidad” 2011. <<http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=calidad>>

2. [Desconocido] “ISO 8402” 19 de Agosto del 2010. << http://es.wikipedia.org/wiki/ISO_8402>>

3. [Desconocido] “Implantación de Calidad de Software”. << http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r67854.PPT>>

4. [Desconocido] “ARMAND V. FEIGENBAUM”. 6 de Febrero del 2009. << http://www.pablogiugni.com.ar/httpwwwpablogiugnicomarp91/>>

5. [Cathy Peñuñuri] “Implantación de Calidad de Software” 2011. <<Diapositivas>>

6. [Desconocido] “Garantía de calidad del software”. 11 de Febrero del 2011. << http://www.worldlingo.com/ma/enwiki/es/Software_quality_assurance>>

7. [Desconocido] “La garantía de calidad en el software”. 22 de Abril del 2005. << http://www.idg.es/computerworld/articulo.asp?id=167022>>

8. [Luciano Guerrero] “La garantía de calidad en el software”. 11 de Octubre del 1999. << http://www.reocities.com/SiliconValley/lab/3629/garantia.htm>>

9. [Desconocido] “Costo De La Calidad Del Software”.<< http://www.mitecnologico.com/Main/CostoDeLaCalidadDelSoftware >>

10.[IAAP] “El Costo de la Calidad”. << http://www.deltaasesores.com/articulos/autores-invitados/iaap/3005-el-costo-de-la-calidad >>

11.[Desconocido] << http://www.mitecnologico.com>>

12.[Roger S.Pressman] “Garantía de la Calidad del Software (SQA/GCS) ”1993. <<Libro Ingeniería de Software, un enfoque práctico 3ª Edición, The McGraw-Hill, Inc >>