Want to create interactive content? It’s easy in Genially!

Get started free

MODELOS DE LA INGENIERÍA DE SOFTWARE.

Nieves Quezada Daián de Jesús

Created on September 23, 2022

Modelos de la Ingeniería de Software

Start designing with a free template

Discover more than 1500 professional designs like these:

Smart Presentation

Practical Presentation

Essential Presentation

Akihabara Presentation

Pastel Color Presentation

Visual Presentation

Relaxing Presentation

Transcript

PRESENTACIÓN

MODELOS DE LA INGENIERIA DE SOFTWARE

Equipo 5.

Modelo en cascada

¿cómo es?
¿Qué es?

Lo que propone es dividir en fases cada etapa del desarrollo de software y completar cada una de ellas en un orden específico, es decir, no puedes iniciar la “fase 2” hasta que hayas concluido la “fase 1”. Otra de las características del modelo en cascada, es que debes de hacer un análisis y comprobación del funcionamiento de cada una de las fases al concluirlas, antes de pasar a la siguiente, detectando así los posibles errores y corrigiéndolos antes de avanzar.

El desarrollo en cascada (en inglés, waterfall model) es un procedimiento lineal que se caracteriza por dividir los procesos de desarrollo en sucesivas fases de proyecto. Al contrario que en los modelos iterativos, cada una de estas fases se ejecuta tan solo una vez. Los resultados de cada una de las fases sirven como hipótesis de partida para la siguiente. El waterfall model se utiliza, especialmente, en el desarrollo de software.

¿qUÉ HACE?
  • Análisis: planificación, análisis y especificación de los requisitos.
  • Diseño: diseño y especificación del sistema.
  • Implementación: programación y pruebas unitarias.
  • Verificación: integración de sistemas, pruebas de sistema y de integración.
  • Mantenimiento: entrega, mantenimiento y mejora.
¿dónde se aplica?

Los gerentes de proyecto suelen recurrir al método de cascada:

  • Cuando hay una visión clara de lo que debería ser el producto final.
  • Cuando los clientes no tienen posibilidad de cambiar el alcance del proyecto una vez que ha comenzado.
  • Cuando el concepto y la definición son las claves del éxito (pero no la velocidad).
  • Cuando no hay requisitos ambiguos.

REPRESENTACIÓN GRÁFICA DEL MODELO.
VENTAJAS.
  • El modelo es simple y fácil de usar.
  • Como la metodología es bastante rígida, es fácil de administrar porque cada fase consta de entregables específicos.
  • El proceso es bastante predecible, todos tienen una idea con anterioridad cómo se evolucionará el proyecto. Los clientes saben qué esperar en cuanto a los costes, el cronograma, y el resultado final de su proyecto desde el principio. El equipo sabe bien cómo son y cuando tienen que hacer sus tareas.
  • Las fases no se superponen. Se ejecutan y se completan una a la vez.
  • Las metodologías de desarrollo de software en cascada son buenas para proyectos que contienen requisitos claros.
  • Si la rotación de empleados en su empresa es bastante frecuente, al estar todo bien definido y documentado, eso impactará mínimamente el proyecto.
DESVENTAJAS
  • Si encuentra un error de requisito o necesita cambiar algo, su proyecto debe iniciarse desde el principio con un nuevo código.
  • Cuando su producto está en la etapa de prueba, no es fácil volver atrás y cambiar algo que no está claro o no se ha formulado bien en la fase inicial.
  • No puede resolver algunos problemas esenciales utilizando Waterfall para proyectos complejos y orientados a objetos. Tampoco es una buena idea usarlo para proyectos largos con requisitos complejos e imprecisos.
  • El método no es apropiado para los proyectos en los que se sabe desde inicio que hay muchas probabilidades que los requisitos cambien.
  • Los clientes pueden no estar satisfechos con el producto entregado. Como todas las tareas y los entregables se basan en requisitos documentados, es posible que los clientes no vean lo que se entregará hasta que esté casi terminado. Puede ser difícil cambiar algo en ese momento.
