Unidad 3 y 4

Modelado de procesos de negocio

Definición de la visión del negocio

En esta etapa se describe “hacia dónde va “del negocio, sus objetivos, misión, etc. También se establecen los objetivos de negocio, la estrategia general del negocio, además sirve como herramienta de motivación entre los involucrados.

La visión del negocio cuenta con unos elementos vasitos, estos son:

  • Misión/ Visión de la empresa
  • Objetivos
  • Fortalezas/ Debilidades
  • Oportunidades
  • Factores críticos
  • Estrategias
  • Roles
  • Procesos clave

Esto nos permite posicionar el negocio en el “hoy y mañana”, dándole un contexto y determinando los objetivos de la organización.  Además de la planificación y definición general de procesos y recursos clave.

Modelado de objetivos

El objetivo de alto nivel del negocio, se descompone en estrategias, objetivos y metas concretas para alcanzarlos.

Modelado de Casos de Uso

La esencia de los Casos de Uso es descubrir y almacenar requerimientos funcionales, escribiendo historias de uso de un sistema y así ayudar a lograr diferentes objetivos de los participantes de un proyecto. Para lograr entender el alcance y utilidades de los Casos de Uso, es necesario hacer una serie de definiciones formales.

  • Actores: Un actor especifica un rol que adopta una entidad externa al negocio que interacciona directamente con el sistema. Estos actores significan roles y no entidades concretas.

Screenshot_1

  • Trabajador de negocio: Es un rol dentro de la organización, estos son roles mas no posiciones, una persona puede tener varios roles, pero una sola posición.

Screenshot_2

  • Entidad de negocio:

Screenshot_3

  • Caso de Uso: Es una colección de escenarios con un objetivo común, estos escenarios especifican un comportamiento que proporciona un resultado observable valioso para uno o más actores. El caso de uso representa una tarea que el sistema está obligado a proporcionar a los actores en beneficio de los interesados.
  • Actividades:

Screenshot_4

1

Diagrama de actividades del negocio y los flujos de objetos

Representa la relación entre una actividad y el objecto que esta crea. No necesita una transición si su diagrama tiene dos actividades conectadas a través de un objeto y dos flujos de objetos correspondientes.

Screenshot_5

Documentación o especificación textual de Casos de Uso

2

Identificación de procesos de negocio

Para identificar los procesos de negocio es muy importante tener en cuenta que deben generar un valor para el negocio o mitigar los costos del negocio. Se proponen 3 vías para identificar procesos de negocio. Ellas son:

  1. Clasificación de los procesos de negocio.
  2. Identificación de funciones.
  3. A partir de los objetivos estratégicos.

El tener los procesos definidos nos permiten:

  • Comunicación efectiva acerca del proceso entre los usuarios, desarrolladores, gerentes, clientes e investigadores.
  • Mejora de la comprensión de la gerencia, entregando una base precisa para la automatización del proceso y facilitando la movilidad del personal.
  • Facilita la reutilización del proceso, disminuyendo los costos asociados a la definición de procesos.
  • Soporta la evolución del proceso proveyendo de medios efectivos para el aprendizaje del proceso y un sólido fundamento para la mejora de procesos.
  • Ayuda en la administración del proceso. La administración efectiva requiere planes claros y una manera precisa y cuantificada de medir el estado contra ellos. Los procesos definidos hacen posibles tales herramientas.

Modelado de diseño del negocio

Se denomina ventana de contexto porque es la interfaz que soporta el contexto de uso relacionado con un grupo de actividades y que posee la información necesaria para ejecutar dichas actividades.

Para diseñar la interfaz de usuario de negocio y promover la reutilización se aconseja identificar, con ayuda de los usuarios, las tareas más importantes y frecuentes del sistema y los datos que necesitarían para realizar dichas tareas. Los usuarios interactúan con las aplicaciones de proceso a través de interfaces de usuario.

image18335

Puntos de automatización

