Vous êtes sur la page 1sur 60

• Mejora de Procesos

• Mantenimiento
• Diseño orientado
a objetos

[ ENTREVISTA ]
Scott Ambler
La Evolución de Ágil
Software Guru CONOCIMIENTO EN PRÁCTICA
Año 03 No. 4 • Julio-Agosto 2007 • www.sg.com.mx

México, $65.00

WEB 2.0 El poder de la colaboración


Noticias • Eventos • Fundamentos • UML • Infraestructura • Biblioteca • Gadgets [ Tutorial ]
Apache Lucene
// CONTENIDO

directorio
Dirección Editorial
Pedro Galván

Dirección de Operaciones
Mara Ruvalcaba

Arte y Diseño
David Gutiérrez
Oscar Sámano

Consejo Editorial
Francisco Camargo, Ralf Eder, Raúl Trejo,

Editorial
Guillermo Rodríguez, ITESM-CEM;
Hanna Oktaba, UNAM-AMCIS;
Luis Cuellar, Softtek;
Luis Vinicio León, e-Quallity - ITESO.

Colaboradores
Oscar Cortés, Miguel Ángel Morán,
Aldo Hernández, Alexis Castañares,
Edgar Parada, Carlos “Fofo” Ordoñez,
Rocío García Ocaña, José M. Esquivel,
Aquiles Santana, Juan M. Hernández,
Luis Daniel Soto, Sergio Orozco, Ariel García,
Emilio Osorio, Jorge Palacios, Susana Tamayo.

Fotografía
Lectores SG
Sabemos que cuando les llegue esta buena respuesta. Muchas gracias. Espe-
revista probablemente ya vayan a estar ramos que les haya gustado el resultado,
Ventas
hartos de oír sobre Web 2.0 y estén listos y que logren encontrarse por ahí. Claudia Perea
para ahorcar a la próxima persona que Natalia Sánchez
se quiera hacer el interesante sacando a Esta edición de SG es una de las más den-
colación este término. Definitivamente es sas que hemos hecho, en términos de Marketing y RP
algo que ha sido sobreexplotado, y since- contenido técnico. Esperamos que sea de Dafne Vidal
ramente nos disculpamos por contribuir a su satisfacción. Ya saben que con gusto
ello. Es solo que consideramos que real- recibimos cualquier retroalimentación en Circulación y Subscripciones
mente es algo notable, y por lo tanto no lo editorial@softwareguru.com.mx Daniel Velázquez
podíamos dejar pasar sin atender. Hemos
hecho un gran esfuerzo por proveer artí- Cada vez está más cerca SG ’07. Estamos Administración
culos serios y objetivos que los ayuden muy emocionados de volver a verlos y sen- Araceli Torres
a formar una opinión propia e informada tir esa energía. Sabemos que ustedes tam-
Contacto
sobre esta tendencia. bién están muy interesados en poder asis- info@softwareguru.com.mx
tir para aprender y compartir experiencias +52 55 5239 5502
Para nosotros, lo verdaderamente nota- con sus colegas. Les garantizamos que
ble de Web 2.0 no es la tecnología, sino estamos haciendo todo para que esta edi-
la participación. Esto es lo que realmen- ción salga todavía mejor que el año pasa- SG Software Guru es una publicación bimestral
te agrega valor y le da su sabor. Es por do. La visión sigue siendo la misma: tener editada por Brainworx S.A. de C.V., Malinche no.
ello que los invitamos a participar para en México un congreso de clase mundial 6, Col. El Parque, C.P. 53398, Naucalpan, México.
Queda prohibida la reproducción total o parcial
generar la creatividad de este número, y para profesionistas de software.
del contenido sin previo aviso por escrito de los
estamos muy satisfechos con los resulta- editores. Todos los artículos son responsabilidad de
dos. La verdad es que no cualquier revista — Equipo Editorial sus propios autores y no necesariamente reflejan el
puede darse el lujo de darle tan solo un punto de vista de la editorial. Reserva de Derechos
al Uso Exclusivo: 04-2004-090212091400-102.
par de días a sus lectores para que en- Certificado de licitud de título: 12999. Certificado
víen fotografías personales, y obtener tan de licitud de contenido:10572. ISSN: 1870-0888.
Registro Postal: PP15-5106. Se imprimió en julio de
2007 en Litográfica Roma. Distribuido por Rrecca
Comercializadora y Sepomex.

02 JUL-AGO 2007 www.sg.com.mx


contenido
jul-ago 2007

18 EN PORTADA
WEB 2.0
A través de una variedad de artículos
definimos qué es el Web 2.0, qué carac-
terísticas tienen las aplicaciones de este
tipo, y cómo es que se desarrollan.

Productos
LO QUE VIENE 10
Tecnologías RIA, Visual Studio 2008,
JBoss Seam 2.0, Spring Batch

TUTORIAL 12
Desarrollo de código seguro
con Visual Studio

Columnas Prácticas
Tejiendo Nuestra Red 06 Tendencias en Software 43 MANTENIMIENTO 32
por Hanna Oktaba por Luis Daniel Soto Mantenimiento de Software
José M. Esquivel hace un repazo sobre la impor-
Mejora Continua 08 Tierra Libre 46 tancia del mantenimiento de software, y algunas
por Luis Cuellar por Emilio Osorio mejores prácticas de esta disciplina.

Cátedra y Más 30 ADMINISTRACIÓN DE PROYECTOS 34


por Raul Trejo Análisis de Puntos Función, parte 3
Finalizamos este caso de estudio, donde apren-
dimos a aplicar la técnica de análisis de puntos
función a un caso real.
En Cada Número
MEJORA DE PROCESOS 37
Noticias y Eventos 04 INFRAESTRUCTURA 50 Las 7 Claves de la Mejora de Procesos
Rocío García comparte con nosotros algunos
Fundamentos 48 BIBLIOTECA 56 tips y recomendaciones clave para la mejora de
procesos en las organizaciones de software.

DISEÑO 40

14
El Mariachi Orientado a Objetos
Carlos Ordoñez adopta un enfoque divertido para
explicar un tema bastante complicado: la incor-
Entrevista poración de patrones para hacer más flexible y
Scott Ambler robusto un diseño orientado a objetos.
La Evolución de Ágil

www.sg.com.mx JUL-AGO 2007 03


// NOTICIAS

SUN Tech Days 2007


La gira mundial Sun Tech Days 2007 realizó su visi-
ta correspondiente a la ciudad de México del pasado
16 a 18 de mayo. Este tour visitó 15 ciudades en todo
el mundo, y es una excelente noticia que se hayan in-
cluido 3 ciudades de América Latina: Buenos Aires,
Sao Paulo, y Ciudad de México. Algo que le dio mucha
fuerza al evento de Ciudad de México es que se reali-
zó apenas unos días después del JavaOne 2007, y las
presentaciones ya incluían mucho de lo que se vio en
dicho evento, así que los asistentes tuvieron oportuni-
dad de estar en contacto con lo último de lo último en
cuanto a tecnologías como Java, Solaris y NetBeans. Los
archivos de las presentaciones se pueden descargar en:
http://suntechdays.com.mx/downloads/

IBM Strategic Innovation Forum


Los pasados 29 y 30 de mayo, IBM llevó a cabo el Stra-
tegic Innovation Forum, uno de los eventos más im-
portantes de IBM en el 2007, donde acudieron clien-
tes de diferentes industrias en busca de propuestas
que les apoyen a mejorar sus procesos y estrategias
de negocio. Se revisaron temas como la optimización
de la infraestructura, el poder de la información, go-
bernabilidad, manejo de riesgos, y la flexibilidad en los
negocios. Eduardo Gutiérrez, Director de la división de
software en México, nos comentó que el siguiente paso
de IBM es convertirse en la empresa de software más
importante. Por lo que estaremos recibiendo noticias
de IBM en el segmento de software.

Directores TI 2007
Los días 13 al 15 de junio, hospedada en la Universidad Vera-
cruzana, se llevó a cabo la XVI Reunión Nacional de Directores
de Escuelas y Facultades de Informática y Computación, que
organiza la Asociación Nacional de Instituciones de Educación
en Tecnologías de la Información – ANIEI. Durante la reunión
se realizaron mesas de trabajo que revisaron temas como: mo-
delos curriculares, vinculación academia-industria-gobierno, y
siguientes metas para la estrategia 2 de PROSOFT, entre otros.
Como problemas prioritarios se identificó la baja en las matrí-
culas de las carreras de TI, la enorme brecha entre la oferta
y la demanda de capital humano; problemas que ya en la ac-
tualidad, impiden el desarrollo de la industria de software en
México. Ya los Directores de las carreras de TI se encuentran
trabajando al respecto, pero es necesario que todos los involu-
crados pongamos nuestro granito de arena.
Para mayor información visita: www.aniei.org.mx

04 JUL-AGO 2007 www.sg.com.mx


// EVENTOS

16 al 18 de Julio 2007 23 de Agosto 2007


CIISA 2007 Estrategia para una PMO y Equipos Virtuales
Guadalajara, Jalisco Ciclo de conferencias, PMI Capítulo México y REPs
Info: www.ciisa.gda.itesm.mx Cd. de México
e-mail: ciisa.gdl@servicios.itesm.mx Info: www.pmichapters-mexico.org/mexico
e-mail: info@pmichapters-mexico.org
25 y 26 de Julio 2007
Mexico and the Knowledge Society
Strategic IT Training Cycle, Cutter Consortium 27 y 28 de Agosto 2007
25 de Julio - Hotel Camino Real, Monterrey, N.L. IDC 3a. Cumbre de Gobierno y Tecnología
26 de Julio - Hotel JW Marriott, Cd. de México Centro Banamex, Cd. de México
Info: www.cutter.com.mx/ciclo2007 Info: www.idc-eventos.com
Tel: +52 (81) 2282 6266 y +52 (55) 5336 0418 e-mail: idc@simrel.com.mx
e-mail: eventos@cutter.com

30 y 31 de Agosto 2007
26 de Julio 2007 Agile Project Management:
El Director de Proyectos y Innovation in Action
el Analista de Negocios Strategic IT Training Cycle, Cutter Consortium
Ciclo de conferencias, PMI Capítulo México y REPs 30 de Agosto - Hotel Camino Real, Monterrey, N.L.
Cd. de México 31 de Agosto - Hotel JW Marriott, Cd. de México
Info: www.pmichapters-mexico.org/mexico Info: www.cutter.com.mx/ciclo2007
e-mail: info@pmichapters-mexico.org Tel: +52 (81) 2282 6266 y +52 (55) 5336 0418
e-mail: eventos@cutter.com

AMITI elige nuevo Consejo Directivo Gartner Outsourcing Summit


El pasado mes de mayo, los socios de la AMITI eligieron El pasado 27 de junio, Gartner presentó la tercera edi-
por votación a los integrantes del nuevo Consejo Directivo ción del Outsourcing Summit, tocando como tema prin-
que ha de conducir los trabajos de esta asociación en el cipal el aprovechamiento de los activos y servicios de
periodo 2007 - 2009. Varios de los consejeros fueron rati- TI, para lograr mejores resultados del negocio. Los ana-
ficados, lo que asegura continuidad en las iniciativas de la listas de Gartner presentaron temas relacionados con:
asociación. Por su parte, el actual Presidente Rafael Funes, multisourcing, evaluación y selección de proveedores,
Director General de DynaWare, ha sido un actor incansable servicios tercerizados de TI y Business Process Outsour-
en pro del fortalecimiento de la industria. AMITI continuará cing, entre otros. Al término del evento, los asistentes
trabajando para hacer más competitivos a todos los actores lograron obtener una visión clara de las áreas del “Out-
económicos y sociales del país, a través del uso y aprove- sourcing”, con una perspectiva de todas las opciones,
chamiento de las TIs. riesgos y oportunidades disponibles.

Empresas recientemente Congreso ANADIC 2007


evaluadas en CMMI y MoProSoft:
Con sede en Cancún, Quintana Roo, se llevó a cabo del 27
Empresa Evaluación Apoyado por: al 30 de junio el 7º Congreso Nacional de la ANADIC, en
Computación XXI MoProSoft 1 – nov 2006 SIE Center* el cual participaron mayoristas y distribuidores de TI de
Praxis CMMI 4 – ene 2007 América XXI toda la República. En el evento liderado por Francisco
Medisist CMMI 2 – feb 2007 SIE Center* Wilson, Presidente de la Asociación,  se reunieron  los
ST CMMI 2 - feb 2007 SIE Center* representantes de las diferentes empresas que forman
Novutek CMMI 3 – may 2007 Itera parte de ANADIC y ANADICSoft, además de diversos go-
Mexware CMMI 3 – jun 2007 Itera bernadores y diputados. El evento estuvo lleno de dis-
EISEI CMMI 2 – jul 2007 Innevo tintas actividades como: foros, reuniones de trabajo,
presentaciones de productos, talleres, capacitación y
*Ahora ESI Center certificaciones.

www.sg.com.mx JUL-AGO 2007 05


// COLUMNA
// COLUMNA /*TEJIENDO NUESTRA RED*/

Lo que Pasó en Moscú


El Tercer Capítulo de WG4

La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software, Tecnolo-
gía Orientada a Objetos, Modelos de Procesos de Software y Mejora de Procesos. Es fundadora de la AMCIS. Actualmente es miembro de
International Process Research Group (IPRC). También es Directora Técnica del proyecto COMPETISOFT.

D el 21 al 25 de mayo de 2007 Moscú fue la sede de la se-


sión plenaria del comité ISO/IEC JTC1 SC7 dedicado a la
generación de normas para el área de Ingeniería de Software
Después de las formalidades de la inauguración, nos dirigimos
a los lugares de trabajo asignados a cada grupo. El grupo WG24
contaba, en su gran mayoría, con los mismos asistentes que en
y de Sistemas. Los lectores de SG ya saben que en este comité Luxemburgo: los delegados de Bélgica, Luxemburgo, Finlandia,
se creó un grupo de trabajo WG24, para generar una norma de Canadá (dos personas), Estados Unidos, Tailandia (dos perso-
Software Life Cycle Profiles and Guidelines for use in Very Small nas) y Australia. También se incorporó un asistente de Japón y
Enterprises (VSE). También saben que hace un año en Bangkok, algunos otros, como el de la India, que venían ocasionalmente
este grupo decidió tomar la norma mexicana basada en MoPro- para enterarse de lo que pasaba en nuestro grupo.
Soft y EvalProSoft, como punto de partida para los trabajos del
grupo. En el número de noviembre-diciembre 2006 de SG, les El resumen de los resultados de trabajo de una semana del
relatamos lo que pasó en la segunda participación de la Delega- WG24 en Moscú es el siguiente:
ción Mexicana en octubre pasado en la ciudad de Luxemburgo, • La futura norma ya tiene su número: 29110 (apréndanselo por
la que terminó en la selección de un subconjunto de procesos favor, porque a mi me va a costar trabajo).
de la categoría de Operación de MoProSoft como candidatos a • Contará con cinco partes:
ser la primera guía de implementación de procesos identificado o La primera describirá el contexto y las características de em-
como Perfil 1. presas pequeñas de desarrollo de software a nivel mundial y las
razones por las cuales ameritan una atención especial de ISO.
En Moscú, Ana Vázquez y yo, formamos la Delegación que re- o La segunda explicará el concepto de perfil y su taxonomía.
presentó a México. La sesión plenaria del lunes 21 de mayo em- o La tercera describirá el perfil, que es el conjunto de requisitos
pezó con la presentación de alrededor de 140 delegados que de otros estándares que se tomaron como base para crearlo.
vinieron de varios países para participar en 13 grupos de traba- o La cuarta se dedicará al modelo de evaluación de perfiles, y
jo. Uno de los grupos más importantes es el WG7 (Development o La quinta va a contener la guía para implementar el Perfil 1
of Standards and Technical Reports on Life Cycle Management), basado en nuestro modelo de procesos y en paquetes de im-
que tiene a su cargo la actualización de la norma 12207 (Soft- plementación aportados por otros miembros del grupo.
ware Life Cycle Processes), y el otro es el WG10 (Development
of Standards and Guidelines Covering Methods, Practices and El trabajo de nuestro grupo estuvo enfocado en obtener resul-
Application of Process Assessment), que tiene a su cargo la ac- tados, pasamos de una etapa de propuestas a otra de decisio-
tualización de la norma 15504 (Process Assessment). nes concretas, lo que permitirá que en octubre, al término de la
siguiente reunión, el WG24 entregue el primer Working Draft de
Las Delegaciones más numerosas, de entre 10 y 20 personas, los cinco documentos.
provenían de países angloparlantes (Estados Unidos, Canadá,
Gran Bretaña, Australia) y de los asiáticos (Japón y Corea). Los Se estima que todas estas partes se convertirán en norma en
demás tuvieron representaciones más modestas. Nos sorpren- 2010. No se sorprendan, ¡son los tiempos ISO! En México pode-
dió que de la India llegara una sola persona; y que la Delega- mos aprovechar que ya tenemos este perfil y unos cuantos más,
ción China la formaran solamente dos mujeres jóvenes, al igual es decir: el MoProSoft completo, como norma nacional.
que la Delegación Mexicana (restando lo de joven en mi caso).
De los países latinoamericanos no hubo ninguna otra represen- Por otra parte, nos dimos cuenta de lo importante que sería tener
tación, pero, afortunadamente, España tuvo tres enviados con representantes en otros grupos de trabajo del SC7, para estar dón-
quienes formamos una spanish connection que, por su alegría, de “se cuecen la habas” y poder transmitirlo rápidamente a nuestra
atraía en espacios de ocio a otros participantes para tomar cla- industria. En Moscú, también entendimos y reconocimos la visión y
ses de español gratis. la aportación personal de Arnoldo Díaz de Certum, que con sus re-

06 JUL-AGO 2007 www.sg.com.mx


cursos y, a nombre de México, participó a mitad de los años 90 en con los delegados de otros países fue un elemento muy importante
la definición de la norma 15504. Arnoldo tuvo el valor de demostrar de promoción para México. Sobre todo, en los primeros días, cuando
que México no sólo es un país “consumidor” de estándares, sino que mis clases de ruso de primaria y secundaria en Polonia dieron por fin
también puede ser “aportador” de ideas. Como parte de su partici- sus frutos para facilitarme la lectura y el entendimiento de los letre-
pación organizó una reunión del comité en Acapulco, que todavía es ros en el metro, y los menús en los restaurantes, lo que aumentó la
recordada con gusto por algunos de los delegados. Desafortunada- popularidad de nuestra Delegación. También la belleza mexicana de
mente cuando Arnoldo se retiró, la participación de nuestro país per- Anita tuvo su impacto entre algunos delegados de tierras frías.
dió continuidad y durante muchos años no tuvo representación en el
comité. A diferencia de otros países que tienen políticas y recursos —Hanna Oktaba
destinados para este tipo de actividades, México todavía no cuenta
con esquemas similares. Generarlos es un reto que debemos tomar.

Para finalizar, les dejo alunas reflexiones de tipo turístico: Moscú,


“la ciudad de calles anchas”, como la define Jorge Volpi en su muy
recomendable novela “No será la Tierra”, es una ciudad grande, con
3 millones de carros y el tráfico poco envidiable de la Ciudad de
México. La Plaza Roja tiene una belleza especial, el metro es el mejor
medio de transporte y el vodka es el tequila de allá, nada más que
se consume en mayores cantidades y a todas horas. La convivencia

www.sg.com.mx JUL-AGO 2007


// COLUMNA
// COLUMNA /*MEJORA CONTINUA*/

Personas y Procesos
¿Donde Está el Problema?

Luis R. Cuellar es Director de Calidad a nivel mundial de Softtek Information Services. Luis es reconocido por la American Society for Quality
(ASQ) como Certified Quality Manager, Certified Software Engineer, y Six Sigma Black Belt. En los últimos cinco años ha estado a cargo de la
definición e implantación de la estrategia para CMMI5 y Six Sigma a través de las diferentes áreas del centro de desarrollo de Softtek.

Hace algunas semanas me encontraba dando una asesoría cuando una vicios coherentes con la finalidad de sumar el trabajo de cada individuo
de las personas preguntó lo siguiente: “dado que un proceso es una en un todo a gran escala, apoyando a asegurar la consistencia y produc-
secuencia de actividades, y dado que toda mi gente ejecuta activida- tividad del servicio.
des y todos ellos utilizan alguna herramienta como SAP, PeopleSoft o
similar, que los obligan a seguir una secuencia, entonces: ¿no sería la Detectando la madurez
mía, una organización orientada a procesos? ¿Qué es lo que diferencía Cuando se tiene algo de experiencia trabajando en áreas de calidad, es
a una organización orientada a procesos de otra que no lo está?”. Una relativamente fácil detectar la madurez de una organización con tan solo
pregunta interesante. A fin de cuentas, todos ejecutamos secuencias de unos minutos de diálogo con los empleados.
actividades, lo cual, es la base de todo proceso. ¿Pero exactamente qué Una organización poco madura está principalmente basada en la ha-
hace que una organización se clasifique como orientada a procesos? bilidad adquirida de las personas asignadas. Esto quiere decir que
no importa lo que pase, cualquier eventualidad no planeada o no
Las personas y los problemas definida es atribuible a la persona que tenía como responsabilidad
Antes que nada, la primera pregunta es: ¿para que moverse a una or- ejecutar correctamente esa actividad; lo que nos lleva a dos efectos
ganización orientada a procesos? Todos hemos escuchado que en las secundarios:
organizaciones de software, la gente es el activo más preciado. Para • Como parte de la naturaleza humana, cuando se echa la culpa de un
brindar un servicio de excelencia, se requiere gente experimentada, problema de la organización a una persona, ésta inmediatamente busca
comprometida, y orientada al servicio. Lo importante es la gente, los otros culpables que tomen por lo menos parte de la responsabilidad (el
procesos no son nada sin ella. Por eso, si vamos a lograr un servicio cliente, la gente que se me asignó, el área encargada de la infraestruc-
de calidad, la organización debe estar enfocada a la gente, y no a los tura, etcétera). Esto hace parecer que todo lo que pasa en proyectos
procesos. Dicho lo anterior, también debemos estar conscientes de que depende de tantas variables fuera de nuestro control, que resulta impo-
los procesos aumentan la productividad y eficacia de la gente. Una orga- sible o al menos poco práctico prevenirlas.
nización de clase mundial está formada por tres componentes básicos • Y el otro efecto tiene que ver con que la única forma de prevenir que
representados en la figura 1: vuelva a suceder es llamarle la atención a la persona o asignar a alguien
más, ya que la otra persona demostró no ser capaz de resolver lo que
se le asignó. Normalmente, en una organización de este tipo la conver-
sación que se escucha tiene que ver con establecer culpables, deslindar
responsabilidades y criticar el trabajo de otros.

En una organización orientada a procesos, el individuo es en parte res-


ponsable del problema, pero una gran parte del análisis se enfoca en
detectar errores en el diseño o ejecución de un proceso. Si la persona
no ejecutó lo que debería ejecutar, se le llama la atención, pero el aná-
lisis real viene al revisar cómo falló el proceso de entrenamiento que
no le dio las habilidades necesarias, porqué el proceso no detectó la
Figura 1. Los tres componentes de las organizaciones de clase mundial
falla antes de que se hiciera un problema. Las posibilidades de mejora
son infinitas. Esto crea otro efecto secundario: ya que la culpa no es
Los tres vértices: personas, herramientas y procesos, están interrela- del individuo, en lugar de enfocarnos en, ¿cómo cambiamos a la per-
cionados y forman un todo. Es un hecho que los procesos no existen sona?, nos juntamos todos a buscar donde falló el proceso. La cultura
sin la gente, pero la gente sin procesos no puede lograr un servicio se vuelve de cooperación. Ya no son todos juzgando mi trabajo, somos
consistente. todos nosotros tratando de prevenir que vuelva a suceder.

La felicidad esta en la moderación Si quieres saber si una organización está orientada a personas o a pro-
El servicio orientado a procesos implica que existe un balance entre: cesos, simplemente espera que algo salga mal y observa si la conver-
1. La gente que asegura la calidad y flexibilidad del servicio, en base a su sación se enfoca en culpar a las personas o en reparar los procesos.
conocimiento y habilidades. Se puede predecir fácilmente el nivel de madurez de una organización
2. La tecnología que apoya a los individuos con información requerida simplemente midiendo el grado de cooperación que existe entre los in-
en forma rápida, concisa y oportuna para lograr los objetivos de calidad, dividuos, al encontrarse con un problema.
productividad y excelencia.
3. El proceso que entreteje todo esto en una serie de actividades y ser- —Luis R. Cuellar

08 JUL-AGO 2007 www.sg.com.mx


www.sg.com.mx JUL-AGO 2007
// PRODUCTOS /* LO QUE VIENE*/

Flex, Silverlight y JavaFX Visual Studio 2008


La guerra de las RIA Ambiente de desarrollo para .NET 3.0

