Вы находитесь на странице: 1из 12

1

RUP Y SCRUM

INTEGRANTES

JEISON STANLEY LABRADOR PEREZ ID 412513


JORGE ARBEY QUEZADA MUÑOZ ID 213876

DOCENTE

JUAN CARLOS MUNOZ VERA

Corporación universitaria minuto de Dios


Arquitectura de software
Bogotá, Colombia
2019
2

Tabla de contenido

Introducción a este informe………………………………………………………………………...3


La metodología RUP…………………………………………………………………………….…4
La metodología SCRUM………………………………………………………………………...…5
Tabla comparativa……………………………………………………………………………….…6
Buenas practicas para el desarrollo de software (Consulta)……………………………………..…7
Conclusiones………………………………………………………………………………………10
Bibliografía………………………………………………………………………………………..11
3

Introducción

Las metodólogas agiles y en especial las que son a orientadas al desarrollo de proyectos de software
son técnicas empleadas para el diseño y desarrollo de proyectos informáticos basados en
iteraciones.
Cuando se habla de iteración hace referencia a una operación que se realiza una cantidad
determinada de veces hasta alcanzar un objetivo, es para eso que en estas técnicas de desarrollo es
muy común el termino iteración. Otra característica es un modelo incremental, esto quiere decir que
las necesidades y requerimientos van evolucionando a medida que el proyecto avanza en el tiempo
de consecución.
En este informe se tratarán algunos aspectos de las metodologías RUP y SCRUM, conceptos
básicos y comparativas en general.
4

Metodología RUP

Figura 1.
Fuente: www.goconqr.com

Rup significa (por sus siglas en inglés de Rational Unified Process) es un método muy usado en la
ingeniería de software para dar una forma de asignar tareas a un grupo de trabajo encargado, su
principal objetico es el diseño de programas de software con la mas alta calidad, que cumpla al
100% los requerimientos del cliente dentro de un tiempo y presupuesto estimados inicialmente.
Esta practica de desarrollo se implementa de manera que todo el grupo de trabajo ejecute sus tareas
sin importar su responsabilidad individual, que todos accedan a una misma base de datos, un mismo
lenguaje y una misma visión obteniendo así una mayor productividad del equipo sobre el desarrollo
Rup maneja las siguientes fases de desarrollo:

• Fase de Inicio
• Fase de elaboración
• Fase de construcción
• Fase de transición

Figura 2.

Fuente: www.goconqr.com
5

Metodología SCRUM

Figura 3.
Fuente: instintobinario.com

Scrum es una metodología ágil pensada para trabajar en equipo a partir de iteraciones o sprints, fue
pensada para planificar y ejecutar proyectos en donde en donde los cambios de estos se dan en
último momento.
Normalmente la planificación de cada iteración se da por cada semana revisando el avance de la
semana anterior. Es así que esta metodología garantiza el cumplimiento de cada iteración mediante
entregables que justifican el nivel de avance de las exigencias del cliente.
Scrum maneja las siguientes fases:
• Recogida de requisitos
• Gestión de backlog
• Sprint Planning Meeting
• Ejecución de sprint
• Inspección e iteración

Figuera 4.

Fuente: blog.ida.cl
6

Tabla comparativa
Metodología RUP Metodología SCRUM

•Sigue un modelo de desarrollo • Sus fases se enfocan más la ejecución de


tradicional para el ciclo de vida de cada iteración hasta ser terminada y así
software continuar con la siguiente.
Ventajas: Ventajas:
• Incita a que los procesos se puedan • Entregas y avances cada 15 o 50 días
re usar • Alta calidad y productividad
• Facilita el mantenimiento del • Equipo siempre motivado
proyecto • Permanente comunicación entre el cliente
• Facilita la construcción de y el equipo de trabajo
prototipos. Desventajas:
• Ventajas de la Metodología • El cliente siempre pide las entregas en la
Orientada a Objetos fecha exacta
Desventajas: • Muchas reuniones en donde el avance se
• Método pesado ve poco
• No apto para proyectos pequeños, • Por renuncia de un miembro del equipo, es
se generan altos costos por equipo complejo reemplazarlo por el
de trabajo conocimiento del proyecto que tiene.
• Por el grado de complejidad puede
ser no muy adecuado

