Está en la página 1de 11

UNIVERSIDAD AUTONOMA

JUAN MISAEL SARACHO


CARRERA DE INGENIERÍA DE SISTEMAS

METODOLOGIAS DE DESARROLLO DE SOFTWARE

Universitario (a): Guarachi Rocabado Ivana Antonela


Docente: Gareca Burgos Norma
Materia: Ingeniería de Software I
Fecha: Lunes 11 de Febrero de 2024
1 MODELOS DE SOFTWARE
Los modelos de software son representaciones abstractas o abstracciones que ayudan a organizar y
estructurar el proceso de desarrollo de software. Cada modelo tiene sus propias características,
ventajas y desventajas. Aquí hay algunos modelos comunes:

1.1 MODELO EN CASCADA (WATERFALL):

En el modelo en cascada, se pone un fuerte énfasis en la documentación detallada en cada fase del
proceso. Esto incluye la documentación de requisitos, diseño, implementación, pruebas y
mantenimiento. La documentación exhaustiva ayuda a garantizar una comprensión clara de cada
etapa del desarrollo y facilita la gestión de cambios y el mantenimiento a largo plazo.

Características:
 Es uno de los modelos más antiguos y lineales.
 Las fases, como requisitos, diseño, implementación, pruebas y mantenimiento, se realizan
secuencialmente, una después de la otra.
 Cada fase debe completarse antes de pasar a la siguiente.
 Es adecuado para proyectos donde los requisitos son claros y estables.

Etapas:
1. Requisitos: Captura y documentación de los requisitos del sistema.
2. Diseño: Diseño de la arquitectura del sistema y sus componentes.
3. Implementación: Codificación y desarrollo del software basado en los requisitos y diseño.
4. Pruebas: Verificación y validación del software para garantizar que cumple con los requisitos.
5. Mantenimiento: Corrección de errores, adaptaciones y mejoras continuas después de la entrega
del software.
1.2 MODELO EN ESPIRAL:

La evaluación de riesgos es un componente crucial del modelo en espiral. A lo largo de cada ciclo,
se realizan evaluaciones de riesgos para identificar y mitigar posibles problemas técnicos, de
planificación o de recursos. Esta evaluación continua ayuda a minimizar los riesgos y a tomar
decisiones informadas sobre la dirección del proyecto.

Características:
 Combina elementos del modelo en cascada con prototipado.
 Divide el desarrollo en ciclos, llamados espirales, que representan las diferentes etapas del
proceso.
 Cada espiral se compone de cuatro actividades: determinación de objetivos, evaluación de
riesgos, desarrollo y planificación.
 Adecuado para proyectos grandes y complejos donde el riesgo y la incertidumbre son altos.

Etapas:
1. Determinación de objetivos: Identificación de objetivos, alternativas y restricciones.
2. Evaluación de riesgos: Análisis y evaluación de riesgos asociados con cada alternativa.
3. Desarrollo y validación: Desarrollo, verificación y validación de la solución.
4. Planificación: Planificación de la siguiente iteración de la espiral basada en la
retroalimentación obtenida.
1.3 MODELO DE DESARROLLO ITERATIVO E INCREMENTAL:

En este modelo, se busca obtener retroalimentación del cliente lo antes posible. Cada iteración del
desarrollo produce una versión parcial del producto que puede ser revisada por el cliente. Esta
retroalimentación temprana permite ajustar los requisitos y la funcionalidad del producto de manera
oportuna, lo que lleva a un producto final que mejor satisface las necesidades del cliente.

Características:
 Divide el desarrollo en iteraciones cortas y manejables.
 Cada iteración incluye las actividades de análisis, diseño, implementación y pruebas.
 Se entregan versiones parciales del producto en cada iteración.
 Permite una mayor flexibilidad y adaptación a cambios en los requisitos.

