27
Modelos de desarrollo de sistemas

Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

  • Upload
    lexuyen

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelos de desarrollo de sistemas

Page 2: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Contenido

Modelos

Ciclo de vida clásico

Prototipos

Iterativos

En Espiral

Evolutivos

Desarrollo incremental

Metodologías

Estructuradas

Orientadas a objetos

Ágiles

Page 3: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Ciclo de Vida Clásico Propuesta Senn, 1992

Page 4: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Ciclo de vida clásico Propuesta Kendall & Kendall, 1997

Page 5: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Ciclo de Vida Clásico

Denominado "modelo en cascada"

Se basa en intentar hacer las cosas bien desde el

principio, de una vez y para siempre.

Exige una aproximación secuencial al proceso de

desarrollo del software.

Page 6: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Ciclo de Vida Clásico

Inconvenientes:

Los proyectos reales raramente siguen el flujo secuencial de

actividades que propone este modelo.

Es difícil para el cliente establecer explícitamente todos los

requisitos al comienzo del proyecto.

No habrá disponible una versión operativa del sistema hasta

llegar a las etapas finales del proyecto, por lo que la rectificación

cualquier decisión tomada erróneamente en las etapas iniciales

del proyecto supondrá un costo adicional significativo, tanto

económico como en tiempo.

Page 7: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Ciclo de vida clásico

Page 8: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Prototipos Identificación de

requerimientos básicos

Desarrollo de prototipo

Uso del prototipo

Revisión y mejora del prototipo

Prototipo Operacional Sí

No

¿El usuario está

satisfecho?

Paso 1

Paso 2

Paso 3

Paso 4

Page 9: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Prototipos

1. Identificar los requerimientos básicos del usuario.

2. Desarrollar un prototipo inicial

3. Usar el prototipo

4. Revisar y mejorar el prototipo y regresar al paso 3 hasta

que el usuario esté conforme con el resultado.

Page 10: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelos iterativos

Los modelos iterativos descomponen un proyecto de

desarrollo en una serie de subproyectos de menor alcance.

Estos subproyectos deben diseñarse de tal forma que cada

uno de ellos aporte una funcionalidad nueva para el sistema

desde el punto de vista del usuario final del mismo.

Page 11: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelos iterativos

Page 12: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelos iterativos

Permiten adelantar el momento en el que se determina si un

proyecto es técnicamente viable o no.

Promueven una mejor comunicación con el usuario/cliente,

ya que dispone versión operativa temprana del sistema,

aunque sea con funcionalidad reducida.

Las versiones intermedias del producto ayudan a la

eliminación de malentendidos que pueden surgir en la etapa

de definición de requerimientos.

Ayudan a que el usuario se forme una idea más clara de lo

que realmente necesita.

Page 13: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo en espiral (Modelo iterativo)

Propuesto por Boehm (1998) hace énfasis en la prevención

de riesgos.

Cuatro actividades principales:

planificación (determinar los objetivos, alternativas y

restricciones del proyecto),

análisis de riesgos (análisis de alternativas e

identificación/resolución de riesgos),

ingeniería (desarrollo del producto) y

evaluación (revisión por parte del cliente y valoración de los

resultados obtenidos de cara a la siguiente iteración).

Page 14: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo en espiral (Modelo iterativo)

Page 15: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo evolutivo (Modelo iterativo)

Se caracterizan por realizar entregas por etapas del

sistema.

El proyecto se descompone en iteraciones de periodos

fijos y cada iteración proporciona alguna funcionalidad del

sistema.

Cada ciclo se concentra en las funciones de mayor valor

añadido.

Si se cancelase el proyecto, el usuario obtendrá lo máximo que se

puede conseguir con los recursos invertidos hasta ese momento.

De la misma manera, se puede prorrogar el proyecto si se

considera interesante seguir añadiéndole funcionalidades.

Page 16: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo evolutivo (Modelo iterativo)

Con este modelo, el software evoluciona con el tiempo,

asume que los requerimientos no son completamente

conocidos al inicio del proyecto, así que los requerimientos

que son bien comprendidos son seleccionados para el primer

incremento.

Page 17: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo evolutivo (Modelo iterativo)

El sistema es desarrollado, los usuarios lo usan, y proveen

retroalimentación a los desarrolladores. Basada en esta

retroalimentación, la especificación de requerimientos es

actualizada, y una segunda versión del producto es

desarrollada y probada. El proceso se repite indefinidamente.

El desarrollo de software en forma evolutiva requiere un

especial cuidado en la manipulación de documentos,

programas, datos de prueba, etc. desarrollados para distintas

