martes, 14 de febrero de 2012

Modelo Incremental

El Modelo Incremental combina elementos del MLS con la filosofía interactiva de construcción de prototipos.


En una visión genérica, el proceso se divide en 4 partes: Análisis, Diseño, Código y Prueba. Sin embargo, para la producción del Software, se usa el principio de trabajo en cadena o “Pipeline”, utilizado en muchas otras formas de programación. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento. Es el mismo cliente el que incluye o desecha elementos al final de cada incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se repite hasta que se elabore el producto completo. De esta forma el tiempo de entrega se reduce considerablemente.

Al igual que los otros métodos de modelado, el Modelo Incremental es de naturaleza interactiva pero se diferencia de aquellos en que al final de cada incremento se entrega un producto completamente operacional.
El Modelo Incremental es particularmente útil cuando no se cuenta con una dotación de personal suficiente. Los primeros pasos los pueden realizar un grupo reducido de personas y en cada incremento se puede añadir personal. Por otro lado los incrementos se pueden planear para gestionar riesgos técnicos.

Ventajas:

  • Se puede financiar el proyecto por partes
  • Apropiado para proyectos grandes de larga duración
  • No se necesita tanto personalal principio como para una implementación completa

Desarrollo en Cascada


El ciclo de vida inicialmente propuesto por Royce en 1970. Fue adaptado para el software a partir de ciclos de vida de otras ramas de la ingeniería. Es el primero de los propuestos y el más ampliamente seguido por las organizaciones (se estima que el 90% de lossistemas han sido desarrollados así).


Un ejemplo de una metodología de desarrollo en cascada es:
Análisis de requisitos.
Diseño del Sistema.
Diseño del Programa.
Codificación.
Pruebas.
Implantación.
Mantenimiento.


Ventajas:
La planificación es sencilla.
La calidad del producto resultante es alta.
Permite trabajar con personal poco cualificado.
Desventajas: 
Es muy estricto.
En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una mala implementación del modelo, lo cual hace que lo lleve al fracaso.
El proceso de creación del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no esté completo no se opera. 
Cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo.



Ciclo de Vida Lineal


Es el más sencillo de todos los modelos. consiste en descomponer la actividad global del proyecto en etapas separadas, que son realizadas de manera lineal, es decir, cada etapa se realiza una sola vez, a continuación de la etapa anterior y antes de la etapa siguiente. Con un ciclo de vida lineal es muy fácil dividir las tareas, y prever los tiempos (sumando linealmente los de cada etapa).


Las actividades de cada una de las etapas mencionadas deben ser independientes entre sí, es decir, que es condición primordial que no haya retroalimentación entre ellas, aunque si pueden admitirse ciertos supuestos de realimentacion correctiva.


Desde el punto de vista de la gestión requiere también que se conozca desde el primer momento, con excesiva rigidez lo que va a ocurrir en cada una de las distintas etapas antes de comenzarla. Esto ultimo minimiza, tambièn las posibilidades de errores durante la codificación y reduce al minimo la necesidad de requerir informaciòn del cliente o del usuario.


Ventajas:  la sencillez de su gestiòn y administraciòn tanto econòmica como temporal, ya que se acomoda perfectamente a proyectos internos de una empresa para programas muy pequeños.


Desventajas: no es apto para desarrollos que superen minimamente requerimientos de retroalimentaciòn entre etapas, es decir es muy costoso retomar una etapa anterios al detectar alguna falla.


lunes, 13 de febrero de 2012

Modelo de Prototipos



En Ingeniería de software el desarrollo con prototipación, también llamado modelo de prototipos que pertenece a losmodelos dedesarrollo evolutivo, se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado (en forma de un diseño rápido).El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final.

El diseño rápido conduce a la construcción de un prototipo, el cual es evaluado por el cliente o el usuario para una retroalimentación.

La iteración ocurre cuando el prototipo se ajusta parasatisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.

Ventajas.

Este modelo es útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada,procesamiento o salida.También ofrece un mejor enfoque cuando el responsable del desarrollo delsoftware está inseguro de la eficacia de un algoritmo, de la adaptabilidadde un sistema operativo o de la forma que debería tomar la interacciónhumano-máquina.

Desventajas

El usuario tiende a crearse unas expectativas cuando ve el prototipo decara al sistema final. A causa de la intención de crear un prototipo de forma rápida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su función. Es frecuente que el usuario se muestre reacio a ello y pida que sobre ese prototipo reconstruya el sistema final, lo que lo convertiría en un prototipo evolutivo, pero partiendo de un estado poco recomendado.