Automatización de los procesos de negocio: ventajas y tendencias. La automatización de procesos de negocio abarca varias técnicas y actividades que tienen como objetivo sistematizar y facilitar los procesos de las empresas, mediante la eliminación de residuos y obstáculos (entre otros procedimientos) para hacerlos más eficientes, además de recopilar información para que podamos optimizar estos procesos de forma continua y también tomar decisiones más asertivas.

En este post, vamos a contextualizar rápidamente cuatro puntos importantes de automatización de procesos de negocio:

  1. Estrategias
  2. Soluciones
  3. Tendencias
  4. Beneficios

A continuación, vamos a ver algunos casos de automatización de procesos de negocio que fueron muy exitosos.

Estrategias para la automatización de procesos de negocio

Existen varias metodologías y estrategias para la automatización de procesos de negocio, tales como el cambio de paradigma, el rediseño de procesos y la mejora continua.

En todas, el objetivo es definir una nueva forma de llevar a cabo los procesos de la empresa, alineando su aplicación tanto con los objetivos y metas estratégicas de la organización, como con la entrega de más valor para el cliente final, lo que garantiza la total satisfacción de sus necesidades.

Las soluciones para la automatización de procesos de negocio

El control de las tareas humanas por medio de la automatización generalmente ocurre con las tareas repetitivas, pero esa no es la única forma en que la automatización es útil.

Otros factores importantes son; permitir un flujo de información más transparente y ágil, con alertas y disparos de correos electrónicos automatizados – especialmente cuando los trabajos cambian de manos (las denominadas transferencias), además de proporcionar las condiciones necesarias para la captura y medición de indicadores clave de rendimiento (KPI) en diversas etapas del proceso.

Así que si en el primer caso, el de la automatización de tareas repetitivas, el uso de la integración entre los sistemas a través de la API puede ser una solución rápida y sencilla, para la automatización más compleja y estructurada se necesita algo más robusto.

Por lo tanto, la solución más recomendada son los software de automatización de procesos de negocio que también hacen el modelado y la documentación de los procesos.

Modelo de Dominio

Un Modelo de Dominio es un artefacto de la disciplina de análisis, construido con las reglas de UML durante la fase de concepción, en la tarea construcción del modelo del dominio, presentado como uno o más diagramas de clases y que contiene, no conceptos propios de un sistema de software sino de la propia realidad física.

Los modelos de dominio pueden utilizarse para capturar y expresar el entendimiento ganado en un área bajo análisis como paso previo al diseño de un sistema, ya sea de software o de otro tipo. Similares a los mapas mentales utilizados en el aprendizaje, el modelo de dominio es utilizado por el analista como un medio para comprender el sector industrial o de negocios al cual el sistema va a servir.

modelodominiometro

El modelo de dominio puede ser tomado como el punto de partida para el diseño del sistema. Esto es así ya que cuando se realiza la programación orientada a objetos, se supone que el funcionamiento interno del software va a imitar en alguna medida a la realidad, por lo que el mapa de conceptos del modelo de domino constituye una primera versión del sistema.

Crear un modelo de dominio (conceptual) para los Casos de Uso, no puede hacerse si no se cuenta con los Casos y con documentos que permitan identificar los conceptos, también conocidos como objetos. La creación no siempre es lineal, puede formularse en paralelo con el desarrollo de los Casos de Uso.

Porque fallan los proyectos de software?

Proyecto exitoso: Es un proyecto completado a tiempo y dentro del presupuesto.

Proyecto Desviado: Es un proyecto terminado y operable, pero sobre el presupuesto, fuera del plazo y con pocas características y funcionalidades.

Proyecto cancelado: Es un proyecto cancelado antes de completarse o un proyecto que nunca se implemento.

Algunos de los motivos por los que fallan los proyectos de software son:

  • Falta de soporte
  • Falta de recursos
  • Requisitos/ especificaciones incompletas o cambiantes.
  • Usuario no involucrado
  • Expectativas no realistas
  • No se necesito al final del desarrollo

