29
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)

Modelos de desarrollo rápido de software

Embed Size (px)

Citation preview

Page 1: Modelos de desarrollo rápido de software

Ingeniería en Sistemas de Información

Diseño de Sistemas(3K1)

Page 2: Modelos de desarrollo rápido de software

Contenidos de la Unidad 1Introducción al Diseño

e) Modelos de desarrollo rápido del software

Sommervillle. Introducción Cap. 17

1.Métodos ágiles. Sommervillle. Sección 17.1.Kendall&Kendall. Capítulo 6.Sección PROGRAMACIÓN EXTREMA Larman, 2ª.Ed., Cap. 37.3

2. Desarrollo rápido de aplicaciones.

Sommervillle. Sección 17.3Pressman. Sección 2.6 Kendall&Kendall. Capítulo 6. Sección DESARROLLO RÁPIDO DE APLICACIONES.

3. Prototipado del software.a.Clases de prototipos.b.Desarrollo de un prototipo c.Ventajas y Desventajas de

prototipos.d.Papel del usuario en la

elaboración de prototipos.   

Sommervillle. Sección 17.4.Pressman. Sección 2.5 Kendall&Kendall. Capítulo 6     

Page 3: Modelos de desarrollo rápido de software

Los negocios operan en un entorno global que cambia rápidamente.

Tienen que responder a nuevas oportunidades y mercados, condiciones económicas cambiantes y la aparición de productos y servicios competidores.

El software es parte de casi todas las operaciones de negocio. Es fundamental que el software nuevo se desarrolle

rápidamente para aprovechar nuevas oportunidades y responder a la presión competitiva.

Modelos de Desarrollo Rápido de Software

(Sommerville, 17 Introd.)

Page 4: Modelos de desarrollo rápido de software

Por lo tanto, el desarrollo y entrega rápidos son los requerimientos más críticos de los sistemas

Muchas compañías prefieren perder calidad del software a favor de una entrega rápida.

Como las empresas operan en un entorno cambiante, es casi imposible obtener un conjunto completo de requerimientos del software estables.

Los requerimientos cambian inevitablemente, porque a los clientes les es imposible predecir cómo afectará un sistema a la manera de trabajar, cómo interactuará con otros sistemas y qué operaciones se deben automatizar.

Modelos de Desarrollo Rápido de Software

Page 5: Modelos de desarrollo rápido de software

Muchos requerimientos sólo quedan claros cuando se haya entregado el sistema y los usuarios hayan adquirido experiencia.

El Desarrollo del Software basado en una completa Especificación de los Requerimientos y posterior Diseño, Construcción y Pruebas del Sistema no se ajustan al Desarrollo Rápido de Aplicaciones.

Cuando los Requerimientos cambian o cuando se descubren problemas con ellos, el Diseño o Implementación del Sistema se tiene que volver a realizar o probar.

Modelos de Desarrollo Rápido de Software

Page 6: Modelos de desarrollo rápido de software

Por eso el proceso en cascada se dilata en el tiempo y el software definitivo se entrega al cliente mucho tiempo después del inicialmente especificado.

En un entorno de negocios que se mueve con rapidez, esto puede causar verdaderos problemas.

Para cuando esté disponible el software, la razón original de su adquisición puede haber cambiado tanto que el software sea ahora inútil.

Por eso, para los sistemas de negocio, los procesos de desarrollo y entrega rápidos de software son esenciales.

Modelos de Desarrollo Rápido de Software

Page 7: Modelos de desarrollo rápido de software

Los procesos de desarrollo rápido de software están diseñados para producir software útil de forma rápida.

Son procesos iterativos que entrelazan la Especificación, el Diseño, el Desarrollo y las Pruebas.

El software no se desarrolla y utiliza en su totalidad, sino en una serie de incrementos, donde cada incremento agrega nuevas funcionalidades al sistema.

Modelos de Desarrollo Rápido de Software

Page 8: Modelos de desarrollo rápido de software

Hay muchos enfoques para el Desarrollo Rápido de Software, que comparten estas características:

1. Los Procesos de Especificación (Análisis), Diseño e Implementación son concurrentes.

No existe una especificación detallada del sistema. La documentación del diseño se minimiza o es

generada automáticamente por el entorno de programación utilizado para implementar el sistema.

El documento de Requerimientos del usuario define sólo las características más importantes del sistema.

Modelos de Desarrollo Rápido de Software

Page 9: Modelos de desarrollo rápido de software

2. El sistema se desarrolla en una serie de incrementos.

Los usuarios participan en la especificación y evaluación de cada incremento.

