You are on page 1of 6

Universidad Nacional de Loja. Vernica Chimbo.

Metodologas de Desarrollo de Software

METODOLOGAS DE DESARROLLO DE SOFTWARE


Vernica Chimbo Universidad Nacional de Loja, Ingeniera en Sistemas LOJA ECUADOR Veronicapaulinac3@gmail.com

Resumen Desarrollar un buen software depende de un


sinnmero de actividades y etapas, donde el impacto de elegir la mejor metodologa para un equipo, en un determinado proyecto es trascendental para el xito del producto. El papel preponderante de las metodologas es sin duda esencial en un proyecto y en el paso inicial, que debe encajar en el equipo, guiar y organizar actividades que conlleven a las metas trazadas en el grupo. En el presente trabajo se detallan tres metodologas que presentan caractersticas. Se vern diferencias, ventajas, desventajas y cual puede encajar en un proyecto de software, es por ello que, en el presente articulo se deja una gua poniendo en libertad de eleccin para el lector el poder juzgar y elegir la mejor metodologa que se adapte a su equipo de desarrollo.

etapa de adaptacin contena el desarrollo dividido en etapas de manera secuencial que de algo mejoraba la necesidad latente en el campo del software [1]. Entre las principales metodologas tradicionales tenemos los ya tan conocidos RUP y MSF entre otros, que centran su atencin en llevar una documentacin exhaustiva de todo el proyecto y centran su atencin en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto. Otra de las caractersticas importantes dentro de este enfoque tenemos los altos costos al implementar un cambio y al no ofrecer una buena solucin para proyectos donde el entorno es voltil. Las metodologas tradicionales (formales) se focalizan en documentacin, planificacin y procesos. (Plantillas, tcnicas de administracin, revisiones, etc.), a continuacin se detalla RUP uno de los mtodos ms usados dentro de los mtodos tradicionales

ndice de Trminos Metodologa, RUP, XP, Scrum,


ICONIX, Metodologa Tradicional, Metodologa gil

I.

INTRODUCCIN

Dentro del desarrollo de software y a la altiva necesidad de que los proyectos lleguen al xito y obtener un producto de gran valor para nuestros clientes, generan grandes cambios en las metodologas adoptadas por los equipos para cumplir sus objetivos, puesto que, unas se adaptan mejor que otras, proyecto brindando mejores ventajas segn el objetivo del proyecto . Es por eso de la importancia de una metodologa robusta que ajustada en un equipo cumpla con sus metas, y satisfaga mas all de las necesidades definidas al inicio del proyecto. El xito del producto depende en gran parte de la metodologa escogida por el equipo, ya sea tradicional o gil, donde los equipos extiendan su potencial, aumenten la calidad del producto con los recursos y tiempos establecidos.

RATIONAL UNIFIED PROCESS (RUP)


FIGURA1.
PROCESO UNIFICADO RATIONAL

II.

DESARROLLO DE CONTENIDOS

METODOLOGA TRADICIONAL
Al inicio el desarrollo de software era artesanal en su totalidad, la fuerte necesidad de mejorar el proceso y llevar los proyectos a la meta deseada, tuvieron que importarse la concepcin y fundamentos de metodologas existentes en otras reas y adaptarlas al desarrollo de software. Esta nueva Ingeniera en Sistemas

RUP es un proceso formal: Provee un acercamiento disciplinado para asignar tareas y responsabilidades dentro

Universidad Nacional de Loja. Vernica Chimbo. Metodologas de Desarrollo de Software de una organizacin de desarrollo. Su objetivo es asegurar la produccin de software de alta calidad que satisfaga los requerimientos de los usuarios finales (respetando cronograma y presupuesto). Fue desarrollado por Rational Software, y est integrado con toda la suite Rational de herramientas. Puede ser adaptado y extendido para satisfacer las necesidades de la organizacin que lo adopte. (Customizacin). Es guiado por casos de uso y centrado en la arquitectura, y utiliza UML como lenguaje de notacin [2]. METODOLOGAS GILES.

Luego de varias opiniones tanto a favor como en contra de las metodologas tradicionales se genera un nuevo enfoque denominado, mtodos giles, que nace como respuesta a los problemas detallados anteriormente y se basa en dos aspectos puntuales, el retrasar las decisiones y la planificacin adaptativa; permitiendo potencia an ms el desarrollo de software a gran escala. Como resultado de esta nueva teora se crea un Manifiesto gil1 cuyas principales ideas son:

Fases
FIGURA2.
FASES DEL PROCESO UNIFICADO RATIONAL

Los individuos y las interacciones entre ellos son ms importantes que las herramientas y los procesos empleados. Es ms importante crear un producto software que funcione que escribir documentacin exhaustiva. La colaboracin con el cliente debe prevalecer sobre la negociacin de contratos. La capacidad de respuesta ante un cambio es ms importante que el seguimiento estricto de un plan.