EJEMPLOS EN DONDE SE APLICA.

Si un equipo desarrollara una libreta de direcciones de clientes utilizando la metodología Cascada, el orden de trabajo sería el siguiente (los plazos son solo para fines de demostración): ANÁLISIS. El Jefe del Proyecto se reúne con el cliente. El método de educción de requisitos elegido es “la entrevista”. Se crea el documento con la información recabada que permitirá a los Analistas de Requerimientos determinar los requerimientos relevantes que facilitarán el correcto desarrollo del software. El Equipo de Analistas deducen los siguientes requerimientos:

  • El sistema deberá permitir crear nuevos contactos.
  • El sistema deberá permitir listar contactos.
  • El sistema deberá permitir modificar contactos.
  • El sistema deberá permitir eliminar contactos.
Marco de tiempo: 2 semanas.

EJEMPLOS EN DONDE SE APLICA.

DISEÑO. El Equipo de Desarrolladores crea un diseño de funcionalidad; que incluye modelo de datos, diagramas de casos de uso y de clases. Herramienta utilizada: Enterprise Architect. Marco de tiempo: 2 semanas

EJEMPLOS EN DONDE SE APLICA.

IMPLEMENTACIÓN. El Equipo de Desarrolladores desarrolla la funcionalidad y la prepara para las pruebas. Marco de tiempo: 1 semana. PRUEBAS. El Equipo del Pruebas prueba toda la funcionalidad. Marco de tiempo: 2 semanas. LANZAMIENTO. La funcionalidad del producto es lanzada. TOTAL del tiempo transcurrido: 7 semanas.

Modelo de procesos evolutivos

¿Qué es, cómo es y cómo lo hace?

El desarrollo evolutivo consta del desarrollo de una versión inicial que luego de exponerse se va refinando de acuerdo de los comentarios o nuevos requerimientos por parte del cliente o del usuario final. Las fases de especificación, desarrollo y validación se entrelazan en vez de separarse.Existen dos tipos de desarrollo evolutivo:

  • Desarrollo exploratorio: donde el objetivo del proceso es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final. El desarrollo empieza con las partes del sistema que se comprenden mejor. El sistema evoluciona agregando nuevos atributos propuestos por el cliente.
  • Prototipos desechables: donde el objetivo del proceso de desarrollo evolutivo es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos para el sistema. El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo.

Representación Gráfica
Representación en diagrama del modelo de procesos evolutivos
¿Dónde se aplica?

Estos modelos se aplican cuando se reconoce la naturaleza evolutiva del proyecto de ingeniería de software. El desarrollo evolutivo solo es recomendado para sistemas pequeños y medianos. El modelo evolutivo también se utiliza en el desarrollo de software orientado a objetos porque el sistema se puede dividir fácilmente en unidades en términos de objetos.

Ventajas y desventajas

Ventajas.
  • Desde el punto de vista de desarrollo de sistema el enfoque evolutivo suele traer más ventajas en comparación con un enfoque en cascada ya que el sistema se va ajustando a las necesidades del cliente, a la vez que él mismo entiende mejor sus propios requerimientos.
  • · La especificación puede desarrollarse de forma creciente.
  • · Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad del software.
  • · Es más efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente.

Ventajas y desventajas

Desventajas.
  • Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar rápido, no es efectivo producir documentos que reflejen cada versión del sistema.
  • ·Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura del software haciendo costoso el mantenimiento.
  • · Se requieren técnicas y herramientas: Para el rápido desarrollo se necesitan herramientas que pueden ser incompatibles con otras o que poca gente sabe utilizar.
Ejemplos de aplicación.
  • Empresas Basadas en Aplicaciónes.
Recurrentemente se necesitan actualizaciones para así poder ir incrementando la imagen de estas mismas ya sea para la satisfacción de los usuarios en el área visual, privacidad, accesos rápidos, etc.
  • Productos Web.
Ya que de misma manera se ocupa ir actualizando información de estas plataformas ya que ocupan ir satisfaciendo las necesidades de los usuarios, así como los mismos moderadores.

Modelo en espiral

