Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Mapa comparativo sobre las metodologías clásicas, Esquemas y mapas conceptuales de Introducción a Ingeniería Software

En este documento se realizó un cuadro comparativo donde observamos algunas metodologías clásicas y sus diferencias entre cada una, se realizó en el año 2024 para la materia de Fundamentos de Ingeniería de software

Tipo: Esquemas y mapas conceptuales

2023/2024

Subido el 08/11/2024

yahir-jibsam-alonso-cruz
yahir-jibsam-alonso-cruz 🇲🇽

1 documento

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Metodologías Cascada Espiral Incremental Prototipo
Definición
Es denominado así por la posición de las fases en el desarrollo de esta, que parecen caer en
cascada “por gravedad” hacia las siguientes fases. Es el enfoque metodológico que ordena
rigurosamente las etapas del proceso para el desarrollo de software.
El modelo espiral, desarrollado durante la década de los años 80, es una
extensión del modelo de cascada. A diferencia del modelo de cascada, que
es dirigido por documentos, el modelo espiral se basa en una estrategia
para reducir el riesgo del proyecto en áreas de incertidumbre, como tener
Permite construir el proyecto en etapas incrementales en donde cada
etapa agrega funcionalidad. Estas etapas, consisten en requerimientos,
diseño, codificación, pruebas y entrega. Permite entregar al cliente un
producto más rápido en comparación del modelo en cascada.
Un prototipo es una versión preliminar,
intencionalmente incompleta o reducida de un
sistema. El uso de prototipos es una estrategia
que puede aplicarse en casi todas las actividades
del proceso de software. El propósito de los
prototipos es obtener de manera rápida la
información necesaria como ayuda en la toma de
decisiones.
Etapas
Ingeniería y Análisis del Sistema
: Se identifican los requisitos de todos los elementos del
sistema, asignando aquellos que correspondan al software.
Análisis de Requisitos del Software
: Se recopilan y detallan los requisitos específicos del
software, enfocándose en su ámbito, funciones, rendimiento e interfaces.
Diseño
: Se traduce los requisitos en una representación detallada del software, abordando
la estructura de datos, arquitectura, procedimientos e interfaces.
Codificación
: Se convierte el diseño en código fuente legible por la máquina, basado en el
diseño detallado.
Prueba
: Se verifica la lógica interna y las funciones externas del software para asegurar que
los resultados sean los esperados.
Mantenimiento
: Se realizan cambios al software después de su entrega para corregir
errores, adaptarlo a nuevos entornos o añadir funciones.
Se definen cuatro actividades:
Planificación
: en la que se recolectan los requisitos iniciales o nuevos
requisitos a añadir en esta iteración.
Análisis de
riesgo
: basándonos en los requisitos decidimos si somos
capaces o no de desarrollar el software y se toma la decisión de
continuar o no continuar.
Ingeniería
: en el que se desarrolla un prototipo basado en los
requisitos obtenidos en la fase de planificación.
Evaluación del
cliente
: el cliente comenta el prototipo. Si está
conforme con él se acaba el proceso, si no se añaden los nuevos
requisitos en la siguiente iteración.
Características Secuencialidad estricta: Cada fase debe completarse antes de iniciar la siguiente.
Revisiones al final de cada fase: Se realizan puntos de control para asegurar el avance
correcto.
Documentación y requisitos definidos: Los requisitos deben estar completamente
documentados y ser estables durante todo el proyecto.
Resultados tardíos: Los resultados solo se ven al final, lo que puede dificultar la detección
temprana de errores.
Flexibilidad limitada: Originalmente, no permitía regresar a fases anteriores, aunque esto
fue revisado.
Riesgo de altos costos por cambios: Cambiar algo en fases avanzadas puede ser costoso y
llevar mucho tiempo.
Extensión del modelo de cascada: Es una evolución del modelo de
cascada, pero con un enfoque en la gestión del riesgo en lugar de estar
dirigido por documentos.
Enfoque en la reducción de riesgos: Cada ciclo del modelo espiral se
centra en identificar y mitigar los riesgos asociados con áreas de
incertidumbre, como requisitos incompletos o inestables.
Ciclos de trabajo iterativos: El desarrollo se organiza en ciclos, donde cada
ciclo comienza con la identificación de objetivos, soluciones alternativas, y
restricciones, seguido de una evaluación para reducir riesgos.
Revisiones al final de cada ciclo: Cada ciclo concluye con una revisión que
evalúa los logros alcanzados y planifica las actividades del siguiente ciclo.
Uso de prototipos: Similar al modelo evolutivo, el modelo espiral puede
incorporar prototipos como parte de su estrategia para gestionar riesgos.
Involucramiento del equipo: Todo el personal relevante participa en
revisiones para evaluar y planificar las actividades, asegurando un
compromiso colectivo con las siguientes etapas.
Desarrollo incremental: El producto se desarrolla de manera incremental,
con prototipos sucesivos que mejoran con cada ciclo.
Modelo actual y relevante: Con algunas variantes, el modelo espiral es
considerado uno de los modelos de proceso más importantes en la
actualidad.
Desarrollo en Incrementos: El modelo incremental se basa en el
desarrollo inicial de la arquitectura completa del sistema, seguido de
incrementos o versiones parciales que añaden o mejoran funcionalidades.
Ciclo de vida independiente para cada incremento: Cada incremento
sigue su propio ciclo de vida, generalmente basado en el modelo de
cascada, y puede desarrollarse de manera serial o paralela.
Integración continua: A medida que se completa cada incremento, se
verifica e integra con las versiones anteriores del sistema, asegurando que
el sistema evoluciona de manera coherente.
Evaluación constante: Durante cada incremento, el sistema se evalúa con
respecto a las versiones futuras, lo que ayuda a planificar y ajustar el
desarrollo conforme avanza.
División en procesos y subprocesos: Las actividades de desarrollo se
dividen en procesos más pequeños, facilitando la gestión y dando lugar a
la idea de una "fábrica de software".
Evita el enfoque de "big bang": El desarrollo incremental evita la
necesidad de un gran esfuerzo único al final del proyecto, permitiendo
resultados tempranos y continuos.
Facilidad en la gestión y pruebas: El modelo facilita la gestión de
proyectos y la realización de pruebas al trabajar con incrementos más
pequeños y manejables.
Adaptabilidad a cambios: Es más probable que el modelo incremental se
adapte a cambios en los requisitos del usuario a lo largo del tiempo, en
comparación con un enfoque que intenta definir todo desde el principio.
Versión preliminar: Un prototipo es una versión
inicial y parcial de un sistema de información,
utilizada para demostración o evaluación.
Prototipo de requerimientos: Se crea
rápidamente para entender y definir mejor los
requisitos del sistema, especialmente cuando
estos son difíciles de especificar.
Interacción con usuarios: Los usuarios, clientes
o sus representantes experimentan con el
prototipo y proporcionan retroalimentación, la
cual se utiliza para ajustar y documentar los
requisitos del sistema real.
Facilita la retroalimentación: Los usuarios
encuentran más fácil dar retroalimentación
mediante la interacción con un prototipo
tangible en lugar de revisar especificaciones
escritas, que pueden ser ambiguas o extensas.
Uso en fases tempranas: Puede utilizarse
durante o antes de la fase de definición de
requisitos, y también como precursor de
modelos de desarrollo incremental o evolutivo.
Requerimientos pobres: A diferencia del
modelo evolutivo, el prototipo se construye con
los requisitos menos entendidos, lo que
permite aprender y ajustar antes de proceder
con el desarrollo completo.
Menos formalidad: Es un método menos
formal de desarrollo, enfocado en la
comprensión y clarificación de especificaciones.
Cuadro comparativo sobre las metodologías clásicas
lunes, 2 de septiembre de 2024 06:17 a. m.
Fundamentos de Ingeniería de Software página 1
pf2