A pesar de todo el ruido que ha habido en el escenario de tecnologías La próxima versión de Visual Studio, que anteriormente era
RIA en los últimos años, realmente no ha habido una competencia in- conocida por el nombre clave “Orcas” ya se aproxima a su
terna fuerte. Los principales jugadores habían sido Ajax y Flex, siendo última etapa antes del lanzamiento. Actualmente está dispo-
ambos tan diferentes en su estructura y comportamiento, que estaban nible como Beta 1, y se espera un Beta 2 este verano, para es-
más cerca de complementarse que de competir. Sin embargo, esto cam- tar lanzando el producto final antes de que termine el año.
bió a principios de mayo, cuando Microsoft lanzó Silverlight, un plugin
para ejecutar aplicaciones enriquecidas y multimedia, lo cual compite Entre las características más esperadas de esta versión está
directamente con Flash/Flex. Todavía un par de semanas después Sun el soporte a la versión 3.0 del .NET Framework, incluyendo
Microsystems se agregó a la competencia dando a conocer JavaFX, una C# 3.0 y LINQ (Language Integrated Query), lo cual tendrá un
tecnología para desarrollar y ejecutar clientes enriquecidos tanto para fuerte impacto en la forma en que se desarrollan aplicacio-
desktops como dispositivos móviles. Es así que podemos declarar ofi- nes .NET. Otra característica importante es que Visual Studio
cialmente iniciada la guerra de los RIA. Tools for Office –el componente para extender las aplicacio-
nes de Office– ya estará integrado dentro de Visual Studio
Uno de los primeros acontecimientos notables al respecto, es que Mi- 2008. Asimismo, Visual Studio Tools for Office –el compo-
guel de Icaza ya se apuró a desarrollar una implementación de Silverlig- nente para extender aplicaciones de Office– ya vendrá inclui-
ht basada en Mono, que lleva el nombre de Moonlight. do como parte de Visual Studio.

Por otro lado, JavaFX se está moviendo un poco más lento, ya que has- Más información en msdn2.microsoft.com/en-us/vstudio
ta el momento Sun solo ha liberado dos productos específicos: JavaFX
Script, que es el lenguaje de scripting para desarrollar aplicaiones, y
JavaFX Mobile, el ambiente de ejecución para dispositivos móviles.
Sun ha indicado que le restan varios productos por liberar dentro de la Spring Batch
familia de JavaFX, pero no ha dado detalles sobre cuales son, y cuando Framework para trabajos Batch
saldrán. También ha anunciado que JavaFX será eventualmente libe-
rado como software libre bajo licencia GPL, sin embargo no ha dado
fecha para esto. Como sabemos, recurrir a procesos batch es una
solución muy común en las empresas para procesar
En SG estaremos al pendiente de lo que suceda en esta arena, y grandes cantidades de datos. La falta de una arqui-
estaremos publicando artículos relacionados con las diferentes tectura estándar para procesos batch no le deja a las
tecnologías para que puedan conocerlas más a fondo. organizaciones otra opción más que desarrollar so-
luciones in-house, haciendo un desarrollo diferente
cada vez que se encuentran con esta necesidad. El
objetivo de Spring Batch es cambiar esto, ya que es
un framework para facilitar la creación y administra-
JBoss Seam 2.0 ción de procesos batch.
Uniendo Web 2.0 con Java EE
Spring Batch fue creado por Interface21 en colabo-
Tan solo tres meses después de liberarse la versión 1.2.1 de Seam, ya te- ración con Accenture, quien aportó su experiencia
nemos disponible un beta de la versión 2.0. Como ya hemos comentado y ejemplos acumulados en décadas de desarrollar
anteriormente, Seam es un framework Java para desarrollar aplicaciones procesos batch para sus clientes. La mejor noticia es
Web de nueva generación que unifica e integra tecnologías como Ajax, que Spring Batch es open source, de tal forma que
Java Server Faces, EJBs, Java Portlets y capacidades de BPM. cualquiera puede descargarlo, utilizarlo, y extender-
lo o personalizarlo a sus necesidades específicas.
Gavin King, desarrollador en jefe de Seam, nos comentó que entre las
principales características de esta versión están: Hablar sobre procesos batch no es algo muy sexy, y por
• Soporte a Groovy lo tanto este producto no ha recibido mucha atención
• Soporte a Google Web Toolkit por parte de los medios. Sin embargo, nosotros en-
• Integración de búsqueda con Hibernate tendemos la importancia y utilidad de un framework,
• Soporte para JSF 1.2 así que les recomendamos echarle un ojo, puede ser
•Soporte para transacciones independientes de JTA de gran ayuda en su próximo proyecto.

Más información en www.jboss.com/products/seam Más información en:


www.springframework.org/spring-batch

10 JUL-AGO 2007 www.sg.com.mx


www.sg.com.mx JUL-AGO 2007
// PRODUCTOS /* TUTORIAL*/

Apache Lucene y Solr


Búsqueda sencilla y poderosa
Por Pedro Galván

¿ Alguna vez han considerado que es iróni-


co de que la funcionalidad más impor-
tante y útil del web es la búsqueda, no existe
de Solr de http://mirror.x10.com/mirror/
apache/lucene/solr/ y extraemos el con-
tenido en nuestra computadora.
La sección <fields> es donde se listan los
diferentes elementos tipo <field>, es decir,
los campos de información. Cada <field>
una solución común para agregar capacidad tiene un nombre que se utiliza como ref-
de búsqueda a las aplicaciones web? Solr se puede ejecutar en cualquier con- erencia al agregar documentos o realizar
tenedor de Servlets como Tomcat o Jetty. Por búsquedas, y un <type> que identifica el tipo
La mayoría de las aplicaciones simplemente simplicidad, para este ejemplo utilizaremos de datos. Los tipos de datos son declarados
utiliza la funcionalidad básica que provee una versión de Jetty que viene incluida en el utilizando elementos <fieldType>. Los tipos
el motor de base de datos que estén utili- directorio de ejemplos de Solr. Para arran- de datos estándar en la configuración de
zando. Aquellas aplicaciones que requieren car Solr simplemente entramos al directorio ejemplo (text, boolean, sint, slong, sfloat,
un sistema de búsqueda más complejo y examples y ejecutamos el comando: sdouble) son suficientes para la mayoría de
flexible típicamente deben recurrir a pro- java -jar start.jar las aplicaciones.
ductos comerciales, o desarrollar una so-
lución desde cero. Afortunadamente esto Esto inicia una instancia de Jetty en el El siguiente listado muestra el contenido de
ya no será necesario, ya que el proyecto puerto 8983 de nuestra máquina, así que los campos definidos para un ejemplo de
Apache Lucene nos brinda una solución de si todo salió bien, debemos poder entrar a un catálogo de productos:
búsqueda sofisticada y flexible que provee http://localhost:8983/solr/admin/ y ver
capacidades que compiten con las de los el panel de administración de Solr. <field name=”id” type=”string” indexed=”true” stored=”true”
required=”true”/>
productos comerciales. <field name=”sku” type=”textTight” indexed=”true”
2. Definiendo la estructura de stored=”true” omitNorms=”true”/>
Lucene es un motor de búsqueda de alto de- la información <field name=”nombre” type=”text” indexed=”true” stored=”true”/>
<field name=”fabricante” type=”text” indexed=”true”
sempeño escrito en Java. Está diseñado y de- Ya tenemos andando nuestro servidor Solr. stored=”true” omitNorms=”true”/>
sarrollado de tal forma que se pueda utilizar Sin embargo, no tenemos datos, por lo que <field name=”caracteristicas” type=”text” indexed=”true”
en prácticamente cualquier aplicación que cualquier búsqueda que hagamos regresa stored=”true” multiValued=”true”/>
<field name=”peso” type=”sfloat” indexed=”true” stored=”true”/>
requiera búsqueda de texto completo, espe- 0 resultados. Para agregar datos a Solr <field name=”precio” type=”sfloat” indexed=”true” stored=”true”/>
cialmente aplicaciones multiplataforma. primero debemos definir la estructura de la
información que indexaremos y almacena-
En esencia, Lucene es una librería que pu- remos para búsqueda. Las búsquedas enviadas a Lucene utilizan un
ede ser invocada desde aplicaciones Java solo campo, el cual se especifica utilizando
para realizar búsquedas. Pero si lo que que- Al igual que la mayoría de las aplicaciones el elemento <defaultSearchField>. Dado que el
remos es una funcionalidad de mayor nivel, en Java, la configuración de Solr se guarda objetivo en la mayoría de los casos es buscar
y donde no necesariamente tengamos que en archivos XML. El esquema XML que con- en base a los valores de múltiples campos,
usar Java, podemos recurrir a Solr. Solr es tiene la definición de la estructura de datos lo que se hace es crear un campo adicional
un servidor de búsqueda basado en Lu- para indexar y almacenar está en el archivo que sirva de sombrilla para contener el val-
cene, que provee funcionalidad de más alto solr/conf/schema.xml. or de todos los campos que queremos que
nivel, como: sean incluidos en la búsqueda. El valor de
• APIs para XML/HTTP y JSON En schema.xml se definen los campos que los campos originales se copia utilizando el
• Resaltar resultados tendrán nuestros elementos de información. elemento <copyField>. Un esquema de con-
• Cache Para cada campo se puede especificar si se figuración de Solr puede contener un núme-
• Replicación debe indexar (para que se pueda utilizar en ro ilimitado de declaraciones <copyField>.
búsquedas) y si se puede almacenar (para Lo que hacen es indicarle a Solr que copie
Dedicaré el resto de este artículo a expli- que se pueda obtener la información local- los datos de un campo especificado por el
car como instalar y utilizar una solución de mente). Si la información a buscar está alma- atributo “source” a otro campo especificado
búsqueda utilizando Solr. cenada en una base de datos, puedes indicar por el atributo “dest”.
a Lucene que indexe los campos, pero que
1. Instalación de Solr no los almacene. A fin de cuentas, mientras El siguiente listado muestra un ejemplo de
Para ejecutar Solr requerimos tener insta- almacene la llave primaria de cada elemento, cómo definiríamos un campo múltiple para el
lado un JDK 1.5 o posterior. el documento se puede reconstruir directa- catálogo de productos. Definimos un campo
mente desde la base de datos. Esto reduce llamado “texto” que es el que utilizaremos
Teniendo instalado nuestro JDK, simple- fuertemente los requerimientos de almace- para buscar, y que contendrá los valores de
mente descargamos la versión más reciente namiento de Lucene, y evita duplicar datos. nombre, fabricante y características.

12 JUL-AGO 2007 www.sg.com.mx


<field name=”texto” type=”text” indexed=”true” stored=”false” multiValued=”true” />
<copyField source=”nombre” dest=”texto”/>
<copyField source=”fabricante” dest=”texto”/>
<copyField source=”caracteristicas” dest=”texto”/>

3. Agregando documentos a indexar


La forma de alimentar datos a Lucene es a través de documentos XML que contienen instruc-
ciones de indexado para agregar, borrar o actualizar documentos. El siguiente listado mues-
tra un ejemplo del XML a través del cual agregaríamos un nuevo elemento de información.
Vean que los campos de información consisten con los que definimos en schema.xml.

<add>
<doc>
<field name=”id”>3007WFP</field>
<field name=”nombre”>Dell Widescreen UltraSharp 3007WFP</field>
<field name=”fabricante”>Dell, Inc.</field>
<field name=”caracteristicas”>30” TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
<field name=”peso”>401.6</field>
<field name=”precio”>5199</field>
</doc>
</add>

El directorio exampledocs contiene ejemplos de instrucciones que Solr puede recibir, así
como una utilería en Java (post.jar) para alimentar instrucciones a Lucene desde la línea
de comandos.

4. Realizando búsquedas
Las búsquedas se realizan a través de peticiones por HTTP GET en el url /solr/select del servidor
donde estés ejecutando Solr. El query de búsqueda se pasa a través del parámetro “q”. Es po-
sible agregar parámetros adicionales para controlar la información que se obtiene. Un url con un
query sencillo se vería de la siguiente forma: http://localhost:8983/solr/select?q=monitor

Solr regresa los resultados en forma de XML, así que es posible manipularlos como queramos.
Incluso podemos utilizar Solr directamente utilizando un objeto XMLHttpRequest y manipular
los resultados con Javascript.

Conclusión
En este artículo apenas echamos un pequeño vistazo a Lucene y Solr. Estas tecnologías
son muy flexibles y nos proveen una amplia gama de posibilidades. De hecho, a quienes
les interese hacer un ejercicio más sofisticado les recomendamos buscar en Internet
los tutoriales que enseñan como utilizar Solr en conjunto con el API de Digg para poder
realizar búsquedas de los contenidos de Digg usando Solr.

Ahora que conocen estas tecnologías, esperamos que las tengan en cuenta la próxima
vez que requieran incorporar funcionalidad de búsqueda en sus aplicaciones.

Referencias:
• lucene.apache.org
• lucene.apache.org/solr

www.sg.com.mx JUL-AGO 2007


Scott Ambler Scott W. Ambler dirige la práctica de Desarrollo Ágil en IBM.
Es considerado como uno de los principales “agilistas” en el
mundo, y ha creado varias metodologías entre las que destacan
Agile Modeling (AM), Agile Data (AD), Agile Unified Process
La Evolución de Ágil (AUP), y Enterprise Unified Process (EUP).

Scott será uno de los conferencistas magistrales en SG ’07, así


que aprovechamos la oportunidad para publicar esta pequeña
entrevista donde nos comparte su perspectiva sobre Ágil y
otros temas que tratará durante SG ’07.

¿Cómo describirías el estátus actual de Ágil? los DBAs que no comprenden esto se enfocan en hacer demasiado mode-
Hace unos años, Ágil era visto como un movimiento, una revolución. lado muy temprano en el ciclo de vida, lo cual en el libro “Agile Database
Sin embargo, creo que actualmente Ágil ya es parte de la “corriente Techniques” demuestro que es una forma de trabajo altamente ineficien-
principal” (mainstream) de los métodos de software. Justamente en te. El Data Warehouse Institute estima que tan solo en Estados Unidos,
marzo de este año realicé una encuesta sobre el grado de adopción los problemas de calidad de datos generan un costo de $600 mil millones
de ágil, y de las 781 personas que contestaron, el 69% contestó que de dólares anualmente. A pesar de esto, la comunidad de profesionistas
su organización aplica técnicas derivadas de Ágil. Esto no quiere de- de datos ofrece muy pocas recomendaciones prácticas sobre lo que se
cir que todo mundo ya esté usando algo como XP como su proceso puede hacer para resolver esto.
default, pero si nos indica que la mayoría ya está usando (o conside-
rando usar) una o más técnicas de Ágil. En resumen, creo que hay problemas serios en la gestión de datos, sin
embargo la mayoría de los profesionistas se aferran a los métodos que
¿Cuáles consideras que son los principales retos de Ágil en los generaron estos problemas en primer lugar. Afortunadamente, la comu-
próximos años? nidad Ágil está involucrándose y desarrollando alternativas para resolver
Creo que el principal reto para Ágil al corto plazo es demostrar que es estos problemas. Yo he escrito varios artículos al respecto que están dis-
escalable a proyectos grandes. Precisamente el trabajo que hago con ponibles en www.agiledata.org y que pueden ser de gran ayuda para los
IBM consiste en ayudar a clientes a aplicar técnicas ágiles en proyectos profesionistas de datos.
grandes y complejos donde se tienen muchas restricciones de regulación,
y el equipo de desarrollo es grande, distribuido geográficamente, y for- ¿Es cierto que un desarrollador de un equipo que utiliza Ágil necesita
mado por distintos proveedores. Estas organizaciones están interesadas mayor habilidad y experiencia que en el desarrollo tradicional, o simple-
en adoptar Ágil, precisamente porque están interesadas en maximizar su mente es cuestión de una mentalidad diferente?
eficiencia. En www.ibm.com/rational/agile tenemos varios documentos El aspecto fundamental es la mentalidad. Los desarrolladores ágiles bus-
y videos al respecto. can colaborar estrechamente con otros, aprender de cada uno, y desarro-
llar nuevas habilidades. También tienen un fuerte enfoque a la calidad,
¿Crees que Ágil evoluciona? ¿Cómo? típicamente utilizando una estrategia “test-first” (probar primero). El he-
Sin duda, las metodologías ágiles están evolucionando. Por ejemplo, cho es que ser un desarrollador ágil requiere mayor disciplina que uno
en los últimos años yo he hecho varios ajustes a Agile Modeling; Kent tradicional, así que tal vez no sea para todos.
Beck liberó la segunda versión de su libro “Extreme Programming
Explained”, donde presenta cambios significativos a la versión ori- Últimamente has escrito sobre “lean development governance”, ¿de
ginal de XP; Enterprise Scrum justo acaba de salir, y básicamente es qué se trata esto?
una extensión de Scrum que toma ideas del Rational Unified Process La gobernabilidad tradicional se enfoca en estrategias de comando y con-
(RUP). También está el Open Unified Process (OpenUP), que es un mé- trol, que buscan administrar y dirigir a los equipos de proyecto de forma
todo ágil open source que está disponible en www.eclipse.org/epf. explícita. Aunque ésta es una estrategia válida en algunas situaciones, en
Así que en el espacio de las metodologías, claramente hay una evolu- la mayoría de los casos es semejante a arrear gatos –se aplica un gran es-
ción y actualización. fuerzo pero se obtienen pocos resultados. En cambio, “lean governance”
se enfoca en estrategias de colaboración que buscan habilitar y motivar a
Por otro lado, es interesante ver que el Manifiesto Ágil parece resistir la los miembros del equipo implícitamente.
prueba del tiempo. Los valores y principios en que se basa no han sufrido
cambios, y parecen no necesitarlos. Sin embargo, también está el traba- Por ejemplo, la forma tradicional de hacer que un equipo siga lineamien-
jo del Agile Project Leadership Network (APLN), www.apln.org, el cual en tos de programación es definirlos y luego realizar inspecciones formales
cierta forma puede ser considerado una extensión al Manifiesto Ágil. para asegurar que se estén siguiendo. En cambio, lo que se haría en un
enfoque “lean”, sería escribir los lineamientos en colaboración con los
Al parecer, la gestión de datos (Data Management) también está siendo programadores, explicando la importancia de que todos los sigan, y luego
impactada por Ágil, ¿podrías explicarnos algo sobre esto? proporcionando herramientas que faciliten la adopción y seguimiento de
Introducir agilidad al mundo de la gestión de datos es una tarea cierta- los lineamientos. El enfoque “lean” es semejante a guiar gatos, si tomas
mente complicada. Desafortunadamente, la gestión de datos se manteni- un pedazo de pescado, ellos te seguirán a donde vayas.
do relativamente estática en cuanto a métodos y procesos, y muchos de
los profesionistas de esa comunidad se siguen aferrando a concepciones ¿Consideras que el desarrollo dirigido por modelos (MDD) alguna vez
erróneas sobre como funciona el desarrollo de software en realidad. Por será el común denominador de cómo desarrollar software?
ejemplo, muchos DBAs creen que es difícil evolucionar o refactorizar un Eso depende de qué entiendas por MDD. La versión Ágil de MDD ha sido
esquema de base de datos existente. Esto es algo que Pramod Sadalage el común denominador desde hace años, ya que es muy común que los
y yo demostramos que se puede hacer fácilmente a través de las técnicas desarrolladores ágiles usen herramientas sencillas como pizarrones y ro-
documentadas en nuestro libro “Refactoring Databases”. Sin embargo, tafolios para modelar. Lo que no es tan común es el enfoque que promue-

14 JUL-AGO 2007 www.sg.com.mx


// ENTREVISTA

ven los profesionistas de modelado, donde todo se debe hacer en una ¿Qué está sucediendo en cuanto al Eclipse Process Framework (EPF)?
herramienta CASE. En teoría, esta estrategia es muy buena. Sin embargo, Este es un proyecto muy interesante. El EPF composer permite que las
en la práctica muy pocas organizaciones tienen suficiente gente con las personas puedan definir, personalizar y publicar procesos de software, e
habilidades necesarias para lograr esto. Las organizaciones que llegan a incluirlos en la herramienta de desarrollo Eclipse. Hay mucho material dis-
tener buenos modeladores, con buenas herramientas, logran muy bue- ponible, incluyendo el OpenUP y la definición de Extreme Programming
nos resultados. Sin embargo, este es un porcentaje pequeño de todas las para EPF. Últimamente no he estado muy involucrado en este proyecto,
organizaciones de software, y dudo que eso cambie en el futuro cercano. pero espero poder hacerlo pronto, para agregar más material sobre mo-
delado de datos ágil.
¿Qué opinas sobre la programación orientada a aspectos (AOP)?
Creo que AOP es una solución muy interesante que todavía está buscan- ¿Algunas palabras para nuestros lectores?
do un problema que resolver, y no veo que eso vaya a cambiar. Estoy muy entusiasmado de visitar México. Nos vemos en SG ’07.

www.sg.com.mx JUL-AGO 2007 15


Creando una Personalidad “Web Tú”
Sé parte de ella
Por Oscar Cortés Santos

A
finales de 2006, la revista Time anun- guajes existentes. Lo que es nuevo son las herramientas
ciaba a la persona del año y terminaba o aplicaciones construidas con dichos lenguajes. Estas
con la incertidumbre. Para sorpresa de herramientas tienen algo en mente, algo que ha empeza-
muchos, esta vez no se trataba de un pa- do a tener resonancia en el mundo Web 2.0: “Inteligencia
cifista o líder político o moral. La publicación nos Colectiva”. Es decir, brindan un mecanismo para que los
decía: “la persona del año eres tú”, o de manera usuarios no sólo puedan comunicarse con el creador del
plural: “ustedes”. Para algunos, esto parecía una sitio, sino entre todos ellos. Y muchas veces, sólo entre
broma, sobre todo porque la portada incluía una ellos. Juntos crean y mejoran conceptos y procesos. Es
imitación de espejo, invitando al lector a verse en un principio de Web 2.0: “nadie de nosotros puede saber
ella. Pero no, no era una broma. Y entonces, ¿que todo, pero cada uno de nosotros sabe algo”. Así, si junta-
habíamos hecho para recibir este honor? mos nuestras habilidades y conocimientos individuales,
podemos hacer algo nuevo y mejor.
2006 marcó el año en que los usuarios de Internet pasaron
de ser pasivos a activos. Es decir, no sólo fueron recepto- Un sitio Web 2.0 puede ser reconocido porque permite
res de información, sino que también fueron autores de la interacción con su audiencia, y deja huella de dicha in-
contenido. Y no es que los usuarios no quisieran partici- teracción en forma de nuevo contenido. Un sitio que no
par anteriormente, sino que la Web no lo permitía, porque permite tal colaboración no está usando el concepto Web
originalmente no estaba pensada de esa forma. Pero des- 2.0. La comunicación debe circular en ambos sentidos y
de su inicio, la Web ha ido evolucionando cada vez más quedar asentada para que la vean, juzguen y actualicen
del modo lectura, al modo lectura-escritura desde la pers- otros usuarios. Pero reformulemos la pregunta original: ¿a
pectiva del usuario común y corriente. Dicho movimiento quiénes se está reconociendo como usuarios de Web 2.0?
no bastó por si solo para ser una novedad, sino que fue la Bueno, aunque cualquiera puede beneficiarse del conoci-
masiva participación de los cibernautas. El concepto con- miento disponible, no todos los usuarios han participado
formado por lo sistemas y prácticas alrededor de estos in- de la misma manera. Por ejemplo: un blog puede ser visi-
gredientes una Web en modo de lectura-escritura y gente tado y habitualmente leído por muchas personas, pero no
usándola es lo que lo que hoy llamamos Web 2.0. todas participan con sus comentarios. Este tipo de usua-
rios contribuyen al tráfico, y muchas veces distribuyendo
Web 2.0 es considerado un concepto, y no una tecnolo- las historias que leen enviándolas por correo electrónico.
gía. Su construcción está basada en infraestructura y len- Pero su participación es más bien de espectadores.

16 JUL-AGO 2007 www.sg.com.mx