Pueden proponer cambios en el software y nuevos requerimientos a implementar en un incremento posterior.

Desarrollo Rápido de Software

Características

Page 10: Modelos de desarrollo rápido de software

3. Las interfaces de usuario del sistema se desarrollan interactivamente.

El diseño de la interfaz se crea rápidamente dibujando iconos, para una interfaz basada en web o una plataforma específica como Microsoft Windows.

Desarrollo Rápido de Software

Características

Page 11: Modelos de desarrollo rápido de software

El desarrollo incremental implicaba producir y entregar el software en incrementos más que en un paquete único.

Cada iteración del proceso produce un nuevo incremento del software.

Desarrollo Rápido de Software

Modelo Incremental

Page 12: Modelos de desarrollo rápido de software

Las dos ventajas del Enfoque Incremental para desarrollar software eran:

1.Entrega acelerada de los servicios del cliente. En los incrementos iniciales del sistema se pueden entregar las funcionalidades más prioritarias para que los clientes puedan aprovechar el sistema desde el principio de su desarrollo.

Los clientes pueden ver sus requerimientos en la práctica y especificar cambios a incorporar en entregas posteriores del sistema.

Desarrollo Rápido de Software

Modelo Incremental

Page 13: Modelos de desarrollo rápido de software

2. Compromiso del cliente con el sistema. Los usuarios del sistema deben implicarse en el

proceso de desarrollo incremental, ya que deben brindar su retroalimentación sobre los incrementos que le va entregando al equipo de desarrollo.

Su participación asegura que el sistema cumpla sus requerimientos.

Los usuarios se comprometen con el sistema y consiguen que funcione.

Desarrollo Rápido de Software

Modelo Incremental

Page 14: Modelos de desarrollo rápido de software

Las etapas iniciales del Modelo Incremental se centran en el diseño arquitectónico.

Si no se considera la arquitectura al principio, es probable que la estructura general del sistema sea inestable y degrade a medid que se entreguen nuevos incrementos.

El desarrollo incremental del software es un buen enfoque para el desarrollo de los sistemas de negocio, comercio electrónico y personales porque refleja el modo en que todos tendemos a resolver problemas.

Desarrollo Rápido de Software

Modelo Incremental

Page 15: Modelos de desarrollo rápido de software

Rara vez encontramos una solución completa a un problema por adelantado. Siempre nos movemos hacia lasolución en una serie de pasos, dando marcha atrás cuando advertimos habernos equivocado.

En la figura siguiente ilustramos un modelo de desarrollo incremental.

Desarrollo Rápido de Software

Modelo Incremental

Page 16: Modelos de desarrollo rápido de software

Desarrollo Rápido de Software

Modelo Incremental

Page 17: Modelos de desarrollo rápido de software

Inconvenientes con este enfoque: Sobre todo en las grandes compañías con

procedimientos bastante rígidos y en organizaciones donde el desarrollo del software se subcontrata con un contratista exterior.

Los principales problemas con el desarrollo iterativo y la entrega incremental son:

Desarrollo Rápido de Software

Modelo Incremental

Page 18: Modelos de desarrollo rápido de software

1. Problemas de administración. La administración del software en sistemas grandes se diseña para tratar con entregas periódicas documentadas del Software, para evaluar el progreso. Los sistemas desarrollados incrementalmente cambian tan rápido que no es rentable producir una gran cantidad de documentación del sistema. El desarrollo incremental puede requerir tecnologías novedosas, para lograr una entrega más rápida del software. Es difícil emplear al personal existente para el desarrollo incremental, porque carecen de las habilidades requeridas.

Desarrollo Rápido de Software

Modelo Incremental: Problemas

Page 19: Modelos de desarrollo rápido de software

2. Problemas contractuales. Un contrato normal entre un cliente y un desarrollador de software se basa en la Especificación del Sistema. Cuando no existe tal Especificación (Análisis), es difícil acordar un contrato de Desarrollo del Sistema. A los clientes no les gustan los contratos que paguen a los desarrolladores por el tiempo invertido en el proyecto (horas técnicas), ya que motivan que el sistema se desarrolle lentamente y se sobrepase el presupuesto.Los desarrolladores no aceptarán un contrato con precio fijo, ya que no pueden controlar los cambios requeridos por los usuarios.

Desarrollo Rápido de Software

Modelo Incremental: Problemas

Page 20: Modelos de desarrollo rápido de software

3. Problemas de validación. En los procesos basados en el Análisis (Cascada), la Verificación y la Validación deben demostrar que el Sistema cumple su Especificación (pautas del Análisis).Un equipo independiente de V & V puede empezar a trabajar no bien esté disponible el Análisis y puede preparar pruebas, en paralelo con la Implementación del Sistema. El Desarrollo Iterativo minimiza la Documentación y entrelaza la Especificación (Análisis) y el Desarrollo. Por lo tanto, la Validación de estos sistemas es difícil.

