martes, 8 de octubre de 2013

Ingeniería en Sistemas Computacionales UVPR

Modelo en Cascada

El modelo de la cascada es uno de los primeros modelos empleados en el desarrollo de software, se popularizo en 1970 y aún está vigente en algunos desarrollos. Éste modelo se define como una secuencia de actividades a ser seguidas en orden, donde la estrategia principal es definir y seguir el progreso del desarrollo de software hacia puntos de revisión bien definidos, es decir, se codifica y reparan los errores; es un proceso continuo de codificación y reparación. 

Sus características principales son:
  •  Es lineal
  •  Las actividades están relacionadas secuencialmente
  •  Cada etapa tiene una entrada y una salida
  •  Es rígido y sistemático: La entrada de una actividad es la salida de la etapa anterior
  •  Es monolítico: Existe una única fecha de entrega

Modelo basado en Prototipo

El Modelo de prototipos, en Ingeniería de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.

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. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La interacción ocurre cuando el prototipo se ajusta para satisfacer 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. 


  Modelo Incremental o Evolutivo

El modelo Evolutivo surge por la necesidad de generar una  aproximación flexible y no monolítica al proceso de desarrollo del software, se define como un modelo cuyas etapas consisten en ampliar los requerimientos de un software, los requerimientos pueden ser entregados al cliente a medida que son desarrollados; a esto se le denomina una entrega evolutiva he incremental.

Aunque  la entrega incremental no implica un modelo evolutivo, esto añade un valor al modelo al proveer feedback al usuario desde el inicio del desarrollo. Un aspecto muy importante de estas entregas al usuario  es que estos incrementos deben consistir no solo de códigos y documentaciones internas del proyecto, sino también de documentación orientada al usuario, que este redactada lo mas cercano al lenguaje natural y que provea de un glosario de aquellos términos técnicos que se manejen en la documentación. 



Modelo en Espiral

La meta del modelo espiral del proceso de producción del software es proporcionar un marco para diseñar tales procesos, dirigido por los niveles de riesgo en el proyecto actual. En comparación con los actuales modelos, el modelo espiral se puede ver como metamodelo, porque puede acomodar cualquier modelo de proceso del desarrollo. Usándolo como referencia, se puede elegir el modelo de desarrollo más apropiado.

Los riesgos son las circunstancias potencialmente adversas que pueden deteriorar el proceso del desarrollo y la calidad del producto. Boehm [1989] define la gerencia de riesgo como "disciplina cuyo objetivos es identificar, tratar, y eliminar artículos del riesgo del software antes de que se conviertan en las amenazas al adecuado funcionamiento del software o la fuente importante de la reanudación costosa del software." El modelo de espiral  se enfoca  en identificar y eliminar los  problemas de alto riesgo  con el  diseño de un proceso cuidadoso, más que tratar problemas triviales.
 


Modelo basado en Componentes 

Este modelo se basa en la reutilización de componentes, esta reutilización puede hacerse de componentes de especificación, de programas y de cualquier otro componente. El hecho de reutilizar componentes permite a los desarrolladores  reducir el tiempo y los costos  del desarrollo. La reutilización es la capacidad de los elementos de  software de servir para la construcción de muchos elementos diferentes. 

La necesidad de la reutilización surgió de la observación de que los sistemas software a menudo siguen patrones similares, por ello  es posible explotar esta similitud y evitar reinventar soluciones a problemas que ya han sido encontrados con anterioridad. Capturando tal patrón, un elemento de software reutilizable se podrá aplicar en muchos desarrollos diferentes.


Modelo Scrum

Scrum es un marco de trabajo para la gestión y desarrollo de software basada en un proceso iterativo e incremental utilizado comúnmente en entornos basados en el desarrollo ágil de software.

Aunque Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede ser utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de programas: Scrum de Scrums.

SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto. Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma similar al director de proyecto, el ProductOwner, que representa a los stakeholders (interesados externos o internos), y el Team que incluye a los desarrolladores.