Está en la página 1de 7

Ingeniería de Requerimientos

LABORATORIO N° 01

Metodología de Desarrollo de Software

CODIGO DEL CURSO:

Alumno(s) Nota

Yaguno Huamaní Ángel Eduardo

Grupo B
Ciclo III
Fecha de entrega 01/09/2023

DISEÑO Y DESARROLLO DE SOFTWARE


PROGRAMA DE FORMACIÓN REGULAR
Nro. DD-106
Laboratorio de Ingeniería de Requerimientos
Página 1 de 2

I.- OBJETIVOS:

● Identificar las etapas de un ciclo de vida en cascada.


● Comprender las características de usar la metodología de ciclo de vida en cascada.
● Gestionar el desarrollo de un proyecto informático usando metodologías tradicionales.

II.- SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del
hardware, conexiones eléctricas o de red; así como la
ingestión de alimentos o bebidas.

III.- FUNDAMENTO TEÓRICO:

● Revisar las presentaciones vistas en Clase.

IV.- NORMAS EMPLEADAS:

● No aplica

V.- RECURSOS:

● En este laboratorio cada alumno trabajará con un equipo con Windows 7.

VI.- METODOLOGÍA PARA EL DESARROLLO DE LA TAREA:

● El desarrollo del laboratorio es Individual.

VII.- PROCEDIMIENTO:
Nota:
Las secciones en cursivas son demostrativas, pero sirven para que usted pueda instalar las herramientas de
desarrollo en un equipo externo.

1. CASO PRÁCTICO
Se desea desarrollar un sistema Web para una agencia de viajes, tanto para dentro del país como para el
extranjero. En ese sentido, se necesita lo siguiente:

● Indicar el procedimiento general a considerar para su desarrollo (no código ni tecnologías de desarrollo)

1. Requisitos y Análisis:
Comenzar por reunirse con los stakeholders de la agencia de viajes para comprender sus
necesidades y objetivos.
Realizar un análisis detallado de los procesos de negocio y los requisitos del sistema.
Identificar las características clave que el sistema debe tener, como la gestión de reservas,
búsqueda de destinos, gestión de pagos, etc.
2. Diseño del Sistema:

Diseñar la arquitectura general del sistema, incluyendo la estructura de la base de datos y la lógica
de la aplicación.
Nro. DD-106
Laboratorio de Ingeniería de Requerimientos
Página 2 de 2

Crear diagramas de flujo y prototipos de la interfaz de usuario para visualizar cómo funcionará el
sistema.
Definir los casos de uso y escenarios de usuario.
3. Desarrollo:
Codificar la aplicación siguiendo las mejores prácticas de desarrollo web.
Implementar la funcionalidad de búsqueda y reserva de viajes, procesamiento de pagos, gestión de
usuarios, y otras características requeridas.
4. Base de Datos:
Diseñar y desarrollar la base de datos para almacenar información sobre destinos, usuarios,
reservas, precios, etc.
Utiliza un modelo de datos que sea eficiente y que cumpla con las necesidades del sistema.
5. Pruebas:
Realizar pruebas exhaustivas para asegurarse de que el sistema funcione correctamente y que no
haya errores.
Realizar pruebas de rendimiento para garantizar que el sistema pueda manejar un alto volumen de
tráfico.
Solicita retroalimentación de los usuarios y realiza ajustes según sea necesario.
6. Implementación:
Despliega el sistema en un entorno de producción.
Configura la infraestructura necesaria, como servidores web y bases de datos.
Asegúrate de que el sistema esté disponible en línea para los usuarios.
7. Mantenimiento y Soporte:
Proporciona soporte continuo para solucionar problemas y realizar actualizaciones.
Realiza copias de seguridad periódicas de los datos y garantiza la seguridad de la información del
usuario.

● Investiguemos sobre el modo de trabajo de la metodología de desarrollo en Cascada. En base a esta


investigación, aplicar esta metodología al procedimiento definido en el punto anterior.
Metodología cascada.
1. Requisitos:
Empezar reuniéndose con los stakeholders para definir y documentar todos los requisitos del
sistema de manera detallada.
Establecer un acuerdo formal sobre los requisitos con los stakeholders antes de avanzar.
2. Diseño:
Diseñar la arquitectura del sistema, incluyendo la estructura de la base de datos, la interfaz de
usuario y la lógica de la aplicación.
Generar diagramas y documentación detallada para el diseño del sistema.
3. Implementación:
Con el diseño en mano, comienza a codificar el sistema web siguiendo las especificaciones del
diseño.
A medida que se completa cada módulo o componente, realiza pruebas unitarias para asegurarte
de que funcionen según lo previsto.
No avanzar a la siguiente fase hasta que toda la implementación esté terminada y probada.
Nro. DD-106
Laboratorio de Ingeniería de Requerimientos
Página 3 de 2