Etapas:
1. Inicio de iteración: Seleccionar las características para implementar en la iteración actual.
2. Desarrollo de características: Diseñar, desarrollar y probar las características seleccionadas.
3. Revisión de iteración: Revisar el progreso y la funcionalidad con el cliente o el equipo de
control.
4. Planificación de la siguiente iteración: Planificar las características para la próxima iteración.
1.4 MODELO DE DESARROLLO EN ESPIRAL ITERATIVO
(ITERATIVE SPIRAL DEVELOPMENT):
El prototipado rápido y frecuente es una práctica común en el modelo de desarrollo en espiral
iterativo. Se desarrollan prototipos de las características clave del sistema en cada iteración para
validar la viabilidad técnica y funcional del producto. Esto permite una mayor comprensión de los
requisitos del cliente y una mayor capacidad de respuesta a los cambios.

Características:
 Combina la naturaleza iterativa del modelo de desarrollo iterativo con la estructura en espiral.
 Se enfoca en identificar y mitigar los riesgos tempranamente.
 Las iteraciones progresan en espiral, refinando gradualmente el producto final.

Etapas:
1. Determinación de objetivos: Identificación de los objetivos específicos para la iteración.
2. Evaluación y mitigación de riesgos: Análisis de riesgos, desarrollo de estrategias de
mitigación.
3. Desarrollo e implementación: Desarrollo del software y su implementación.
4. Revisión y planificación: Evaluación del progreso, revisión de los riesgos y planificación de la
siguiente iteración.

1.5 DESARROLLO ÁGIL:

La colaboración intensiva del equipo es fundamental en las metodologías ágiles. Los equipos
autoorganizados trabajan de cerca con los clientes y entre ellos para desarrollar iterativamente el
producto. La colaboración promueve la comunicación efectiva, la resolución rápida de problemas y
la entrega de un producto de alta calidad que cumple con las expectativas del cliente.

Características:
 No es un modelo específico, sino un conjunto de principios y valores.
 Se centra en la entrega rápida y continua de software funcional.
 Se valora la colaboración con el cliente, la respuesta rápida a los cambios y la autoorganización
de los equipos.
 Scrum, Kanban y Extreme Programming (XP) son algunas de las metodologías ágiles
populares.
 Las etapas dependen de la metodología que se va a usar

2 METODOLOGÍAS DE DESARROLLO DE SOFTWARE


Las metodologías de desarrollo de software son enfoques específicos para planificar, estructurar y
controlar el proceso de desarrollo de software. Aquí están algunas de las más conocidas:

2.1 SCRUM:

Las reuniones diarias de seguimiento son una práctica fundamental en Scrum. Durante estas
reuniones cortas, cada miembro del equipo comparte brevemente lo que ha hecho desde la última
reunión, lo que planea hacer a continuación y cualquier obstáculo que esté enfrentando. Estas
reuniones fomentan la transparencia, la colaboración y la resolución rápida de problemas.

Características:
 Se enfoca en equipos pequeños y autoorganizados que trabajan en iteraciones cortas llamadas
sprints.
 Requiere roles definidos como el Product Owner, Scrum Master y el Equipo de Desarrollo.
 Prioriza la transparencia, la inspección y la adaptación continua.

Etapas:
1. Planificación del sprint: Definición de objetivos y selección de tareas para el sprint.
2. Desarrollo del sprint: Implementación de las tareas seleccionadas durante el sprint.
3. Reuniones diarias de seguimiento: Actualización del equipo sobre el progreso y los
obstáculos.
4. Revisión del sprint: Demostración del trabajo completado al cliente y obtención de
retroalimentación.
5. Retrospectiva del sprint: Reflexión sobre el sprint y planificación de mejoras para el siguiente.

2.2 KANBAN:

La limitación del trabajo en progreso es una característica clave de Kanban. Establecer límites
claros en la cantidad de trabajo que puede estar en progreso en cada etapa del flujo de trabajo ayuda
a evitar la sobrecarga del equipo y a mantener un flujo de trabajo constante y eficiente. Esta práctica
fomenta la entrega continua y la maximización del valor del producto.

