Está en la página 1de 18

Modelos Ágiles:

● XP - Xtreme Programming

Imagen 1. Modelo de Programación Extrema (XP).

El modelo de Xtreme Programming o Programación Extrema como se conoce en español, se


caracteriza por ser un modelo ágil de desarrollo en el cual varios grupos de desarrolladores se
reúnen en un espacio de trabajo teniendo la organización de unidad en parejas, de esa manera
la codificación se puede realizar de manera más específica y complementaria entre 2 personas,
de la misma manera estos equipos de trabajo tienen que trabajar en módulos pequeños del
mismo software para que el desarrollo sea más rápido y mejor llevado a lo largo del ciclo
general. Al finalizar una porción de desarrollo, realizar pruebas y demás se realiza siempre una
integración entre todas las partes hechas para poder repetir de nuevo el ciclo de desarrollo ya
sea para el mejoramiento progresivo, la conclusión o la reparación de aspectos vistos en el
anterior ciclo.

● Modelo de Desarrollo Rápido de Aplicaciones (RAD)


Imagen 2. Modelo de Desarrollo Rápido de Aplicaciones o RAD.

Es una alternativa a otro modelo de desarrollo conocido como cascada, la diferencia radica en
darle menos prioridad a la planificación general y darle más prioridad al desarrollo mismo
dividiendo este en módulos para la solución de las funcionalidades a través de grupos que de
forma incremental van realizando el desarrollo del sistema y después se integran todas las
partes para poder tener la solución final. Se utiliza el desarrollo de varios prototipos
dependiendo de los requerimientos que existan en el momento y la flexibilidad de cambiar
cosas de ser necesario.

● Crystal
Imagen 3. Especificación del cambio del modelo Crystal según la cantidad de personas en
los grupos de desarrollo.

Crystal es más bien una familia de metodologías que tienen en cuenta el desarrollo de software
según la metodología que mejor se adapte a las características del proyecto, entre el número de
integrantes y el número de recursos que se tiene.
Se tienen cuatro niveles de acuerdo a la complejidad y criticidad del proyecto:
❏ Vida: impacto para con la persona o demás cosas.
❏ Dinero esencial: perdida de dinero por mal funcionamiento que afecta a la organización.
❏ Dinero discrecional: perdida de dinero por malfuncionamiento que no afecta a la
organización.
❏ Confort: perdida de dinero por malfuncionamiento debido a la incomodidad de los
usuarios en general.

Crystal tiene 3 metodologías principales:


❏ Crystal Clear: aplicada a proyectos no críticos con nivel de dinero discrecional. Un
grupo reducido de gente entre 6 personas.
❏ Crystal Orange: aplicada para proyectos con un número mayor de personas de entre 40.
❏ Crystal Orange Web: es una variante de la anterior que está dirigida específicamente a
proyectos web.

● Scrum
Imagen 4. Modelo Scrum general.

La metodología Scrum desarrolla el software a través de iteraciones e incrementos progresivos,


está relacionada con otra metodología ágil que es XP.
Las actividades son:
❏ Reunión de planificación del Sprint.
❏ Scrum diario.
❏ Revisiones del Sprint.
❏ Retrospectiva del Sprint.

Las iteraciones que son mejor conocidas como “sprints”, toman entre 2 a 4 semanas, son los
ciclos de desarrollo que inician con la planificación para determinar las características que se
necesitan, luego el propio desarrollo que finaliza con una parte del producto.

Se realizan reuniones diarias para analizar el progreso y las situaciones adversas que se puedan
presentar. Por el carácter de agilidad estas reuniones son cortas, entre 15 minutos, donde se
presentan los temas necesarios y se determinan los logros, lo que falta y lo que se debe de
hacer.

El propio modelo de desarrollo toma características de otros modelos como lo es XP


principalmente, se realiza la división según la capacidad, experiencia y habilidades de los
miembros del equipo para realizar el desarrollo teniendo muy en cuenta los roles de cada uno.

Todo lo producido en cada iteración o Sprint se conoce como los artefactos, que son los
materiales útiles, desde el propio código, porciones ejecutables de desarrollo, modelos,
diagramas,informes, etc.
● Desarrollo dirigido por Características
Imagen 5. Proceso del desarrollo dirigido por características.