Vista previa parcial del texto

¡Descarga Mapa comparativo sobre las metodologías clásicas y más Esquemas y mapas conceptuales en PDF de Introducción a Ingeniería Software solo en Docsity!

Metodologías Cascada Espiral Incremental Prototipo Definición Es denominado así por la posición de las fases en el desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las siguientes fases. Es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software.

El modelo espiral, desarrollado durante la década de los años 80, es una extensión del modelo de cascada. A diferencia del modelo de cascada, que es dirigido por documentos, el modelo espiral se basa en una estrategia para reducir el riesgo del proyecto en áreas de incertidumbre, como tener requerimientos iniciales incompletos e inestables.

Permite construir el proyecto en etapas incrementales en donde cada etapa agrega funcionalidad. Estas etapas, consisten en requerimientos, diseño, codificación, pruebas y entrega. Permite entregar al cliente un producto más rápido en comparación del modelo en cascada.

Un prototipo es una versión preliminar, intencionalmente incompleta o reducida de un sistema. El uso de prototipos es una estrategia que puede aplicarse en casi todas las actividades del proceso de software. El propósito de los prototipos es obtener de manera rápida la información necesaria como ayuda en la toma de decisiones.

Etapas Ingeniería y Análisis del Sistema: Se identifican los requisitos de todos los elementos del sistema, asignando aquellos que correspondan al software.