Costo de ajustar defectos en proyectos

  • Errores en los requerimientos
  • Errores en el diseño
  • Errores en el código

Requisitos

Los requerimientos, el espacio problema y el espacio solución

  • Los medios tradicionales de desarrollo de software empresarial subestiman la importancia del problema y su análisis.
  • Se centra en la solución
  • La solución no esta alineada al negocio

Screenshot_6

Las necesidades tienen lugar en el espacio de la solución, pero surgen de las necesidades.

Screenshot_7

Que es un requerimiento?

El primer reto del trabajo de los requisitos es encontrar, comunicar y recordar (registrar), lo que se necesita realmente, de manera que se tenga un significado claro para el cliente y los miembros del equipo de desarrollo.

Los requisitos mal definidos

  • Ambigüedad
  • Definición incompleta
  • Definición con contradicciones
  • Confusión entre requisitos
  • Conjunción entre los requisitos

Calidad de los requisitos

  • Completos: todo lo que se supone que el software debe hacer está incluido
  • Consistentes: No existen subconjuntos de requisitos contradictorios
  • No ambiguos: todo requisito posee una sola interpretación
  • Entendibles: Todo tipo de actores los entienden
  • Factibles: Con los actuales recursos, es implementable
  • Modificables: Los cambios son fáciles de introducir
  • Rastreables: Cada requisito se puede referenciar de forma unívoca
  • Verificables: Si cada requisito tiene un indicador que demuestra que el
    sistema lo satisface

Tipos de requisitos

  • Requisitos del negocio
  • Requisitos del usuario
  • Requisitos del sistema

Clasificación de los requisitos

  • Requisitos generales.
  • Requisitos funcionales: Requisitos de Actores, requisitos de interfaz, Requisitos de procesamiento, requisitos de persistencia, requisitos de gestión y administración.
  • Requisitos no funcionales: Fiabilidad, usabilidad, eficiencia, mantenibilidad, potabilidad, seguridad.

Atributos de los requerimientos

  • Prioridad
  • Estado
  • Costo
  • Propietario
  • Nivel de test/ presedencia
  • Iteracion
  • Riesgo
  • Categoria
  • Dificultad

Dependencia entre los requisitos

Screenshot_8

7 técnicas de levantamiento de requerimientos

En la ingeniería de requisitos, el levantamiento de requerimientos se refiere a la indentificación y documentación de los requerimientos de un sistema, a partir de los usuarios, clientes o interesados (Stakeholder). También se le conoce como recopilación de requerimientos.

  1. Análisis de documentación: Obtiene información de los requerimientos funcionales y no funcionales, a partir de documentos ya elaborados.
  2. Observación: Consiste en estudiar el entorno de trabajo de los usuarios, clientes o interesados del proyecto. Existe dos clases de observadores, el activo que puede tener una conversación con el usuario y el pasivo que solo observa y toma nota.
  3. Entrevistas
  4. Encuestas o cuestionarios
  5. Mesas de trabajo
  6. Tormenta de ideas: Consiste en obtener la mayor cantidad de ideas, las cuales después podrían evaluarsen.
  7. Historia de usuario

Después del levantamiento de requerimientos, la información capturada puede ser incluida en una matriz de trazabilidad y una de especificaciones. Del levantamiento de requerimientos le sigue el análisis de los mismos, por medio de técnicas como descomposición, modelado de procesos, casos de uso, inspecciones y prototipos.

Porque es importante recoger bien los requerimientos?

  • Ayudar al cliente a definir sus ideas: Ya que quizás el cliente no puede expresarla claramente.
  • Acotar el alcance del proyecto: El presupuesto y el calendario, se establecen en base a los requerimientos iniciales, esto por si el cliente desea agregar nuevas ideas a medio camino, esto obligara de inmediato a replantear los requerimientos iniciales y re evaluar todo el proyecto.
  • Definir la hoja de ruta del equipo: SI los requerimientos no se han recogido a detalle, el equipo de proyecto no tendrá clara la ruta de sus tareas y responsabilidades.
  • Establecer indicadores: Conocer los requerimientos del cliente es la única forma de poder establecer KPIS para medirlos y valorar durante etapas de seguimiento los logros obtenidos.

 

 

 

 