Entre los principales mtodos giles tenemos el XP (eXtreme Programming), Scrum, Iconix, Cristal Methods, AUP entre otras. [1]. Estas metodologas ponen de relevancia que la capacidad de respuesta a un cambio es ms importante que el seguimiento estricto de un plan. Nos lo proponen porque para muchos clientes esta flexibilidad ser una ventaja competitiva y porque estar preparados para el cambio significa reducir su coste. A continuacin se detalla el XP que es el ms aceptado dentro del desarrollo de SW

Las cuatro fases del ciclo de vida son: Concepcin Elaboracin Construccin Transicin Ventajas

EXTREME PROGRAMMING (XP)


FIGURA 32.
MODELO DE EXTREME PROGRAMMING

Evaluacin en cada fase que permite cambios de objetivos Funciona bien en proyectos de innovacin. Es sencillo, ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el software. Seguimiento detallado en cada una de las fases.

Desventajas La evaluacin de riesgos es compleja Excesiva flexibilidad para algunos proyectos Estamos poniendo a nuestro cliente en una situacin que puede ser muy incmoda para l. Nuestro cliente deber ser capaz de describir y entender a un gran nivel de detalle para poder acordar un alcance del proyecto con l.
Pires, Donald, Manifiesto gil, UCLA, (en lnea), disponible en http://www.manifiestoagile.com 2 Extrem Porgramming(XP). Disponible en http://www.programacionextrema.org/
1

Ingeniera en Sistemas

Universidad Nacional de Loja. Vernica Chimbo. Metodologas de Desarrollo de Software Es la ms destacada de los procesos giles de desarrollo de software formulada por Kent Beck. La programacin extrema se diferencia de las metodologas tradicionales principalmente en que pone ms nfasis en la adaptabilidad que en la previsibilidad [3]. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximacin mejor y ms realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos despus en controlar los cambios en los requisitos. Las caractersticas fundamentales del mtodo son: Desarrollo iterativo e incremental: pequeas mejoras, unas tras otras. Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresin. Se aconseja escribir el cdigo de la prueba antes de la codificacin. Programacin por parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del cdigo escrito de esta manera -el cdigo es revisado y discutido mientras se escribees ms importante que la posible prdida de productividad inmediata. Frecuente interaccin del equipo de programacin con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo. Correccin de todos los errores antes de aadir nueva funcionalidad. Hacer entregas frecuentes. Refactorizacin del cdigo, es decir, reescribir ciertas partes del cdigo para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorizacin no se ha introducido ningn fallo. Propiedad del cdigo compartida: en vez de dividir la responsabilidad en el desarrollo de cada mdulo en grupos de trabajo distintos, este mtodo promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresin garantizan que los posibles errores sern detectados. Simplicidad en el cdigo: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podr aadir funcionalidad si es necesario. La programacin extrema apuesta que en ms sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizs nunca utilizarlo. especialmente si programadores. Ventajas se puede reducir el equipo

3 de

Apropiado para entornos voltiles Estar preparados para el cambio, significa reducir su coste. Planificacin ms transparente para nuestros clientes, conocen las fechas de entrega de funcionalidades. Vital para su negocio Permitir definir en cada iteracin cuales son los objetivos de la siguiente Permite tener realimentacin de los usuarios muy til. La presin esta a lo largo de todo el proyecto y no en una entrega final

Desventajas Delimitar el alcance del proyecto con nuestro cliente Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la experiencia.

SCRUM
FIGURA 53.
ESQUEMA DE TRABAJO SCRUM

Scrum es un proceso gil y liviano que sirve para administrar y controlar el desarrollo de software. El desarrollo se realiza en forma iterativa e incremental (una iteracin es un ciclo corto de construccin repetitivo). Cada ciclo o iteracin termina con una pieza de software ejecutable que incorpora nueva funcionalidad. Las iteraciones en general tienen una duracin entre 2 y 4 semanas. Scrum se utiliza como marco para otras prcticas de ingeniera de software como RUP o Extreme Programming [4]. Scrum se focaliza en priorizar el trabajo en funcin del valor que tenga para el negocio, maximizando la utilidad de lo que se construye y el retorno de inversin. Est diseado especialmente para adaptarse a los cambios en los requerimientos, por ejemplo en un mercado de alta competitividad. Los requerimientos y las prioridades se
3

La simplicidad y la comunicacin son extraordinariamente complementarias. Con ms comunicacin resulta ms fcil identificar qu se debe y qu no se debe hacer. Mientras ms simple es el sistema, menos tendr que comunicar sobre este, lo que lleva a una comunicacin ms completa, Ingeniera en Sistemas

Scrum y Programacion Extrema; Publicado por Robert More; http://universotela.blogspot.com/2011/05/scrum-y-programacionextrema.html