Desarrollo en Espiral



El Desarrollo en Espiral es un modelo de ciclo de vida desarrollado por Barry Boehm en 1985, utilizado generalmente en la Ingeniería de software.Las actividades de este modelo son una espiral, cada ciclo es una actividad.

Para cada actividad habrá cuatro tareas:

  • No. 1 Planificación:Determinación de objetivos, alternativas y restricciones.Revisamos todo lo hecho, evaluándolo, y con ello decidimos si continuamos con las fases siguientes y planificamos la próxima actividad.
  • No. 2 Análisis de riesgo:Análisis de alternativas e identificación/resolución de riesgos.
  • No. 3 Ingeniería:Desarrollo del producto del “siguiente nivel”Tareas de la actividad propia y se prueba.Análisis de alternativas e identificación resolución de riesgos.
  • No.4 Evaluación del cliente:Valorización de los resultados de la ingeniería.

Ventajas:-
El análisis del riesgo se hace de forma explícita y clara. Une los mejores elementos de los restantes modelos.- Reduce riesgos del proyecto- Incorpora objetivos de calidad- Integra el desarrollo con el mantenimiento, etc.- Además es posible tener en cuenta mejoras y nuevos requerimientos sin romper con la metodología, ya que este ciclo de vida no es rígido ni estático.
Desventajas:-
Genera mucho tiempo en el desarrollo del sistema.- Modelo costoso.- Requiere experiencia en la identificación de riesgos.

RAD Rapid Application Development



Por así decirlo, se trata de una metodología que se basa en la planeación mínima y en el desarrollo rápido de prototipos, la "planeación" del proyecto se da intercalada con la codificación del mismo. La ausencia de una planeación extensiva permite al software ser escrito de una manera mucho más rápida, y permite cambiar más fácilmente los requerimientos.

Como breve reseña este modelo fue implementado y desplegado por primera vez a mediados de los años setenta en el New York Telephone Co's Systems Development Center bajo la dirección de Dan Gielan. Debido a una serie de remárcables implementaciones exitosas de dicha metodología el mismo Gielan se dedicó a dar conferencias sobre el mismo contribuyendo a su pronta difusión. Recientemente esté termino y su acrónimo (RAD) ha sido utilizado en un sentido más amplio que comprende una serie de métodos cuyo objetivo es el de acelerar el desarrollo del software, tales como los frameworks de diverso tipo.
Las cuatro fases "estándar" del RAD son:
  • Fase de planeación de requerimientos.
  • Fase de diseño del usuario.
  • Fase de construcción.
  • Corte (cutover).

Esta metodología es iterativa y basada en prototipos.
XP eXtreme ProgrammingSe trata de un tipo de modelo RAD el cual fue creado en 1995 por Kent Breck y Ward Cunningham. XP es una manera de crear software ligera, eficiente, de bajo riesgo, flexible, científica, y sobre todo divertida.

Se basa en estas cuatro ideas:
  1. Participación intensa del cliente.
  2. Pruebas continuas del código.
  3. Programación en pares: -Piloto: captura y crea el código, -Navegante: observa , sugiere y válida. (se intercambian según sea conveniente.
  4. Ciclos iterativos cortos y lanzamientos frecuentes. ( Optimiza la retroalimentación).

¿Qué son los Modelos de Ciclo de Vida del Software?


If you don’t know where you’re going, any road will do.
If you don’t know where you are, a map won’t help.
- Watts Humphrey

Cada programa por pequeño o diminuto que sea tiene un ciclo de vida. Todos los programas transcurren por las siguientes fases:
  • Concepción.
  • Recaudación de requerimientos / exploración / modelado.
  • Diseño.
  • Codificación & debugging.
  • Pruebas.
  • Lanzamiento.
  • Mantenimiento / evolución del software.
  • Retiro / muerte.
Algún programa podrá saltarse alguna fase o combinar dos o más de estas, pero de forma genérica se puede afirmar que todos correrán con la misma suerte.

A pesar de que todo programa tiene un ciclo de vida, existen diferentes variaciones en el proceso que abarcan estos pasos. Cada modelo es, de alguna manera, una abstracción del proceso de desarrollo de software, el cual es conveniente usarlo para la planeación del mismo.

BIBLIOGRAFÍA:

Software Development and Professional Practice

DOOLEY JOHN
APRESS
2011