www.sg.com.mx JUL-AGO 2007 17
Por otro lado, existen usuarios con una persona- esos momentos únicos que expresan parte de Web 2.0 en el mundo empresarial
lidad muy definida: aquellos que son prolíficos nuestra creatividad, y compartirlos a través de El concepto de Web 2.0 se puede aprovechar
creando nuevo contenido. Estoy hablando de sitios como YouTube o Brightcove para video, por las empresas en al menos dos maneras que
los que tienen sus propios blogs, contribuyen y Flickr o Photobucket para imágenes. En este ayudan a generar ventaja competitiva:
en Wikis, suben podcasts, videos o fotografías campo, ya empezamos a ver herramientas que > Para entender las comunidades donde sus
a la red; tienen su propia página en MySpace o nos permiten mezclar videos, música e imáge- productos y servicios son introducidos.
Facebook; su perfil profesional en LinkedIn; y nes directamente en los sitios. Dándonos la > Para mejorar la administración de conocimien-
participan activamente en foros, redes y grupos oportunidad de crear no sólo nuevo contenido to e incrementar productividad.
de interés. Esta personalidad es lo que yo llamo en forma de texto, sino también como multi-
una personalidad “Web Tú”. Sí lo sé, aquí he ju- media. A su vez, es ya muy común el uso de El principio de Inteligencia Colectiva se vuelve
gado un poco con la etiqueta, abusando de su tags para clasificar el contenido que se suba a entonces relevante para las empresas. Al ofre-
coincidencia con la pronunciación en inglés de estos sitios. Permitiendo así que el contenido cer una comunicación con los clientes para
Web 2.0 (web two). Pero creo que al final, este pertenezca a diferentes categorías al mismo saber qué piensan de sus productos, una com-
tipo de usuario deja un rastro digital y crea una tiempo, agilizando futuras búsquedas. pañía puede seguir mejorando sus productos.
personalidad Web 2.0. Tomemos por ejemplo: Amazon, que vende
Conectándose con otros. Tal vez el concep- infinidad de productos de terceros. Amazon
Crear este tipo de personalidad puede ayudar- to de redes sociales es el más visible en el permite hacer críticas de los productos y éstas
nos a aprender más y volvernos más produc- mundo Web 2.0. El punto de partida es tener quedan disponibles para futuros compradores.
tivos, ya que nos motiva a estar en contacto intereses similares a los de otros y unirse a Las empresas pueden subscribirse a las men-
constante con los temas que nos interesan, y comunidades con el mismo interés. Sitios cionadas críticas usando RSS y así enterarse de
aprender de lo que otros están creando. Ade- como MySpace, Facebook o LinkedIn reco- cómo está siendo recibido su producto.
más podemos tomar ventaja del escenario para lectan datos para relacionar individuos o
darnos a conocer globalmente. El principio bási- comunidades enteras. Esta gente se conecta Herramientas Web 2.0 tales como Blogs y Wikis
co es una cultura de participación, de compartir basada en sus intereses o pasatiempos, ubi- en combinación con redes sociales, se pueden
nuestro conocimiento o experiencia. Las mane- cación, profesión o afiliación escolar. usar internamente para identificar expertos
ras de convertirse en un usuario Web 2.0 son dentro de la empresa. Normalmente serán los
variadas. Aquí las más comunes: Compartiendo experiencia. Al mismo tiempo más activos participantes dentro del ecosiste-
que se puede aprender del contenido creado ma. Además pueden servir para tener una co-
Compartiendo opinión. Qué mejor manera de por otros usuarios, se puede compartir el co- municación más clara y promover una cultura
hacerlo que creando un blog. Hay varios ser- nocimiento que nosotros tenemos de alguna de participación.
vicios que te permiten crear uno propio, tales tecnología o cualquier otro tema. Los medios
como Blogger o WordPress. Lo más fácil de un más conocidos son las Wikis, la más popular: Existen otros componentes Web 2.0 utilizados
blog es activarlo, sin embargo muchos blogs Wikipedia. Regularmente los proyectos de por las empresas: mashups, que tienen que
han decaído en ser sólo repetidores de noti- software libre utilizan Wikis para facilitar la ver con colaboración con socios de negocios
cias. Aunque un blog puede usarse para temas colaboración, ya que en la mayoría de los ca- externos y con interoperabilidad entre aplica-
casuales, también es una oportunidad para sos los diferentes desarrolladores están dis- ciones. Los mashups explotan los datos que se
desarrollarse como una autoridad. Mi recomen- tribuidos en todo el mundo. Una Wiki permite proveen a través de RSS, WebServices y APIs
dación es siempre ofrecer un análisis u opinión a un grupo de personas actualizar la misma ofrecidas por entidades externas, y los mez-
acerca de lo que se esté hablando. Hay que página Web manteniendo una historia de ac- clan en una sola interfaz, que regularmente es
recordar que se trata de participar en la comu- tualizaciones. Otro recurso son los foros espe- sofisticada. Por ejemplo: se puede leer la lista
nidad agregando valor al contenido y de promo- cializados, que brindan una gran oportunidad de casas en venta de alguna fuente y presentar
ver una conversación. Del mismo modo se debe para demostrar conocimiento respondiendo a su localización usando Google Maps. Los mas-
estar abierto para recibir y aceptar comentarios preguntas y dando ejemplos. hups típicamente son presentados usando
tanto positivos, como negativos. Y sobre todo, interfaces visuales ricas, denominadas RIAs
no lo abandonen si están interesados en la re- Mantenerse informado de nuevo contenido. (Rich Internet Applications). Las RIAs permiten
putación de dicho blog. La mayoría de los sitios modernos difunden su crear aplicaciones con elementos visuales so-
contenido hacia otros sitios o lectores usando fisticados e interactivos que brindan al usuario
Compartiendo creatividad. Con cada vez más RSS (Really Simple Syndication). Para recolectar una mejor experiencia de lo que se puede con-
dispositivos portátiles que permiten tomar todo este nuevo contenido sin tener que visitar seguir con HTML por sí solo. Actualmente la
imágenes digitales y video en cualquier rin- sitio por sitio, se puede usar un agregador de tecnología que más se utiliza para hacer RIAs
cón, es más probable que podamos captar noticias que consuma dichos feeds de RSS. es Ajax, seguido de Adobe Flex.

Oscar Cortés Santos. Maestría en Ciencias en TI, McCallum Graduate School of Business en Bentley College, Boston, USA. Oscar cuenta con más de diez años de experien-
cia desarrollando aplicaciones para el mundo empresarial, tanto en Cliente/Servidor como Web, y es un entusiasta de tecnologías Web 2.0 y su convergencia con los negocios.
Trabaja como Software Engineer para Brightcove  en Boston, desarrollando aplicaciones RIA con Flex.

18 JUL-AGO 2007 www.sg.com.mx


Conclusión

Nuestra presencia en Web 2.0


puede ser tan extensa o compacta como se
quiera, y ser usada de manera personal o a
nivel empresarial. Las oportunidades en el
ecosistema Web 2.0 son inmensas, no sólo
de entretenimiento o aprendizaje, sino tam-
bién de negocios. El contenido existente en
Web 2.0 se puede utilizar de incontables
maneras, sólo limitadas a la imaginación.
Sin embargo, hay que entender a las comu-
nidades existentes en Web 2.0 para poder
tomar ventaja de ello. La mejor manera creo
yo, es perteneciendo, es desarrollando una
personalidad Web Tú. <<

www.sg.com.mx JUL-AGO 2007 19


Mashups Qué Son y Qué No Son
Por Aldo Hernández

M
ashup es una palabra que ¿Qué no es un mashup? de las empresas crece exponencialmente. Se
proviene de un término mu- Antes de continuar, debemos aclarar dos necesita usar esa información para manipularla
sical en inglés, que significa concepciones erróneas que tienden a existir de manera rápida y sencilla.
la creación de una nueva relacionadas con los mashups. La primera es > La información se encuentra distribuida en di-
canción a partir de la mezcla o pedazos que un mashup no es un portal. Sin embar- ferentes fuentes de información.
de otras canciones. Desde este concepto se go, un portal puede complementarse por un > Integración dinámica temporal a fuentes de
basa el mashup de software. La Wikipe- mashup y viceversa. información.
dia lo define como “una aplicación o sitio > Integración realizada por el usuario y no nece-
web que combina contenido de una o más La segunda aclaración es que un mashup sariamente por el área de sistemas.
fuentes dentro de una nueva experiencia tampoco es una aplicación compuesta (com- > Acceso rápido a la información significa mayor
de usuario o manejo de información”. posite application). El término composite competitividad y productividad.
application se utiliza para referirse a apli-
Los mashups son un producto de la Web 2.0 caciones que en lugar de ser desarrolladas Clasificación de mashups
donde el usuario es el centro de todo. Va de la desde cero, son “ensambladas” a partir de Un mashup puede dividirse en dos tipos:
mano con conceptos como colaboración y dis- servicios disponibles en una arquitectura > Orientado hacia el navegador (browser).
tribución de la información. SOA. Este concepto puede parecer muy simi- Está más enfocado en la mezcla o composi-
lar al de un mashup, sin embargo hay una di- ción de información con imágenes del lado
Las características que podemos en- ferencia crucial: las composite applications del navegador, principalmente usando Java-
contrar actualmente en el Web 2.0 parten de un enfoque centrado en TI, mien- Script como lenguaje de programación para
son: tras que los mashups parten de un enfoque lograrlo. Un ejemplo clásico de este tipo de
> Hecho por el usuario para él mismo. centrado en el usuario. Bajo el modelo de mashups es aquél en que se usa el servicio
> Capacidad dinámica de integración de infor- las composite applications, el usuario final de Google Maps, con otro servicio, por ejem-
mación con otras fuentes. sigue dependiendo del departamento de TI plo: de precios de casas que muestre en una
> Integración concurrente limitada. para crear una aplicación (aunque ésta so- sola pantalla el precio y la ubicación donde se
> Utilización de servicios Web públicos. lamente se vaya a ensamblar, no a crear). En encuentra una casa en venta.
> Orientado al consumidor. cambio, con los mashups el objetivo es que > Orientado hacia el servidor (mashup empresa-
sean los usuarios quienes puedan crear (o rial). En éste, la integración y manipulación de la
Sin embargo, conforme el Web 2.0 comienza ensamblar) sus aplicaciones. información suceden en ambos lados: servidor
a ser adoptado en las empresas, empezamos y navegador. Su uso principal es interactuar con
a ver su evolución, que llevará a las siguientes ¿Por qué mashups? información de diferentes sistemas para gene-
características en el futuro: Las grandes tendencias de desarrollo de soft- rar vistas necesarias para la toma de decisiones.
> Hecho por el usuario para él y compartirlo con ware son la reutilización e integración. La mayor Este tipo de mashup es capaz de interactuar con
más usuarios. parte de los presupuestos de TI para los próxi- data centers para generar valor .
> Capacidad dinámica de compartir e integrar mos años estarán asignados al mantenimiento
de la misma manera con otras fuentes. y explotación de los sistemas existentes. Funcionalidades del
> Utilización tanto de servicios Web públicos, mashup empresarial
así como servicios internos. La funcionalidad de los mashups se justifica en Estas son algunas de las acciones más comu-
> Orientado hacia la empresa, sus clientes y base a los siguientes puntos: nes que se pueden realizar con un mashup
aliados de negocio. > La información disponible en Web y al interior empresarial:

Aldo Hernández Murguía es parte del equipo de JackBe en México. Aldo es Ingeniero en Cibernética y Sistemas Computacionales por la Universidad La Salle, México. Cuen-
ta con más de nueve años de experiencia en TI, y está certificado como Java Developer y Architect. JackBe ofrece soluciones para aplicaciones de negocios basadas en SOA y
servicios Web que resultan en aplicaciones interactivas basadas en browser que buscan optimizar las actividades diarias de las organizaciones.

20 JUL-AGO 2007 www.sg.com.mx


> Filtrar información: en ocasiones un ser-
vicio regresa información necesaria para PRESTO DASH
Integración dirigida
por los usuarios
construir una vista y por lo mismo es re- (AMBIENTE DE EJECUCIÓN)

querido aplicar un filtro para trabajar con la Enterprise Ajax


Acceso a servicios,
colaboración & mashups
información necesaria. Framework

> Conjuntar y unir diversos tipos de servicios de


información: con esto nos referimos a la virtua- RDBMS RSS
Envío de datos
lización de los servicios para abstraer la com- dirigido por eventos REST

plejidad de consultar o ejecutar operaciones en


diversas fuentes de información, como pueden POJO

ser base de datos, WSDLs, RSS, etcétera. Comunicación


Definición de fuentes de datos
> Analizar información resultante de servicios: GEO

tener la capacidad para aplicar funciones esta- Enterprise Ajax


Framework WSDL

dísticas como matemáticas, a los resultados de PRESTO EDGE


.NET
los servicios invocados. (Vgr. Tomar la informa- RIAs construidas
(SERVIDOR DE MASHUPS) WSRP
por desarrolladores
ción de un servicio que nos da precios de accio- PRESTO STUDIO
(AMBIENTE DE DESARROLLO)
nes y al resultado de la ejecución de ese servicio
poder aplicar una función matemática que nos
da el precio máximo de esa acción durante un Figura 1. Arquitectura para mashups Presto
tiempo determinado).
> Transformar información: soportar tanto es- entender cómo es que podríamos resolver un cribir la manera en que lo servicios pueden in-
tructuras diferentes de información así como problema de negocio a través de un mashup. teractuar, filtrarse, orquestarse, integrarse; es
formatos diversos. Imaginemos que cierto banco requiere que a decir, las operaciones básicas de un mashup
> Soporte gráfico de información: presentar al través de su website de eBanking personal se empresarial. Al tenerlo definido, a partir de este
usuario final la información a través de tablas, pueda realizar la venta cruzada de diferentes lenguaje se podrá reutilizar o compartir entre
calendarios, gráficos, etcétera. productos. Un caso particular es el de un pro- varias aplicaciones dando como resultado un
> Orquestación de servicios: un mashup puede ducto financiero hipotecario, donde para poder servicio de tipo mashup. Este nuevo servicio
crearse a partir de la ejecución secuencial o en otorgarlo se requiere como entrada el historial nos arrojará la respuesta de si el usuario puede
paralelo de varios servicios para la generación crediticio y hábitos de consumo del cliente obtener el crédito hipotecario y así ofrecerlo al
de la vista final. Un ejemplo: generar un mashup prospecto. Estos servicios provienen de dife- cliente en tiempo real.
de la situación financiera de una persona. Por lo rentes fuentes y son de varios tipos: el historial
mismo necesitamos conectarnos al banco con crediticio es de tipo WebService y los hábitos de Bajo este modelo, a través de herramientas
un servicio “Y” que nos da la información bási- consumo nos llegan como RSS. visuales para crear los mashups, ésta tarea
ca de ésta, como sus cuentas y de qué tipo son. de definición puede ya estar en manos del
Con dicha información, se hace una consulta Para resolverlo necesitamos virtualizar estos ti- área de marketing, logrando así:
para conocer cuál es su calificación en el buró pos de servicios, es decir, generar una manera • Menor dependencia del área de sistemas
de crédito y de ahí generar una vista final. estándar de invocarlos sin importar de qué tipo para generar este tipo de promociones.
sean. Esta virtualización puede ser representa- • Mejores tiempos de reacción al mercado.
Arquitectura de un da a través de un XML como el siguiente: • Reducción de costos de creación y
mashup empresarial mantenimiento de campañas.
Ya definidas las cualidades y funcionalidades <Servicios> • Estandarización para crear nuevos servicios.
<Servicio nombre=”BuroDeCredito” tipo=”WebService”>
de un mashup empresarial, veamos la arqui- <operación nombre=”obtenerHistorialCrediticio”>
tectura de sus componentes, para así, enten- <parámetro tipo=”string”
der cómo se integran la funcionalidad y los ser- nombre=”numeroDeTarjetaCredito” />
vicios antes mencionados. La figura 1 muestra
</operación>
</Servicio>
Conclusión
el ejemplo de una arquitectura para mashups.
En este caso, utilizamos como referencia la <Servicio nombre=”HabitosConsumo” tipo=”RSS”>
<operación nombre=”consumo”>
Los mashups son parte funda-
plataforma Presto de JackBe. ( Ver Figura 1 ) <parámetro tipo=”string”
mental de la denominada Web 2.0,
En este diagrama se puede ver que el mashup nombre=”numeroDeTarjetaCredito” /> cuyo mayor beneficio será obtenido
empresarial debe ser capaz de conectarse a </operación> por las organizaciones a través del uso
cualquier fuente de información (base de datos, </Servicio> de lo que hemos explicado aquí como
</Servicios>
servicios Web, objetos Java o .Net) a través del mashups empresariales. Este nuevo
concepto “virtualización de servicios”. De esta Así se esconde la complejidad que involucra tipo de aplicaciones están provocando
forma, las diferentes fuentes de información tener varias fuentes de información; y se tiene un cambio que traerá a su vez una nue-
hacen la base de una estructura fuerte para po- una manera estándar de ejecutar y trabajar con va generación de aplicaciones empre-
der integrar, orquestar, mezclar, transformar y sus respuestas. sariales centradas en los usuarios. <<
visualizar nuevos servicios.
Una vez virtualizados los servicios, se requie- Referencias
Caso de uso de un mashup re generar un lenguaje que pueda definirse a • blogs.jackbe.com
Usemos ahora un ejemplo específico para través de un mark up language capaz de des-

www.sg.com.mx JUL-AGO 2007 21


Prácticas Arquitectónicas
en Aplicaciones Web 2.0
Consideraciones que no puedes olvidar
Por Alexis Castañares

L
a forma de publicación y con- Y entonces, ¿qué consideraciones debo tener ofrecen las tecnologías más recientes para
sumo de información en la en cuenta al desarrollar aplicaciones de este la creación de este tipo de aplicaciones.
web de hoy en día ha sufrido tipo? Precisamente ese es el objetivo de este
un cambio fundamental. El artículo, explicar desde el punto de vista ar- En el pasado, muchas organizaciones han de-
advenimiento de un paradigma mu- quitectónico las principales consideraciones jado a un lado la experiencia de usuario en el
cho más proactivo en el uso de la web que debemos tener para el desarrollo de las desarrollo de sus activos en la web en aras de
por parte de los usuarios –que publi- aplicaciones de esta nueva generación. Co- buscar la ubicuidad de las aplicaciones, enten-
can su propio contenido en forma de mencemos entonces. diendo ésta como la posibilidad de contar con
blogs, wikis, videos, fotografías– ha ellas en múltiples dispositivos y en la mayor
provocado que anualmente se esté ge- Enfoque en la Experiencia de Usuario audiencia posible. Hoy en día los proveedores
nerando un volumen de información Los ejemplos más exitosos que podemos en- tecnológicos y las comunidades de desarrolla-
(estimado en 1.5 exabytes tan sólo contrar en el desarrollo de sitios y aplicaciones dores están dando prioridad a estas funciona-
para este año) que es mayor al que se de la web 2.0 han sido aquellos que implemen- lidades, pues la web 2.0 nos ha demostrado
ha producido en los últimos 5000 años taron una experiencia integrada y altamente que, con la nueva realidad de accesos de ban-
de la historia humana. funcional de uso. La alta cohesión en la inter- da ancha y usuarios altamente demandantes,
faz de usuario y el uso de tecnologías como es precisamente la experiencia de usuario el
Este nuevo paradigma ha dado pie a una inte- Ajax, que permiten proveer interactividad en el componente principal para que éstas aplica-
racción mucho más profunda entre los usua- browser similar a la ofrecida por las aplicacio- ciones tengan la capacidad de generar los al-
rios de la Internet, que han dejado atrás el rol nes de escritorio, han sido factores clave para tos volúmenes de lealtad, crecimiento y opor-
exclusivo de observadores y han comenzado fomentar la adopción masiva de aplicaciones tunidades de negocio que las organizaciones
a colaborar, discutir, formar comunidades e como YouTube o MySpace, pues permiten re- están buscando.
incluso amasar sitios ya existentes, en nue- ducir la curva de aprendizaje del usuario y por
vas aplicaciones o experiencias personaliza- lo tanto incrementar la productividad y lealtad Modelo de Programación 2.0
das usando mashups. El contar con un medio del mismo hacia la aplicación. Una de las premisas del concepto web 2.0
como la Internet para intercambiar información acuñado por Tim O’Reilly en 2005 es la ne-
correlacionada y catalogada a escala humana Actualmente, los desarrolladores tienen cesidad de contar con modelos ligeros de
supera la capacidad de cualquier individuo e al alcance diversas tecnologías para crear programación que permitan que las aplica-
incluso cualquier organización para generar aplicaciones enriquecidas (RIAs). Silver- ciones sean interconectadas para la creación
conocimiento, y se convierte en un proceso light, por ejemplo, es un plugin multipla- de funcionalidad personalizada. Las apli-
de inteligencia colectiva o “sabiduría de las taforma para el desarrollo de RIAs que caciones web 2.0 son inherentemente en-
masas”, como lo denomina Michael Platt en su utiliza lenguajes avanzados como JavaS- samblables y para ello es necesario que su
artículo “Web 2.0 in the Enterprise”. cript, C# ó VB e incorpora las funcionali- arquitectura considere la utilización de es-
dades de acceso a datos y comunicación tándares tanto en el manejo de datos como
Organizaciones de todos tamaños y en todas del framework de .NET con un sistema de en la comunicación, así como un esquema
las industrias han comenzado a investigar el entrega de video, habilitando el desarrollo que separe la funcionalidad en módulos que
poder de éstas tendencias para la generación de aplicaciones dinámicas multimedia. Los puedan ser reutilizables. Las aplicaciones
de nuevas oportunidades de crecimiento, sa- diferentes frameworks para el desarrollo que sigan estos modelos en su desarrollo
tisfacción en sus clientes, economías de escala de aplicaciones AJAX como Google Web estarán mejor preparadas para exponer pun-
basadas en la web, mercadotecnia viral, comu- Toolkit, ASP.NET Ajax, Prototype, DWR o tos de conexión que puedan ser usados para
nidades en línea y sistemas de distribución. Dojo son otro ejemplo de las opciones que la creación de mashups.

Alexis Castañares es Asesor Especialista en Arquitectura de Infraestructura en Microsoft México, donde está a cargo de la estrategia web.  Alexis cuenta con 15 años de ex-
periencia en Tecnologías de Información, y ha dirigido un gran número de proyectos Internet de gran escala para diversas organizaciones como el Grupo MVS Comunicaciones
y la Organización Mundial de Comercio. Es egresado de Ingeniería en Cibernética por la Universidad La Salle.

22 JUL-AGO 2007 www.sg.com.mx


Como ya se menciona en otros artículos de esta Servicio (SaaS). La distribución de software podía brindar en un mercado tradicional.
edición, mashup es el término utilizado para como servicio puede habilitar a las organi- La Internet ha venido a habilitar este tipo
denominar la creación de nuevas aplicaciones zaciones a generar economías de escala de escenarios puesto que una aplicación
en la capa de usuario reutilizando aplicaciones en sus aplicaciones, particularmente si se con una arquitectura adecuada puede dis-
web ya existentes. Recientemente han surgido utiliza el patrón arquitectónico de Múltiples tribuirse vía la web a un mercado poten-
iniciativas de proveedores tecnológicos para Inquilinos (Multi-Tenancy) en una instancia cial de millones de usuarios, superando
crear editores de este tipo de aplicaciones del aplicativo. evidentemente casi cualquier modelo de
como Yahoo! Pipes ó Microsoft Popfly. ingresos por venta de productos de alto
El beneficio que puede obtener la organi- costo a mercados reducidos.
A pesar de que las herramientas y tecnologías zación al utilizar este modelo proviene del
de exposición de información disponibles a la mejor aprovechamiento que puede hacer Recientemente, el concepto de SaaS está
fecha tienen aún un largo camino por recorrer de sus recursos de infraestructura y del evolucionando e incorporando estrategias
para ofrecer escenarios ideales de composi- esfuerzo de desarrollo si en el proceso de de distribución como la de S+S (Software +
ción de aplicaciones, los mashups prometen ingeniería de software se consideran estra- Servicios) en donde se combina la entrega
eventualmente ser capaces de reducir los lar- tegias que permitan crear aplicaciones que de servicios por medio de la nube, con la
gos tiempos de desarrollo de aplicaciones y atiendan múltiples clientes en instancias de riqueza en experiencia de usuario que pue-
los costosos procesos organizacionales para ejecución compartidas. Empresas como sa- den proveer las aplicaciones de escritorio
su adopción, habilitando a los usuarios finales lesforce.com han sido exitosas en la utiliza- conectadas a estos servicios. De igual for-
para crear sus propias aplicaciones con base ción de este paradigma amasando grandes ma, las empresas de desarrollo han comen-
en sus muy particulares necesidades. volúmenes de usuarios en sus aplicaciones y zado a explorar el uso de Plataformas de
habilitando el “Long-Tail”, nombre coloquial Distribución de Software o SDPs (Software
La programación del Web 2.0 se basa en el acuñado en 2004 por Chris Anderson en un Delivery Platforms) para encapsular en un
principio arquitectónico de Transferencia Re- artículo de la revista Wired, quien argumen- sistema subyacente servicios comúnmen-
presentativa de Estado ó REST por sus siglas ta que los productos con bajos volúmenes te requeridos por los aplicativos –como
en inglés (Representational State Transfer). La de venta pueden en conjunto igualar o su- subsistemas de facturación, análisis esta-
programación “RESTful”, como es comúnmen- perar las ventas de los productos estrella de dístico, almacenamiento de datos– permi-
te denominada, se refiere a la separación de una organización si se logra tener un canal tiendo así a las organizaciones focalizarse
tareas en recursos y a la utilización de los mis- de distribución lo suficientemente grande. en la estructuración de las funcionalidades
mos por medio de mensajes transmitidos sin al- más específicas del dominio de la aplica-
macenamiento de estado utilizando protocolos La figura 1 ilustra en rojo el potencial de ga- ción a desarrollar. Los trabajos realizados
de comunicación estándares y generalmente nancias que una organización podría tener por Gianpaolo Carraro sobre estos temas
transparentes a los firewalls, como HTTP. por la venta de un producto a un mercado pueden ser de gran utilidad para nuestro
naturalmente reducido por el alto costo. En lector en el entendimiento y utilización de
Finalmente, la aplicación debe concebirse des- contraposición el color naranja representa estas estrategias.
de sus inicios bajo el paradigma de “lectura- las ganancias incrementales que podría ob-
escritura” para promover la interactividad con tener la organización vendiendo el mismo
sus usuarios, así como de “colaboración” para producto a un precio menor pero a un mer-
fomentar esta interactividad entre los propios cado potencial mucho mayor. Las ganan-
usuarios, aprovechando así la inteligencia co- cias netas por la venta del producto serían
lectiva y el potencial de generación de comuni- mayores si la “Cola” de la gráfica logra ser
dad que describíamos al inicio. lo suficientemente larga.