Este modelo combina la gestión iterativa con prácticas de desarrollo de software. De manera
incremental se dan las características del producto en cada uno de los ciclos que se compone
de 2 dos etapas: el descubrimiento de la lista de características que serán implementadas y en
la misma implementación de estas característica para el producto; la duración de los ciclos
oscila comúnmente entre 1 a 3 semanas.

● Desarrollo de Software Lean

Imagen 6. Ciclo del desarrollo de Software de Lean.

Otro modelo que es similar a otras metodologías ágiles en lo que respecta al desarrollo de
software por ciclos. Se basa en 7 principios:
❏ Eliminar desperdicios.
❏ Amplificar aprendizaje.
❏ Tomar decisiones tardías.
❏ Entregar lo antes posible.
❏ Potenciar el equipo.
❏ Crear la integridad.
❏ Visualizar todo el conjunto.

Identificándose de cierta forma como un modelo idealista, el desarrollo de software de lean


tiene en cuenta siempre el intentar hacer las cosas, lo mejor posible, por aprendizaje, por
disponibilidad y por convicción, ver de manera íntegra todo el proyecto y tomar decisiones con
la información necesaria en el tiempo necesario y justo.

● Kanban

Imagen 7. Tableros utilizados en la metodología de Kanban.

Es una metodología enfocada en la gestión del cambio y del esfuerzo así como uso de recursos
que se aplican en una determinada fase o porción del proyecto y por lo mismo se puede usar
con otras metodologías ágiles. Sirve más para gestionar las actividades que se realizan en cada
porción, y en el caso de desarrollo de software en cada fase, la regulación de los recursos, la
regulación de la fuerza laboral, el enfoque y la prioridad misma se visualizan para tomar
mejores decisiones según cómo avance el proyecto con el tiempo.

Modelos Predictivos:
● Cascada
Imagen 8. Modelo en Cascada.

Es uno de los primeros modelos presentados para organizar el ciclo de vida de desarrollo de
software, es de carácter secuencial lineal y es el que tiene las fases principales que siempre se
toman en cuenta:
❏ Toma de Requerimientos, Analisis.
❏ Diseno del Software.
❏ Codificación, la misma implementación de la funcionalidad.
❏ Pruebas realizadas para el aseguramiento de la calidad.
❏ El mantenimiento siempre presente en todo software después de su lanzamiento y uso
para con el cliente/usuario.

● Modelo V
Imagen 9. Modelo en V.

Este modelo es una extensión del modelo en cascada con la diferenciación de que la secuencia
tiene más énfasis en las pruebas que se realizan después del ciclo normal de desarrollo. Con la
documentación y uso de materiales de la etapa anterior se continúa el desarrollo de manera más
fácil.

Modelos Iterativas:
● Prototipado

Imagen 10. El Modelo de prototipado.

Este modelo tiene una dinámica diferente y su enfoque está principalmente puesto en el
desarrollo de prototipos para mostrar la funcionalidad, evaluar estas porciones de código
terminadas y mejorar de manera progresiva el software. Su carácter de continuo desarrollo
facilita mucho la comunicación entre el equipo de desarrolladores y los usuarios/clientes ya
que estos mismos tienen la posibilidad de probar las funcionalidades del software y dar
feedback inmediato para así tomar la decisión más acertada lo mas antes posible continuando
el desarrollo.
● Espiral
Imagen 11. Modelo en Espiral.

El modelo en espiral es una evolución de modelos anteriores, así mismo tomando muy en
cuenta los modelos de prototipado y cascada. Se divide en 5 regiones que son consistentes con
las fases tradiciones en el desarrollo de software:
❏ Comunicación con el Cliente.
❏ Planificación.
❏ Análisis de Riesgos.
❏ Ingenieria.
❏ Evaluacion.

El análisis de riesgos es la caracteristica de evaluacion segun como van los ciclos de desarrollo,
identifica posibles fallos, prevé que existan inconsistencias y regula la manera de trabajar para
así reducir costos que se puedan generar en el futuro.

● Incremental
Imagen 12. El modelo incremental.

Está basado en el modelo en cascada pero agrega la complejidad y escala en el proyecto porque
este se divide en grupos de desarrollo manejables para implementar ciertas funcionalidades de
software, realizar las pruebas referentes de cada parte individual y después integrar todos los
trabajos realizados para finalmente realizar más pruebas y asegurarse de que los requerimientos
se cumplen y se satisface al usuario/cliente.