4. Verificación:
Llevar a cabo pruebas integrales para verificar que el sistema cumpla con los requisitos definidos.
Esto incluye pruebas de funcionalidad, pruebas de rendimiento y pruebas de seguridad.
Asegurarse de solucionar cualquier problema que surja durante las pruebas antes de proceder.
5. Mantenimiento:
Proporcionar soporte continuo para resolver problemas y realizar actualizaciones.
Realizar copias de seguridad y monitorear el sistema en producción.
Implementar cambios solicitados por los usuarios si es necesario, siguiendo un proceso de control
de cambios.

● Identificar e indicar las dificultades halladas, ventajas o desventajas, comparando el marco de trabajo
indicado por la metodología en Cascada versus tu propio procedimiento de desarrollo.
Procedimiento de Desarrollo Propuesto:
Dificultades:
Requisitos cambiantes: Si los requisitos no están completamente definidos al principio, pueden
surgir problemas de alcance y cambios frecuentes en el proyecto.
Mayor complejidad en la gestión del proyecto: La metodología propuesta puede requerir una gestión
más activa para mantener un equilibrio entre desarrollo y cambios constantes.
Mayor dificultad en la estimación de tiempos: La flexibilidad puede hacer que sea más difícil estimar
con precisión cuánto tiempo llevará completar el proyecto.
Ventajas:
Mayor flexibilidad: Permite a los equipos adaptarse a cambios en los requisitos y retroalimentación
de manera más eficiente.
Retroalimentación temprana: Los usuarios pueden ver y probar prototipos o versiones preliminares
del sistema antes de que esté completamente desarrollado, lo que permite correcciones tempranas.
Mayor adaptación a entornos dinámicos: Es especialmente adecuado para proyectos donde los
requisitos no son estáticos o donde los cambios son frecuentes.

Metodología en Cascada:
Dificultades:
Rigidez ante cambios: La metodología en cascada es inflexible cuando se trata de cambios en los
requisitos. Cualquier modificación a mitad del proyecto puede ser costosa y llevar a rehacer etapas
anteriores.
Feedback limitado: Los stakeholders y usuarios pueden no ver el producto hasta que esté casi
terminado, lo que limita la retroalimentación temprana y puede llevar a desviaciones importantes de
los objetivos iniciales.
Mayor riesgo de incumplimiento de plazos: Si surgen problemas en etapas avanzadas, puede ser
difícil cumplir con los plazos establecidos.
Ventajas:
Requisitos claros desde el principio: Cuando los requisitos están bien definidos al principio, la
metodología en cascada puede ser eficiente y efectiva.
Documentación completa: Cada etapa produce documentación detallada que es útil para futuros
mantenimientos y mejoras.
Estructura clara: El proceso es estructurado y fácil de gestionar cuando los requisitos son estables.
Nro. DD-106
Laboratorio de Ingeniería de Requerimientos
Página 4 de 2

2. INVESTIGACIÓN:
Investigar sobre otras metodologías tradicionales de desarrollo de software (no RUP). Indicar:
● Forma de trabajo
● Ventajas / Desventajas
● Un ejemplo de aplicación por cada metodología investigada (ideal que sea un ejemplo real)

Metodología DevOps:

Forma de trabajo:
DevOps es una metodología que busca integrar y automatizar el desarrollo de software (Dev) con
las operaciones de TI (Ops) para acelerar la entrega de software de alta calidad. Aquí hay algunos
puntos clave sobre cómo funciona:
Colaboración: Fomenta la colaboración cercana entre equipos de desarrollo y operaciones,
eliminando silos de información.
Automatización: Utiliza herramientas de automatización para desplegar, probar y entregar software
de forma continua.
Entrega Continua: Busca la entrega de pequeños cambios de forma continua, en lugar de
lanzamientos grandes y poco frecuentes.
Monitorización y Retroalimentación: Supervisa constantemente la aplicación en producción para
identificar problemas y mejorar el rendimiento.
Cultura de Mejora Continua: Promueve una cultura de aprendizaje y mejora constante.
Ventajas:
Entrega más rápida de software: DevOps permite lanzar nuevas características y correcciones de
errores más rápido, lo que satisface las demandas de los clientes.
Mayor calidad: La automatización de pruebas y despliegues reduce los errores humanos y mejora
la calidad del software.
Mayor colaboración: Fomenta la comunicación y colaboración entre equipos, lo que conduce a
soluciones más efectivas.
Mayor visibilidad: Proporciona una visión más clara del estado de los sistemas en producción.