Estrategia para la Distribución En el pasado la generación de economías


de Aplicativos de escala alrededor de este concepto
El modelo aplicativo de la web 2.0 ha potencia- estaba limitada por la capacidad de dis-
lizado los logros del modelo de Software como tribución y atención que la organización Figura 1. The Long Tail

Conclusión

Haciendo un análisis somero de la arquitectura de ac- Las consideraciones arquitectónicas aquí presentadas pueden servir
tivos altamente exitosos en la web 2.0, visualizamos la presencia como premisas iniciales en la planeación y diseño de una solución
recurrente de modelos, estrategias, patrones y paradigmas arqui- web 2.0. Con la vista puesta en el futuro inmediato, la organización
tectónicos orientados a sacar provecho de los nuevos horizontes deberá incluir en su estrategia muchas otras, como la multiplicidad de
que la “sabiduría de las masas” ha creado. La utilización de los dispositivos de entrega ó los ciclos continuos de mejora en los aplica-
modelos planteados por el advenimiento de la web 2.0 encierra tivos. En incrementos exponenciales estos modelos van evolucionan-
un alto potencial de negocio así como de soporte a poderosos me- do y siendo reemplazados por nuevas ideas que habilitan el potencial
dios de acercamiento con los clientes internos o externos de las y desencadenan el crecimiento de la máquina más compleja creada
organizaciones por medio de sus activos en Internet. por el hombre: El World Wide Web. <<

www.sg.com.mx JUL-AGO 2007 23


Frameworks Habilitadores de AJAX
¿Cuál Elegir? Por Miguel Ángel Morán

D
esde el año 2005 cuando Jesse James Garrett acuñó acceso Web de Outlook (OWA) . Este objeto se encarga de establecer
el acrónimo AJAX (Asynchronous Javascript and un canal de comunicación independiente del browser para enviar y re-
XML), las tecnologías relacionadas se han esparcido cibir datos, y así evitar que el usuario se percate de lo que está suce-
de una manera francamente vertiginosa. diendo tras bambalinas. Ya que la información está siendo procesada
en background.
Ajax es una técnica de programación donde se explotan tecno-
logías ya existentes como Javascript y XML, para mejorar consi- Dado que este objeto es programable en Javascript, es posible escribir
derablemente la interacción entre un usuario y una página Web. scripts que interactúen con el DOM de la página y de esta manera lograr
Esto se logra mediante la transmisión y recepción de información páginas muy interactivas. Debido a su popularidad y su uso masivo, el
(postback) desde el cliente al servidor en segundo plano, evitando World Wide Web Consortium (W3C) ha definido ya una especificación
los molestos pantallazos que implica el envío de datos, la admisión estándar para dicho objeto, y por lo tanto, ya lo implementan distintos
de los mismos y la regeneración de la página Web por parte del navegadores como Firefox, Safari y Opera.
browser. El uso adecuado de este modelo trae como consecuencia
un aumento considerable de la usabilidad, velocidad y tiempo de Implementación básica
respuesta de un sitio Web. Uno de los principales atractivos de Ajax, es que al usar tecnologías que
ya se encuentran implementadas en los browsers actuales, no es nece-
Antecedentes sario instalar nada para comenzar a usarlo.
Aunque parezca increíble, la capacidad real de utilizar estas técnicas
ha estado entre nosotros desde 1999, cuando Microsoft lanzó la ver- En el siguiente ejemplo definimos una implementación básica en la cual
sión 5 de Internet Explorer, y con él un objeto llamado XMLHttpRe- buscamos que al momento de seleccionar un destino en el Panel 1, se
quest ideado originalmente para optimizar la interfaz de usuario del actualice la información en el Panel 2, sin redibujar de nuevo la página.

24 JUL-AGO 2007 www.sg.com.mx


Para lograr nuestro cometido, debemos de escribir un script como el acuerdo al modelo de programación, por ejemplo: ASP.NET o Java Ser-
siguiente: vlets / JSP’s.

<script language=”javascript”> A continuación presento algunos de los frameworks más usados actual-
var objxmlHttp=null;
// Devuelve una instancia correcta del objeto XMLHTTPRequest de acuerdo al browser usado. mente en la red.
function ObtenerObjetoxmlHttp()
{ Frameworks de cliente
try // Instancia para navegadores no Microsoft
{objxmlHttp=new XMLHttpRequest();}
Prototype: es un framework muy sencillo de entender, y bastante
catch (e) // Instancias para navegadores Microsoft popular. Para usarlo sólo es necesario incluir el archivo prototy-
{ try pe.js y con esto estamos listos para poder utilizar los objetos que
{ objxmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);}
catch (e)
incluye la librería. El listado dos muestra el código que necesita-
{ objxmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);} ríamos para lograr el mismo objetivo que en el listado uno, pero
} usando Prototype.
return objxmlHttp;
} <script language=”javascript” src=”prototype.js”></script>
<script language=”javascript”>
// Envía la forma y los datos seleccionados en el control <select> function EnviarForma(){
function EnviarForma() { new Ajax.Request(‘Servidor.aspx’, {
objxmlHttp=ObtenerObjetoxmlHttp(); method: ‘post’,
objxmlHttp.open(“POST”,”Servidor.aspx”, true, “”, “”); parameters: {selLugares:document.getElementById(“selLugares”).selectedIndex} ,
objxmlHttp.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded; onSuccess:
charset=windows-1255”); function(strRespuesta){
objxmlHttp.onreadystatechange=MostrarRespuesta; document.getElementById(“divDescripcion”).innerHTML=strRespuesta.responseText;
objxmlHttp.send(“selLugares=”+document.getElementById(“selLugares”).selectedIndex); }
} });
}
// Procesa la respuesta del servidor y la muestra en el <div> del Panel 2
function MostrarRespuesta() { </script>
if (objxmlHttp.readyState==4)
document.getElementById(“divDescripcion”).innerHTML=objxmlHttp.responseText; Listado 2. Implementación con Prototype
}

</script>
Es evidente que el código anterior es mucho más limpio y sencillo que
la implementación original. Sólo hacemos uso del método Request del
Listado 1. Implementación de Ajax sin framework objeto Ajax incluido en Prototype, y le pasamos como parámetros los
detalles de nuestra petición. Podemos ver que Prototype ha manejado
Implementar un código como el anterior no representa mayores proble- automáticamente la detección del browser, la suscripción del objeto y
mas cuando se trata de un ejemplo sencillo como el descrito. Sin embar- la interpretación de la respuesta.
go, conforme la interfaz de usuario tenga mayor complejidad, el código
para implementarla se incrementará exponencialmente, haciéndolo di- Cabe señalar que Prototype no sólo incluye funcionalidad para Ajax,
fícil de crear y mantener. sino que también incluye funciones para manejo y optimización de arre-
glos, cadenas, objetos etc. Incluye métodos taquigráficos para hacer
Ante este panorama, muchos fabricantes y grupos han tratado de facili- el código más legible, extiende el DOM, soporta JSON, y muchas otras
tar la vida a los desarrolladores mediante la creación de marcos de tra- características. Prototype tiene un compañero ideal llamado script.acu-
bajo que hacen más rápido y sencillo el uso de Ajax. Entre las principales lo.us que es otro script que extiende aun más la interactividad de las
ventajas de utilizar frameworks están: páginas mediante funciones de drag and drop, animaciones etc. y toma
> Simplificación y reducción de la cantidad de código requerida. como base Prototype
> Estandarización del modelo de codificación.
> Integración con el modelo de programación de la tecnología del lado The Dojo Toolkit: se basa en los mismos principios que Prototype,
de servidor. incluir un script del lado del cliente (en este caso dojo.js) para au-
> Aumento de la productividad en el desarrollo. mentar la funcionalidad de Javascript. Sin embargo, Dojo va más
allá e introduce todo un conjunto de características como gráficos
Podemos dividir los frameworks de Ajax en las siguientes dos categorías: de vectores, un sistema de eventos muy completo, la capacidad de
> Frameworks de cliente: básicamente scripts de Javascript pre- crear widgets (componentes basados en HTML + Javascript) y por
escritos y listos para usarse con sólo insertarlos directamente en supuesto, soporta Ajax. La desventaja de Dojo es que se ha vuel-
nuestra página Web. to sumamente complejo debido a su gran cantidad de funciones y
> Frameworks de servidor: son librerías implementadas del lado del ser- su escasa documentación. No obstante, empresas como Sun e IBM
vidor, que ayudan a una integración browser/server. Estos framewor- están apoyando este proyecto, por lo que en un futuro cercano po-
ks suelen generar dinámicamente el Javascript requerido para Ajax de dríamos ver un mejor soporte.

www.sg.com.mx JUL-AGO 2007 25


Frameworks de servidor
Microsoft ASP.NET AJAX: la implementación que sugiere Microsft, Como podrán apreciar en este código, se declara el control ScriptMa-
obviamente gira en torno a su tecnología ASP.NET. Y nos ofrece una nager (manEjemplo), y posteriormente el UpdatePanel que adentro
solución completamente integrada al .NET Framework 2.0, expuesta tiene una etiqueta que será actualizada en forma asíncrona con Ajax.
a través de controles de lado del servidor del ASP.NET. Quizá su prin- Al momento de visualizar la página, ASP.NET creará dinámicamente
cipal beneficio es que todo se puede hacer visualmente sin necesi- todo el Javascript requerido.
dad de escribir una sola línea de código en Javascript; de tal forma
que si ya usas ASP.NET, sólo debes instalar las extensiones de Ajax, Con ASP.NET, además de obtener la funcionalidad de Ajax a través
arrastrar a tu página los controles adecuados y obtienes “Ajax ins- de Codeplex, también podemos obtener un conjunto de controles
tantáneo”; el .NET Framework se encarga de hacer “el trabajo sucio” llamados Ajax Control Toolkit, que automatizan e imprimen mucha
por ti. La idea es muy simple: diseñas y programas tu página ASP. interactividad a nuestros sitios Web, como validadores, controles sli-
NET como de costumbre, y para agregar funcionalidad de Ajax reali- de, controles acordeón, calendarios, búsquedas, tabs etcétera.
zas los siguientes pasos:
> Arrastras desde el toolbox de Visual Studio un control del tipo DWR: es el acrónimo de Direct Web Remoting, y es una librería Ajax
ScriptManager. para Java EE, que se instala en el servidor de aplicaciones (median-
> Arrastras otro objeto llamado UpdatePanel y colocas dentro de él te un archivo .war) y su principal ventaja es que permite a los brow-
todo lo que quieres que sea mostrado asíncronamente, como por sers utilizar métodos de Java ubicados en el servidor como si estu-
ejemplo: etiquetas, tablas de datos, cajas de texto, imágenes, y en vieran realmente en el browser. Esto se logra mediante un servlet
general todo lo necesario. que procesa las peticiones de los browsers y envía las respuestas
> Defines los eventos que dispararán la comunicación en background a los mismos; y código de Javascript generado dinámicamente en-
y… ¡listo! cargado de procesar las respuestas del servidor. De esta manera,
el uso de DWR se convierte en una gran alternativa para minimizar
El listado tres muestra el código generado para lograr la funcionali- los costos y el tiempo de implementación de Ajax para los progra-
dad que queremos con ASP.NET 2.0. madores en Java.

<asp:ScriptManager ID=”manEjemplo” runat=”server”/> Google Web Toolkit (GWT): es un framework que proporciona el so-
<asp:UpdatePanel ID=”upnContenedor” runat=”server”>
<ContentTemplate> porte a Ajax mediante la utilización de Java. Con GWT, el desarro-
<asp:Label ID=”lblDescripcion” runat=”server” llador escribe su página en Java (integrando las clases del GWT), y
Text=”Seleccione un destino y se le mostrara su descripcion” /> el compilador de la herramienta se encarga de generar el HTML y el
</ContentTemplate>
<Triggers>
Javascript correspondiente. El modelo de programación es muy pa-
<asp:AsyncPostBackTrigger ControlID=”drpDestinos” EventName=”SelectedIndexChanged”/> recido a Swing, y actualmente ya existen varios IDEs que proveen
</Triggers> integración con GWT para facilitar el desarrollo. Entre los que están
</asp:UpdatePanel> IntelliJ IDEA, Eclipse (a través del plugin Cypal Studio), y NetBeans (a
Listado 3. Implementación con ASP.NET Ajax través del plugin gwt4nb).

Conclusión

Los frameworks de Ajax facilitan y aceleran el desarrollo de Con esto, he presentado tecnologías representativas (por cierto, to-
las aplicaciones antes mencionadas. La elección del framework espe- das gratuitas), que a pesar de ser muy distintas entre sí, todas ellas
cífico depende de tus necesidades y restricciones: facilitan y aceleran el desarrollo de aplicaciones con Ajax. Como po-
Para quienes desean implementar Ajax a través de scripting drán apreciar, gracias a estas herramientas puede ser muy sencillo
en el cliente, Prototype y Dojo son muy buenas opciones, que implementar Ajax en nuestros sitios Web. Los invito cordialmente a
además de la funcionalidad básica de Ajax, proveen capaci- programar sitios fantásticos sumergiéndose de lleno en Ajax.
dades para extender las estructuras base de Javascript y del
DOM, con la ventaja agregada de su independencia de la pla- El código fuente completo de los listados de este artículo se encuen-
taforma en el servidor. tra disponible en www.developersdotnet.com <<
Para los que desarrollamos en ASP.NET, sin lugar a dudas la
opción natural es Microsoft ASP.NET AJAX debido a su completa Referencias
integración con el modelo de controles de servidor de ASP.NET; • www.prototypejs.org
la ayuda del IDE donde ni siquiera es necesario implementar • dojotoolkit.org
una sola línea de código de Javascript, y el montón de controles • script.aculo.us
incluidos en el Control Toolkit que harán a nuestros sitios verse • ajax.asp.net
espectaculares. Los programadores de Java tienen las opciones • getahead.org/dwr
de DWR y Google Web Toolkit, entre las más conocidas. • code.google.com/webtoolkit

Miguel Ángel Morán Bolaños es Microsoft Most Valuable Professional (MVP) en C# y Microsoft Certified Trainer (MCT). Es Licenciado en Informática por la UNITEC y cuenta
con 10 años de experiencia desarrollando profesionalmente. Actualmente colabora en Intersoftware como Consultor en TI. Mantiene, junto a un grupo de colegas, la comuni-
dad DevelopersDotNet donde frecuentemente escribe y organiza eventos sobre tecnología. mmoran@developersdotnet.com

26 JUL-AGO 2007 www.sg.com.mx


FLEX
El sabor de Adobe para RIA
Por Edgar Parada

H ablar de una tecnología como Flex con una perspectiva


de Web 2.0 forzosamente nos lleva a entender parte de
la evolución de la industria del software, darnos cuenta del
porqué del sufijo 2.0, y conocer un término que está íntima-
mente ligado con Flex, nos referimos a la expresión de RIA
(Rich Internet Application).

www.sg.com.mx JUL-AGO 2007 27


Figura 1. Algunos de los términos más representativos del Web 2.0

Evolución de las Aplicaciones En una RIA se eliminan los viajes innecesa- hacia la interfaz de usuario UI, y también tie-
Como sabemos, las tecnologías y arquitectu- rios al servidor, lo cual impacta positivamen- nen la habilidad de enviar y recibir datos del
ras de las aplicaciones de software están en te el desempeño de las aplicaciones, ya que servidor de forma asíncrona. Una ventaja adi-
continua evolución para satisfacer mejor las la mayor parte del procesamiento se ejecuta cional es que las aplicaciones hechas en Flex
necesidades de tanto los usuarios como los en el cliente. Este es un cliente enriquecido pueden ser consideradas multiplataforma
departamentos de TI. Es así que pasamos por (rich client) cuya funcionalidad va mucho debido a la ubicuidad de su cliente (Flash Pla-
los “mainframes”, y luego por la arquitectura más allá del comportamiento default de un yer). Muchos argumentarán que Ajax también
cliente/servidor, cuyas características permi- navegador web. Algunas tecnologías utiliza- es multiplataforma, lo cual en teoría es cierto.
tían una mayor productividad, a costa de com- das para clientes enriquecidos son los prác- Sin embargo, en la práctica nos encontramos
plicaciones en la distribución y despliegue. ticamente extintos Java Applets, o el novedo- con que los diferentes navegadores tienen
so Silverlight de Microsoft por citar algunos, distintos niveles y mecanismos de implemen-
Posteriormente, un nuevo modelo vio la luz, y pero sin duda alguna el de mayor adopción a tación de Javascript y CSS, mientras que Flash
fue tiempo de darse cuenta del potencial del nivel mundial es el Flash Player de Adobe. Player es una sola máquina virtual estándar
web como un ambiente para ejecución de apli- para todos los navegadores y sistemas ope-
caciones. En este modelo, los navegadores ac- Nociones de Web 2.0 rativos. Además, sería incorrecto comparar
túan como clientes ligeros donde se interpreta Fue en el año 2004 cuando Tim O’Reilly utiliza directamente ambas tecnologías, ya que en
HTML, y a través de este se hacen peticiones el término Web 2.0, aunque nunca ha sido de- esencia Flex es un framework y una platafor-
y se reciben respuestas de un servidor. Co- finido un esquema formal para decir qué sitio ma de desarrollo, mientras que Ajax es una
múnmente esta interacción también se cono- es 2.0 y qué sitio no lo es. Si algo se ve lo sufi- serie de técnicas de desarrollo que explotan
ce como arquitectura basada en páginas. Con cientemente “cool” se agrega el mote de 2.0. el objeto XmlHttpRequest.
este modelo se resolvieron los problemas de
distribución y despliegue, ya que las aplicacio- De los principios más socorridos al momento Elementos de Flex
nes residen en el servidor. Sin embargo, esto de hablar de Web 2.0 tenemos: La plataforma de Flex está formada por los
se logra a costa de la experiencia del usuario. > Usar la Web como plataforma. siguientes elementos:
Esto se debe a las limitantes de HTML, así > Datos como una fuerza de negocios > ActionScript 3.0 – Un lenguaje de progra-
como del protocolo HTTP. > Tomar los efectos de la red para crear una mación orientado a objetos basado en la úl-
arquitectura de participación tima especificación ECMAScript.
Es entonces que llegaron las denominadas > Innovación en los sistemas y sitios web > Flash Player 9 – La siguiente generación de
RIA (Rich Internet Applications). Este térmi- > Modelo de negocios ligero esta popular pieza de software que incluye una
no fue acuñado en el 2002 por la empresa > Facilidad de adopción Máquina Virtual (AVM2) que permite ejecutar
Macromedia, y en ese entonces significaba el código significantemente más rápido.
muchas cosas pero todo se veía sintetiza- Flex 2: RIA para Web 2.0 > MXML – Un lenguaje basado en XML que
do en la frase “Experience that matters”. Habiendo dicho todo esto, podemos enfo- permite manipular los componentes de la
Las RIAs proponían una experiencia para carnos en una tecnología que está creando aplicación de una forma eficiente.
el usuario muy diferente a la interacción de bastante eco en la comunidad de desarro- > Compilador y Depurador – Un compilador
cambio de página de las aplicaciones web lladores de aplicaciones web: Adobe Flex. A en línea de comandos así como un modelo
tradicionales, aquellas que en ese momen- grandes rasgos, Flex es un framework para de depuración en tiempo de ejecución.
to se fueron haciendo obsoletas y formaron desarrollar aplicaciones web que son ejecu- > Flex Framework – Una librería de compo-
parte de lo que se conoce como Web 1.0 tadas en la plataforma Adobe Flash. Actual- nentes de interfaz de usuario GUI, tales como
mente, Flex se encuentra en su versión 2, y botones, data grids, acordeon, paneles, con-
Una RIA combina lo mejor de dos mundos: todo lo que mencionamos en este artículo se troles de árbol, etc. Fáciles de personalizar
> Aprovecha las ventajas del web como pla- refiere a esta versión. basándose en CSS o mediante Skins.
taforma para entregar aplicaciones. > LiveCycle Data Services ES Express – Una
> Brinda al usuario una experiencia por lo En su comportamiento, las aplicaciones he- plantilla de aplicación Web entregada en
menos comparable a la de las aplicaciones chas con Flex son similares a las aplicaciones un servidor J2EE para comunicarse con el
de escritorio actuales. Ajax: permiten actualizaciones dinámicas cliente Flash Player mediante una serie de

28 JUL-AGO 2007 www.sg.com.mx


servicios de comunicación, manejo de datos
y mensajería y con amplias posibilidades de
integración con los sistemas actuales.

Estos elementos están incluidos en un SDK


gratuito que se puede descargar del sitio
de Adobe.

Adicionalmente, están las herramientas de


desarrollo, las cuales tienen un costo.
> Flex Builder 2 – Un IDE construido sobre
Eclipse, que permite un ambiente de trabajo
visual para construir las interfaces enfocán-
dose siempre en el usuario y a la vez una vista
de código muy familiar a los programadores.
> Charting Components – Una serie de compo-
nentes enfocados a la parte de reportes y grá-
ficas, muy socorridos para crear Dashboards,
aplicaciones colaborativas y reportes.
> LiveCycle Data Services ES Departamental
y Enterprise – Versiones de LiveCycle Data
Services ES para 100 usuarios concurrentes Figura 2. Estructura de la plataforma Flex
o sin límite de usuarios en concurrencia res-
pectivamente.

La figura 2 muestra los principales elemen-


tos de la plataforma Flex, y la figura 3 mues-
tra el flujo de trabajo bajo el que funcionan
estas aplicaciones.

Consideraciones sobre Flex 2


Muchas tecnologías se ven ir y venir hoy en
día, pero son pocas las que se vuelven parte
del cajón de herramientas de los programa-
dores. Al crear Flex 2, Adobe tomo en cuenta
diversas consideraciones para maximizar su
adopción y facilitar la curva de aprendizaje.
De hecho, Flex está pensado de forma que
sea muy sencillo para los desarrolladores de
Java dar el salto hacia esta plataforma. Algu-
nas de las características que contribuyen a
esto son:
ActionScript 3.0 es muy similar a Java Figura 3. Flujo de trabajo para aplicaciones Flex
> Flex Builder está construido sobre Eclipse,
uno de los IDEs más populares > Es capaz de “senderear” datos en tiempo mado Adobe Integrated Runtime (AIR) –an-
> La gran mayoría de las tecnologías Java real a la interfaz. teriormente conocido como el nombre clave
(EJB, POJO, Hibernate, JMS, etc.) se integran > Soporta altas tasas de actualización de “Apollo”–, que es un ambiente de ejecución
fácilmente con Flex. imagen (refresh rate) en entidades de da- que permitirá portar al escritorio aplicacio-
tos grandes. nes RIA de forma transparente e indepen-
También existen diversas opciones de inte- > A través de la máquina virtual de Flash Pla- diente del sistema operativo.
gración para aprovechar las características yer 9, soporta compilación just-in-time (JIT).
de Flex desde la plataforma .NET, algunos Así mismo, la próxima versión de Flex se en-
ejemplos son WebOrb y Fluorine. Una visión al futuro de Flex cuentra a la vuelta de la esquina con la im-
Por ahora, solo falta que los desarrolladores portante noticia de que se hará una apuesta
Otras características atractivas de Flex 2 se den cuenta del gran potencial que tiene hacia el mundo del código abierto, lo que
pueden ser: esta tecnología, que ha tenido una evolución permitirá a terceros integrar esta tecnología
> Esta basado sobre un mecanismo de segu- muy rápida. Pensando en un futuro próximo, dentro de sus productos y crear sus propias
ridad sólido pronto veremos un complemento a Flex lla- soluciones basadas en ella. <<

Edgar Parada es un Adobe Certified Instructor, consultor de Adobe, colaborador de diversos centros de capacitación e instructor activo en la DGSCA/UNAM. Actualmente
dirige Activ (www.activ.com.mx), un Adobe Authorized Training Center especializado en tecnologías como Flex, Flash Lite y Flash Media Server. Es parte del equipo del primer
grupo de usuarios en español enfocado en Flex: MadeInFlex ( www.madeinflex.com) y también es manager de Riactive ( www.riactive.com.mx), el grupo de usuarios oficial en
México para Flex. edgarparada@activ.com.mx