Tabla 1.
7

Buenas prácticas para el desarrollo de software (Investigación)


El software es uno de los pilares de la sociedad moderna, ya sea por trabajo, negocios o placer.
Tanto los niños como los adultos tienen una fuerte dependencia de la tecnología que está asentada
sobre aplicaciones y servicios de software sólidos y robustos. Esta dependencia se basa en la
garantía de que las aplicaciones de software y las utilidades son seguras y fiables.
A continuación, se darán 15 de las mejores practicas a la hora del desarrollo de un programa de
software.

1. Captar y seleccionar el talento humano


con las destrezas necesarias y experiencia relevante es vital para garantizar el éxito del proyecto. Es
importante asignar el trabajo apropiado a la persona indicada.
Por otro lado, invertir en herramientas que aumentan la productividad y eficiencia del equipo de
desarrollo es muy importante. Buenos equipos, hardware moderno, software y plataformas de
desarrollo y de pruebas actualizado, y herramientas automatizadas ayudan a que el equipo pueda
imprimir todo su conocimiento y buenas prácticas para garantizar un producto sólido, fiable y
robusto.

2. Escoger el proceso de desarrollo apropiado

El ciclo de vida del desarrollo del software tiene una fuerte dependencia del proceso elegido. El
modelo en cascado, la metodología ágil, el enfoque iterativo en espiral, son todos formas
contrastadas de alcanzar el éxito. La dificultad está en elegir bien qué metodología le conviene más
a cada tipo de proyecto.

3. Hacer presupuestos y estimaciones razonables

Muchos proyectos fracasan o se prolongan en plazos por hacer estimaciones poco realistas. Una
planificación razonable depende de fijar bien los tiempos, el presupuesto, los recursos y los
esfuerzos. Lo mejor es usar técnicas de estimación y presupuestarias contrastadas. Intentar apretar
las estimaciones para intentar acortar un proyecto normalmente termina en catástrofe.
8

4. Fijar hitos más pequeños

Los grandes proyectos e hitos deben complementarse con mini-hitos para poder hacer mejor
seguimiento, más control y mejor gestión de riesgos, y en general para mitigar incidencias de una
forma más controlada. Los miembros del equipo deben reunirse para fijar estos mini-hitos y
alinearlos con los grandes hitos para cumplir plazos y reducir los retrasos que pueden surgir por las
interdependencias de las tareas que tienen asignadas.

5. Definir bien los requisitos

Documentar de manera efectiva los requisitos es la columna vertebral para poder alinear el producto
final con los objetivos empresariales. Es imperativo que se reúnan todas las partes (clientes, los
responsables de empresa y los líderes de los equipos) para documentar los requisitos de forma clara
y concisa, sin dejar lugar a lagunas o a la improvisación.

6. Definir la arquitectura del sistema

Un buen arquitecto de aplicaciones garantizará una elección de arquitectura del sistema apropiada,
teniendo en cuenta tanto los requisitos como las limitaciones y restricciones, si las hubiera. Buenas
prácticas, tales como la identificación de amenazas y anti-patrones dentro del sistema son muy
útiles.

7. Optimizar el diseño de la aplicación

El diseño debe ser modular y estar optimizado. Equilibrar y distribuir funcionalidad entre varios
módulos puede hacer que el proyecto funcione bien o que rompa. Un enfoque orientado a objetos es
una técnica que garantiza modularidad. Depende de los diseñadores garantizar que el enfoque
elegido se aplique bien para poder lograr la máxima cohesión con un acoplamiento mínimo.
9

8. Implementar el código de manera efectiva