Modelo de Negocio y Modelado de Negocio

Modelo de Negocio

modelo-negocio-canvas-1

Un modelo de negocio es una herramienta previa al plan de negocio que te permitirá definir con claridad qué vas a ofrecer al mercado, cómo lo vas a hacer, a quién se lo vas a vender, cómo se lo vas a vender y de qué forma vas a generar ingresos. Es una herramienta de análisis que te permitirá saber quién eres, cómo lo haces, a qué coste, con qué medios y qué fuentes de ingresos vas a tener.

Modelado de Negocio

business_processs

El modelado de negocios se define como un proceso de representación de una o más aspectos o elementos de una empresa como el propósito, su estructura, funcionalidad. dinámica, lógica de negocios y componentes como fines, procesos, reglas, objetos, actores y unidades organizativas entre otras.

Los usos del modelado de negocios son:

Reingeniería de Procesos
Diseño Organizacional
Planificación Estratégica
Gestión del Conocimiento
Gestión de Calidad

El nuevo estándar para el modelado de negocios(BPMN): Estándar de modelado de procesos de negocio, en donde se presenta gráficamente las diferentes etapas del proceso del mismo; esta dirigido a gerentes, directores, ingenieros de procesos, analistas de negocios, analistas de sistemas, administradores de proyectos, responsables de calidad y todo aquel que necesita definir procesos más eficientes del negocio.

¿Diferencias?

En base a estas definiciones podemos identificar la gran diferencia entre estos dos conceptos, por una parte el modelo de negocio se suele concretar en la forma que tiene una empresa de ganar dinero mientras el modelado de negocio es trabajado para conocer el funcionamiento de un negocio particular, ya que cada empresa es un mundo totalmente diferente y que necesita ser estudiada para poder reflejar sus objetivos del mismo(actividad fundamental para la comprensión y evolución de una empresa).

Metodologías De Desarrollo

En el desarrollo de software, una metodología hace cierto énfasis al entorno en el cuál se plantea y estructura el desarrollo de un sistema. Existen una gran cantidad de metodologías de la programación que se han utilizado desde los tiempos atrás y que con el paso del tiempo han ido evolucionando. Esto se debe principalmente a que no todos los sistemas de la información, son compatibles con todas las metodologías, pues el ciclo de vida del software puede ser variable.

Una Metodología de desarrollo de software, consiste principalmente en hacer uso de diversas herramientas, técnicas, métodos y modelos para el desarrollo. Regularmente este tipo de metodología, tienen la necesidad de venir documentadas, para que los programadores que estarán dentro de la planeación del proyecto, comprendan perfectamente la metodología.

Algunas de las metodologías tradicionales más utilizadas para el desarrollo de software han sido, proceso personal de software (PSP) y  proceso en equipo para el software (TSP).

PSP

La metodología maneja un conjunto de scripts que especifican los requerimientos de entrada, el proceso que debe de seguirse y los resultados esperados,todo esto enfocado a cada fase de la metodología.

Esta metodología esta apoyada por una herramienta computacional desarrollada por el Instituto de Carnegie Mellon, que genera una serie de registros con información valiosa para llevar a cabo la siguiente planeación y para actualizar el plan al terminar cada programa de software.

Permite la gestión de tiempo y mejora de la productividad. Esta diseñado para organizaciones con ISO 15504, también considerado como una guía de trabajo personal

Ventajas:

  1.  Permite la estimulación de nuevas ideas
  2.  Permite tomar el control del trabajo

Desventajas:

  1.  Requiere de mucho tiempo y captura de mucha información
  2.  Costo emocional para mantener una disciplina

 

TSP