www.sg.com.mx JUL-AGO 2007 29


// COLUMNA /*CÁTEDRA Y MÁS*/

Web 2.0
La Redefinición de la “Caja de Zapatos”

Dr. Raul A. Trejo es Profesor Investigador del Departamento de Sistemas de Información del Tec de Monterrey, campus Estado de México.
Sus áreas de interés incluyen Ingeniería de Software, Negocios Electrónicos e Inteligencia Artificial. El Dr. Trejo participa en proyectos que
involucren de manera activa a sus estudiantes. Es miembro del Sistema Nacional de Investigadores (SNI) y ha presentado sus trabajos de
investigación en diversos foros nacionales e internacionales. El Dr. Trejo es miembro fundador de la Asociación de Sistemas de Información
de América Latina y del Caribe.

C uando alguien decide expresar su opinión


sobre un tema, buscando atraer, al menos
momentáneamente la atención del auditorio,
tático, y el trabajo de mantenimiento consistía
en eliminar y actualizar las ligas muertas.
poder para el usuario; el poder de generar in-
formación, publicarla, agregarla o reagruparla.
No en balde los blogs de los reporteros de CNN
se dice que: “se sube en su caja de zapatos”; y La penetración de tecnologías como DHTML y fueron en un momento más populares que el si-
desde ahí expone su discurso javascript dio lugar a páginas de diseño más tio oficial de la cadena noticiosa. Existe una ter-
dinámico, en las que el visitante podía inter- cera característica: el concepto de comunidad.
Cuando surgió la WWW, la información que se actuar y decidir qué información deseaba ver. Las páginas personales ya no son más islas soli-
podía encontrar era de carácter estático, pub- Hasta aquí podemos rastrear la evolución de tarias. Los usuarios se congregan: publican sus
licada por unas cuantas entidades, y muy es- Web 1.0: páginas de contenido más dinámico videos en YouTube, resuelven los problemas de
pecializada. Se podía encontrar información de y visual, pero con información centralizada que otros en foros, o dan a conocer sus datos más
cursos en los sitios de universidades, noticias debe ser consumida en el lugar y el formato personales en hi5. Herramientas tales como las
en cnn.com y los últimos avances sobre naveg- que su creador ha decidido. Y la caja de zapatos etiquetas inteligentes (smart tags) y los nuevos
adores de red en mosaic.com. Y si uno deseaba todavía sigue siendo un lugar escondido. Como algoritmos de búsqueda harán que el contenido
subirse a su caja de zapatos, podía hacerlo referencia, el lector puede consultar mi página agregado en las distintas páginas personales
desde los umbrales de usenet: ese primer in- académica, en http://webdia.cem.itesm.mx/ sea más fácil de encontrar. En todo caso, es
tento de grupo de discusión global, al que los ac/rtrejo. Ésta lleva demasiado tiempo sin ac- muy seguro que alguien más de la misma co-
geeks llegaban tarde o temprano. En estos ini- tualizar, pero podrán notar que indica mi nom- munidad encuentre la nuestra.
cios de la WWW, lo que podríamos llamar Web bre, y en algunas ocasiones recibe algunos visi-
1.0, se tenía una estructura centralizada de in- tantes perdidos que se interesan en un curso Consideren mi página actual (rulopotamo.
formación, con relativamente pocas entidades que no enseño hace años. spaces.live.com). Tiene mi nombre, y pertenece
publicando, y una gran mayoría leyéndo. a una comunidad. En ella encontrarán infor-
Llegamos así a Web 2.0. Más que un están- mación sobre temas de mi interés, y podrán
Luego vino el auge de las punto com, con un dar, en realidad es un concepto, un cambio de notar el video y el pronóstico del tiempo, extraí-
descubrimiento fundamental: todo el mundo paradigma. El más importante es la descentral- dos de fuentes externas. Subirse a la caja de
podía tener presencia en Internet, con diseños ización de la información. En vez de enlazar a zapatos en Internet nunca fue más sencillo.
más atractivos pero estáticos, que se convirti- ligas que contienen grandes bloques de infor-
eron en un escaparate de publicidad para las mación, se puede optar por acceder a servicios La adopción del concepto Web 2.0 tiene varias
empresas. Sin embargo, estos sitios al estar que nos proporcionan un fragmento de infor- consecuencias que proveedores y usuarios de-
generalmente disociados de modelos de ne- mación específica que puede ser actualizada de berán considerar. El concepto de propiedad de
gocios sólidos, sucumbían del mismo modo manera dinámica por su dueño y transparente información se está redefiniendo; el problema
meteórico en que habían surgido. Pero quedó para la entidad que consume la información. del copyright, uno de los puntos sensibles de
un sobreviviente: la página personal. Ahora cu- Aún mejor, ya no existe un formato predeter- Internet, se agudizará más con las tecnologías
alquier persona podía tener un espacio en In- minado para la información, la cual puede in- emergentes (Paramount Pictures aún libra una
ternet para subirse a su caja de zapatos, contar cluirse dentro de nuestra página personal en el batalla que parece perdida con YouTube). Es
sobre su vida, actividades, mascotas o cualqui- formato más apropiado y consumirse por otros claro que los modelos de negocio deben re-
er cosa que le interesara. Estas páginas solían dispositivos, como los teléfonos celulares. plantearse. Existe también el problema de cali-
ser el secreto mejor guardado de la red, con dad de información, y el cómo discernir cuál es
direcciones obtusas que sólo los amigos cerca- La primera característica de Web 2.0 es la de- confiable o verídica ante la gran cantidad dis-
nos visitaban, a menos que uno tropezara con scentralización. Los creadores de información ponible, y cómo el sitio donde se encuentre no
una de ellas por accidente. Mi primera página pueden recopilarla, clasificarla y hacerla dis- será necesariamente el mismo que la genere.
aún está disponible en http://www.cs.utep. ponible en segmentos significativos. ¿Qué pasa
edu/robotics/temporal/ (noten que no hay con la caja de zapatos? Pues que ahora nues- Queda un último detalle. Ya recibo más visitas
referencia a mi nombre, ni al contenido de la tra capacidad de expresarnos es mucho más en mi página. Pero no estoy seguro si los viaje-
página). Ahora bien, ¿qué hay de la autopista rica, y se puede incluir en nuestras páginas ros de Internet lo hacen por su interesante con-
de la información en estas páginas personales? personales información creada por terceros de tenido, o sólo como medio para tener acceso
Bueno, yo opino que era una autopista muy manera directa. Como resultado, se hará común a las páginas de mis amigas. Y dicho esto, me
rudimentaria, donde las referencias a temas de que el viajero de Internet acceda a información bajo de mi caja de zapatos.
interés consistían en hiperligas a otras páginas. desde un sitio distinto a donde ésta fue creada.
De nuevo, el contenido era en su mayoría es- Lo que nos lleva a la segunda característica: el —Raul A. Trejo

30 JUL-AGO 2007 www.sg.com.mx


www.sg.com.mx JUL-AGO 2007
// PRÁCTICAS /* MANTENIMIENTO DE SOFTWARE*/

Mantenimiento de Software
Todos lo hacemos, pero nadie se acuerda
Por José M. Esquivel

La industria de desarrollo de software mantiene una evolución cons- drá correr durante varios años durante los cuales el sistema debe ser
tante. Antes podíamos ver que los ingenieros en sistemas compu- soportado y mantenido. De la misma forma, aun cuando el manteni-
tacionales, electrónica, o incluso otra especialidad contaban con miento de software es la última etapa del ciclo de vida del software,
todos los conocimientos necesarios para desarrollar y entregar un las actividades de mantenimiento no son las menos importantes. Muy
software. Sin embargo, la creciente complejidad del software y las al contrario, el mantenimiento del software se ha convertido en el
tecnologías y procesos necesarios para su desarrollo y manteni- principal componente en cuanto a costo y recursos invertidos en las
miento ha provocado que los profesionistas tengan que especiali- organizaciones de TI. Esta aseveración responde principalmente a la
zarse. Dentro de estas especializaciones encontramos algunas como relación entre el número de sistemas desarrollados anualmente por la
la programación, el levantamiento y análisis de requerimientos, el industria, comparado con el número de sistemas en funcionamiento
diseño de aplicaciones, el diseño de base de datos, las pruebas de que hacen trabajar a las empresas.
software, y recientemente una actividad que es por mucho, una de
las mas importantes y menos valoradas de la industria: el manteni- Dentro de las actividades del mantenimiento de software ocurre un
miento de software. Según la terminología ANSI-IEEE, el manteni- fenómeno muy interesante, que es algo que denominaremos como la
miento del software es: “la modificación de un producto software barrera del mantenimiento de software, y que en pocas palabras es
después de su entrega al cliente o usuario para corregir defectos, la incapacidad en la que se ven sumergidas las organizaciones para
para mejorar el rendimiento u otras propiedades deseables, o para poder iniciar nuevos proyectos debido al enorme desvió de recursos
adaptarlo a un cambio de entorno”. En este artículo exploraremos necesarios para soportar sistemas que son parte de la operación dia-
los aspectos fundamentales de esta actividad. ria. Se estima que esta barrera se alcanza cuando más de un 90 % de
los recursos se encuentran dedicados a soportar aplicaciones.
Frente a la considerable velocidad con que se ha desarrollado la in-
geniería de hardware, el desarrollo del software ha sufrido un retra- Prácticamente todos los profesionistas de sistemas hemos escuchado el
so histórico en cuanto a la elaboración y disposición de tecnologías comentario de que somos como los bomberos, apagando fuegos. Bue-
(metodologías y herramientas). Esto evidentemente merma la calidad no, pues precisamente ésta es la razón de traer este tema a reflexión. El
de los sistemas liberados y corriendo en ambientes de producción. La mantenimiento de software debe ser una actividad planeada por el área
complejidad del proceso de producción de software se intenta abordar de tecnologías de información de una organización, que debe contar
mediante la descomposición en diversas etapas. Esta descomposición con recursos dedicados y capacitados para desempeñarla.
recibe el nombre de “Ciclo de Vida del Software”. Los diversos mode-
los de ciclo de vida típicamente plantean distintas fases derivadas del Dividiremos entonces nuestra plática en 2 temas importantes: los proble-
modelo de cascada, tales como: mas del mantenimiento de software y las soluciones a estos problemas.
• Análisis y Definición de Requerimientos
• Diseño Problemas del Mantenimiento de Software
• Programación La problemática del mantenimiento de software se resume en realizar
• Prueba el mantenimiento de forma tan rigurosa y controlada que no se de-
• Despliegue teriore la calidad del sistema como resultado de este proceso. Por la
• Operación y mantenimiento. naturaleza del software, existen problemas relacionados con el man-
tenimiento de software que están claramente identificados y sobre los
Las tareas de mantenimiento son las últimas en realizarse en el ciclo cuales hablaré a continuación:
de vida clásico del software. Sin embargo, considerando el total de la
duración del ciclo de vida, la etapa de mantenimiento es la que más La existencia de los llamados “legacy code” (código heredado).
tiempo dura, ya que elaborar un sistema mediano típicamente lleva Con el paso de los años se ha ido produciendo un volumen muy
de 6 meses a 1 año, y posteriormente el sistema en producción po- grande de software en las empresas. En la actualidad, la mayor par-

Jose M. Esquivel es Ingeniero en sistemas computacionales egresado de la Universidad Autonoma de Guadalajara. Actualmente trabaja para Jabil de
Mexico como Ingeniero de soluciones empresariales dando soporte a los sistemas de la compañia asi como impartiendo la clase de “Pruebas y Manten-
imiento de Software” a nivel licenciatura en la Universidad del Valle de Atemajac. Anteriormente laboró en IBM como ingeniero de pruebas, Ingeniero de
desarrollo, arquitecto de producto para clientes como Motorla y Chrysler, entre otros.

32 JUL-AGO 2007 www.sg.com.mx


“El mantenimiento de software debe
ser una actividad planeada... que debe
contar con recursos dedicados y
capacitados para desempeñarla ”.

te de éste software está formado por código antiguo “heredado”; es Código mantenible.
decir, código de aplicaciones desarrolladas hace algún tiempo, con Como ya lo mencionamos anteriormente, la manera de estructurar
técnicas y herramientas en desuso y probablemente por personas un programa depende de la creatividad y habilidad de los progra-
que ya no pertenecen a la empresa ni al grupo responsable en este madores, sin embargo existen prácticas que contribuyen a mejorar
momento del mantenimiento del software. La situación se complica la facilidad de mantenimiento del código. Estas prácticas se resu-
porque el código heredado ha sido objeto de múltiples actividades men a continuación:
de mantenimiento. La opción de desechar este software y reescri- • Código documentado: Los diferentes segmentos de código que se
birlo para adaptarlo a las nuevas necesidades tecnológicas o a los escriben deben contener comentarios objetivos que expliquen de for-
cambios en la especificación no es viable en la mayoría de las oca- ma adecuada el funcionamiento de éstos. Cada programa, clase y mé-
siones, debido a la gran carga financiera que supuso el desarrollo todo debe incluir documentación sobre su propósito, funcionamiento,
del software original y la necesidad económica de su amortización. entradas y salidas esperadas
• Banderas de cambio: es una práctica poco utilizada en la industria, y
Problemas inherentes al mantenimiento del software. se refiere a la habilidad de establecer un mecanismo de identificación
A pesar de toda la estandarización y modelos de procesos que bus- de cambios a lo largo de la vida de una aplicación. Es decir, si debido a
quemos adoptar, el desarrollo de software es en el fondo un proceso una modificación el día de hoy cambiamos un par de líneas de código,
creativo. Es así que en el software siempre encontraremos patrones es importante marcar esas líneas con alguna bandera que nos permita
no uniformes de programación, ya que dependiendo de su habilidad, identificar en el futuro la razón por la que se modificó el código. Esto
creatividad y experiencia, los programadores generan código de ma- nos permite tener una visión de las versiones y justificaciones que pu-
neras innumerables. Asimismo, es muy común encontrarse con apli- dieron haber inyectado un error a la aplicación.
caciones de software desarrolladas sin seguimiento a metodologías, • Documentación actualizada: esta práctica es poco ejercida debido
procesos, ni lineamientos, que se refleja en código mal escrito, mal a que el tiempo y la forma de documentación no es suficiente en los
documentado, y por lo tanto difícil de mantener. proyectos de desarrollo. Sin embargo, me refiero primordialmente a
tener las especificaciones de las aplicaciones actualizadas, no al ma-
Efectos secundarios o laterales no previstos ni deseados. nual de usuario que si bien es de mucha ayuda, es de más ayuda tener
Estos efectos se dan como consecuencias a las modificaciones no documentación técnica actualizada, tal como diseños, diagramas, dic-
controladas a las aplicaciones de software, que a su vez representan cionarios de datos, etc…
problemas para el mantenimiento posterior del software. Existen tres
tipos de efectos secundarios y se definen por su impacto en las dife- Equipo dedicado de mantenimiento de software
rentes áreas de una aplicación de software: A pesar de la importancia que ya vimos que tiene el mantenimien-
a. Efectos secundarios en el código, en donde el código sufre modi- to de software, muchas organizaciones no justifican la asignación
ficaciones como rediseños, eliminación de procedimientos o subpro- de un equipo dedicado exclusivamente al mantenimiento de soft-
gramas, modificación de macros o dll’s, cambios para mejorar el des- ware. Sin embargo, es primordial tener identificadas a las perso-
empeño, etc... nas que realizarán esta actividad, y no solo identificadas, sino
b. Efectos secundarios en los datos, esto al impacto de los cambios en también capacitadas y calificadas para realizar estas actividades.
los datos de las aplicaciones, tales como modificaciones en catálogos, La justificación para tener a este equipo es muy sencilla, simple-
formularios, cambios en los parámetros de los programas, etcétera. mente basta con cuantificar el costo que tiene que un sistema de
c. Efectos secundarios en la documentación, en donde general- producción deje de funcionar, o que genere problemas en su uso
mente después de un cambio en la aplicación, la documentación debido a un bug.
no es actualizada y esto genera problemas en la “mantenibilidad”
del software.
Conclusión
Soluciones a los problemas de mantenimiento El mantenimiento de software es un área que recibe poca
de software atención, pero no por ello deja de ser sumamente importante,
Existen diversas estrategias y acciones que podemos llevar a cabo especialmente cuando se considera la cantidad de recursos que
para resolver o mitigar los diferentes problemas descritos anterior- se le destinan. Existen muchos aspectos sobre el mantenimiento
mente, y que pueden servirnos de guía sobre la manera en que las or- de software sobre los que vale la pena ahondar, y espero poder
ganizaciones deben de enfrentar el mantenimiento de software. Entre hacerlo en futuras ocasiones.
las principales estrategias están:

www.sg.com.mx JUL-AGO 2007 33


// PRÁCTICAS /* ADMINISTRACIÓN DE PROYECTOS*/

Caso Práctico sobre Análisis de


Puntos de Función
Parte 3. Puntos de Función Ajustados y Uso de los Puntos de Función
Por Aquiles Santana

Bienvenidos a la tercera y última parte de este caso práctico sobre herramientas tienen ya sus propias variables ambientales y sus
análisis de puntos de función. Como podrán recordar, el objetivo propios criterios de evaluación. Por ello, alimentar puntos de
de este ejercicio es mostrar cómo se utiliza la técnica de puntos función ajustados redundaría el factor ambiental que ya es con-
de función aplicada a un caso real. En nuestro caso, la aplicación siderado en la estimación.
consiste en un sistema para administrar las ventas de automóvi-
les que realiza una empresa de compra-venta de autos usados. 7. Determinar los Puntos de Función Ajustados
En este paso, se aplican fórmulas que en esencia consideran los
En la parte 1, planteamos los requerimientos iniciales en los que puntos de función no ajustados y se multiplican por el factor de
nos basamos para realizar el análisis. Posteriormente, en la parte ajuste. Las fórmulas a ser aplicadas dependen del tipo de conteo
2 llevamos a cabo los pasos necesarios para determinar los puntos (desarrollo, mantenimiento o aplicación). Para el caso de un nue-
de función no ajustados. Ahora, ya solo nos falta realizar el ajuste vo desarrollo, la fórmula es la siguiente:
para obtener los puntos de función ajustados. Por último, daremos
un vistazo a los múltiples usos que le podemos dar al resultado de Puntos de Función Ajustados =
nuestro análisis de puntos función. Comencemos entonces … Puntos de Función no Ajustados x Valor de Ajuste

6. Determinar el Valor del Factor de Ajuste Aplicación al caso


Este paso, ayuda a determinar un factor de ajuste que puede au- Sumando las funciones de datos (12 puntos de función no ajus-
mentar o disminuir el valor de los puntos de función en un +/- tados) y las funciones transaccionales (23 puntos de función no
35%. Las características evaluadas se refieren a requerimientos ajustados), esta aplicación mide 35 puntos de función no ajusta-
o restricciones no funcionales, como: comunicaciones de datos, dos, los cuales multiplicados por el factor de ajuste igual a 1, nos
actualización online, complejidad de procesamiento, facilidad de daría 35 puntos de función ajustados.
instalación, etc.
Uso de los Puntos de Función
Si la calificación de estos factores ambientales es el mínimo, el Una vez que hemos obtenido el total de puntos de función, esta-
valor de ajuste será 0.65. Por el contrario, si los factores ambien- mos ya en posibilidad de beneficiarnos de esta poderosa técnica.
tales son los más complicados, el valor de ajuste será 1.35. Algunos de los beneficios que obtenemos directamente son:

Para obtener la evaluación más precisa y objetiva, se recomienda • Estimación de Proyectos: El dato de los puntos de función no
que para esta actividad el analista de puntos de función trabaje ajustados, puede ser introducido en algún modelo de estimación
en conjunto con el equipo técnico. estadístico, el cual sea calibrado con información histórica de
proyectos ya terminados y también dimensionados en puntos de
Aplicación al caso función. Los datos históricos de tamaño, esfuerzo, personal, fa-
Debido a que no fue proporcionado el detalle de las caracterís- ses y características ambientales, proveen las tendencias clave
ticas ambientales, y sólo se indicó que los requerimientos y res- que pueden ser utilizadas para estimar proyectos similares. En
tricciones no funcionales son como el “promedio”. Se asumirá un nuestro caso la aplicación mide 35 puntos de función y el cliente
valor de ajuste igual a uno. quiere que terminemos el proyecto en 2 meses. Buscaremos en
la BD historia de proyectos en tamaño y características similares,
Cuando se calculan los puntos de función para realizar una es- y con la ayuda de las herramientas estadísticas, identificaremos
timación mediante el uso de una herramienta estadística, se tendencias y evaluaremos las probabilidades de éxito en diferen-
alimentará únicamente los puntos de función no ajustados. Es tes situaciones, como por ejemplo: ¿Cuál es la probabilidad de
decir, funcionalidad “pura” sin la influencia de características terminar el proyecto en 2 meses?, ¿Cuál es la cantidad adecuada
ambientales o de implementación. Esto es debido a que estas de personas a ser asignadas al proyecto? ¿Cuál es la cantidad de

34 JUL-AGO 2007 www.sg.com.mx


esfuerzo requerido?, ¿Cuál sería el escenario con menor costo? y además, si con la in-
formación histórica se observara una muy baja probabilidad para terminar en 2 meses,
¿Cuántos puntos de función si podríamos comprometer para liberar en 2 meses?. Las he-
rramientas de estimación paramétrica son excelentes para estudios de “¿Qué pasa sí…?”
y en la generación de diferentes escenarios factibles. Siempre, el tener mayor informa-
ción histórica de nuestros propios proyectos, será mejor para incrementar la exactitud
de nuestros estimados.

• Control de Alcance: Una vez aprobado el alcance de 35 Puntos de Función, será ahora
nuestra línea base de tamaño. Debido a que el proyecto se encuentra en fases tempra-
nas, típicamente existirá un crecimiento de tamaño debido a un mayor entendimiento
del negocio y/o aclaración de supuestos. En nuestro caso práctico, hicimos el supuesto
de que la aplicación, no contemplaba funcionalidad para definir usuarios y perfiles de
seguridad. Sin embargo, durante el desarrollo, dicho supuesto podría cambiar cuando
el usuario decidiera que si quiere tal funcionalidad. Como en cualquier administración
de cambios, abriríamos nuestro control de cambios al alcance y en la evaluación del
impacto, incluiríamos el nuevo tamaño funcional para ver si dicho incremento de tama-
ño sobrepasa nuestros límites de capacidad. En caso de ser así, ejecutaríamos alguna
acción de mitigación o contingencia. Por ejemplo, si derivado del análisis, la funcionali-
dad creciera hasta 50 puntos de función, ¿mantendríamos el mismo estimado de dura-
ción/esfuerzo/personal asociado a los 35 puntos de función?, ¿hasta donde podemos
absorber? ¿Sí sólo crece 10 puntos de función, podemos manejar el crecimiento? En este
punto, las opciones típicas para administrar el cambio, podrían ser:
- Priorizar junto con el usuario para acotar de nuevo a los 35 puntos de función y mo-
ver la funcionalidad con menor prioridad a otras fases.
- Incrementar el tamaño del equipo (si es aún factible).
- Incrementar la duración del proyecto.

• Control de producción: Los puntos funcionales nos permiten cuantificar cual es el ta-
maño del proyecto. Es decir, al final del proyecto de nuestro caso práctico esperamos
que se entreguen 35 puntos de función. Ahora bien, durante el ciclo de vida, cada que
es terminado un caso de uso, un diseño, un diagrama de clases, una codificación de un
método o un caso de prueba, etc; nos vamos acercando a estos 35 puntos de función.
Alguna herramienta para el control de producción tomará como entrada estos 35 puntos
de función, y hará visible cuanto se ha construido y cuanto debería tenerse construido
con base a información histórica, y así comparar si el ritmo de producción es similar a las
tendencias esperadas. En caso de que el ritmo de producción fuera menor al esperado,
acciones correctivas o de mitigación sería tomadas. Por ejemplo, quizas, el volumen de
producto es menor debido a que los peer reviews, están siendo sólo de forma y no de
fondo, y los defectos mayores están pasando directamente por el ciclo de vida, sin que
sean tempranamente atendidos. Nuestra acción sería atender esta causa modificando el
proceso de peer reviews para detectar estos defectos tempranamente e incrementar el

www.sg.com.mx JUL-AGO 2007


// PRÁCTICAS /* ADMINISTRACIÓN DE PROYECTOS*/

