GUIAS DE APOYO
Unidad I. Introducción a la Calidad en el Desarrollo de Software
GENERALIDADES DE LA CALIDAD
Universidad de Morón - Facultad de Informática, Ciencias De la Comunicación y Técnicas Especiales
Herramientas de Software
Pág. Nº 1
CALIDAD DE SOFTWARE
Definición de Calidad:
Concordancia con los requisitos funcionales debidamente establecidos, con los estándares de desarrollo
explícitamente documentados y con las características implícitas que se espera que todo software
desarrollado profesionalmente.
• Los requisitos de software son la base de la medida de calidad. Si no se cumple con los requisitos
establecidos, no será un software de calidad.
• Los estándares especificados definen un conjunto de criterios de desarrollo que guían la forma en que
se aplica la ingeniería de software.
• Existe un conjunto de requisitos implícitos que no se mencionan, pero que están presentes en todos
desarrollo profesional, como el buen mantenimiento o la facilidad de uso.
Factores que Determinan la Calidad
Existen dos tipos de factores:
• Factores que pueden ser medidos directamente (errores/KLDC/unidad de tiempo).
• Factores que solo pueden ser medidos indirectamente (la facilidad de uso o de mantenimiento).
En ambos casos se puede medir la calidad, debemos comparar el software (documentos, programas,
etc.) con alguna referencia y llegar a una indicación de calidad.
Factores de Calidad según McCall
Loa factores desarrollados según el modelo de McCall, se centra en tres aspectos importantes de un
productos de software:
• Sus características operativas.
• Su capacidad para soportar los cambios.
• Su adaptabilidad a nuevos entornos.
Lista de factores:
• Corrección: mide el grado en que un programa satisface sus especificaciones y consigue los
objetivos del usuario.
• Fiabilidad: mide el grado en que se puede esperar que un programa lleve a cabo sus funciones
esperada con la precisión requerida.
• Eficiencia: mide la cantidad de recursos de computadora y de código requerido por un programa
para que lleve a cabo las funciones especificadas.
• Integridad: es el grado en que puede controlarse el acceso al software o a los datos por personal
no autorizado.
• Facilidad de Uso: es el esfuerzo requerido para aprender un programa e interpretar la información
de entrada y de salida.
• Facilidad de Mantenimiento: es el esfuerzo requerido para localizar y arreglar programas.
• Facilidad de Prueba: es el esfuerzo requerido para probar un programa.
• Flexibilidad: es el esfuerzo requerido para modificar un sistema operativo.
• Portabilidad: es el esfuerzo requerido para transferir un software de un hardware o un entorno de
sistemas a otro.
• Reusabilidad: es el grado en que un programa (o partes de un programa) se puede reutilizar en
otro.
• Facilidad de Interoperación: es el esfuerzo requerido para asociar un programa a otro.
Factores de Calidad según Boehm
El modelo que presenta Boehm presenta una jerarquía de características donde cada una de ellas
contribuye a la calidad global. Se centra en:
• Sus características operativas.
• Su capacidad para soportar los cambios. Factores según McCall
• Su adaptabilidad a nuevos entornos.
• La evaluación del desempeño del hardware.
El modelo comienza con la utilidad general del software, afirmando que el software es útil, evitando
pérdida de tiempo y dinero.
La utilidad puede considerarse en correspondencia a los tipos de usuarios que quedan involucrados. El
primer tipo de usuarios queda satisfecha si el sistema hace lo que el pretende que haga; el segundo
tipo es aquel que utiliza el sistema luego de una actualización y el tercero, es el programador que
mantiene el sistema.
Factores de Calidad según ISO 9126
Es un modelo jerárquico con seis atributos especiales.
La diferencia con McCall y Boehm es que la jerarquía es estricta, es decir, que cada característica de la
derecha solo está relacionada con un solo atributo del modelo. Las características de la derecha se
relacionan con la visión del usuario.
• Funcionalidad ............................... Adaptación, Exactitud, Interoperación, Seguridad.
• Confiabilidad ................................ Madurez, Tolerancia a Defectos, Facilidad de Recuperación.
• Eficiencia ...................................... Comportamiento en el Tiempo, de los Recursos.
• Facilidad de Uso ........................... Facilidad de Comprensión, de Aprendizaje, de Operación.
• Facilidad de Mantenimiento ......... Facilidad de Análisis, de Cambios, de Pruebas, Estabilidad.
• Portabilidad.................................. Adaptabilidad, Facilidad de Instalación, de Reemplazo.
Administración de Calidad
La administración de calidad definir procedimientos y estándares a utilizar en el desarrollo de software y
comprobar que todos los ingenieros de software lo sigan.
Los buenos administradores tienen como propósito desarrollar una “cultura de calidad”, en donde cada
integrante del grupo es motivado para que logre un alto nivel de calidad del producto a desarrollar.
La administración de calidad se estructura en tres actividades principales:
1.- Aseguramiento de Calidad: es el establecimiento de un marco de trabajo de procedimientos y
estándares organizacionales que conduce a desarrollar un software de calidad.
Los procedimientos de aseguramiento de calidad se documentan en un manual de calidad que
define el proceso de desarrollo.
Existen dos tipos de estándares:
• Estándares del Producto: son estándares del producto, como la estructura del documento
de requerimientos, el documento de codificación que define como utilizar un lenguaje de
programación, estándares de documentos.
• Estándares del Proceso: son estándares que definen los procesos a seguir durante el
desarrollo. Incluyen definición de los procesos de especificación, de diseño, y de validación, y
una descripción de la documentación a generar.
2.- Planificación de la Calidad: se inicia en las primeras etapas de desarrollo en forma
independiente de la planificación del proyecto general. Define la calidad del producto deseado,
define como valorar la calidad (porque para los desarrolladores pesan distintos factores de
calidad).
Estructura del Plan de Calidad:
• Introducción del Producto: contiene la descripción del producto a desarrollar, el mercado al
cual se dirige y las expectativas de calidad del producto.
• Planes del Producto: contiene la fecha de terminación del producto, lo recursos necesarios,
las responsabilidades junto con la distribución y servicio.
• Descripción del Proceso: contiene los procesos de desarrollo y de servicios a utilizar para el
desarrollo y la administración del producto a desarrollar.
• Metas de Calidad: contiene las metas y planes de calidad para el producto a desarrollar,
incluye una identificación y una justificación de los atributos de calidad importantes.
• Riesgos y Administración de Riesgos: contiene los riesgos claves que pudieran afectar la
calidad del producto de desarrollo y el plan de contingencias.
3.- Control de Calidad: implica vigilar el procedimiento de desarrollo para asegurar que se sigan los
procedimientos de aseguramiento y los estándares de calidad.
El proceso de control de calidad tiene su propio conjunto de procedimientos e informes a utilizar
durante el desarrollo.
Existen varios métodos de para validar la calidad de un proceso o producto, el más utilizado son
las Revisiones Técnicas Formales.
Revisiones Técnicas Formales (RTF)
Es una actividad de la garantía de calidad de software. Los objetivos de las revisiones técnicas formales
son:
• Descubrir errores en la función, la lógica o la implementación de cualquier representación de
software.
• Verificar que el software bajo su revisión alcanza sus requisitos los funcionales.
• Garantizar que el software ha sido desarrollado de acuerdo a los estándares predefinidos.
• Conseguir un software desarrollado uniformemente.
• Hacer que los proyectos sean más manejables.
Restricciones de la RTF:
• Se debe convocar a la RTF normalmente entre 3 y cinco personas.
• Se debe prepara por adelantado, pero sin que requiera más de dos horas de trabajo previo por
persona.
• La duración de la RTF debe ser menor a dos horas.
• Se debe centrar en una parte especifica y pequeña del software total.
Directrices de la RTF:
• Revisar el producto, no al productor.
• Fijar una agenda y mantenerla (es decir no desviar el tema de la reunión).
• Limitar el debate y las impugnaciones.
• Enunciar áreas del problema, no intentar resolverlo.
• Tomar notas escritas.
• Limitar el número de participantes, e insistir en la preparación anticipada.
• Desarrollar un lista de comprobación para cada producto a ser revisado.
• Disponer de recursos y una agenda para las RTF (incluir como tarea del proyecto).
• Llevar a cabo un entrenamiento por parte de los revisores.
• Repasar las revisiones anteriores.
Bibliografía:
Ingeniería de Software. Roger Pressman
Ingeniería de Software. Ian Sommerville
Ingeniería de Software. Shari Pfleeger
Unidad II. Métricas de Software
DIAPOSITIVAS METRICAS DE SOFTWARE