Universidad Nacional de Loja. Vernica Chimbo. Metodologas de Desarrollo de Software revisan y ajustan durante el proyecto en intervalos muy cortos y regulares. De esta forma se puede adaptar en tiempo real el producto que se est construyendo a las necesidades del cliente. Se busca entregar software que realmente resuelva las necesidades, aumentando la satisfaccin del cliente. En Scrum, el equipo se focaliza en una nica cosa: construir software de calidad. Por el otro lado, la gestin de un proyecto Scrum se focaliza en definir cuales son las caractersticas que debe tener el producto a construir (qu construir, qu no y en qu orden) y en remover cualquier obstculo que pudiera entorpecer la tarea del equipo de desarrollo. Se busca que los equipos sean lo ms efectivos y productivos posible. Scrum tiene un conjunto de reglas muy pequeo y muy simple y est basado en los principios de inspeccin continua, adaptacin, auto-gestin e innovacin. El cliente se entusiasma y se compromete con el proyecto dado que ve crecer el producto iteracin a iteracin y encuentra las herramientas para alinear el desarrollo con los objetivos de negocio de su empresa [5]. Por otro lado, los desarrolladores encuentran un mbito propicio para desarrollar sus capacidades profesionales y esto resulta en un incremento en la motivacin de los integrantes del equipo.

que un equipo de un proyecto puede usar para conducir el esfuerzo hacia un desarrollo real. La Figura 6 muestra el cuadro del proceso. El diagrama retrata la esencia del enfoque aerodinmico al desarrollo del software, que incluye un juego mnimo de diagramas de UML y algunas valiosas tcnicas que se toman de los casos del uso para codificar rpida y eficazmente. El enfoque es flexible y abierto; siempre se puede seleccionar de los otros aspectos del UML para complementar los materiales bsicos. III. COMPARATIVA TABLA 1.
DIFERENCIAS ENTRE METODOLOGA TRADICIONALES Y GILES

Metodologas Tradicionales
Basadas en normas provenientes de estndares seguidos por el entorno de desarrollo Cierta resistencia a los cambios

Metodologas Agiles

Basadas en heursticas provenientes de prcticas de produccin de cdigo Especialmente preparados para cambios durante el proyecto Impuestas internamente (por el equipo) Proceso menos controlado, con pocos principios. El cliente es parte del equipo de desarrollo

Impuestas externamente

Proceso mucho ms controlado, con numerosas polticas/normas

ICONIX
El proceso de ICONIX maneja casos de uso, como el RUP, pero le falta mucho para llegar al nivel del RUP. Tambin es relativamente pequeo y firme, como XP, pero no desecha el anlisis y diseo que hace XP. Este proceso tambin hace uso aerodinmico del UML mientras guarda un enfoque afilado en el seguimiento de requisitos [6].
El cliente interacta con el equipo de desarrollo mediante reuniones Ms artefactos Ms roles Grupos grandes y posiblemente distribuidos

Pocos artefactos Pocos roles Grupos pequeos (<10 integrantes) y trabajando en el mismo sitio Menos nfasis en la arquitectura del software

FIGURA 64.
ESQUEMA DE TRABAJO ICONIX La arquitectura del software es esencial y se expresa mediante modelos Existe un contrato prefijado

No existe contrato tradicional o al menos es bastante flexible

Por cada uno de las etapas ms comunes del desarrollo de SW y los enfoques de metodologas revisados.

Y, el proceso se queda igual a la visin original de Jacobson del manejo de casos de uso, esto produce un resultado concreto, especfico y casos de uso fcilmente entendible,
4

Doug Rosenberg and Matt Stephnes. Use Case Driven Object Modeling with UML. Apress. Berkeley, 2007.

Ingeniera en Sistemas

Universidad Nacional de Loja. Vernica Chimbo. Metodologas de Desarrollo de Software TABLA 2.


DIFERENCIAS POR ETAPAS Y ENFOQUE METODOLGICO MODELOS RIGUROSOS ETAPA MODELOS AGILES

5 TABLA 4.
POR LA CURVA DE APRENDIZ

Anlisis requerimientos Planificacin predictiva aislada y

de Planificacin adpatativa:Entregas frecuentes + colaboracin del cliente

Modelo de Proceso
RUP

Curva de aprendizaje

Herramienta de integracin

Soporte Externo

Lenta

Alto Soporte

Alto Soporte Algn Soporte Disponible Algn Soporte Disponible Algn Soporte Disponible

Planificacin Diseo flexible Extensible modelos Documentacin exhaustiva y + + Diseo Diseo Simple: Documentacin Mnima + Focalizado en la comunicacin

ICONIX

Rpida

Algn Soporte Disponible

XP

Rpida

No mencionado