• Construcción de base de datos histórica para benchmarks y funcionales, pueden ser relacionados contra los componentes
proyectos de mejora continua: Cuando terminemos nuestro pro- físicos (tablas, pantallas, clases, casos de prueba, etc), lo cual
yecto de 35 puntos de función, como parte de las actividades sienta las bases para la construcción de una matriz de rastreabi-
de cierre del proyecto obtendremos y registraremos métricas y lidad que sea utilizada para evaluar de manera completa y con-
lecciones aprendidas. Entre las métricas que deberán ser reco- sistente el impacto de los cambios, y aumentar la productividad
piladas están: el tamaño funcional, el esfuerzo (horas-hombre, en los mantenimientos debido a curvas de aprendizaje menores.
meses-hombre), duración (días calendario, días hábiles), núme- En nuestro caso, la función de datos: “Vehículo” está implemen-
ro de personas, cantidad de defectos, número de cambios, can- tado en dos tablas: Tb_Vehículos y Tb_Accesorios_Vehículo. Por
tidad de líneas de código, cantidad de casos de uso, número de lo tanto cuando funcionalmente se identifique una modificación
riesgos, número de issues, etc. Estos datos serán almacenados a la función de datos “Vehículo”, el equipo técnico sabrá que es-
en nuestra base de datos de proyectos históricos con el propó- tados dos tablas podrían ser impactadas.
sito de ser analizados y utilizados para realizar benchmarks en
la propia organización y contra el mercado, y derivado de ello, • Identificación de scope creep o inconsistencias en los reque-
arrancar proyectos de mejora con el fin de reducir el costo de rimientos: Cuando se están contando los puntos de función e
nuestros proyectos, incrementar nuestro desempeño y lograr identificando las funciones de datos y transaccionales, el aná-
mejores oportunidades de mercado. Estos proyectos de mejora, lisis es realizado de manera sistemática, por lo cual aparecen
partirían de metas objetivas para disminuir el costo de nuestros preguntas que deben ser resueltas por el equipo de análisis o
proyectos mediante el incremento de productividad y calidad. el cliente. Por ejemplo, en nuestro caso práctico, al momento de
Por ejemplo, si la información de la industria, nos indicara que la contar las funciones transaccionales, vemos que tenemos la fun-
productividad típica de un proyecto es de 15 puntos de función ción de “Insertar Compra”, sin embargo, cabe pensar que pueda
por persona-mes, y en nuestros proyectos tenemos un promedio existir un “Actualizar Compra”, funcionalidad que no está inclui-
de 10 puntos de función por persona-mes, esto nos daría una da en los requerimientos, pero que podría presentarse y debe
meta clara de que por lo menos debemos incrementar la pro- ser evaluado con el cliente si dicha funcionalidad será parte del
ductividad en 5 puntos. De esta forma, los programas de mejora sistema. Así mismo, el análisis de puntos de función ayuda a re-
complementarán sus objetivos y no sólo estarán enfocados a lo- visar los productos derivados de otras técnicas de análisis. En mi
grar tal o cual certificación, o nivel de madurez. Los programas experiencia, ha sido muy útil para identificar defectos presentes
de mejora continua, deben tener objetivos claros y medibles en especificaciones de casos de uso.
para el negocio, y no sólo el objetivo de obtener un papel o re-
conocimiento. Adicionalmente, el ingreso de más información en
nuestra base de datos de proyectos, incrementará la exactitud
Conclusión
de nuestros estimados y nos dará mayor oportunidad y certeza La técnica de análisis de puntos de función es muy valiosa
para dar estimados agresivos pero factibles. para nuestra industria, donde la carencia de métricas de
productividad estándar reduce la madurez con la que
Potenciales usos del Proceso de Análisis de nuestros clientes y nosotros mismos podemos evaluarnos.
Puntos de Función Una industria madura se fundamenta en métricas y no en
Obviamente, el objetivo principal del análisis de puntos de fun- percepción y buenos deseos. Por esto, como consumidores de
ción es obtener los puntos de función para un sistema. Sin em- productos de ingeniería de software debemos exigir y evaluar
bargo, existen beneficios adicionales derivados de la aplicación a nuestros proveedores con métricas de productividad y
del proceso. Como su nombre lo indica el Análisis de Puntos calidad, y como proveedores debemos empujar e incrementar
de Función, es también una técnica de análisis sistemática que nuestro desempeño orientados a la reducción de costos y
aporta beneficios tangibles como: aumento en la satisfacción. A fin de cuentas, el objetivo no
es alcanzar un nivel de madurez o una certificación, ese es
• Rastreabilidad de componentes: Como pudo ser apreciado en sólo el medio. El objetivo real es producir aplicaciones con
nuestro caso práctico, al momento de realizar el conteo de Puntos oportunidad, mínimo costo y alta satisfacción para nuestros
de Función, se identifican componentes funcionales que tienen clientes y nuestros empleados, y en ese camino, los puntos de
una granularidad definida, debido a que seguimos las reglas y función tienen mucho que ofrecer.
definiciones del estándar del IFPUG. Estos componentes lógicos

Aquiles Santana Álvarez es Certified Function Points Specialist por parte del IFPUG y Project Manager Professional por parte del PMI. Ha sido respon-
sable de la estimación de proyectos de software críticos para EDS de México y Latinoamérica. Ha impartido entrenamiento en la técnica de Puntos de
Función y estimaciones a más de 300 personas en 6 países. Actualmente se desempeña como consultor en Project Management e Ingeniería de Software.

36 JUL-AGO 2007 www.sg.com.mx


// PRÁCTICAS /* MEJORA DE PROCESOS*/

Factores Clave
para la Mejora de Procesos
La diferencia para el éxito
Por Rocío García Ocaña

Sin duda alguna, las necesidades y tendencias externas determi- Considerar dichos factores nos permitirá tener una estrategia
nan los cambios en las organizaciones, cambios de toda índole más robusta y con mayores posibilidades de alcanzar los resul-
y tamaño. Desde cambiar un poco la forma de hacer las cosas tados que esperamos. El objetivo de este artículo es explicar en
hasta cambios que implican un programa formal dando pie al qué consisten estos factores y entender su importancia para im-
surgimiento de un programa de mejora cuyos objetivos son el plementar un programa de mejora.
incremento de calidad, disminución de costos, aumento de com-
petitividad, entre otros. La cultura
Al igual que un país, las organizaciones son entes únicos, con
Usualmente, la mejora de procesos se concentra en la definición o una identidad que las diferencia y una serie de valores que las
redefinición de procesos, procedimientos, políticas, mediciones, identifica. A este conjunto de identificadores es a lo que llama-
uso efectivo de herramientas, etcétera. Sin embargo, esto no es mos cultura organizacional. Entenderla es fundamental porque
suficiente para lograr la mejora que buscamos, ya sea en el des- nos ayuda a sensibilizarnos con el ambiente de la organización
empeño o en la calidad. Pensemos que para conseguir resultados y prever un poco su reacción ante la introducción de cambios.
con impacto, es necesario cambiar cosas no sólo en papel o en La importancia de conocer y entender la cultura organizacional
electrónico, sino en hábitos, comportamientos y percepciones, radica en el hecho de que existen elementos imperceptibles a
para conseguir una alineación a los objetivos que perseguimos. simple vista, como hábitos, sentimientos, motivadores, clima
laboral, estilos, etcétera; que pueden convertirse en poderosos
Una de las quejas más frecuentes durante la fase de implemen- obstructores durante una implementación. El plan de mejora
tación de un programa de mejora de procesos, se refiere a la busca incrementar la calidad a través de diseño de procesos,
cooperación limitada o nula de algunos miembros de la organi- pero dichos procesos son ejecutados por personas con una
zación, respecto a seguir los procesos definidos, pero ¿qué hay identidad individual incrustada en una identidad colectiva, por
detrás de ese comportamiento?, ¿y cómo mitigarlo para lograr eso requerimos hacer un alto, y recapacitar antes en el tipo de
que nuestro programa genere verdaderamente los resultados cultura que tenemos. Supongamos por ejemplo, que la ejecu-
que buscamos? ción de los procesos me ayuda en un mediano plazo a hacer
que los integrantes de los equipos de desarrollo trabajen en un
Antes de pensar en introducir mejoras de proceso, lo primero que de- ambiente más controlado, que los trabajos se logren terminar
bemos saber es que, hacerlo implica cambios en la forma de traba- en tiempo y presupuesto, pero ¿qué hay más allá de eso? Pro-
jar, lo cual tiene un impacto directo en esfuerzo y por consiguiente, bablemente parte de la cultura de la empresa, es el valor a los
en tiempos. Es así como caemos en la cuenta que uno de los ries- detalles funcionales del producto que se construye, más aún
gos más grandes es la aparición y permanencia de la resistencia de hablando de software. Tal vez uno de los valores de la empresa
los miembros de la organización, que a la larga, se convierte en un es propiciar la lealtad de los clientes; y la cultura de atención
verdadero dolor de cabeza para una implementación exitosa. ¿Les en los detalles no es sólo cuestión de calidad sino de valores.
suena familiar? Si han implementado y están en la actualidad involu- Todos estos pequeños detalles nos darán la pauta para saber
crados en el mencionado proceso, comprenderán sin lugar a dudas orientar el programa de mejora y hacer que no sólo encajen con
a lo que me refiero. La importancia de considerar otros factores que una estrategia de negocio, sino con la cultura de trabajo de las
contrarresten el efecto de los cambios y se conviertan en aliados personas que forman parte de la organización. Lo que nos dará
para implementar exitosamente nuestro programa, es crítico. Los como resultado: minimizar el shock ocasionado por los cambios,
factores a los que me refiero son: cultura, comunicación, disciplina, facilitar la introducción del cambio, así como lograr un cambio
convencimiento, manejo del cambio, coaching y enfoque. más duradero en la organización.

www.sg.com.mx JUL-AGO 2007 37


// PRÁCTICAS /* MEJORA DE PROCESOS */

“Manejar el cambio significa: subir a


todos al barco del cambio, sin olvidar
que estamos a cargo del timón”.

Comunicación en la ejecución de las acciones que demanda nuestro plan de


“La comunicación es la base de todo”, seguramente han escucha- mejora, esto con la finalidad de tener un progreso real que nos
do en varias ocasiones esta frase, y ahora me permito repetirla garantice el logro de los resultados que buscamos, lo anterior no
una vez más, pues en los programas de mejora no es la excepción. es nada nuevo, sin embargo ¿cómo generar disciplina en nuestra
De la claridad y efectividad con que los comuniquemos depende- gente?, no es una tarea fácil. Comencemos por definir el térmi-
rá en gran medida la respuesta de las personas de la organización no. La palabra disciplina tiene un vínculo tanto a áreas de co-
para asimilar y aceptar los cambios que implican las mejoras. nocimiento como al apego de las reglas. En el contexto de un
programa de mejora, se refiere a conocer y seguir los procesos
Para denotar la importancia de una comunicación efectiva, recapi- como fueron definidos, para lo cual, la autoridad (llámese comité
tularemos un poco sobre lo que sucede al decidir trabajar con un de mejora) contribuirá para guiar a la organización y verificar el
programa de mejora: se identifica una necesidad, se conforma al apego a los procesos. Si esta disciplina no se fomenta a todos los
equipo de trabajo, comienza la planeación; si los patrocinadores niveles, difícilmente lograremos los cambios que esperamos. No
del programa están de acuerdo se autoriza y comienza a ponerse obstante, hay que tomar en consideración que la disciplina no es
en marcha. El tiempo pasa, y aunque vemos avance en las activi- lo mismo que la imposición. La disciplina se inculca, se enseña
dades de cada fase del plan de mejora, ¡sorpresa!, la implementa- con el ejemplo y se mejora con el tiempo, pero si la intentamos
ción no está arrojando los resultados esperados, o tal vez no con desarrollar con intimidación puede generar efectos secundarios,
la rapidez que esperamos; es entonces cuando nos preguntamos: tales como la apatía.
¿qué falta? Las razones pueden ser varias, pero una de las princi-
pales es la falta de comunicación o la comunicación no efectiva. Convencimiento
Un plan de mejora es generalmente gestionado por un grupo de Para explicar este factor, quisiera que pensaran por unos segun-
personas, pero no hay que perder de vista que es “ejecutado” por dos en la razón por la cual usan el cinturón de seguridad una
un grupo más grande de personas que, de una u otra forma, ven vez que suben a su auto, tal vez lo hacen por instinto o por cos-
alteradas sus actividades como efecto de los cambios introduci- tumbre, pero a fin de cuentas, probablemente lo usan porque
dos. Es por ello que la comunicación honesta, abierta, oportuna e están convencidos de que puede salvarles la vida en un acciden-
integral, es fundamental en todas las fases del programa. te cuando menos lo esperen. Dichas circunstancias imaginarias
nos provocan cierta disciplina en su uso. El punto al que preten-
Es importante que desde el inicio consideremos el tiempo sufi- do llegar es que, el estar convencido de la utilidad o el valor de
ciente y los medios adecuados para informar a todos los involu- las cosas es algo que buscamos en las personas para generar
crados, a todos los niveles, sobre lo que se busca lograr, en qué disciplina, es decir, que esa comunicación de los nuevos pro-
vamos, qué implica y por qué se está haciendo, qué impactos cesos vayan acompañados de información contundente; lógica
tiene y qué pasa si no se hace. El no sostener una comunicación que tenga el poder de convencer y que haga que en las personas
efectiva y constante durante todas las fases del plan de mejora, florezca la disciplina para seguir los procesos definidos y lograr
provoca desorientación, y cada una de las personas involucradas un hábito a largo plazo, haciendo verdaderamente sustentables
en el cambio caminará con su propia visión de las cosas, la cual las prácticas que se pretenden introducir a través del programa
puede no coincidir con la visión general del programa, lo que im- de mejora.
pedirá que el esfuerzo y el trabajo rinda los frutos esperados.
Manejo del cambio
Disciplina La mejora de procesos representa sin duda un esfuerzo organi-
Como todo en la vida, el logro de objetivos requiere disciplina zacional con impactos de distintas magnitudes en el ambiente, y

Rocío García Ocaña labora en Avantare Consultores como Consultora de ingeniería de procesos de software. Su desarrollo profesional la ha llevado a
empresas como Getronics ICT Solutions donde fue Coordinadora de Procesos y Aseguramiento de Calidad del Software, y FORD Motor Company México
donde tuvo a su cargo la definición de procesos de procesos de administración, respaldo y recuperación. Rocío es Licenciada en Sistemas Computacio-
nales Administrativos por el ITESM-CEM, y cuenta además con una Maestría en Administración por la misma institución.

38 JUL-AGO 2007 www.sg.com.mx


como tal, estos cambios requieren ser conducidos de la manera correcta, siempre con
el apoyo de la alta gerencia, pero ¿qué significa manejar el cambio? Primeramente en-
tender que cada pequeño o gran cambio que ocurre dentro de la organización provoca
diversas reacciones en las personas, desde la cooperación hasta la resistencia. El ma-
nejo del cambio en todo el proceso del programa es en definitiva una de las claves para
hacer la implementación suave y con efectos duraderos. El manejo del cambio, más
allá de generar un plan, monitorearlo y garantizar que sea apoyado por la alta geren-
cia, implica tener objetivos claros, visión nítida de dónde queremos llegar, dedicación
y atención para guiar a las personas durante toda la iniciativa; de tal manera que en
todo momento podamos percibir y canalizar todos los sentimientos que generan los
cambios en las personas que forman parte de la organización. Es necesario entender
que la mejora conlleva cambio y el cambio, tanto en nuestras vidas personales como
profesionales, genera una serie de mecanismos de defensa, los cuales en ningún mo-
mento deben ser subestimados. Manejar el cambio significa: “subir a todos al barco
del cambio”. Sin olvidar que estamos a cargo del timón y debemos monitorear la di-
rección de dicho barco.

Coaching
El siguiente factor muy íntimamente ligado al manejo del cambio, es el coaching, es
decir, el estar “cerca” de las personas a quienes impactará el cambio. Proporcionar
coaching, significa escuchar y otorgar a las personas que forman parte de la organiza-
ción la oportunidad de expresar las opiniones que soportan sus decisiones; aclarar sus
dudas de manera oportuna y acompañarlos en el proceso de cambio que un programa
de mejora implica. La ausencia del coaching puede provocarnos problemas, desde una
práctica errónea que más tarde puede ser diseminada, una formación inapropiada que
resulta en la generación de resistencia, hasta la pérdida de interés por sentimiento de
ausencia de un guía.

Enfoque
Un elemento más, y no menos importante, es el enfoque, para entender un poco mejor,
imaginemos la nitidez y claridad de la imagen que logramos cuando ajustamos unos
binoculares para ver a cierta distancia. En el contexto de un programa de mejora, el en-
foque se refiere a tener una perspectiva entendible y coherente tanto del mediano como
del largo plazo. Además significa tener claro qué objetivo perseguimos, cuáles son los
pasos definidos y mantenernos avanzando sin perderlo de vista, lo cual nos permitirá
identificar los momentos cuando se requiere hacer un ajuste, que de cualquier modo,
nos permita llegar al objetivo.

Avanzar sin un enfoque, es como caminar en un terreno desconocido, es como decir:


“quiero mejorar, pero no sé en qué”.

Finalmente quisiera recapitular y mencionar que un programa de mejora implica cam-


bios, además de una constante lucha contra el tiempo y los recursos, dado lo cual, vale
la pena tener en cuenta estos siete factores , que sin ser secuenciales, sí se encuentran
estrechamente ligados unos con otros. Nos ayudarán a soportar el proceso de imple-
mentación, y lo más importante, pueden ser los diferenciadores entre una simple im-
plantación de procesos y una implantación efectiva de procesos. ¡Mucho éxito!

www.sg.com.mx JUL-AGO 2007


// PRÁCTICAS /* DISEÑO */

El Mariachi Orientado a Objetos


Entendiendo el diseño OO
Por Carlos “Fofo” Ordóñez

¿Cómo hacen los diseñadores de automóviles para construir un


auto compacto, que pueda ser conducido por una persona que
mide 1.60 de estatura, y un grandulón de 2.10? La respuesta es
sencilla: considerando al momento de diseñar, y antes de fabri-
car, los potenciales de cambio, tomando así las medidas per-
tinentes para crear una solución “flexible”: la palanquita que
recorre los asientos.

Cuando desarrollamos sistemas, todos nos hemos enfrentado a


esta constante de nuestra profesión: el cambio. Cambio de re- Figura 2. Mariachi con músicos bailarines.
querimientos, cambio de versiones, cambio de plataforma, etcé-
tera. Para combatirlo, tenemos que dedicar una buena parte del Al parecer nuestra solución ha sido suficientemente flexible
tiempo de análisis y diseño a la flexibilidad de nuestra solución, para adaptarse a los cambios, hasta que el cliente nos solicita
con el único objetivo de disminuir el riesgo y el costo que éste un nuevo músico: “hagamos una mezcla cultural, quiero escu-
implica, para tener un cliente satisfecho con menos dinero. char un Mariachi con batería”. Inmediatamente pasa por nuestra
mente agregar una nueva clase: Baterista (véase figura 3).
El Mariachi orientado a objetos es un divertido ejemplo de cómo
lidiar con los cambios de requerimientos al diseñar clases flexi-
bles, utilizando el patrón de estrategias para diseño orientado
a objetos.

Cantemos con Mariachi


Supongamos que tenemos un cliente extranjero cuya pasión
musical es desmesurada, y nos ha pedido desarrollar una apli-
cación que simule la forma de hacer música de un Mariachi, sólo
desea integrar un guitarrista, un violinista y un trompetista a la
simulación, dado que todos tocan música de diferentes formas y Figura 3. Mariachi con Baterista.
tienen un canto característico, la mayoría comenzaríamos plan-
teando un diagrama de clases similar al mostrado en la figura 1. El problema es claro: “Bateristas Bailarines”. Esto lo podemos
resolver de una forma muy sencilla, sobrescribiendo el método
bailar en Baterista de tal forma que no baile:

public void bailar() {


// hacer nada …
}

Evidentemente, después de este cambio, estamos violando el


principio de sustitución de Liskov, el cual indica que “debe ser
Figura 1. Primer acercamiento a la solución. posible utilizar cualquier objeto instancia de una subclase, en el
lugar de cualquier objeto instancia de su superclase sin que la
Nuestro cliente quedó satisfecho con la solución, mas sin embargo, semántica del programa escrito en los términos de la superclase
al ver que los integrantes del Mariachi pueden bailar, no esperó mu- se vea afectado”. En nuestro caso, esto significaría que no será
cho para solicitar un cambio de requerimientos: “Ahora quiero Ma- posible reemplazar semánticamente a cualquier Músico por un
riachis bailarines”. Nuestro equipo de diseño reacciona rápidamente Baterista, pues el último limita la funcionalidad del primero.
y agrega el método bailar a la clase Músico. (Véase figura 2). Días mas tarde y aún sin resolver el problema del Baterista, recibimos

40 JUL-AGO 2007 www.sg.com.mx


una nueva petición de nuestro cliente: “¿Cómo podemos agregar un cantante de Ópera a nues-
tra simulación?”. La figura 4 indica otro “parche” más para satisfacer este requerimiento.

Figura 4. Mariachi con cantante de opera

La solución parece suficiente. No obstante, nos damos cuenta que estamos en un gran
aprieto: Cantantes de Ópera que cantan como Mariachi… ¡Ah, y bailan!

Hasta ahora no hemos tenido éxito entre clases rígidas y malos diseños, lo que defini-
tivamente nos convierte en presa fácil de un exceso de presupuesto. Es entonces que
uno de los diseñadores sugiere: “intentémoslo con interfaces”.

La figura 5 muestra una solución utilizando interfaces.

Figura 5. Mariachi usando interfaces

www.sg.com.mx JUL-AGO 2007


// PRÁCTICAS /* DISEÑO */

Esta solución parece correcta. Incluso hasta el trompetista ha deja- de estrategias para cada método con alto potencial de cambio. Para
do de cantar, para dedicarse únicamente a tocar música y bailar. cada una de estas estrategias se construye una interfaz o clase
abstracta que define qué es lo que hacen cada uno de los conjun-
Sin embargo, este diseño tiene un problema muy grave: “reutili- tos de algoritmos, y aplicando el patrón de estrategias obtenemos
zación de código”. Cuando volteamos y vemos que los métodos el resultado en la figura 7.
bailar, tocar música y cantar tienen que ser implementados por
las clases concretas, estamos en aprietos.

Patrón de estrategia
Es en estos momentos, donde el patrón de diseño denominado
“Estrategia” llega a nuestro rescate. Este es uno de los patrones
descritos en el libro “Gang of Four”, que como sabemos, es la
biblia de los patrones de diseño orientado a objetos. De acuerdo
con esto, el patrón estrategia: “Define una familia de algoritmos
encapsulados y los hace intercambiables (…) permite al algorit-
mo cambiar, independientemente del cliente que lo utiliza”

En concreto, el patrón de estrategia nos permite construir una co-


lección de comportamientos intercambiables, independientemente
de quién haga cantar al Mariachi. La figura 6 muestra la estructura
de una solución genérica utilizando el patrón de estrategia.

Figura 7. Mariachi utilizando el patrón de estrategia

Conclusión
Después de darle muchas vueltas a este problema,
llegamos a una solución que cumple los requerimientos, y
además explota las ventajas de la orientación a objetos.

Figura 6. Solución propuesta por el patrón de estrategia Esta solución es mejor, pues si se desea agregar un nuevo
músico, sólo es necesario heredar de músico y en el con-
Lo que tenemos que hacer entonces es encontrar cuáles son los po- structor, enviar como parámetro sus comportamientos. De
tenciales de cambio, es decir, cuáles clases y/o comportamientos esta forma, nuestro diseño queda abierto para extensión,
tienen una gran probabilidad de ser modificadas y aislar los cambios pero cerrado para modificación y lo mejor de todo, si en un
de las demás clases, y al mismo tiempo, explotar el polimorfismo momento dado, se requiere cambiar el comportamiento de
agregando una clase abstracta o una interfaz para cubrir las diferen- hacer Música, sólo creamos un nuevo comportamiento: Can-
tes estrategias. tar Como Gloria Trevi, y lo asignamos al músico en cuestión,
e incluso lo podemos hacer en tiempo de ejecución, y listo,
Siguiendo este consejo, se detecta que el comportamiento de los mú- ahora tenemos un Mariachi que canta de pelo suelto.
sicos es el que tiende a cambiar, entonces se decide crear un conjunto

Carlos “Fofo” Ordóñez es Ingeniero en Sistemas Computacionales por el ITESO. Actualmente labora como arquitecto de software en Vision Consulting
Occidente, ubicada en el Centro de Software de Guadalajara. Colabora como profesor de asignatura en el ITESO, donde imparte materias de Progra-
mación e Ingeniería de Software. La información en este artículo representa el punto de vista del autor y no necesariamente el de Vision Consulting o
ITESO. fofo@iteso.mx

42 JUL-AGO 2007 www.sg.com.mx


/*TENDENCIAS EN SW*/ // COLUMNA

Web 2.x y Web 3.x


Un nuevo camino por recorrer