Desarrollo Rápido de Software

Modelo Incremental: Problemas

Page 21: Modelos de desarrollo rápido de software

4. Problemas de mantenimiento. Los cambios continuos tienden a corromper la estructura del cualquier sistema. Esto significa que cualquiera puede tener dificultades para entender el software. Por lo tanto, puede ser difícil encontrar personas que tengan los conocimientos para mantener el sistema.

Desarrollo Rápido de Software

Modelo Incremental: Problemas

Page 22: Modelos de desarrollo rápido de software

Hay algunos sistemas donde el desarrollo y la entrega rápidos no son el mejor enfoque. Por ejemplo:

Sistemas grandes en cuyo desarrollo trabajan equipos en diferentes lugares;

Sistemas «embebidos» donde el software depende del desarrollo del hardware

Sistemas «críticos», donde se deben analizar todos los requerimientos, para verificar las interacciones que puedan comprometer la seguridad o protección del sistema.

1.Estos sistemas sufren los mismos problemas de requerimientos inciertos y cambiantes.

Desarrollo Rápido de Software

Modelo Incremental

Page 23: Modelos de desarrollo rápido de software

Por lo tanto, para abordar estos problemas y conseguir algunos de los beneficios del desarrollo incremental, se puede utilizar un Proceso Híbrido en donde:

1.Se desarrolle de forma iterativa un Prototipo del Sistema 2.Se utilice el Prototipo como Plataforma para

experimentar con los Requerimientos y el Diseño del Sistema.

Con la experiencia adquirida con el Prototipo, se puede tener una mayor seguridad de que los Requerimientos cumplen las necesidades reales de los usuariosdel sistema.

Desarrollo Rápido de Software

Modelo Incremental

Page 24: Modelos de desarrollo rápido de software

Con el término «prototipado» aludimos a un proceso iterativo con el que desarrollamos un sistema experimental no destinado al uso, por parte de los clientes.

Un prototipo del sistema ayuda a los desarrolladores de software y a los clientes a comprender qué se debe implementar.

Sin embargo, algunas veces se usa la expresión prototipado evolutivo como sinónimo del desarrollo de software incremental.

En ese caso, el prototipo no se descarta sino que se desarrolla para cumplir los requerimientos del usuario.

Desarrollo Rápido de SoftwarePrototipos

Page 25: Modelos de desarrollo rápido de software

Esta figura muestra que el desarrollo evolutivo y el prototipado incremental tienen objetivos diferentes:

Desarrollo Rápido de Software

Prototipos Vs. Desarrollo Incremental

Page 26: Modelos de desarrollo rápido de software

1. Objetivo del Desarrollo Incremental => entregar al usuario final un sistema funcional.

Normalmente comienza con los requerimientos que mejor se comprendan y con mayor prioridad.

Los requerimientos inciertos y de prioridad más baja se implementan cuando sean requeridos por los usuarios.

Desarrollo Rápido de Software

Prototipos Vs. Desarrollo Incremental

Page 27: Modelos de desarrollo rápido de software

2. Objetivo del Prototipado Desechable => validar u obtener los requerimientos del sistema.Se comiena con aquellos requerimientos que no se comprendan bien, ya que se requiere saber más sobre ellos. Los requerimientos sencillos no se prototipan.

Desarrollo Rápido de Software

Prototipos Vs. Desarrollo Incremental

Page 28: Modelos de desarrollo rápido de software

Otra diferencia importante entre ambos enfoques está en la Gestión de la Calidad de los Sistemas.

Los Prototipos Desechables tienen un periodo de vida muy corto.

Se los debe poder cambiar rápidamente durante el Desarrollo.

No requieren Mantenimiento a largo plazo. En los Prototipos se puede permitir un rendimiento

pobre y una baja fiabilidad; siempre y cuando ayude a entender los requerimientos.

Desarrollo Rápido de Software

Prototipos Vs. Desarrollo Incremental

Page 29: Modelos de desarrollo rápido de software

Enfoque Incremental: las versiones iniciales que evolucionan hacia el sistema final se deben desarrollar con los mismos estándares de calidad que cualquier otro software.

Deben tener una estructura robusta para que se les pueda dar mantenimiento durante muchos años.

Deben ser fiables y eficientes, acordes con los estándares organizacionales apropiados.

Desarrollo Rápido de Software

Prototipos Vs. Desarrollo Incremental