Análisis de Requisitos del Software: Se recopilan y detallan los requisitos específicos del software, enfocándose en su ámbito, funciones, rendimiento e interfaces.

Diseño: Se traduce los requisitos en una representación detallada del software, abordando la estructura de datos, arquitectura, procedimientos e interfaces.

Codificación: Se convierte el diseño en código fuente legible por la máquina, basado en el diseño detallado.

Prueba: Se verifica la lógica interna y las funciones externas del software para asegurar que los resultados sean los esperados.

Mantenimiento: Se realizan cambios al software después de su entrega para corregir errores, adaptarlo a nuevos entornos o añadir funciones.

Se definen cuatro actividades:

Planificación: en la que se recolectan los requisitos iniciales o nuevos requisitos a añadir en esta iteración.

Análisis de riesgo: basándonos en los requisitos decidimos si somos capaces o no de desarrollar el software y se toma la decisión de continuar o no continuar.

Ingeniería: en el que se desarrolla un prototipo basado en los requisitos obtenidos en la fase de planificación.

Evaluación del cliente: el cliente comenta el prototipo. Si está conforme con él se acaba el proceso, si no se añaden los nuevos requisitos en la siguiente iteración.

Características • Secuencialidad estricta: Cada fase debe completarse antes de iniciar la siguiente. Revisiones al final de cada fase: Se realizan puntos de control para asegurar el avance correcto.

Documentación y requisitos definidos: Los requisitos deben estar completamente documentados y ser estables durante todo el proyecto.

Resultados tardíos: Los resultados solo se ven al final, lo que puede dificultar la detección temprana de errores.

Flexibilidad limitada: Originalmente, no permitía regresar a fases anteriores, aunque esto fue revisado.

Riesgo de altos costos por cambios: Cambiar algo en fases avanzadas puede ser costoso y llevar mucho tiempo.

Extensión del modelo de cascada: Es una evolución del modelo de cascada, pero con un enfoque en la gestión del riesgo en lugar de estar dirigido por documentos.

Enfoque en la reducción de riesgos: Cada ciclo del modelo espiral se centra en identificar y mitigar los riesgos asociados con áreas de incertidumbre, como requisitos incompletos o inestables.

Ciclos de trabajo iterativos: El desarrollo se organiza en ciclos, donde cada ciclo comienza con la identificación de objetivos, soluciones alternativas, y restricciones, seguido de una evaluación para reducir riesgos.

Revisiones al final de cada ciclo: Cada ciclo concluye con una revisión que evalúa los logros alcanzados y planifica las actividades del siguiente ciclo.

Uso de prototipos: Similar al modelo evolutivo, el modelo espiral puede incorporar prototipos como parte de su estrategia para gestionar riesgos.

Involucramiento del equipo: Todo el personal relevante participa en revisiones para evaluar y planificar las actividades, asegurando un compromiso colectivo con las siguientes etapas.

Desarrollo incremental: El producto se desarrolla de manera incremental, con prototipos sucesivos que mejoran con cada ciclo.

Modelo actual y relevante: Con algunas variantes, el modelo espiral es considerado uno de los modelos de proceso más importantes en la actualidad.

Desarrollo en Incrementos: El modelo incremental se basa en el desarrollo inicial de la arquitectura completa del sistema, seguido de incrementos o versiones parciales que añaden o mejoran funcionalidades.

Ciclo de vida independiente para cada incremento: Cada incremento sigue su propio ciclo de vida, generalmente basado en el modelo de cascada, y puede desarrollarse de manera serial o paralela.

Integración continua: A medida que se completa cada incremento, se verifica e integra con las versiones anteriores del sistema, asegurando que el sistema evoluciona de manera coherente.

Evaluación constante: Durante cada incremento, el sistema se evalúa con respecto a las versiones futuras, lo que ayuda a planificar y ajustar el desarrollo conforme avanza.