El TSP es una metodología para dirigir el desarrollo de software además de establecer un entorno donde el trabajo efectivo de equipo sea normal y natural. En donde involucra a los ingenieros a desarrollar un trabajo en equipo.  Esta metodología se origino debido a las limitaciones que presentaba el PSP.

El TSP tiene características propias que lo distinguen de otras metodologías. Por ejemplo:

  • Usa equipos auto-dirigidos con base en el estilo de administración de Peter Drucker (administración del conocimiento) junto con un coach que ayuda a desarrollar las habilidades de trabajo en equipo en los individuos.
  • Tiene procesos operacionales flexibles que permiten a los equipos adaptar los procesos, contando además con un marco de trabajo de métricas que soporta a su proceso e incluye técnicas para la administración de la calidad usando revisiones personales, inspecciones e índices de desempeño de la calidad.
  • Usa planes detallados con actividades no mayores a 10 hrs en periodos de 3-6 meses y establece juntas de cierre (postmortems) para finales de ciclo o de proyecto.
  • Utiliza lanzamientos de proyectos de 3.5 días para planear las actividades y para integrar a los miembros del equipo.
  • Cada miembro tienen asignado roles, metas y riesgos del proyecto.
  • Los calendarios del equipo son desglosados en calendarios personales que son ajustados con base en datos personales.

Ventajas:

  1. Mejora el desempeño de los equipos de trabajo y de cada individuo.
  2. Maximiza la calidad y reduce los costos.

 

XP (Programación Extrema)

  • Metodología liviana de desarrollo de software
  • Conjunto de practicas y reglas empleadas para desarrollar software
  • Basada en diferentes ideas acerca de cómo enfrentar ambientes muy cambiantes
  • Originada en el proyecto C3 para Chrysler
  • En vez de planificar, analizar y diseñar para el futuro distante, hacer todo esto un poco cada vez, a través de todo el proceso de desarrollo

Objetivos:

  • Establecer las mejores prácticas de Ingeniería de Software en los desarrollo de proyectos.
  • Mejorar la productividad de los proyectos.
  • Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente.

Características XP:

  • Metodología basada en prueba y error
  • Fundamentada en Valores y Prácticas
  • Expresada en forma de 12 Prácticas–Conjunto completo–Se soportan unas a otras–Son conocidas desde hace tiempo. La novedad es unirlas.

Ventajas:

  1.  Programación organizada.
  2.  Menor taza de errores.
  3.  Satisfacción del programador.

 Desventajas:

  1.  Es recomendable emplearlo solo en proyectos a corto plazo.
  2.  Altas comisiones en caso de fallar.

 

Scrum

Scrum es un proceso en el que se aplican de manera regular  un conjunto de buenas practicas para colaborar en equipo de trabajo, y obtener el mejor resultado posible de un proyecto.

En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.

En Scrum un proyecto se ejecuta en ciclos temporales cortos y de duración fija (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback y reflexión). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.

diagrama-proceso-scrum

 

Moprosoft

Moprosoft establece y emplea un patrón para definir cada proceso. El patrón de procesos es una agrupación esquemática de los elementos que configuran un proceso. Está formado por tres partes: Definición general del proceso, prácticas y guías de ajuste.

Moprosoft define documentos que describen lo que se debe auditar para cada uno de los procesos en las tres categorías: Alta Dirección, Gerencia y Operación. En cada documento aparece la serie ordenada de acciones y procedimientos para revisar y calificar actividades en cada etapa del proceso. La estructura de los documentos puede adaptarse a los lineamientos de implantación del modelo en una organización en particular.

Sirve para mejorar la calidad del software, con esto pretende elevar la capacidad de las empresas para alcanzar niveles altos de calidad, también permite medir el nivel de madurez de las empresas.

 

FDD