¿Qué es?

Es un enfoque de desarrollo de software que puede ser considerado como una respuesta a los inconvenientes del desarrollo en cascada. El modelo en espiral describe el ciclo de vida de un software por medio de espirales, que se repiten hasta que se puede entregar el producto terminado. El desarrollo en espiral también se conoce como desarrollo o modelo incremental. El producto se trabaja continuamente y las mejoras a menudo tienen lugar en pasos muy pequeños. El modelo de desarrollo en Espiral es una combinación entre el modelo waterfall y un modelo por iteraciones.

¿Cómo es?

Dentro de cada etapa, tendremos una serie de fases que transcurren desde la planificación, pasando por el análisis de riesgos, el desarrollo y finalizando en la evaluación de lo realizado. Se incorpora también una fase de enlace entre etapas, para facilitar la transición entre las mismas. En definitiva, el equipo de desarrollo en este modelo de desarrollo en espiral comienza con un pequeño conjunto de requisitos y pasa por cada fase de desarrollo para ese conjunto de requisitos. El equipo de desarrollo agrega la funcionalidad para el requerimiento adicional en espirales cada vez mayores, hasta que la aplicación está lista para la fase de producción.

Representación gráfica del modelo en espiral
¿Qué hace?
  • DETERMINAR OBJETIVOS, ALTERNATIVAS Y RESTRICCIONES.
Los requerimientos del sistema se definen con el mayor detalle posible, incluyendo rendimiento, interfaces de hardware/software, indicadores claves de éxito, etc. y se consideran cuáles objetivos se deben asociar con el ciclo actual de desarrollo.Además, se examinan diferentes alternativas para su implementación, como construir vs. comprar, reutilizar componentes existentes o subcontratar, etc.Igualmente, se determinan las restricciones como el costo, cronograma e interfaces, consumo de tiempo, etc.
  • EVALUACIÓN DE RIESGOS.
Se evalúan todas las alternativas propuestas. Los objetivos y restricciones sirven como referencias determinantes para seleccionar la mejor solución.Además, se identifican los riesgos que pueden dificultar el éxito del proyecto, tales como falta de experiencia, nuevas tecnologías, cronogramas ajustados, procesos deficientes, etc., implantando las estrategias más rentables y con menor riesgo.
¿Qué hace?
  • DESARROLLO Y PRUEBA.
Se realiza todo el desarrollo necesario, utilizando la tecnología y solución seleccionada. Con cada iteración se va creando una mejor versión de la aplicación.Se escribe y se prueba el código real varias veces hasta alcanzar el resultado deseado, que luego servirá como base para futuros pasos del desarrollo.
  • PLANIFICACIÓN DEL PRÓXIMO CICLO.
Al completar un ciclo, se comienza la planificación del siguiente. Esta planificación podría ser seguir normalmente con el proyecto si se alcanzó el objetivo del ciclo, planteándose la definición del próximo objetivo.También podría ser encontrar otras soluciones, si la etapa anterior de desarrollo resultó defectuosa. La estrategia existente podría reemplazarse por una de las alternativas previamente definidas o una nueva. Con esto, se comenzaría un nuevo intento para alcanzar el objetivo dado.
¿DÓNDE SE APLICA?

El modelo en espiral se utiliza especialmente en los nuevos entornos técnicos, ya que éstos suponen un riesgo. Los conflictos entre los requisitos de un software y su diseño se evitan eficazmente mediante el enfoque cíclico, ya que los requisitos pueden comprobarse constantemente y, si es necesario, modificarse.El modelo en espiral se utiliza especialmente en los nuevos entornos técnicos, ya que éstos suponen un riesgo. Los conflictos entre los requisitos de un software y su diseño se evitan eficazmente mediante el enfoque cíclico, ya que los requisitos pueden comprobarse constantemente y, si es necesario, modificarse.

Ventajas y desventajas

