Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Caminar sobre las aguas y desarrollar programas a partir de las especificaciones es fcil, si ambas estn congeladas
Edward V. Berard
1. Concepto de modelo del ciclo de vida Recordemos que (Captulo 6): Es una descripcin de un proceso de software que se presenta desde una perspectiva particular. Es una abstraccin de un proceso real. Existe una gran variedad de modelos diferentes genricos o paradigmas de desarrollo de software.
2. Modelos del ciclo de vida. Modelo en cascada (waterfall model) Primer modelo empleado Tambin denominado
(Royce 1970)
Ejecucin secuencial de una serie de fases Cada fase genera documentacin para la siguiente Varias propuestas
ESPECIFICACIN DE REQUISITOS
ESPECIFICACIN DE REQUISITOS VALIDADA
Errores de anlisis
DISEO
DISEO VERIFICADO
Errores de diseo
IMPLEMENTACIN
CDIGO VALIDADO
Errores de codificacin
MANTENIMIENTO
es realista?
A N L I S IS Y E S P E C IF IC A C I N
E r ro r e s d is e o
d e
D IS E O
E rro re s d e c o d i fi c a c i n
IM P L E M E N T A C I N
P R U E B A S U N IT A R IA S
P R U E B A S D E IN T E G R A C I N
S IN T O N IZ A C I N
ntese el tiempo que transcurre desde que se produce un error de anlisis hasta que se detecta por parte de los usuarios
A to d a s las fase s
M A N T E N IM I E N T O
(Pressman)
Es similar al enfoque de ingeniera segn el cual se construyen los edificios o los puentes (Larman 2003) sin embargo, en el caso del software no funciona bien
Prueba
Pruebas unitarias, de integracin, del software, del sistema, de aceptacin
Proporciona un marco para aplicar mtodos, tcnicas y herramientas Es sencillo controlar qu productos se deben generar durante el desarrollo del proyecto Para un proyecto corto de p.ej. dos meses, se puede usar un ciclo de vida en cascada (Larman
2003)
La complejidad pasa a ser alta. En general, las cuestiones de alto riesgo no se abordan lo suficientemente pronto, no existe un intento activo de identificar y mitigar en primer lugar las cuestiones de ms riesgo. Las decisiones especulativas se incrementan y complican, ya que los requisitos se congelan y no existe retroalimentacin a partir de implementaciones y pruebas reales. Es irreal pretender congelar los requisitos del sistema. Da una sensacin al equipo de desarrollo de estar trabajando sobre un sistema ficticio.
Es poco realista, los proyectos reales raramente pueden seguir el flujo secuencial que se propone
ANLISIS Y ESPECIFICACIN
DISEO
IMPLEMENTACIN
PRODUCTO ACABADO
VALIDACIN MANTENIMIENTO
Tasa de errores
50 45 40 35 30 25 20 15 10 5 0
ANLISIS IMPLEMENTACIN
Tasa de error
muchos errores ocurren al principio del ciclo de vida del software: requisitos no descubiertos, mal entendidos, incompletos, mal negociados, etc.
PROTOTIPADO
ANLISIS Y ESPECIFICACIN
DISEO
IMPLEMENTACIN
VALIDACIN MANTENIMIENTO
se necesita un paradigma nuevo para obtener una ganancia de productividad de rdenes de magnitud Programacin automtica o por transformaciones
Programacin automtica
Idea base: programacin por transformaciones:
Construccin de una primera versin que expresa formalmente el comportamiento deseado. Transformacin en una versin ms eficiente, preservando la funcionalidad.
No se trata de dos productos (especificacin y prototipo), sino de la conversin automtica de una especificacin en un prototipo, y luego en el producto definitivo. Se puede considerar un antecedente de MDE (Model Driven Engineering), como MDA (Model Driven Architecture).
Programacin automtica
DECISIONES
ESPECIFICACIN FORMAL (Prototipo)
(II)
ANLISIS
DESARROLLO FORMAL
PRODUCTO
VALIDACIN MANTENIMIENTO
SINTONIZACIN
Programacin automtica
(III)
Se utilizan lenguajes de especificacin formal. El prototipo es la propia especificacin (o se deriva automticamente de ella). Los requisitos se refinan animando la especificacin. La validacin y el mantenimiento recaen sobre la especificacin. El mantenimiento consiste en revisar y reemplazar la especificacin, y rederivar el prototipo. El producto final se obtiene a travs de un proceso mecnico de transformacin. No existe el problema de bola de nieve.
Programacin automtica
Especificacin formal La especificacin es el prototipo El prototipo evoluciona hacia el sistema final Se valida especificacin contra los requisitos Implementacin automtica (o fuertemente asistida) El mantenimiento recae sobre la especificacin (reemplazos)
Anlisis
Incremento 2
Diseo
Anlisis
Diseo
Anlisis
Cdigo
Cdigo
Diseo
Prueba
Prueba
Cdigo
Incremento 3
Prueba
Incremento 4
Anlisis
Diseo
Cdigo
Prueba
Tiempo
Se maneja mejor que el paradigma clsico cuando hay fuertes presiones en los plazos de entrega Cada secuencia produce un incremento del sw. Con cada incremento, se entrega un producto totalmente operacional
Identificar componentes candidatos Construir n iteraciones del sistema Poner componentes nuevos en la biblioteca Buscar componentes en biblioteca Extraer componentes si estn disponibles
Ingeniera
Tcnicas de 4 generacin
(II)
Agrupamiento n
ESPEC
DISREA
VALGEN
Tiempo
DISREA
VALGEN
ESPEC
Agrupamiento 2
ESPEC
DISREA
VALGEN
Agrupamiento 1
Tiempo
Alto grado de solapamiento/iteracin entre fases Cada clase/agrupamiento tiene un ciclo de vida propio La piscina sw (repositorio de clases) refleja reutilizacin el ciclo de desarrollo brota de la piscina sw.
Desarrollar un modelo del comportamiento deseado (anlisis) Crear una arquitectura (diseo) Desplegar la implementacin (evolucin) Interesa a la direccin tcnica
Caractersticas principales:
Dirigido por casos de uso Centrado en la arquitectura Iterativo e incremental
Beneficios: determinar flujo de trabajo tpico, estructuras alternativas de menor tiempo o coste, organizar tareas, controlar el proceso y los productos que se generan, gestionar la calidad tcnica, coordinar el uso de otras herramientas CASE, etc.