Es un enfoque ágil para el desarrollo de sistemas. Fue desarrollado por Jeff De Luca y el viejo gurú de la orientación a Objetos Peter Coad. Como las otras metodologías adaptables, se enfoca en iteraciones cortas que entregan funcionalidad y el enfoque no hace énfasis en la obtención de los requerimientos sino en como se realizan las fases de diseño y construcción. Sin embargo, fue diseñado para trabajar con otras actividades de desarrollo de software y no requiere la utilización de ningún modelo de proceso específico. Además, hace énfasis en aspectos de calidad durante todo el proceso e incluye un monitoreo permanente del avance del proyecto. Al contrario de otras metodologías, FDD  afirma ser conveniente para el desarrollo de sistemas críticos.

Ventajas:

  1. Posee propiedad individual sobre el código
  2. Cada producto final ha sido probado y satisface los requerimientos del cliente

Desventajas:

  1. Falta de documentación en el diseño
  2. Riesgo de que la suma de las partes no el producto final esperado

 

RUP

La metodología RUP , abreviatura de Rational Unified Process (o Proceso Unificado Racional), es un proceso propietario de la ingeniería de software creado por Rational Software , adquirida por IBM , ganando un nuevo nombre Irup que ahora es una abreviatura Rational Unified Process y lo que es una marca en el área de software, proporcionando técnicas que deben seguir los miembros del equipo de desarrollo de software con el fin de aumentar su productividad en el proceso de desarrollo.

La metodología RUP utiliza el enfoque de la orientación a objetos en su diseño y está diseñado y documentado el uso de la notación UML ( Unified Modeling Language ) para ilustrar los procesos en acción. Utiliza técnicas y prácticas probadas comercialmente.

Es un proceso considerado pesado y preferentemente aplicable a grandes equipos de desarrollo y grandes proyectos , pero el hecho de que es ampliamente personalizable que permite adaptarse a proyectos de cualquier escala.

Rational-unified-process-750x420

Ventajas:

  1. Reduce el riesgo del proyecto e integra desarrollo con mantenimiento

Desventajas:

  1. Genera trabajo adicional
  2. Genera costos adicionales
  3. No recomendable para pequeños proyectos

 

MSF

Es un enfoque personalizable para entregar con éxito soluciones tecnológicas de manera más rápida, con menos recursos humanos y menos riesgos, pero con resultados de más calidad. MSF ayuda a los equipos a enfrentarse directamente a las causas más habituales de fracaso de los proyectos tecnológicos y mejorar así las tasas de éxito, la calidad de las soluciones y el impacto comercial.

MSF se centra en:

  • Alinear los objetivos de negocio y de tecnología
  • Establecer de manera clara los objetivos, los roles y las responsabilidades
  • Implementar un proceso iterativo controlado por hitos o puntos de control
  • Controlar los riesgos de manera proactiva

 

Es adaptable, flexible y escalable, ademas permite el trabajo en equipos interdisciplinarios e interdependientes.

Una des sus desventajas es que requiere de una enorme cantidad de documentación.

 

Lean Software Development

  • Construir sólo lo necesario.
  • Eliminar todo aquello que no añade valor.
  • Parar si algo no va bien (lo que está relacionado con el principio de cero defectos).

Además, conviene destacar que el Lean incluye siete importantes principios, los siguientes:

  1.   Eliminar desperdicios (Eliminating Waste)
  2.   Amplificar el aprendizaje (Amplifying Learning)
  3.   Decidir lo más tarde posible (Deciding as Late as Possible)
  4.   Entrega lo más rápido posible (Delivering as Fast as Possible)
  5.   Capacitar, potenciar, al equipo (Empowering the Team)
  6.   Construir con integridad (Building Integrity In)
  7.   Ver el todo (Seeing the Whole)

Los siete principios Lean nos facilitarán construir aplicaciones más fiables, más seguras, con menos errores, con mejoras frecuentes aprovechando al máximo el uso de los recursos y el presupuesto y tiempo disponible garantizando el valor ofrecido al cliente. Y en lo que refiere a los desperdicios, el Lean habla de que un desperdicio es todo aquello innecesario, todo añadido del que se puede prescindir, donde se destacan los siguientes siete siguientes:

  1.   Sobreproducción
  2.   Tiempo de espera
  3.   Transporte
  4.   Inventarios innecesarios
  5.   Transportes innecesarios
  6.   Defectos
  7.   Sobre procesamiento, o procesos inadecuados.

 

 