Luis Daniel Soto es director de Divulgación Tecnológica para América Latina en Microsoft. Entre sus funciones actuales están la de admi-
nistración de la relación con el Gobierno Mexicano para el desarrollo de la industria de software (ProSoft). Es jurado del “Gran Orden del
Honor al Mérito Autoral” en software del INDAUTOR/SEP y fundador de diversas asociaciones de TI. Ganó el primer lugar en el concurso
nacional para software de exportación en 1989. blogs.msdn.com/luisdans

En un inicio, el Web 2.0 era sinónimo del “Web semántico”, con El debate de Web 3.x
contenido altamente definido. Sin embargo, esto ha ido cam- Hay quienes ya se atreven a hablar sobre un Web 3.x. Las espe-
biando, y actualmente la etiqueta de “Web 2.0” puede referirse a culaciones de lo que el futuro depara son ya abundantes, pero
una o más de las siguientes características: hay elementos que parecen ser ineludibles. Entre ellos, destaco
• El web de lectura-escritura. los siguientes:
• Sitios que facilitan la colaboración o creación colectiva. • La transformación del “web en una base de datos” o la “web
• Sitios con una interfaz de usuario visualmente rica, y altamen- del sentido común”. Hoy, las búsquedas en un altísimo por-
te interactiva, a través de tecnologías como Silverlight y Flex, o centaje no conducen al usuario a responder preguntas. Aquí
incluso el web tridimensional (www.web3d.org). algunas normas del “Web semántico” y otras como SPARQL
• El web como plataforma para crear aplicaciones. Con esto me re- (www.w3.org/TR/rdf-sparql-query/) seguramente serán rele-
fiero a servicios web que permiten crear composición de páginas vantes, en conjunto con inteligencia artificial que permita com-
y “mashup”. Algunos de los ejemplos para esto son Yahoo Pipes prender intenciones y agentes en Internet.
(pipes.yahoo.com) , Dapper (dapper.net), Teqlo (www.teqlo.com), • La convergencia de información personal: perfiles de usuario,
y Microsoft Popfly (www.popfly.com), el cual se muestra en la si- historias de navegación realizada, análisis de calendarios y con-
guiente figura. tenido de correo electrónico. Todo esto es explotable para dirigir
y personalizar la publicidad y mercadotecnia en línea.
• La mayor velocidad de acceso a Internet. ¿Qué se podrá hacer
con anchos de banda 10 a 100 veces más veloces que las mejores
conexiones de hoy? Todavía no lo sabemos, pero definitivamente
será mucho más que la composición de videos en tiempo real.
Incluso hay quienes se han atrevido a pronosticar el fin de las
laptops, dado que el 100% de la información personal podrá re-
sidir en Internet.
• La democratización y proliferación del acceso. El porcentaje de la
población mundial que actualmente tiene acceso al Internet es de
tan solo el 17.2% (www.internetworldstats.com/stats.htm). Esto
nos indica que la mayor oportunidad definitivamente está por venir,
así como la definición de mecanismos para alcanzar a más gente.
• Hablando de lo que sucedería hacia el interior de las organiza-
ciones, algo que se espera es el “remix” real entre aplicaciones
y datos de misión crítica. Otro escenario es el de la habilitación
total del auto-servicio, así como el ensamble dinámico y en tiem-
po real de cadenas de suministro.

El Web 3.0 no será solo una plataforma, posiblemente el sistema


operativo mismo del futuro. El camino por recorrer nuevamente
Figura 1. Usando Popfly para crear un mashup. es extenso…

Las palabras clave, tecnologías y “buzz words” asociados proli- —Luis Daniel Soto
feran, incluyendo RSS, Wiki, SaaS, Ajax, Folksonomies y muchas
otras. El proceso por definir “niveles” dentro de Web 2.0 conti- Referencias adicionales:
nua, y ante ello yo me atrevería a llamar estos diferentes niveles • dsiegel.blogs.com/thoughts/2007/05/defining_web_30.html
como “Web 2.x”. • en.wikipedia.org/wiki/Web_3.0

www.sg.com.mx JUL-AGO 2007 43


// UML

Procesos Basados en UML


MANTENLO SIMPLE
Por Sergio Orozco

¡Estoy harto de los procesos y estándares de desarrollo! Ese suele Proceso A. El Más Simple: Requerimientos, el Principio de Todo
ser el grito desesperado de muchos responsables de organizacio- Si actualmente tu proceso consiste en entrevistar a tus usuarios
nes de software que han intentado formalizar sus procesos con re- y con base en dicha información comienzas a programar de inme-
sultados poco eficientes. diato, entonces mi recomendación es que por lo menos agregues
Y no es para menos, pues muchas veces la experiencia de los “gu- casos de uso a tu proceso (diagramas y especificaciones de ca-
rús” que los asesoran en la mejora de sus procesos se reduce a lo sos de uso).
que aprendieron en libros o cursos y no a la realidad de los pro- Básate en estos para planear, para repartir el trabajo, para cotizar,
yectos. No es un secreto que no necesariamente lo que dicen los para desarrollar, así como para diseñar tus pruebas. Verás que este
libros es lo que aplica para todas las organizaciones. simple cambio será un cambio drástico y sumamente beneficioso
El caso de UML entra en esta categoría de estándares incomprendi- en los resultados de tus proyectos.
dos. Y es que intentar usar todo UML, simplemente porque apren-
diste cuáles son los diagramas que lo conforman, no es precisa-
mente el camino que te llevará a obtener los mejores resultados.
Recuerda que UML no es el proceso, sino que es una notación que
puedes utilizar parcial o totalmente en tu proceso.

Selección de Artefactos
La experiencia nos ha demostrado que muchas veces es necesario
seleccionar un mínimo indispensable de artefactos a desarrollar
durante un proyecto. Los clientes quieren calidad, pero también Figura 1. Proceso simplificado al máximo.
necesitan eficiencia. Los recursos son limitados, y sabemos que un
proceso mal utilizado puede traer resultados contraproducentes en Proceso B. El Sencillo: Requerimientos y Diseño.
este sentido. Si estás un poco menos limitado de tiempo (y de motivación) como
El mal uso de UML puede ser una causa para esta frustración por para formalizar un poco más las tareas de tu proyecto entonces
parte de los desarrolladores y un motivo de decepción en el uso aprovecha los beneficios de otro artefacto básico de UML: el
de procesos formales. Así que muchas veces conviene aplicar la diagrama de clases.
filosofía de KISS (“Keep it Simple, Stupid” o “Keep it Short and
Simple”).
Si vas a usar un diagrama de UML asegúrate de obtener un beneficio
en tu proyecto, o mejor no lo uses. Y si tienes una limitante importante
de tiempos y recursos, es mejor que elijas el mínimo indispensable
para poder obtener beneficios de un estándar, pero sin agregarle cos- Figura 2. Proceso sencillo
tos que no puedes absorber por las restricciones del proyecto.
A continuación intentaremos esquematizar diferentes variantes de Si puedes utilizarlo con un enfoque de análisis primero (modelo de
procesos, en cuanto a la selección de artefactos de UML que utili- dominio) y después refinarlo para convertirlo en tu modelo de dise-
zan, desde uno muy simple hasta otro medianamente elaborado. ño, sería ideal. De esta forma obtendrás beneficios al tratar de com-
Imagina que tu forma de desarrollar consiste en entrevistarte con prender los requerimientos y el dominio, así como en las decisiones
el usuario y después programar; actividades elementales que no respecto a cómo construir una aplicación orientada a objetos.
podrían desaparecer. La pregunta que trataré de responder es: Pero, si consideras que no tienes tiempo de usarlo con los dos enfo-
¿qué agrego (de UML) en medio de esas dos actividades? ques mencionados entonces por lo menos úsalo para realizar el di-

Sergio Orozco es director general e instructor senior certificado por la OMG en Milestone Consulting (UML Value Added Training Center), empresa
especializada en capacitación práctica y consultoría en UML, CMMI y orientación a objetos. Milestone Consulting es la primer empresa mexicana miem-
bro de la OMG. info@milestone.com.mx www.milestone.com.mx

44 JUL-AGO 2007 www.sg.com.mx


“El mal uso de UML puede ser una causa
de frustración por parte de los
desarrolladores y un motivo de decepción
en el uso de procesos formales ”.

seño de tu aplicación. Considera que no necesariamente tienes que 1. Sistemas de Control


desarrollar el diagrama de clases completo antes de comenzar con la Para cierto tipo de sistemas es bastante recomendable agregar el
programación, seguramente identificarás nuevas clases al comenzar diagrama de estados. Por ejemplo en aquellos sistemas en los que
con dicha actividad que podrás reflejar posteriormente en tu modelo. tienes que controlar y monitorear el estado por el que va un cierto
documento o producto dentro del proceso de negocio que estás
Proceso C. El Intermedio: Requerimientos, Análisis y Diseño automatizando o para aquellos sistemas de control que automati-
El proceso anterior inicia el camino a la formalización en requerimien- zan dispositivos electrónicos, como un refrigerador, un elevador o
tos, análisis y diseño. Eso ya es ganancia para la mayoría de los equi- un despachador automático de refrescos.
pos de desarrollo, en los que el valor lo concentran exclusivamente en
la programación y no en el resto de las actividades del proyecto. 2. Sistemas Distribuidos
La siguiente recomendación para mejorar tu proceso consiste en refi- Si tu sistema va a construirse de manera distribuida, es decir, par-
nar tus actividades de análisis y diseño. Para lograrlo te recomiendo el te de la funcionalidad va a correr en una máquina y parte en otra.
diagrama de secuencia (en su lugar puedes usar el de comunicación). O si estás pensando construir partes reutilizables, entonces te re-
Una vez identificado tu modelo de dominio, aprovéchalo y basán- comiendo que utilices el diagrama de componentes y el diagrama
dote en los flujos de tus casos de uso modela las interacciones de despliegue estos permitirán especificar dónde repartirás cada
entre las clases. Modelar las interacciones te permitirá tomar me- “parte” del sistema. Estos diagramas corresponden a la discipli-
jores decisiones de diseño. El beneficio será el desarrollo de una na de diseño.
mejor aplicación.
Una advertencia: no intentes desarrollar los diagramas de secuen- 3. Negocios Complejos
cia para todos y cada uno de tus casos de uso. Si tu proyecto va a desarrollarse para automatizar un proceso
En general considero que sólo es indispensable para aquellos ca- complejo de tu usuario, entonces te recomiendo que aproveches
sos de uso más críticos y complejos. Usa la regla del 20-80 y utilí- los diagramas de actividades. En un caso muy sofisticado puedes
zalo para modelar el 20% de tus casos de uso; los más complejos usar los diagramas de procesos de negocios del estándar BPMN,
e importantes. Si modelas las interacciones de todos tus casos de pero asegúrate de aprender bien ese nuevo estándar antes de de-
uso tendrás que invertirle tiempo valioso que podrías estar aprove- cidir utilizarlo.
chando en otro tipo de actividades del proyecto.
Buscando lo Simple en la Complejidad
UML ha ido evolucionando en algo que no necesariamente cumple,
a decir de algunos, con uno de los objetivos originales de dicho
estándar: el de mantener la simplicidad. Por lo tanto, es importante
comprender que no necesariamente aplican todos los artefactos y
Figura 3. Proceso intermedio elementos para tus proyectos para lograr la simplicidad en tu tra-
bajo al utilizar esta notación.
Casos Especiales: ¿Cómo es tu Sistema? Este artículo no pretende de ninguna manera ser “La guía defini-
Los 3 ejemplos anteriores de procesos pueden ser suficientes para tiva”, pero estoy seguro que a algunas personas les facilitará el
muchos de los proyectos que suelen desarrollarse. Pero, adicional trabajo a la hora de decidir respecto a la formalización de sus pro-
a estos puedes agregar otro tipo de artefactos, dependiendo de las cesos de software, con respecto a la elección de los artefactos de
características del proyecto. dicho estándar. De hecho hay otros artefactos de UML que no es-
Hazte preguntas como las siguientes: ¿Tu proyecto va a requerir tán considerados aquí, por corresponder a los menos utilizados.
control de documentos o productos? ¿Es un sistema distribuído?
¿Estás automatizando un proceso de negocio complejo? Vale la pena notar que en este artículo ni siquiera estoy recomendan-
Dependiendo de estas condiciones es recomendable utilizar arte- do un ciclo de vida; ya sea de cascada, iterativo, o cualquier otro. En
factos adicionales de UML que te darán una perspectiva diferente, general, podrías utilizar cualquiera de los subconjuntos de artefactos
pero necesaria, para comprender mejor y tomar decisiones apro- mencionados independientemente del ciclo de vida que utilices.
piadas para la construcción de tu proyecto. Espero que saques algún provecho de este artículo y recuerda que
A continuación se mencionan posibles artefactos de UML que po- “mucho no necesariamente significa mejor”. Hasta la próxima y
dría convenir agregar en condiciones especiales. suerte con tus modelos.

www.sg.com.mx JUL-AGO 2007 45


// COLUMNA /*TIERRA LIBRE*/

Lean Software Development


Libera tus proyectos
por Emilio Osorio

Emilio Osorio colabora actualmente como Consultor Asociado para Sun Microsystems México. Ha trabajado en desarrollos basados en Java desde
1996 y actualmente se dedica a ayudar a equipos de desarrollo a aprovechar las ventajas del Software Libre y los métodos ágiles en sus organizaciones.
Ferviente entusiasta de la aplicación social de la tecnología, a ultimas fechas esta involucrado con Organizaciones de la Sociedad Civil. Emilio estará
encantado de recibir sus comentarios y quejas en http://tecnonirvana.org/ y en oemilio@tecnonirvana.org

En los seminarios sobre métodos ágiles que LSD se basa en los siguientes 7 principios: res. Pero si liberan rápido y tienen iteraciones
realizo, típicamente pregunto lo siguiente a la 1. Eliminar el despilfarro. Es decir, evitar todo cortas, entonces sus errores no nos costarán
audiencia: “Levante la mano por favor, aque- lo que no agregue valor al proyecto. ¿Qué es caro, y sobre todo se ampliará el aprendizaje.
lla persona a la cual un diagrama de Gantt le aquello que no agrega valor al proyecto? Sen- Si no pueden resolverlos por ellos mismos, en-
haya sido la diferencia para sacar adelante cillo, todo lo que el cliente no pidió, pero en lo tonces debemos evaluar si tenemos el equipo
un proyecto, o que para darle mantenimien- que invertimos tiempo. En esta categoría entra correcto. El trabajo en equipo ES el desarrollo
to al software de alguien más haya utilizado funcionalidad adicional a la que pidió el usua- de software.
documentación separada al mismo código, rio, o especificación de requerimientos dema- 6. Construir integridad intrínseca: En Japón,
o tal vez aquel líder de proyecto que le haya siado detallada en etapas tempranas del ciclo las mismas máquinas que producen las piezas
funcionado asignar y controlar el avance de de vida. Aprendamos a ver éstas cosas como para manufactura, prueban las piezas que pro-
microtareas por cada miembro del equipo, un despilfarro. ducen, las miden y desechan las que no cum-
para que así se comprometan más con una 2. Ampliar el aprendizaje. Debemos aceptar plen con los requisitos mínimos. No hay una
fecha de entrega. que nunca se sabrá exactamente lo que se inspección o control de calidad separada de la
tiene que construir al principio del proyecto. producción. Nuestros equipos nunca podrán
Sorprendentemente (o no tanto), hasta la fe- Así que cualquier tiempo que ocupemos tra- alcanzar madurez, en un esquema donde el
cha nadie ha levantado la mano. Si todas es- tando de hacer que el cliente nos “firme” el responsable de la calidad sea otro grupo se-
tas prácticas que son la quinta esencia de la requerimiento, rompe con el principio anterior. parado del de desarrollo.
administración de proyectos, y para las cuáles Ampliar el aprendizaje significa aceptar que el 7. Pensar en el todo. “O todos coludos, o todos
invertimos miles de pesos en herramientas y desarrollo es un proceso de aprendizaje, por rabones” decían nuestros abuelos. Al parecer,
cursos no funcionan, entonces ¿por qué lo se- lo tanto tenemos que repetirlo muchas veces antes se entendía mucho cómo hacer que una
guimos haciendo? para aprender. Solución: Muchas iteraciones organización o una familia funcionara como un
cortas, tan cortas como haga sentido. equipo. Abandonemos el modelo de programa-
Al parecer, pensamos que cuando algo no sale 3. Retrasar los compromisos. Cada vez que dor estrella, lo único que producimos son divas
bien lo que necesitamos es una capa más de aceptamos trabajar en un proyecto que tiene y gangsters. En un equipo todos ganan y todos
“control”, un proceso más definido y detallado fecha de entrega pero no tiene requerimientos pierden, así que olvidémonos de las mediciones
que “obligue” a los programadores rebeldes, fijos es como si decidiéramos casarnos con de desempeño individuales. Lo único que esto
negligentes o apáticos, a tener “conformidad” alguien que conocimos hoy mismo. Si no lo provoca es que los que salgan bien se busquen
con el proceso mágico que resolverá todos hacemos en la vida real, entonces ¿por qué un trabajo donde les paguen más, y los que no
nuestros problemas. Anhelamos recetas se- hacerlo en nuestro trabajo? Las iteraciones salgan tan bien, harán lo mismo. Creemos equi-
cretas, pero en realidad lo que necesitamos cortas ayudan a comprometernos con tan solo pos que compartan logros y fracasos y reducire-
es tan solo un conjunto sólido de principios y lo que podemos estimar bien. mos la rotación de personal.
sentido común. 4. Liberar rápido. Todos hacemos desarrollo
por iteraciones, ¿verdad? Bueno, tener itera- ¿Por que hablo con tanta seguridad? Sencillo,
¿Como liberar a nuestros proyectos de balas de ciones no es lo mismo que liberar rápido. Libe- yo mismo he pasado de creer en cosas que
plata que no funcionan? Afortunados somos rar rápido significa que si te piden un sistema no funcionan y sufrir en mi trabajo, a experi-
de tener Lean Software Development (LSD) a que facture, liberes “a producción” la funcio- mentar los frutos de LSD en mi propia prácti-
nuestro alcance; es libre, gratis y simplemente nalidad para facturar lo antes posible, aunque ca. Finalmente, les recomiendo que busquen
funciona. LSD fue desarrollado por Mary y Tom no se haya terminado el resto del sistema. Em- en Internet a Mary Poppiendick y agradecerán
Poppendieck a partir de experiencias en 3M y presas como Google o Yahoo entienden esto y como yo, todo el material gratuito que tiene a
Toyota, y se basa en aplicar al desarrollo de lo aplican en sus desarrollos. Libera funcionali- nuestra disposición para ayudarnos a empe-
software los principios de “lean” que han he- dades, no sistemas. zar. Regalar sus libros a nuestros directores
cho tan exitosas a estas empresas. Se le con- 5. Facultar al equipo. ¿Qué es lo mejor que de sistemas probablemente serán los pesos
sidera parte de los métodos ágiles, pero desde puede hacer un líder de proyecto? No estorbar. mejor invertidos en mucho tiempo en nues-
mi punto de vista está por encima de ellos, ya Tenemos que confiar en que las personas pue- tras carreras.
que LSD nos obliga a pensar, cuestionarnos y den ponerse de acuerdo, trabajar en equipo y
encontrar nuestras propias respuestas. en esencia autodirigirse. Si, cometerán erro- —Emilio Osorio

46 JUL-AGO 2007 www.sg.com.mx


www.sg.com.mx JUL-AGO 2007
// FUNDAMENTOS

Los Estándares de TI
¿Qué ofrecen a la Industria Mexicana de Software?
Por Juan Manuel Hernández Jiménez

Antecedentes mínimos que determinado producto o ser- la generación de la NMX-I-059, se tomaron


A principios de 1994, al entrar en vigor el TLC vicio deben de cubrir para que se diga que como base los modelos MoProSoft y EvalPro-
con Estados Unidos y Canadá, México se in- se esta cumpliendo con lo estipulado por la Soft, se estructuraon en formato de norma, y
corporó de manera definitiva al proceso de misma industria. se concensuaron con los interesados.
globalización de las economías que rigen al 4. El organismo envía el proyecto del están-
mundo actual, las exigencias en materia de Al día de hoy, existen 38 estándares ó normas dar a publicar en el DOF mediante un “Aviso
calidad y productividad se volvieron más im- mexicanas vigentes en el ámbito de las TI, los de consulta pública” por un período de 60
portantes y apremiantes. cuales definen las mejores prácticas acepta- días naturales.
das para la mayoría de las áreas directamen- 5. Si dentro de éste período hay algún co-
Siendo la normalización un reflejo del avan- te relacionadas con la terminología, produc- mentario, se le envía formalmente al organis-
ce industrial de un país, es imposible basarla ción, calidad y seguridad del software. mo, quien lo somete a la consideración del
en los principios rígidos establecidos super- Comité Técnico para su aprobación.
ficialmente que le resten la flexibilidad ne- Proceso de generación de 6. Si no hay comentarios, una vez transcurri-
cesaria para adaptarse a las condiciones de una norma dos los 60 días naturales, el organismo envía
una determinada época, al avance tecnológi- Una norma es un documento establecido 2 juegos impresos de la norma a la Dirección
co o a la idiosincrasia de un país, así como a por consenso y aprobado por un organismo General de Normas (DGN), dependiente de la
su propio desarrollo. La experiencia ha per- reconocido, que suministra, para uso común Secretaría de Economía.
mitido establecer una serie de principios ge- y repetido, reglas, directrices o caracterís- 7. La DGN publica entonces la “Declaratoria
nerales que aplicados con el rigor necesario ticas para las actividades o sus resultados, de Vigencia” y 60 días naturales posteriores,
no significan un obstáculo, sino una forma encaminados al logro del grado óptimo de entra en vigencia, naciendo formalmente una
para garantizar el éxito de la aplicación en el orden en un contexto dado. Para generar una nueva norma mexicana.
contexto que se esté normalizando. norma, se lleva a cabo un proceso basado
en la Ley Federal sobre Metrología y Norma- ¿Cómo se eligen los temas de
En este artículo plantearemos la importancia lización, que resumiremos en 7 pasos, pero Normalización?
de contar con estándares, y describiremos los no por esto se le debe restar importancia y El organismo normalizador invita a los dife-
pasos necesarios para generar una norma. cierto grado de dificultad en los temas de es- rentes sectores (industria, gobierno, etc.)
pecialización que ahí se tratan: a proponer temas de normalización, y las
Importancia de los estándares 1. El organismo normalizador forma el Comité propuestas recibidas son incluidas en el Pro-
La normalización o creación de estándares, Técnico especializado en la materia. grama Nacional de Normalización, el cual se
por ejemplo para las Tecnologías de la Infor- 2. Se generan las invitaciones a los posibles somete a la consideración de la Comisión Na-
mación, es una disciplina que trata sobre el participantes indicándoles los temas a tra- cional de Normalización, a fin de obtener su
establecimiento, aplicación y adecuación de tar. Es importante mencionar que se busca aprobación. Una vez aprobado, se publica en
reglas destinadas a conseguir y mantener un la participación de representantes de dife- el Diario Oficial de la Federación (DOF) y se
orden dentro del campo de la producción de rentes entidades como: industria (empresas procede a programar las reuniones de traba-
software. El resultado de la normalización privadas), universidades (v.gr. UNAM, IPN), jo del Comité Técnico de Normalización.
surge de un balance técnico y socioeconó- gobierno (v.gr. DGN, SE, SHCP), cámaras de
mico propio de una etapa, por lo cual no la industria (v.gr. CANIETI), y asociaciones
se considera estático. Es una disciplina con (v.gr. AMITI). Conclusión
base técnica y científica que permite formu- 3. Una vez programadas las reuniones con los Las normas se deben basar en los re-
lar normas cuyo ámbito no se limita única- diferentes representantes, incluyendo a toda sultados consolidados de la ciencia,
mente al establecimiento de reglas, sino que aquella persona que se considere necesaria la tecnología y la experiencia, y sus
comprende también su aplicación. en la elaboración del estándar, se procede a objetivos deben ser los beneficios
realizar las reuniones de trabajo necesarias, óptimos de la comunidad. Es funda-
De tal suerte que al generarse un nuevo hasta que el estándar esté concensuado mental para la industria de TI, gene-
estándar (norma mexicana- NMX) se dice entre los sectores involucrados y quede for- rar estándares y seguir normas, que
que se está “haciendo industria” porque en malizado poniendo al margen la rubrica de le permitan “hacer industria”.
ese momento se generan los lineamientos todos los participantes. Por ejemplo, para

Ing. Juan Manuel Hernández Jiménez actualmente es el Gerente de la División de Verificación de Software de NYCE. Sus responsabilidades incluyen obte-
ner y mantener la acreditación de NYCE como organismo de verificación de procesos y de certificación de producto de software con base en los estándares
vigentes actuales, administrar las unidades de verificación y certificación, así como participar activamente en los comités técnicos de normalización en los
procesos de desarrollo de nuevos estándares mexicanos de TI.

48 JUL-AGO 2007 www.sg.com.mx


