Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cuatro enfoques
metodolgicos para el
desarrollo de Software
RUP MSF XP - SCRUM
Oiver Andrs Prez A.
Recibido el 1 de abril de 20111. Aprobado el 10 de junio de 2011
Resumen
El presente artculo aborda el proceso de desarrollo de software desde cuatro enfoques me-
todolgicos: RUP, MSF, XP, SCRUM, en los cuales se exponen las caractersticas, estructura, pro-
ceso, principios, ciclo de vida, artefactos y roles entre otras caractersticas propias de cada
metodologa. La investigacin se realiz a partir de la revisin de literatura en la cual se anali-
zaron y seleccionaron cuatro enfoques metodolgicos de desarrollo de software de gran uso,
reconocimiento y vigencia en la industria del desarrollo de software. En este sentido, el pro-
psito del artculo es aportar una gua prctica que permita conocer y aplicar las diferentes
estrategias metodolgicas proporcionadas por estos cuatro enfoques metodolgicos para el
desarrollo de software.
Palabras clave
Ingeniera de Software, Metodologas 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. Introduccin
En los aos 80 se propuso que la mejor forma de desarrollar un sistema soft-
ware era por medio de una planificacin rgida y meticulosa del proyecto,
soportada por herramientas CASE (Ingeniera de Software Asistida por Com-
putador) y algunos procesos de desarrollo rigurosos y altamente controlados,
que eran sinnimo de garanta y calidad en el software. Estas metodologas
tenan una carga de trabajo pesada en planificacin, diseo y documenta-
cin, absorbiendo gran parte del tiempo destinado al desarrollo del sistema.
64 Inventum No. 10 Facultad de Ingeniera UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520
Al implementar estas metodologas en proyectos pe- en los mtodos giles y propuesta por Kent Beck. En
queos o medianos con mayores exigencias en los la seccin V se presenta la disciplina SCRUM basada
tiempos de respuesta, se obtuvo como resultado la en la rapidez y flexibilidad de mtodos de desarro-
ineficacia en los procesos, debido a que se pasa- llo avanzados probados en la industria de productos
ba ms tiempo pensando el sistema y al momento comerciales y finalmente en la seccin VI se presen-
de liberar el producto se haca casi imposible reali- tan las conclusiones y una matriz comparativa de las
zar cambios en las especificaciones, puesto que se cuatro metodologas.
deba empezar desde cero con el anlisis y la do-
cumentacin, haciendo del desarrollo de software II. RATIONAL UNIFIED
un proceso improductivo e ineficiente. Aun as, estas
metodologas se siguen implementando en deter- PROCESS (RUP)
minados proyectos que no requieren de resultados
rpidos pero s de procesos crticos. RUP es una metodologa que tiene como objetivo
ordenar y estructurar el desarrollo de software, en la
En los aos 90 se comenzaron a proponer mtodos 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, Martnez y Segovia, 2005). Ini-
totalmente en el diseo y documentacin del mis- cialmente fue llamada UP (Unified Process) y luego
mo. stas metodologas tienen un enfoque iterativo cambi su nombre a RUP por el respaldo de Rational
para la especificacin, el desarrollo y la entrega del Software de IBM. sta metodologa fue lanzada en
producto, teniendo como principio que los requeri- 1998 teniendo como sus creadores a Ivar Jacobson,
mientos podan 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 ms rpidamente con la posibilidad de ville, 2005).
agregar nuevos cambios en las especificaciones.
Caractersticas 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
logas, las cuales tienen diferentes enfoques para la siguientes caractersticas: 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 continuacin se explican las tres ca-
posteriormente efectuar las pruebas. Otros mtodos ractersticas de RUP:
proponen centrarse en la organizacin del equipo
de trabajo, incluir al cliente activamente y en arrojar a) Casos de Uso: Describe un servicio que el usuario
resultados satisfactorios ms rpidamente. Sea cual requiere del sistema, incluye la secuencia completa
fuere la metodologa 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 anlisis, de diseo, de despliegue e
todologas propuestas, caracterizarlas y proporcionar implementacin. La arquitectura del software es im-
un gua 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 reutilizacin de componentes y
cias actuales en procesos de desarrollo de software. hacer evolucionar el sistema, es decir, agregarle ms
funcionalidad (Pressman y Murrieta, 2006)
El contenido del artculo est organizado de la si-
guiente manera: En la seccin II se presenta la me- En la figura 1 se aprecia la forma en que los mode-
todologa Rational Unified Process (RUP) de IBM. En la los de la arquitectura se completan en cada ciclo,
seccin III se presenta la metodologa Microsoft So- ejemplo: se ve en la lnea base de la arquitectura
lutions Framework (MSF) de Microsoft. En la seccin que la barra que denota el modelo de despliegue
IV se presenta la Extreme Programming (XP) basada est clara e incompleta, evidencindose una im-
Inventum No. 10 Facultad de Ingeniera UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520 65
plementacin parcial del sistema, lo cual mostrara lisis de la iteracin, entre otras actividades especfi-
solo algunas funciones y propiedades del software cas concebidas dentro de esa iteracin.
en construccin. A esta parcialidad en la implemen-
tacin se le conoce como arquitectura ejecutable.
En la misma grfica que se encuentra arriba se ve
la misma barra pero un poco ms oscura, lo cual
muestra que el modelo se ha estado mejorando
progresivamente, mostrando que durante la cons-
truccin los diferentes modelos se van desarrollando
hasta completarse.
De igual forma se aprecia la misma barra en la lnea Figura 2. Las Iteraciones en RUP. Fuente: Adaptado de RUP (Booch,
Rumbaugh y Jacobson, 2000)
base al final de la construccin en la cual se ve la
barra del modelo de despliegue completa y con un
color ms oscuro, esto obedece a los refinamientos Estructura del RUP
sucesivos que hace la metodologa RUP a la arquitec- El proceso del RUP se ejecuta en tres perspectivas:
tura ejecutable, proporcionando de esta manera un La perspectiva dinmica, la cual contiene las fases
prototipo evolutivo y funcional. De la misma manera del modelo sobre el tiempo; la esttica que mues-
la arquitectura como tal no cambia drsticamente tra las actividades del proceso y la prctica, que
pues gran parte de la arquitectura se defini durante muestra las buenas prcticas durante el proceso
la fase de elaboracin, pero puede agregar mode- del RUP (IBM, s. f.)
los as como lo muestra la grfica con la adicin 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, cmo 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
prcticas est en un eje z que es transversal a las
perspectivas dinmica x y esttica 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 gestin del riesgo, dividir el proyecto
en partes y realizar construcciones diarias.
Modelos
Los modelos describen esquemas a seguir para la Por otra parte, la metodologa MSF establece 5 fases
organizacin 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 caractersticas de MSF se mencio-
para el equipo de trabajo y uno para los procesos: n que la metodologa se poda 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 mtodos para la ges-
tin del proyecto, la gestin del riesgo y la gestin Figura 10: Gestin de cambios. Fuente: Adaptado de Microsoft,
de preparacin para el cambio (Del Maschi et al., 2003.
2008). Dentro de las cuales comprende:
70 Inventum No. 10 Facultad de Ingeniera UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520
En conclusin, la metodologa propuesta por MSF tie- entrega y el sistema ha cumplido con el objetivo para
ne como propsito lograr entregas con un margen el cual fue diseado, 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 gestin Diseo sencillo: Solo se efecta el diseo necesario
de los costos y la minimizacin 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.
Retroalimentacin: La mejor manera de cono- Al igual que en las metodologas antes menciona-
cer el estado actual del sistema es hacindole 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 informacin real y confiable sobre el grado de versin del producto software, y cada versin es un
fiabilidad del sistema. ciclo, el cual hace parte del ciclo de vida del soft-
ware. Al no tener ms ciclos a ejecutar se entiende
Valenta: 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 saldrn 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 planeacin: sta fase inicia con las histo-
el objetivo del proyecto. rias de usuario que describen las caractersticas y fun-
cionalidades del software. El cliente asigna un valor
Objetivos de XP o prioridad a la historia, los desarrolladores evalan
Aunque las metodologas RUP y MSF no lo muestran cada historia y le asignan un costo el cual se mide en
de una manera explcita, tambin para ellas la satis- semanas de desarrollo.
faccin del cliente y el trabajo en equipo es un objeti-
vo. La metodologa XP tiene dos objetivosprimordiales Fase de diseo: El proceso de diseo debe procu-
para el correcto desarrollo del proyecto (Jeffries, s. f.): rar diseos simples y sencillos para facilitar el desarro-
llo. Se recomienda elaborar un glosario de trminos y
La satisfaccin de cliente: Entendida como dar al la correcta especificacin de mtodos y clases para
cliente lo que necesita y cuando lo necesita, respon- facilitar posteriores modificaciones, ampliaciones o
diendo rpidamente a las necesidades de este. Uno reutilizacin del cdigo. 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 diseado 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 codificacin: En sta fase los desarrolla-
dores deben disear las pruebas de unidad que ejer-
Potenciar al mximo el trabajo en grupo: Todos estn citarn cada historia de usuario. Despus de tener
involucrados y comprometidos con el desarrollo del soft- las pruebas, los desarrolladores trabajarn 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: Tambin llamados StakeHolders son los
Se procura delegar y atribuir responsabilidades con que observan y asesoran el proceso, tambin 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 lgicas de la aplicacin 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 informacin (Mountain Goat
mantener informado al equipo, procurar evidenciar Software, s.f.) generados durante el proceso de desa-
74 Inventum No. 10 Facultad de Ingeniera UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520
rrollo del software, SCRUM produce los siguientes tres Revisin del SPRINT: Es una reunin informativa,
artefactos: aproximadamente de 4 horas, en la que el mode-
rador es el SCRUM Manager. En sta reunin se hace
Pila del producto: Es el corazn de SCRUM, es la la presentacin del incremento, el planteamiento de
relacin de requisitos del producto, en la cual no es sugerencias y anuncio del prximo Sprint.
necesario excesivo detalle pero s deben estar priori-
zados. sta lista o pila del producto est en constante Retrospectiva del SPRINT: Despus de cada Sprint,
evolucin y abierta a todos los roles, pero es el pro- se renen los miembros del equipo (Aproximada-
pietario del producto el responsable y quien decide mente 4 horas) y expresan sus opiniones del Sprint
sobre esta. recin superado, con la finalidad de mejorar los pro-
cesos. Es bsicamente una reunin de evaluacin 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 ejecucin por el El proceso SCRUM
equipo de trabajo. Debido a que la metodologa SCRUM es ms enfo-
cada a la organizacin del equipo de trabajo, as
Incremento: Es una parte del producto desarrollado como tambin lo es en gran parte XP, en SCRUM a
en un Sprint, y que es factible de ser usado, contiene diferencia de XP que tambin est basado en los
las pruebas, una codificacin limpia y documentada. mtodos 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.
dologa SCRUM (Rising, y Janoff, 2000) y se realizan En la figura 13 se ve cmo los valores, artefactos y
peridicamente. A diferencia de las metodologas reuniones se conjugan en el proceso de desarrollo
expuestas anteriormente en este artculo, SCRUM de- SCRUM:
fine cmo deben ser las reuniones del equipo de tra-
bajo y los resultados que sta debe generar. A conti-
nuacin se explican cada una de ellas:
Oiver Adrs Prez R. Licenciado en Informtica Educativa, Especialista en Docencia para la Educacin
Superior, Estudiante del Magister en Ingeniera de Sistemas y Computacin, Profesor Investigador de la Fa-
cultad de Ingeniera de Unicatlica. oiverpr@gmail.com
78 Inventum No. 10 Facultad de Ingeniera UNIMINUTO - Junio de 2011 - ISSN 1909 - 2520