Características:
 Se basa en la visualización del flujo de trabajo mediante un tablero Kanban.
 No prescribe roles ni ritmos fijos de trabajo.
 Se centra en limitar el trabajo en progreso y optimizar el flujo de trabajo.

Etapas:
1. Visualización del flujo de trabajo: Creación de un tablero Kanban que represente el flujo de
trabajo.
2. Limitación del trabajo en progreso (WIP Limit): Establecimiento de límites en el número de
tareas que pueden estar en progreso.
3. Gestión del flujo de trabajo: Movimiento de tareas a través del tablero Kanban, centrado en
equilibrar la demanda con la capacidad.
4. Revisión continua: Monitorización del rendimiento del proceso y ajuste según sea necesario.

2.3 EXTREME PROGRAMMING (XP):

Las pruebas unitarias automatizadas son una parte integral de Extreme Programming. Los
desarrolladores escriben pruebas automatizadas para cada componente de software antes de escribir
el código real. Estas pruebas garantizan que cada parte del sistema funcione según lo previsto y
facilitan la detección temprana de errores, lo que conduce a un código más robusto y de alta calidad.

Características:
 Se enfoca en la calidad del software y la satisfacción del cliente.
 Promueve prácticas como la programación en parejas, la integración continua, las pruebas
unitarias y la refactorización continua.
 Se centra en la retroalimentación rápida y la adaptación a los cambios.

Etapas:
1. Planificación del juego: Selección de las historias de usuario para el próximo ciclo de
desarrollo.
2. Programación en parejas (Pair Programming): Dos programadores trabajan juntos en el
mismo código.
3. Integración continua: Integración frecuente del código y ejecución de pruebas automatizadas.
4. Refactorización continua: Mejora del diseño y la estructura del código sin cambiar su
comportamiento.

2.4 DESARROLLO DIRIGIDO POR PRUEBAS (TEST-DRIVEN


DEVELOPMENT, TDD):

La refactorización continua es una práctica central en el desarrollo dirigido por pruebas. Después de
que se escriben las pruebas y se implementa el código para pasar las pruebas, los desarrolladores
continúan mejorando la estructura y el diseño del código sin cambiar su funcionalidad. Esto ayuda a
mantener el código limpio, modular y fácil de mantener a lo largo del tiempo.

Características:
 Los tests son escritos antes del código.
 El objetivo es garantizar que el código satisfaga los requisitos y se mantenga refactorizando y
extendiendo el código existente.
Etapas:
1. Escribir una prueba: Escribir una prueba automatizada que falle debido a que aún no existe
código.
2. Escribir el código mínimo necesario: Implementar el código mínimo necesario para que la
prueba pase.
3. Refactorización: Mejorar la estructura del código sin cambiar su comportamiento,
manteniendo todas las pruebas pasando.

2.5 MODELO DE DESARROLLO EN V:

La verificación y validación integradas son esenciales en el modelo de desarrollo en V. A lo largo


de todo el proceso de desarrollo, se realizan actividades de verificación para asegurarse de que el
producto cumple con los requisitos establecidos. Al mismo tiempo, se llevan a cabo actividades de
validación para garantizar que el producto final satisfaga las necesidades del cliente y sea útil en su
contexto operativo. La integración de estas actividades garantiza la calidad y la adecuación del
producto.

Características:
 Se correlaciona directamente con las fases de desarrollo y prueba.
 Las fases de validación y verificación están sincronizadas.
 Es útil para proyectos donde los requisitos son estables y bien comprendidos desde el principio.
Etapas:
1. Análisis de requisitos: Definición y documentación de los requisitos del sistema.
2. Diseño del sistema: Diseño arquitectónico y detallado del sistema basado en los requisitos.
3. Desarrollo e implementación: Codificación y desarrollo del sistema basado en el diseño.
4. Pruebas de sistema y aceptación: Verificación y validación del sistema para asegurar que
cumple con los requisitos.

También podría gustarte