El uso de módulos más pequeños que están auto-probados, probados unitariamente y que se
integran continuamente es una buena práctica muy extendida. La automatización de
herramientas build y la ejecución automatizada de pruebas de regresión para cada funcionalidad
incluida se recomienda para garantizar que la funcionalidad ya implementada no rompe.

9. Pruebas rigurosas y validación

La planificación de pruebas, la creación de conjuntos de pruebas y la ejecución de las mismas son


muy importantes con el fin de validar la funcionalidad desarrollada. De hecho, la planificación de
las pruebas debe hacerse en paralelo a la fase de desarrollo. Igual de importante es la
documentación que hagamos de las pruebas, informar de forma efectiva los errores, el rastreo de los
errores y la corrección de los mismos.

10. Documentación

Aun siendo importante el propio software, igual de importante es toda la documentaciónsobre el


que se apoya –el plan del proyecto, requisitos y especificaciones, Diseño de Alto Nivel (HLD),
Diseño de Bajo Nivel (LLD), planes de pruebas, informes de las pruebas, informes de estado y la
documentación para los usuarios.

11. Planificar sesiones de revisión de código

Las revisiones de código muchas veces son más efectivas, y sin duda menos costoso, para encontrar
errores que si solo hacemos pruebas. Las revisiones de todos los entregables, del código y de la
documentación es algo que siempre se debe hacer.

12. Garantizar la gestión del control de las fuentes del software

El uso de una gestión efectiva del código fuente y la documentación, para que estén controlados
según la versión, es fundamental para poder mantener la trazabilidad y la reversión controlada del
código si fuera necesario. En el mercado hay mucho software disponible para este tipo de tareas.
10

13. Control de calidad

El control de calidad ayuda a sacar adelante los proyectos de desarrollo sin graves trastornos y de
forma más rápida. Desde la detección de fallos hasta el establecimiento de métricas claves, las
mejores prácticas en este terreno han demostrado ser un éxito a la hora de determinar si un proyecto
está en condiciones de pasar a una nueva fase o si está listo para ser lanzado o entregado al cliente.

14. Instalación y despliegue eficaz

En multitud de ocasiones cuando ya hemos probado el software de puertas a dentro y todo va bien,
de repente el proyecto fracasa en casa del cliente o cuando estamos en fase de implementación y
despliegue. Es muy importante tener un buen plan de despliegue y hacer una lista a modo de
“checklist” para evitar desastres.

15 Estrategia de soporte y mantenimiento

Incluso cuando el software desplegado está funcionando, debe haber un proceso de soporte y
mantenimiento en marcha, previamente diseñado y pensado, para poder informar y reportar errores
y mejoras al equipo de desarrollo de forma eficaz.

Conclusiones
• Ambas metodologías se basan en iteraciones o sprints
• Rup no es aconsejable para proyectos pequeños
• Se trabajan en equipos de trabajo con diferentes modalidades de seguir el proceso de
desarrollo, una(Rup) maneja el ciclo de vida del software de manera global y la otra(Scrum)
se basa en el desarrollo y complemento de cada iteración para continuar con la siguiente.
11

Bibliografía:
• Herrera, S. E. R. G. I. O. (s.f.). ¿Cuáles son las ventajas y desventajas de
agile/scrum? - Quora. Recuperado 15 febrero, 2019, de
https://es.quora.com/Cu%C3%A1les-son-las-ventajas-y-desventajas-de-agile-scrum
• BLOG INGENIERIA EN SOFTWARE, M. E. T. O. D. O. L. O. G. I. A. (s.f.).
Desventajas del Modelo RUP. Recuperado 15 febrero, 2019, de
http://metodologiadesoftware.blogspot.com/2012/11/desventajas-del-modelo-
rup_27.html
• Beneficios de Scrum. (2008, 4 agosto). Recuperado 15 febrero, 2019, de
https://proyectosagiles.org/beneficios-de-scrum/
12