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 ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Desarrollo Mantención Episodio 1
Modelos de ciclos de vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Implementación 2 Desarrollo Mantención Episodio 1 Episodio 2
Modelos de ciclos de vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Implementación 2 Requerimientos 3 Análisis 3 Diseño 3 Implementación 3 Desarrollo Mantención Episodio 1 Episodio 2 Episodio 3
Modelos de ciclos de vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Implementación 2 Requerimientos 3 Análisis 3 Diseño 3 Implementación 3 Implementación 4 Diseño 4 Desarrollo Mantenció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 Desarrollo Mantenció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 workflows Fases 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 workflows Fases 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

Clase 3, 28/8/2007

  • 1.
    Metodologías de AnálisisClase 3 – 28/8/2007 Christian Sifaqui
  • 2.
    Modelos de ciclosde 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 .
  • 3.
    Modelos de ciclosde vida Leer hoja “Caso de estudio Winburg”
  • 4.
    Modelos de ciclosde 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
  • 5.
    Modelos de ciclosde 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
  • 6.
    Modelos de ciclosde 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
  • 7.
    Modelos de ciclosde 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
  • 8.
    Modelos de ciclosde vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Desarrollo Mantención Episodio 1
  • 9.
    Modelos de ciclosde vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Implementación 2 Desarrollo Mantención Episodio 1 Episodio 2
  • 10.
    Modelos de ciclosde vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Implementación 2 Requerimientos 3 Análisis 3 Diseño 3 Implementación 3 Desarrollo Mantención Episodio 1 Episodio 2 Episodio 3
  • 11.
    Modelos de ciclosde vida ∅ Requerimientos 1 Análisis 1 Diseño 1 Implementación 1 Implementación 2 Requerimientos 3 Análisis 3 Diseño 3 Implementación 3 Implementación 4 Diseño 4 Desarrollo Mantención Episodio 1 Episodio 2 Episodio 3 Episodio 4
  • 12.
    Modelos de ciclosde vida La figura anterior es un modelo de ciclo de vida “evolución tipo árbol”
  • 13.
    Modelos de ciclosde vida También se podría aplicar el modelo cascada:
  • 14.
    Modelos de ciclosde vida También se podría aplicar el modelo cascada: ∅ Requerimientos Análisis Diseño Implementación Desarrollo Mantención
  • 15.
    Modelos de ciclosde vida Lecciones En la realidad, el desarrollo de software es más caótico que el “ Caso de estudio Winburg”
  • 16.
    Modelos de ciclosde vida Lecciones Siempre se necesitan cambios: - un producto de software es un modelo de la realidad, la que cambia constantemente
  • 17.
    Modelos de ciclosde 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
  • 18.
    Modelos de ciclosde vida Leer hoja “Caso de estudio tractores Teal”
  • 19.
    Modelos de ciclosde vida Leer hoja “Caso de estudio tractores Teal” No hay solución al “problema del objetivo móvil”
  • 20.
    Modelos de ciclosde vida Iteración e incremento En la vida real, no se puede hablar acerca de la “fase de análisis”
  • 21.
    Modelos de ciclosde 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
  • 22.
    Modelos de ciclosde vida Iteración e incremento El desarrollo básico de software es iterativo
  • 23.
    Modelos de ciclosde 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
  • 24.
    Modelos de ciclosde vida Ley de Miller (1956) En cualquier instante, nos podemos concentrar en sólo 7 ± 2 chunks (unidades de información)
  • 25.
    Modelos de ciclosde 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
  • 26.
    Modelos de ciclosde vida Ley de Miller (1956) Concentrarse en los aspectos actualmente más importantes (postergar aspectos que actualmente son menos críticos)
  • 27.
    Modelos de ciclosde 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
  • 28.
    Modelos de ciclosde vida Ley de Miller (1956) Es un proceso incremental
  • 29.
    Modelos de ciclosde vida Modelo de ciclo de vida iterativo e incremental
  • 30.
    Modelos de ciclosde 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)
  • 31.
    Modelos de ciclosde vida Repaso workflows Fases secuenciales no existen en la realidad Por el contrario, los cinco workflows se desarrollan en todo el ciclo de vida
  • 32.
    Modelos de ciclosde vida Repaso workflows Fases 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
  • 33.
    Modelos de ciclosde 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
  • 34.
    Modelos de ciclosde 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
  • 35.
    Modelos de ciclosde vida Se desarrolla iteración durante cada incremento
  • 36.
    Modelos de ciclosde vida Se desarrolla iteración durante cada incremento OBS: el número de iteraciones puede variar (no es tres)
  • 37.
    Modelos de ciclosde vida El modelo evolución tipo árbol se ha superimpuesto al modelo iterativo e incremental
  • 38.
    Modelos de ciclosde vida Cada episodio corresponde a un incremento No se incluyen todos los worklfows en cada incremento Incremento B no se completó
  • 39.
    Modelos de ciclosde 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
  • 40.
    Modelos de ciclosde 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)
  • 41.
    Modelos de ciclosde 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
  • 42.
    Modelos de ciclosde 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
  • 43.
    Modelos de ciclosde 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
  • 44.
    Modelos de ciclosde 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
  • 45.
    Modelos de ciclosde vida Reporte CHAOS de 1994 a 2004
  • 46.
    Modelos de ciclosde 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
  • 47.
    Modelos de ciclosde 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