Está en la página 1de 4

ARQUITECTURAS AGILES

Silvia Rivadeneira1, Gabriela Vilanova2


Grupo de Investigacin Modelado de Requerimientos y Diseo de Sistemas Complejos
Instituto de Tecnologa Aplicada
Departamento de Ciencias Exactas y Naturales
1
Unidad Acadmica Ro Turbio, 2Unidad Acadmica Caleta Olivia
Universidad Nacional de la Patagonia Austral

CONTEXTO
El presente trabajo1 intenta convertirse en una
aproximacin a la insercin de metodologas giles
en la arquitectura de software, un primer insumo a
modo de documento de trabajo en el marco del
proyecto de investigacin PI 29/B176-1 denominado
Modelado en Anlisis y Diseo de Software, un
enfoque arquitectural radicado en la Unidad
Acadmica Caleta Olivia (UACO) de la Universidad
Nacional de la Patagonia Austral (UNPA).

RESUMEN
Las metodologas giles han ido ganando bastante
popularidad en estos aos, y ltimamente, est
ganando ms adeptos en los claustros acadmicos.
La comunidad gil posee crticos y adeptos al uso de
arquitectura de software en este tipo de desarrollos.
Este trabajo intenta analizar los trabajos recientes
relacionados con esta rea poco conocida en el
ambiente acadmico.
Palabras clave: arquitectura de software,
metodologas giles, proceso de desarrollo de
software

1. INTRODUCCION
En [4] establecen que la arquitectura es el conjunto
de decisiones significativas sobre la organizacin de
un sistema software, la seleccin de elementos
estructurales y sus interfaces, su comportamiento, la
composicin de esos elementos estructurales y el
estilo arquitectnico que gua a la organizacin. Pero
tambin se relaciona con el uso, la funcionalidad, el
rendimiento, la capacidad de adaptacin, la
reutilizacin, la capacidad de ser comprendido, las
restricciones econmicas y tecnolgicas y los
compromisos entre alternativas, as como aspectos
estticos.
Coincidimos con [7] en que arquitectura de software
tiene que ver con la gran escala, las grandes
decisiones sobre la organizacin y estructura de los
elementos importantes del sistema, pero tambin es
parte investigacin y parte trabajo de diseo, esto en

UP (Unified Process) se denomina anlisis


arquitectural.
Definir la arquitectura de un software de manera
temprana tiene como beneficios [1]:
Asignar tareas a los grupos de trabajo.
Facilitar la estimacin.
Minimizar riesgos.
La SATI (Software Architecture Technology
Initiative) del SEI (Carnegie Mellon Software
Engineering Institute) viene desarrollando y
promulgando una serie de mtodos centrados en
arquitectura, tales como SAAM, ATAM, QAW,
ADD, CBAM o ARID. Estos mtodos predican los
axiomas que a continuacin se detallan [9]:
1. Los requisitos de atributos de calidad
impulsan la arquitectura de software.
a. Los requisitos de atributos de
calidad se derivan de los objetivos
de negocio / misin.
b. Los escenarios son una poderosa
manera de caracterizar los
atributos de calidad y representar
opiniones de los interesados.
2. Las actividades centradas en la arquitectura
conducen el ciclo de vida del sistema de
software.
a. Estas actividades deben tener un
enfoque explcito en los atributos
de calidad.
b. Estas actividades deben involucrar
a los actores directamente.
El SEI trabaja integrando mtodos centrados en
arquitectura en procesos populares de desarrollo de
software, tales como los giles [9].
A finales de los 90 surgen metodologas que

Ilustracin 1. Manifiesto gil


1

Financiado totalmente por la Universidad Nacional


de la Patagonia Austral, provincia de Santa Cruz,
Argentina.

combinan ideas viejas, nuevas y variaciones de ellas,


pero con cosas en comn, tales como: promover la
colaboracin entre equipos de desarrollo y expertos

del negocio, privilegiar la comunicacin cara a cara,