Ciclos De Vida En Ingeniería De Software

Lineal Secuencial (Cascada)

Es un modelo clásico, modelo tradicional o modelo lineal secuencial. Él método de la cascada es considerado como el enfoque clásico para el ciclo de vida del desarrollo de sistemas. Está es una secuencia de actividades(o etapas) que consisten en el análisis de requerimientos, diseño, implementación, la integración y las pruebas.

Es caracterizado por ordenar de manera rigurosa las etapas del ciclo de vida de software, dado que el comienzo de cada etapa debe esperar a la finalización de la inmediata anterior.  Y debido a que el proceso está planeado es más fácil determinar costos y los plazos. Esté modelo puede ser visto como un modelo con forma de cascada de agua con varios saltos, en la que cada salto representa cada una de las fases del ciclo de vida.

modelo-en-cascada

Ventajas:

1.    Permite la departamentalización y control de gestión.
2.    El horario se establece con los plazos normalmente adecuados para cada etapa de desarrollo.
3.    Este proceso conduce a entregar el proyecto a tiempo.
4.    Es sencilla y facilita la gestión de proyectos.
5.    Permite tener bajo control el proyecto.
6.    Limita la cantidad de interacción entre equipos que se produce durante el desarrollo.
Desventajas:
1.    No refleja realmente el proceso de desarrollo del software. Ya que la mayoría de los que desarrollan proyectos no cumple con este lineamiento.
2.    Se tarda mucho tiempo en pasar por todo el ciclo
3.    La aplicación de la metodología en cascada se orienta mejor al desarrollo de proyectos de corto plazo, de poca innovación y proyectos definitivos y detallados.
4.    Metodología pueden confundir al equipo profesional en las etapas tempranas del   proyecto.
5.    No es frecuente que el cliente o usuario final explicite clara y completamente los requisitos.

Modelo En V

El modelo en V es una variación del modelo en cascada que muestra cómo se relacionan las actividades de prueba con el análisis y el diseño. La letra V en este ciclo de vida significa Verificación y Validación.

El lado izquierdo de la V representa la descomposición de las necesidades y creación de las especificaciones del sistema.

El modelo en V es muy similar al modelo en cascada clásico ya que es muy rígido y contiene gran cantidad de iteraciones.

 

V

Ventajas:

1.    La relación entre las etapas de desarrollo y los distintos tipos de pruebas facilitan la localización de fallos.
2.    Es un modelo sencillo y de fácil aprendizaje
3.    Hace explícito parte de la iteración y trabajo que hay que revisar
4.    Especifica bien los roles de los distintos tipos de pruebas a realizar
5.    Involucra al usuario en las pruebas

Desventajas:

1.    Es difícil que el cliente exponga explícitamente todos los requisitos
2.    El cliente debe tener paciencia pues obtendrá el producto al final del ciclo de vida
3.    Las pruebas pueden ser caras y, a veces, no lo suficientemente efectivas
4.    El producto final obtenido puede que no refleje todos los requisitos del usuario

Construcción de Prototipos

El modelo de prototipos permite que todo el sistema, o algunos de sus partes, se construyan rápidamente para comprender con facilidad y aclarar ciertos aspectos en los que se aseguren que el desarrollador, el usuario, el cliente estén de acuerdo en lo que se necesita así como también la solución que se propone para dicha necesidad y de esta forma minimizar el riesgo y la incertidumbre en el desarrollo.

El paradigma de construcción de prototipos tiene tres pasos:
  • Escuchar al cliente. Recolección de requisitos. Se encuentran y definen los objetivos globales, se identifican los requisitos conocidos y las áreas donde es obligatorio más definición.
  • Construir y revisar la maqueta (prototipo).
  • El cliente prueba la maqueta (prototipo) y lo utiliza para refinar los requisitos del software.