Ventajas.
  • La funcionalidad adicional o los cambios se pueden hacer en una etapa posterior.
  • La estimación del coste se hace fácil, ya que la construcción del prototipo se hace en pequeños fragmentos.
  • El desarrollo continuo o repetido ayuda en la gestión de riesgos.
  • El desarrollo es rápido y las características se añaden de forma sistemática.
  • Siempre hay espacio para atender los comentarios de los clientes.

Ventajas y desventajas

Desventajas.
  • Riesgo de no cumplir con la planificación o el presupuesto.
  • Funciona mejor para proyectos grandes, aunque en estos también requiera de una estricta evaluación de riesgos.
  • Para su buen funcionamiento, el protocolo del modelo en espiral debe ser seguido estrictamente.
  • Se genera más documentación al tener fases intermedias.
  • No es aconsejable para proyectos pequeños, la ratio coste beneficio no es rentable.
Ejemplo de aplicación

El ejército de Estados Unidos adoptó el modelo espiral para el desarrollo y actualización del programa de modernización de los Sistemas de Combates Futuros (SCF). Lanzado oficialmente en 2003, se preveía que los SCF equiparan a las tropas con vehículos conectados en tiempo real a una red de campos de batalla extraordinariamente rápida y flexible. El proyecto se dividía en cuatro espirales de desarrollo de unos dos años cada una. La espiral 1 estaba programada que comenzara para 2008 y entregara prototipos para su uso y evaluación. Tras finalizar la espiral 1, estaba programado comenzar la espiral 2 para 2010. El desarrollo final del producto se tenía previsto entregar para 2015. En agosto 2005, Boeing anunciaba la finalización del primer hito importante del proyecto, que era la revisión funcional de los sistemas. Boeing y Science Applications International Corporation eran los colíderes del proyecto. Sin embargo, para octubre de 2005 el Pentágono recomendó retrasar el proyecto debido al alto impacto en los costos por la guerra de Irak y la ayuda por el huracán Katrina. El proyecto fue cancelado en 2009 después que surgieron recortes presupuestarios, sin poderse probar los beneficios del modelo espiral en esta misión

Modelo unificado racional (RUP)

¿QUÉ ES?

El proceso unificado racional (RUP) es una técnica de desarrollo de aplicaciones de software con muchas herramientas para ayudar a codificar el producto final y las tareas relacionadas con este objetivo. RUP es un enfoque orientado a objetos que se utiliza para garantizar una gestión de proyectos eficaz y una producción de software de alta calidad. El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

¿Cómo es?

RUP es herramientas de la ingeniería de software que combinan los aspectos del proceso de desarrollo (como fases definidas, técnicas, y prácticas) con otros componentes de desarrollo (como documentos, modelos, manuales, código fuente, etc.) dentro de un framework unificado. RUP establece cuatro fases de desarrollo cada una de las cuales está organizada en varias iteraciones separadas que deben satisfacer criterios definidos antes de emprender la próxima fase.

Representación gráfica del modelo RUP
¿Qué hace?

RUP se compone de tres características y un ciclo de cuatro fases recurrentes. RUP tiene las siguientes características clave: 1. Caso de uso impulsado desde el inicio hasta la implementación. 2. Centrado en la arquitectura, donde la arquitectura es una función de las necesidades del usuario. 3. Iterativo e incremental, donde los grandes proyectos se dividen en proyectos más pequeños. La estructura dinámica de RUP es la que permite que éste sea un proceso de desarrollo fundamentalmente iterativo, y en esta parte se ven inmersas las 4 fases descritas anteriormente: 1. INICIO: se visualiza la idea central. 2. ELABORACIÓN: Se diseñan casos de uso y arquitectura. 3. CONSTRUCCIÓN: actividades desde el diseño hasta el producto terminado 4. TRANSICIÓN: actividades de seguimiento para garantizar la satisfacción del cliente

¿Dónde se aplica?

La metodología de desarrollo RUP proporciona una forma estructurada para que las empresas visualicen la creación de programas de software. Dado que proporciona un plan específico para cada paso del proceso de desarrollo, ayuda a evitar el desperdicio de recursos y reduce los costos de desarrollo inesperados.

Ventajas y desventajas