entrega frecuente de nuevas funcionalidades,
fomentar la mejora continua, equipos autoorganizados, formas de estructurar el cdigo con el
fin de que los requerimientos no provoquen crisis.
gil es un paradigma de desarrollo de software que
hace hincapi en el desarrollo rpido y flexible y
resta importancia del proyecto y la infraestructura de
proceso para su propio bien. En marzo de 2001, 17
representantes de estos cambios se reunieron,
utilizaron por primera vez el trmino gil y crearon
lo que acordaron en llamar el Manifiesto por el
Desarrollo gil de Software [1], [3], [9], [10] (ver
Ilustracin 1).
Hoy, existe una creciente discusin sobre utilizar los
trminos metodologas giles, desarrollo gil o
prcticas giles. Nosotros no nos detendremos en
esto, utilizaremos los trminos indistintamente pero
en ellos englobaremos los principios y prcticas
mencionados en el Manifiesto.
Pero volvamos al desarrollo gil, en este tipo de
desarrollo los clientes y los desarrolladores son
libres de interactuar constantemente, los proyectos
son construidos con las mejores herramientas y con
desarrolladores auto-motivados, el progreso es
medido por la cantidad de cdigo escrito que
contribuye a la funcionalidad entregada, la agilidad
se refuerza con la excelencia tcnica y el buen
diseo, simple, y, el equipo de proyecto es autoorganizado [9], [11].
Una de las mayores crticas que sufren las
metodologas giles se relaciona con la carencia de
prcticas vinculadas con el diseo de software o su
falta de formalismo en la especificacin, lo que,
habitualmente, se denomina hacer todo lo posible
por hacer lo menos posible [1], [9], [10], [11].
2. LNEAS DE INVESTIGACIN Y
DESARROLLO
Este artculo es parte del segundo proyecto de
investigacin del grupo. Las lneas de investigacin
que se vienen siguiendo estn relacionadas con la
ingeniera de software, bsicamente, las primeras
etapas en todo proceso de desarrollo de software, es
as, que nos interesa:
Modelado combinando BPMN y UML
Modelado aplicando metodologas giles
Integracin de BPM y SOA
Arquitectura de Software
Y por otro lado, y no menos importante, nos interesa
la construccin del conocimiento en red, interesados
por las siguientes lneas de trabajo:
La interaccin que se produce en entornos
colaborativos
La
construccin
colaborativa
del
conocimiento
3. RESULTADOS OBTENIDOS/ ESPERADOS
En primera instancia, realizamos un anlisis de la
bibliografa existente sobre arquitecturas giles, y,

en futuros trabajos buscaremos implementar algunas


prcticas en trabajos de campo, trabajos finales de
ctedra o casos reales.
Es bastante difcil encontrar trabajos acadmicos
relacionados con arquitectura de software en
metodologas giles [1] aunque se pueden encontrar
propuestas
interesantes
para
metodologas
especficas o ideas que hacen uso de mtodos
definidos por el SEI [2], [6], [11].
Autores como [1], [2] exponen la necesidad de
implementar prcticas tradicionales de Arquitectura
de Software con un enfoque gil, en cualquier tipo
de metodologas.
Moreno [8] expresa, y nosotros acordamos, que las
bases de una arquitectura gil deberan ser las
siguientes:
Estar orientada al negocio
Ser flexible
Ser colaborativa
No reinventar la rueda
El ms claro ejemplo de la nocin de diseo
arquitectural gil es la actividad de identificar y
analizar las prioridades y dependencias entre las
historias de usuario [5].
La planificacin de las iteraciones giles enfocada
en historias de usuario es la heurstica tpica
utilizada por la Comunidad gil, los requerimientos
deseados por los interesados son representados por
las historias de usuario y a stas ltimas se les asigna
la prioridad correspondiente segn las necesidades
del usuario final [5], [10].
Es posible incorporar mejoras a la planificacin de
entregas aadiendo arquitectura de software, por
ejemplo, al seleccionar las historias de usuario que
sern desarrolladas en cada iteracin, el equipo debe
identificar elementos arquitecturales que deben ser
implementados para soportarlas. Algunas de las
herramientas sugeridas por [5] son:
Matriz de estructura de dependencias
(DSM, Dependency Structure Matrix) que
muestra los subsistemas/actividades, la
informacin de intercambio y los patrones
de dependencia.
Matrices de mapeo de dominio (DMMs,
Domain Mapping Matrices) se puede usar
para representar las dependencias entre
capacidades y elementos arquitectnicos.
El anlisis de opciones real, modelo de
anlisis financiero que ayuda a determinar
si algn costo inicial debe ser pagado para
tener el derecho de realizar una accin en el
futuro.
La metfora de la deuda tcnica nos dice
que hacer las cosas rpidamente para un
beneficio a corto plazo nos llevar a una
deuda tcnica.
Los autores [2], [13] agregan tres tcticas diferentes
para integrar el desarrollo arquitectnico incremental
al enfoque de desarrollo gil, en este caso Scrum:

Alinear el desarrollo basado en funciones y


la
descomposicin
del
sistema.
Proporcionar flexibilidad a los equipos de
desarrollo, alinendolos en torno a historias

Ilustracin 2. Mtodo de arquitectura


gil [14]
de usuario (funcin) y la descomposicin
del sistema en relacin a servicios comunes
y la reutilizacin.
Crear una ruta de arquitectura. Hacer
dependencias
arquitectnicas
visibles
permite su gestin y que los equipos se
alineen con ellas.
Utilizar equipos matriz. En su forma ms
simple Scrum posee un nico equipo
multifuncional, con habilidad, autoridad y
conocimiento necesario para especificar
requerimientos y arquitectura, disear,
codificar y probar el sistema. La
complejidad puede requerir replicar ese
equipo en varios equipos.
Fowler [12] enuncia que la naturaleza del diseo ha
cambiado ya que, el diseo gil busca las siguientes
competencias o habilidades:
Un deseo constante de mantener el cdigo
tan claro y simple como sea posible.
Habilidades de refactorizacin, para que
puedas confiadamente hacer mejoras
cuando veas la necesidad.
Un buen conocimiento de patrones: no slo
las soluciones, sino tambin apreciar
cundo usarlos y cundo evolucionar hacia
ellos.
Saber cmo comunicar el diseo a la gente
que necesita entenderlo, usando cdigo,
diagramas y, sobre todo, conversacin.

Ambler [15] esboza algunas ideas para ir en camino


a la arquitectura gil, tales como:
No hay nada especial acerca de la
arquitectura. Todos tienen el mismo valor
en el proyecto, la humildad es un factor de
xito.
Cuidado con las arquitecturas torre de
marfil. Aquellas diseadas en solitario por
un arquitecto o grupo de arquitectos.
Cada sistema tiene una arquitectura.
Aunque no necesariamente hay modelos
arquitectnicos
que
definen
esa
arquitectura.
Arquitectura gil a escala. Mantener
estrategias en cuanto a tamao del equipo,
cumplimiento de normas, distribucin de
equipos, complejidad tcnica.
Pero quin es responsable por la arquitectura? En
equipos pequeos, todo el equipo. Afirman que la
arquitectura es demasiado importante para dejarla en
manos de una sola persona, pero puede volverse en
contra si son varias las personas que participan en su
elaboracin [1], [15].
Meier [14] define su propio mtodo de arquitectura
gil en cinco pasos (ver ilustracin 2):
Identificar los objetivos de la arquitectura
Identificar los escenarios clave
Crear una visin general de la aplicacin
Analizar los puntos clave
Crear soluciones candidatas
Los objetivos de un arquitecto gil segn [16] son:
Entregar soluciones de trabajo.
Maximizar el valor de los interesados
(stakeholders).
Encontrar soluciones que respondan a los
objetivos de todas las partes interesadas.
Habilitar el siguiente esfuerzo.
Gestionar cambios y complejidad.
Johnston [16] establece, tambin, siete principios o
reglas de oro para los arquitectos giles:
Valorizar a la gente.
Comunicar.
Menos es ms.
Planificarlo, gestionarlo.
Seleccionar la solucin correcta para la
empresa.
Entregar calidad.
Modelar y documentar de manera gil.
Luego de analizar los distintos autores a los que
tuvimos acceso podemos concluir que es factible
implementar distintas prcticas giles al crear una
arquitectura de software, pero que tambin es un
campo en el que an no hay nada cerrado o definido.
4. FORMACION DE RECURSOS HUMANOS
Los integrantes del proyecto pertenecen en su
mayora a la UNPA, contamos con un asesor,
acadmico perteneciente a Universidad de