www.sg.com.mx JUL-AGO 2007
// INFRAESTRUCTURA

Administración de la Capacidad
Planeando la Infraestructura
Por Ariel García

Hoy en día, todas las áreas responsables de la administración de querimientos de servicio por parte del negocio.
TI tienen el reto de incrementar su productividad y eficiencia, a la • Administración de la capacidad de servicio (ACS): su enfoque
par de reducir sus costos de operación e inversión. El proceso de es táctico, y se ocupa de la administración de la operación real de
Administración de la Capacidad es uno de varios procesos de ITIL, los servicios de TI acorde a los niveles de servicios acordados con
que define estándares para lograr la eficiencia y optimización de los usuarios.
costos en la entrega de servicios de TI. • Administración de la capacidad de los recursos (ACR): su enfoque
es operacional y consiste en la administración de los componentes
Un poco de teoría individuales de la infraestructura de TI.
Por definición, el proceso de la administración de la capacidad
tiene como objetivo asegurar el óptimo uso de los recursos de TI, Las salidas del proceso de administración de la capacidad son: un
de tal forma que se cumplan los niveles de rendimiento acordados plan de capacidad, líneas base, perfiles, reportes de capacidad, um-
con los usuarios a un costo justificado. Además, debe proporcio- brales y alarmas tanto para servicios como componentes. También
nar información de los recursos actuales y planeados, así como la se realizan recomendaciones en acuerdos de servicios, cambios pro-
utilización de los componentes. La administración de la capacidad activos, mejoras a servicios y componentes, y reportes de auditoria,
permite a la organización decidir acerca de cuáles componentes entre otros. El plan de capacidad es posiblemente el más importante
debe actualizar, cuándo hacerlo y el costo involucrado. de estos productos de salida. Dentro de su contenido destaca el re-
sumen de los servicios, capacidades y costos de la infraestructura.
Dentro del proceso de la administración de la capacidad podemos El plan debe indicar claramente cualquier suposición efectuada, así
encontrar las siguientes actividades: como cualquier recomendación cuantificada en términos de recur-
• Administración de la demanda: se enfoca en el control y la influen- sos requeridos, costos, beneficios e impacto.
cia de la demanda de servicios de TI.
• Dimensionamiento de la solución: generalmente se inicia con un Aterrizándolo un poco
nuevo requerimiento de negocio, o un cambio considerable en la in- Ya echamos un vistazo teórico a la estructura del proceso de adminis-
fraestructura actual. Dura hasta que el nuevo requerimiento o cam- tración de capacidad. Ahora vamos a aterrizarlo en ejemplo sencillo de
bio entra en operación. infraestructura de servidores. Como sabemos, es muy común para el
• Planeación de la capacidad: documenta los niveles reales de uti- área de TI administrar el desempeño de sus servicios de forma reaccio-
lización de los componentes de la infraestructura y el desempeño naria, analizando y resolviendo los problemas conforme los usuarios
de los servicios de TI. los reportan. A través de la ejecución del proceso de administración de
• Almacenamiento de la base de datos de capacidad: documenta la la capacidad, lo que nosotros buscamos es llegar al escenario donde
información de capacidad del negocio. los administradores del sistema sean capaces de evitar cuellos de
• Modelado: se realiza el modelado de la infraestructura de TI para botella en el desempeño de los servicios y, utilizando las herramientas
predecir su comportamiento bajo cambios en su volumen de trabajo. adecuadas, predecir cómo los servidores deberán configurarse para
• Actividades iterativas: análisis, ajuste, implementación y moni- soportar cargas adicionales de trabajo en el futuro.
toreo. El monitoreo se debe establecer en todos los componentes Los pasos que llevaremos a cabo para esto son los siguientes:
y para cada uno de los servicios. Los datos deben ser analizados
de tal forma que puedan compararse contra umbrales preestab- 1. Determinar los niveles de servicio
lecidos. El resultado de los análisis generará reportes y ajustes a El primer paso en el proceso es categorizar el trabajo de los siste-
ser implementados. Estos cambios después serán monitoreados. mas y cuantificar las expectativas de los usuarios en cómo se debe
realizar este trabajo. Para poder realizarlo es necesario entender el
Para ejecutar tales actividades, el proceso de la administración de la concepto de cargas de trabajo. Con este concepto se busca visualizar
capacidad se subdivide en tres subprocesos: el desempeño de un sistema en términos de negocio, en lugar de
términos técnicos. Antes de definir los niveles de servicio, es necesa-
• Administración de la capacidad del negocio (ACN): tiene un en- rio determinar las métricas para medir el trabajo a soportar. Una vez
foque estratégico y consiste en asegurar la consideración, plane- definidas, se establecen los requerimientos de niveles de servicio,
ación e implementación en un tiempo razonable de los futuros re- en otras palabras: el desempeño prometido por el área de TI.

50 JUL-AGO 2007 www.sg.com.mx


Cargas de trabajo. Desde la perspectiva de la administración de la si el sistema es adecuado para soportar la capacidad requerida. Se
capacidad, un sistema de cómputo procesa cargas de trabajo y en- establecen líneas base, umbrales y alarmas.
trega un servicio a los usuarios. Como primeros pasos del proceso • Ejecutar mediciones en los recursos del sistema (procesadores,
de planeación de la capacidad, se deben identificar estas cargas de memoria, discos, red, etcétera). El análisis de estas mediciones per-
trabajo y en base a ello, definir un servicio satisfactorio desde la per- mitirá detectar recursos sobrecargados que podrían provocar prob-
spectiva del usuario. lemas en el presente o futuro.
• Identificar los recursos demandados para cada una de las cargas
Unidades de trabajo. A fin de medir las cargas de trabajo, es necesa- de trabajo existentes. Esto permite detectar y enfocar la atención
rio establecer unidades de trabajo. Ésta es una métrica de la cantidad en las cargas de trabajo que realizan la mayor demanda de recur-
de trabajo realizado, contrario a la cantidad de recursos necesarios sos del sistema.
para completar el trabajo. En este ejemplo en específico, los recur- • Una vez identificadas las cargas de trabajo, se debe realizar un
sos necesarios son procesadores, almacenamiento en disco, memo- análisis de los tiempos de respuesta de cada uno de sus componen-
ria, ancho de banda de red, etcétera. La medición de los recursos an- tes, a fin de determinar cuáles son los recursos con mayor impacto
tes mencionados es importante, pero no sirven para cuantificar las en el tiempo de respuesta.
cargas de trabajo o para definir las unidades de trabajo. Por ejemplo:
para una carga de trabajo en línea, una unidad de trabajo puede ser 3. Planeación para el futuro
una transacción. Para una carga de trabajo interactiva o por batch, la Una pregunta muy común es: ¿cómo asegurar que el próximo año
unidad de trabajo puede llegar a ser un proceso. los sistemas no se encuentren sobrecargados y el presupuesto del
área por los cielos? La mejor forma de mitigar tal riesgo, es con
Establecimiento de niveles de servicio. Una vez definidas las uni- un plan de capacidad basado en pronósticos de procesamiento re-
dades de trabajo, procedemos a establecer un acuerdo de nivel querido. Lo que debemos hacer es obtener un pronóstico de los
de servicio. Dicho acuerdo se da entre el área de TI y el área usu- requerimientos del negocio para con los sistemas de TI en el fu-
aria para definir el nivel aceptable del servicio. El nivel aceptable turo. Esta información se debe registrar en forma de incrementos
se define típicamente desde la perspectiva del usuario, en tér- de cargas de trabajo, que a su vez se traducirá en una demanda de
minos de tiempo o unidades de trabajo. Idealmente, los niveles mayores recursos del sistema. En base a modelados o prototipos
de servicio deberán ser determinados por los requerimientos del de estas nuevas cargas, se definirá la configuración de la infrae-
negocio. En la vida real, comúnmente se definen por experiencias structura necesaria para soportarlas.
del pasado, por ejemplo: “que el tiempo de respuesta del servicio
sea como mínimo al tiempo registrado actualmente, aun cuando
se llegue a incrementar la carga de trabajo”. En la medida que se Conclusión
pueda predecir o conocer la carga de trabajo, se podrá mantener A través de la ejecución de los pasos anteriores, es posible reali-
el nivel de servicio requerido. Para poder definir los niveles de zar un plan de capacidad para soportar los niveles de servicios
servicio, es necesario conocer la capacidad de respuesta de la requeridos por el negocio en el presente y el futuro. Se contará
infraestructura actual. con la información necesaria para realizar un presupuesto funda-
mentado con requerimientos del negocio y garantizar un servicio
2. Análisis de la capacidad actual adecuado a los usuarios, sin necesidad de aprovisionar de más.
Una vez determinados los niveles de servicio, lo siguiente es analizar
la capacidad actual de los sistemas para determinar si están cum- Resultaría imposible poder entregar en este artículo un nivel
pliendo con las expectativas de los usuarios, y en base a esto, hacer más detallado del trabajo, actividades y procesos involucrados
recomendaciones. en la administración de la capacidad. El objetivo simplemente es
resaltar la utilidad de la implementación de dichos procesos. En
Los pasos para realizar el análisis de la capacidad actual son: América Latina existe una enorme área de oportunidad para la
• Realizar una comparación de las mediciones de los elementos ref- adopción de estas prácticas, que se traduciría en empresas más
erenciados en los acuerdos de niveles de servicio, contra los obje- competitivas con mayor valor agregado para sus clientes.
tivos especificados. Esto proveerá información básica para definir

www.sg.com.mx JUL-AGO 2007 51


TECNOLOGÍA
////TECNOLOGÍA /* GADGETS */

SaWestern Digital
Caviar SE16 750GB
Pensado especialmente para computadoras de escritorio que utilizan aplicaciones con
muchos datos, computación de alto desempeño y sistemas multimedia, el Caviar es una uni-
dad de disco duro interno de gran capacidad que ofrece un índice de transferencia de 3GB
por segundo, cache de 16MB y cola de instrucciones nativas. Incluye la tecnología propietar-
ia de Western Digital, SecurePak que estaciona las cabezas grabadoras fuera de la superficie
del disco mientras gira hacia arriba y hacia abajo cuando la unidad no está operando, de tal
manera que se reduce el desgaste. Por otra parte, con StableTrac se minimiza la vibración
inducida por el sistema y estabiliza el plato para un mejor rastreo durante operaciones de
lectura y escritura. Además ahorra en consumo de energía.

Samsung
B-jack i321n
Black Jack es un smartphone lanzado recientemente bajo el concepto de “oficina móvil”, que cuenta con Win-
dows Mobile 5.0 para ofrecer al usuario potentes aplicaciones de negocios, así como acceso a diversas cuen-
tas de correo electrónico a través de Outlook Mobile. Soporta una extensa variedad de formatos multimedia,
funciones de entretenimiento y comunicación instantánea permitiendo reproducir y almacenar fotografías,
música y videos gracias al Windows Media Player. Entre sus características destacan su diseño ultradelagado;
cámara fotográfica de 1.3 megapixeles, puerto infrarrojo, ranura para memoria, visores de archivos adjuntos
de e-mail (.doc, .xls, .ppt, .pdf .wmf ); agenda, alarma, altavoz integrado, aplicaciones Java; conexión inalám-
brica Bluetooth con gran capacidad de transmisión y recepción de datos que permite conectarse con otros dis-
positivos tales como PDA o computadoras portátiles que se encuentren a una distancia máxima de 10 metros;
y memoria interna de 64MB.

Kilo
Taza personalizada
Definitivamente este no es un dispositivo de alta tecnología, pero no por eso es menos útil. Esta
taza está diseñada para que nadie en la oficina te la robe, ya que queda personalizada con tu
nombre, apodo o gráfico de tu preferencia. Solo necesitas pintar con un plumón indeleble sobre
el recuadro blanco. Esta taza es invención de uno de los diseñadores de SG, y puedes adquirir
la tuya en www.kilo.com.mx

Viewsonic
PJ258D
Incorporando la innovadora tecnología ViewDock hacia otra línea de productos,
nace el primer proyector DLP multifuncional de alta definición con base para
iPod: el PJ258D ofrece nuevas opciones de entretenimiento gracias a la opción
de portabilidad de exhibición para llevar contenidos visuales sin necesidad
de una computadora. Pesa alrededor de 2 kilos; su diseño es versátil y fácil de
usar. La estación base conecta al iPod directamente al proyector para disfrutar
de su contenido, mientras recarga la batería. Este equipo además, soporta otros
medios digitales a través de múltiples opciones de conectividad como video VGA,
haciéndolo compatible con PCs, reproductores de DVD y consolas de videojuegos.
Tiene resolución XGA de 1024X768, 2 mil lúmenes y una proporción de contraste 2000:1,
para una reproducción clara de fotografías y video sin importar el ambiente.

52 JUL-AGO 2007 www.sg.com.mx


SanDisk
MicroSDCH
Las tarjetas de memoria flash no sólo son cada vez más pequeñas, sino también
más poderosas y ahora son perfectas para dispositivos móviles tales como teléfonos
celulares. Con capacidades de 6GB y 8GB las microSDHC son ideales para todos los gad-
gets con innumerables funciones multimedia que integran teléfono, reproductor de música
y video, cámaras digitales, entre otros; ya que permiten almacenar, por ejemplo en la de 8GB
alrededor de 2 mil canciones, 5 mil fotos en alta resolución o hasta cinco horas de video MPEG4.
Son compatibles con cualquier dispositivo que cuente con ranura para tarjeta micro.

IBM Greenpeace
Power6 Green Electronics Guide
IBM lanzó el microprocesa- Greenpeace genera un reporte trimestral donde califica a
dor de doble core POWER los principales proveedores de computadoras y electróni-
6, que con sus 4.7 GHz du- cos en base a sus políticas y prácticas para eliminar quí-
plica la velocidad de su pre- micos dañinos, así como hacerse responsable de sus pro-
decesor, el POWER 5, pero ductos una vez que termina su vida útil. En la edición más
utilizando prácticamente la reciente de este ranking (junio 2007), Nokia fue la compa-
misma cantidad de energía. ñía considerada “más verde”, mientras que Sony tuvo el
deshonroso último lugar.
La nueva línea de servido-
res IBM System p 570 hace
uso de l POWER 6, y hasta
el momento ha logrado con-
seguir 25 diferentes records
de evaluación de desempe-
ño, además de ser el primer sistema que obtiene el primer
lugar en las categorías de: capacidad de procesamiento de
transacciones, tasa de transferencia de cálculo con ente-
ros, tasa de transferencia de cálculos con punto flotante, y
rendimiento de Java en operaciones por segundo

Logitech
X-530
Es común que las bocinas integradas totales, un moderno subwoofer que
de una computadora no brinden la regula automáticamente los sonidos
calidad de sonido que el usuario graves sin distorsión al producir
desea, por tal razón Logitech más movimiento de aire y lograr
ofrece el sistema X-530 que mayor profundidad. Cinco bocinas
se puede conectar, además, a satélite de montaje giratorio para
cualquier reproductor de CD, pared con tecnología FDD2 que
DVD, MP3; PlayStation o Xbox. elimina irregularidades, brindan-
Entre sus características des- do nitidez, uniformidad y balance
tacan sus 70 watts de potencia perfecto de audio.

www.sg.com.mx JUL-AGO 2007 53


// REFERENCIA

Business Service Management


¿Qué es y cómo llegar?
Por Ricardo Rodríguez Bernal

En su búsqueda por mejorar la calidad de los Gestión y Aprovisionamiento de dimiento y la disponibilidad de los actuales
servicios que proveen al negocio, las organi- Capacidad servicios de negocio.
zaciones de TI están cambiando su enfoque La gestión de la capacidad se encarga de ase-
para poder reflejar un mayor valor al nego- gurar que las aplicaciones existentes cumplan Gestión del Impacto en Servicios
cio. Una de las estrategias más recurridas con los requerimientos de los usuarios en Refleja el impacto en los servicios de nego-
para lograr esto, es la de Business Service términos de tiempos de respuesta y volumen cio provocado por las condiciones o cambios
Management (BSM). de transacciones soportadas. El aprovisiona- de estatus en la infraestructura de TI. Se
miento de capacidad se preocupa por empa- enfoca en conectar el estatus de un servicio
Forrester Research define BSM como una tar el uso con las necesidades de recursos de de negocio con el estatus de los recursos de
estrategia para “alinear la infraestructura TI de forma que no exista desperdicio. TI relacionados. Esto permite mostrar clara-
de TI, con servicios de TI alineados al ne- mente el impacto al negocio que tiene algún
gocio”. BSM está basado en el concepto Gestión de la Configuración y evento de TI.
de una vista compartida a través de todas el Cambio
las áreas de TI que permita saber cómo los Los cambios no controlados o no probados Gestión de los Niveles de Servicio
recursos de TI soportan directamente al adecuadamente son una de las principales Un aspecto fundamental de la operación del
negocio. Existen diversos proveedores de causas de fallas y “caídas” en sistemas de pro- negocio es la capacidad de establecer ob-
software y servicios BSM, y ésta es un área ducción. Una buena gestión del cambio y con- jetivos de nivel de servicio y cumplir dichos
que está mostrando mucho crecimiento en figuración contribuye a reducir los costos de acuerdos. Desde la perspectiva del negocio,
los últimos meses, ya que a fin de cuentas soporte significativamente, y disminuye la fre- los objetivos de nivel de servicio son, como
está fuertemente relacionada con prácticas cuencia de fallas en sistemas de producción. su nombre lo dice, una medida de qué tantas
como ITIL y COBIT. operaciones de negocio se pueden realizar en
Gestión de la Identidad determinado tiempo.
Existe una gran diversidad de proveedores El principal valor de la gestión de identidad
de software y servicios para BSM, y cada uno es asegurar el uso autorizado y protegido Referencias
sugiere una estrategia o “roadmap” para de los activos y procesos de negocio. Esta • Tim Grieser. “Implementing Business Ser-
implementarlo. BMC Software sugiere una seguridad se basa en la capacidad de saber vice Management: BMC Software’s Routes to
implementación de BSM basada en 8 disci- quién es un usuario en particular, a que ac- Value Approach”. IDC, Enero 2005.
plinas denominadas “Rutas de Valor”. Eva- tivos de TI tiene acceso, y qué nivel de uso • Peter O’Neill. “BSM is Coming of Age: Time
luando la madurez que tiene la organización puede tener. to Define What it is”. Forrester Research, Fe-
en cada una de estas 8 disciplinas, se puede brero 2006.
construir un mapa que ayude a reforzar las Gestión de Incidentes y
necesidades de TI y del negocio. A continua- Problemas
ción explico estas rutas de valor y los proble- Los incidentes de TI tales como fallas en sis- Conclusión
mas con los que lidia cada una. temas de misión crítica tienen un fuerte im- Implementando BSM, las organiza-
pacto en el negocio. Una gestión efectiva de ciones de TI pueden entender las
Gestión y Descubrimiento los incidentes maneja a estos de forma pre- relaciones críticas entre el negocio
de Activos ventiva, más que correctiva, implementando y los servicios de TI, así como detec-
Los activos de TI representan una fuerte in- mecanismos para detectar y resolver anor- tar los cambios y darle prioridad a la
versión, así como costos de operación recu- malidades, antes de que se conviertan en un administración de los componentes
rrentes derivados de soporte y renovación problema que impacte el negocio. de la infraestructura de TI basados
de licencias. Uno de los requerimientos prin- en las métricas y requerimientos
cipales de la alineación de TI con el negocio Gestión de Infraestructura y del negocio. Entender estas relacio-
consiste en el rastreo y gestión de los activos Aplicaciones nes, y darle la prioridad adecuada a
de TI para lograr eficiencias en costos y de- Se preocupa por administrar y controlar distintas situaciones, puede ser de
mostrar que estén generando un retorno de todas las aplicaciones y componentes de gran ayuda al negocio para operar
inversión. La gestión de activos permite eva- infraestructura de la organización desde de forma más efectiva, reduciendo
luar y reasignar recursos de TI de forma efi- una perspectiva de servicios de negocio. costos e incrementando la satisfac-
ciente en base a cambios en las necesidades De esta forma, asegura que los recursos ción del cliente.
del negocio. estén enfocados en la optimización del ren-

Ricardo Rodríguez Bernal es Arquitecto de Soluciones de Business Service Management en BMC Software México

54 JUL-AGO 2007 www.sg.com.mx


INDEX

DIRECTORIO Anunciante Páginas Sitio

Avantare 13 www.avantare.com
CIAPEM 9 www.ciapem.veracruz.gob.mx
e-Quallity 39 www.e-quallity.net
Gartner 47 www.gartner.com
IDC 49 www.idc-eventos.com
Innevo 35 www.innevo.com
Intersoftware F3 www.intersoftware.com.mx
Itera 41 www.itera.com.mx
Milestone Consulting F4 www.milestone.com.mx
NYCE 31 www.nyce.com.mx
SafeNet 11 www.safenet-inc.com
SG’07 F2-1 www.sg.com.mx/sg07

TENEMOS UN ESPACIO
RESERVADO PARA TI
Si deseas anunciarte contáctanos
en el (55) 5239 5502 o en
ventas@softwareguru.com.mx

www.sg.com.mx JUL-AGO 2007 55


TECNOLOGÍA
////BIBLIOTECA

Code Quality: The Open Source Perspective


Diomidis Spinellis

01
Addison Wesley, 2006 quien ha trabajado directa o in-
En un mundo donde la mayoría de las discusio- directamente con los conceptos
nes sobre calidad de software están enfocadas en de este libro desde 1985, escri-
administración y otros temas de alto nivel, Diomidis Spinellis biendo y manteniendo mas de
nos invita a analizar este tema partiendo de una perspectiva 250,000 líneas de código para
diferente, calidad del código. En lugar de explicar cómo resolver numerosos proyectos comercia-
proyectos complejos, este libro describe cómo juzgar la calidad les y de software libre.
de lo que estás viendo: código. Code Quality es la continuación
al libro previo escrito por Spine-
Basado en el estándar de calidad ISO 9126, Spinellis descompo- llis titulado “Code Reader”, que
ne su propuesta en las categorías: confiabilidad, seguridad, des- está enfocado en la importancia
empeño de tiempo, desempeño de espacio, portabilidad, y man- que tiene el saber leer código,
tenimiento. Cada una obtiene un capítulo, pero lo más peculiar para aprender a programar con
de este libro, es que cada capítulo muestra docenas de ejemplos calidad.
basados en código fuente de conocidos proyectos de software
libre, tal como Perl, ACE, y NetBSD, donde cada ejemplo confirma Code Quality debería ser una
su punto de una manera clara e irrefutable. lectura requerida para todos los cursos de programación, y de-
bería ser considerado una biblia no solo para los programado-
El libro está saturado de experiencia y observación detallada. res, sino para todos los involucrados en análisis, mantenimien-
Diomidis es un profesor asociado en la Universidad de Atenas, to y control de cambios del software.

Refactoring Databases: Evolutionary Database Design


Scott W. Ambler y Pramod J. Sadalage

02
Addison Wesley Professional, 2006 la refactorización de datos en el
Refactorizar una base de datos consiste en realizar proceso de desarrollo y mante-
pequeños cambios al esquema de una base de datos nimiento de software. Adicional-
existente (y posiblemente en producción) para mejorar su diseño, mente, también dedica atención
pero manteniendo su semántica. El proceso de refactorización se a analizar aspectos culturales,
enfoca en mejorar de forma evolutiva un esquema de datos de tal que de acuerdo a los autores se-
forma que pueda soportar con mayor facilidad nuevas necesidades rán los más difíciles de superar.
de los clientes, incorporar ajustes realizados a las aplicaciones, y co-
rregir problemas de diseño existentes en bases de datos legadas. La refactorización es un concepto
crucial en la práctica moderna de
Este libro enseña diferentes técnicas para poder realizar cambios a desarrollo exitoso, y las bases de
las base de datos de forma ágil. Refactoring Databases está lleno de datos particularmente necesitan
consejos prácticos sobre cómo mejorar el diseño de la base de da- de “agilidad” y “administración
tos, desde que se está creando, hasta cómo manejar las transiciones evolutiva”, fundamentos de la
y migraciones. El contenido revela la experiencia de los autores en refactorización. Tanto gerentes
el tema de desarrollo ágil, demostrando la premisa fundamental de como administradores de bases
este libro: “los datos y las bases de datos deben evolucionar en la de datos necesitan familiarizarse
misma manera que el código evoluciona - de manera incremental”. con este concepto, y aquí es donde Ambler siempre ha sobresalido:
en su habilidad para comunicar abstracciones arquitectónicas que
Refactoring Databases no solo se enfoca en aspectos técnicos o sean entendidas tanto por los tomadores de decisiones, como por
tecnológicos, sino que también aborda el tema de cómo incorporar los programadores.

56 JUL-AGO 2007 www.softwareguru.com.mx


www.sg.com.mx
Año 03 No. 4 www.sg.com.mx SG SOFTWARE GURU CONOCIMIENTO EN PRÁCTICA Julio-Agosto 2007

Vous aimerez peut-être aussi