Desarrollo individual con Roles y responsabilidades estrictas

Codificacin

Transferencia de conocimiento: Programacin en pares + conocimiento colectivo LiderazgoColaboracin: empoderamiento +auto-organizacin

SCRUM

Rpida

No mencionado

Actividades de control]: Orientado a los hitos + Gestin miniproyectos

Pruebas

Puesta Produccin

en

Con respecto a la curva de aprendizaje, se ve que los modelos giles, ofrecen una mayor ventaja pero con ciertas limitaciones, ya que aun no han sido explotadas a gran escala como lo es RUP que posee alto soporte y herramientas integrales que nos guan a travs del mismo, facilitando aplicar con mayor efectividad esta metodologa, permitiendo aprovecharla al mximo. IV.

TABLA 3.
POR LAS CARACTERSTICAS DEL PROYECTO

CONCLUSIONES

Modelo de Proceso
RUP

Tamao del Proceso


Medio Extenso Pequeo Medio /

Tamao del Equipo


Medio Extenso Pequeo Medio Pequeo /

Complejidad del Problema

Medio / Alto

ICONIX / / Pequeo / Medio

XP

Pequeo / Medio Pequeo / Medio

Medio / Alto

SCRUM

Pequeo

Medio / Alto

En este cuadro se presenta una comparativa de las modelos de proceso en cuanto a las caractersticas del proyecto, se analiza el tamao del proceso, del equipo y la complejidad del problema para cada uno de los modelos. Se resaltar que: con un pequeo equipo de desarrollo se puede realizar grandes proyectos, de alta complejidad; es el caso de XP y SCRUM.

Para que un grupo de desarrollo adopte una metodologa gil debe poseer experiencia trabajando con metodologas tradicionales, ya que la experiencia es la que predomina en los momentos cruciales del proyecto, adems debe tener la capacidad de ser equipos auto-gestionados, altamente motivados y con gran innovacin Las metodologas giles XP, SCRUM e ICONIX, permiten disminuir costos y brindar flexibilidad a los proyectos de software donde la incertidumbre est presente El uso de metodologas tradicionales como RUP, es esencial al inicio en un equipo de desarrollo de software Las metodologas giles: XP, SCRUM e ICONIX se deberan aplicar en proyectos donde exista mucha incertidumbre donde el entorno es voltil, donde los requisitos no se conocen con exactitud, mientras que las metodologas tradicionales (RUP) obligan al cliente a tomar las decisiones al inicio del proyecto. Las metodologas agiles forman parte de una alternativa de desarrollo de software, como es el caso de Scrum que esta orientado a la gestin de proyectos de software y el XP esta orientado al desarrollo propiamente dicho (practicas de programacin).

Ingeniera en Sistemas

Universidad Nacional de Loja. Vernica Chimbo. Metodologas de Desarrollo de Software

V.

RECOMENDACIONES

Que conozcan y apliquen las metodologas de Desarrollo de Software, para optimizar tiempo y recursos, en cada uno de los proyectos a realizarse. Que se tomen en cuenta las metodologas antes mencionadas en los proyectos de Desarrollo de Software para asegurar un Software de calidad. Para realizar pequeos proyectos, se recomienda XP y SCRUM ya que estos utilizan un pequeo equipo de desarrollo, facilitando de esta manera su proceso. En caso de proyectos de alta complejidad, utilizar RUP que posee alto soporte y herramientas integrales que nos guan a travs del mismo, facilitando aplicar con mayor efectividad esta metodologa, permitiendo aprovecharla al mximo.

VI.

BIBLIOGRAFA

[1] Isaas Carrillo Prez, Rodrigo Prez Gonzlez, Aureliano David Rodrguez Martn; METODOLOGIAS DE DESARROLLO DE SOFTWARE; 2008. [2] Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacin Superior Universidad Politcnica del Oeste Mariscal Sucre; Metodologa RUP, Caracas Mayo 2010. [3] Gregorio Robles y Jorge Ferrer; Programacin eXtrema y Software Libre; V Congreso HispaLinux - Universidad Autnoma de Madrid - 15 y 16 de noviembre de 2002 [4] Juan Palacios; Modelo Scrum; 2006; http://www.navegapolis.net/files/s/NST-010_01.pdf [5] Scrum y Programacion Extrema; Publicado por Robert More; http://universotela.blogspot.com/2011/05/scrum-yprogramacion-extrema.html [6] Doug Rosenberg and Matt Stephnes. Use Case Driven Object Modeling with UML. Apress. Berkeley, 2007.

Autora.
Traducido por: Vernica Paulina Chimbo Coronel Alumna de la Carrera de Ingeniera en Sistemas Universidad Nacional de Loja 2012 Este documento esta diseado para presentar una visin comparativa entre las diferentes Metodologas para el Desarrollo de Software

Ingeniera en Sistemas