● Modelo RUP

Imagen 13. Las perspectivas del modelo RUP.

Rational Unified Process por sus siglas en inglés, o en espaniol como Proceso Unificado
Racional tiene un enfoque en las actividades iterativas y su relacion específica con las fases
tradicionales de desarrollo comúnmente presentes.
Presenta 4 fases:
❏ Fase de inicio: se establece el modelamiento del negocio y determinar el ámbito del
proyecto.
❏ Fase de elaboración: se establece los elementos arquitectónicos que va a usar el sistema,
se especifican los requerimientos funcionales, no funcionales y se hace una evaluación
de los elementos con mayor riesgo o prioridad.
❏ Fase de construcción: la fase donde se realiza el proceso de codificación del producto
y se realizan las pruebas respectivas para el aseguramiento de su calidad.
❏ Fase de transición: es esta fase se realiza la aceptación del software y la integración de
todos los elementos del sistema, materiales necesarios para el aprendizajes de su uso,
manuales y demás materiales necesarios para un uso satisfactorio por parte del
usuario.cliente.

Diagramas de Diseno de Software

Diagrama de clases

Imagen 14. Diagrama de Clases de una empresa genérica.

Diagrama de componentes
Imagen 15. Diagrama de componentes de una transacción de venta.

Diagrama de objetos

Imagen 16 Diagrama de objetos en cuentas de banco.

Diagrama de estructura compuesta


Imagen 17. Diagrama de estructura compuesta de la serie Fibonacci.

Diagrama de despliegue

Imagen 18. Diagrama de despliegue de un sistema bancario.

Diagrama de paquetes
Imagen 19. Diagrama de paquetes de una casa de prestamos.

Diagrama de actividades

Imagen 20. Diagrama de Actividades para el procesamiento de una esquela.


Diagrama de casos de uso
Imagen 21 Diagrama de casos de uso de una máquina expendedora.

Diagrama de estados

Imagen 22. Diagrama de estados de un préstamo.

Diagrama de comunicación
Imagen 23. Diagrama de comunicación de un bibliotecario.

Diagrama de tiempos

Imagen 24. Diagrama de Tiempos generico en blanco.

Diagrama global de interacciones


Imagen 25. Diagrama global de interacciones para el acceso a un sistema.

Medios de Comunicación entre el Desarrollador y el Cliente

● Encuestas:
Es una serie de preguntas que se hace a una cantidad considerable de personas para
reunir datos o detectar la opinión sobre un asunto determinado, generalmente con
opciones de respuesta predefinida dentro de los parámetros esperados por los
desarrolladores con respecto a sus clientes.

● Cuestionarios:
Consiste en un conjunto o serie de preguntas para saber cual es la opinión o punto de
vista de los clientes y/o usuarios respecto a criterios especificados por los
desarrolladores, como la calidad de software, identificación de requerimientos,
opiniones de pruebas, etc.

● Entrevistas:
Las entrevistas son reuniones individuales e independientes entre un entrevistador del
grupo de desarrollo de software y algún cliente y/o usuarios, en la que el entrevistador
le pregunta una serie de cuestiones para saber su opinión, desempeño y realizar una
recopilación de datos de forma mucho más natural y personal.

● Reuniones presenciales:
De manera más detallada es la congregación presencial en el mismo lugar del grupo de
desarrollo de software y un grupo de usuarios y clientes para poder identificar y discutir
cualquier situación respecto al mismo desarrollo y desempeño del software en cuestión.
Siendo de manera presencial y grupal abarca muchas más experiencias y puntos de vista
necesarios para un buen feedback.

● Reuniones no presenciales:
Estas reuniones tienen la particularidad de no se de carácter presencial, osea no es
necesario que las personas estén en el mismo lugar para comunicarse puesto que se
puede realizar con el uso de diferentes herramientas de telecomunicaciones como
videollamadas, chats grupales, teleconferencias y demás.

● Desarrollo junto al usuario:


Dentro del mismo desarrollo de software otro método de comunicación mucho más
personal, pero efectivamente rapido y sin mayores costos es el desarrollo del software
junto con el usuario. De esta forma se ayuda a la identificación temprana de situaciones
adversas, mejora de la toma de requerimientos necesarios, cambios más específicos y
en general un mejor feedback.

También podría gustarte