Magallanes (UMAG), quien es profesor visitante en


la Unidad Acadmica Ro Turbio (UART), cuyo rol
adems de formar auxiliares de docencia, es preparar
e instruir jvenes investigadores en el rea de
Ingeniera de Software.
Asimismo, un par de integrantes pertenecen a la
Maestra en Educacin en Entornos Virtuales y se
encuentran en trabajo de tesis, uno de los integrantes
cursa la Maestra en Informtica y Sistemas; y un
ltimo integrante ha cursado y presentado su tesina
para
la
Especializacin
en
Management
Tecnolgico.
Contamos, adems, con un alumno de pre-grado de
la carrera Analista de Sistemas quien se encuentra
realizando el trabajo final.
5. BIBLIOGRAFIA
[1] Anacleto, V. 2008. El rol de la arquitectura de
software en las metodologas giles. Epidata
Consulting.
[2] Bachmann, F., Nord, R., Ozkaya, I. 2012.
Architectural Tactics to Support Rapid and
Agile Stability. CrossTalk.
[3] Beck, K. et al.: The agile manifesto.
Manifesto for Agile Software Development.
En: http://www.agilemanifesto.org
[4] Booch, G., Rumbaugh, J., Jacobson, I. 2006.
El lenguaje unificado de modelado. Pearson
Educacin. Madrid.
[5] Brown, N., Nord, R., Ozkaya, I. 2010.
Enabling Agility Through Architecture.
CrossTalk.
[6] Caadillas, D. 2010. Implantacin de
arquitectura de desarrollo gil. Universidad
Carlos III de Madrid.
[7] Larman, C. 2003. UML y patrones. Pearson
Educacin. Madrid.
[8] Moreno, J. Arquitectura gil. ORACLE.
Mxico.
[9] Nord, R., Tomayko, J., Wojcik, R. 2004.
Integrating
Software-Architecture-Centric
Methods into Extreme Programming (XP).
Technical Note CMU/SEI-2004-TN-036.
[10] Rivadeneira, S. 2013. Metodologas giles
enfocadas al modelado de requerimientos.
ICT-UNPA-57-2012.
[11] Urquiza, F., Martnez, A., Ibargengoitia, G.
2010. Las metodologas giles y las
arquitecturas de software. CONIIS.
[12] Fowler, M. 2000. Is design dead? En:
http://martinfowler.com/articles/designDead.h
tml. Consultado 01/09/2014.
[13] Ozykaya, I. 2011. Agile development and
Software Achitecture: understanding scale
and risk. SEI.
[14] Meier, J. 2008. Agile Architecture Method.
En:
http://blogs.msdn.com/b/jmeier/archive/2008/
11/06/agile-architecture-method.aspx

[15] Ambler, S. 2012. Agile Architecture:


Strategies for Scaling Agile Development.
En:
http://www.agilemodeling.com/essays/agileA
rchitecture.htm
[16] Johnston, A. Bringing Agility to Architecture,
and Architecture to Agility. Agile Architect.
En:
http://www.agilearchitect.org/agile/index.asp

También podría gustarte