División en procesos y subprocesos: Las actividades de desarrollo se dividen en procesos más pequeños, facilitando la gestión y dando lugar a la idea de una "fábrica de software".

Evita el enfoque de "big bang": El desarrollo incremental evita la necesidad de un gran esfuerzo único al final del proyecto, permitiendo resultados tempranos y continuos.

Facilidad en la gestión y pruebas: El modelo facilita la gestión de proyectos y la realización de pruebas al trabajar con incrementos más pequeños y manejables.

Adaptabilidad a cambios: Es más probable que el modelo incremental se adapte a cambios en los requisitos del usuario a lo largo del tiempo, en comparación con un enfoque que intenta definir todo desde el principio.

Versión preliminar: Un prototipo es una versión inicial y parcial de un sistema de información, utilizada para demostración o evaluación.

Prototipo de requerimientos: Se crea rápidamente para entender y definir mejor los requisitos del sistema, especialmente cuando estos son difíciles de especificar.

Interacción con usuarios: Los usuarios, clientes o sus representantes experimentan con el prototipo y proporcionan retroalimentación, la cual se utiliza para ajustar y documentar los requisitos del sistema real.

Facilita la retroalimentación: Los usuarios encuentran más fácil dar retroalimentación mediante la interacción con un prototipo tangible en lugar de revisar especificaciones escritas, que pueden ser ambiguas o extensas.

Uso en fases tempranas: Puede utilizarse durante o antes de la fase de definición de requisitos, y también como precursor de modelos de desarrollo incremental o evolutivo.

Requerimientos pobres: A diferencia del modelo evolutivo, el prototipo se construye con los requisitos menos entendidos, lo que permite aprender y ajustar antes de proceder con el desarrollo completo.

Menos formalidad: Es un método menos formal de desarrollo, enfocado en la comprensión y clarificación de especificaciones.

Cuadro comparativo sobre las metodologías clásicas

lunes, 2 de septiembre de 2024 06:17 a. m.

Fundamentos de Ingeniería de Software página 1

comprensión y clarificación de especificaciones. Prototipo descartable o evolutivo: El prototipo puede ser desechado una vez que se ha aprendido lo necesario, o puede integrarse en el producto final si se considera adecuado.

Desventajas • Los proyectos reales raramente siguen el flujo secuencial que propone el modelo Normalmente, es difícil para el cliente establecer explícitamente al principio todos los requisitos.

El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estará disponible una versión operativa del programa.

Complejidad y Coste: El modelo espiral es más complejo y puede ser costoso debido a la necesidad de realizar múltiples ciclos y evaluaciones de riesgos. Esto puede llevar a un aumento en el tiempo y los recursos necesarios para completar un proyecto.

Dependencia de la Gestión del Riesgo: El éxito del modelo depende en gran medida de la capacidad de identificar y mitigar riesgos correctamente. Si los riesgos no se gestionan adecuadamente, el modelo puede no ser efectivo.

Dificultad en la Planificación: Debido a la naturaleza iterativa y flexible del modelo, puede ser difícil establecer un cronograma y presupuesto precisos al inicio del proyecto. Esto puede generar incertidumbre en la planificación y gestión del proyecto.

No adecuado para proyectos pequeños: Para proyectos de menor escala o con requisitos bien definidos desde el inicio, el modelo espiral puede ser innecesariamente complejo y excesivo.

Requiere experiencia y juicio especializado: El modelo espiral exige un equipo con experiencia en gestión de riesgos y en la evaluación de alternativas, lo que puede ser un desafío para organizaciones con menos recursos o experiencia en estas áreas.

Posible dilatación del proyecto: Al enfocar cada ciclo en la mitigación de riesgos, el modelo puede alargar el tiempo total de desarrollo, especialmente si los riesgos son numerosos o difíciles de manejar.

  • Requiere de mucha planeación, tanto administrativa como técnica
  • Requiere de metas claras para conocer el estado del proyecto. Es un proceso de desarrollo de software, creado en respuesta a las debilidades del modelo tradicional de cascada.

No se conoce cuando se tendrá un producto aceptable.

No se sabe cuántas iteraciones serán necesarias.

Da una falsa ilusión al usuario sobre la velocidad del desarrollo.

Se puede volver el producto aún y cuando no esté con los estándares.

Fundamentos de Ingeniería de Software página 2