Tema 02 Atributos de Calidad Del Software

Tema 02: Atributos de calidad del software Bienvenida Bienvenidos al tema de ésta semana en la que resaltaremos la clas

Views 65 Downloads 0 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Tema 02: Atributos de calidad del software

Bienvenida Bienvenidos al tema de ésta semana en la que resaltaremos la clasificación de los atributos dividiéndolos en externos e internos y así poder seleccionarlos de manera apropiada. Por otro lado veremos la clasificación de las métricas de calidad y a descripción de algunos modelos de calidad de software.

Introducción al tema En el tema de la segunda semana veremos lo referente a la manera en que Pressman nos da un enfoque de definir las métricas de calidad del software. Luego, para la recopilación de métricas de software vamos a primero definir los tipos de métricas que existen por la metodología básica de desarrollo de software: Análisis, Diseño, Codificación, Pruebas y Mantenimiento. Describiremos también algunos modelos de calidad de software y métodos de selección y priorización de atributos de calidad y de medición de la calidad para poder hacer predicciones y encontrar componentes anómalos que perjudiquen a la calidad del software. .

Aprendizajes esperados Conozcamos ahora las capacidades y actitudes a desarrollar en este segundo tema: Capacidad Conoce las métricas de calidad de software. Identifica los atributos de calidad de software. Usa el método de medición de la calidad de software.

Actitudes Valora los atributos de la calidad del software. Participa en el método de selección y priorización de atributos en el caso práctico planteado.

Mapa conceptual referido al tema Observa detenidamente el siguiente esquema, en el encontrarás de un “vistazo” de manera sintetizada los principales concepto de la temática que abordaremos. ¿Qué conceptos o categorías te llaman la atención?

2.1. Definición de métricas de calidad. Michael [‘99] define las métricas de software como “La aplicación continua de mediciones basadas en técnicas para el proceso de desarrollo del software y sus productos para suministrar información relevante a tiempo, así el administrador junto con el empleo de éstas técnicas mejorará el proceso y sus productos”. Las métricas de software proveen la información necesaria para la toma de decisiones técnicas. Según Pressman (2006) las métricas van a ayudar a la (1) evaluación de los modelos de análisis y de diseño, (2) en donde proporcionarán una indicación de la complejidad de diseños procedimentales y de código fuente, y (3) ayudaran en el diseño de pruebas más efectivas. Es por eso que propone un proceso de medición, el cual se puede caracterizar por cinco actividades: 1. Formulación: La obtención de medidas y métricas del software apropiadas para la representación de software en cuestión. 2. Colección: El mecanismo empleado para acumular datos necesarios para obtener las métricas formuladas. 3. Análisis: El cálculo de las métricas y la aplicación de herramientas matemáticas. 4. Interpretación: La evaluación de los resultados de las métricas en un esfuerzo por conseguir una visión interna de la calidad de la representación. 5. Realimentación: Recomendaciones obtenidas de la interpretación de métricas técnicas trasmitidas al equipo de software.

2.2. Proceso de recopilación de métricas de software. Para recopilar las métricas de software que utilizaremos en nuestro proyecto, debemos informarnos acerca de las categorías en las que se agrupan éstas métricas. A continuación se describen cinco categorías, según Pressman (2006): a. Métricas para el modelo de análisis. Éstas métricas atienden varios aspectos del modelo de análisis e incluyen: - Funcionalidad entregada: proporciona una medida indirecta de la funcionalidad que se empaqueta con el software. - Tamaño del sistema: mide el tamaño general del sistema, definido desde el punto de vista de la información disponible como parte del modelo de análisis. - Calidad de la especificación: proporciona una indicación de la especificado o el grado en el que se ha completado la especificación de los requisitos. b. Métricas para el modelo de diseño. Estas métricas cuantifican los atributos del diseño de manera tal que le permiten al ingeniero del software evaluar la calidad del diseño. La métrica incluye: - Métricas arquitectónicas: proporcionan un indicio de la calidad del diseño arquitectónico. - Métricas a nivel de componente: miden la complejidad de los componentes del software y otras características que impactan la calidad. - Métricas de diseño de la interfaz: se concentran principalmente en la facilidad de uso. - Métricas especializadas en diseño orientado a objetos: miden características de clases, además de las correspondientes a comunicación y colaboración. c. Métricas para el modelo de Código fuente. Éstas métricas miden el código fuente y se usan para evaluar su complejidad, de los componentes del software, además de la facilidad con que se mantiene y prueba, entre otras características: - Métricas de Halstead: controversiales pero fascinantes, éstas métricas proporcionan medidas únicas de un programa de cómputo. - Métricas de complejidad: miden la complejidad lógica del código fuente (también se consideran métricas de diseño al nivel de componentes). - Métricas de longitud: proporcionan un indicio del tamaño del software. d. Métricas para pruebas. Éstas métricas ayudan a diseñar casos de prueba efectivos y a evaluar la eficacia de las pruebas. - Métricas de cobertura de instrucciones y ramas: lleva al diseño de casos de prueba que proporcionan cobertura del programa. - Métricas relacionadas con los defectos: se concentran en encontrar defectos y no en las propias pruebas. - Efectividad de la prueba: proporcionan un indicio en tiempo real de la efectividad de las pruebas aplicadas. - Métricas en el proceso: métricas relacionadas con el proceso que se determinan a medida que se aplican las pruebas. e. Métricas para el mantenimiento. Las métricas descritas también se aplican al mantenimiento del software existente.

