6. componentes del ciclo de vida de un proyecto sw ls3148 - calidad de software 3im1 universidad...
TRANSCRIPT
6. Componentes del Ciclo de 6. Componentes del Ciclo de Vida de un Proyecto SWVida de un Proyecto SW
LS3148 - Calidad de SoftwareLS3148 - Calidad de Software3IM1
Universidad Antonio de NebrijaJusto Hidalgo
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
2
ContenidosContenidos
• Introducción al ciclo de vida de un proyecto SW
• Introducción a Metodologías SW
• V&V
• Defectos
• Pruebas
• Mantenimiento SW
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
3
Introducción (I)Introducción (I)
• Actividades a realizar durante el desarrollo y mantenimiento de un producto SW.
• Dos pasos:– Ciclo de Vida de Desarrollo– Mantenimiento y Operación
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
4
Introducción (II)Introducción (II)
• Ciclo de Vida de Desarrollo:1. Revisiones
– Para cada artefacto generado:– Reuniones formales de diseño
– “Peer reviews”
2. Opiniones de Expertos
3. Pruebas SW– Lo veremos más adelante en detalle.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
5
Introducción (III)Introducción (III)
• Operación y Mantenimiento:
1. Correctivo
2. Adaptativo
3. Perfectivo
• También lo veremos más adelante.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
6
Introducción (y IV)Introducción (y IV)
• SQA de los participantes externos:– Subcontratas (outsourcing, body-shopping)– COTS –Commercial Off-The-Shelf- SW.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
7
MetodologíasMetodologías
• Antes de ver cómo la calidad afecta al ciclo de vida de un proyecto SW…
¡hay que saber qué es el ciclo de vida de un proyecto SW!
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
8
ContenidosContenidos
• Definición• Un hecho• Ventajas de la metodología• Ciclo de vida• Funciones básicas de una metodología• Ciclos de vida clásicos
– Ciclo de vida en cascada
– Ciclo de vida en cascada con refinamiento por mejoras
– Prototipado y maquetaje
– Ciclo de vida en espiral
• Procesos clásicos:– IEEE
– Métrica v3
– Proceso Unificado
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
9
DefiniciónDefinición
• Conjunto de métodos que se utilizan para desarrollar una actividad con el objetivo de formalizarla y optimizarla.
• En ISW: optimización del proceso y producto SW.
• Elementos de una metodología:– Fases: jerarquización ordenada del desarrollo completo.
– Productos -intermedios y final-.
– Procedimientos y herramientas.
– Criterios de evaluación.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
10
Un hechoUn hecho
• La mayor parte de los proyectos SW FRACASAN:– Mala evaluación de objetivos.– Mala planificación de recursos/tiempos/costes.– Participación insuficiente de la dirección.– Falta de acuerdos entre objetivos y planificación.– Rotación del personal clave.– Cambio de objetivos sin revisar la planificación.– Propósito no claro por/para los usuarios.– Falta de hitos y metas.– Poca comprensión del problema.– Poca calidad del producto.– Mala planificación A PROPÓSITO.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
11
Ventajas de la metodología (I)Ventajas de la metodología (I)
• Desde el punto de vista de gestión– Facilita la planificación
– Facilita el control y seguimiento de los proyectos
– Mejora del ratio coste/beneficio
– Optimiza la gestión de recursos
– Facilita la comunicación entre los participantes
– Facilita la evaluación de los proyectos
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
12
Ventajas de la metodología (II)Ventajas de la metodología (II)
• Desde el punto de vista de los Ingenieros en el desarrollo– Comprensión del problema– Optimización del proceso, y dentro del
proceso las fases a seguir– Facilidad de mantenimiento– Algunos criterios sobre reusabilidad
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
13
Ventajas de la metodología (y III)Ventajas de la metodología (y III)
• Desde el punto de vista del cliente/usuario final– Garantiza en la medida de lo posible la calidad
del producto– Mayor confianza
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
14
Ciclo de vidaCiclo de vida
• … o PARADIGMA: conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea hasta que el SW se retira o se reemplaza.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
15
Funciones básicas de una Funciones básicas de una metodologíametodología
• Definición del ciclo de vida– Que se adecúe a las condiciones y características del
desarrollo.
• Determinación de las fases dentro del ciclo de vida.
• Definición de resultados intermedios y finales.• Conjunto de métodos, herramientas y técnicas
para facilitar la tarea del IS y aumentar su productividad.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
16
Ciclos de vida clásicos (I)Ciclos de vida clásicos (I)
• Ciclo de vida en cascada– Características:
• Visión del proceso de desarrollo como una sucesión de etapas que producen productos intermedios.
• Deben desarrollarse todas las fases.
– Limitaciones:• No se permiten iteraciones.
• Los requisitos SE CONGELAN AL PRINCIPIO DEL PROYECTO.
• No existe un producto enseñable hasta el final del proyecto.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
17
Ciclos de vida clásicos (II)Ciclos de vida clásicos (II)
Requisitos
Análisis
Diseño
Implemen-tación
Pruebas
Manteni-miento
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
18
Ciclos de vida clásicos (III)Ciclos de vida clásicos (III)
• Ciclo de vida en cascada con refinamiento por mejoras– Añade la capacidad de retorno de cada fase a
la fase anterior. – Después se permitió pasar a cualquier fase.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
19
Ciclos de vida clásicos (IV)Ciclos de vida clásicos (IV)
Requisitos
Análisis
Diseño
Implemen-tación
Pruebas
Manteni-miento
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
20
Ciclos de vida clásicos (V)Ciclos de vida clásicos (V)
• Prototipado y maquetaje– Para evitar la tercera limitación del ciclo de vida en
cascada se crean los siguientes modelos de desarrollo de productos SW:
• Desarrollo basado en prototipo:– Valida la solución informática.
– Es ya parte del sistema.
– Da una visión de la dificultad del proyecto final.
• Desarrollo basado en maqueta:– No valida la solución informática.
– Se usa si no se conoce bien el nivel de dificultad.
– Interfaz de usuario y módulo de comunicaciones.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
21
Ciclos de vida clásicos (VI)Ciclos de vida clásicos (VI)
• Ciclo de vida en espiral– Utilizado cuando existen muchos riesgos y hay
que buscar alternativas.– Desventajas:
• Muy complicado.
• Consume muchos recursos.
• Las fases no están claramente definidas.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
22
Ciclos de vida clásicos (y VII)Ciclos de vida clásicos (y VII)
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
23
Procesos ClásicosProcesos Clásicos
• Introducimos ahora brevemente un conjunto de procesos que se han utilizado y se utilizan a lo largo de la historia de la ingeniería de software:– Proceso IEEE 12207 (más adelante)– Proceso Métrica v3.– Proceso Unificado.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
24
Procesos Clásicos: Métrica v3Procesos Clásicos: Métrica v3
• http://www.map.es/csi/metrica3• Procesos Principales:
– Planificación (PSI)
– Desarrollo• Estudio de viabilidad (EVS)
• Análisis (ASI)
• Diseño (DSI)
• Construcción (CSI)
• Implantación y aceptación (IAS)
– Mantenimiento (MSI)
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
25
Proceso UnificadoProceso Unificado
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
26
Qué es el Proceso Unificado (I)Qué es el Proceso Unificado (I)
• Contaremos poco del PU ahora, pues lo estudiaremos en detalle posteriormente.
• El proceso unificado proviene de otros exitosos procesos anteriores creados por:– James Rumbaugh: OMT (Object Modeling Technique)
– Grady Booch: Chief Scientist.
– Ivar Jacobson:• Concepto de “Building Blocks”.• Diagramas de secuencia.• SDL.• Casos de uso.• Objectory Process.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
27
Qué es el Proceso Unificado (II)Qué es el Proceso Unificado (II)
• Proviene de:– Objectory
– OMT
– Rational Approach
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
28
Qué es el Proceso Unificado (y III)Qué es el Proceso Unificado (y III)
• Unified Software Development Process– Definido por Ivar Jacobson, James Rumbaugh y Grady Booch.
• Un proceso define QUIÉN está haciendo QUÉ, CUÁNDO y CÓMO para llegar a un objetivo.
• En la ingeniería de sw el objetivo es construir un producto sw o mejorar uno ya existente dentro de un esquema temporal, económico y de calidad.
• Un proceso de desarrollo es el conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema software.
• El proceso unificado no es un único proceso, sino un framework genérico.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
29
CaracterísticasCaracterísticas
• Es guiado por casos de uso (use-case driven)
• Se centra en la arquitectura (architecture-centric)
• Es iterativo (iterative)
• Es incremental (incremental)
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
30
Use-case drivenUse-case driven
• Un sistema sw existe para servir a sus usuarios.– Por tanto, tiene sentido saber qué es lo que los usuarios quieren,
¿no? Pues no siempre es así.
• Un usuario no sólo es la persona que lo utiliza, sino cualquier sistema que haga uso de la aplicación creada -sistema de gestión, otro componente externo, los diferentes tipos de usuarios humanos, etc.-
• Las interacciones entre los usuarios y el sistema se denominan “casos de uso” -use cases-.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
31
Ejemplo de caso de usoEjemplo de caso de uso
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
32
Architecture-centricArchitecture-centric
• El proceso se basa en la arquitectura del sw.– Su papel es parecido al de la arquitectura en la construcción de
edificios.
– El concepto de arquitectura sw conlleva los aspectos tanto estáticos como dinámicos del sistema.
• Estáticos: diagrama de herencia, diagrama de paquetes.
• Dinámicos: diagrama de secuencia, de actividad, etc.
• Se ve influido por otros temas tales como el sistema operativo sobre el que corre el sistema, hw, comunicaciones.
• Todo producto tiene Forma y Función:– Función: casos de uso.
– Forma: arquitectura del sistema.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
33
Iterative & Incremental (I)Iterative & Incremental (I)
• El desarrollo de un producto comercial es un proceso largo, complicado y arriesgado.
• Se suele acometer a través de “mini-proyectos”. Cada mini-proyecto es una iteración del producto final.
• El final de cada mini-proyecto es un incremento del producto final.– Un incremento no tiene por qué ser aditivo -sobre todo al
principio, pueden ser reemplazos de implementación de casos de uso-.
• Cada iteración trata un conjunto de casos de uso, en cada momento los más críticos que queden.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
34
Iterative & Incremental (y II)Iterative & Incremental (y II)
• Ventajas de las iteraciones controladas:– Se reduce el riesgo de coste.
• Si hay que repetir la iteración, sólo se pierde ese tiempo.
• Antes existía el riesgo de tener que repetir el proyecto completo por un error del comienzo.
– Se reduce el riesgo de tiempo de salida al mercado.
– Los desarrolladores -y el equipo en general- mejoran sus tiempos al tener objetivos claros y cercanos en el tiempo.
– Y, repitiendo lo anterior: las necesidades del usuario no siempre pueden definirse al comienzo del proyecto -la famosa frase de “el cliente no tiene ni idea de lo que quiere” se repite tantas veces que ¿no será que estamos planteando mal el esquema de la solución?-.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
35
Vida del Proceso UnificadoVida del Proceso Unificado
• El proceso se repite sobre una serie de CICLOS, cada uno de los cuáles termina con una release: versión entregable del producto.– Cada versión de una herramienta comercial que se “vende en las
tiendas” es una release -entrega-.
• Cada ciclo consta de cuatro FASES:– Concepción
– Elaboración
– Construcción
– Transición
• Cada fase se puede subdividir en iteraciones, tal y como vimos anteriormente.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
36
Representaciones del Producto SW: dependenciasRepresentaciones del Producto SW: dependencias
Catedral
Modelo de Casos de Uso
Modelo de Pruebas
Modelo de DiseñoModelo de Despliegue
Modelo de Análisis
Modelo de Implementación
especificado porrealizado por
implementado por
distribuido por
verificado por
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
37
Visión global del ciclo de vidaVisión global del ciclo de vida
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
38
Fases del Proceso Unificado (I)Fases del Proceso Unificado (I)
• Como hemos dicho antes, cada ciclo se divide en cuatro fases: concepción, elaboración, construcción y transición.
• Una fase acaba de un hito -milestone-:– Un hito ocurre cuando se encuentran disponibles un conjunto de
“artefactos”, es decir, modelos o documentos en un estado prescrito determinado.
• ¿Por qué?– Decisiones a tomar antes de pasar a la siguiente fase.
– Monitorización del trabajo por parte de desarrolladores y gestores.
– Categorización de los datos obtenidos: análisis.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
39
Fases del Proceso Unificado (II)Fases del Proceso Unificado (II)
• Concepción -inception-– A partir de la idea se desarrolla la “visión” del
producto final y se elabora el caso de negocio.– Esta fase responde a las siguientes cuestiones:
• Qué va a realizar el sistema principalmente.
• Cómo sería un esqueleto de arquitectura del sistema.
• Cuál es el plan de proyecto y cuánto costaría.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
40
Fases del Proceso Unificado (III)Fases del Proceso Unificado (III)
• Elaboración -elaboration-– Se diseña la arquitectura del sistema
• desde todos los puntos de vista -modelos del sistema-.
– Se definen todos los casos de uso.
– Los casos de uso más críticos se desarrollan:• ARCHITECTURE BASELINE: la línea base de la arquitectura.
– Al final de esta fase, el gestor ya es capaz de planificar las actividades y recursos necesarios para completar el proyecto:
• ¿Hemos logrado la estabilidad suficiente en casos de uso, arquitectura y planificación como para asegurar el éxito del proyecto?
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
41
Fases del Proceso Unificado (IV)Fases del Proceso Unificado (IV)
• Construcción -construction-– El producto se construye.
– Ahora se añade el “músculo” al “esqueleto”.
– La línea base crece hasta convertirse en el sw completo.
– Se supone que la arquitectura del sistema es estable, a pesar de que puede haber modificaciones menores.
– Al final de la fase el producto está terminado -todos los casos de uso implementados-, aunque todavía nos podemos encontrar con “bugs”:
• ¿Satisface el producto las necesidades del usuario?
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
42
Fases del Proceso Unificado (y V)Fases del Proceso Unificado (y V)
• Transición -transition-– Período durante el cuál el SW está en “beta
release”.– Otras tareas:
• Manufactura.
• Formación, ayuda en línea, …
• Corrección de defectos.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
43
Relaciones de las Cuatro PsRelaciones de las Cuatro Ps
Process
Product
ProjectTools
PeopleParticipantes
AutomatizaciónPlantilla
Resultado
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
44
Otros procesosOtros procesos
• Método Shlaer/Mellor– www.projtech.com– Particionamiento del sistema en dominios para
su posterior análisis.– Verificación del análisis mediante ejecución.
• Método Coad/Yourdon– Aproximación orientada a prototipo– Aproximación ligera
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
45
Fin MetodologíasFin Metodologías
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
46
V&VV&V
• V&V: Verificación & Validación
• Utilizar apuntes de ISW I
• Cualificación: ¿se puede usar? Está centrado en mantenimiento.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
47
Defectos (I)Defectos (I)
• El Plan de Calidad ha de medir:– La efectividad del plan en eliminar defectos de
proyecto– El coste de eliminación de defectos de
proyecto
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
48
Defectos (II). ¿Por qué?Defectos (II). ¿Por qué?
COSTE DE ARREGLO DE DEFECTOS
Requisitos 1
Diseño 2.5
Pruebas Unitarias 6.5
Pruebas de Integración 16
Pruebas de Sistemas 40
Operación 110
Fuente: Boehm (1981)
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
49
Defectos (y III). DistribuciónDefectos (y III). Distribución
Distribución Característica de Defectos
Requisitos 15%
Diseño 35%
Codificación 30%
Integración 10%
Documentación 10%
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
50
PruebasPruebas
• Vitales en el Plan de Calidad.
• Lo veremos en detalle al final del cuatrimestre.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
51
Mantenimiento (I). TiposMantenimiento (I). Tipos
• Mantenimiento correctivo
• Mantenimiento adaptativo
• Mantenimiento perfectivo– M. perfectivo puro– M. preventivo
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
52
Mantenimiento (II). CausasMantenimiento (II). Causas
1. Error de código
2. Fallo de documentación (textos, ayuda en línea, …)
3. Documentación imprecisa / vaga.
4. Conocimiento insuficiente por parte del usuario (¿imputable?).
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
53
Mantenimiento (III). FundamentosMantenimiento (III). Fundamentos
1. Calidad del paquete SW• Factores de operación
• Corrección –de info de salida, de codificación, …-• Fiabilidad
• Factores de revisión• Capacidad de mantenimiento• Flexibilidad• “Testabilidad”
• Factores de transición• Portabilidad• Interoperabilidad
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
54
Mantenimiento (y IV). FundamentosMantenimiento (y IV). Fundamentos
2. Política de Mantenimiento• P. de desarrollo de versiones
• ¿Cuántas versiones operativas al mismo tiempo?• Estructura Secuencial
• Estructura Arbórea
• P. de cambios• Método de examen de cada petición de cambios.
Calidad de Software - 6. Ciclo de Vida - Justo Hidalgo
55
BibliografíaBibliografía
• Artículos:– Theory-W Software Project Management:
principles and examples. B.Boehm, R. Ross, UCLA. IEEE Transactions on Software Engineering, 1989.
– The Shlaer-Mellor method. S. Shlaer, S. J. Mellor. Project Technology.
• Enlaces:– Cetus Links sobre metodologías: http://www.cetus-
links.org/oo_ooa_ood_methods.html