Ventajas.
  • Proceso de desarrollo más general de los existentes actualmente: Su enfoque es bastante optimo y tiende a ser una metodología viable para la mayoría de estas.
  • Forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo, pues lo roles están muy bien definidos.
  • Mantenimiento más sencillo y modificaciones locales.
  • Reutilización. Los roles y distintos pueden ser reutilizados: mejor organización al proyecto y menos utilización de recursos o tiempo.
  • Un proceso de software hecho a la medida para ser publicado y hacerlo accesible para todo el equipo del proyecto.
  • Ofrece a cada usuario un filtrado personalizado de la definición del proceso publicado acorde con su rol dentro del proyecto.

Ventajas y desventajas

Desventajas.
  • Por el grado de complejidad puede ser no muy adecuado. Debido a que es un proceso bastante grande y complejo es muy común que no sea el adecuado para cualquier proyecto pequeño.
  • En proyectos pequeños, es posible que no se puedan cubrir los costos de dedicación del equipo de profesionales necesarios. Al ser una metodología bastante cara y con bastantes requerimientos en cuanto a roles.
  • Método pesado. En muchos aspectos tiende a ser muy pesado, pues como se explicaba en los puntos anteriores, la complejidad es alta
Ejemplo de aplicación.

Pear, Inc. es una empresa de desarrollo de software, especializada en aplicaciones para teléfonos móviles. Actualmente están trabajando en una nueva aplicación para mejorar la productividad, llamada Get A Kitten, que lo recompensa con una linda imagen de un gatito por cada tarea completada de su lista de tareas pendientes. Pear, Inc. utiliza RUP como marco de desarrollo. Las actividades que el equipo de Pear, Inc. debe completar durante cada una de las fases: 1. INICIO. Durante la fase inicial, se lleva a cabo la evaluación inicial para determinar el alcance del sistema y determinar si vale la pena continuar con el proyecto. Pear, Inc. crea un caso de negocios que detalla el modelo de precios de la aplicación Get A Kitten y calcula los costos y el cronograma de desarrollo. Se llega a un acuerdo sobre el alcance del proyecto con todas las partes interesadas. Algunas de las características pueden reducirse para reducir el tiempo y los costos de desarrollo. Por ejemplo, una lista de tareas pendientes originalmente admitía tres tipos de tareas diferentes, pero ahora solo admitirá un tiempo de tarea.

Ejemplo de aplicación.

2. ELABORACIÓN. Durante la elaboración se lleva a cabo una evaluación más detallada, se crea un plan de desarrollo y se mitigan los riesgos clave. El equipo de Pear, Inc. escribe el 80% de todos los casos de uso, crea la arquitectura del sistema y un plan de desarrollo. 3. CONSTRUCCIÓN. Durante la construcción, se crea el sistema de software; el código está escrito y probado. Un equipo dedicado de desarrolladores de software de Pear, Inc. está trabajando en un proyecto. Un equipo de QA está probando el software resultante. El resultado clave de esta fase es el software operativo. 4. TRANSICIÓN. Durante la fase de transición, el software se entrega al usuario final. Pear, Inc. carga la aplicación Get A Kitten en AppStore. Una vez aceptada la solicitud, el proyecto se cierra formalmente.

referencias bibliográficas.
  • https://blog.ganttpro.com/es/metodologia-de-cascada/
  • https://www.ecured.cu/Modelo_en_cascada
  • https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/el-modelo-en-cascada/
  • https://www.hostingplus.mx/blog/modelo-de-prototipos-que-es-y-cuales-son-sus-etapas/
  • https://www.proyectum.com/sistema/blog/modelo-de-prototipos/
  • https://www2.deloitte.com/es/es/pages/technology/articles/que-es-el-desarrollo-en-espiral.html
  • https://kryptonsolid.com/que-es-el-modelo-en-espiral-y-como-se-usa/
  • https://softwarerecopilation.wordpress.com/modelo-rup/
  • https://www.ecured.cu/Proceso_unificado_de_desarrollo
  • https://www.programaenlinea.net/proceso-unificado-rational-rup/