Clase 3, 28/8/2007

Preview:

Citation preview

Metodologías de Análisis

Clase 3 – 28/8/2007

Christian Sifaqui

Modelos de ciclos de vida

Chomsky (1957)Una persona frente a su experiencia del mundo, forma de éste una representación lingüística bastante completa, variada y rica en detalles. A nivel lingüístico, esto correspondería a la estructura profunda. Sin embargo, al comunicar su experiencia a otro, utiliza expresiones empobrecidas (estructura superficial) que presentan omisiones, generalizaciones y distorsiones.

Modelos de ciclos de vida

Leer hoja “Caso de estudio Winburg”

Modelos de ciclos de vida

Leer hoja “Caso de estudio Winburg”

Episodio 1: se encuentra una falla

- el producto es muy lento, por una falla de implementación (se usó doble precisión)

- se inician cambios en la implementación

Modelos de ciclos de vida

Leer hoja “Caso de estudio Winburg”

Episodio 2: los requerimientos cambian debido a que el algoritmo de reconocimiento de imágenes es muy lento

- se determina un algoritmo más rápido y se utiliza

Modelos de ciclos de vida

Leer hoja “Caso de estudio Winburg”

Episodio 3: se adopta un nuevo diseño, de tal forma de ahorrar algunos costos vendiendo el sistema de reconocimiento

- el desarrollo está completo

Modelos de ciclos de vida

Leer hoja “Caso de estudio Winburg”

Epílogo: años más tarde, estos problemas se repiten cuando los sensores se vuelven obsoletos y deben ser reemplazados.

- la administración quiere actualizar el hardware y los programadores quieren usar un nuevo lenguaje

- actualmente 6 meses atrasados y 25% por sobre el presupuesto

Modelos de ciclos de vida∅

Requerimientos1

Análisis1

Diseño1

Implementación1

DesarrolloMantención

Episodio 1

Modelos de ciclos de vida∅

Requerimientos1

Análisis1

Diseño1

Implementación1 Implementación2

DesarrolloMantención

Episodio 1 Episodio 2

Modelos de ciclos de vida∅

Requerimientos1

Análisis1

Diseño1

Implementación1 Implementación2

Requerimientos3

Análisis3

Diseño3

Implementación3

DesarrolloMantención

Episodio 1 Episodio 2 Episodio 3

Modelos de ciclos de vida∅

Requerimientos1

Análisis1

Diseño1

Implementación1 Implementación2

Requerimientos3

Análisis3

Diseño3

Implementación3 Implementación4

Diseño4

DesarrolloMantención

Episodio 1 Episodio 2 Episodio 3 Episodio 4

Modelos de ciclos de vida

La figura anterior es un modelo de ciclo de vida “evolución tipo árbol”

Modelos de ciclos de vida

También se podría aplicar el modelo cascada:

Modelos de ciclos de vida

También se podría aplicar el modelo cascada:

Requerimientos

Análisis

Diseño

Implementación

DesarrolloMantención

Modelos de ciclos de vida

Lecciones

En la realidad, el desarrollo de software es más caótico que el “Caso de estudio Winburg”

Modelos de ciclos de vida

Lecciones

Siempre se necesitan cambios:

- un producto de software es un modelo de la realidad, la que cambia constantemente

Modelos de ciclos de vida

Lecciones

Siempre se necesitan cambios:

- un producto de software es un modelo de la realidad, la que cambia constantemente

- los profesionales del software son humanos y cometen errores

Modelos de ciclos de vida

Leer hoja “Caso de estudio tractores Teal”

Modelos de ciclos de vida

Leer hoja “Caso de estudio tractores Teal”

No hay solución al “problema del objetivo móvil”

Modelos de ciclos de vida

Iteración e incremento

En la vida real, no se puede hablar acerca de la “fase de análisis”

Modelos de ciclos de vida

Iteración e incremento

En la vida real, no se puede hablar acerca de la “fase de análisis”

Por el contrario, las operaciones de la fase de análisis se propagan por todo el ciclo de vida

Modelos de ciclos de vida

Iteración e incremento

El desarrollo básico de software es iterativo

Modelos de ciclos de vida

Iteración e incremento

El desarrollo básico de software es iterativo

Cada versión sucesiva debe ser más cercana al objetivo que su predecesora

Modelos de ciclos de vida

Ley de Miller (1956)

En cualquier instante, nos podemos concentrar en sólo 7 ± 2 chunks (unidades de información)

Modelos de ciclos de vida

Ley de Miller (1956)

En cualquier instante, nos podemos concentrar en sólo 7 ± 2 chunks (unidades de información)

