Documentos de Académico
Documentos de Profesional
Documentos de Cultura
12articulo - Rev Tec Num 2 PDF
12articulo - Rev Tec Num 2 PDF
Resumen
Abstract
as metodologas giles han ganado popularidad desde hace algunos aos, ya que
constituyen una buena solucin para proyectos
a corto plazo, en especial, aquellos proyectos
en dnde los requisitos estn cambiando
constantemente, un ejemplo de esto son las aplicaciones para
dispositivos mviles, debido a que ests tienen que satisfacer
una serie de caractersticas y condicionantes especiales, tales
como: canal, movilidad, portabilidad, capacidades especficas
de las terminales, entre otras, y aun cuando existen miles de
aplicaciones para dispositivos mviles que corren en diferentes sistemas operativos IOs, Android, BlackBerry y Windows
Mobile; stas llenan las expectativas de los usuarios hasta cierto
punto por su escasa calidad en el desarrollo, ya que el uso de
metodologas de desarrollo de software no se considera importante en este mbito, por tanto, los desarrollos para dispositivos
mviles, hasta el momento, se han venido realizando, principalmente, de manera desordenada y en la mayora de los casos
por desarrolladores individuales que no aplican mtodos de
ingeniera de software que garanticen su mantenibilidad y por
lo tanto su calidad.
Introduccin
La ingeniera de software juega un papel importante en el
desarrollo, portabilidad, mantenibilidad, funcionalidad,
fiabilidad y productividad del software, igualmente, las
metodologas giles son procesos para desarrollar software de manera rpida con gran facilidad de adopcin
por los equipos de trabajo [1]. Del 11 al 13 de febrero
de 2001, se llev a cabo en Snowbird Utah una reunin
de miembros prominentes de la comunidad cientfica
donde nace el trmino mtodos giles termino que
implica ser eficaz y fcil de manejar [2], lo que es muy
conveniente para el tamao y agilidad de los proyectos
de aplicaciones mviles, las cuales han venido creciendo
considerablemente en los ltimos aos, en nmero de
desarrollos, pero no en calidad, esto nos permite reconocer que los mtodos de software deben ser adaptados
[3] e involucrados en el desarrollo de aplicaciones para
dispositivos mviles, si es que se quiere lograr un efecto
ptimo en este mbito [4].
Sin embargo, existen muy pocas investigaciones hasta el
momento sobre el uso de los mtodos giles en el desarrollo de aplicaciones para dispositivos mviles, debido
a esto, sta investigacin presenta una sntesis sobre el
desarrollo de aplicaciones, sistemas operativos y metodologas de desarrollo, para lo cual, se han seleccionado las
tres (3) metodologas giles ms referenciadas [5], con
mayor presencia de documentacin en internet y orientadas a desarrollos de tamao reducido propio de las
aplicaciones para dispositivos mviles, como son Extreme
Programing (XP), Scrum y Test Driven Development
(TDD), adems presenta una sntesis de metodologas
usadas actualmente para dichos desarrollos. En la primera
parte se exponen algunas caractersticas de las metodologas giles ms usadas; en la segunda se expondrn
algunas generalidades del desarrollo de aplicaciones para
dispositivos mviles as como algunas caractersticas de
sus sistemas operativos, para concluir con una revisin de
las metodologas utilizadas actualmente en el desarrollo
de aplicaciones para dispositivos mviles.
Apreciaciones tericas
El presente capitulo muestra una breve descripcin sobre
metodologa del software y metodologas giles, enfo-
Qu es una metodologa
de desarrollo?
Una metodologa es una coleccin de procedimientos, tcnicas, herramientas y documentos
auxiliares que ayudan a los desarrolladores de
software en sus esfuerzos por implementar
nuevos sistemas de informacin. Una metodologa est formada por fases, cada una de las cuales
se puede dividir en sub-fases, que guiarn a los
desarrolladores de sistemas a elegir las tcnicas
ms apropiadas en cada momento del proyecto y
tambin a planificarlo, gestionarlo, controlarlo y
evaluarlo. [8].
En esta definicin Avison y Fitzgerald, presentan una
descripcin de las metodologas de desarrollo y destacan
sus principales componentes, fases, herramientas y
tcnicas. Sin embargo una metodologa es algo ms que
una coleccin, puesto que se basa en una filosofa, distinguindose de los mtodos o de las simples recetas, que
marcan unos pasos a seguir y ya est. As, las metodologas difieren ya sea por la cantidad de fases, las tcnicas
de cada fase, el contenido de la fase o en su base filosfica, todo esto se aplica, dependiendo del contexto
de desarrollo, tamao del proyecto o del equipo de
trabajo, cultura organizacional, entre otros aspectos, por
lo que en el caso de los desarrollos mviles, es de vital
importancia su seleccin, para garantizar un producto de
calidad.
Metodologas giles
Las metodologas en general se clasifican segn su
enfoque y caractersticas esenciales, las ms recientes,
que se fueron gestando a finales del siglo pasado y que se
han comenzado a manifestar desde principios del actual,
se han denominado metodologas giles y surgen como
una alternativa a las tradicionales, estas metodologas se
derivan de la lista de los principios que se encuentran en
el Manifiesto gil [9], y estn basados en un desarrollo
iterativo que se centra ms en capturar mejor los requisitos cambiantes y la gestin de los riesgos, rompiendo el
proyecto en iteraciones de diferente longitud, cada una
de ellas generando un producto completo y entregable;
e incremental donde un producto se construye bloque
a bloque durante todo el ciclo de vida de desarrollo del
producto, las iteraciones individuales deben producir
alguna caracterstica completamente funcional o mejorada [10] su principal objetivo es reducir el tiempo
de desarrollo, del mismo modo que con el modelo en
cascada o waterfall que fuera introducido por Royce en
1970 [11] y usado inicialmente para desarrollo de software, pero expandido por Boehm en 1981 [12], donde
todos los requisitos se analizan antes de empezar a
desarrollar, sin embargo, los requisitos se dividen en
incrementos independientemente funcionales.
Muchas ideas que se plantean en las metodologas giles
no son nuevas, gran parte de ellas ya fueron reflejadas
por Brooks en su libro, The Mythical Man Month [13]
y en gran parte responden al sentido comn. Algunos
autores consideran que se ha cumplido un crculo que
empez con una reaccin provocada por mltiples
factores y sealada temporalmente por el manifiesto de
Dijkstra, en el cual se haca un llamamiento a la disciplina
y que se cierra con el ya famoso Manifest for gile Software Development, una peticin por la relajacin de los
procesos en pro de las personas [9].
La aparicin de las metodologas giles no puede ser
asociada a una nica causa, sino a todo un conjunto de
ellas, si bien es cierto que la mayora de autores lo relacionan con una reaccin a las metodologas tradicionales,
cules fueron las causas de esta reaccin?, los factores
que comnmente se mencionan son la pesadez, lentitud
de reaccin y exceso de documentacin, en definitiva,
falta de agilidad de los modelos de desarrollo formales;
otro punto importante sera la explosin de la red, las
aplicaciones Web y las aplicaciones mviles, as como el
crecimiento notorio del movimiento open source.
A todo esto se puede aadir un cambio bastante importante, en cuanto a la demanda del mercado del software,
cada vez ms orientada a la Web y a dispositivos mviles,
con requisitos muy voltiles y en constante cambio, que
requieren tiempos de desarrollo cada vez ms cortos, lo
que provoc que las empresas se fijaran ms en nuevos
Scrum
No se puede hablar de Scrum sin mencionar a Takeuchi
y Nonaka [18] donde presentan un proceso adaptativo,
rpido y auto-organizado de desarrollo de productos y
exponen por primera vez el trmino Scrum que se deriva
del mismo trmino en rugby y hace referencia a como
se devuelve un baln que ha salido fuera del campo, al
terreno de juego de una manera colectiva. Scrum surgi
como prctica en el desarrollo de productos tecnolgicos y no sera hasta 1993 que Jeff Sutherland aplicar el
modelo al desarrollo de software en la Easel Corporation,
como lo muestran Avison y Fitzgerald [8].
Scrum se centra la gestin de proyectos en situaciones
en las que es difcil planificar el futuro, con mecanismos
de control proceso emprico, donde los bucles de realimentacin constituyen el elemento central. El software
es desarrollado por un equipo de auto-organizacin en
incrementos (llamados sprints), empezando por la
planificacin y finalizando con un comentario. Las caractersticas que deben aplicarse en el sistema se registran en
un backlog. Entonces, el dueo del producto decide qu
elementos del backlog se deben desarrollar en el sprint
siguiente. Los miembros del equipo coordinan su trabajo
en un diario de stand-up de la reunin. Un miembro del
equipo, el Scrum Master (equivalente al gerente del
proyecto), es el encargado de resolver los problemas
que impiden que el equipo trabaje eficazmente [19], este
equipo generalmente es de diez o menos componentes,
aunque Schwaber and Beedle recomiendan equipos de
cinco integrantes [19], dividiendo el equipo principal en
equipos ms pequeos si fuera necesario.
Aun con las recomendaciones que presentan Schwaber
y Beedle [19], para los proyectos actuales y ms concretamente los desarrollos para dispositivos mviles, el
equipo de desarrollo se est encontrando con problemas
de requisitos variables y tecnologas con caractersticas
muy diferentes. En esta situacin se recomienda que el
primer sprint tenga una funcionalidad implementada con
la tecnologa que est dando problemas, se seguir con
24%
22%
Chrome
26%
Flash
31%
Symbiat
34%
Blackberry
35%
JavaME
Windows
phone
37%
Qt
53%
mobile
web
iOS
Android
Android de Google
Fue adquirido por Google en 2005 cuando compro la
firma Android Inc. Con el fin de asegurar que un sistema
operativo para mviles (OS), pudiera ser creado y mantenido en una plataforma abierta [33], desde entonces
Google invierte cada ao una gran cantidad de tiempo y
recursos en el proyecto Android, que ya ha demostrado
ser un negocio muy beneficioso, no solo para Google,
ya que, slo en el tercer trimestre de 2012 se comercializaron 136 millones de aparatos con este software y a
nivel mundial alcanz una cuota de mercado del 50,9%
2. En marketing, se conoce como mindshare (presencia
mental) a un parmetro que mide la cantidad o porcentaje de personas que piensan en una determinada marca o producto, cuando se les menciona una
categora o tipo de productos [32].
IOS de Apple
Sistema operativo mvil de Apple, diseado para sus
dispositivos mviles. Inicialmente desarrollado para el
iPhone y presentado en pblico el 9 de enero de 2007,
puesto en el mercado el 29 de junio de 2007, contaba con
una plataforma cerrada que solo permita instalar aplicaciones nativas desarrolladas por Apple [39] pero el 10
de julio de 2007 un grupo de hackers llamado el iPhone
Dev Team lanzaron la aplicacin PwnageTool, para hacer
jailbreak, proceso de eliminar las limitaciones impuestas
por Apple en dispositivos que utilicen el sistema operativo iOS mediante el uso de kernels modificados [40];
el IOS fue ms tarde implementado para el iPod Touch,
iPad y Apple TV [41]page:35-40,volume:7,issu
e:1,source:EBSCOhost,archive:iih,abstract
Mobile-D
Mobile-D consta de cinco fases: exploracin, iniciacin,
produccin, estabilizacin y prueba del sistema. Cada
una de estas fases tiene un nmero de etapas, tareas y
prcticas asociadas. Las especificaciones completas del
mtodo estn disponibles en [62]. En la primera fase,
Explorar, el equipo de desarrollo debe generar un plan y
establecer las caractersticas del proyecto. Esto se realiza
en tres etapas: establecimiento actores, definicin del
alcance y el establecimiento de proyectos. Las tareas
asociadas a esta fase incluyen el establecimiento del
cliente (los clientes que toman parte activa en el proceso
de desarrollo), la planificacin inicial del proyecto y los
requisitos de recogida, y el establecimiento de procesos.
Explore
Initialize
Productionize
Stabilize
Stakeholder
establishment
Project set-up
Planning day
Planning day
System test
Scope
definition
Planning day in
0 iteration
Working day
Working day
Planning day
Project
establishment
Working day in
0 iteration
Release day
Documentation
wrap-up
Working day
Release day
Release day
Release day in
0 iteration
Premilinary analysis
Detailed analysis
Architectural design
Detailed analysis
Commercialization
Proceso de adaptacin.
En la cuarta iteracin los resultados de la iteracin anterior son utilizados para identificar y dar prioridad a los
atributos de facilidad de uso; se desarrolla la versin beta
y se libera para su evaluacin por parte del cliente.
En la quinta iteracin se desarrolla el producto final; se
realiza una evaluacin de facilidad de uso, la calificacin
de cada atributo se calcula y se compara con la calificacin de la fase anterior. Una alteracin en el producto
final se realiza sobre la base de los resultados y se libera
al producto.
Conclusiones
Las metodologas giles son una excelente alternativa para guiar proyectos de desarrollo de software de
tamao reducido, como es el caso de las aplicaciones
para dispositivos mviles, gracias a la gran facilidad de
adaptacin que poseen; pero estas necesitan ser adaptadas a las caractersticas especiales de estos dispositivos
con el fin de obtener productos de calidad.
Dentro de las caractersticas se puede mencionar la gran
rapidez con que van cambiando las versiones de los
sistemas operativos (SO) mviles, la aparicin de nuevas
prestaciones de hardware, la reida competencia de las
empresas y comunidades de desarrollo por apropiarse
del mercado, lo que conduce a la tendencia de desarrollar
aplicaciones en cortos lapsos de tiempo y en la mayora de
casos sacrificando la calidad del producto, precisamente
por no seguir una metodologa o tcnicas de desarrollo
apropiadas y es por eso que en la mayora de los casos,
sus esfuerzos terminan por no dar los frutos esperados.
Aun cuando existe una gran variedad de metodologas
(giles y tradicionales), en el mbito del desarrollo para
dispositivos mviles, la mayora de los esfuerzos han
sido encaminados al desarrollo de nuevas metodologas,
basadas en prcticas de las tradicionales, con algunos
aditamentos de tcnicas modernas como usabilidad
entre otras, por lo cual, esta propuesta fue orienta en las
metodologas agiles.
Referencias
[1] O. Salo y P. Abrahamsson, Agile methods in
European embedded software development orga-
[24] P. Letelier, J. H. Cans, y E. A. Snchez, An Experiment Working with RUP and XP, en Extreme
Programming and Agile Processes in Software
Engineering, vol. 2675, M. Marchesi y G. Succi, Eds.
Berlin, Heidelberg: Springer Berlin Heidelberg, pp.
41-46.
El Autor
Yohn Daniel Amaya Balaguera
Licenciado en Informtica Educativa; Institucin: Universidad pedaggica y tecnolgica de Colombia;
Ao obtencin: 2007; Magister en Tecnologa Informtica Institucin: Universidad pedaggica y
tecnolgica de Colombia; Cargo: Docente, Institucin: Secretaria de Educacin de Boyac; Ponente
en CACIED 2013 Congreso Andino de computacin, informtica y educacin. San Juan de Pasto,
Noviembre 5 al 8 de 2013.
Correo personal: yohn.amaya@gmail.com - yohn.amaya@uptc.edu.co
124 Revista de Tecnologa Journal Technology Volumen 12 Nmero 2 Pgs. 111-124