Download
ingenier a de software clase 5 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Ingeniería de Software Clase 5 PowerPoint Presentation
Download Presentation
Ingeniería de Software Clase 5

Ingeniería de Software Clase 5

151 Views Download Presentation
Download Presentation

Ingeniería de Software Clase 5

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Ingeniería de SoftwareClase 5 Calidad Ingeniería de Software - Clase 5

  2. Glosario de la Clase • Objetivos • Administración de la calidad • Aseguramiento y estándares de calidad • Planeación de la calidad • Control de calidad • Proceso del software • Normas • ISO • CMM Ingeniería de Software - Clase 5

  3. Bibliografía • Ingeniería de Software (Sommerville) • Ingeniería de Software (Pfleeger) • Página del SEI (CMM) (www.sei.org) • Página de ISO • Material del CD. Ingeniería de Software - Clase 5

  4. Administración de Calidad • Calidad  concepto presente en el mundo globalizado • Como se aplica en IS? • Definiendo calidad: • “el producto desarrollado cumple su especificación” (Crosby, 1979) Ingeniería de Software - Clase 5

  5. Administración de Calidad • Como se aplica a la IS?  problemas • La especificación se orienta hacia las características del producto que el consumidor quiere, pero la organización tiene requerimientos que no se incluyen en la especificación (ej. Mantenimiento) • No se sabe como especificar ciertas características de calidad de una forma no ambigua • En IR es muy difícil redactar especificaciones concretas del software. Por esto aunque el producto esté acorde con la especificación, los usuarios no lo consideran un producto de alta calidad Ingeniería de Software - Clase 5

  6. Administración de Calidad • Tres actividades principales • Aseguramiento de calidad • Establecer un marco de trabajo de procedimientos y estándares organizacionales que conduce a software de alta calidad • Planeación de la calidad: la selección de procedimientos y estándares adecuados a partir de este marco de trabajo y la adaptación de éstos para un proyecto específico. • Control de calidad: definición y promulgación de los procesos que aseguran que los procedimientos y estándares para la calidad del proyecto son seguidos por el equipo de desarrollo de software. Ingeniería de Software - Clase 5

  7. Administración de Calidad • Administración de calidad  proceso de desarrollo del soft • Tareas independientes • El resultado del proceso de desarrollo  se introduce en el proceso de administración de la calidad • Cuales son los procesos de adm.? • ISO 9000 • CMM Ingeniería de Software - Clase 5

  8. Administración de Calidad • Actividades para QA (aseguramiento de calidad) • Estándares • Del producto: se aplican sobre el elemento a desarrollar. Se incluye • Estándares de documentos • Estructuras del documento de requerimiento • Estándares de codificación, etc. • Del proceso: definen los procesos a seguir durante el desarrollo del soft. Incluyen • Procesos de especificación, diseño y validación • Documentación asociada con lo anterior Ingeniería de Software - Clase 5

  9. Administración de Calidad • Estándares de documentación • Son la única forma tangible de representar al software y al proceso de software. • Tres tipos de estándares • Del proceso de documentación: define el proceso a seguir para la producción del documento • Del documento: gobierna la estructura y presentación de documentos • Para intercambio de documentos: asegura-miento que las copias electrónicas sean compatibles Ingeniería de Software - Clase 5

  10. Administración de Calidad • Calidad del proceso y del producto Calidad basada en procesos Ingeniería de Software - Clase 5

  11. Administración de Calidad • El dibujo anterior  se aplica en producción manufacturera • Como llevarlo a la producción del software? • Es difícil medir atributos del software sin utilizarlo mucho tiempo • Mejorar la calidad se centra en • Identificar buenos productos de calidad • Examinar el proceso usado para su desarrollo • Generalizar el proceso para aplicarlo en varios proyectos. Ingeniería de Software - Clase 5

  12. Administración de Calidad • Inconvenientes • La relación proceso del software y calidad del producto es compleja. • Cambiar el proceso no siempre conduce a mejorar calidad del producto • Recordar análisis de riesgo. • Planificación de calidad • Se inicia en las primeras etapas del proceso del software. • Un plan de calidad define • la calidad del producto deseado • Como valorar esta calidad • Lo que significa el software de “alta calidad” Ingeniería de Software - Clase 5

  13. Un plan de calidad selecciona los estándares organizacionales apropiados para un producto. Un proceso de desarrollo Un plan comprende Introducción al producto Descripción del mismo, el mercado a donde está dirigido y las espectativas de calidad Planes de producto Fechas de terminación y responsabilidades importantes Descripción del proceso De desarrollo y de servicio a utilizar para el desarrollo y administración del producto Metas de calidad Metas y planes de calidad previstos Riesgo y administración del riesgo Administración de Calidad Ingeniería de Software - Clase 5

  14. Administración de Calidad • Control de calidad • Vigilar el proceso de desarrollo del software para asegurar que se sigan los procedimientos de aseguramiento y estándares de calidad. • Dos enfoques • Revisiones de calidad (se evalúa soft, documentación y procesos utilizados) • Valoración automática del soft (el soft y documentos producidos se procesan por algún programa y se comparan contra estándares que se aplican a ese proyecto en particular). Ingeniería de Software - Clase 5

  15. Proceso de Software. Definición. • Actividades, métodos y prácticas para desarrollar y mantener software y sus productos asociados. Procedimientos & Métodos Gente. Habilidades & Motivación Herramientas & Equipamiento Proceso Ingeniería de Software - Clase 5

  16. Proceso. Aspectos Generales. • Capacidad: Rango de resultados que pueden ser alcanzados siguiendo un proceso inicialmente establecido a nivel de organización. • Performance / Desempeño: medida de los resultados reales alcanzados. Se aplica a un proyecto en particular de la organización. Suele ser <> por cada ejecución del proceso Es lo que se intenta predecir y controlar Ingeniería de Software - Clase 5

  17. Probabilidad Probabilidad Resultado Resultado Capacidad & Resultados Proceso de Baja capacidad Procesode Alta capacidad • Madurez de un proceso • La medida en la cual un proceso está explícitamente documentado, gestionado, medido, controlado y continuamente mejorado Resultado podría ser plazo / fit presup / # bugs, etc Procesomaduro tendrá alta capacidad Ingeniería de Software - Clase 5

  18. Crisis del software (I) • Concreción del proyecto: • 31% son cancelados antes de la finalización • Costo • +50% han costado el doble de lo estimado originalmente. • Calidad • En mediciones actuales se estima la existencia de 50 errores/1000 lineas de código http://www.costxpert.com/resource_center/disaster_as_opportunity.html https://secure.standishgroup.com/reports/reports.php?rid=500 Ingeniería de Software - Clase 5

  19. Crisis del software (II) • Standish Group 2004 • Proyectos de IT han mejorado su “tasa de éxito” un 34%. Mejora del 100% en comparación con 1994. Tasa de fallos -15%. Problema de costos promedio 43% Project Managementconceptualizado y no tomado como una “ciencia oculta” Proyectos mas pequeños Procesos iterativos haciendoevidentes los requerimientos http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish Ingeniería de Software - Clase 5

  20. Contexto. Realidad del Software • Necesidad de software cada vez mas complejo & crítico. • La producción de software es una actividad creativa e intelectual realizada por seres humanos. Técnicas de Ingeniería de software acompañadas por sentido común, Competencia y Experiencia. • Técnicas de Ingeniería de software en re-evaluación (Método iterativo vs waterfall). Productos de software como los Web Services implican una aplicación diferencial de las técnicas. • Aceptación del ppio del “No Silver Bullet” Ingeniería de Software - Clase 5

  21. Modelos de Proceso y de su Capacidad • CMM (Capability Maturity Model) • Desarrollado por SEI (Software Engineering Institute), org. creado por el DoD de USA • Fuerte impacto en mejora del proceso • Estipula un Camino para la mejora • Areas Clave que se deben atacar • ISO 12207 – Modelos de Ciclos de Vida del Software • Actividades que debe incluir • SPICE (Software Process Improvement and Capability dEtermination) – ISO 15504 • Tick-It (modelo inglés) CMMI Ingeniería de Software - Clase 5

  22. Ingeniería de Software - Clase 5

  23. CMM SW v1.1(Capability Maturity Model) Mejora continua del proceso Nivel 5: Optimizante Gestión del Cambio Control del proceso Nivel 4: Gestionado Definición del Proceso Nivel 3: Definido Gestión Cuantitativa Disciplina del Proceso Nivel 2: Repetible Gestión de Ingeniería Madurez Nivel 1: Inicial Gestión del Proyecto Ingeniería de Software - Clase 5

  24. Nivel 1 - Inicial Desempeño basado en la competencia del personal • frecuentemente la organización vive apagando incendios • aparecen héroes • dificultad para encarar mejoras a largo plazo • la organización actúa esencialmente por reacción • Promueve alta calidad y desempeño excepcional, posible siempre que se logre contar con los mejores • Impredecible (para bien y para mal) • Caracterizado por problemas que son esencialmente de gestión, no técnicos Salidas Entran los requerimientos y otras entradas y salen los productos Entradas Ingeniería de Software - Clase 5

  25. Nivel 2 - Repetible La organización • estableció la gestión efectiva de los proyectos de software • el proceso de gestión del software está documentado • usa políticas organizacionales para guiar a los proyectos en establecer los procesos de gestión • repite prácticas exitosas desarrolladas en proyectos previos Entradas Salidas Reqs. Diseño Codif. Prueba Existen riesgos al presentarse nuevos desafíos. Ingeniería de Software - Clase 5

  26. Nivel 3 - Definido • El proceso para la gestión y las actividades de ingeniería está documentado e integrado en un proceso estándar para la organización. • Todos los proyectos usan una versión documentada y aprobada del proceso estándar de la organización. • Una task force dedicada al proceso de Ingeniería de software ha sido establecido para focalizar y liderar esfuerzos en la mejora. Salidas Entradas Ingeniería de Software - Clase 5

  27. Nivel 4 - Gestionado La organización • aplica los principios de la gestión estadística de procesos para controlar el proceso del software • la dirección tiene bases objetivas para tomar decisiones, • puede predecir el desempeño en un entorno cuantificado realista • usa los datos como base para decisiones, objetivos y mejoras Reacción frente a las mediciones fuera de rango de control Entradas Salidas Productos y Proceso Gestionados cuantitativamente Ingeniería de Software - Clase 5

  28. Nivel 5 - Optimizante La organización • identifica y elimina causas de desempeño pobre • mejora continua del proceso en base a gestión del cambio del proceso y de la tecnología Foco en la mejora del proceso y tecnología Entradas Salidas Cambio controlado se institucionaliza Ingeniería de Software - Clase 5

  29. Areas Clave de Proceso conjunto de actividades relacionadas • tales que cuando se llevan a cabo, se logran un conjunto de objetivos • Estos objetivos son considerados importantes para mejorar la capacidad del proceso Para cada Area Clave (Key Process Area) está presentada en el modelo de acuerdo a Características Comunes (Common Features), referidas a su institucionalización: • compromiso en realizar • capacidad de realizar • actividades realizadas • medición y análisis • verificación de implementación Ingeniería de Software - Clase 5

  30. Estructura del modelo CMM Niveles de Madurez indican contiene Capacidad del proceso Areas Clave del Proceso logra organizada por Objetivos Características Comunes refiere a Implementación o Institucionalización Prácticas Clave describe Infraestructura o actividades Ingeniería de Software - Clase 5

  31. Areas Clave del Proceso Nivel CMMArea Clave del Proceso Inicial Ninguna RepetibleGestión de Requerimientos (RM) Planificación de Proyecto de Software (SPP) Seguimiento y Supervisión de proyectos de Sw (SPTO) Gestión de Subcontratos de Sw (SSM) Aseguramiento de la calidad del Sw (SQA) Gestión de la Configuración del Sw (SCM) Ingeniería de Software - Clase 5

  32. Areas Clave del Proceso (II) DefinidoFoco en el proceso de la organización (OPF) Definición de los procesos de la organización (OPD) Programa de entrenamiento (TP) Gestión de Sw integrada (ISM) Ingeniería de Productos de Sw (SPE) Coordinación entre grupos (IC) Revisiones entre pares (PR) Gestionado Gestión cuantitativa del proceso (QPM) Gestión de la calidad del software (SQM) Optimizante Prevención de defectos (DP) Gestión del cambio tecnológico (TCM) Gestión del cambio del proceso (PCM) Ingeniería de Software - Clase 5

  33. SW-CMM- EstructuraAspectos Comunes • Compromiso para la ejecución: acciones que la organización debe llevar a cabo para establecer el proceso y que perdure. Políticas y liderazgos corporativos. • Habilidad para ejecutar: precondiciones para ejecutar el proceso competentemente. Entrenamiento, estructura y recursos Atributos que permiten que la implementación o institucionalización de un área clave sea efectiva, repetible y perdurable Ingeniería de Software - Clase 5

  34. SW-CMM- EstructuraAspectos Comunes (II) • Actividades a ejecutar: Comprende actividades, roles y procedimientos para implementar un área clave. • Mediciones y análisis: Describe las prácticas de medición necesarias para determinar el estado del proceso. • Verificación de la implementación: Describe los pasos para asegurar que las actividades son llevadas a cabo de acuerdo al proceso establecido. Incluye revisiones & auditorías. Ingeniería de Software - Clase 5

  35. Gestión de Requerimientos (RM) Repetible Propósito: • Establecer un entendimiento común entre el cliente y el equipo de proyecto sobre los requerimientos del cliente que deben tenerse en cuenta Objetivos: • Documentar requerimientos como base del proyecto • Gestionar y controlar los cambios que se hacen a los requerimientos durante todo el ciclo de vida del proyecto http://www.pst.informatik.uni-muenchen.de/personen/kochn/ideas03-escalona-koch.pdf Ingeniería de Requisitos en aplicaciones Web. SPA. Nora Koch 2003 Ingeniería de Software - Clase 5

  36. Planificación del proyecto (SPP) Repetible Propósito: • Establecer planes razonables para realizar las actividades de ingeniería de software y para gestionar el proyecto Objetivos: • Hacer estimaciones del trabajo a realizar • Establecer los compromisos para realizar el trabajo • Definir los planes para ejecutar el trabajo Ingeniería de Software - Clase 5

  37. Seguimiento de proyectos (SPTO) Repetible Propósito: • Supervisar el progreso real del proyecto para tomar acciones a tiempo cuando el rendimiento del proyecto se desvía significativamente de lo planificado Objetivos: • Seguir y revisar el progreso del proyecto en comparación con las estimaciones y los planes • Tomar acciones correctivas cuando surjan discrepancias entre las estimaciones y los valores reales para reconducir el proyecto • Re-establecer compromisos Ingeniería de Software - Clase 5

  38. Gestión de subcontratistas (SSM) Repetible Propósito: • Seleccionar (sub)contratistas calificados y gestionarlos eficazmente Objetivos: • Seleccionar (sub)contratista adecuado • Establecer compromisos • Seguir y revisar su rendimiento y resultados Ingeniería de Software - Clase 5

  39. Aseguramiento de la Calidad (SQA) Repetible Propósito: • Proporcionar visibilidad sobre los procesos utilizados por el proyecto de software y sobre los productos que genera Objetivos: • Planificar las actividades de aseguramiento de la calidad • Revisar y auditar objetivamente los productos y las actividades para verificar que están conformes con los procedimientos y estándares aplicables • Proporcionar los resultados de estas revisiones o auditorías informando a la dirección cuando sea necesaria su mediación Ingeniería de Software - Clase 5

  40. Aseguramiento de la Calidad (II) Repetible El grupo encargado del aseguramiento de la calidad del software: • Deberá trabajar con el equipo del proyecto desde el principio • Deberá ser objetivo y, a ser posible, independiente • Deberá ayudar al proyecto más que controlar sus actividades Ingeniería de Software - Clase 5

  41. Gestión de configuración del sw (SCM) Repetible Propósito: • Establecer y mantener la integridad de todos los productos del proyecto a lo largo de todo el ciclo de vida Objetivos: • Planificar las actividades de gestión de la configuración • Identificar los elementos de configuración del software • Controlar los cambios hechos a los elementos de configuración para mantener su integridad y trazabilidad • Construir las versiones del producto final http://www.ibiblio.org/gferg/ldp/SCM-OpenSource/index.html Software Configuration Management for Open Source Projects Ingeniería de Software - Clase 5

  42. Foco en el Proceso de la Org. (OPF) Definido Propósito: • Definir una responsabilidad a nivel de la organización para las actividades relacionadas con el proceso de software y su mejora Objetivos: • SPI (Software Process Improvement) se coordina en toda la organización • SPI se planifica • Los fortalezas y debilidades de los procesos utilizados se identifican con respecto a un estándar Ingeniería de Software - Clase 5

  43. Definición del Proceso de la Org. (OPD) Definido Propósito: • Desarrollar y mantener un conjunto de procesos de software con el objetivo de establecer una base de referencia a partir de la cual se mejoren paulatinamente los procesos y los resultados de dichos procesos Objetivos: • Desarrollo y mantenimiento de un proceso estándar para la organización • Se recolecta, revisa y divulga información relacionada con el uso del proceso estándar de la organización por parte de los proyectos Ingeniería de Software - Clase 5

  44. Programa de entrenamiento (TP) Definido Propósito: • Desarrollar las capacidades y conocimiento de los individuos para que puedan desempeñar sus roles de manera eficiente y efectiva Objetivos: • La formación y entrenamiento se planifican • Y se imparte, cubriendo las necesidades de los diferentes roles (aspectos de gestión y técnicos) Ingeniería de Software - Clase 5

  45. Gestión Integrada del Software (ISM) Definido Propósito: • Integrar las actividades de ingeniería y de gestión de software en un proceso coherente y definido, adaptado a las necesidades específicas de cada proyecto Objetivos: • El proceso definido para el proyecto es una versión ajustada del proceso estándar de la organización • El proyecto se planifica y gestiona de acuerdo al proceso definido para el proyecto Ingeniería de Software - Clase 5

  46. Ingeniería del producto de sw (SPE) Definido Propósito: • Ejecutar un proceso de ingeniería bien definido y coherente integrando todas las actividades de ingeniería de software para producir productos de software correctos y consistentes de manera eficiente y efectiva Objetivos: • Las actividades de Ing.de SW están definidas, integradas y se ejecutan de forma consistente para producir el software • Los entregables se mantienen consistentes entre ellos Ingeniería de Software - Clase 5

  47. Coordinación entre grupos (IC) Definido Propósito: • Establecer los medios para que el grupo de Ingeniería de Software participe activamente con los otros grupos de ingeniería para que las necesidades del cliente se satisfagan de manera efectiva y eficiente Objetivos: • Los requerimientos del cliente son aprobados por todos los grupos afectados • Los compromisos entre los grupos de ingeniería cuentan con la aprobación de los grupos afectados • Los grupos de ingeniería identifican y resuelven problemas entre los grupos Ingeniería de Software - Clase 5

  48. Revisiones por pares (PR) Definido Propósito: • Remover los defectos de los productos de software eficientemente en una etapa temprana y conseguir una mejor comprensión del producto que se está desarrollando y de su calidad en términos de los defectos que presenta Objetivos: • Revisiones por pares son planificadas • Los defectos son detectados y removidos Ingeniería de Software - Clase 5

  49. Gestión cuantitativa del proceso (QPM) Gestionado Propósito: • Controlar la ejecución de los proyectos de software de manera cuantitativa Objetivos: • Las actividades de QPM se planifican • El desempeño del proceso del proceso definido para el proyecto es controlado cuantitativamente • La capacidad del proceso de software estándar de la organización es conocido en términos cuantitativos Ingeniería de Software - Clase 5

  50. Gestión de la calidad del sw (SQM) Gestionado Propósito: • Desarrollar un conocimiento cuantitativo de la calidad de los productos de software y conseguir alcanzar determinados objetivos de calidad Objetivos: • Se planifica SQM de los proyectos • Se definen objetivos medibles para la calidad de los productos de software y sus prioridades • El progreso real hacia el logro de los objetivos de calidad para los productos de software se cuantifican y gestionan Ingeniería de Software - Clase 5