Para manejar cantidades mayores de información, se usa refinamiento sucesivo

Modelos de ciclos de vida

Ley de Miller (1956)

Concentrarse en los aspectos actualmente más importantes (postergar aspectos que actualmente son menos críticos)

Modelos de ciclos de vida

Ley de Miller (1956)

Concentrarse en los aspectos actualmente más importantes (postergar aspectos que actualmente son menos críticos)

Cada aspecto será tomado en cuenta, pero en orden de importancia actual

Modelos de ciclos de vida

Ley de Miller (1956)

Es un proceso incremental

Modelos de ciclos de vida

Modelo de ciclo de vida iterativo e incremental

Modelos de ciclos de vida

Iteración e incremento se usan en conjunto

No existe una “fase de requerimientos” o “fase de diseño”

Por el contario, hay múltiples instancias de cada fase

El número de incrementos puede variar (no tienen que ser cuatro)

Modelos de ciclos de vida

Repaso workflowsFases secuenciales no existen en la realidad

Por el contrario, los cinco workflows se desarrollan en todo el ciclo de vida

Modelos de ciclos de vida

Repaso workflowsFases secuenciales no existen en la realidad

Por el contrario, los cinco workflows se desarrollan en todo el ciclo de vida

- workflow de requerimientos

- workflow de análisis

- workflow de diseño

- workflow de implementación

- workflow de testing

Modelos de ciclos de vida

Sin embargo, muchas veces predomina uno:

- al inicio del ciclo de vida, predomina el workflow de requerimientos

- al final del ciclo de vida, predominan los workflows de implementación y test

Modelos de ciclos de vida

Sin embargo, muchas veces predomina uno:

- al inicio del ciclo de vida, predomina el workflow de requerimientos

- al final del ciclo de vida, predominan los workflows de implementación y test

OBS: la actividades de planificación y documentación se desarrollan durante todo el ciclo de vida

Modelos de ciclos de vida

Se desarrolla iteración durante cada incremento

Modelos de ciclos de vida

Se desarrolla iteración durante cada incremento

OBS: el número de iteraciones puede variar (no es tres)

Modelos de ciclos de vida

El modelo evolución tipo árbol se ha superimpuesto al modelo iterativo e incremental

Modelos de ciclos de vida

Cada episodio corresponde a un incremento

No se incluyen todos los worklfows en cada incremento

Incremento B no se completó

Modelos de ciclos de vida

Un proyecto puede ser visto como un conjunto de mini proyectos (incrementos)

Artefacto: componente de un producto de software

Cada mini proyecto extiende:

- artefactos de requerimientos

- artefactos de análisis

- artefactos de diseño

- artefactos de implementación

- artefactos de testing

Modelos de ciclos de vida

El conjunto final de artefactos es el producto completo

Durante cada mini proyecto se:

- extienden los artefactos (incremento)

- chequean los artefactos (workflow de test)

- si es necesario, se cambian los artefactos relevantes (iteración)

Modelos de ciclos de vida

Cada iteración puede ser vista como un pequeño pero completo modelo de ciclo de vida cascada

Durante cada iteración se selecciona una porción del producto de software

En esa porción se desarrolla:

fase clásica de requerimientos

fase clásica de análisis

fase clásica de diseño

fase clásica de implementación

Modelos de ciclos de vida

Hay múltiples oportunidades de chequear que el producto de sofware esté correcto

- cada iteración incorpora un workflow de test

- las fallas pueden ser detectadas o corregidas

La robustez de la arquitectura puede determinarse temprano en el ciclo de vida

- arquitectura: módulos de componentes y cómo calzan entre ellos

- robustez: la propiedad de ser capaz de administrar extensiones y cambios sin desbaratarse

Modelos de ciclos de vida

Se pueden mitigar riesgos tempranamente

Se tiene una versión funcional del producto desde del inicio

Variación: se pueden entregar versiones parciales para suavizar la introducción del nuevo producto en la organización del cliente

Modelos de ciclos de vida

Hay evidencia que este modelo de ciclo de vida funciona

El reporte CHAOS de Standish Group, muestra que el porcentaje de productos exitosos se ha incrementado

Modelos de ciclos de vida

Reporte CHAOS

de 1994 a 2004

Modelos de ciclos de vida

Hubo un decremento el 2004 por:

- proyectos más grandes

- se usó modelo cascada

- no se involucró al usuario

- no hubo apoyo de los ejecutivos senior

Modelos de ciclos de vida

En resumen:

el modelo de ciclo de vida iterativo e incremental es tan reglamentado como el modelo cascada

este modelo es el modelo cascada aplicado sucesivamente

cada incremento es un mini proyecto cascada