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.
- 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
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.
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.
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.
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.