Documentos de Académico
Documentos de Profesional
Documentos de Cultura
9 36 1 PB PDF
9 36 1 PB PDF
Cuatro enfoques
metodológicos para el
desarrollo de Software
RUP – MSF – XP - SCRUM
Oiver Andrés Pérez A.
Recibido el 1 de abril de 20111. Aprobado el 10 de junio de 2011
Resumen
El presente artículo aborda el proceso de desarrollo de software desde cuatro enfoques me-
todológicos: RUP, MSF, XP, SCRUM, en los cuales se exponen las características, estructura, pro-
ceso, principios, ciclo de vida, artefactos y roles entre otras características propias de cada
metodología. La investigación se realizó a partir de la revisión de literatura en la cual se anali-
zaron y seleccionaron cuatro enfoques metodológicos de desarrollo de software de gran uso,
reconocimiento y vigencia en la industria del desarrollo de software. En este sentido, el pro-
pósito del artículo es aportar una guía práctica que permita conocer y aplicar las diferentes
estrategias metodológicas proporcionadas por estos cuatro enfoques metodológicos para el
desarrollo de software.
Palabras clave
Ingeniería de Software, Metodologías de desarrollo, Rational Unified Process (RUP), Microsoft
Solutions Framework (MSF), Extreme Programming (XP), SCRUM.
Abstract
This paper takes into account the process of development of software from four different
methodological focus, in which are considered the characteristics, structure, process, princi-
ples, life cycle, artifacts and roles among other characteristics proper to each methodology.
This research has been made revising some literature from which four methodological focus
of development of software have been analyzed and selected since they are very useful,
recognized and prevailing to the development of the software industry. So that, the purpose
of this paper is just to provide a practical guide that helps to know and to apply the different
methodological strategies provided by these four methodological focus for the development
of software.
Keywords
Software engineering, Software Development Process, Rational Unified Process (RUP), Micro-
soft Solutions Framework (MSF), Extreme programming (XP), SCRUM.
I. Introducción
En los años 80 se propuso que la mejor forma de desarrollar un sistema soft-
ware era por medio de una planificación rígida y meticulosa del proyecto,
soportada por herramientas CASE (Ingeniería de Software Asistida por Com-
putador) y algunos procesos de desarrollo rigurosos y altamente controlados,
que eran sinónimo de garantía y calidad en el software. Estas metodologías
tenían una carga de trabajo pesada en planificación, diseño y documenta-
ción, absorbiendo gran parte del tiempo destinado al desarrollo del sistema.
64 Inventum No. 10 Facultad de Ingeniería UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520
Al implementar estas metodologías en proyectos pe- en los métodos ágiles y propuesta por Kent Beck. En
queños o medianos con mayores exigencias en los la sección V se presenta la disciplina SCRUM basada
tiempos de respuesta, se obtuvo como resultado la en la rapidez y flexibilidad de métodos de desarro-
ineficacia en los procesos, debido a que se pasa- llo avanzados probados en la industria de productos
ba más tiempo pensando el sistema y al momento comerciales y finalmente en la sección VI se presen-
de liberar el producto se hacía casi imposible reali- tan las conclusiones y una matriz comparativa de las
zar cambios en las especificaciones, puesto que se cuatro metodologías.
debía empezar desde cero con el análisis y la do-
cumentación, haciendo del desarrollo de software II. RATIONAL UNIFIED
un proceso improductivo e ineficiente. Aun así, estas
metodologías se siguen implementando en deter- PROCESS (RUP)
minados proyectos que no requieren de resultados
rápidos pero sí de procesos críticos. RUP es una metodología que tiene como objetivo
ordenar y estructurar el desarrollo de software, en la
En los años 90 se comenzaron a proponer métodos cual se tienen un conjunto de actividades necesa-
ágiles para el desarrollo de software, que permitieran rias para transformar los requisitos del usuario en un
a los desarrolladores concentrarse en el software y no sistema Software (Amo, Martínez y Segovia, 2005). Ini-
totalmente en el diseño y documentación del mis- cialmente fue llamada UP (Unified Process) y luego
mo. Éstas metodologías tienen un enfoque iterativo cambió su nombre a RUP por el respaldo de Rational
para la especificación, el desarrollo y la entrega del Software de IBM. Ésta metodología fue lanzada en
producto, teniendo como principio que los requeri- 1998 teniendo como sus creadores a Ivar Jacobson,
mientos podían cambiar permanentemente y du- Grady Booch y James Rumbaugh. El RUP nació del
rante el proceso de desarrollo, entregando sistemas UML (Unified Modeling Language) y del UP (Sommer-
funcionales más rápidamente con la posibilidad de ville, 2005).
agregar nuevos cambios en las especificaciones.
Características del RUP
En la actualidad, el proceso de desarrollo de soft- El RUP es un proceso basado en los modelos en
ware ha sido abordado desde diferentes metodo- Cascada y por Componentes, el cual presenta las
logías, las cuales tienen diferentes enfoques para la siguientes características: Es dirigido por los casos
captura de requerimientos y el proceso de desarrollo de uso, es centrado en la arquitectura, iterativo e in-
del sistema software, algunas de ellas se basan en cremental (Booch, Rumbaugh y Jacobson, 2000), lo
analizar y documentar rigurosamente las especifica- cual es fundamental para el proceso de desarrollo
ciones del sistema, para luego realizar un desarrollo y de software. A continuación se explican las tres ca-
posteriormente efectuar las pruebas. Otros métodos racterísticas de RUP:
proponen centrarse en la organización del equipo
de trabajo, incluir al cliente activamente y en arrojar a) Casos de Uso: Describe un servicio que el usuario
resultados satisfactorios más rápidamente. Sea cual requiere del sistema, incluye la secuencia completa
fuere la metodología es conveniente saber que éstas de interacciones entre el usuario y el sistema.
se eligen e implementan de acuerdo a la naturaleza
del proyecto, llegando incluso a combinarse entre sí b) Centrado en la arquitectura: Comprende las di-
para lograr mejores resultados. ferentes vistas del sistema en desarrollo, que corres-
ponden a los modelos del sistema: Modelos de ca-
El objetivo de éste trabajo es analizar las cuatro me- sos de uso, de análisis, de diseño, de despliegue e
todologías propuestas, caracterizarlas y proporcionar implementación. La arquitectura del software es im-
un guía que permita entender de una manera gene- portante para comprender el sistema como un todo
ral el enfoque de cada una, así como sus ventajas y y a la vez en sus distintas partes (Abrahamsson, Salo,
desventajas, permitiendo a los estudiantes y desarro- Ronkainen y Warsta, 2002), sirve para organizar el de-
lladores tener un panorama global sobre las tenden- sarrollo, fomentar la reutilización de componentes y
cias actuales en procesos de desarrollo de software. hacer evolucionar el sistema, es decir, agregarle más
funcionalidad (Pressman y Murrieta, 2006)
El contenido del artículo está organizado de la si-
guiente manera: En la sección II se presenta la me- En la figura 1 se aprecia la forma en que los mode-
todología Rational Unified Process (RUP) de IBM. En la los de la arquitectura se completan en cada ciclo,
sección III se presenta la metodología Microsoft So- ejemplo: se ve en la “línea base de la arquitectura”
lutions Framework (MSF) de Microsoft. En la sección que la barra que denota el modelo de despliegue
IV se presenta la Extreme Programming (XP) basada está clara e incompleta, evidenciándose una im-
Inventum No. 10 Facultad de Ingeniería UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520 65
plementación parcial del sistema, lo cual mostraría lisis de la iteración, entre otras actividades específi-
solo algunas funciones y propiedades del software cas concebidas dentro de esa iteración.
en construcción. A esta parcialidad en la implemen-
tación se le conoce como arquitectura ejecutable.
En la misma gráfica que se encuentra arriba se ve
la misma barra pero un poco más oscura, lo cual
muestra que el modelo se ha estado mejorando
progresivamente, mostrando que durante la cons-
trucción los diferentes modelos se van desarrollando
hasta completarse.
De igual forma se aprecia la misma barra en la “línea Figura 2. Las Iteraciones en RUP. Fuente: Adaptado de RUP (Booch,
Rumbaugh y Jacobson, 2000)
base al final de la construcción” en la cual se ve la
barra del modelo de despliegue completa y con un
color más oscuro, esto obedece a los refinamientos Estructura del RUP
sucesivos que hace la metodología RUP a la arquitec- El proceso del RUP se ejecuta en tres perspectivas:
tura ejecutable, proporcionando de esta manera un La perspectiva dinámica, la cual contiene las fases
prototipo evolutivo y funcional. De la misma manera del modelo sobre el tiempo; la estática que mues-
la arquitectura como tal no cambia drásticamente tra las actividades del proceso y la práctica, que
pues gran parte de la arquitectura se definió durante muestra las buenas prácticas durante el proceso
la fase de elaboración, pero puede agregar mode- del RUP (IBM, s. f.)
los así como lo muestra la gráfica con la adición del
modelo de pruebas a la misma arquitectura: La figura 3 muestra la estructura de RUP y la forma
en que se relacionan sus tres perspectivas. En ésta
se aprecia la forma en que las disciplinas se aplican
a cada una de las fases hasta lograr su completi-
tud, y a su vez, cómo cada fase se completa de for-
ma iterativa para así avanzar a la fase siguiente. De
igual forma se aprecia que la perspectiva de buenas
prácticas está en un eje “z” que es transversal a las
perspectivas dinámica “x” y estática “y”, funcionan-
do de manera permanente en el proceso de desa-
rrollo de software.
· Aprender de todas las experiencias: Tener una De lo anterior se desprenden unos principios relacio-
mentalidad abierta para aprender del éxito o fraca- nados con el proceso MSF, los cuales son: el manejo
so de proyectos propios y ajenos. de versiones, la gestión del riesgo, dividir el proyecto
en partes y realizar construcciones diarias.
Modelos
Los modelos describen esquemas a seguir para la Por otra parte, la metodología MSF establece 5 fases
organización de los equipos y los procesos del pro- con sus respectivas tareas, las cuales se aprecian en
yecto (Microsoft, 2003), lo cual especifica un modelo la figura 7. En las características de MSF se mencio-
para el equipo de trabajo y uno para los procesos: nó que la metodología se podía aplicar de manera
flexible, es decir, que los componentes no eran de-
a) Equipo de trabajo: pendientes unas de otras. Es importante aclarar que
Este modelo se encarga de organizar las personas ese grado de flexibilidad no aplica para éste modelo
para que realicen el trabajo y se asegura que to- de proceso (Figura 7).
das las metas del proyecto se cumplan. Define los
principios, los roles y las actividades involucrando al
equipo en todas las decisiones fundamentales que
rodean el proyecto.
Disciplinas
MSF presenta un conjunto de métodos para la ges-
tión del proyecto, la gestión del riesgo y la gestión Figura 10: Gestión de cambios. Fuente: Adaptado de Microsoft,
de preparación para el cambio (Del Maschi et al., 2003.
2008). Dentro de las cuales comprende:
70 Inventum No. 10 Facultad de Ingeniería UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520
En conclusión, la metodología propuesta por MSF tie- entrega y el sistema ha cumplido con el objetivo para
ne como propósito lograr entregas con un margen el cual fue diseñado, de no ser así, se deberá conti-
amplio de éxito, basados en la calidad del produc- nuar con el ciclo especificado en la figura 11 hasta
to software, teniendo presente las necesidades del que la funcionalidad del sistema sea la deseada.
cliente y el principio de flexibilidad, así como el cum-
plimiento con los compromisos adquiridos, la gestión · Diseño sencillo: Solo se efectúa el diseño necesario
de los costos y la minimización de los riesgos inheren- para cumplir con los requerimientos actuales, es de-
tes en todo proyecto de desarrollo de software. cir, no se abordan requerimientos futuros.
· Retroalimentación: La mejor manera de cono- Al igual que en las metodologías antes menciona-
cer el estado actual del sistema es haciéndole das, en el proceso XP (figura 12), se observan una
pruebas funcionales al software, esto proporciona- serie de fases que al ser concluidas dan origen a una
rá información real y confiable sobre el grado de versión del producto software, y cada versión es un
fiabilidad del sistema. ciclo, el cual hace parte del ciclo de vida del soft-
ware. Al no tener más ciclos a ejecutar se entiende
· Valentía: El equipo de trabajo debe estar presto que los sistemas han cumplido con su objetivo, en
para asumir retos, ser valiente ante los problemas y caso contrario se deben seguir desarrollando ciclos
afrontarlos, no tapar los errores, ya que tarde o tem- para agregar la funcionalidad deseada. Cada fase
prano saldrán a flote y todo el sistema colapsará no del ciclo comprende lo siguiente:
se puede avanzar sobre los errores. Se recomienda
tomar acciones correctivas a tiempo a fin de lograr · Fase de planeación: Ésta fase inicia con las histo-
el objetivo del proyecto. rias de usuario que describen las características y fun-
cionalidades del software. El cliente asigna un valor
Objetivos de XP o prioridad a la historia, los desarrolladores evalúan
Aunque las metodologías RUP y MSF no lo muestran cada historia y le asignan un costo el cual se mide en
de una manera explícita, también para ellas la satis- semanas de desarrollo.
facción del cliente y el trabajo en equipo es un objeti-
vo. La metodología XP tiene dos objetivosprimordiales · Fase de diseño: El proceso de diseño debe procu-
para el correcto desarrollo del proyecto (Jeffries, s. f.): rar diseños simples y sencillos para facilitar el desarro-
llo. Se recomienda elaborar un glosario de términos y
· La satisfacción de cliente: Entendida como dar al la correcta especificación de métodos y clases para
cliente lo que necesita y cuando lo necesita, respon- facilitar posteriores modificaciones, ampliaciones o
diendo rápidamente a las necesidades de este. Uno reutilización del código. Anteriormente este proceso
de los factores importantes en todo proyecto de soft- se apoyaba en el uso de tarjetas CRC (Colaborador-
ware es que el sistema software logre el objetivo para Responsabilidad-Clase) la cual identifica las clases
el cual fue diseñado y que el equipo de trabajo logre orientadas a objetos que son relevantes para el in-
el objetivo para el cual fue contratado, de ahí que cremento del software.
el incumplimiento de esto termine con un producto
incompleto y un cliente insatisfecho. · Fase de codificación: En ésta fase los desarrolla-
dores deben diseñar las pruebas de unidad que ejer-
· Potenciar al máximo el trabajo en grupo: Todos están citarán cada historia de usuario. Después de tener
involucrados y comprometidos con el desarrollo del soft- las pruebas, los desarrolladores trabajarán en parejas
ware, tanto los jefes como los desarrolladores y los clien- para concentrarse en lo que debe implementarse
tes, no hay agentes individuales o aislados al proyecto. para pasar la prueba de unidad.
· Empoderamiento y compromiso de las personas: · Interesados: También llamados StakeHolders son los
Se procura delegar y atribuir responsabilidades con que observan y asesoran el proceso, también pue-
la finalidad que el equipo se pueda auto-organizar den ser agentes externos interesados en financiar o
y tomar decisiones sobre el desarrollo del proyecto. promover el proyecto.
Un miembro del equipo no puede tomar decisiones
acertadas si no está involucrado en el proceso de · Usuarios: Quizá uno de los menos tenidos en cuenta
desarrollo del software. pero finalmente son ellos los que realizaran las prue-
bas lógicas de la aplicación y verificar si se cumplen
· Foco en desarrollar lo comprometido: Los miem- sus expectativas. Los clientes pueden aportar ideas o
bros del equipo de trabajo deben centrarse en desa- necesidades no consideradas por el equipo SCRUM.
rrollar lo pactado con el cliente y lo comprometido
con el resto del equipo. Artefactos
Al igual que en RUP, MSF y XP, los artefactos son los
· Transparencia y visibilidad del proyecto: Se debe diferentes modelos de información (Mountain Goat
mantener informado al equipo, procurar evidenciar Software, s.f.) generados durante el proceso de desa-
74 Inventum No. 10 Facultad de Ingeniería UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520
rrollo del software, SCRUM produce los siguientes tres · Revisión del SPRINT: Es una reunión informativa,
artefactos: aproximadamente de 4 horas, en la que el mode-
rador es el SCRUM Manager. En ésta reunión se hace
· Pila del producto: Es el corazón de SCRUM, es la la presentación del incremento, el planteamiento de
relación de requisitos del producto, en la cual no es sugerencias y anuncio del próximo Sprint.
necesario excesivo detalle pero sí deben estar priori-
zados. Ésta lista o pila del producto está en constante · Retrospectiva del SPRINT: Después de cada Sprint,
evolución y abierta a todos los roles, pero es el pro- se reúnen los miembros del equipo (Aproximada-
pietario del producto el responsable y quien decide mente 4 horas) y expresan sus opiniones del Sprint
sobre esta. recién superado, con la finalidad de mejorar los pro-
cesos. Es básicamente una reunión de evaluación y
· Pila del SPRINT: Son los requisitos comprometidos mejoramiento.
por el equipo para el Sprint, se construyen con el nivel
de detalle suficiente para lograr su ejecución por el El proceso SCRUM
equipo de trabajo. Debido a que la metodología SCRUM es más enfo-
cada a la organización del equipo de trabajo, así
· Incremento: Es una parte del producto desarrollado como también lo es en gran parte XP, en SCRUM a
en un Sprint, y que es factible de ser usado, contiene diferencia de XP que también está basado en los
las pruebas, una codificación limpia y documentada. métodos ágiles, se divide el proyecto en periodos
de 4 semanas aproximadamente, cada periodo se
Reuniones denomina Sprint y cada equipo SCRUM recibe una
Es uno de los elementos fundamentales de la meto- lista de pedidos a ejecutar en un sprint determinado.
dología SCRUM (Rising, y Janoff, 2000) y se realizan En la figura 13 se ve cómo los valores, artefactos y
periódicamente. A diferencia de las metodologías reuniones se conjugan en el proceso de desarrollo
expuestas anteriormente en este artículo, SCRUM de- SCRUM:
fine cómo deben ser las reuniones del equipo de tra-
bajo y los resultados que ésta debe generar. A conti-
nuación se explican cada una de ellas:
Oiver Adrés Pérez R. Licenciado en Informática Educativa, Especialista en Docencia para la Educación
Superior, Estudiante del Magister en Ingeniería de Sistemas y Computación, Profesor Investigador de la Fa-
cultad de Ingeniería de Unicatólica. oiverpr@gmail.com
78 Inventum No. 10 Facultad de Ingeniería UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520