Desventajas:
Cambio cultural: Implementar DevOps a menudo requiere un cambio cultural en la organización,
lo que puede ser desafiante.
Nro. DD-106
Laboratorio de Ingeniería de Requerimientos
Página 5 de 2

Complejidad inicial: Configurar la automatización y la integración continua puede ser un proceso


complejo y lleva tiempo.
Costo: Implementar DevOps requiere inversiones en herramientas y capacitación.
Ejemplos de aplicación real:
Netflix: Netflix utiliza DevOps para entregar contenido a sus millones de usuarios en todo el mundo.
Sus equipos de desarrollo y operaciones trabajan en estrecha colaboración para garantizar que la
plataforma esté disponible y funcione sin problemas. La automatización de la infraestructura y la
entrega continua de software les permiten desplegar nuevas características y correcciones de
errores de manera eficiente.

Metodología Scrum:

Forma de trabajo:
Scrum es un marco de trabajo ágil que se utiliza principalmente en el desarrollo de software, pero
también se ha aplicado en otras áreas. Aquí están los conceptos clave de cómo funciona Scrum:
Equipos autoorganizados: Se forman equipos multidisciplinarios y autoorganizados que trabajan
en ciclos llamados "sprints".
Roles definidos: Scrum define roles claros, como el Scrum Master (facilitador), el Product Owner
(responsable del producto) y el Equipo de Desarrollo.
Reuniones regulares: Se llevan a cabo reuniones regulares como la Daily Standup, Sprint
Planning, Sprint Review y Sprint Retrospective.
Backlog de producto y sprint: El trabajo se organiza en un Backlog de Producto, y durante cada
Sprint, se seleccionan elementos del Backlog para desarrollar.
Iteraciones y entregas: El trabajo se divide en iteraciones llamadas "sprints", generalmente de 2 a
4 semanas, y al final de cada sprint, se entrega un incremento potencialmente utilizable del
producto.
Ventajas:
Flexibilidad: Scrum permite cambios de prioridad y requisitos a lo largo del proyecto, lo que es
valioso en entornos de desarrollo de software cambiantes.
Nro. DD-106
Laboratorio de Ingeniería de Requerimientos
Página 6 de 2

Retroalimentación temprana: Los entregables frecuentes permiten obtener retroalimentación


temprana de los interesados y clientes.
Mayor visibilidad: Scrum proporciona una visión clara del progreso del proyecto a través de las
reuniones y artefactos.
Mejora continua: Las retrospectivas permiten a los equipos identificar áreas de mejora y ajustar su
enfoque.
Desventajas:
Dependencia del equipo: El éxito de Scrum depende en gran medida de la capacidad del equipo
para autoorganizarse y tomar decisiones.
No es adecuado para todos los proyectos: Scrum es más adecuado para proyectos donde los
requisitos pueden cambiar y evolucionar con el tiempo.
Requiere tiempo y compromiso: La implementación de Scrum puede llevar tiempo y requerir un
compromiso significativo de la organización.
Ejemplos de aplicación real:
Spotify: Spotify utiliza Scrum en su desarrollo de software. Sus equipos Scrum trabajan en
proyectos específicos relacionados con la plataforma de música en streaming. Utilizan sprints para
desarrollar nuevas características y mejoras en el producto de manera iterativa.

OBSERVACIONES Y CONCLUSIONES

● La metodología en cascada puede ser más eficaz en proyectos con requisitos estables, mientras
que la metodología propuesta es más adaptable a entornos cambiantes.
● La metodología en cascada podría ser más adecuada para aspectos críticos del sistema web,
como la gestión de datos de clientes y la seguridad de la información.
● La retroalimentación temprana y continua con los usuarios es esencial para garantizar que el
sistema web cumpla con sus expectativas cambiantes y ofrezca opciones de viaje relevantes.
● En un sistema web de agencia de viajes, la documentación completa es importante para la gestión
de reservas, la seguridad de los datos del cliente y la trazabilidad de las transacciones.
● La flexibilidad del procedimiento general es beneficiosa para un sistema web de agencia de viajes,
ya que los requisitos y ofertas de viaje pueden cambiar con frecuencia debido a la temporada, la
disponibilidad y las preferencias del cliente.

También podría gustarte