versiones del software. Cada paso debe ser registrado, la

documentación debe ser recuperada con facilidad, los

cambios deben ser efectuados de una manera controlada.

Page 18: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo de Desarrollo Incremental (Modelo iterativo)

Se basa en diseñar sistemas que puedan entregarse por piezas.

A partir de la evaluación, se planea el siguiente incremento y

así sucesivamente, por lo que es iterativo por naturaleza.

En lugar de una sola entrega, el desarrollo y la entrega están

fracturados bajo incrementos, con cada incremento se

entrega parte de la funcionalidad requerida por el usuario.

Page 19: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo de Desarrollo Incremental (Modelo iterativo)

Page 20: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Modelo de Desarrollo Incremental (Modelo iterativo)

Considera un proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema, presupone que el conjunto completo de requerimientos es conocido al comenzar.

Las partes funcionales, pequeñas y reutilizables, son incrementos.

Cada incremento se construye sobre aquel que ya fue entregado.

Al ir desarrollando las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.

Page 21: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Ejercicio en clase

Hacer un cuadro con las actividades principales

que existen en los modelos.

Page 22: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Metodologías

Una metodología puede seguir uno o varios

modelos de ciclo de vida, es decir, el ciclo de vida

indica qué es lo que hay que obtener a lo largo del

desarrollo del proyecto pero no cómo hacerlo.

Mientras que una metodología indica cómo hay

que obtener los distintos productos parciales y

finales.

Page 23: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Metodologías

Adicionalmente una metodología debe

definir con precisión los instrumentos, roles

y actividades involucrados, junto con

prácticas y técnicas recomendadas, guías de

adaptación de la metodología al proyecto,

guías para uso de herramientas de apoyo,

etc.

Page 24: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Metodologías

Clasificación:

Metodologías Estructuradas

Metodologías Orientadas a Objetos

Metodologías Ágiles: están orientadas a la generación

de código con ciclos muy cortos de desarrollo, se

dirigen a equipos de desarrollo pequeños, hacen

especial hincapié en aspectos humanos asociados al

trabajo en equipo e involucran activamente al cliente

en el proceso.

Page 25: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Diferencias entre metodologías Metodología Ágil Metodología Tradicional

Pocos Artefactos. El modelado es

prescindible, modelos desechables.

Más Artefactos. El modelado es esencial,

mantenimiento de modelos

Pocos Roles, más genéricos y flexibles Más Roles, más específicos

No existe un contrato tradicional, debe ser

bastante flexible

Existe un contrato prefijado

Cliente es parte del equipo de desarrollo

(además in-situ)

El cliente interactúa con el equipo de

desarrollo mediante reuniones

Orientada a proyectos pequeños. Corta

duración (o entregas frecuentes), equipos

pequeños (< 10 integrantes) y trabajando

en el mismo sitio

Aplicables a proyectos de cualquier

tamaño, pero suelen ser especialmente

efectivas/usadas en proyectos grandes y

con equipos posiblemente dispersos

La arquitectura se va definiendo y

mejorando a lo largo del proyecto

Se promueve que la arquitectura se

defina tempranamente en el proyecto

Énfasis en los aspectos humanos: el

individuo y el trabajo en equipo

Énfasis en la definición del proceso: roles,

actividades y artefactos

Basadas en heurísticas provenientes de

prácticas de producción de código

Basadas en normas provenientes de

estándares seguidos por el entorno de

desarrollo

Se esperan cambios durante el proyecto Se espera que no ocurran cambios de

gran impacto durante el proyecto

Page 26: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Metodologías Ágiles Adaptive Software Development (ASD).

Agile Unified Process (AUP).

Crystal Methologies (Crystal Clear, Crystal Orange, Crystal Orange Web)

Essential Unified Process (EssUP).

Feature Driven Development (FDD).

Lean Software Development (LSD).

Open Unified Process (OpenUP).

Rational Unified Process (RUP).

Kanban

Método de desarrollo de sistemas dinámicos (DSDM).

Scrum.

Programación Extrema (XP).

Page 27: Modelos de desarrollo de sistemas - rigel.fca.unam.mxrigel.fca.unam.mx/~memartinez/infovi/pdf/modelos.pdf · Ciclo de Vida Clásico Inconvenientes: Los proyectos reales raramente

Tarea

Identificar de la metodología:

Ciclo de vida.

Elementos y artefactos necesarios para el desarrollo de

aplicaciones.

Roles y responsabilidades (Actividades)

Ejemplos de utilización.

Alcance y ámbito de uso.

Características adicionales.

Conclusiones.