Etapas para la elaboración del Modelo de Prototipo.

etapasdelprototipo.png

Ventajas:
 
1.    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.
2.    Ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina.
Desventajas:

1.    Su principal desventaja es que una vez que el cliente ha dado su aprobación final al prototipo y cree que está a punto de recibir el proyecto final, se encuentra con que es necesario reescribir buena parte del prototipo para hacerlo funcional.
2.    Es posible que el prototipo sea muy lento, muy grande, no muy amigable en su uso, o incluso, que esté escrito en un lenguaje de programación inadecuado.
3.    El cliente ve funcionando lo que para él es la primera versión del prototipo que ha sido construido y puede desilusionarse al decirle que el sistema aún no ha sido construido.
4.    El desarrollador puede ampliar el prototipo para construir el sistema final sin tener en cuenta los compromisos de calidad y de mantenimiento que tiene con el cliente.

DRA (Desarrollo Rapido de Aplicaciones)

Es un modelo de proceso de software incremental que resalta un ciclo de desarrollo corto. Es una adaptación de «alta velocidad» del modelo de cascada. El proceso de DRA permite que un equipo de desarrollo cree un sistema completamente funcional dentro de un periodo muy corto de 60 a 90 días.
DRA es una adaptación de»Alta velocidad» en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un «sistema completamente funcional» dentro de periodos cortos de tiempo.
DRA enfatiza el desarrollo de componentes de programas reutilizables. Esto permite que los proyectos se desarrollen con mayor velocidad, debido a que estos componentes ya fueron probados en proyectos anteriores.

DRA

Ventajas:

1.    Si se entiende bien los requisitos y se limita el ámbito del proyecto, va a permitir que un equipo de desarrollo cree un sistema totalmente funcional dentro de un periodo de tiempo muy corto.
2.    Es ideal para una aplicación de negocios que se puede modular en forma que cada gran función pueda completarse en menos de tres meses

Desventajas:
1.    Si los requisitos y las tareas no son claras, las divisiones de las mismas dificultaría el trabajo en paralelo provocando una demora en dicho proceso.
2.    Si el proyecto es grande, se necesita suficientes recursos humanos para poder crear el número correcto de equipos DRA.
3.    Sería inapropiado cuando los riesgos técnicos son altos.

Modelo Evolutivo (Incremental)

En este modelo se desarrolla el sistema para satisfacer un subconjunto de requisitos especificados y en posteriores versiones se incrementa el sistema con nuevas funcionalidades que satisfagan más requisitos.

ModeloIncremental_grafica

Ventajas:

1.   Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.
2.   Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.
3.   Si un error importante es realizado, sólo la última iteración necesita ser descartada y utilizar el incremento previo.

Desventajas:

1.    Se presupone que todos los requisitos se han definido al inicio.
2.    Se requiere de una experiencia importante para definir los incrementos de forma de distribuir en ellos las tareas en forma proporcional.
3.    Si el sistema a desarrollar es de gran magnitud y se cuenta con un único grupo para construirlo se corre el riesgo que el desarrollo se prolongue demasiado en tiempo.

Modelo Evolutivo (Espiral)

Es un modelo meta del ciclo de vida del software donde el esfuerzo del desarrollo es iterativo, tan pronto culmina un esfuerzo del desarrollo por ahí mismo comienza otro.

359px-ModeloEspiral.svg

Ventajas:

1.   No requiere una definición completa de los requerimientos del software a desarrollar para comenzar su funcionalidad.
2.   En la terminación de un producto desde el final de la primera iteración es muy factible aprobar los requisitos.
3.  Sufrir retrasos corre un riesgo menor, por que se comprueban los conflictos presentados tempranamente y existe la forma de poder corregirlos a tiempo.

Desventajas:

1.    Existe complicación cuando se evalúa los riesgos.
2.    Se requiere la participación continua por parte del cliente.
3.    Se pierde tiempo al volver producir inicialmente una especificación completa de los requerimientos cuando se modifica o mejora el software.