2.2.1 El proceso de recopilación La recopilación requiere información histórica de los proyectos previos. Una vez que se han recopilado las medidas es posible calcular las métricas. Posteriormente, las métricas se evalúan y se produce un conjunto de indicadores que guían el proyecto o proceso. Estos indicadores se pueden utilizar para: evaluar la estabilidad y capacidad del proceso, interpretar los resultados de las observaciones, predecir costos y recursos para el futuro, proveer líneas base, graficar tendencias e identificar oportunidades de mejora. Una vez obtenidos los indicadores se debe ejecutar un control para verificar que el proceso se comporte consistentemente, identificar las áreas donde éste se encuentra o no bajo control, y aplicar las medidas correctivas donde sea necesario. Se debe también analizar los resultados y compararlos con promedios de proyectos similares anteriores realizados dentro de la organización, para generar conclusiones y establecer tendencias para los diferentes comportamientos.

2.3. Modelos.

En este apartado hablaremos de los siguientes modelos. McCall. FURPS DROMEY MOSCA QSOS.

2.3.1. McCall Desarrollado por McCall (1977), se focaliza en el producto final, identificando atributos claves desde el punto de vista del usuario. Estos atributos se denominan factores de calidad y son normalmente atributos externos aunque también se pueden incluir atributos internos.

2.3.2 FURPS. Desarrollado por Hewlett-Packard (1987), es un modelo de calidad fijo que establece cinco características como factores de calidad para todas las actividades del proceso de un software: - Funcionality (Funcionabilidad): Describen qué es lo que un usuario debe ser capaz de hacer a través del sistema de software. Incluye características de sistemas, capacidades y seguridad. - Usability (Usabilidad): La facilidad de uso incluye todos aquellos atributos que facilitan la interacción de un usuario con el sistema. Puede incluir subcategorías como: Factores humanos, estética, consistencia, documentación. - Reliability (Confiabilidad): Agrupa los requerimientos que tienen que ver con la solidez y robustez de un sistema durante su ejecución. Incluye Recuperabilidad. Precisión y Predicción. - Performance (Rendimiento): Se refiere a la velocidad del sistema y su eficiencia en utilización de recursos. Referente también a consumo, productividad y tiempo de respuesta. - Supportability (Soporte): Incluyen requisitos de instalación y configuración, así como facilidades para mantener y administrar la operación del sistema. Se utilizan para establecer métricas de la calidad para todas las actividades del proceso de desarrollo de un software, inclusive de un sistema de información.

2.3.3 DROMEY. Resalta el hecho de que la calidad del producto es altamente determinada por los componentes del mismo (incluyendo documentos de requerimientos, guías de usuarios, diseños, y código). Sugiere el uso de cuatro categorías que implican propiedades de calidad, que son: correctitud (funcionalidad, confiabilidad), internas (mantenibilidad, eficiencia, confiabilidad), contextuales (mantenibilidad, reusabilidad, portabilidad, confiabilidad) y descriptivas (mantenibilidad, reusabilidad, portabilidad, usabilidad).

2.3.4 MOSCA. Es una herramienta de estimación de la calidad sistémica dentro de una organización desarrolladora de software, que soporta la administración de la calidad en sus tres actividades: aseguramiento, planeación y control de la calidad. Consta de 4 niveles: dimensiones, categorías, características y las métricas. En base de tres ramas: el producto, el proceso y la humana. Contiene un total de 715 métricas.

2.3.5 QSOS. Uno de los modelos que permite la cuantificación y calificación de software Open Source es el Method for Qualification and Selection of Open Source Software (QSOS). Está orientado exclusivamente al producto de software. Consta de cuatro pasos:

Definición: Constitución y enriquecimiento de los marcos de referencia que serán utilizados en los pasos siguientes. Evaluación: Evaluación del software hecho de acuerdo a 3 ejes de criterios: cobertura funcional, riesgos del usuario y riesgos del proveedor de servicios (independientemente de cada usuario particular/ contexto de uso). Calificación: Carga de los criterios divididos en 3 ejes, modelando el contexto (requerimientos de usuario y/o estrategia escogida por el proveedor de servicios). Selección: Aplicación del filtro configurado en el paso anterior a los datos encontrados en los dos primeros pasos, de manera de realizar consultas, comparaciones y selección de productos.

Preguntas de análisis Después de haber leído los contenidos explicados anteriormente, quizás te estas preguntando lo siguiente 1. ¿El código presentado en la lectura de la prueba de Google en el inodoro, es entendible para cualquier usuario (cliente que no sabe de programación)? ¿Explica la primera parte del código? 2. ¿Qué solución le daría Ud. al problema de la introducción de un nuevo parámetro en un método? 3. ¿Qué refactorización le haría al segundo fragmento de código para mejorar la calidad? Al respecto para conocer un poco más sobre este tema, y dar respuesta a las preguntas planteadas a continuación te invitamos a leer analíticamente la siguiente lectura. http://googletesting.blogspot.com/2015/01/testing-on-toilet-changedetector-tests.html

Bibliografía

Pressman Roger, (2006) Ingeniería del Software. Recuperado de

https://mega.co.nz/#!VFYzTQxL!C9A3zSP6JidKcrWir2vMUhxlrrsBk3oybDnrvpDidBU Fontela, Carlos, (2009). Técnicas de aseguramiento de la calidad del producto. Recuperado de: https://cysingsoft.wordpress.com/2008/06/24/tecnicas-de-aseguramiento-de-la-calidad-del-producto/ Kshirasagar Naik, Priyadarshi Tripathy (2008). Software Testing and Queality Assurance: Theory and Practice. Recuperado de: http://www.softwaretestinggenius.com/download/staqtpsn.pdf Organización Internacional para la Estandarización. Compendio de Normas ISO. Sistema de la Gestión de la Calidad, Ingeniería Ambiental. Recuperado de http://www.uco.es/sae/archivo/normativa/ISO_9000_2005.pdf

Lecturas recomendadas (para ampliar conocimientos de la primera semana)

Para saber más Ponemos a tu disposición y te invitamos a revisar dos interesantes documentos que te ayudaran a reforzar y ampliar los temas que hemos estudiado, estos los encontrarás en la base de datos e-libros que utiliza nuestra universidad: Documento 1: Procesos de Desarrollo de Software y su certificación en calidad. URL: Procesos_de_Desarrollo_de_Software_y_su_certificacion_en_calidad.pdf Breve descripción: En éste documento encontraremos los lineamientos para la mejora de procesos, los cuales indican si la implementación de un proceso clave es efectivo, repetible y duradero. Se propone una metodología basada en procesos para el desarrollo del software integrada por un ciclo de vida, procedimientos normativos, plantillas para los productos de las actividades y herramientas de apoyo para el desarrollo de las actividades.

Documento 2: Metodologías ágiles en el desarrollo de software URL: Metodologias_agiles_en_el_desarrollo_de_software.pdf Breve descripción: Éste documento realiza una referencia al desarrollo ágil, hace una comparación entre las metodologías tradicionales y las ágiles. Se centra en la descripción de la metodología XP en todo el proceso de desarrollo de software, explicando sus fases o características: Historias de usuarios, roles, proceso y prácticas. Finalizando con la descripción de otras metodologías ágiles existentes.

Conclusiones de la primera semana

Se definió cultura de calidad de software, conceptualizando cada término y agrupándolo. La cultura de calidad de software es un compromiso de gestión de desarrollo de software, el cual cumple con los requerimientos del cliente y con los estándares establecidos de calidad de software. Se describió los ocho principios de calidad del software propuestos por las normas ISO 9000:2000, los cuales son: Cliente, liderazgo, participación de las personas, enfoque de proceso, enfoque del sistema para la gestión, mejora continua, enfoque basado en hechos para la toma de decisiones y relaciones mutuamente beneficiosas. Se dio una breve descripción de los modelos existentes de calidad de software. También se describió una serie de actividades para el aseguramiento de calidad del software, así como una metodología planteado por Carlos Fontela.

Metacognición (de la primera semana)

Las siguientes preguntas te ayudarán a reflexionar sobre tus propios aprendizajes, es un ejerció recomendado para razonar e identificar nuestro esfuerzo intelectual, la finalidad es regular nuestras acciones y procesos mentales ¿De la temática abordada que te llamó más la atención? ¿Consideras que aprendiste con los contenidos abordados? ¿Tuviste dificultad con algún tema o actividad? ¿Cómo los solucionaste? ¿Qué acciones realizaste para aprender?