Está en la página 1de 70

// CONTENIDO

directorio

Dirección Editorial
Pedro Galván

Dirección de Operaciones
Mara Ruvalcaba

Editorial Coordinación Editorial


Alejandro Escamilla

Arte y Diseño
Grisel Otero

Consejo Editorial
Jorge Valdés - PMI; Luis Cuellar - Softtek;
Francisco Camargo, Luis D. Soto - Microsoft;
Hanna Oktaba - UNAM; Ralf Eder, Raúl
Trejo, Guillermo Rodríguez - ITESM CEM;
Emilio Osorio - Sistemas Humanos;
Muchos hemos oído acerca de Cómpu- En este número tenemos también la edición Luis Vinicio León - e-Quallity.
to en la Nube, pero ¿qué es esto?, ¿dónde 2008 de nuestra Encuesta de Salarios, que
se está aplicando?, ¿qué opinión tienen los se está convirtiendo en el reportaje más es- Colaboradores
expertos al respecto? Más allá de la moda, perado del año. Para complementar el resto Carlos Coello, Benjamín Alonso,
es importante entender cuales son los con- del contenido de este número, ofrecemos Guillermo Morales, Javier Espadas,
ceptos fundamentales de este modelo, así un panorama sobre ofuscación de código, Pablo Resendiz, Gilbert Corrales,
como el impacto que tendrá en la forma en un artículo bastante completo sobre RFID, Juan Olivares, Sandokan Barajas,
que desarrollamos software. así como las secciones de costumbre con Victor García, Miguel Armas,
prácticas de ingeniería de software, y la Francisco Vaca, Carlos Ordoñez,
Beatríz Ríos, Luis Joyanes,
En cuanto a la portada, seguramente se perspectiva de nuestros columnistas.
Shannon Cepeda, Romeo Márquez,
preguntarán qué fumamos para salir con Gunnar Wolf , Susana Tamayo.
el concepto artístico. Queremos aclarar Queremos también aprovechar esta
que no se usaron sustancias alucinantes oportunidad para recordarles sobre el
durante su desarrollo (no que nos cons- proyecto más reciente de SG, denominado Ventas
te), ni nos basamos en libros de “Donde SG Campus. Este es un servicio de aprendi- Claudia Perea
está Wally”. Simplemente le explicamos a zaje continuo en línea para profesionistas
nuestra diseñadora, Grisel Otero, el con- de TI. Ya están abiertos varios cursos y los Circulación y Administración
cepto de cloud computing, y le pedimos resultados han sido muy satisfactorios. Si Edgar Dorantes
que ella hiciera una interpretación artísti- todavía no te unes a SG Campus, hazlo en
ca de él. Después del shock inicial de ver www.sgcampus.com.mx.
su propuesta, nos dimos cuenta de cómo Contacto
info@sg.com.mx
ella entiende y plasmó el concepto: bási- Dado que el último número del año, no
+52 55 5239 5502
camente, una masa de elementos diver- queremos quedarnos sin desearles unas
sos que a pesar de ser diferentes, tienen felices fiestas navideñas, y un próspero
elementos comunes, convergen y generan 2009. Ante el panorama financiero que SG Software Guru es una publicación trimestral
editada por Brainworx S.A. de C.V., Malinche no. 6,
sinergia ... y justamente eso es lo que es. hemos vivido últimamente, sabemos que Col. El Parque, C.P. 53398, Naucalpan, México. Queda
esto último será complicado. Pero bien di- prohibida la reproducción total o parcial del contenido
Desde hace tiempo que teníamos ganas de en- cen que “a río revuelto, ganancia de pesca- sin previo aviso por escrito de los editores. Todos
los artículos son responsabilidad de sus propios
trevistar a Tom DeMarco, y por fin se nos hizo. dores”. Así que hay que ponernos las pilas autores y no necesariamente reflejan el punto de
Tom es una de esas personas que nos hace para aprovechar esta oportunidad. vista de la editorial. Reserva de Derechos al Uso
abrir los ojos y darnos cuenta de tantas cosas. Exclusivo: 04-2004-090212091400-102. Certificado
Muchas gracias a Tom y a la gente de Cutter » Equipo Editorial de licitud de título: 12999. Certificado de licitud de
contenido:10572. ISSN: 1870-0888. Registro Postal:
Consortium por facilitar esta entrevista. PP15-5106. Se imprimió en octubre de 2008 en Roma
Color, S.A. de C.V. Distribuido por Sepomex.

02 NOV-ENE 2009 www.sg.com.mx


contenido
nov 2008 - ene 2009

26 EN PORTADA
Cloud Computing
Te mostramos los recursos ilimitados
del “Cómputo en la nube”

Especial 18
Encuesta de Salarios 2008.

Productos
LO QUE VIENE 12
VSTS 210, Mono 2.0 y Oracle Beehive.

Herramientas 14
Beneficios de la Automatización de
Pruebas.

TUTORIAL 16
Silverlight, Parte 2.

Columnas Prácticas
Tejiendo Nuestra Red 08 Tendencias en Software 48 PROGRAMACIÓN 36
por Hanna Oktaba por Luis Daniel Soto Ofuscación de Código
Conozcamos como proteger nuestro código
Mejora Continua 10 Prueba de Software 50 para que no sea reutilizado por terceros.
por Luis Cuellar por Luis Vinicio León
ADMINISTRACIÓN DE BASE 40
Columna Invitada 46 DE DATOS
por Carlos Ordoñez Diseño de Base de Datos
Aprendamos a utilizar los catálogos para hacer
más eficiente nuestra manera de codificar.
En Cada Número
ARQUITECTURA 42
Noticias y Eventos 04 GADGETS 60 Una Receta para Desarollar
Arquitecturas
INDUSTRIA 06 FUNDAMENTOS 62 Presentamos el marco de trabajo para
desarrollar arquitecturas propuesto por
INFRAESTRUCTURA 52 CARRERA 64 The Open Group.

PM CORNER 44
La integración de un equipo de
trabajo funcional

24
Tácticas y técnicas para integrar de manera
eficiente a tu equipo de trabajo.

Entrevista
Tom DeMarco

www.sg.com.mx NOV-ENE 2009 03


// NOTICIAS

XXIX Convención Nacional CANIETI


Tras tres días de reunión, debate y reflexión conjunta, concluyó la
XXIX Convención Nacional CANIETI, la cual bajo el título “Gobierno,
Academia e Industria: Triple Play Ganador” reunió a representan-
tes de estos sectores con un solo objetivo: sentar las bases del
desarrollo de las industrias representadas en el corto y mediano
plazo. La Convención fue inaugurada por el Presidente Constitucio-
nal de México, el Lic. Felipe Calderón Hinojosa, y precedida por el
Presidente Nacional de CANIETI, el Dr. Eduardo Ruiz Esparza, quien
agradeciendo el dinamismo y visión de los afiliados, así como al
apoyo de los programas del Gobierno Federal, comentó que ha sido
posible mejorar la posición competitiva de nuestro país en cinco
posiciones, con respecto de otros jugadores internacionales, men-
cionando los programas más sobresalientes: ProSoft, MexicoIT,
ProMedia y Mexico FIRST.

IBM Rational Comes to You, México 2008


El pasado 10 de septiembre se realizó en la ciudad de México
el evento “IBM Rational Comes To You”, donde los asistentes
tuvieron acceso a varios de los temas y conferencistas que es-
tuvieron presentes unos meses antes en la conferencia anual
de Rational que se celebra en Orlando (IBM Rational Software
Development Conference). Entre los conferencistas estuvo Te-
rry Quatrani, que es la evangelista en jefe de Rational y quien
había estado recientemente en México como keynote speaker
en SG ’08 Conferencia y Expo.

El tema que dominó las sesiones fue la nueva familia de herra-


mientas Rational Team Concert, la cual está construida sobre
Jazz, una nueva plataforma open source para el desarrollo de
herramientas de colaboración.

Cutter Consortium Summit América Latina


La edición para América Latina del Cutter Summit 2008 se llevó a
cabo del 1 al 3 de octubre en el Hotel JW Marriott en la ciudad de
México. El evento reunió a expertos del campo tales como Tom De-
Marco, Robert Benson, Tim Lister, Alfredo Funes, Lou Mazzuchelli,
Mike Rosen y Alejandro Pisanty.

El tema con el que se abrió el Summit fue el de “Manejo Efectivo


de las Finanzas de TI”, el cual cobra especial importancia ante la
actual situación económica. Como parte de la exposición de este
tema se revisaron a detalle prácticas y recomendaciones para
estimar y monitorear el costo total de un servicio de TI, y cómo
justificar su valor hacia la alta dirección.

04 NOV-ENE 2009 www.sg.com.mx


// EVENTOs

5 al 7 de Noviembre 2008 11 al 13 de Noviembre 2008


BAJA TECH Business Solutions 2.0 Agile Management - Creating
Grand Hotel Tijuana, Baja California Business & Technical Value
Info: www.itbaja.com/web-bajatech Cutter Consortium
e-mail: enlace@itbaja.com Hotel JW Marriott, Cd. de México
Info: www.cutter.com.mx/eventos2008
e-mail: agile@cutter.com.mx
5 y 6 de Noviembre 2008
Seminario Gratuito “Squeeze your metrics”
Avantare, MS SPI Solutions, y Secretaría de Economía 12 al 14 de Noviembre 2008
Torre Insurgentes de Secretaría de Economía, Cd. de México 50 Años de la Computación en México
e-mail: capacitacion@avantare.com Palacio de Minería, Cd. de México
Info: computo50.unam.mx

12 al 14 de Noviembre 2008
SEPG LA 2008 – Combinando Disciplina con 5 al 7 de Diciembre 2008
Métodos Ágiles Expo Robótica, Ciencia y Tecnología
ESI Tecnalia, SEI, y ESICenter Cono Sur WTC, Cd. de México
Hotel Hermitage, Mar del Plata, Argentina Info: www.exporobotica.com.mx
Info: www.esi.es/SEPGLA e-mail: info@exporobotica.com.mx
e-mail: sepgla@esi.es

CIAPEM 2008 CIISA 2008


Los pasados 1ro. al 3 de octubre, en Mundo Imperial Acapulco, Del 3 al 5 de septiembre se realizó en la ciudad de Guada-
se llevó a cabo la XXXII Reunión Nacional del Comité de Informá- lajara, Jalisco el Congreso Internacional de Ingeniería de
tica de la Administración Pública Estatal y Municipal (CIAPEM). Software y sus Aplicaciones (CIISA) 2008. Este evento fue
Encabezado por el gobierno de Guerrero en el período 2008- organizado por el SIE Center de México en conjunto con el
2009, el CIAPEM tendrá como objetivo establecer políticas y Tec de Monterrey Campus Guadalajara, y apoyado por la
vínculos entre las administraciones estatales, municipales, fe- Secretaría de Economía y el Gobierno del Estado de Jalisco.
derales y privadas que permitan acelerar el crecimiento cons- Se contó con la presencia de prestigiados conferencistas
tante y equitativo de la aplicación y uso de las tecnologías de como Watts Humphrey y Suzzane Garcia del SEI, Lauro Cantú
información. De igual manera buscará establecer una metodo- de Gartner, y Kerrie Holley de IBM, entre otros. Los temas cen-
logía para definir la situación actual que mantienen el uso de trales fueron arquitectura de software, calidad, y tecnologías
la tecnología y las comunicaciones, impulsando a la Sociedad de desarrollo, agregando también un espacio para explorar
de la Información y el uso de las TICs en México. oportunidades de negocio.

Congreso Internacional ANIEI 2008 DebConf 8


Organizado por la ANIEI y teniendo como sedes el ITESM El noveno congreso de desarrollo de Debian, DebConf, fue ce-
Campus Monterrey, la Universidad de Monterrey y la Univer- lebrado del 10 al 16 de agosto, en la ciudad de Mar del Plata,
sidad Regiomontana, se llevó a cabo el XXI Congreso Nacio- Argentina. Participaron aproximadamente 250 desarrolladores,
nal y VII Congreso Internacional de Informática y Computa- de 37 países, en más de 100 charlas y talleres programados.
ción, los días 1, 2 y 3 de Octubre. Con el objetivo de aportar Además durante la semana previa de trabajo (3 al 9 de agosto),
conocimientos y experiencias a nuestros próximos profesio- se llevó a cabo el DebCamp, enfocado en el trabajo colaborativo.
nales en tecnologías de la información, el congreso presentó Participaron personalidades tales como el líder del proyecto
conferencistas e investigadores de prestigio reconocidos a Debian, Steve McIntyre, y el jefe de tecnologías Linux y Open Source
nivel mundial, contando con la asistencia de más de 1,300 de Hewlett Packard, Bdale Garbee. Los temas incluyeron la organi-
estudiantes y egresados de las carreras de TI. zación del equipo global, internacionalización, desarrollos y políti-
cas internas, virtualización, y administración de sistemas y redes.

www.sg.com.mx NOV-ENE 2009 05


// INDUSTRIA

50 Años de la Computación en México


Reseña histórica
Por Alejandro Escamilla

Este año estamos celebrando los 50 años de la computación en No obstante, para instituciones privadas como el ITAM, la UDLA, o
México, y se han venido realizando una serie de eventos al respecto. el ITESM, fue un período clave para la formación y crecimiento de su
Aprovechemos esta oportunidad para echar un vistazo a los princi- plantilla de doctores en computación dirigidos hacia la investigación.
pales acontecimientos durante estos 50 años.
Nuevo impulso de Conacyt
La primera computadora en México En la década de los noventas, el CONACYT da un fuerte impulso a
La historia comienza en 1955, año en que el Ing. Sergio Beltrán Ló- la realización de investigación a nivel nacional y se crean nuevos
pez plantea al Dr. Nabor Carrillo Flores (entonces rector de la UNAM) centros de investigación tales como: El Centro de Investigación en
la adquisición de una computadora. El Ing. Beltrán se había intere- Computación (CIC) del Instituto Politécnico Nacional, el Laboratorio
sado en esto a raíz de los resultados de un proyecto de resolución de Nacional de Informática Avanzada (LANIA) en Xalapa, Veracruz; la
ecuaciones simultáneas que hicieron en conjunto con la Universidad Coordinación de Ciencias Computacionales del Instituto Nacional de
de California en Los Angeles (UCLA). En la resolución de este proyec- Astrofísica, Óptica y Electrónica (INAOE) y el Departamento de Cien-
to los investigadores mexicanos habían tardado 9 meses, mientras cias de la Computación del Centro de Investigación Científica y de
que la UCLA solo había tardado 3 semanas utilizando una computa- Educación Superior de Ensenada (CICESE), entre otros.
dora IBM-650. Fue así que la UNAM firmó un contrato con IBM para
rentar una IBM-650 por un total de $25,000 pesos mensuales. La llegada del siglo XXI
En la primera década de este siglo, se dieron avances notables como
El 8 de junio de 1958 abrió sus puertas el Centro de Cálculo Electrónico el primer enlace internacional de voz sobre IP nativo en 2002 ; el pri-
(el CCE), ubicado en el sótano de la antigua Facultad de Ciencias, don- mer enlace de comunicación interactiva con formato para televisión
de se instaló la IBM-650. Esta máquina operaba con un tambor mag- digital en Internet en 2003 , la Inauguración de la Red Inalámbrica
nético con capacidad para 20,000 dígitos, realizaba 1,300 operaciones Universitaria (RIU) en 2006, la inauguración de la supercomputadora
de suma y resta por segundo y funcionaba con lectora y perforadora KanBalam en 2007 entre otros.
de tarjetas, adoptando un sistema numérico llamado bi-quinario. Las
primeras tareas que se le encomendaron a esta computadora fueron
las de resolver problemas de astronomía, física e ingeniería química. Conclusión
En estos 50 años de la computación en México se ha demos-
Se unen otras universidades trado el desarrollo que ha tenido esta floreciente ciencia gra-
Posteriormente, en 1961 el IPN inauguró su centro de cómputo, el cias al tenaz esfuerzo de hombres y mujeres que están con-
CENAC, y en 1964 el ITESM instaló su primera computadora, y poco vencidos de que en este país hay oportunidad de alcanzar un
después inauguró la primera carrera de computación en el país. La sueño. Tal es el caso de los más de 400 doctores en computa-
UNAM, el IPN y el ITESM se convirtieron en polos de atracción de ción o áreas similares que se encuentran en diferentes institu-
estudiantes curiosos y tenaces que deseaban acercarse a ese nuevo ciones de educación superior en nuestro país.
universo de la computación.
Vale la pena reflexionar sobre las palabras del Dr. Renato Itu-
Los primeros posgrados rriaga durante la conferencia de inauguración de los festejos
El Centro Nacional de Cálculo del IPN instituyó a fines de los años por los 50 años de la computación en México: “La computación
sesenta la primera maestría en ciencias de la computación. La UNAM en el mundo ha tenido avances espectaculares y en el futuro
hizo lo propio en 1975. Para finales de los años 70, el Instituto de lo serán aún más. Pero toda esa tecnología no ira al frente del
Investigaciones en Matemáticas Aplicadas y Sistemas (IIMAS) de la hombre, sino detrás de él. El desarrollo de la computación en
UNAM contaba con 20 doctores en computación. México lo han realizado, y lo están realizando, personas. Dicho
desarrollo solo tiene sentido en tanto esté orientado a servir a
La década perdida los intereses de la sociedad en general y de las personas en lo
La década de los ochenta fue muy difícil para las ciencias de la com- individual. En 24 siglos no ha perdido vigencia el aforismo de
putación en México. En un periodo menor a tres años, todos los Protágoras: el hombre es la medida de todas las cosas.”
grupos de investigación de las universidades públicas en México se
redujeron considerablemente y en algunos casos desaparecieron
por completo. A finales de esa década, el escenario económico en Referencias:
las universidades públicas hizo muchos estragos en los grupos de [cs.cinvestav.mx/SemanaComputoCINVESTAV/Computo.html]
investigadores dedicados al cómputo; a este episodio de la historia [lajornadadeoriente.com.mx/2008/01/28/puebla/]
de la computación en México se le denominó “La década perdida”. [computo50.unam.mx/computoenmexico2.html]

16
06 NOV-ENE 2009 www.sg.com.mx
// industria

25 Años Haciendo Investigación


Un Vistazo al Pasado, Presente y Futuro en el CINVESTAV-IPN
Por Carlos Coello

El año 1983 evoca para muchos, incontables memorias. Ese año se contando con destacados conferenciastas como: el Dr. Edmund Clar-
introdujo la IBM PC XT; la revista Time eligió a la computadora como ke (ganador del Premio Turing 20074 por haber desarrollado la he-
la “máquina del año” (en vez del tradicional “hombre del año”), dedi- rramienta conocida como Model Checking) de la Universidad Carne-
cándole su portada del ejemplar del 3 de enero; ARPANET estandarizó gie-Mellon, el Dr. Héctor García Molina (quien tiene el factor H más
el protocolo TCP/IP (el cual se sigue usando hoy en día en Internet) y alto en computación a nivel mundial) de la Universidad Stanford,
también se anunció el lanzamiento del Windows de Microsoft. y el Dr. Alan Kay (ganador del Premio Turing 2003 y pionero de la
POO e interfaces gráficas) del Viewpoints Research Institute, en-
Qué lejanos lucen esos días, en que aparecían los discos compactos tre otros eminentes expertos. En este evento participaron tam-
en el mercado por primera vez y el uso del correo electrónico y el in- bién los 4 únicos computólogos de México que ostentan el nivel
ternet eran prácticamente desconocidos. El Centro de Investigación y 3 en el Sistema Nacional de Investigadores: el Dr. Adolfo Guzmán
de Estudios Avanzados del Instituto Politécnico Nacional (CINVESTAV- Arenas, el Dr. Felipe Lara Rosano, el Dr. José Luis Marroquín Zaleta y el
IPN) contaba en aquel entonces con 7 minicomputadoras, distribuidas Dr. Carlos Artemio Coello Coello. Durante el evento se realizaron
en los Departamentos de Fisiología, Farmacología, Toxicología e Inge- mesas redondas tratando temas como la situación actual de la
niería Eléctrica. Así mismo, habían decenas de microcomputadoras y computación en México, se llevó a cabo el “Primer Encuentro de
se tenía acceso a un mainframe a través de diversas terminales. Estudiantes que Cursan un Doctorado en Computación en México”,
y el concurso de cuento titulado “La Computación del Siglo 21: entre
El Departamento de Ingeniería Eléctrica del CINVESTAV-IPN llevaba ya, lo natural y lo artificial de la inteligencia y la vida”.
en aquel entonces, varios años de impartir cursos sobre computación
electrónica tales como “Introducción a la Computación”, “Teoría de Au- Tras la culminación de este año de celebraciones, bien nos vendría
tómatas” y “Arquitectura de Computadoras”, entre otros. Así mismo, el abrir un espacio para reflexionar sobre la dirección hacia donde qui-
uso de computadoras electrónicas se hacía cada vez más común. siéramos que se moviera el grueso de la comunidad de computa-
ción en México en los años por venir. Ciertamente, esperamos un
Fue en esta atmósfera que se gestó una propuesta1 para establecer un crecimiento importante de una comunidad que cuenta actualmente
Departamento de Computación en el CINVESTAV-IPN hacia principios de con unos 550 doctores, con un consecuente aumento del número
1983. En este punto, bien vale la pena reconocer los esfuerzos que rea- de posgrados, así como de nuestra capacidad para vincularnos con
lizaron los Dres. Héctor Nava Jaimes (entonces Director General del CIN- el sector productivo. Sin embargo, también se espera que este cre-
VESTAV-IPN), Juan Milton Garduño (entonces Jefe del Departamento de cimiento conlleve a una mayor consolidación de nuestros investiga-
Ingeniería Eléctrica) y Adolfo Guzmán Arenas (fundador y primer Jefe de dores, de manera que esta comunidad tenga mayor peso específico
la Sección de Computación del CINVESTAV-IPN) para llevar a cabo esta en la toma de decisiones en torno a políticas científicas en México.
empresa. Fue así como se gestó una propuesta que contemplaba 3 eta- De lograrlo, ese sería, sin duda, el mejor homenaje que se le po-
pas. La primera etapa arrancó en el mismo 1983, creándose la Sección dría rendir a una disciplina que, querámoslo o no, ha cambiado para
de Computación del Departamento de Ingeniería Eléctrica. Sin embargo, siempre nuestro modo de vida.
por diversas razones, fue hasta el año 2006 (más de 20 años después
de lo esperado) que la segunda etapa, la creación del Departamento de Referencias
Computación, se volvió finalmente una realidad2. La tercera etapa, crea- [ 1. Anónimo. “Propuesta de Creación del Departamento de Computa-
ción de secciones dentro del Departamento de Computación, bien po- ción del CIEA del IPN. Etapa I: Sección de Computación”. Presentado
dría tomar más tiempo del que el autor viva para volverse una realidad. por el Departamento de Ingeniería Eléctrica, CIEA del IPN. 1983. ]
[ 2. Coello Coello, Carlos Artemio. “El Departamento de Computación
Actualmente, el Departamento de Computación del CINVESTAV-IPN del Cinvestav”. Cinvestav. Abril-Junio 2007 . Vol. 26. No. 2, pp. 4-13. ]
cuenta con 16 investigadores de tiempo completo y 7 investigadores [ 3. cs.cinvestav.mx/SemanaComputoCINVESTAV ]
más en el CINVESTAV Tamaulipas. A la fecha ha graduado a más de [ 4. El Premio Turing (Turing Award) es otorgado por la Association for
280 estudiantes de maestría y doctorado. Computing Machinery (ACM), y es considerado como el
reconocimiento técnico más importante que se otorga en el área de
En la semana del 1 al 5 de septiembre, se celebraron los 25 años de computación. ]
existencia de los programas de computación en el CINVESTAV-IPN3,

Carlos Artemio Coello Coello se doctoró en Ciencias de la Computación en la Universidad Tulane (en Estados Unidos), en 1996, haciendo trabajo pionero en
el área de “optimización evolutiva multi-objetivo”. Actualmente es Investigador 3-D y Jefe del Departamento de Computación del CINVESTAV-IPN. Pertenece al
Sistema Nacional de Investigadores (nivel 3) y a la Academia Mexicana de Ciencias.

www.sg.com.mx NOV-ENE 2009 17


07
// COLUMNA /*TEJIENDO NUESTRA RED*/

Aprovechando Áreas de Procesos de MoProSoft


Reunión del WG24 en México

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

L a próxima reunión del grupo de trabajo


WG24 del subcomité SC7 del JTC1 ISO/IEC se
¿A quién está dirigido este perfil? y ¿qué ele-
mentos de NMX-I-059-NYCE-2005 MoProSoft
Aprendizaje y Crecimiento

realizará del 10 al 14 de noviembre de este se aprovecharon para crearlo? • Conciencia de la importancia de


año en la Ciudad de México en las instalacio- estándares.
nes de CANIETI. En esta ocasión se revisarán El Perfil Básico está dirigido a las VSE con • Falta de recursos humanos informados
los comentarios, enviados por los países las siguientes características: o capacitados en estándares.
participantes en SC7, sobre la siguiente ver- • Falta de conocimientos sobre la mejora
sión, Proposal Draft, de la ISO/IEC TR 29110 Financieras de procesos y las evaluaciones.
Software Engineering — Lifecycle Profiles for
Very Small Enterprises (VSE). • Fuerte dependencia de ganancias de
cada proyecto, Para crear la guía de interpretación del Per-
Este documento consta de las siguientes • Necesidad de ingreso frecuente de dinero, fil Básico se aprovecharon los dos procesos
partes: • Proyectos de bajo presupuesto, bajo de la categoría de operación de MoProSoft,
• Part 1. Overview riesgo y duración de unos cuantos meses. llamados en inglés Project Management y
• Part 2. Framework and Taxonomy Software Implementation. Se eligieron las
• Part 3. Assessment Guide actividades, tareas, productos y roles de
• Part 4-1. Specification – Basic Profile Relación con el Cliente estos procesos correspondientes a los si-
• Part 5-1. Management and Engineering guientes elementos:
Guide – Basic Profile • Un cliente por proyecto
• Satisfacción del cliente depende de: Proceso de Administración de
La primera parte explica por qué se decidió • Cumplimiento de requerimientos que Proyectos Específicos (Project
hacer un trabajo especial para acercar los pueden cambiar durante el proyecto. Management)
estándares internacionales a organizacio- • Información sobre los avances. • Planificación del proyecto con la identifi-
nes, departamentos o proyectos con me- • Entregas a tiempo. cación y estimación de tareas para un ciclo y
nos de 25 personas, llamados Very Small • Baja tasa de defectos encontrados su calendarización.
Enterprises (VSE). después de la entrega.
• Monitoreo del avance del proyecto, ac-
La parte 2 propone marco y posible taxo- ciones correctivas y cierre del proyecto con
nomía para crear perfiles, subconjuntos de Proceso Interno aceptación del cliente.
estándares existentes, con la finalidad de
satisfacer necesidades específicas de este • Desarrollo de software bajo contrato u • Recepción y análisis de las solicitudes de
tipo de organizaciones. orden de trabajo. cambio tanto del cliente como del equipo
• Prácticas precarias de administración de desarrollo. El análisis considera el im-
La parte 3 ofrece guía para la aplicación de de proyectos y de desarrollo de software. pacto de cambio sobre los aspectos técni-
evaluaciones de los perfiles usando como • Desarrollo progresivo y consistente con cos, costo y tiempo. Si el caso lo amerita,
referencia el estándar ISO/IEC 15504-2. los requerimientos del cliente. se actualiza el plan del proyecto.
• Un solo canal de comunicación entre el
La parte 4-1 y 5-1 contienen la especificación grupo de desarrollo y el cliente. • Reuniones de revisión con el equipo de tra-
y la guía de interpretación, respectivamente, • Productos a desarrollar pueden tener bajo y con el cliente registrando los acuerdos.
del primer perfil definido para VSE, llamado más de una versión y estas deben ser
Perfil Básico. resguardadas y controladas. • Identificación y registro de riesgos durante
• Gestión de recursos humanos, infraes- el proyecto.
A continuación trataré de contestar breve- tructura y del portafolio de proyectos se
mente las siguientes preguntas: realiza de manera informal. • Identificación de elementos de configura-
ción de software, definición y aplicación de

08 NOV-ENE 2009 www.sg.com.mx


la estrategia de control de versiones, res- • Se producen componentes de software de Los defectos encontrados quedan registra-
guardo y recuperación. acuerdo al diseño, se les aplican pruebas dos y corregidos manteniendo el control de
unitarias para asegurar la consistencia con versiones y el resguardo correspondiente.
• Aseguramiento de calidad de producto y el diseño y con los requerimientos. Se es-
de procesos mediante el cumplimiento de tablece la trazabilidad de los componentes Los que conocen MoProSoft fácilmente iden-
requerimientos y del plan del proyecto. con el diseño y con los requerimientos. tificarán lo que quedó incluido en el Perfil
Básico y los que quieren conocerlo a mayor
Proceso del Desarrollo y • Se definen pruebas para la integración de detalle pueden solicitar los documentos al
Mantenimiento de Software los componentes. Se integran los compo- comité de normalización de CANIETI.
(Software Implementation) nentes aplicando las pruebas, se registran
• Realizar tareas acorde al plan del proyecto. los defectos y se corrigen. Una buena noticia que quiero compartir
para finalizar esta entrega es que México
• Definición y análisis de requerimientos, • Se integra y resguarda la configuración de cambió el estatus ante el ISO/IEC JTC1 SC7
con el fin de asegurar que sean correctos y software con la documentación correspon- dejando ser miembro O (Observador) y con-
susceptibles a ser probados, se validan con diente y los manuales de usuario, operación virtiéndose en miembro P (Participante), lo
el cliente, se resguardan como línea base y y mantenimiento. que significa que no solamente podemos
se comunican a los interesados. emitir comentarios sobre las normas sino
• Se realizan las actividades de verifica- que también podemos votar por ellas.
• Se desarrolla el diseño arquitectónico de- ción y validación de los productos selec-
tallado y se establece la trazabilidad con los cionados para asegurar la consistencia » Por Hanna Oktaba
requerimientos. entre ellos y la satisfacción del cliente.

www.sg.com.mx NOV-ENE 2009 09


// COLUMNA /*MEJORA CONTINUA*/

“Premio Nacional de Calidad”,


y La Norma MoProSoft
Estrategias de Implantación

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.

Premio Nuevo León a la Calidad Lo que yo veo en la industria del software en proyectos en problemas y tratando de sacar

E l mes pasado SOFTTEK ganó el premio


Nuevo León de Calidad. Esta es la prime-
ra vez que una empresa de software gana
México es que tenemos comprada la idea de
que lo más importante es implementar a pro-
fundidad un concepto en un proyecto para
adelante la situación.

La otra forma de implementar esto mismo


este premio. Me parece que a veces esta- después pasar al siguiente. En mi opinión sería: generar un curso del nuevo modelo de
mos dando mucha importancia a certifica- esta es la razón principal por la que los pro- estimación, y entrenar a todos los líderes de
ciones estadounidenses con la finalidad de yectos de implementación fallan. Implemen- proyecto. Después se auditan los proyectos
incrementar nuestras exportaciones pero tal tar a profundidad sólo funciona en organiza- para evaluar quien implementó qué, y se
vez estamos menospreciando recursos muy ciones pequeñas, ya que ésta puede hacerse crea una estrategia en donde el experto en
importantes que tenemos en nuestro país. rápido en todos los proyectos, pero en una estimación salta de proyecto en proyecto
organización mayor a esto es un fracaso. asesorando a los líderes para que cada vez
El Premio Nuevo León de Calidad que se apliquen mejor el proceso de estimación.
hace disponible en todos los estados de la Por ejemplo, supongamos que implemen-
República y la norma MoProSoft, son op- tamos un modelo para estimar el costo de Como primer paso, logramos que todos en-
ciones que tenemos en nuestro país para cambios dentro de los proyectos. Usualmen- tiendan que la estimación se logra en base a
establecer márgenes de mejora continua en te lo que se hace es tomar los proyectos que definir tamaños de los productos, que entien-
nuestra industria de software. tienen la mayor cantidad de problemas con dan cómo calcular líneas de código o puntos
el crecimiento de número de requerimien- funcionales en sus proyectos. Después que
Mi experiencia es que estos modelos, aun- tos y se asigna el proyecto a la persona que entiendan como pasar de líneas funcionales a
que no todos están totalmente enfocados tiene más experiencia en estimar para que horas, y así sucesivamente.
al desarrollo de software (MoProsoft sí está haga lo necesario para cambiar la forma en
ligada directamente al software), se adap- la que se está estimando el cambio. Esta Esta estrategia ofrece las siguientes ventajas:
tan bastante bien a las ideas de manejo persona maneja la resistencia al cambio, el
de procesos, toma de decisiones en base a entendimiento de la problemática del clien- 1. Nuestro experto en estimación invierte
métricas y mejora continua que son la base te en especifico, y seguramente después de un tiempo muy parecido al anterior, pero
de todo modelo de calidad, adicionalmente algo de trabajo se logrará arreglar la situa- ahora ayudando y convenciendo más que
las normas mexicanas tienden a ser más ción con ese primer proyecto y estaremos haciendo él mismo.
amplias a diferencia de CMMI. MoProSoft listos para continuar al siguiente.
abarca no sólo el desarrollo de Software en 2. Permite que la responsabilidad de la esti-
sí, sino también temas complementarios Desafortunadamente, los demás líderes de mación recaiga en donde tienen que recaer, el
como la planeación estratégica y prácticas proyecto se sienten atacados por el éxito líder del proyecto.
de ecosistema de la organización. Creo que descrito anteriormente, y se dedican a ar-
como industria de software deberíamos in- gumentar que su proyecto es muy diferente 3. No se esta detrás de los problemas todo el
vestigar más sobre estas normas y buscar y por lo tanto estas prácticas no son aplica- tiempo. Cuando un líder sale de un proyecto y
como pueden apoyar a nuestras estrategias bles a su proyecto. pasa a otro, el otro líder está más o menos en el
de calidad. mismo nivel que estaba él en su proyecto, por
Mientras esto sucede, nuestro proyecto ini- lo que permite que hablen el mismo idioma y
Estrategias de implantación cial termina y nuestro experto en estimación que pueda aplicar lo que aprendió en su pro-
La semana pasada mientras realizaba una es reasignado como analista en un proyecto yecto anterior para mejorar el nuevo proyecto.
presentación, volvió a surgir la duda de si es dirigido por otra persona, por lo que ya no
mejor hacer implantaciones proyecto por pro- tiene el control, y tampoco tiene la habilidad A final de cuentas vamos pasando de un mo-
yecto, o si es mejor implementar prácticas in- de convencer al líder actual de cómo mane- delo reactivo a un modelo pasivo. ¿Qué nos
dividuales en toda la organización (lo que en jar la estimación. Esto hace que se pierda acerca mas a nuestro objetivo?.
métodos numéricos se le conoce como “Depth el trabajo y finalmente lo que tenemos es a
First o Breath First”). un experto constantemente asignándose a » Por Luis Cuellar

10 NOV-ENE 2009 www.sg.com.mx


www.sg.com.mx NOV-ENE 2009 11
// PRODUCTOS /* LO QUE VIENE*/

VSTS 2010
Nue va s c a pa c i d a d e s d e m o d e l a d o y t e s t i n g Mono 2.0
Ya l l e g ó s up e r c h a n g o

Microsoft dió a conocer los planes para la próxima


generación de sus herramientas y plataforma de de- Mono 2.0 por fin fue liberado. Mono es una im-
sarrollo: Visual Studio 2010 y .NET 4.0. Como parte plementación en software libre del Framework
de esta plataforma también habrá una nueva versión .NET de Microsoft. A pesar de que todavía le
de la herramienta para la colaboración de equipos de falta bastante para cubrir todo el espectro de
trabajo, Visual Studio Team System (VSTS) 2010. Las APIs de .NET, con esta versión ya se soportan
innovaciones en VSTS 2010 se enfocan principalmente los componentes de mayor relevancia y que
en mejorar las capacidades para el modelado visual y utilizan el grueso de las aplicaciones.
la administración de pruebas de software. Las nuevas
capacidades de modelado en VSTS 2010 son un compo- Entre los APIs soportados por Mono 2.0
nente central de la iniciativa de modelado de Microsoft, resaltan ADO.NET 2.0, ASP.NET 2.0, Windows.
conocida con el nombre clave “Oslo”. Forms 2.0, System.XML 2.0, System.Core
(LINQ), y System.Drawing 2.0.
La información que ha liberado Microsoft hasta el momen-
to es bastante vaga, y se espera que el panorama quede En el área del compilador, la capacidad de
más claro después de la conferencia de desarrolladores mayor importancia en esta versión es el so-
(PDC 2008) que se realizará a finales de octubre. porte completo de C# 3.0, incluyendo LINQ to
Objects, y LINQ to XML.
Más información en msdn.microsoft.com
Mono funciona en una gran variedad de plata-
formas que van desde las tradicionales como
Windows, Linux y OS X, hasta el iPhone y el
Nintendo Wii.

Más información en www.mono-project.com

Beehive
Oracle se une al Web 2.0 e mpr e s a r i a l

Durante el reciente Oracle OpenWorld, uno de los nuevos productos que recibió mayor atención fue Oracle
Beehive. Beehive es una plataforma integrada para colaboración empresarial. Esencialmente, es una plataforma
que busca integrar espacios de trabajo colaborativos, calendarios, mensajería instantánea y correo electrónico.

A pesar de que en el mercado ya existen productos empresariales con funcionalidad muy similar, tales como
Lotus Connections y Microsoft Sharepoint, Oracle argumenta que su producto brinda ventajas en cuanto a
seguridad e integración con productos de terceros. Aun así, seguramente lo que estaremos viendo es que las
empresas optarán por una u otra solución dependiendo del resto de la infraestructura que ya tengan. Aquellos
clientes que ya estén usando el middleware de Oracle, seguramente se sentirán más cómodos con Beehive
que con las opciones competidoras.

Más información en www.oracle.com/products/middleware/beehive

12 NOV-ENE 2009 www.sg.com.mx


www.sg.com.mx NOV-ENE 2009
// PRODUCTOS /*herramientas*/

Beneficios de la Automatización de Pruebas


Ahorrando Tiempo y Recursos
Por Benjamín Alonso

¿Cómo sabes que el sistema funciona? Una respuesta común a Beneficios de las pruebas automatizadas
esta pregunta es “porque el equipo de testing le echó un vistazo”. Las herramientas de automatización no van a solucionar todos tus
El problema viene al tener que determinar la extensión y profun- problemas de pruebas. Sin embargo, puedes obtener muchos bene-
didad de las pruebas realizadas. Si eres afortunado y trabajas en ficios con una implementación apropiada. Hablemos de algunos de
una empresa con buenos procesos, podrás acreditar lo probado a estos beneficios:
través de una lista de casos de prueba. Si trabajas en una empresa
de clase mundial, entonces hay una gran posibilidad de que tengas • Mejor organización de las pruebas. Cuando inicias la automatiza-
la fortuna de tener a tu disposición herramientas para la gestión y ción de tus pruebas, analizas de manera más estructurada. Exami-
automatización de pruebas. nas tu sistema como ingeniero, ya no de manera empírica. Al crear
casos de pruebas formulas preguntas tales como: ¿es repetible esta
De acuerdo con Elfriede Dustin, las herramientas de automatización prueba?, ¿con qué frecuencia necesito ejecutar esta prueba?, ¿tiene
de pruebas consolidan y mejoran la efectividad de las pruebas siem- alguna semejanza esta prueba a pruebas existentes?, ¿cómo auto-
pre y cuando se manejen las expectativas, se entiendan las herra- matizaría esta prueba?
mientas, y se seleccione una herramienta compatible con el ambien-
te de programación. Si necesitas probar un sistema no trivial que • Realización de un mayor número de pruebas. Algunos de los pro-
conste de algo más que unas cuantas pantallas y reportes, enton- blemas hallados por la automatización, tal vez no hubieran sido
ces es muy posible que por medio de pruebas manuales no logres encontrados utilizando solo pruebas manuales, debido a limitan-
realizar todas las pruebas que necesitas para verificar la calidad del tes de tiempo.
sistema. Con la ayuda de herramientas de automatización puedes
ejecutar más pruebas, lo cual se traduce en una mayor cobertura del • Mejoras en la comunicación con el equipo. Kaner, Bach, y Petti-
sistema que se está probando. chord argumentan que la automatización fortalece las pruebas al
proporcionar un sistema para recolectar y diseminar información de
Capers Jones, en su libro de estimación de costos de software, men- manera eficaz, proporcionando retroalimentación oportuna al equi-
ciona que las pruebas de funcionalidad, regresión y rendimiento po de programación.
son comúnmente apresuradas (o incluso omitidas) por presiones de
tiempo. Esto resulta en sistemas con baja calidad. ¿Alguna vez te • Estabilización temprana del código. Conforme encontremos los
has visto en la necesidad de apurar u omitir alguna de estas prue- errores más temprano, tendremos más rápido una base de código
bas? ¡Por supuesto que sí! Es una práctica común en los proyectos estable. Esto evitará retrabajo posterior ya que no estaremos cons-
de desarrollo. truyendo encima de un código con errores.

Las compañías más exitosas automatizan sus pruebas para mejorar • Habilitación de pruebas de regresión. Con un conjunto apropia-
la flexibilidad de su equipo de desarrollo. Algunas de las metas de do de pruebas, y habilitados por una herramienta de automatiza-
sus esfuerzos incluyen: ción, cada que generamos un nuevo build de nuestro sistema de
• Detectar cambios desestabilizadores en nuevas construcciones software podemos probarlo por completo. Esto es de vital impor-
del sistema. tancia, ya que de acuerdo con un estudio realizado por Capers Jo-
• Exponer defectos de regresión tan pronto como es posible. nes, en promedio el 7% de las correcciones de defectos inyectan a
• Reportar problemas rápidamente porque esto facilita su corrección. su vez un nuevo defecto.

Benjamín Ruvalcaba Alonso tiene más de 18 años de experiencia en proyectos de informática. Ha trabajado en Microsoft, GE, y otras empresas públicas y
privadas. Ha dedicado los últimos seis años al testing de diversas aplicaciones web en ambientes .Net. Puedes contactarlo en benalonso@pickyware.com

14 NOV-ENE 2009 www.sg.com.mx


“¿Alguna vez te has visto en la necesidad de
apurar u omitir alguna de estas pruebas?
¡Por supuesto que sí!”.

De hecho, Dustin argumenta que si las pruebas de regresión no es- • Vender funcionalidades en lugar de beneficios. Cuando hablamos
tuvieran automatizadas, ciertas pruebas regresivas nunca serían de testing se nos olvida mencionar cómo beneficia al cliente, pro-
ejecutadas, dejando grandes vacíos en los esfuerzos de prueba. ducto, o empresa. Tendemos a hablar de todo lo que vamos a poder
hacer sin mencionar los beneficios. No importa lo avanzada que sea
• Mayor confiabilidad en los resultados. El sistema de automa- la herramienta de automatización o ese nuevo proceso manual que
tización no se cansa, nunca tiene prisa, y mientras las pruebas o deseas implementar, si no puedes ligarlo a beneficios tangibles. Ne-
su información no cambie, deben de obtener siempre el mismo cesitas identificar que el testing, ya sea automatizado o no, sí bene-
resultado; son consistentes, confiables, y repetibles. Como seres ficia al cliente, producto o empresa.
humanos te cansas, preocupas, o simplemente apresuras en sacar
tu trabajo a tiempo. Todo esto lleva a simples errores humanos que • La solución única. A algunos de nosotros nos gusta pensar que
afectan tu capacidad de ser eficiente en pruebas rutinarias. La au- nuestra función es la más importante en la compañía. Sin embar-
tomatización de pruebas repetitivas que requieren una ejecución go, tenemos que observar nuestro trabajo como una pieza más
frecuente, te permite tiempo para integrar pruebas más comple- en el ecosistema de la empresa. Esto nos facilita analizar cómo
jas, probar nuevas funciones dentro de la aplicación y su integra- nuestra labor complementa y asiste a otras áreas. Somos más va-
ción con el resto del sistema. liosos como parte integral de la empresa que como un elemento
aislado de la misma.
• Capacidad para aplicar pruebas complicadas. Algunos tipos de
prueba son difíciles de aplicar o muy complicadas de ejecutar de
manera manual; entre esta rama podemos encontrar aquellas en
las que es necesario el acceso a la base de datos para verificar Conclusión
que la información del sistema sea correcta, o tal vez sea preciso Hoy en día, la automatización de pruebas es una tarea esen-
hacer cálculos manuales para verificar la validez de los resultados cial para proporcionar un servicio de testing adecuado. Los
arrojados por el sistema. Muchas herramientas de automatización sistemas que probamos han crecido tanto en tamaño como
proporcionan estas funcionalidades. Además, los sistemas de au- en complejidad. Necesitamos tener el tiempo de probar las
tomatización nos pueden auxiliar a introducir grandes cantidades nuevas funcionalidades de nuestros sistemas sin ignorar la
de información, configurar la versión de prueba de la base de da- funcionalidad previa. Una estrategia de automatización imple-
tos, y generar información aleatoria entre otras cosas. mentada apropiadamente nos ayudará a lograrlo junto con los
demás beneficios mencionados en este artículo.
Como No Justificar el Testing
Después de revisar los principales beneficios de la utilización de
herramientas de pruebas automatizadas, quiero compartir con uste-
des algunas recomendaciones planteadas por James Bullock acerca Referencias
de lo que debemos evitar a toda costa al justificar un esfuerzo de [ Bullock, James. “Calculating the Value of Testing”. Software Testing
testing hacia nuestros superiores. and Quality Engineering. May/June 2000 ]
[ Jones, Capers. Estimating Software Costs: Bringing Realism to
• La narrativa sin fin. Una cosa es hacerle ver a nuestros superiores Estimating. McGraw Hill, 2007. ]
que sabemos de lo que estamos hablando, y otra es perderlos en [ Dustin, Elfriede. Effective Software Testing: 50 Specific Ways to
los detalles técnicos. Lo que tus jefes quieren que les contestes es Improve Your Testing. Addison-Wesley, 2002.]
¿cuánto?, ¿cómo?, y ¿dónde?; Debes estar preparado para contestar [ Kaner, Cem; Bach, James; Pettichord, Bret. Lessons Learned in
estas preguntas en forma abreviada, concreta, y veraz. Software Testing: A Context Driven Approach. Wiley, 2001.]

www.sg.com.mx NOV-ENE 2009 15


// PRODUCTOS /*tutorial*/

Desarrollo de Aplicaciones Silverlight


Parte 2. Eventos desde XAML y Javascript
Por Guillermo Morales

Height=”100” Width=”100”
Canvas.Left=”100” Canvas.Top=”50”
Bienvenidos a esta segunda parte de nuestro tutorial sobre Stroke=”Black” StrokeThickness=”10” Fill=”Blue”/>
desarrollo de aplicaciones Silverlight.
<TextBlock
x:Name=”miTexto”
En base a lo que hicimos en la parte 1 (SG Num. 21), debería- Canvas.Left=”70” Canvas.Top=”180”
mos tener los siguientes archivos: Text=”Dame Click” FontSize=”30”/>
</Canvas>
• crearSilverlight.js Noten que tanto el TextBlock como el Rectangle, tienen una propiedad
• Default.html x:Name por medio de la cual podemos identificar a cada elemento den-
• Mixaml.xaml tro del XAML. Utilizaremos esto más adelante en el código Javascript.
• Silverlight.js
Al visualizar nuestra página web, obtendremos lo que se ve en la
siguiente figura.
Respondiendo al click del mouse
Vamos a crear un elemento que pueda responder a eventos del mouse,
para comenzar a darle más interacción a nuestros sitios Silverlight.

La forma y el concepto son muy sencillos: en el XAML se declaran los


eventos que queremos estar observando, y se indica la función de Ja-
vascript que debe dispararse con cada evento. Dichas funciones de
Javascript las podemos definir en el archivo HTML o en un archivo .js.

Veamos como se implementa esto en código. Primero, modificare-


mos nuestro archivo XAML para que quede como el listado 1.

Listado 1. mixaml.xaml
<Canvas Width=”300” Height=”300”
xmlns=”http://schemas.microsoft.com/client/2007”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”>
Insertando código javascript
El siguiente paso es definir las funciones de Javascript que respon-
<Canvas.Background> dan a los eventos que se disparan desde el XAML. Para esto, inser-
<LinearGradientBrush EndPoint=”0.5,1” StartPoint=”0.5,0”> taremos en nuestra página web el código Javascript del listado 2.
<GradientStop Color=”#FFDCEF1B” Offset=”0”/> Este código lo pueden insertar dentro del mismo bloque de código
<GradientStop Color=”#FF801A1A” Offset=”1”/>
<script> donde se encuentra la obtención de la referencia al plugin de
</LinearGradientBrush>
</Canvas.Background> Silverlight que ya se tiene.

<Rectangle Listado 2. Funciones en Javascript


x:Name=”r1” function r1Entrar(sender, args) {
MouseEnter=”r1Entrar” MouseLeave=”r1Salir” sender.stroke = “red”;
MouseLeftButtonDown=”r1Abajo” sender.findName(“miTexto”).Text = “Rojo”;
MouseLeftButtonUp=”r1Arriba” }

Guillermo Morales colabora actualmente en InterSoftware, empresa dedicada a la capacitación especializada en desarrollo de software. Con un perfil técnico,
se ha desenvuelto en varias áreas del proceso de desarrollo de aplicaciones, desde la implementación, hasta la administración de proyectos. Es cofundador de
la comunidad de desarrollo en México www.developersdotnet.com en donde frecuentemente se reúne con otros expertos de desarrollo de aplicaciones para la
difusión de nuevas tecnologías.

16 NOV-ENE 2009 www.sg.com.mx


“Crearemos un elemento que pueda
responder a eventos del mouse, para
comenzar a darle más interacción a
nuestros sitios Silverlight”.

function r1Salir(sender, args) {


sender.stroke = “black”; • Mediante el método findName localizamos a elementos específicos
sender.findName(“miTexto”).Text = “Negro”; dentro del XAML, en este caso, el objeto que estamos localizando y
} manipulando es el Rectángulo al cual nombramos “miTexto”.
function r1Abajo(sender, args) {
sender.stroke = “yellow”;
sender.findName(“miTexto”).Text = “Diste Click”;
Con esto tenemos una página cuyos elementos XAML disparan even-
} tos en javascript.
function r1Arriba(sender, args) {
sender.stroke = “Green”;
sender.findName(“miTexto”).Text = “Verde”;
}
Conclusión
Ya tenemos una página cuyos elementos XAML responden al com-
En este código podemos observar dos cosas: portamiento del mouse y disparan funciones javascript.En futu-
• Los eventos disparados desde el XAML, reciben dos parámetros: ros artículos incluiremos una animación, un video y más eventos
para atraparlos con el mouse. Suerte, y hasta la próxima.
- sender: Corresponde al objeto que inicia la acción
- args: Corresponde a información relacionada al evento disparado

www.sg.com.mx NOV-ENE 2009


Encuesta de Salarios 2008 Por Pedro Galván

Ha llegado ese momento del año en que echamos un vistazo a la compensación


que recibimos por nuestro trabajo y evaluamos qué tan justa es la compensación
que recibimos, y cuales son las habilidades o características que debemos desa-
rrollar para aspirar a un mejor salario. Sin más preámbulo, compartimos con
ustedes los resultados de la Encuesta de Salarios SG 2008.

Acerca de la fuente de información


La información que se muestra aquí es resultado de una encuesta
abierta contestada por 2,162 personas a través del sitio web de
SG durante el mes de octubre del 2008.

Salarios a primera vista


Primero, lo primero. Y eso es averiguar como están actualmente los sala-
rios de profesionistas de tecnologías de información en México.

La tabla 1 muestra el tabulador de salarios por rangos, indicando el por-


centaje de personas que caen en cada uno.

Rango de salario mensual

Menos de 4 mil 66 3.15%


4 a 6 mil 103 4.92%
7 a 10 mil 296 14.14%
11 a 15 mil 354 16.91%
16 a 20 mil 351 16.77%
21 a 25 mil 278 13.28%
26 a 30 mil 214 10.22%
31 a 40 mil 199 9.51%
41 a 50 mil 97 4.63%
51 a 60 mil 48 2.29%
61 a 80 mil 44 2.10%
Más de 80 mil 43 2.05%

Tabla 1. Tabuladores de salario mensual

18 NOV-ENE 2009 www.sg.com.mx


El promedio ponderado de estos valores nos centaje de los encuestados que recibe cada Como es costumbre, varios colegas inter-
indica que el salario promedio de un profe- una. Estos valores son prácticamente igua- nacionales (o expatriados) nos hicieron
sionista de TI en México es de $22,570 pesos les a los de hace un año. favor de contestar la encuesta. Mostramos
mensuales. Este valor significa un aumento el listado de aquellos países de los que ob-
de 13% comparado con el valor obtenido en Prestación % tuvimos un mínimo de 10 respuestas. Otros
el 2007, de $19,946. Habría que comparar países fueron descartados por tener una
esto con la inflación real en este periodo de muestra de respuestas demasiado pequeña
Gastos médicos mayores 44.7%
tiempo para determinar si hubo un aumen- como para ser confiable.
Horario flexible 36.5%
to real en el salario o si simplemente fue un
ajuste inflacionario. Préstamos 33.1%
Estado Salario %
Bonos por desempeño 29.5%
Remuneración adicional Gastos médicos menores 22.2%
Teléfono celular 19.2% DF 28,899 35.2%
Aunque el principal componente de la com-
Trabajo desde casa 13.5% NL 25,885 8.3%
pensación laboral es el salario, otro elemen-
Ayuda para educación 12.1% Edomex 22,232 9.7%
to muy importante son las remuneraciones
Automóvil 7.2% Querétaro 21,031 4.5%
adicionales. La tabla 2 es un tabulador del
Ayuda familiar 6.5% Jalisco 19,842 8.7%
valor al que ascienden las prestaciones re-
cibidas anualmente, tales como aguinaldo, Departamento 6.1%
bonos, reparto de utilidades, etc. Acciones (stock options) 4.5% Tabla 4. Estados con salarios más altos

Rango de compensación extra anual Tabla 3. Prestaciones recibidas

De acuerdo a la región
Ninguna 21%
El DF recuperó su liderazgo en este año
Menos de 10 mil 20%
como el estado de la República con los mejo-
De 10 a 25 mil 27% res sueldos para profesionistas de software,
De 25 a 50 mil 16% dejando a Nuevo León en segundo lugar y
De 50 a 100 mil 9% al Estado de México en tercero. Como es de
Más de 100 mil 6% esperarse, estos estados son también los
que emplean a un mayor porcentaje de los
Tabla 2. Tabulador de compensación extra anual profesionistas de software en nuestro país.

Prestaciones En la no muy honrosa lista de los estados


Como elemento final de la compensación con los sueldos más bajos tenemos a Tlax-
tenemos a las prestaciones. La tabla 3 indi- cala, Colima, Chiapas, Oaxaca y Veracruz.
ca las prestaciones más comunes, y el por-

www.sg.com.mx NOV-ENE 2009 19


los. En países desarrollados, estas empresas son las que ofrecen los salarios más altos, ya
que son las que tienen mayor necesidad de talento e innovación. Sin embargo, en nuestro
país parece ser todo lo contrario.

En la tabla 8 mostramos un cruce entre el tipo de organización y el esquema de pago maneja-


do (nómina, honorarios o externo subcontratado). Como era de esperarse, las áreas usuarias
Estado Salario % son las que tienen un porcentaje mayor de personas en esquema de nómina, con casi el 85%
de su personal. En cambio, las empresas proveedoras de servicios tienen solamente un 48%
Tlaxcala 9,667 0.7% en nómina y el resto están por honorarios o contratados como independientes.
Colima 11,273 0.5%
Chiapas 11,632 0.9% Tipo Salario Prestaciones %
Oaxaca 11,708 0.6%
Veracruz 12,127 2.9% Proveedor de servicios 25,122.48 1,680.30 28.5%
Area de sistemas 23,102.14 2,600.71 44.7%
Distribuidor de producto de TI 21,986.11 2,708.33 1.7%
Tabla 5. Estados con salarios más bajos
Otra organización 20,314.01 2,155.80 9.9%
Desarrollo de productos
País Salario empaquetados 19,906.25 1,625.24 8.4%
Educación/Capacitación 15,150.35 1,739.51 6.8%
USA 64,588
España 41,000 Tabla 7. Salarios y prestaciones por tipo de organización
Perú 20,938
Chile 20,333
Tipo Nómina Honorarios Externo
Colombia 12,600
Argentina 9,667
Proveedor de servicios 48.0% 40.0% 12.0%
Área usuaria 84.5% 13.1% 2.4%
Tabla 6. Resultados de otros países
Distribuidor/Canal 67.7% 29.4% 2.9%
Tipo de organización ISV 70.4% 19.5% 10.1%
La tabla 7 divide las respuestas obtenidas a Educación 80.8% 16.1% 3.1%
partir del tipo de organización donde laboran.
El patrón es el mismo que hemos encontrado
en años anteriores. Las empresas proveedo- Tabla 8. Relación entre tipo de organización y esquema de pago
ras de servicios de TI son las que ofrecen los
mejores salarios (aunque ofrecen prestacio- Género
nes muy bajas, mientras que las áreas usua- Como podemos ver en la tabla 9, la participación del sexo femenino en nuestra profesión
rios son las que ofrecen la compensación to- sigue siendo muy baja, y con un salario significativamente menor. La diferencia de salario es
tal (salario mas prestaciones) más alta. del 33%, la cual es prácticamente igual que la estimada el año anterior (33%).

Aunque la mayoría de los profesionistas de Genero Salario %


TI todavía laboran en áreas usuarias, poco
a poco va aumentando el porcentaje que la-
bora en empresas proveedoras. Esto es una Femenino 17,513.25 14.4%
consecuencia natural de la tercerización de Masculino 23,423.23 85.6%
los servicios de TI.
Tabla 9. Salario por género
Un punto que llama la atención sobre los re-
sultados de este año es el salario promedio Edad y Experiencia
en los ISV. Estas son las empresas que se Tal como lo hemos visto en las encuestas de años anteriores, el salario de un profesionista
dedican a desarrollar productos de software de TI sube paulatinamente de acuerdo a su edad, y llega a un máximo entre las personas que
propios para posteriormente comercializar- tienen 50 a 59 años. Posteriormente baja drásticamente después de los 60.

20 NOV-ENE 2009 www.sg.com.mx


Como es de esperarse, el comportamiento Función Salario %
respecto a los años de experiencia es simi-
lar, tal como se puede apreciar en la tabla 11.
Alta Dirección 45,263.9 3.4%
Analizando esta tabla, vemos que le hacen
falta más escalas después de los 10 años de Dirección de sistemas 41,892.9 4.7%
experiencia, para poder analizar a este seg- Ventas 30,902.4 2.0%
mento en mayor detalle. Haremos ese ajuste Arquitecto 28,754.5 5.4%
para la próxima encuesta de salarios. Project Manager 27,498.4 14.9%
Consultor 23,553.9 8.0%
Seguridad 23,404.8 1.0%
Estado Salario %
Administrador de sistemas 21,450.8 6.3%
TI en General 21,351.4 6.6%
18 a 24 11,410 14.6% DBA 17,800.0 2.6%
25 a 29 17,378 31.9% Aseguramiento de Calidad 17,449.4 3.8%
30 a 39 25,563 40.5% Desarrollador 17,256.9 31.2%
40 a 49 37,166 10.4% Soporte 14,884.6 3.7%
50 a 59 46,276 2.3% Redes 13,939.4 1.6%
60 o mas 27,143 0.3% Docente 13,710.5 2.7%
Webmaster 12,913.0 2.2%
Tabla 10. Salarios de acuerdo a la edad
Tabla 12. Salarios por función
Estado Salario %

Menos de un año 10,328 6.4%


Escolaridad
El máximo grado de estudios completado brinda un fiel reflejo de la compensación a la que
1a3 12,746 20.8%
se puede aspirar. En esta ocasión, nos llama la atención el hecho de que la compensación de
3a5 17,706 17.1%
quienes tienen maestría quedó por debajo de quienes solamente tienen otro tipo de postgrado
5 a 10 23,304 25.0%
(como un diplomado) que requiere menos dedicación. La explicación pudiera estar en que este
Mas de 10 33,871 30.7%
tipo de postgrados normalmente están más apegados a las actividades reales que se realizan
en el trabajo, y por lo tanto es más fácil aplicar los conocimientos adquiridos. Adicionalmente,
Tabla 11. Salarios de acuerdo a la experiencia al requerir menos esfuerzo, permiten que las personas no se tengan que despegar tanto de su
trabajo y por lo tanto no afectan tanto su ritmo de crecimiento profesional.

De acuerdo al tipo de trabajo Escolaridad Salario %


Como sabemos, existe una gran cantidad
de perfiles y tipos de trabajo en nuestra Doctorado 40,523 1.1%
profesión. Obviamente, unos son mejor Postgrado 31,201 6.1%
pagados que otros. Como es de esperarse,
Maestria 29,827 16.2%
los directores son los mejor pagados, pero
Universidad titulado 21,853 46.3%
veamos como se compara el sueldo para el
Universidad sin titular 17,552 27.5%
resto de las funciones.
Bachillerato 16,848 2.8%

Hay que resaltar que en comparación con los


resultados del año anterior, el único perfil Tabla 13. Salario por grado de estudios terminado
cuyo salario promedio no aumentó es el de
webmaster. Y si tomamos en cuenta la infla-
ción, nos daremos cuenta que la compensa- Conocimientos y habilidades
ción real disminuyó. Tal parece que conforme Los profesionistas de software nos enorgullecemos principalmente por nuestros conocimientos
las herramientas han hecho más fácil la insta- técnicos, y sabemos que estos tienen un gran impacto en el salario al que podemos aspirar.
lación y administración de sitios web, hay más
personas que pueden hacer esta actividad y En términos de estos conocimientos, el patrón se mantiene respecto a años anteriores. Co-
por lo tanto este perfil se ha devaluado. bol y Mainframe siguen siendo el lenguaje y plataforma mejor pagados.

www.sg.com.mx NOV-ENE 2009 21


Lenguaje Salario % Base de Datos Salario % Certificaciones
La mejor forma de demostrar nuestros co-
Cobol 30,909 3.9% DB2 29,251 13.5% nocimientos sobre alguna práctica o tec-
.Net 27,827 20.7% Informix 27,965 8.8% nología específica es una certificación. La
JEE 26,577 26.7% Sybase 27,342 6.5% certificación reina sigue siendo la de Project
Flex 26,000 3.2% Oracle 26,217 39.3% Management Professional (PMP) del PMI. Por
Perl 24,719 4.7% SQL Server 23,140 59.8% otro lado, la gran demanda de consultores
JME 23,928 4.3% PostgreSQL 20,656 9.8% de SAP que ha habido en los últimos años ha
JSE 23,639 32.5% MySQL 20,025 38.9% provocado que esta certificación aumente su
ASP 23,256 25.5% Firebird 19,015 3.2% valor significativamente, ya que de tener un
C 23,039 17.8% sueldo promedio hace un año de poco más de
VB 20,432 34.1% Tabla 14c. Bases de datos 30 mil pesos, este año supera los 40 mil. Otra
Delphi 19,807 7.7% certificación que también se está codiciando
Php 18,530 23.6% Aplicación Salario % bastante es la de Microsoft Systems Engineer,
cuyo sueldo promedio aumentó más de 10 mil
Tabla 14a. Lenguajes de programación pesos respecto al año pasado.
BPM 35,922 7.9%
BI 28,978 24.6%
Plataforma Salario % Certificación Salario %
CRM 28,734 14.5%
ERP 24,483 52.3% PMP 43,215 5.5%
Mainframe 33,454 4.7% SAP 40,826 2.1%
Unix 28,607 27.8% Tabla 14d. Aplicaciones empresariales Microsoft - Systems
AS400 27,898 5.6% Engineer 40,794 1.6%
Windows Mobile 25,907 10.3% Seguridad 38,000 1.6%
Otras habilidades Salario %
Windows 22,423 90.0% Sun - Solaris 37,048 1.0%
Mac 22,212 7.2% OMG - UML 35,929 1.3%
Linux 21,777 36.0% EDI 29,022 3.3% Oracle 35,577 3.1%
DOS 21,300 12.8% PM 28,045 51.0% IBM - DB2 35,405 1.0%
Procesos 26,431 35.7% Calidad - SQA 35,023 2.1%
Tabla 14b. Plataformas Test 26,294 24.6% IBM - Rational 34,229 1.2%
UML 22,970 44.9% Microsoft - DBA 31,000 1.4%
Redes 20,234 27.4% Ingeniería de
Diseño Gráfico 18,150 19.1% software (SEI) 29,429 3.7%
Microsoft - Solution
Tabla 14e. Otras habilidades
Developer 28,039 3.1%
Sun - Java 27,981 7.7%
Microsoft -
Professional 26,418 7.0%
Linux 25,900 2.9%

Tabla 15f. Salario por Certificaciones


Conclusión
Los salarios de los profesionistas de TI aumentaron alrededor de un 13% del 2007 al 2008.
Las posiciones de mayor complejidad administrativa tales como la alta dirección, la gerencia
de proyectos y las ventas son las que acaparan los mayores sueldos. La excepción es el perfil
de arquitecto de sistemas, el cual es netamente técnico y alcanza a manejar un salario mayor
que el de un gerente de proyectos.

En el caso de los conocimientos técnicos y certificaciones, Cobol sobre Mainframe se man-


tiene como la que es mejor compensada, debido a la escasez de personal. .Net y Java EE
se mantienen como opciones bien compensadas ya que la cantidad de personal calificado
disponible no es suficiente para la demanda del mercado.

Para el 2009, el panorama económico actual nos hace pensar que los salarios no recibirán un
ajuste más allá de la inflación. La recomendación es mantenerse en su empleo actual y apro-
vechar el año para desarrollar sus habilidades y conocimientos, con miras a que las cosas
mejoren hacia final de año. Hay que ser cautelosos pero tampoco es para alarmarse, ya que
la demanda existente de profesionistas de TI asegura que cualquier persona con dominio de
inglés y capacidad para desarrollar software tenga un empleo estable.

28
22 NOV-ENE 2009 www.sg.com.mx
Las Mejores Empresas para Trabajar
Prácticas de RH que llevan al Éxito
Por Emmanuel Olvera

Recuerdo perfectamente cuando en un congreso internacional de portantes en tiempos de inseguridad económica. Y, precisamente,
Recursos Humanos, uno de los ponentes preguntó cuantos directo- las empresas más admiradas son más exitosas en mantener altos ni-
res generales había presentes entre la audiencia, y menos de cinco veles de lealtad y motivación en tiempos difíciles. Una de las claves
manos se levantaron entre cientos de participantes. ¿No sería im- es asegurar que las oportunidades de ascenso y crecimiento perso-
portante que los directores generales conocieran las mejores prácti- nal estén disponibles para todos, sin importar cuál sea el contexto
cas para la gestión de recursos humanos? ¿No les interesará conocer económico.
el impacto que tienen estas prácticas en la rentabilidad del negocio?
Las Mejores en México
En un estudio realizado por Hay Group entre empresas del Fortune Hace unos meses, Great Place To Work Institute publicó los resulta-
500 se detectaron las 7 mejores prácticas comunes entre estas em- dos de su estudio para determinar cuales eran las mejores empresas
presas, y resultó que 3 de estas prácticas están directamente rela- para trabajar en México.
cionadas con el factor humano.
En el área de Tecnologías de Información y Telecomunicaciones, la
GE, Toyota, Berkshire Hathaway, Nokia, y BMW son algunas de las or- lista de las mejores empresas en México para trabajar en el 2008 de
ganizaciones que encabezan este ranking, y son de las empresas más acuerdo con Great Place To Work es la siguiente:
admiradas del planeta. Entre 2004 y 2007, por ejemplo, brindaron a
sus accionistas una rentabilidad media de 19,6 por ciento, casi el tri- 1. Compusoluciones
ple que el 7,1 por ciento del ranking de Standard & Poor’s para el mis- 2. IBM
mo período. ¿Qué han hecho para llegar (y mantenerse) en la cima? 3. Nokia   
¿Cuáles son los factores que explican el desempeño sobresaliente? 4. Compac
5. EADS   
A continuación doy una breve descripción de las prácticas de RH co- 6. Everis   
munes entre estas organizaciones: 7. Ingram Micro   
8. Microsoft   
1. El éxito a través de las personas. Probablemente, el factor más 9. NCR   
importante que distingue a estas empresas es un enfoque para lo- 10. Nextel   
grar el éxito a través de la gente. Los líderes de estas organizaciones 11. Perot System   
dedican el 30 por ciento de su tiempo a desarrollar talento y entre- 12. Pink Elephant   
nar al personal. Estas compañías son más proclives a implementar 13. Progress Software   
estrategias y métricas relacionadas con el cuidado del capital hu- 14. Sabre   
mano. Suelen tener planes de sucesión bien definidos y contratar al 15. Telefónica Movistar
CEO dentro de la organización.
Creo que hay que reconocer y aprender del esfuerzo que estas em-
Como expresó Jack Welch, ex CEO de GE: “Mi trabajo principal era presas hacen al interior y exterior de sus organizaciones, al crear
desarrollar talento. Era un jardinero que proveía agua y otros nu- un ambiente óptimo donde los colaboradores se pueden sentir re-
trientes a nuestras mejores 750 personas. Por supuesto, también conocidos, valorados, recompensados para desarrollar al máximo
tuve que eliminar algunas malas hierbas”. su potencial humano y profesional. Dichas empresas desarrollan
estrategias que van más allá de retener y desarrollar a su personal.
2. Fuerte cultura organizacional. La cultura organizacional repre- Adicionalmente cuentan con el apoyo y compromiso por parte de la
senta, en general, la forma en que se hacen las cosas y los valo- dirección o presidencia de la empresa junto con el área de RH para
res que guían la conducta de los miembros de la compañía. En las crear este tipo de cultura organizacional con enfoque centrado en el
empresas más admiradas, los líderes suelen compartir una visión colaborador.
común sobre la cultura actual y cómo debería ser en el futuro. Esta
cultura tiende a promover la iniciativa individual y el trabajo en Referencias
equipo, impulsando la innovación y la lealtad de los empleados. [ greatplacetowork.com.mx ]
[ materiabiz.com ]
3. Profundo compromiso del empleado. El entusiasmo por el trabajo
y la alineación con el éxito organizacional son particularmente im-

Emmanuel Olvera Avendaño es responsable del área de Reclutamiento y Selección en Resource IT de México. Ha colaborado por más de 4 años en el área
de Recursos Humanos en varias empresas de Tecnologías de la Información en México. Es egresado de la Maestría en Desarrollo Humano por la Universidad de
Celaya. http://eolvera.blogspot.com

www.sg.com.mx NOV-ENE 2009 23


// ENTREVISTA

Tom DeMarco es uno de los decanos de nuestra profesión. Fue reconocido en 1986 con el premio Warnier por su
“contribución vitalicia al campo de la computación”, y en 1999 con el premio Stevens por su “contribución a los
métodos de desarrollo de software”. Es autor de algunos de los libros más reconocidos en la gestión de proyectos
de software, tales como “Peopleware”, “The Deadline”, y “Waltzing with Bears”.

Actualmente, Tom es socio distinguido en Cutter Consortium. Se dedica a dar consultoría estratégica en TI, y rea-
liza actividades de investigación en el litigio de proyectos. Tom estuvo en México durante el Cutter Summit en el
mes de octubre, y tuvimos oportunidad de platicar con él.

24 NOV-ENE 2009 www.sg.com.mx


¿Qué haces en el litigio de proyectos? que el aspecto sociológico de los proyectos seable, pero no es lo más importante. La ob-
La litigación se da cuando fracasa un proyec- es igual o más importante que el tecnológico. sesión de poder predecir efectivamente nos
to subcontratado. Entonces, se trae a un ter- obliga a adoptar estrategias de mayor con-
cero (como yo) para investigar qué salió mal La formación de equipos de personas en nues- trol, lo cual se traduce en menor velocidad.
en el proyecto, y si las fallas corresponden tra industria es algo único. La noción de tener Esta presión se da principalmente cuando el
al cliente o al proveedor. Esto puede parecer a 20 o 30 personas realizando tareas intelec- valor de lo que construimos es marginal res-
poco atractivo, pero para mi es fascinante tuales en conjunto –donde nadie es dueño de pecto a su costo. Si voy a construir un siste-
porque me permite ser un “arqueólogo” todo sino que cada quien es dueño de una ma que está presupuestado en un millón de
de los proyectos. pequeña parte– es algo que no tiene muchos dólares y va a traer un millón y medio de ga-
paralelos en el mundo antes de nosotros, y nancias, entonces debo tener mucho cuidado
¿Consideras que la práctica de desarrollo que sirve de guía en cuanto a la forma de tra- porque el proyecto puede terminar costando
de software realmente ha evolucionado en bajar en otras industrias hacia el futuro. más que su ganancia. Pero si voy a desarro-
los últimos 20 años? llar un proyecto que va a costar un millón de
Me extraña esta pregunta. Yo creo que he- ¿Podrías dar un ejemplo de este impacto en dólares y va a traer 200 millones de ganan-
mos transformado el mundo. Gracias a las TI, otras industrias? cia, entonces no importa si termina costando
el mundo hoy es completamente diferente a Por ejemplo, uno de mis clientes es Pixar, más de lo planeado. ¿Alguien se acuerda de
lo que era hace 20 años. Lo hemos converti- quienes hacen las películas de animación. si Photoshop se terminó a tiempo? No, lo que
do en un mundo donde los bits ya son más Si analizamos la forma en la que se desa- importa es que cambió al mundo.
importantes que los átomos. No hubiéramos rrolla una de sus películas, y un proyecto de
podido lograrlo sin hacer las cosas bien. software, encontramos una gran cantidad de Ante esto, la pregunta que hago a los lecto-
analogías. Tienen los mismos elementos y pa- res de SG es ¿Por qué están construyendo
Tal vez puedas voltear a ver las prácticas de trones: la formación de equipos intelectuales sistemas cuyo valor es tan cercano a su cos-
la industria y pensar: “eso es simplemente con habilidades diversas y complementarias, to? Mi recomendación es que digan no a es-
lo que Yourdon o Dijkstra plantearon hace la planeación de actividades, el diseño, la im- tos proyectos y busquen aquellos cuyo valor
30 años, no hay un avance”. Para mí el avan- plementación, la gestión de la configuración sea al menos 10 veces su costo.
ce es que hemos tomado eso y lo hemos lle- de los artefactos. Este es un ejemplo de cómo
vado de los laboratorios a la industria, a una la evolución que se ha dado en la forma en ¿Qué tendencias de la industria llaman tu
industria que ha cambiado al mundo. que trabajamos en la industria de TI, se está atención actualmente?
propagando a otros campos. Una de las tendencias que estoy vigilando y
¿Entonces por qué hay un índice tan alto de que creo que tendrá un gran impacto en la
fracaso en proyectos de TI? Considerando la triada de “herramientas, industria es la de las tiendas de aplicaciones,
Las personas que promueven los índices de personas y procesos”, ¿cual nos hace falta como la Apple App Store. Creo que este con-
fracaso en los proyectos son reporteros tratan- trabajar más? cepto de tener un mercado en línea donde
do de vender una historia, y es difícil vender Cuando mencionas “herramientas, procesos los usuarios puedan adquirir aplicaciones
una historia con buenas noticias. Yo soy un y personas” implicas que hay una especie de por unos cuantos dólares es algo que no
ingeniero, y para nosotros el fracaso es algo balance, pero en realidad no lo hay. El proce- debemos perder de vista. Lo que esto hace
sobre lo que se construye. Es algo necesario so y las herramientas son elementos menores es habilitar a legiones de desarrolladores de
para poder hacer algo grandioso. Por supues- de un proyecto. Los procesos son el aspecto software independientes para que puedan
to que hay proyectos que fracasan, y yo creo más fácil de ver y representar, y por lo tanto obtener dinero por sus servicios directamen-
que continuamente aprendemos de ellos. tendemos a exagerar su importancia. Sin em- te del mercado, sin intermediarios. Es cierto
bargo, su importancia es mucho menor que que Apple (o las otras empresas que coor-
¿Cómo ha cambiado el rol de los profesio- la de aspectos humanos tales como el desa- dinan tiendas de este tipo) son una especie
nistas de software en este tiempo? rrollo de talento o la formación de equipos. de intermediario, pero su interés principal es
Los roles técnicos han evolucionado sustan- facilitar la transacción, más por el efecto que
cialmente en cuanto a que se han especiali- ¿Cual es la habilidad más importante que esto tendrá en la venta de su hardware, que
zado. Hace 30 años, tanto los compiladores, debe tener un desarrollador de software? por la comisión que puedan llevarse.
como los sistemas operativos, y aplicacio- Precisamente la habilidad de desarrollar
nes de negocio eran construidos usando las nuevas habilidades. Nuestro campo cambia Actualmente, las ventas del Apple App
mismas técnicas y lenguajes. Hoy en día, continuamente y no podemos estancarnos Store exceden el millón de dólares diarios.
puedes conocer a otro profesionista de soft- en un solo método ni tecnología. Esto aplica Apple se lleva una comisión del 30%, pero
ware y darte cuenta de que no tienes nada no solo a las personas, sino también a las aun así estamos hablando de 700 mil dóla-
de que platicar con él debido a que hacen organizaciones. res diarios que de pronto le están llegando
cosas completamente diferentes. a la comunidad de desarrolladores de soft-
¿Qué tan importante es que un proyecto ware. Y esto es solo el principio. Estamos
Por otro lado, creo que la comunidad de ge- salga en costo y tiempo? hablando de algo que puede cambiar la
rentes de proyecto también ha madurado bas- La capacidad de predecir efectivamente el forma en la que se desarrolle y mercadee el
tante. Creo que todos hemos comprendido costo y tiempo de un proyecto es algo de- software hacia el futuro.

www.sg.com.mx NOV-ENE 2009 25


El Nuevo Esquema de Entrega de Servicios de TI
Por Pedro Galván

30
26 NOV-ENE 2009 www.sg.com.mx
“Cómputo en la nube” (cloud computing) es el término que mayor
atención genera actualmente en la industria de Tecnologías de Información.
Descrito de forma sencilla, el cómputo en la nube permite a los usuarios acceder a
través del Internet a un fondo de recursos de cómputo virtualmente ilimitado. A dife-
rencia del esquema tradicional de TI, los usuarios de la nube tienen poca visibilidad
y control de la infraestructura subyacente, y solo interactuan con la nube a través de
los APIs proporcionados por los proveedores de la nube. Lo más importante de este
esquema es que permite a los usuarios adquirir recursos de cómputo dinámicamente
en un esquema de autoservicio, y solamente pagar lo que utilizan, tal como sucede
con servicios públicos como la energía eléctrica, o el agua.

Una definición más formal ¿Qué servicios hay en la nube?


Gartner define el cómputo en la nube como “un estilo de cómputo Actualmente, los servicios más comunes que se puede adquirir a
donde se entregan como servicio capacidades de TI escalables ma- través de la nube son:
sivamente, a clientes externos a través de tecnologías de Internet”.
Los detalles de traducción hacen que la redacción de esta definición • Almacenamiento de datos. Por ejemplo Amazon Simple Storage
no sea muy clara, así que detengámonos a analizar esta definición. Services en el caso de las empresas, o Windows Live Skydrive en el
caso de personas.
El concepto fundamental es que se basa en la entrega de servicios;
es decir, resultados a diferencia de componentes o productos. La • Capacidad de cómputo para “rentar” ciclos de CPU sin necesidad
implementación no importa siempre y cuando los resultados se pue- de comprar servidores. Tal vez el servicio más conocido es el Elastic
dan definir y medir en términos de un acuerdo de servicio. Este pa- Compute Cloud (EC2) de Amazon.
radigma implica el pago basado en el uso, no en los activos físicos.
El costo puede ser pagado por completo por el cliente, o subsidiado • Servicios aplicativos, a través del esquema SaaS (software as
(por ejemplo, a través de publicidad). a service). Uno de los proveedores pioneros de este esquema es
salesforce.com, que ofrece servicios de CRM sin que los usuarios
El segundo concepto importante de esta definición es el de la esca- tengan que comprar software; simplemente acceden a la aplicación
labilidad masiva. Las economías de escala reducen el costo de los desde su navegador por medio de Internet.
servicios. La escalabilidad también implica flexibilidad, y barreras de
entrada bajas para los clientes. Estos ejemplos representan apenas el inicio, y en los próximos me-
ses seremos testigos de cómo aumentan y evolucionan para entre-
¿Qué efecto tiene esto? gar servicios complejos a toda clase de negocios y personas.
Para los proveedores de servicios de TI, cloud computing significa la
posibilidad de proveer servicios especializados de TI, de forma in-
dustrializada. Es decir, que dichos servicios no tengan que construir- Referencias:
se de forma individualizada para un cliente específico. Por otro lado, [ Autores varios. Cloud Computing: Defining and Describing an
para los usuarios de servicios de TI, significa que pueden enfocarse Emerging Phenomenon. Gartner Research. Junio 2008. ]
en aprovechar dichos servicios sin tener que preocuparse por cómo [ Kumar, Sushil. Oracle Database Backup in the Cloud. Oracle
implementarlos y mantenerlos. Whitepaper, Septiembre 2008. ]

www.sg.com.mx NOV-ENE 2009 27


La Nueva Frontera
Por Pablo Resendiz

El estado de la nube su correo, agenda y procesador de textos en un estado


Cloud Computing es un término que se ha adueñado permanente, evitando así, estar lejos de él o encontrar-
de diversos ámbitos del mundo de las TI. La definición se con una computadora apagada. De entre estas apli-
de este término era, al principio una práctica donde se caciones la que experimenta un alto aumento es la de
utilizaban recursos de varias máquinas para crear una almacenamiento en línea.
“supercomputadora virtual”. Fue utilizado principal-
mente para proyectos cooperativos que requerían de Pero la evolución que marcará la tendencia más fuerte es
una gran cantidad de poder de procesamiento, con un la del mercado corporativo. Es cierto que el Cloud Com-
presupuesto limitado. De esta manera, se reunían com- puting nos ha demostrado su vulnerabilidad en un par
putadoras en línea, descargando un programa cliente de ocasiones (servicios de correo, agenda y documentos
que permitía utilizar una parte del poder de procesa- compartidos inaccesibles por horas y a veces días), sin
miento de la computadora inscrita y con todas ellas, ar- embargo, la tecnología seguirá avanzando lo suficiente
mar una supercomputadora virtual. Actualmente, “Cloud como para que sea confiable en un esquema de imple-
Computing” es la condensación de las actividades del mentación corporativo similar al que tuvo en su momento
usuario en línea, haciendo que lo único esencial para el propio correo electrónico empresarial. Con esta evolu-
realizar esas tareas sea una computadora, acceso a In- ción, las empresas comenzarán a tener los datos más allá
ternet y un navegador. Hemos dado el salto gigantesco de sus muros de protección y gozarán de costos menores,
que eso significa, en términos de estar anclados, en el funciones de acuerdo a sus necesidades, y soporte para
siglo pasado, a las máquinas de casa u oficina, enfren- una colaboración sencilla, y sobre todo segura.
tando una realidad de la que apenas alcanzamos a uti-
lizar una pequeña parte de su potencial: múltiples dis- Poco a poco, los centros de datos corporativos estarán
positivos adaptados a un uso particular, unidos a una fuera de las empresas. Las únicas que seguirán con esta
gran nube de dispositivos de otros tipos, todos ellos ac- tendencia serán las que por su tamaño, tengan que re-
cediendo a la misma información con idéntica facilidad currir a un data center propio, su nube particular.
y coherencia. Estas actividades pueden ser el envío de
correos electrónicos, el compartir documentos en línea El software, pieza clave de la nube
para su edición y el respaldo de información. Actualmente, la guerra de sistemas operativos es el
precedente de la conjunción de aplicaciones que experi-
La nube perfecta mentaremos en la plataforma de la nube. El sistema ope-
Hoy en día, existen empresas enfocadas a proporcionar rativo deberá responder a tres exigencias: Seguridad,
todo tipo de recursos para satisfacer cualquier aplica- Estabilidad y Competencia. Sea cual sea la plataforma
ción que se les pida, utilizando un gran poder de proce- (Windows, MacOS, Linux), deberá tener en cuenta que
samiento y almacenamiento disponibles, lo que permi- los usuarios requieren sistemas amigables con el usua-
te que el usuario tenga acceso a un número de recursos rio, que utilicen los recursos de las computadoras de ma-
virtualmente ilimitados para tareas específicas. nera óptima, y que no representen un problema de confi-
guración, compatibilidades o restricciones excesivas.
La nube será sin duda, la nueva frontera. Y ésta se ex-
tenderá en dos ámbitos: el de usuario y el corporativo. Por su parte, el navegador será la puerta de entrada a
Actualmente, el usuario ya disfruta de sus beneficios, este conjunto, utilizando recursos de ambos lados de
experimentando una transición gradual pero estable de la línea, cada uno en su medida, para ejecutar las ta-
las actividades que usualmente tenía frente a un mo- reas necesarias. En este posible estado de las cosas
nitor en distintos dispositivos portátiles, además de entra una pregunta fundamental: ¿Qué pasará con el
tener acceso a sus datos, disponibles desde cualquier software de aplicación como lo conocemos?
terminal tras una autenticación simple, pero que debe-
rá ser robusta y confiable. Esta práctica cautivará poco La apuesta principal en este sentido es el Software as
a poco a los usuarios, que demandarán cada vez más a Service (SaaS, por sus siglas en inglés), una platafor-

28 NOV-ENE 2009 www.sg.com.mx


servicio, quienes tendrán que invertir más y
de mejor manera en un esquema que permita
tar el sistema, por lo que bajarán sus costos autentificaciones confiables de los usuarios.
y su riesgo de inversión.
ma que está íntimamente relacionada con el Con estas aplicaciones la confianza en el
concepto de ultraportabilidad que plantea el Esto representa un reto enorme para las servicio crecerá, ya que el usuario se sen-
Cloud Computing. compañías de software que opten por este tirá tranquilo de que sus datos están segu-
camino, ya que la disponibilidad de la solu- ros, a prueba de robo, modificación o ingre-
Los analistas de Gartner aventuran que en ción deberá ser total. En este esquema, las so no autorizado.
2011, el gasto en SaaS alcanzará el 25% de caídas del servicio o las “horas muertas”
la inversión total en software. Mientras que deberán desaparecer. Esto significa que la En la cuestión financiera, los ISVs tendrán
otro estudio de la consultora Saugatuck garantía de disponibilidad de la aplicación una mejora en el manejo de sus finanzas,
Technology, indica que el porcentaje de y su correcta funcionalidad, son parte del ya que el esquema de servicio de software
empresas y ejecutivos de TI que utilizan al servicio que otorga la compañía proveedora les creará una cartera de pagos programa-
menos una tecnología SaaS aumentó de del software y no puede darse el lujo de una dos mensualmente, lo que traerá una esta-
un 11% a un 26% en el 2006. Por su parte pérdida de disponibilidad, ya que eso reper- bilidad que permitirá administrar mejor las
Saugatuck Technology prevé que para el cutirá negativamente en su percepción con entradas de Investigación y desarrollo.
2010, el 65% de las organizaciones habrá in- los usuarios y clientes.
troducido al menos una aplicación siguiendo Las pequeñas y medianas empresas entra-
el modelo de SaaS, dicho así; las compañías Esto dará como resultado mejores aplicacio- rán a este sistema, permitiendo que la base
de TI dedicadas al software encontrarán una nes, que tengan un acercamiento más prác- de clientes de los ISV crezca. El software ya
nueva parcela para explotar. tico a las necesidades del usuario y con una no será una herramienta que requiera una
calidad exigida que beneficiará al usuario. experiencia previa de manejo o un desplie-
Esta tendencia contará con tres actores gue de aplicaciones de instalación comple-
principales: • Distribuidores Independientes de Soft- jas. Con esto, las PyMEs podrán utilizar esta
• Usuarios Finales. Los usuarios comen- ware (ISVs). El software puede desplegarse tendencia para mejorar sus procesos y opti-
zarán a utilizar un esquema de pagos por en un entorno controlado centralizado, con lo mizar sus recursos de TI.
software basados en cuotas mensuales. que se reducen las llamadas al escritorio de
Con esta opción, podrán probar y evaluar ayuda así como los costos de soporte. Esto Cuando la lluvia nos alcance
el servicio online en lugar de proporcionar permite una respuesta más rápida a los po- El Cloud Computing será una de las solu-
recursos de su CPU necesarios para analizar sibles problemas que pudieran presentarse y ciones que más ahorro va a suponer a las
el software, o instalarlo en sus máquinas. Al una mayor eficiencia en el manejo de recur- empresas, al ser un esquema libre, con am-
no estar atado a un espacio físico, la imple- sos de los ingenieros involucrados. plio mercado y gran competitividad, cuyo
mentación y el mantenimiento del software único costo fijo será la conexión a Internet.
se puede administrar desde cualquier lugar. Al ser un entorno de acceso controlado, los Las empresas que ofrecen este esquema
Los datos tendrán una estructura central, ac- usuarios no tendrán que preocuparse por naciente deben tener eso en cuenta al mo-
cesible y segura, en lugar de estar dispersos actualizaciones constantes o que los hagan mento de diseñar su estrategia de negocios
en varios servidores y computadoras. Ade- perder tiempo o utilizar a su departamento y productos.
más, el usuario no tendrá que experimentar de TI. Estas actualizaciones serán transpa-
pérdida de datos en caso de una falla eléc- rentes para el usuario y no afectarán su tra- ¿Está realmente la industria preparada para
trica o descarga en su localidad. bajo, sino que mejorarán las aplicaciones sin el Cloud Computing? Los primeros resultados
que el usuario se moleste por configurar. son alentadores. Será la tecnología la que
• Organizaciones. Ahorrarán en costos de determine el rostro del mercado y las apli-
aplicación, debido a que no tendrán que in- Además, el tema de la seguridad será un caciones que ganarán la próxima apuesta, la
vertir en un área especializada para sopor- factor fundamental para los proveedores del siguiente frontera de TI: Las nubes.

Pablo Reséndiz se desempeña actualmente como Gerente de Negocios de Soluciones BURA (Backup, Recovery & Archiving) en EMC
México. Con una experiencia de más de 10 años en la Industria TI, ha trabajado en empresas como IBM; desarrollándose como Ingeniero de
Soporte a ventas para soluciones de Administración de Contenido.

www.sg.com.mx NOV-ENE 2009 29


¿Modelo, Plataforma o Servicio?
Por Javier Mijail Espadas Pech M.C.

Recientemente me encontraba impartiendo una clase de Arquitecturas de Software. En un


experimento rápido pregunté si alguien conocía el término Software-as-a-Service (SaaS). La
respuesta fue una rotunda negativa de todos. Luego pregunté si alguien había usado alguna
vez Google Docs y la gran mayoría respondió afirmativamente. Les comuniqué mi conclusión:
aunque no conocían el término, ya habían usado SaaS.

Ahora bien, antes de definir ciertos conceptos en cuanto a este tema, Conceptos SaaS
creo que es importante mencionar algunas tendencias de negocio Para comenzar, podemos decir que SaaS no es una tecnología ni una
en este mercado; Gartner predice que: metodología. Tampoco es un modelo de negocio específico. SaaS es
un enfoque que consiste en varios componentes:
• Para el 2010, 20% de las compañías de comercio electrónico usa-
rán el modelo SaaS y 15% de las grandes compañías reemplazarán • Un modelo de negocio basado en subscripción.
sus soluciones de ERP con soluciones basadas en SaaS. • Una plataforma SaaS que permite desarrollar y desplegar aplica-
ciones sobre demanda.
• Para el 2011, 25% de los nuevos negocios de software usarán el • Proveedores que desarrollan y/o comercializan esas aplicaciones.
modelo SaaS. • Un modelo de entrega a través de Internet hacia múltiples clientes.

• Para el 2012, las suites de BPM (Business Process Management) El modelo de subscripción debe soportar diferentes tipos de cobro,
serán embebidas en soluciones SaaS y más del 66% de los ISVs (In- como son pago por transacción o periodo de tiempo. Los clientes de
dependent Software Vendors) ofrecerán sus servicios como SaaS. SaaS, a diferencia de los modelos ASP (Application Service Provi-
der), son entidades de negocio y no usuarios finales. La plataforma
IDC también estima que las empresas gastarán US$14.8 billones en SaaS provee soporte para diferentes aplicaciones, tanto las que son
soluciones SaaS y que dos de cada tres negocios considerarán com- entregadas para los clientes como para aplicaciones propias de los
prar software con modelos de subscripción. Estas cifras son verdade- proveedores. Comúnmente se usa el termino tenant para referirse
ramente importantes, ya que representan un amplio mercado en la tanto a los clientes como proveedores que usan la plataforma para
industria del software para los próximos años. Ejemplos de negocios consumir o proveer las aplicaciones SaaS.
que usan este enfoque son Salesforce.com, Google Apps, Appian,
OpSource, CogHead, entre otros. Con esta tendencia, es importante • Plataforma SaaS. Una plataforma debe proveer infraestructura
también definir la forma en que este tipo de software es desarrollado (tanto de hardware como de software) que soporte el desarrollo y
y entregado al cliente. Este artículo analizará este aspecto y sus impli- entrega de aplicaciones sobre Internet como servicios. Arquitectu-
caciones en la metodología tradicional del desarrollo del software. ras comunes tienen los siguientes atributos de diseño:

32
30 NOV-ENE 2009 www.sg.com.mx
1. Multi-tenant. La arquitectura soporta múltiples clientes y 3. Soportadas por componentes compartidos de la plataforma.
proveedores. 4. En sentido estricto, solo deben contener lógica de negocio e
2. Versión simple. Existe una versión de cada aplicación y es com- interfaz de usuario.
partida para todos los clientes.
3. Separación lógica de datos. Cada tenant tiene su propio dominio Impacto sobre el desarrollo de software
de información, pero almacenados en una misma base de datos. Actualmente los proveedores de SaaS no han establecido las mejo-
4. Contenedor de dominio. Es un punto de entrada a las aplicaciones res prácticas para desarrollar este tipo de aplicaciones ni tampoco
de un proveedor. estándares en la industria. Las metodologías tradicionales son sufi-
5. Integración de aplicaciones. Las aplicaciones SaaS deben comu- cientes para desarrollar modelos SaaS muy simples, pero cuando se
nicarse entre sí, pero mantenerse independientes. trata de especializar y escalar hacia un negocio más avanzado, aún
6. Componentes de soporte. La plataforma proporciona componen- se carece de técnicas bien establecidas. Por el lado de ingeniería de
tes compartidos para las aplicaciones: seguridad y autenticación, software, las aplicaciones SaaS presentan diferencias en cuanto a
manejo de cuentas de usuario, logging, control de uso y métricas, su ingeniería de requerimientos con las aplicaciones empaquetadas
soporte para diferentes modelos de subscripción, entre otros com- (por ejemplo, desde la perspectiva del cliente, la instalación y man-
ponentes importantes. tenimiento son diferentes). Pioneros del modelo SaaS argumentan
que se requiere un enfoque alterado de ingeniería de software para
este tipo de aplicaciones.

Una pregunta importante es cómo el enfoque SaaS afecta a los


proveedores de software y su incentivo a invertir en el desarrollo
de productos. Transformar un producto empaquetado a un modelo
SaaS no es una simple cuestión de reescribir código. Estas compa-
ñías necesitan examinar sus modelos de ingeniería y mercadeo para
adaptarse a este nuevo enfoque de negocio y de desarrollo.

Figura 1. Arquitectura SaaS

La figura 1 muestra la arquitectura de alto nivel de una plataforma


SaaS. En el nivel más alto se encuentran las aplicaciones proporcio-
nadas por los proveedores. La plataforma expone componentes de
soporte para estas aplicaciones. Otros servicios son de meta-datos
y administración de tenants. Infraestructura de software y hardware
también es proporcionada por la plataforma. Sobre esta arquitectu-
ra, las aplicaciones SaaS son desarrolladas, desplegadas y entrega-
das a un número considerable de clientes.
Figura 2. Ciclo de Vida en Aplicaciones SaaS
• Aplicación SaaS. Básicamente, una aplicación es una serie de mó-
dulos y funciones que puede ser desplegada bajo demanda dentro La figura anterior describe que las actividades son diferentes a un pro-
de una plataforma. Una aplicación SaaS es desarrollada acorde a la ducto tradicional. Una de las causas principales de estas diferencias,
plataforma que la soporta. Las características de estas aplicaciones es que las aplicaciones SaaS están acopladas a una plataforma y en
pueden definirse como sigue: cada etapa esta plataforma juega un rol importante en el ciclo de vida
1. Accedidas por Internet. SaaS. La siguiente tabla analiza el impacto en cada etapa del desarro-
2. Desarrolladas y desplegadas sobre una plataforma específica. llo cuando el software es entregado como producto y como servicio.

www.sg.com.mx NOV-ENE 2009 33


31
Una Vista al Futuro de S+S
Por Gilbert Corrales

Gracias al acelerado crecimiento en el acce- La magia detrás del Mesh


so a Internet de avanzada y a la disponibi- Hasta el día de hoy cada vez que iniciamos
lidad de  redes inalámbricas, la naturaleza el desarrollo de una aplicación distribuida o
de como las personas interactúan ha cam- de acceso a servicios, tendemos a pensar en
biado. La sociedad inclina su balanza hacia todas las diferentes estrategias y soluciones
la simplicidad de servicios y de aplicaciones posibles para nuestros problemas, invirtien-
de software interconectadas que “sencilla- do gran parte de nuestro tiempo en tareas
mente funcionan”; mientras que los nego- que repetimos con cada solución y cada dis-
cios consideran con mayor seriedad las positivo que incluyamos. Sin embargo con
economías basadas en servicios tales, la introducción de esta nueva plataforma,
que les permitan escalar a la vez de redu- Microsoft espera minimizar la cantidad de
cir costos de infraestructura, permitiendo tareas  repetidas y permitirnos como desa-
implementaciones a la carta o bajo mode- rrolladores, el  enfocarnos en lo realmente
los de subscripción. necesario: la lógica de negocios y la com-
  posición  de una experiencia perfecta para
Este mes, Microsoft introdujo su plata- nuestros clientes. 
forma de servicios en la nube, Live Mesh,  
con la fe de servir  mejor a  este cambio. Tres  capas definen la plataforma Mesh, con
Como medio de lanzamiento a una serie una cuarta que nos  engloba  el conjunto de
de ofertas de desarrollo e  implementación, experiencias con las que, como usuarios fi-
Mesh permite que tanto personas como em- nales interactuamos.  Desde la infraestructu-
presas puedan sacar provecho de una infraes- ra física, servicios generalizados, así como
tructura diseñada desde sus inicios para escalar toda una base de  Protocolos  e Interfaces  de
y soportar la demanda de acceso a la información los que sacaremos provecho desarrollando y
que vivimos hoy en día, independientemente del lu- publicando nuestros servicios, Live Mesh se
gar o dispositivo que tengamos a mano. presenta como el cimiento sobre el cual el
  futuro  de nuestras  interacciones podran ser
Para Microsoft, Live Mesh es una combinación en- construidas.
tre una  plataforma y un conjunto de  experiencias  
diseñadas para traer “a la vida” las computadoras • Servicios de infraestructura. Así como
tradicionales y otros dispositivos. Haciendo otros servicios Live, Mesh tiene sus fun-
que estos puntos de interacción sean con- daciones en  una infraestructura diseñada
sientes  de su disponibilidad y existencia, desde el día uno, para soportar las necesi-
Live Mesh permite  a  sus usuarios el po- dades de alta disponibilidad y escalabilidad
der administrar, acceder y compartir archi- del mundo actual. Con servicios de infraes-
vos y aplicaciones de manera simple y dis- tructura y de administración que permiten
tribuida a lo largo de un amplio mundo de no solo el acceso y almacenamiento de da-
dispositivos. tos, sino tambien la disponibilidad de toda
  una gama de medios computacionales, Live
Live Mesh pertenece a una iniciativa mayor lla- Mesh permitira que tanto individuos como
mada el  Live Platform Services,  cuyos inicios da- organización puedan  publicar aplicaciones
tan  del año  2005,  encerrando toda una colección y servicios propios, haciéndolos disponibles
de Interfaces de Desarrollo que permiten el acce- a nuestras organizaciones y clientes  a tra-
so a diferentes servicios de infraestructura  que vés de la nube y por medio de sus propios
Microsoft provee bajo la marca Live y dando poder tan- Mesh.  Siempre dentro de los  confines de
to a servicios gratuitos como Live Spaces, Messenger seguridad y respaldo propios de una plata-
y Photo Gallery, así como a aplicaciones de terceros.  forma de dicha magnitud. 
 

34 2008
NOV-ENE 2009 www.sg.com.mx
• Plataforma de servicios. Sobre la capa de Funcionando en un mundo de
infraestructura la Plataforma de Servicios armonía: FeedSync
pone a nuestra disposición, en una segunda Live Mesh tiene como parte de su misión, el proveer una
capa, el acceso a una serie de funcionalida- plataforma de servicio que haga posible el incorporar
des generales de las cuales podremos sacar las capacidades necesarias para que estas  estén
provecho para construir tanto aplicaciones disponibles virtualmente desde cualquier lugar,
como servicios orientados a la nube. Algunos donde exista conectividad a la web, de manera
de estos servicios son el de Identificación y ágil, segura y eficiente. Con un motor de alma-
Directorio, como el Live ID, coordinación de cenamiento con capacidades para poder llevar
conectividad y acceso entre  dispositivos a cabo nuestras tareas de manera desconectada y
y, hasta almacenamiento y sincronización de de la misma manera, una vez resumida la conectivi-
nuestros datos entre los diferentes disposi- dad, poder sincronizar los cambios con los di-
tivos que conformen nuestro Mesh, siendo ferentes puntos de nuestro Mesh, esta pla-
la nube otro mas de estos puntos.  taforma permite desde el punto de vista de
usuario, así como el desarrollo, la simpli-
 
ficación de nuestro día a día, trayendo en
• Pilar de desarrollo. Parte fundamental de
si armonía dentro de nuestra información y
Live Mesh es la incorporación de un pilar de
una accesibilidad casi universal. 
desarrollo. Esta capa nos expone toda la fun-
cionalidad de la Plataforma de Servicios a  
través de un conjunto de Protocolos e Inter- Fundación de esta característica es la sincronía
faces, conocidas como MeshFX, que corren de datos. Mesh implementa FeedSync entre sus
sobre un motor de composición de servicios capas, una tecnología desarrollada por Microsoft
llamadao MOE o Mesh Operating Engine. que utiliza los protocolos de RSS y ATOM, proveyendo
Este motor es accesible desde todas las pla- así un mecanismo para sincronizar información entre
taformas soportadas por Mesh incluyendo 2 o más puntos de manera instantánea o asíncrona.
PC y Macs así como  dispositivos móviles y Es con base a estos protocolos que nuestras aplica-
navegadores Web tradicionales. Este ulti- ciones podrán sacar provecho de capacidades de des-
mo con su propia experiencia llamada Live conexión sin mayores complejidades, lo  cual  hace
Desktop, una solución Web que provee acce- mantener copias sincronizadas de nuestros datos
so a toda la información, aplicaciones y dis- una tarea tan simple como  el habilitar dichos
positivos disponibles en el Mesh, utilizando puntos dentro de nuestro Mesh, traduciéndose
como base de desarrollo las herramientas y así en una plataforma esencial para el éxito de
protocolos Web comunes hoy en día. nuestros servicios. 
 
• Experiencias del Live Mesh. En este cuarta Nuestro futuro en la nube
capa se engloban todas aquellas experien- Live Mesh no es mas que el inicio de un
cias que, tomando provecho de la platafor- mundo interconectado, un mundo en el
ma descrita por los 3 niveles anteriores, nos que nuestras vidas inician a tener acceso
proveen los medios de acceso necesarios a los recursos a la hora y lugares indica-
para llevar a cabo nuestras tareas, sacando dos. Es nuestra realidad la que cambia
provecho del poder de procesamiento y de y evoluciona según estas necesidades
la experiencia  disponible desde  nuestros y esta en nosotros hacerla realidad a lo
dispositivos. Este  capa esta compuesta no largo de toda una gama de servicios y apli-
solo por los servicios de interacción básicos caciones que,  como sociedad 2.0 estamos empezando a
que Live Mesh provee, sino también por la dar luz. Nuestro futuro es disperso y accesible a todas horas.
gama de aplicaciones y servicios que no- Nuestro futuro es una nube de conexiones sincronizadas entre
sotros y otros desarrolladores dentro de la nuestra realidad física y virtual que unidas nos facilitarán el
comunidad construyen y hacen disponible a día a día. Hagámosla realidad!
nuestro Mesh. 

Gilbert Corrales, es Evangelista de Tecnología de Aggiorno y Profesor de Diseño de la Interacción en Cenfotec Costa Rica. Con
más de 7 de años de experiencia en la industria, ha trabajado en proyectos tanto de investigación como comerciales para compañías
como Unisys, Intel, y la agencia interactiva Schematic; Gilbert se enfoca en el diseño de la interacción con visión en tecnologías Web
y medios de uso alternativos.

www.sg.com.mx 2008
NOV-ENE 2009 35
Desarrollo de aplicaciones SaaS Análisis
El impacto en el proceso de desarrollo de software presentado ante- La etapa de análisis debe ser realizada también desde la perspectiva
riormente debe ser tomado en cuenta cuando una aplicación es de- de negocio. Esto es debido a que cada aplicación tratará de satisfa-
sarrollada como servicio. Las metodologías tradicionales son ahora cer las necesidades de un amplio número de clientes. La definición
analizadas y redefinidas para cumplir los nuevos requerimientos im- de los procesos de negocio que soportará cada aplicación es un paso
puestos por este nuevo enfoque. Podemos redefinir las actividades importante en este tipo de aplicaciones, ya que debe permitir la per-
de cada etapa en esta propuesta: sonalización y definición de procesos similares para cada cliente.

• Análisis de procesos de negocio. En esta actividad se deben ana-


lizar los procesos de negocio que serán automatizados con la apli-
cación. Por ejemplo, si se desarrolla un CRM, se deben analizar los
procesos de venta y su integración con otros procesos como cade-
nas de suministro, por ejemplo. Cada proceso con sus actividades,
roles y reglas de ejecución debiera ser documentado.

• Desarrollar casos de uso. Tarea formal en metodologías existen-


tes, que debiera hacerse para documentar y modelar las funciona-
lidades de la aplicación. Artefactos tradicionales son casos de uso
descriptivos y sus diagramas.

Diseño
La fase de diseño consiste en desarrollar documentación que sopor-
te la etapa de construcción.

• Investigación de tecnologías. Es importante en esta etapa hacer


investigación sobre las tecnologías que soporten las necesidades
identificadas. Un artefacto entregable puede ser un documento de
Figura 3. Redefinición de las actividades en el ciclo de vida SaaS. investigación acerca de plataformas SaaS, proveedores existentes,
frameworks, componentes Web 2.0, etc.
El desarrollo de aplicaciones sobre plataformas SaaS requiere de consi-
deraciones en los diferentes escenarios del ciclo de vida del software. • Evaluación de tecnologías. Es importante definir cuál es la pla-
taforma y las tecnologías que serán usadas en el proceso de desa-
Requerimientos rrollo. Las pruebas de concepto en esta etapa son necesarias, para
En el enfoque tradicional, los requerimientos consisten en definir realmente determinar si la plataforma y tecnologías cumplen con los
una serie de funciones que satisfagan las necesidades de un cliente. requerimientos tanto de negocio como técnicos.
En el caso de las aplicaciones SaaS, los desarrollos son meramente
basados en un modelo de negocio. Eso es, una aplicación SaaS debe • Arquitectura de servicios. En este caso, las decisiones arquitec-
cumplir con los requerimientos de un mercado meta. Debido a que turales están basadas en las premisas SaaS y la plataforma que las
las aplicaciones serán consumidas por un gran número de subscrip- soporta. Debido a que las plataformas SaaS están diseñadas para
tores (empresas clientes) y cada uno puede tener potencialmente ofrecer una infraestructura de servicios, los componentes de la apli-
un número grande de usuarios, entonces más requerimientos no- cación deberían ser diseñadas bajo este enfoque.
funcionales son introducidos al proceso, como por ejemplo: soporte
para alta concurrencia, almacenamiento escalable, virtualización/ • Ingeniería de procesos de negocio. Incluso cuando la aplicación
clustering entre otros. Las actividades propuestas son: debe proveer una definición predeterminada del proceso de negocio
que ejecutará, su valor incrementa cuando es posible redefinir cada
• Definición de un plan de requerimientos de negocio. Deben ser proceso de acuerdo al cliente.
identificadas las características del plan de negocio (del proveedor)
para ser transformadas a requerimientos funcionales. • Documentación tradicional. Esta actividad involucra diversas tareas
comunes como diagramas UML. Se trata de la documentación formal
• Análisis del mercado meta. Catalogar y puntualizar las necesida- de la aplicación y depende de las especificaciones de la misma.
des principales del mercado meta. Se deben evaluar las necesidades
del mercado y definir características de alto valor para los clientes • Diseñar casos de prueba. Esta tarea resulta obviamente importan-
potenciales. En esta actividad se van identificando los requerimien- te para cualquier desarrollo serio. Se deben incluir mecanismos de
tos no-funcionales que se mencionaron anteriormente. pruebas unitarias, de integración, de rendimiento, etc.

• Definición de las funcionalidades. Puntualizar las características • Prototipos. Los recursos y la agilidad de generar y desplegar apli-
principales como funciones de cada aplicación que será entregada caciones en plataformas SaaS puede ser explotado a través de la
como servicio. Estas funcionalidades deben ser completamente ali- construcción de prototipos.
neadas al mercado y no a los requerimientos de un solo proveedor.

32 NOV-ENE 2009 www.sg.com.mx


Implementación • Aprobación Técnica. Consiste en correr todas las pruebas sistemá-
Además de las tareas comunes involucradas en la implementación, ticamente y asegurarse que la aplicación es correctamente desple-
dentro del desarrollo SaaS es necesario considerar a la plataforma gada a producción. En el caso de actualizaciones y bugfixes, la pla-
que soporta las aplicaciones. taforma debe proporcionar mecanismos de rollback cuando existan
fallas y se pueda regresar a versiones anteriores.
• Desarrollo de servicios de negocio. Se trata de codificar las inter-
faces principales de la aplicación, así como sus implementaciones.
• Integración con los servicios de la plataforma. Desarrollar el código
para consumir los servicios que la aplicación necesita para operar. Estos
servicios consumidos pueden ser de seguridad, logging, métricas, etc. Conclusión
• Desarrollar la lógica de negocio. Implementación de las reglas de Nuevas plataformas conocidas como Software-as-a-Service (SaaS)
negocio para los módulos de la aplicación. serán un importante canal de distribución para el software empre-
• Desarrollar el front-end. Diseño y desarrollo de interfaces de usuario. sarial en un futuro cercano. El proceso de desarrollo sobre estas
• Desarrollo de integración. Si es necesario, desarrollar código para plataformas debe considerar diversos factores que no presentan
integrarse con otros sistemas. los métodos actuales de desarrollo de software. Las diferencias
• Implementación de tecnología. Asegurarse que toda la implemen- entre desarrollar software como servicio o como producto empa-
tación trabaja correctamente. Esta actividad cubre revisión de códi- quetado son evidentes y estas diferencias cambian la manera en
go, mejores prácticas, revisión de complejidad ciclomática, pruebas que las aplicaciones SaaS son desarrolladas. Dadas estas diferen-
funcionales, entre otros. cias, este trabajo analiza las consideraciones necesarias para cada
etapa de desarrollo en este nuevo tipo de aplicaciones y también
Pruebas presenta una guía para desarrollar aplicaciones en ambientes de
La principal diferencia entre las metodologías tradicionales y la pro- negocio Software-as-a-Service.
puesta para SaaS radica en que las pruebas de integración necesitan
validar la integración correcta entre las aplicaciones y la plataforma.
Otra diferencia importante es en cuanto a las pruebas de rendimien- Referencias
to y métricas de uso. [ Turner, M.; Budgen, D.; Brereton, P. “Turning software into a
service”. Computer. Volume 36, Issue 10, Octubre 2003. ]
• Pruebas unitarias. Estas pruebas son desarrolladas y ejecutadas [ Predicts 2007: Software as a Service Provides a Viable Delivery
por cada desarrollador. Model. Gartner Inc. 2006. ]
[ Wolde, Erin Ten. Research Analyst, IDC. Agosto 2007. ]
• Pruebas de integración. Pruebas importantes en cuanto a la inte- [ Natis, Yefim V. Introducing SaaS-Enabled Application Platforms:
gración con la plataforma, con otros módulos de la aplicación y con Features, Roles and Futures. Gartner Inc. 2007. ]
otras aplicaciones. [ Choudhary, V. “Software as a Service: Implications for Investment
in Software Development”. Annual Hawaii International Conference
• Pruebas de rendimiento. Cada aplicación tiene sus propios requeri- on System Sciences, 2007. ]
mientos de rendimiento, en este caso, las aplicaciones SaaS tienen una [ Olsen, E.R. “Transitioning to Software as a Service: Realigning
fuerte dependencia en el número de usuarios y sus especificaciones. Software Engineering Practices with the New Business Model”.
Service Operations and Logistics, and Informatics, 2006. ]
• Pruebas de medición de tenants. La aplicación no debiera imple- [ Carraro, Gianpaolo; Chong, Fred y Page, Eugenio Pace. “Efficient
mentar código para logging o medición de uso. Estos componentes Software Delivery Through Service-Delivery Platforms”. The
son responsabilidad de la plataforma misma. El objetivo de estas Architecture Journal. Microsoft MSDN Architecture Center ]
pruebas es asegurar que el uso y debug de cada aplicación es co- [ Chou, Timothy. The End of Software. Sams Publishing, 2005. ]
rrectamente registrado y para cada tenant (cliente y/o proveedor).

Javier Mijail Espadas Doctoral Research Assistant Ph. D. Information Technology and Communications ITESM Campus Monterrey
CETEC SouthTower Monterrey, Nuevo León, México.

www.sg.com.mx NOV-ENE 2009 33


// PRÁCTICAS /*PROGRAMACIÓN*/

Ofuscación de Código Dinámica


Mecanismo de Protección o Amenaza
Por Juan Olivares, Sandokan Barajas

Resumen
La ofuscación de código dinámica es una nueva forma de en-
mascarar el código, a lo largo de este artículo veremos las ven-
tajas y riesgos que implican el descubrimiento de esta nueva
técnica, así como algunos de las métodos que existen tanto
para ofuscar el código, como para lograr la desofuscación del
mismo, además de las principales formas y lugares donde esta
técnica puede ser aplicada.

La ofuscación de código dinámica es una técnica que transforma


Figura 1. Existen muchas herramientas que ayudan a la fácil ofuscación de código,
el código en garabatos incomprensibles, esta técnica puede ser las cuales permiten proteger los códigos dinámicos o de scripting, aunque también
utilizada con dos propósitos principales, el primero como una he- se puede utilizar con fines malignos
rramienta de protección de derechos de autor del código de los
programas, y el segundo como una amenaza a los mecanismos ac- La ofuscación también hace uso del polimorfismo que ya ha sido utiliza-
tuales de seguridad en la red. do con anterioridad en los virus, y en la actualidad se está utilizando con
los exploits de javascript para ocultar su peligrosidad y poder incrustar-
La mayoría de las empresas tratan de evitar que su código fuente lo en páginas Web, a las cuaes son invitados a entrar los usuarios.
pueda ser obtenido por alguien más, es por esto que hacen uso de
herramientas que les permitan evitar que alguien lo pueda obtener. Mecanismo de protección
El código fuente de un programa es muy valioso, siendo una creación
Sin embargo la ofuscación también sirve como un mecanismo de intelectual, es susceptible de ser utilizado sin haber tenido que pasar
para generar muchas versiones del mismo código, logrando de esta por un proceso creativo nuevamente, es decir, una vez que se desarro-
manera sobrepasar los mecanismos usuales de análisis de los siste- llo el código puede volver a ser utilizado sin haber tenido que emplear
mas de seguridad, como los antivirus. tiempo en su desarrollo, es por esto que las empresas y desarrollado-
res protegen tan celosamente su código.
La amenaza oculta
En la actualidad, a pesar de que los antivirus son cada día más poten- Una manera de entre muchas que existen en la actualidad para pro-
tes y hacen uso de técnicas mucho más complejas para lograr evitar teger su código, en otras palabras su propiedad intelectual, es la
las amenazas, nace una nueva técnica que logra poner en dificultad ofuscación, que se ofrece como una manera de poder ejecutar el
a estos sistemas actuales de defensa, esta nueva técnica es llama- código por otras personas, sin que estas puedan llegar a entender
da ofuscación de código dinámica, y se basa en la transformación o cómo funciona en realidad.
enmascaramiento del código para evitar que se pueda determinar la
forma que tenía originalmente. La ofuscación de código ha sido propuesta por un gran número de
investigadores como un medio para dificultar la realización de inge-
La ofuscación de código dinámica empezó a funcionar con javascript niería inversa sobre el código. Pero las transformaciones típicas de
un poco después de que fuera liberado este lenguaje en 1995, se ofuscación se basan en razonamientos estáticos sobre ciertas pro-
hizo por la principal razón de proteger el código que tanto trabajo piedades de los programas, lo cual da como resultado que la ofus-
les costaba desarrollar a los programadores, y que cualquier usuario cación del código pueda ser fácilmente desentrañada mediante una
podía ver usando un explorador con esas características. combinación de análisis estáticos y dinámicos.

Juan Carlos Olivares Rojas es Maestro en Ciencias de la Computación por el Centro Nacional de Investigación de Desarrollo Tecnológico (CENIDET), actualmente
es Profesor de Tiempo Parcial del Instituto Tecnológico de Morelia, sus áreas de interés son los Sistemas Distribuidos y la Ingeniería de Software.

36 NOV-ENE 2009 www.sg.com.mx


“El código fuente de un programa es muy
valioso, siendo una creación intelectual, es
susceptible de ser utilizado sin haber tenido que
pasar por un proceso creativo nuevamente”.

Conceptualmente se pueden distinguir dos tipos de ofuscación mientos, la idea es utilizar un arreglo global para pasar los valores
de código: la ofuscación superficial y la ofuscación profunda. La asignados por el despachador de variables, así cada vez que se llame
primera siendo solamente un reacomodo de la sintaxis del progra- a la función se pasará el valor al arreglo de variables global, logrando
ma, ya sea cambiando nombres de variables o algún otro método de esta manera que los valores asignados cada vez que se llama la
similar, y la segunda que intenta cambiar la estructura actual del función no sean constantes, sino que al examinar el código ofuscado
programa, cambiando su control de flujo o modo de referenciar sus no sea evidente el proceso que se realizó en la llamada a la función.
datos, esta última teniendo menos efecto en el proceso de estar
oculto a la ingeniería inversa, ya que no se ocupa de disfrazar la Otra mejora que se puede agregar a la técnica de ofuscación men-
sintaxis del código. cionada es la adición de bloques básicos al de flujo de control del
programa, algunos de los cuales nunca van a ser ejecutados, pero
Técnicas de ofuscación lo cual es muy difícil de determinar mediante análisis estáticos, de-
Una de las técnicas de ofuscación es la llamada “aplanamiento de bido a que las llamadas se generan de manera dinámica durante la
control de flujo básico”, la cual intenta esconder la lógica de flujo ejecución del programa.
del programa para que simule que todos los bloques básicos tienen
el mismo antecesor y el mismo predecesor. Entonces se agregan funciones de cargas hacia esos bloques inal-
canzables a través de punteros, lo cual tiene el efecto de confundir
El control de flujo actual es guiado mediante un despachador de va- a los análisis estáticos sobre el posible valor que asignó el despa-
riables, el cual en tiempo de ejecución asigna a cada bloque básico un chador de variables.
valor variable, que indica cual es el siguiente bloque básico que debe
ser ejecutado a continuación. Entonces un bloque switch utiliza el Técnicas de desofuscación
despachador de variable para saltar de manera indirecta, a través de Así como existen varias técnicas y mejoras para la ofuscación del
una tabla de saltos hacia el sucesor de control de flujo que debe ser. código, también existen técnicas para lograr desofuscar el código, o
mejor dicho, técnicas de ingeniería inversa sobre el código ofuscado
Existen varias mejoras en esta técnica de ofuscación, siendo una de algunas de las cuales se describen a continuación.
ellas el flujo de datos interprocedimental, las variables que asignaba
el despachador se encontraban disponibles dentro de la función mis- • Clonación. Muchas de las técnicas de ofuscación se basan en la
ma, debido a lo cual aunque el comportamiento del control de flujo creación de rutas de ejecución falsas para engañar a los programas
del código ofuscado no sea obvio, puede ser reconstruido mediante de análisis estáticos, debido a que esas rutas nunca van a ser toma-
un análisis de constantes asignadas por el despachador de variables. das en el momento de ejecución del programa, mas sin embargo,
causan información engañosa que se propagará a lo largo del aná-
La ofuscación del código puedes ser más difícil de reconstruir si ade- lisis y reducirá la precisión de la información obtenida, lo cual hará
más de lo anterior agregamos el paso de variables entre los procedi- más difícil de entender la lógica del programa analizado.

Esa información defectuosa tiene la característica de introducir im-


precisiones donde los caminos de ejecución se cruzan.

Una forma de resolver este problema o desofuscar el código es me-


diante la clonación de porciones de código, de tal manera que las ru-
tas de ejecución falsas no se unan con la ruta de ejecución original.

Esta transformación tiene que ser aplicada con sumo cuidado, debi-
do a que si no se hace de esta manera, puede incrementar el tamaño
del código, y más aun que lograr desofuscar el código, empeore el
problema de desofuscación, sin embargo como la meta de la deso-
fuscación del código es la de remover código ofuscado, la clonación
Figura 2. Análisis de un código ofuscado en Javascript. Se puede notar que son implica que se tenga un conocimiento previo de la ruta de ejecución
pocas las cadenas de texto legibles por humanos. Determinar la semántica de un
actual, lo cual podría lograrse mediante la clonación selectiva en
código (el que realiza) es sumamente complicado, por este motivo la mayoría de las
herramientas de protección bloquean en su totalidad programas de Javascript ciertos puntos donde las rutas de ejecución se unen.

www.sg.com.mx NOV-ENE 2009 37


// PRÁCTICAS /*PROGRAMACIÓN*/

“La ofuscación de código ha sido propuesta


por un gran número de investigadores como
un medio para dificultar la realización de
ingeniería inversa sobre el código”.

• Análisis de factibilidad de ruta estática. Este es un análisis es- bargo si lo vemos desde el punto de vista de la ingeniería inversa,
tático basado en cadenas, que evalúa la factibilidad de una ruta al unir estos dos tipos, nos podemos sobreponer a las limitaciones
de ser ejecutada. que nos causan el hecho de realizar un análisis estático o uno sim-
plemente dinámico.
En este análisis primeramente se debe crear una cadena que corres-
ponda con la ruta de ejecución, la construcción de esta cadena se La Web 2.0 y Ajax
puede realizar de varias maneras, pero la meta, es que tome en cuen- La Web 2.0 ofrece soluciones para compartir casi cualquier contenido
ta los efectos de las operaciones aritméticas sobre los valores de las digital pero también presenta desventajas. En algunos casos, el usuario
variables de los bloques de código, y que nos represente la propaga- pierde el control de sus creaciones en favor de las empresas que prestan
ción de constantes a través de una ruta de ejecución del programa, y el servicio. Aunque O’Reilly sostenga que la persona controla sus pro-
después se evalué si esa ruta de ejecución es factible o no. pios datos, esto sólo sería cierto en algunos casos, pero no en todos.

Algunas de las formas de crear las cadenas anteriormente descritas Un consumidor tiene la libertad de decidir qué contenidos publicar
son las siguientes: en una Web, pero una vez que están dentro del servicio, en muchos
portales se pierde parte del control sobre la información aportada,
• Asignación además, surge el peligro potencial de que algunos de los usuarios
• Aritmética suban código potencialmente peligroso.
• Indirección
• Bifurcaciones Ajax surge como una nueva forma de lograr tener aplicaciones a tra-
vés de la Web, que a diferencia de las paginas estáticas, permite a
• Combinación de análisis estáticos y dinámicos. Los análisis es- los usuarios participar, interactuar y compartir de una manera más
táticos convencionales son inherentemente conservadores, por lo plena la información con los sitios Web, lo anterior abre un mundo
tanto al aplicar técnicas de desofuscación meramente estáticas al de posibilidades de interacción con los usuarios de estos sitios, pero
código ofuscado, el conjunto de resultados son en realidad un su- además trae consigo el correspondiente aumento de riesgos en la
perconjunto de ese código ofuscado, inversamente a lo que resulta seguridad, tanto para los usuarios como para los mismos sitios.
si se aplican técnicas de desofuscación dinámica, que no pueden
tomar todos los posibles valores de entrada, por lo cual este análisis El principal riesgo de seguridad que nos trae esta nueva tecnología
solamente nos regresa un subconjunto del código ofuscado. es el que el usuario no siempre está consciente del código que pue-
de estarse ejecutando en su máquina, ya que Ajax nos proporciona
La naturaleza dual de estos dos tipos de análisis sugieren que se una manera de interactuar de forma asíncrona con los sitios, lo cual
debe intentar realizar un análisis que abarque estas dos aproxi- puede ser muy útil, ya que evita tener que estar recargando constan-
maciones de solución para desofuscar un código, lo cual se puede temente el código de las páginas.
realizar de dos maneras, primero realizando un análisis dinámico y
después uno estático para agregar partes al control de flujo del pro- Así mismo, esta característica que nos permite la comunicación
grama, o se puede realizar de manera contraria, empezando primero asíncrona, también presenta el mayor riesgo, ya que en una página
con el análisis estático y después el dinámico, lo que nos servirá se pueden tener objetos incrustados, que a primera vista parezcan
para reducir partes del control de flujo del programa. inofensivos, y no tengan mayor propósito destructivo, pero que
posteriormente se encarguen de descargar o incrustar mas códi-
De cualquier manera, cuando se realiza una combinación de estos go, que al ser ofuscado logre burlar a los mecanismos actuales de
dos tipos de análisis no se puede garantizar la precisión, sin em- análisis de seguridad.

Sandokan Barajas es pasante de la carrera de Ingeniería en Sistemas Computacionales próximo a obtener el títiulo. Trabaja dentro del Centro de Investigación
en Ecosistemas (CIECO) de la UNAM Campus Morelia.

38 NOV-ENE 2009 www.sg.com.mx


Es por esto que la Web 2.0 como tal, tiene que mejorar sus actuales mecanismos de seguri-
dad, pensando especialmente que los beneficios que nos pueda brindar su versatilidad tiene
asociados nuevos riesgos y novedosas formas de lograr vulnerar la seguridad.

Conclusión
La ofuscación de código dinámica es una nueva técnica que tiene varias ventajas y
desventajas, dependiendo del punto de vista y uso que se le de a la misma. Pues si
es aplicada como un mecanismo de seguridad, puede ser muy prometedora, ya que
aunque sea una técnica que puede ser vulnerada mediante el uso de algunos análi-
sis estáticos y dinámicos, proporciona un nivel un poco más elevado de seguridad.
En cambio si es utilizada como una arma para lograr burlar los actuales mecanismos
de defensa puede ser muy peligrosa, pues aunque se podría detectar su peligrosidad
mediante algunos de los análisis mencionados en este artículo, consumiría mucho
tiempo y lo más probable es que mientras se realizara este tipo de análisis, se descui-
dara algun otro aspecto de la seguridad.

En cuanto a la web 2.0 como la llamo O’Reilly, existe un riesgo potencial debido princi-
palmente a las características que la hacen tan útil, pero a la vez tan peligrosa, debido
a que esa manera de compartir contenidos a través de la web podría traer consigo la
diseminación de código ofuscado dañino y que sería difícilmente detectable por su
capacidad de transformarse de una infinidad de maneras, y el hecho de que el motor
de generación no se encontraría en el mismo código sino en otra ubicación, lo cual
imposibilitaría realizar un análisis de ese motor para lograr averiguar la forma en que
el código ofuscado es generado.

Referencias
[ Sharath, U. “Deobfuscation Reverse Engineering Obfuscated Code.” Proceedings of the 12th
Working Conference on Reverse Engineering (WCRE’05), 2005. ]
[ Amit, V. “Cobra: Fine-grained Malware Analysis using Stealth Localized-executions”.
Proceedings of the 2006 IEEE Symposium on Security and Privacy (S&P’06), 2006. ]
[ Karen, H. “New attacks tricks antivirus software”. Innovative technology for computer
professionals. Volume 40, Number 5, May 2007. ]
[ Arboit, G. “A method for watermarking java programs via opaque predicates”. Procedings of
5th. International Conference on Electronic Commerce Research (ICECR-5), 2002. ]
[ Collberg, C.; Thomborson, C.; Low, D. A taxonomy of obfuscating transformations, 1997. ]
[ de Roo, Arjan; van den Oord, Leon. Stealthy obfuscation techniques: misleading the pirates. ]
[ Ernst, Michael D. “Static and dynamic analysis: Synergy and duality”. In WODA 2003: ICSE
Workshop on Dynamic Analysis, Portland, OR, May 2003. ]
[ Arnaud, G. “Automated Metamorphic Testing”. Proceedings of the 27th Annual International
Computer Software and Applications Conference (COMPSAC’03), 2003 IEEE. ]
[ Karl, L. “Towards a Metamorphic Testing Methodology for Service-Oriented Software
Applications”. Proceedings of the Fifth International Conference on Quality Software
(QSIC’05), 2005. ]

www.sg.com.mx NOV-ENE 2009 39


// PRÁCTICAS /*administración de base de datos*/

Diseño de Base de Datos


La Importancia de los Catálogos
Por Victor Hugo García

Los catálogos, en una base de datos, son indispensables para un esta se pierde completamente. Los errores humanos siempre hay
buen diseño de la misma. Es por eso la importancia de conocer las que tenerlos presentes y por tanto, alguien como usuario final pue-
ventajas y desventajas de su uso. Comencemos definiendo “catálo- de llegar a escribir el nombre de un país de la manera incorrecta.
go” en una base de datos. Un catálogo es una tabla de datos que Además la normalización no está presente en este caso.
contiene información relevante sobre las opciones finales de un
usuario en una aplicación. A continuación menciono las ventajas y Cuando se obtienen los datos de manera estática en el código, se
desventajas de los catálogos en el diseño de base de datos: presenta el problema en el tiempo invertido que se requiere en la
programación de los elementos, así como el mantenimiento de
Ventajas ciertos módulos.
• Permite una rápida obtención de los datos requeridos al momento
de realizar una consulta. Enseguida muestro una solución utilizando los catálogos: Se dise-
ña la tabla –Cliente- y la tabla –Pais-, La tabla Pais almacena los da-
• Permite una reducción de tiempo en programación. tos que necesitamos con dos simples campos: “idPais y nomPais”,
dicha tabla siendo relacionada 1:N con la tabla clientes, de esta ma-
• Permite al usuario final la posibilidad de realizar una modificación nera es posible obtener la información necesaria del cliente con una
de manera dinámica a las opciones del software, fácil y rápidamente simple consulta SQL, además de que el proceso de normalización e
desde una administración. integridad de los datos se está dando de manera automática.

• Permite crear una base de datos normalizada. Si el usuario final desea que su sistema sea capaz de aumentar los
datos de los países, el administrador del catálogo Pais podrá agre-
Desventajas garlo fácil y rápidamente. Inclusive, los reportes que se hayan pro-
• El uso de memoria en el servidor SQL puede verse afectado. gramado no requerirán de inversión de tiempo, puesto que la infor-
mación que se pida será obtenida mediante una consulta SQL.
La desventaja puede ser solucionada con el uso correcto de las
consultas SQL, tal es el caso de evitar productos cartesianos al mo- En la siguiente figura muestro un diagrama de clases de lo que sería
mento de dicha consulta y en su reemplazo utilizar INNER JOIN, LEFT una relación de la tabla cliente con la tabla país (1:N).
JOIN, RIGHT JOIN según se requiera.

Ciertos desarrolladores necesitan ver un proceso de normalización


de una base datos, sin embargo, si comienzas a diseñarla utilizando
catálogos, dicho proceso puede llegar a ser innecesario.

Ejemplo 1
“Un sistema requiere que almacene el país de origen de un clien-
te” pero este dato puede cambiar y/o aumentar en base a las ne-
cesidades del usuario final. El desarrollador puede elegir entre
varias opciones:
a. Agregar un campo de tipo cadena de caracteres, permitiéndole al
usuario escribir el dato en un campo de texto. Ejemplo 2
b. Añadir un campo de tipo entero y colocando un campo de selec- “Un sistema requiere que se almacene la especialidad de un médico”
ción obteniendo la información desde el código de manera estática. este dato se puede aumentar, actualizar y/o eliminar.

Los problemas que se generan cuando se utiliza un campo de tipo La solución fácil y rápida pero errónea, sería crear un campo en la
cadena de caracteres, radica en la integridad de los datos, pues en tabla médico llamado “especialidadMedico” y que este sea de tipo

Victor Hugo García es Líder de Desarrollo Web en C-Technologies. Es egresado del Instituto Tecnológico de Ciudad Guzmán. Cuenta con experiencia en el
diseño de base de datos y programación con tecnologías .NET y PHP. Actualmente se encuentra desarrollando software en diversas verticales de negocio para
clientes en Estados Unidos. Durante el 2007 colaboró con proyectos en el Gobierno del estado de Guanajuato.

40 NOV-ENE 2009 www.sg.com.mx


cadena de caracteres. Como he venido platicado, esta solución pierde completamente la
integridad de los datos y por consiguiente la normalización de la base de datos no existe.
Por tanto si se elige la solución por catálogos como se muestra en la figura siguiente:

Realizar búsquedas, generar reportes, obtener información para desplegar en alguna lista,
etc., todo esto puede llevarse a cabo de manera rápida y eficiente. En todos los sistemas
una búsqueda es básica e indispensable, por lo tanto imaginemos esto: El cliente desea una
lista desplegable con las especialidades que se tienen para realizar un mejor filtrado de la
información. Ahora, imagina esto en más de 10 páginas. Por ultimo imagina que el usuario
final te comenta que se requiere agregar una nueva especialidad.

Considerar la creación de un catálogo para un mejor control e integridad de la información sería


ideal para solucionar varios problemas como el que se describe en el párrafo anterior. Si se re-
quiere un reporte de todos los médicos de cierta especialidad, esto sería muy sencillo de obtener
mediante una consulta SQL. Permitirle al usuario modificar las opciones de un sistema es siem-
pre ideal, pues el usuario verá lo sencillo que es hacerlo desde un ambiente grafico.

Cuando se necesita cotizar una aplicación, se debe dejar en claro al cliente, que el adminis-
trador del sistema será capaz de modificar opciones del sistema de manera fácil y rápida; tu
cliente verá esto como un buen desarrollo.

Cuando me encuentro en reuniones con clientes para hablar sobre las opciones que se de-
sean en el sistema, siempre hay un punto en el que se comenta “Este módulo debe ser así,
porque CASI NO se eligen esas opciones” es entonces cuando se tiene que realizar un análisis
de ese caso, puesto que si eliges una opción errónea, al momento de entregar tu software se
te diga que SIEMPRE SI se usarán dichas opciones, para solucionarlo te podrías ver en la ne-
cesidad de reprogramar uno o varios módulos; sin embargo, al elegir la opción de catálogos,
simplemente se agrega el dato a la base de datos y listo.

Finalmente podemos concluir que si los desarrolladores ven la importancia del uso de ca-
tálogos, esto puede significar auténticos ahorros en tiempo de programación, proceso de
normalización y mejorar la integridad de los datos en la aplicación.

www.sg.com.mx NOV-ENE 2009 43


// PRÁCTICAS /*arquitectura*/

Una Receta para Desarrollar Arquitecturas


Con Procesos Bien Definidos
Por Miguel Armas

Cuando llega el momento de desarrollar la ar- Nos quedaremos con la siguiente definición sería un buen paso en beneficio de la comu-
quitectura de un sistema de software, es nor- de arquitectura de software, proveniente nidad de arquitectos de software.
mal que surjan dudas como: ¿Por dónde em- del libro Software Architecture in Practice:
pezar?, ¿qué documentos y diagramas hay que La arquitectura de software de un progra- Anteriormente no contábamos con un mo-
hacer? ¿cuáles hacemos primero y qué orden ma o sistema de cómputo es la estructura delo de proceso para desarrollar la arquitec-
seguimos? y muchas de las veces incluso du- o estructuras del sistema, la cual incluye los tura de un sistema de software. Y en todo
damos de ¿qué es la arquitectura de software? elementos del software, las propiedades ex- caso, algunos de estos pasos se llegan a
ternamente visibles de esos elementos y las contemplar en los modelos de procesos
En esta ocasión haremos un resumen del relaciones entre ellos. para desarrollo de software como el Proceso
marco de trabajo para arquitecturas y en Unificado en el Marco de Trabajo para Solu-
particular del método para desarrollar ar- Por elementos del software, debemos enten- ciones de Microsoft (UP y MSF), Iconix, sólo
quitecturas propuesto por The Open Group. der prácticamente todo lo que podamos re- por mencionar algunos.
Método que nos puede ayudar a responder presentar en UML y aún más, clases, objetos,
las preguntas planteadas. componentes, hardware, pantallas, requisi- La buena nueva es que ya existe un modelo
tos, casos de uso, etc. Pero ¿cuáles son los de procesos creado específicamente para el
¿Qué es y para qué sirve la pasos para describir y plantear las relaciones desarrollo de arquitecturas de software, el
arquitectura? entre todos esos elementos? Es precisamen- cual complementa muy bien a los procesos
La arquitectura de un sistema de software te eso lo que veremos a continuación. de desarrollo de software existentes, como
nos ayuda a satisfacer los requisitos de ca- los antes mencionados.
lidad que debe cumplir un sistema de soft- Madurez en la disciplina de
ware permitiendo que la solución creada arquitectura de software Un marco de trabajo para
sea confiable, mantenible, estable, usable y El desarrollo de software ha dejado de ser un arquitectura
todos los “able” que nos enseñan en la pre- arte y poco a poco se ha ido convirtiendo en una The Open Group es un consorcio de usua-
paración académica acerca de este tema. ingeniería, lo mismo ha sucedido con la discipli- rios y fabricantes de la industria de TI que
na de arquitectura de software, esta madurez cuenta con varios foros, de los cuales el de
Otro hecho en la vida de un proyecto es que es tangible por los siguientes elementos: arquitectura ha sido uno de los más activos,
la única constante en el desarrollo del soft- • Un cuerpo de conocimiento (Body of una de las conclusiones de este foro en 1994
ware es el cambio. Una buena arquitectura Knowledge, BOK) de arquitectura. fue que era necesario desarrollar un marco
nos ayuda a realizar estos cambios con me- • Certificaciones como arquitecto de software. de trabajo para la arquitectura empresarial,
nos tiempo y esfuerzo, además de facilitar la • Modelo de procesos para desarrollar la ar- resultando de esta iniciativa el Marco de Tra-
implementación de una estrategia de re-uso. quitectura de software. bajo para Arquitecturas de The Open Group
(TOG Architecture Framework, o TOGAF).
El término arquitectura de software es uno Aún falta trabajo por realizar, ya que actual-
de los más extensos y documentados, y me mente contamos con varias iniciativas para Aunque TOGAF no es el único marco de tra-
refiero a lo siguiente, si le preguntas ¿qué formar un BOK de arquitectura, habría que bajo para la arquitectura de software. Algu-
es arquitectura de software? a cinco desa- unificar estas iniciativas para ganar aún más nos de los más relevantes al momento son:
rrolladores, seguramente obtendrás cinco madurez. Lo mismo sucede con respecto a las
respuestas distintas, incluso el SEI (Software certificaciones como arquitecto de software, • The Zachman Framework for Enterprise
Engineering Institute) en su sitio en internet existen certificaciones de Microsoft, Sun e Architecture.
tiene una sección que recopila definiciones de IBM solo por mencionar algunas. Espere- • TOGAF.
arquitectura de software (www.sei.cmu.edu/ mos que en el futuro veamos la unificación • The Federal Enterprise Architecture (FEA).
architecture/published_definitions.html). de todas las certificaciones existentes, pues • The Gartner Methodology.

Mike Armas es consultor e instructor senior certificado por la OMG en Milestone Consulting, primer empresa mexicana miembro de la OMG, especializada en la
capacitación práctica y consultoría en UML y las mejores prácticas de ingeniería de software. info@milestone.com.mx www.milestone.com.mx

42 NOV-ENE 2009 www.sg.com.mx


Sin embargo estos marcos de trabajo tienen una TOGAF más que ayudarnos a describir una tura definiendo el alcance y la estrategia
estructura y enfoque distintos entre ellos. Al de Arquitectura Orientada a Servicios (SOA por para lograrla.
Zachman se le conoce mas como una taxonomía, sus siglas en inglés) particular, nos ayudará a
el de TOGAF se enfoca más en el proceso, el FEA decidir si SOA es lo mejor para el proyecto. • Fase B. Arquitectura de negocio, se busca
es una arquitectura empresarial implementada tener clara la arquitectura de negocio y sus
y el de Gartner es la experiencia y conocimiento La metodología de TOGAF ayuda al arquitec- metas para posteriormente poder alinear la
acumulada por algunos expertos para desarro- to a destilar el proyecto hasta el punto de TI al negocio.
llar buenas arquitecturas empresariales. tomar la decisión de si SOA es el estilo de
arquitectura que nos ayudará a resolver me- • Fase C. La arquitectura de sistemas de in-
Dado el interés de la industria, en nues- jor el problema original. formación contempla las arquitecturas par-
tra empresa hemos decidido seleccionar a ticulares para datos y aplicaciones.
TOGAF como la opción para incrementar el El método para desarrollar la
catálogo de cursos al público. Además de arquitectura • Fase D. La arquitectura tecnológica define
ser la opción más madura al plantear un El ADM de TOGAF es una especie de “CMMI la arquitectura integrada que se desarrolla-
proceso para desarrollar la arquitectura. para arquitectura”. Nos presenta un proceso ra en fases futuras.
iterativo con fases que se deben realizar para
TOGAF desarrollar la arquitectura, definiendo las en- • Fase E. La fase de oportunidades y solucio-
Para TOGAF la arquitectura de TI empresa- tradas y salidas de cada fase pero sin indicar- nes permite determinar qué partes se com-
rial no tiene que ver sólo con las aplicacio- nos como hacer cada uno de los entregables. prarán, construirán o reutilizarán y cómo se
nes de la organización. Pues, propone una implementará la arquitectura de la fase D.
arquitectura de TI que funcione para el ne- Prelim:
Framework
gocio, es decir, que este alineada y apoye a and • Fase F. El plan de migración sirve para prio-
Principles
las estrategias del negocio. rizar los proyectos y desarrollar el plan de
migración.
La arquitectura de TI empresarial considera
las arquitecturas técnicas y de negocio, crea A. • Fase G. Control de la implementación es la
Architecture
una visión estratégica y lleva esa visión has- H. Vision ejecución de los proyectos para construir las
B.
ta su implementación. Architecture
Change Business soluciones de TI.
Management Architecture

TOGAF tiene tres componentes principales • Fase H. La administración del cambio de


para lograr lo anterior: C.
la arquitectura implica monitorear y evaluar
G.
Implementation Requirements Information
Systems
los sistemas existentes para determinar
Governance Management
• Método para desarrollar la arquitectura. Architecture cuándo iniciar un nuevo ciclo de ADM.
• Enterprise continuum.
• Base de recursos de TOGAF.
F.
Migration
D.
Technology
Conclusión
El enterprise continuum es un repositorio Planning
E.
Architecture
Contar con y conocer un proceso bien
virtual de patrones, modelos, descripciones Opportunities
and definido que nos indica paso por paso
Solutions
de arquitectura y otros artefactos, que cons- cómo se debe desarrollar la arquitec-
tituyen en si un marco de trabajo dentro del tura empresarial es indispensable para
marco de trabajo de TOGAF, que sirve para Figura 1. Fases del ADM de TOGAF un buen arquitecto. De otra forma no
clasificar tanto el material del repositorio existe un consenso respecto a los do-
como al resto de modelos relevantes y simi- La fase preliminar es el momento en el cual cumentos y diagramas que se deben
lares que existen en la industria. se inicia el proceso de adopción del ADM al tener para definir la arquitectura de un
interior de la organización, difundiendo los sistema de software. Sin embargo el
La base de recursos es el conjunto de linea- beneficios e involucrando a todos las perso- ADM, como cualquier modelo de pro-
mientos, plantillas e información relaciona- nas necesarias. cesos, debe adoptarse gradualmente,
da. El Método para desarrollar la arquitectu- sin intentar implementarlo de inmedia-
ra (Architecture Development Method, ADM) • Fase A. Visión de la arquitectura, impli- to al 100% y en todos los proyectos.
lo detallaremos en la siguiente sección. ca desarrollar una visión de la arquitec-

www.sg.com.mx NOV-ENE 2009 43


// PM CORNER

La integración de un equipo de
trabajo funcional
Reto del Líder de Proyectos de Tecnologías de Información
Por Francisco Vaca

En este artículo reflexionamos sobre la difi- En este momento “crítico” los únicos patro- Al final a base de “puro músculo” vamos
cultad que tienen los líderes de proyectos nes de conducta para conducir al equipo avanzando y unos pocos días, semanas,
para integrar equipos de trabajo altamente de trabajo posiblemente sean los aprendi- meses o años más tarde entregamos un
funcionales y productivos. En muchos casos dos en la propia empresa o institución, los producto que hace cosas que se planearon,
la solución consiste en utilizar enormes can- cuales resultan insuficientes con mucha más cosas que no se planearon, otras más
tidades de energía personal y de la organiza- frecuencia y los aprendidos en otros sitios que ni se pidieron ni se planearon pero que
ción para “hacer que las cosas sucedan” con posiblemente no se puedan aplicar. ahí están a un costo 10%, 50%, 200% más
lo cual pudiera parecer que se logran los re- alto del que se estimó al principio.
sultados sin embargo los altos costos y efec- Ante el reto de la conducción del equipo
tos negativos secundarios no son evidentes. planteemos el primer paso: La integración ¡Listo!, ¡El siguiente! y vamos de nuevo… a
Proponemos que la labor de líder más que del mismo lo cual supone encontrar res- vivir otra vez la misma película.
asegurar que “todos estén trabajando” con- puestas a peguntas como; ¿por dónde em-
sista en crear un contexto apropiado de tra- piezo?, ¿cómo “integro” al equipo?, ¿cómo Una forma más razonable para iniciar el pro-
bajo en el que las personas que participan en hago para que “se pongan la camiseta”?. ceso de conducción del equipo consiste en
el proyecto o en la tarea se integran de forma tener un mejor punto de partida:
voluntaria y ordenada. Hemos visto como muchas personas (aún
profesionales con largas carreras) no tienen • Las personas no son integradas, las perso-
“El mercado laboral para los profesionistas buenas respuestas ya que su punto de parti- nas se integran. No hay autoridad formal por
de TI demanda cada vez más personas con da contiene supuestos falsos u obsoletos: grande que sea, que ordene a una persona
competencias para la conducción de grupos • “Son profesionales, tienen que cumplir el “intégrate” y que ésta se integre. A la larga
de trabajo bajo condiciones de alta presión, objetivo planteado” (posiblemente más temprano que tarde) ha-
ambigüedad y recursos limitados” • “Es su chamba, no se los tengo que pedir” brá problemas que pueden ir desde una re-
• “Estamos en el mismo barco” sistencia pasiva hasta resistencias activas que
Esta afirmación no parece contener gran • “Hay que echarle ganas” producen conductas “tóxicas” para el equipo.
sabiduría ni grandes capacidades de obser- • “Sé que tenemos algunas indefiniciones, pero
vación para llegar a ella, sin embargo para vamos comenzando y las vamos resolviendo” • Las personas tienen una jerarquía de valo-
el profesional de las tecnologías de informa- • “Nos llevamos muy bien” res a partir de los cuales actúan y no necesa-
ción de principios del siglo XXI puede arrojar riamente están alineados con los valores que
algunas reflexiones interesantes. Poco tiempo después comienzan los proble- se necesitan para cumplir con los objetivos.
mas y las frustraciones: cada quien “jala” por
Centrémonos en las competencias para su lado, la gente dice que sí pero no cumple, • Las personas tiene egos que los hacen ac-
la conducción de equipos de trabajo: Una no hay compromiso, no hacen caso… los trucos tuar de forma individual, defensiva, y hasta
carrera profesional exitosa conduce, en que utilizamos parecen no funcionar: hablarles de forma agresiva.
muchos casos, a un punto en el que se tie- suavecito o duro, leerles la cartilla, acusarlos
ne a un grupo de personas sobre las que con los jefes, hacer minutas detalladas, listas • Las personas no comparten un objetivo por
hay poco o ningún poder formal, un objeti- de tareas, estar detrás de ellos presionándo- el simple hecho de comunicarlo y por más
vo que cumplir, recursos limitados y unas los… nada parece moverlos hacia delante ni que creamos que es atractivo y deseable.
expectativas enormes para cumplir fechas motivarlos lo suficiente… a pesar de esto los
y presupuestos para entregar un produc- vemos ocupados y dedicándole largas horas a La labor del líder consiste en crear las con-
to terminado. su trabajo pero ¿y los resultados?. diciones apropiadas para que las personas

Francisco Vaca Gómez es socio director TEDE de 2006 a la fecha. Ha realizado diseño e implementación de proyectos de educación basados en competencias,
instrucción de programas de educación basados, investigación y promoción de la educación basada en competencias.

44 NOV-ENE 2009 www.sg.com.mx


puedan elegir de forma libre y voluntaria for- • Alinear los valores de las personas con • Claridad del rol. Tener claridad sobre el
mar parte del equipo. Estas condiciones son: los valores que necesitamos. La alineación rol que le toca a cada persona consiste en
• Mantener el ego del líder bajo control. de los valores consiste en lograr un acuer- que ésta, tiene claro cómo es su aportación
• Alinear los valores de las personas con los do sobre lo que es importante para el logro al equipo, en general los roles que definen,
valores que necesitamos. del objetivo y el desempeño del equipo, por aprueban, construyen y controlan.
• Objetivo compartido. ejemplo ¿qué es más importante el tiempo o
• Claridad del rol. el presupuesto?, ¿la rapidez o la calidad?, ¿la • Claridad en la responsabilidad. La res-
• Claridad en la responsabilidad. innovación o la confiabilidad de la solución?. ponsabilidad consiste en que cada miembro
del equipo conoce y acepta los resultados
A continuación procedemos a describirlas: En los casos que mencionamos podemos ver que dependen de su intervención directa y
que lograr uno, es a costa de no cumplir el por supuesto las consecuencias de que esos
• Mantener el ego del líder bajo control. Un otro, esta situación puede provocar que una resultados no se den.
ego bajo control consiste en primer lugar en persona nos diga “SI” y luego descubramos
reconocer que necesitamos cambiar, ajustar que hizo otra cosa muy diferente.
o adquirir conductas más efectivas para in- Conclusión
tegrar un equipo. • Objetivo compartido. No lograremos que Podemos agregar que una barrera
las personas compartan un objetivo repi- muy significativa que encontramos
En segundo lugar aceptar a las personas tal tiéndolo una y otra vez; una forma segura para “iniciar por el principio” consiste
como son: con sus fortalezas, debilidades, de lograr que las personas compartan el ob- en que recibimos presión o nosotros
valores y objetivos personales. jetivo es hacerlos participes del proceso de mismos nos presionamos para pasar
formulación y acuerdo de los objetivos. de inmediato a la acción, sin darnos
Por último significa aceptar que nuestra res- cuenta que se van a evitar muchos
ponsabilidad es asegurar que permitimos y Pudiéramos recibir un objetivo general pero conflictos, reprocesos y errores por no
facilitamos el crecimiento y desarrollo de los podemos establecer muchos objetivos in- dedicarle el tiempo necesario a inte-
demás, inclusive en circunstancias que im- termedios que vayan conformando el cum- grar al equipo.
pliquen “el de ellos antes que el mío”. plimiento del gran objetivo.

www.sg.com.mx NOV-ENE 2009 47


// COLUMNA invitada

Desarrollo de Software, Analogías


y Algo Más…
Cuidado con las Semejanzas
Por Carlos Ordóñez

D esde hace mas de 40 años, cuando se adopta a la ingeniería de


software como modelo para crear programas de cómputo, los inge-
mejora y al terminar el proceso tenemos un excelente párrafo, claro,
con la inversión/desperdicio de una considerable cantidad de tiem-
nieros de software nos hemos dado a la tarea de asignar diferentes po al haber tirado tres borradores antes de llegar al definitivo.
analogías acerca de cómo entender el desarrollo de software, basta
con hacer una búsqueda con el texto “Desarrollar software es como” Esta analogía al igual que todas aquellas donde se compara la in-
para darnos cuenta de la utilidad y creatividad que encontramos geniería de software con un proceso de arte creativo (producción
para explicar nuestra realidad, pues al final, un sistema de cómputo cinematográfica, escultura, pintura) por experimentación, ha sido de
es una abstracción, una simulación en bits de lo que nos acontece. gran utilidad pues al evaluar nuestro proceso desde este enfoque
nos damos cuenta que esta aproximación, jamás será la opción mas
Una analogía se realiza asumiendo que si dos entes son semejantes óptima cuando ya sabemos qué es lo que queremos desarrollar y
en uno o varios aspectos, entonces es probable que se parezcan en conocemos las restricciones, pero sí funcionará para la creación e
otras facetas, este escrito pretende ser un panfleto técnico donde se investigación de nuevas e innovadoras piezas de software.
analizan algunas analogías planteadas y cuyo único objetivo es el
sembrar la semilla de la reflexión en todos aquellos colegas que se De la línea de producción
apasionan por eso que llamamos: Ingeniería de software…

De la poesía

Esta analogía nos permite comprender como el proceso de desa-


rrollo de software, desde una perspectiva de fabricación en serie,
donde con base en una especificación inicial, el producto se cons-
Esta analogía, parte del hecho que el software, al tener un lengua- truye, se valida, se empaca y se entrega, en esta categoría caen to-
je, se lee y se escribe, Richard Gabriel dijo: “Desarrollar software es das aquellas analogías que hacen referencia a una cadena de valor:
como escribir poesía, antes de hacer un buen poema tienes que leer manufactura, restaurantes de comida rápida, ensambladoras, etc.
miles de fuentes para aprender a escribir con la métrica adecuada y Principalmente se enfocan en como detectar lo que realmente le
adoptar un estilo propio”. Esta analogía parece muy buena, pues si está agregando valor a mi producto terminado.
analizamos el proceso de escribir poesía, normalmente se comienza
por redactar un párrafo, para luego evaluarlo y darnos cuenta que no Esta es una analogía muy común, y que llega a su formalización con
es lo que buscamos y destruimos el papel donde está escrito. la liberación del “Framework for Software Product Line Practice”, un
marco de trabajo creado por el SEI (Software Engineering Institue)
Después escribimos un nuevo párrafo, y nuevamente lo desecha- donde claramente se define una línea de producción de software como:
mos porque no cumple con las características necesarias y a generar “(…) Subconjunto de sistemas de software que comparten funcio-
un nuevo párrafo, este último parece no estar tan mal, se adapta, se nalidades comunes satisfaciendo las necesidades específicas de un

Carlos “Fofo” Ordóñez es Ingeniero en Sistemas Computacionales por el ITESO. Cuenta con varias certificaciones por IBM y Sun Microsystems. Actualmente
dirige un conjunto de proyectos de desarrollo en el centro de entrega global de TATA Consultancy Services. Es profesor asociado del ITESO, donde imparte
materias de diseño, programació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 TATA
Consultancy Services o ITESO. fofo@iteso.mx

46 NOV-ENE 2009 www.sg.com.mx


“Comparar con otras actividades, es útil
cuando te permite formular preguntas, pero
es peligroso cuando lo utilizas para justificar
tus respuestas”.

segmento en particular, y que son previamente desarrolladas con pueden integrar, un conjunto de principios y herramientas estanda-
base en un conjunto de activos de forma preescrita” rizadas para la construcción. Puedes gestionar el proyecto de inicio
a fin, o dividirlo en pequeñas mejoras (Iterativas) con revisiones pe-
Ese proceso de fabricación implica el uso de entornos de desarro- riódicas con los involucrados.
llo especializados y configurados como esquemas, Domain Specific
Languages (DSLs), patrones, frameworks, generadores de código, La polémica comienza cuando incorporamos la siguiente cuestión:
librerías especializadas, etc, todos coordinados y definidos de tal Los edificios son bienes físicos, mientras que el software, es un bien
forma que integrados formen un tipo determinado de aplicaciones. intelectual”, y desde esta perspectiva, el software nos permite rea-
lizar transformaciones imposibles en el mundo físico. Esto cambia
“Los conceptos de fábrica se aplican de forma correcta a compañías por completo el panorama, pues los principios y reglas de los que
donde se necesitan desarrollar varias versiones de sistemas simila- hablamos anteriormente, en el mundo del software permanecen en
res o la construcción de soluciones basadas en un conjunto de re- constante evolución, y es entonces cuando nuestros proceso de di-
querimientos bien entendidos y con muchas restricciones externas” seño, con base a un conjunto de necesidades tiene que tomar en
(CUSUMANO Michael, “The business of Software”, Nueva York, 2004). cuenta que el entorno se modificará y los involucrados cambiarán
de parecer, y será entonces necesario crear una nueva pieza de soft-
Como lo escribe Cusumano, esta aproximación funciona para desa- ware, donde este proceso es un proceso creativo, mas parecido al
rrollos repetitivos y para un dominio o industria en especifico, pero de escribir poesía.
como podemos notar, el proceso creativo queda completamente
mermado por el proceso de construcción, y los problemas comien- De la ingeniería de software
zan cuando queremos incluir como parte del proceso de fabricación La ingeniería de software es un campo muy joven aun, tan-
un desarrollo de investigación para crear nuevas piezas de software, to que resulta imposible evitar su evolución, y como conse-
donde no existe un conjunto de activos que nos permiten fabricar los cuencia las analogías con las que la describimos tienden a
componentes de nuestra aplicación. cambiar por completo, de ser complementarias a ser conflic-
tivas, algunas mejores que otras, todas tratando de expli-
De la ingeniería civil car nuestra experiencia, lo que no es válido es tratar de forzar
nuestros procesos para adaptarlos a la analogía, pues al final,
la ingeniería de software es un modelo procesal para desarro-
llar sistemas de cómputo que cumplan con las necesidades
de los involucrados, y jamás será: “hacer hamburguesas de
McDonalds”, “edificar construcciones”, “escribir novelas”, “fabri-
car panecillos”, “hacer una película” o “cocinar chilaquiles”.

“Comparar con otras actividades, es útil cuando te permite formu-


lar preguntas, pero es peligroso cuando lo utilizas para justificar tus
Esta analogía ha sido utilizada por muchos años y se fundamenta en respuestas (…), esto nos puede ayudar a revisar nuestras prácticas
las similitudes que existen entre el proceso de construcción inmobi- desde un punto de vista diferente, a cuestionarnos sobre como tra-
liaria y el proceso de desarrollo de software. bajamos”. Martin Fowler, December 2004.

Es un hecho que no es lo mismo edificar una casa pequeña, que


construir un rascacielos, pero para ambos se necesita analizar las Conclusión
necesidades, diseñar un conjunto de planos, comenzar la cons- Podemos utilizar las analogías para facilitar la comprensión
trucción, validar que esté quedando como fue acordado y final- y explicar partes del proceso, pero jamás para explicar todo
mente entregarla. el ciclo, porque ese ciclo es único y flexible, pues desde mi
punto de vista eso hace que la nuestra, sea un rama única e
Como en cualquier proyecto de ingeniería, necesitas un plan para incomparable.
gestionar el proyecto, considerar componentes existentes que se

www.sg.com.mx NOV-ENE 2009 47


// COLUMNA /*tendencias en SOFTWARE*/

¿La Muerte del Software en su Forma Actual?


El futuro de Windows: “Strata”

Luis Daniel Soto Es Director de Divulgación Tecnológica para Microsoft . Responsable de la cuarta área de trece a nivel mundial en atención
a desarrolladores de software. Coordina el esfuerzo de un grupo de 100 personas encargadas de Divulgación Tecnológica en América Latina.
Ingeniero en computación por la Fundación Arturo Rosenblueth, especialista en el tema de liberación al mercado de nuevas tecnologías y
toma electrónica de decisiones. luisdans@microsoft.com luisdans.com\Twitter

E l debate sobre que el 90% del software que hoy se utiliza pueda
ser entregado como servicio está energizando las conversaciones
¿Cómputo en la nube?
Aquí hay una primera confusión de términos: Web 2.0 se refiere a habi-
del futuro del software, creando encabezados alarmistas. El anuncio litar “la era de la participación” y “un internet más allá de texto e imá-
de la muerte del software en su forma actual es prematuro: estamos genes”. El problema es que el desarrollo de estas aplicaciones es muy
observando una evolución y no una revolución. complejo. Integrarlo a los sistemas existentes es otro reto significativo.
Hay que entender cuál es la visión de “cómputo en la nube” de cada
Antes y después de Internet proveedor. ¿Es un outsorcing convencional? EDS e IBM han jugado en
Hay que señalar que el requerimiento de las empresas, es utilizar el este campo por años. En Microsoft creemos que la diferencia funda-
software para desarrollar mejor su negocio y ofrecer ventajas com- mental está en la capacidad de construir software a la medida de forma
petitivas, sin importar el mecanismo de entrega. Es absurdo el abrir- simple. Windows “Strata” es el nombre clave que ofrece:
se a ultimatum “todo o nada”. Aclaremos las razones iniciando por
entender las ventajas de dos modelos. • Menores costos. Mediante economías de escala de Internet, se ofrece
arquitectura y ambiente escalable para que los desarrolladores ofrez-
Software tradicional Software entregado como servicio can servicios en Internet a costos menores que operados localmente.
• Capacidades totales. Las ofertas iniciales de almacenamiento en
la nube imponen restricciones en manipulación de datos. Pretende-
· Respuesta inmediata por el · Redundancia de datos
uso de recursos locales · Alcance mundial mos que todas las funciones de la plataforma aplicativa .NET, SQL
· Opera fuera de línea, sin red · Aprovisionamiento sencillo Server y Biztalk operen para construir todo tipo de aplicaciones.
· La privacidad está en control · Agilidad empresarial • Mayor productividad. Visual Studio no solo ofrecerá desarrollo para
del usuario · Administración
· Usuarios acostumbrados a esta · Instalación casi nula cliente, dispositivos portátiles y servidor: también para la nube.
experiencia · Acceso sencillo
· Alta capacidad de ser · Mantenimiento y nuevas versiones Windows “Strata” incluye servicios fundamentales y servicios para
personalizado ocurren de forma automática
· Visibilidad y control · Acceso desde casi cualquier dispositivo a
construir aplicaciones, que permiten a los terceros entregar software.
· Alta manipulación de datos (casi) cualquier hora La mejor manera de disipar dudas de disponibilidad y seguridad es
con aplicaciones · Nuevos modelos de negocio iniciando su evaluación inmediatamente.

Servicios
ServiciosTerminados
terminados Bloques
Bloques
de de
construcción
construcción Servicios
Servicios
Básicos
básicos
Pocos argumentarían que Internet ha transformado nuestras vidas • Soluciones personales Dispositivo, Sincronizar, Admi- Cómputo (10% CPU, 1 CPU,
de forma muy amplia. Casi nadie está en desacuerdo con que el te- “Windows Live” nistración de aplicaciones, 5000 CPUs), Almacena-
ner la flexibilidad y opción de seleccionar una forma mixta de operar • Soluciones empresa- Identidad, Control de acceso, miento, Administración de
es crítica para el negocio. Es poco realista pensar que una empresa riales “Microsoft online” Gestión de Base de datos, Flu- servicios, Redes, Distribu-
Fortune 50 tiene los mismos requerimientos que una empresa pe- jos de Trabajo, Bus de servicios... ción, Operaciones, Hardware
queña o un estudiante. Las normas de privacidad de datos en algunos
países hacen difícil entender un escenario 100% en la nube. ¿Cómo
una PyME en crecimiento puede transferir requerimientos básicos de Los clientes como Windows 7 y Windows Mobile 6.5; y el software
cómputo en otros más avanzados?. La visión miope de entrega como en servidor continuarán un trayecto de evolución que responde a la
servicio es incapaz de permitir conversaciones balanceadas. juventud de la industria: hay mucho por hacer y ofrecer.

La combinación de “clientes” y “centros de datos” tanto internos


como externos permiten edición dinámica en una PC, movilidad del Conclusión
teléfono y ubicuidad de trabajo. Las suites web como Netsuite y El debate real es como las empresas atenderán las necesida-
Zoho ofrecen ahora operación fuera de línea con Microsoft Office. des de los distintos tipos de usuarios aprovechando los avan-
Salesforce.com y Google Gears son ejemplos del reconocimiento de ces de hardware en los dispositivos electrónicos portátiles y la
este modelo. Apple también lo reconoce: innovación de software – la ubicación no importa... La nube es
todo, pero sola, no es nada.
“I think the marriage of some really great client apps with some really
great cloud services is incredibly powerful and right now, can be way
more powerful than just having a browser on the client ”– Steve Jobs » Por Luis Daniel Soto

48 NOV-ENE 2009 www.sg.com.mx


www.sg.com.mx NOV-ENE 2009
// COLUMNA /*PRUEBA DE SOFTWARE*/

Complejidad del Software


Una Métrica Importante Para la Prueba de Software

Luis Vinicio León Carrillo es actualmente Director General de e-Quallity, empresa especializada en prueba de software. Fue profesor-
investigador en el ITESO durante varios años, que incluyeron una estancia de posgrado en prueba de software en Alemania, en la que
abordó aspectos formales de dicha disciplina. Es autor de varias publicaciones nacionales e internacionales, e invitado frecuente en eventos
relacionados con la prueba de software.

E n el número pasado, al hacer el aná-


lisis de los resultados del Concurso
(n) {


1: I1.1;
2: I1.2;
La externa nos habla de la complejidad del
problema, de la funcionalidad que se re-
e-Quallity 2008 (ver e-quallity.net), ha- … quiere del producto.
cíamos referencia a la complejidad de los 10: I1.10; }

productos participantes. Una subrutina de 7 LCs con instrucciones Una métrica utilizada para medir este tipo de
compuestas y primitivas: complejidad son los puntos de función3, que
Aunque no es el único, la complejidad es f2 (n) { tienen la interesante ventaja de que se pueden
1: I2.1;
un atributo del software muy útil al distri- obtener incluso a partir de los requerimien-
2: if Cond2.1 then
buir adecuadamente el esfuerzo de prueba, 3: I2.2; tos. Una desventaja es que, si bien el algorit-
porque ahí donde hay más complejidad hay 4: else mo para calcularla no es complejo, no es tri-
más propensión a errores1. 5: while Cond2.2 vial y sí es laborioso; lo peor es que obtenerla
6: I2.3; automáticamente a partir de requerimientos
7: I2.4; }
No estamos hablando de dificultad de desa- –cuando resultaría más útil– es prácticamen-
rrollo, que es algo más bien subjetivo que Una subrutina de 5 LCs con instrucciones te imposible a menos que éstos hayan sido
guarda dependencia con el nivel de expe- compuestas y primitivas: especificados utilizando un lenguaje formal
riencia del desarrollador, sino de un aspecto f3 (n) { (como los de programación), situación casi
1: I3.1;
que puede ser medido de manera objetiva. exclusiva de los métodos formales4.
2: if Cond3.1 then
3: f3 (Exp3.1);
Veamos a detalle esta característica. 4: else Impacto de la complejidad en la
5: f3 (Exp3.2); } prueba de software
Las caras de la complejidad del Como mencionamos, ahí donde la comple-
software Si no tomáramos en cuenta la complejidad jidad en el software es mayor, hay más pro-
Podemos hablar de dos vistas de la comple- interna, sino sólo el criterio del tamaño, di- pensión a errores, lo que en particular impli-
jidad de un producto de software: la exter- ríamos que f1 es la más grande de las 3 su- ca que debemos probar más.
na, que tiene que ver con el problema que brutinas, pues tiene más LCs. Sin embargo,
resuelve el sistema (el proceso de negocio); puede verse que no tiene la misma compleji- Esto también podemos verlo si comparamos
y la interna, que se refiere a la manera como dad una secuencia de x instrucciones primi- los grafos de control asociados a las prime-
está programada la solución. tivas, que otra de llamadas recursivas. ras subrutinas mostradas arriba:

En la interna podemos distinguir al menos Durante el análisis sintáctico, los compiladores


los siguientes aspectos: se dan cuenta de la cantidad de instrucciones
de las que consta el programa que se procesa,
• Su tamaño. Entre más grande sea un pro- y verifican si la estructura de los programas
ducto, mayor será su complejidad. Una mé- siguen las reglas gramaticales del lenguaje
trica de tamaño (bastante primitiva, pero en cuestión2. Sería relativamente sencillo im-
muy accesible y común) son las líneas de plementar una métrica inductiva dentro de los
código (LCs). compiladores, que durante el procesamiento
de un programa asociara una complejidad
• Su estructura. Consideremos las siguien- a cada tipo de construcción (tanto de datos
tes abstracciones de subrutinas: como de control) para obtener la complejidad
del todo combinando las de las partes.
1. Una subrutina de 10 LCs con instrucciones
primitivas (v.gr. asignaciones): Del programa se puede obtener automática-
mente la complejidad interna de la solución. Figura 1. Izquierda: grafo de f1; derecha: grafo de f2

50 NOV-ENE 2009 www.sg.com.mx


“Podemos hablar de dos vistas de la
complejidad de un producto de software:
interna y externa”.

En el segundo grafo, la cantidad de rutas • La complejidad interna que considera la es- Referencias
distintas necesarias para visitar todas las tructura de un sistema ofrece un dato más pre- [ 1. León-Carrillo, L. “The Impact of Software
aristas es mayor, lo que hace crecer también ciso que la métrica primitiva de la cantidad de Testing in small Settings”, en Oktaba, H.
la cantidad de casos de prueba que se de- líneas de código. Sin embargo, a pesar de que and Piatini, M. Software Processes in small
ben diseñar y aplicar. ese dato podría proporcionarlo fácilmente los Enterprises. IGI Global, 2008. ]
compiladores, no es algo que suelan proveer. [ 2. Aho, A.; Lam, M.; Sethi, R.; Ullman, J.
Algunas reflexiones Compilers: Principles, Techniques, and
• Es muy importante tratar de mantener lo • Sería muy útil obtener de manera automática Tools. Second edition. ]
más simple posible los diseños y los progra- la complejidad externa de un sistema (asociada [ 3. Garmus, E.; Herron, D. Function Point
mas de los sistemas que se desarrollan. Esto a la funcionalidad) en fases tempranas del pro- Analysis: Measurement Practices for
no solo reduce la probabilidad de introducir ceso de desarrollo de software (luego de espe- Successful Software Projects. Addison-
errores, sino que puede facilitar el manteni- cificar los requerimientos), pues ello aceleraría Wesley ]
miento, el reuso, y la prueba de software. también el resto del proceso (comenzando con [ 4. Jean-Francois Monin, J-F. Understanding
las estimaciones e incluyendo las pruebas). Formal Methods. Springer Verlag. ]

www.sg.com.mx NOV-ENE 2009 51


// TECNOLOGÍA /*INFRAESTRUCTURA*/

Tecnología RFID Como Dispositivo de Seguridad


Novedades en el 2008
Por Beatríz Ríos y Luis Joyanes

El presente artículo pretende mostrar un resumen del estado del arte RFID es un término genérico para describir un sistema que transmite
sobre las tecnologías RFID (Radio Frequency Identification, identifi- la identidad de un objeto o persona (en forma de un único número
cación por radiofrecuencia), se presentan algunas noticias importan- de serie) de forma inalámbrica, usando ondas de radio. Está agrupa-
tes publicadas en la página oficial de RFID en España y las distintas da en la categoría de tecnologías de identificación automática. Las
controversias que la tienen en el campo de la investigación. tecnologías de identificación automática incluyen códigos de barras,
lectores ópticos de caracteres y algunas tecnologías biométricas,
Tecnologías RFID como escaneo de retinas1.
La seguridad de las computadoras se enfoca principalmente a evitar
que la información almacenada sea alterada, robada o interceptada Esta tecnología, junto al EPC (Código Electrónico de Producto), harán
para realizar delitos informáticos, el campo incluye la protección de posible el rastreo y seguimiento de productos en tiempo real permitien-
transferencias de fondos electrónicas, información propietaria (dise- do una “visibilidad” casi perfecta de la mercancía desde el almacén de
ños de producto, listas de cliente, etc.), programas de computadora, materia prima hasta el punto de venta1. El Código Electrónico de Pro-
otras comunicaciones y la prevención de los virus. ducto es un número único que se graba en el chip contenido en una
etiqueta RFID y se coloca en cada producto, lo que permite hacer un
Existen en la actualidad un gran número de soluciones, herramien- seguimiento exacto de cada unidad física en la cadena de suministros.
tas y dispositivos disponibles, dependiendo de lo que requiera
mayor atención, entre ellos, los nuevos y avanzados dispositivos ¿Dónde empezó todo?
usados como herramientas de monitoreo, la tecnología llamada: Durante la Segunda Guerra Mundial los Británicos desarrollaron el
RFID, que ha creado un gran debate entre diversos planos secto- sistema llamado IFF, (Identify: Friend or Foe, Identificación: amigo
riales, ya que tiende a suponer grandes beneficios en la gestión de o enemigo), sobre el que está basado el sistema actual de control
la cadena de suministros, sobre todo en el sector de alimentación, de aviación privada y comercial. Esta aplicación fue el primer uso
farmacéutico y bebidas. obvio de la tecnología de RFID. Otras de la primeras aplicaciones
comerciales para RFID fueron en 1980 y 1990 las etiquetas de inven-
Su implementación abarca un radio amplio de aplicaciones como: tarios en pagos de tarifas de peaje en caminos, en pisos de tiendas
salud, alimentación, fabricación, transporte, distribución, ventas, o directamente en el ensamblado de automóviles.
seguimiento de ganado, localización de niños y animales, anti-
robo, construcción, alquiler de equipos, pago inteligente, venta Existen también versiones de este sistema para implantes en hu-
inteligente de boletos, control de acceso a edificios, servicios pú- manos, como VeriChip en 2006. La práctica de implantar el chip a
blicos, aéreo, etc3. las personas es limitada, la mayoría de los implantes son usados
para fines clínicos, para alertar al personal médico de las condicio-
¿Qué es RFID? nes que un paciente tiene, en el caso de que esa persona no pueda
Es un sistema basado en agentes dentro de tarjetas y lectores, es comunicar los síntomas.
una tecnología, un método de identificación automática para el in-
tercambio de datos remotos usando dispositivos llamados etiquetas México fue el primer país donde se usó para implantes en humanos
de RFI o repetidores1. en el 2004 se colocó un chip diminuto, menor que un grano de arroz
a 18 agentes de la Procuraduría General de la República (PGR) para
Una etiqueta RFID es un dispositivo pequeño, que puede ser adheri- identificarlos cuando tuvieran contacto con documentos confiden-
da o incorporada a un producto, animal o persona. ciales y evitar así la corrupción4.

Beatríz Ríos catedrática del Instituto Tecnológico de San Luis Potosí, México. Ha trabajado en la banca en México, participado en el desarrollo de sistemas para
empresas y docencia en ingeniería de software, sistemas operativos, lenguajes de programación. Actualmente estudiante del doctorado en Informática en ingeniería
de Software en Universidad Pontificia de Salamanca en Madrid, España.

52 NOV-ENE 2009 www.sg.com.mx


Fábrica Almacén Supermercado

El Código de Producto
(EPC) identiica inmediata-
mente el contenido de los
pallets descargados en el
almacén de distribución.

Figura 1. Diagrama de cadena de suministro con RFID

El presidente actual de Colombia declaró que se podrían implantar • Etiquetas pasivas. Tienen 2 componentes conectados entre sí,
estos chips a los ciudadanos colombianos que quisieran ir a tra- un microchip y una antena. Estas etiquetas son las de menor ta-
bajar a Estados Unidos, para que el gobierno de ese país pudiera maño, por ende las más livianas y con una vida útil que puede ir
controlar su ubicación4. hasta los 99 años8.

Un reconocido club en Barcelona, España, utiliza un VeriChip para Pueden proporcionar información sobre la identificación y localiza-
identificar a sus clientes VIP, lo utilizan para comprar las bebidas. ción sobre el producto marcado con la etiqueta como por ejemplo
El departamento de policía de la Ciudad de México ha implantado precio, color, fecha de compra, etcétera, son usadas en los puntos
el VeriChip a unos 170 de sus oficiales de policía, para permitir el
acceso a las bases de datos de la policía y para poder seguirlos en
caso de ser secuestrados.

Un empresario del estado de Washington se implantó un chip RFID


en su mano izquierda a principios de 2005. El chip medía 12 mm de
largo por 2 mm de diámetro y tenía un radio de acción para su lectu-
ra de dos pulgadas (50 mm). Cuando le preguntaron qué pretendía
hacer con el implante, él respondió: “estoy escribiendo mi propio
software y lo estoy soldando sobre mi propia materia, prácticamente
esto es lo que deseo”.

Clasificación
Las etiquetas RFID se pueden clasificar principalmente en tres cate-
gorías, dependiendo del alcance y capacidad de memoria: pasivas,
activas y semiactivas o semipasivas.

www.sg.com.mx NOV-ENE 2009 53


// TECNOLOGÍA /*INFRAESTRUCTURA*/

de venta en estaciones de gasolina y edificios con sistema de control ser de 30 metros bajo condiciones ideales, son mucho más pe-
de accesos, no tienen fuente de alimentación propia. queños que las activas y tienen más memoria de almacenamiento
que las pasivas.
Ejemplos de ellas tenemos: el sistema de compra rápida SpeedPass,
funciona cuando el llavero con la etiqueta ondea enfrente de una En el manejo en la cadena de suministros de tiendas y librerías han
área especial de la bomba de gasolina, una etiqueta lectora dentro usado artículos electrónicos de vigilancia de 1 bit desde RFID para
de la bomba, lee el número secreto contenido dentro del disposi- controlar robos desde 1960. Etiquetas semiactivas indican si un ar-
tivo, que corresponde a la cuenta del cliente en curso del sistema tículo ha sido robado o propiamente sacado de la tienda, ya que un
SpeedPass, en este punto una insignia enciende la luz, (en este caso cajero usualmente desactivará la etiqueta antes de salir.
el tigre saltando) firmando el comienzo de la compra y es cargada a
una tarjeta de crédito conectada a la cuenta del sistema SpeedPass, El departamento de la Defensa de US y varios minoristas están condu-
también se pueden comprar otros artículos como: botellas de agua, ciendo ya ensayos en la plataforma de RFID, de hecho una gran cade-
bolsas de botanas, etcétera. na americana de supermercados dentro de EUA y México, exigió a sus
600 proveedores que adopten este sistema desde enero del 2007.
En restaurantes de comida rápida trabaja exactamente igual, el clien-
te coloca su orden, entonces ondea su llave enfrente del controlador
del lector, si todo funciona como debería, el dispositivo se iluminará
y dará la comida. Se espera implementar este sistema SpeedPass en
400 restaurantes.

Las etiquetas RFID de baja frecuencia se utilizan comúnmente para


la identificación de animales, seguimiento de barricas de cerveza, y
como llave de automóviles con sistema anti-robo. En ocasiones se
insertan en pequeños chips en mascotas para que puedan ser de-
vueltas a su dueño en caso de pérdida.

En algunos modelos de coches desde el 2004, está disponible una


“llave inteligente” como opción. La llave emplea un circuito de RFID ac-
tivo que permite que el automóvil reconozca la presencia de la llave a
un metro del sensor, el conductor puede abrir las puertas y arrancar el •Etiquetas activas. Las etiquetas activas RFID tienen cuatro com-
automóvil mientras la llave sigue estando en la cartera o en el bolsillo. ponentes: un microchip, una antena, una tarjeta de fuente de po-
der y tarjetas electrónicas. La antena y el microchip tienen simi-
Desde el 2004 se usa en el seguimiento de presos a los que se les lar función a las pasivas, las etiquetas activas poseen su propia
colocan unos transmisores del tamaño de un reloj de muñeca que fuente de energía y son capaces de alcanzar mayores distancias
pueden detectar si los presos han estado intentando quitárselas y (10 metros aproximadamente), al poseer una batería su vida útil
enviar una alarma a las computadoras de la prisión. es de hasta 10 años.

• Etiquetas semipasivas. Poseen baterías pero permanecen dor- Se utilizan en bibliotecas y seguimiento de libros, control
midas hasta que reciben una señal proveniente de un lector. El de acceso en edificios, seguimiento de equipaje en aerolí-
rango de lectura de una etiqueta semiactiva, o semipasiva, puede neas, seguimiento de artículos de ropa y en pacientes de cen-

Luis Joyanes Aguilar Dr. Ingeniería Informática, Dr. Sociología, Lic. en Ciencias Físicas y Lic. de Enseñanza Superior Militar. Titular de la cátedra de Lenguajes y
Sistemas Informáticos de la Universidad Pontificia de Salamanca, Madrid. Ex-Decano de la facultad de Informática y Dir. del Departamento de Postgrado en Inge-
niería Informática. Ha publicado más de 60 libros sobre tecnologías de la Información, profesor del programa de doctorado en Sociología, Guatemala. Ha impartido
cursos de doctorado en las Universidades Complutense, Politécnica de Madrid y Oviedo. casadellibro.com/libros/joyanes-aguilar-luis/joyanes2aguilar32luis

54 NOV-ENE 2009 www.sg.com.mx


Pasaporte El nuevo documento de pasaporte a partir
de agosto 2007 se emitió con este chip,
algunos países como Canadá, Australia,
EE.UU, Pakistan y en países de la Unión
Europea ya lo tienen implantado. Tiene
una mini antena que permite comunicarse
con los datos, por medio de un lector RFID
entre un radio de acción de 2 a 100 m.

Licencia de El estado de Virginia ha pensado en poner


Conducir etiquetas RFID en las licencias de condu-
tros hospitalarios para hacer un seguimiento de su historia cir, para hacerlos mas confiables y evitar
clínica. Las etiquetas RFID de microondas se utilizan en el que se puedan conseguir documentos de
control de acceso en vehículos de gama alta, algunas auto- identidad falsos.
pistas, como por ejemplo la FasTrak de California, el sistema
I-Pass de Illinois, el telepeaje TAG en las autopistas urbanas
en Santiago de Chile y la Philippines South Luzon Expressway
E-Pass para recaudación con peaje electrónico. Las tarjetas son Tráfico y En Londres, el control de acceso con
leídas mientras los vehículos pasan, la información se utiliza para Posicionamiento vehículos particulares en el centro está
cobrar el peaje en una cuenta periódica o descontarla de una desde hace un tiempo limitado mediante
cuenta prepago. El sistema ayuda a disminuir el tráfico causado un peaje, cuando lo instalaron decidie-
por las cabinas de peaje6. ron apostar por un sistema de más de
800 cámaras que controlaran el acceso
Aplicaciones y pago del peaje mediante dispositivos
RFID en los autos1.
Identificación En 2006, la FDA (Food and Drug
de Pacientes Administration) aprobó los primeros chips Desde 2004 Lisboa también hace uso de este sistema de control de
RFID de EE.UU. que se pueden implantar acceso al centro de la ciudad. Estocolmo ha decidido usar la tecno-
en seres humanos. El uso de RFID para logía RFID para reducir gastos en el control del acceso. El sistema de
prevenir mezclas entre esperma y óvu- peaje ha logrado reducir el tráfico en un 25% y ha incrementado el
los; en las clínicas de fecundación in vi- uso del transporte público en 40.000 usuarios más cada día6.
tro también se está considerado. Pueden
incorporar información médica personal, Un dispositivo colocado en los vehículos permite identificarlos y
podrían salvar vidas y limitar lesiones aplicarles vía Internet un cargo de peaje con precios variables según
causadas por errores en tratamientos mé- la hora, el sistema también identifica las matrículas de los vehículos
dicos. También se ha propuesto su aplica- que no tienen ese dispositivo, obligándoles a realizar el pago opor-
ción en el hogar para permitir por ejem- tuno en bancos o establecimientos autorizados.
plo, que un frigorífico pueda conocer las
fechas de caducidad de los alimentos que Noticias importantes sobre futuras aplicaciones
contiene, pero ha habido pocos avances • Compras con RFID. Algunos clientes están considerando tener im-
más allá de simples prototipos. plantes de microchips para poder hacer compras7.

www.sg.com.mx NOV-ENE 2009 55


// TECNOLOGÍA /*INFRAESTRUCTURA*/

El sujeto es identificado desde que entra (nombre, domicilio, tar- se intentase quitarlo sin control médico podría producir daños
jeta de crédito, última visita a la tienda, tendencias de compra y severos y hasta la muerte13.
gustos sobre ropa). La ropa lleva incorporada etiquetas RFID in-
visibles. Antes de pagar, se le somete a una prueba de reconoci- • Problemas de lectura con los pasaportes RFID. No sólo son menos
miento facial para comprobar si efectivamente es quien su tarjeta seguros; ahora también sabemos que la lectura de los pasaportes
de identidad dice que es. El sistema utiliza Internet y puede avisar con el chip son menos fiables (prácticamente la mitad) que la de los
a la policía si la persona sale de la tienda sin abonar la mercancía, tradicionales, requiriendo más tiempo y atención por parte de los
así como proporcionarles información sobre dónde obtener foto- empleados. Eso es lo que afirma un estudio del propio Departamen-
grafías on-line del sospechoso4. to de Estado de los EUA 8.

• Planean “etiquetar” a los pasajeros aéreos. BBC News anuncia • Detectan fugas de información en las nuevas tarjetas de crédito
nuevos y espeluznantes avances en la dudosa ciencia del pre-crimen. con RFID. Herald Tribune publica un artículo que revela que infor-
El proyecto Optag desarrollado en el University College London, ha mación sensible de las tarjetas de crédito de última generación que
llegado a la brillante conclusión científica, de que etiquetar a los pa- incorporan chips RFID, puede ser leída por un intruso mediante un
sajeros de los aviones ayudaría a combatir el terrorismo7. equipo electrónico cuyo costo aproximado son 150 dólares, pero
que podría reducirse en tamaño hasta algo similar a un paquete
• La tarjeta inteligente, Visa con RFID. La Caixa introducirá en España de chicles y precio de construcción seri de 60 dólares. Las pruebas
las tarjetas de crédito equipadas con chip RFID, legibles a distan- se han realizado sobre 20 tarjetas de Visa, MasterCard y American
cia sin necesidad de contacto físico con el aparato lector. La Caixa Express. Algunos fabricantes habían hecho creer a los usuarios que
será la primera entidad financiera española en incorporar tecnología los datos irían cifrados.
RFID a sus tarjetas de crédito12.
• Peligros en datos biométricos. Fallos en RFID hacen peligrar los
• Parece Polvo. El novedoso chip RFID de Hitachi que mostraron al datos biométricos de los millones de personas que visitan Estados
mundo el pasado 13 de febrero 2007. Estos tienen un tamaño de Unidos, para rastrear a los visitantes extranjeros tras su entrada por
0.05 x 0.05 mm y son hasta 64 veces más pequeños que sus actua- las dos fronteras terrestres de Estados Unidos, México y Canadá8.
les mu-chips de 0.4 x 0.4 mm, aparecerán en el mercado dentro de El controvertido RFID sigue “ganando enemigos” a lo largo y ancho
dos ó tres años más. de este mundo. Ahora son los usuarios del metro en Rheinberg,
Alemania, que han descubierto que sus tarjetas llevaban escondi-
Pero no todo es perfecto con RFID do un chip RFID. Por el diminuto tamaño que está adoptando estos
• Logran clonar el VeriChip. Un investigador Canadiense anunció en dispositivos, cada vez es más sencillo esconderlos en casi cualquier
el 2007 que logró clonar el implante subcutáneo RFID de VeriChip parte, desde billetes de banco, hasta boletos de metro.
Corporation, pese a lo cual la empresa sigue afirmando en su Web
que el chip provee de un identificador único y que el sistema es ab- Aún con todos los problemas mostrados con la tecnología RFID, re-
solutamente seguro 8. presenta un gran avance su uso en la industria, ahorrará grandes
tiempos en las líneas de producción, administración y distribución.
• El VeriChip podría causar la muerte. El bio-chip está compues-
to de un transponder, un sistema de almacenamiento, lectura de Las novedades de RFID en el 2008
información a control remoto y una batería de litio recargable, 1. Empresas en México con productos perecederos como las frutas y
la que se recarga por un sistema termopar (dispositivo capaz de legumbres, implementarán RFID en su cadena de abasto, para mo-
convertir la energía calorífica en energía eléctrica) que produce nitorear el estado de cualquier fruta y determinar cual deberá ser
fluctuaciones de la temperatura del cuerpo, razón por la que se puesta primero en el mercado y ahorrarse una gran cantidad de di-
determinó después de varias investigaciones millonarias, que el nero al no tener que tirarla por estar en mal estado 9.
mejor lugar para implantarla es en la cabeza o la mano derecha.
Aunque la empresa sigue asegurando que el bio-chip es seguro, 2. Se ha puesto en marcha el primer centro de distribución dirigi-
la verdad es que el litio que contiene al ser derramado en el in- da por voz en Colombia atreves de RFID. La distribución esta dirigi-
terior del cuerpo, produce úlceras y daños en los tejidos, que si da por voz y permite a los operadores recibir instrucciones paso a

56 NOV-ENE 2009 www.sg.com.mx


paso directamente del sistema de control de almacén a través de un
Talkman Vocollect que se porta en la cintura y una diadema con mi- VeriChip y muchas naciones ya fueron privilegiadas para usarlo,
crófono, dejando las manos y la vista libres para realizar las labores entre ellas: Reino Unido, Canadá, E.U.A., Australia, Nueva Ze-
sin interrupciones ni tiempos muertos 2. landa, Israel, Hong Kong, China, Indonesia, Macau, Malasia, Fi-
lipinas, Singapur, Tailandia, India, Taiwán, Sri Lanka, Costa Rica,
3. La Universidad de Arkansas está utilizando una tecnología de van- Guatemala, Nicaragua, Panamá, Honduras, el Salvador y Brasil.
guardia para explorar las ventajas potenciales de RFID usando un
detallado hospital virtual creado en Second Life, los expertos están El RFID Europa14, ha publicado que los países que más usan el
examinando la manera en que los dispositivos basados en RFID pue- dispositivo son: en primer lugar Asia con el 46% donde el país
den mejorar el sistema de salud en el mundo real 10. mayoritario es China además del tamaño de su población y de
los proyectos de los juegos olímpicos que influyeron para subir
4. Ahora no solo son utilizados los RFID en mascotas como perros y los porcentajes de uso, le sigue Norteamérica con el 27% donde
gatos, sino que además, se ha etiquetado algunos peces de las 20 los países líderes son EUA y Reino Unido, Europa le sigue a la
especies más exóticas con el fin de mostrarles a los espectadores su lista con el 17% donde lideran Alemania y Francia y el resto del
ubicación en una pantalla, esto fue en un acuario en Singapur. mundo solo con 10% donde está incluido a Latinoamérica5.

5. El 30% de las empresas españolas de logística y distribución ya


han implantado RFID y el 83% se muestra satisfecho con ella. Referencias
[ 1. RFID, Identificación con seguridad. rfidding.com/1_definicion.
6. Un 48% de las empresas (grandes y pymes) de diversos sectores en Es- html ]
paña, tienen pensado implantar RFID para control de procesos y logística. [ 2. RFID, España, rfid-spain.com ]
[ 3. Tornton, Frank. et al. Computers Comunications NetWorking. 2006. ]
7. Este año se ha anunciado como funciona los sistemas biométricos [ 4. Ribeiro, Silvia. “Chips Espías, manipulación del consumo e
de huellas digitales y su uso en el nuevo DNI electrónico español 11. impactos sobre la salud”. La Jornada. México, 10/12/2006. ]
[ 5. Pink tentacle. pinktentacle.com/2007/02/hitachi-develops-rfid-
8. Se ha anunciado la disponibilidad en España del nuevo lector de powder/ ]
RFID modelo IP30, un dispositivo pequeño y compacto que puede [ 6. “RFID para ayudar a reducir el tráfico”. Gobierno de Estocolmo.
integrarse en los dispositivos moviles más extendidos. De esta for- xataka.com/2006/04/12-rfid-para-reducir-el-trafico ]
ma es posible combinar la RFID con otras tecnologías como la locali- [ 7. “RFID, Nineteen, eighty four,Etiquetar a los pasajeros en los
zación por GPS y las redes extendidas inalámbricas 2. aeropuertos”. Video: spychips.com/RFIDairport.html ]
[ 8. “RFID, Nineteen, eighty four”. Protestas e invasión a la privacidad.
spychips.com/index.html,
Conclusión spychips.com/press-releases/verichip-hacked.html,
La aplicación más importante de esta tecnología es con propó- kriptopolis.org/problemas-de-lectura-con-los-pasaportes-rfid ]
sitos comerciales, ahora tiene la atención en el mundo de los [ 9. RFID, México. mexicorfid.com ]
negocios, esta tecnología tiene un amplio rango de industrias [ 10. Arkansas University. Video de proyecto U. Arkansas. es.youtube.
con una gran variedad de usos. com/watch?v=pNPG02uILXY ]
[ 11. DNI electrónico España. dnielectronico.es/oficina_prensa/
La identificación de artículos mediante el código de barras, noticia_destacada/mapa_provin_desp_dnie.html ]
prácticamente estarán desapareciendo en un futuro inmedia- [ 12. Visa Europe. visaeurope.es/saladeprensa/notasdeprensa/
press42.jsp ]
to, serán sustituidos por dispositivos con RFID, estándares
[ 13. “VeriChip, VeryVIP, VeryDangerous”. trinityatierra.wordpress.
y middleware sobre la tecnología RFID serán desarrolladas,
com/2008/03/10/verichip-verivip-very-dangerous/
también otras versiones sobre la seguridad y privacidad. Más
[ 14. RFID Europe. rfid.idtechex.com/rfideurope08/en/rfidin2008.asp ]
de 250 corporaciones en 20 países están ya distribuyendo el

www.sg.com.mx NOV-ENE 2009 57


// tecnología /*multicore*/

Perdiendo el Miedo a la Programación Paralela


Ejemplo de Ordenamiento de Burbuja Paralelo
Por Shannon Cepeda

Al igual que la mayoría de los ingenieros de ne un arreglo con las palabras que comien- solo fork, join, o siquiera crear un thread de
sistemas, tengo malos recuerdos de lidiar zan con la letra ‘b’, y así sucesivamente. forma explícita. Se implementa en el código
con threads en mi clase de sistemas opera- por medio de directivas “pragma”. Como
tivos en la universidad. Así que cuando me Una vez que se genera este arreglo “semior- programador, lo único que necesitas hacer
encontré en la necesidad, ya como profe- denado” –ya que las palabras se encuentran es determinar qué patrón de paralelismo re-
sional, de aprender a hacer programas que agrupadas de acuerdo a la letra con la que quiere tu código, y entonces indicar la direc-
se ejecuten en distintos threads paralelos, empiezan –, se puede invocar a la función tiva pragma correspondiente.
debo aceptar que tuve mucho miedo. Sin que se encarga del ordenamiento.
embargo, descubrí que actualmente hay Uno de los elementos más sencillos y utili-
herramientas que hacen esto mucho más Ordenamiento sin paralelismo zados de OpenMP es el pragma “parallel for”.
sencillo de lo que pensaba. Primero realicé la prueba haciendo el orde- Este corresponde a lo que sería un “for” en
namiento de la forma tradicional, es decir programación single threaded. Lo que hace
Para reiniciarme en la programación parale- sin paralelismo. El listado 1 muestra el códi- es dividir un ciclo de tareas en rangos, y
la, decidí comenzar haciendo el ejercicio de go en lenguaje C para hacer esto. asigna un segmento de tareas a cada pro-
implementar un ordenamiento de burbuja cesador. OpenMP se encarga de crear los
(bubble sort) paralelo. Éste es uno de los void bubble_sort (char *** &my_array, int letter_counts[26]){ threads y asignarlos a cada procesador. En
char * temp;
algoritmos de ordenamiento más sencillos y el caso de mi ejemplo, el pragma “parallel
for (int letter =0; letter < 26; letter++) {
lentos. La forma en que funciona es que se for (int i =0; i < letter_counts[letter] - 1 ; i++){ for” es justo lo que necesitaba, ya que mi
recorre una lista de elementos, y se va com- for (int j =0; j < letter_counts[letter] - 1 - i; j++){ algoritmo estaba estructurado en base a un
parando el elemento i con el i+1, y en caso de if (strcmp(static_cast<char *>(my_array[letter] ciclo maestro donde se trabaja de forma se-
que el orden esté equivocado, se intercam- [j+1]), static_cast<char *>(my_array[letter][j])) < 0){ parada los distintos grupos de palabras en
temp = my_array[letter][j+1];
bia estos valores de posición. Este recorrido my_array[letter][j+1] = my_array[letter][j];
base a la letra con la que empiezan. Usando
se repite n-1 veces (donde n es el número de my_array[letter][j] = temp; el parallel for a este nivel, no corría el riesgo
elementos que contiene la lista) para asegu- } de que dos threads accedieran el arreglo de
rar que se hayan realizado los cambios ne- } la misma letra al mismo tiempo .El listado
}
cesarios y la lista está ordenada. 2 muestra el código correspondiente, agre-
}
gando el parallel for.
}
Decidí ordenar palabras, ya que esto me daba
una forma sencilla de repartir mis datos entre Listado 1. Ordenamiento sin paralelismo void parallel_bubble_sort (char *** &my_array,
int letter_counts[26]){
distintos threads (un thread podría ordenar
char * temp;
las palabras que comienzan con “A”, otro las El programa se ejecutó en una máquina con #pragma omp parallel for
que empiezan con “B”, etc.). dos procesadores de cuatro núcleos, y al for (int letter =0; letter < 26; letter++) {
monitorear la ejecución me di cuenta que for (int i =0; i < letter_counts[letter] - 1 ; i++){
Al iniciar, el programa debe leer un archivo solo se usaba un núcleo. El tiempo de ejecu- for (int j =0; j < letter_counts[letter] - 1 - i; j++){
if (strcmp(static_cast<char *>(my_array[letter]
con palabras, contar cuantas palabras co- ción del programa fue de 7.4 segundos. [j+1]), static_cast<char *>(my_array[letter][j])) < 0){
mienzan con cada letra (sin diferenciar entre temp = my_array[letter][j+1];
mayúsculas y minúsculas), y guardar esta Implementando paralelismo my_array[letter][j+1] = my_array[letter][j];
cuenta en un arreglo unidimensional de 26 con OpenMP my_array[letter][j] = temp;
}
elementos llamado letter_counts. Esto signifi- Actualmente existen diversas librerías que
}
ca que el valor de letter_counts[0] es la canti- abstraen y simplifican el manejo de threads. }
dad de palabras que empiezan con la letra Una de ellas es OpenMP, la cual usé para }
‘a’, letter_counts[1] es la cantidad de palabras este ejemplo. OpenMP es un API para pro- }
que empiezan con ‘b’, y así sucesivamente. gramación paralela en C/C++ y Fortran. Es Listado 2. Ordenamiento usando el parallel for
El siguiente paso es volver a leer las palabras soportado por una gran variedad de compi-
del archivo, y almacenarlas en un arreglo de ladores incluyendo el compilador de Intel, Eso fue bastante sencillo … ¿podría ser tan
arreglos (my_array), de acuerdo a la letra con gcc, y Visual Studio (2005 o mayor). Con bello? Al ejecutar este código y monitorear
la que empiezan. Es decir, my_array[0] apunta OpenMP, es posible convertir un programa el sistema me di cuenta que ya había acti-
a un arreglo que contiene las palabras que de un modelo single threaded a un modelo vidad en los distintos núcleos de procesa-
comienzan con la letra ‘a’, my_array[1] contie- multithreaded sin necesidad de escribir un miento. El tiempo de ejecución fue de 6.4

58 NOV-ENE 2009 www.sg.com.mx


segundos, lo cual significó una pequeña
reducción. Sin embargo, al verificar los re-
sultados encontré que había errores ya que
el arreglo no había sido ordenado correcta-
mente. Muy probablemente esto se debía a
que generé un error de data race. Un data
race es cuando distintos threads acceden y
modifican una misma variable de forma no
coordinada; típicamente esto genera resul-
tados erróneos en el valor de las variables.

Depurando con Intel Thread


Checker
Para encontrar el error, decidí utilizar el In-
tel Thread Checker. Este es un depurador Figura 1. Resultados del Intel Thread Checker
para programas multithreaded. Lo que hace
es monitorear la ejecución de un programa Esta opción me pareció mucho mejor, ya que ¡Perfecto! Afortunadamente, mi primera expe-
para encontrar errores como data races, esta variable no necesitaba ser compartida, riencia como profesional en la programación
deadlocks, fallas de sincronización, y tiem- y por medio de este mecanismo se evitó que paralela no fue tan mala como mis memorias
pos de espera. La figura 1 muestra los resul- cada thread tuviera que esperar a que los de manejo de threads en la universidad. Por
tados del Intel Thread Checker. demás terminen. supuesto, fue un ejemplo bastante sencillo.
Sin embargo, refleja que utilizando un proce-
Los primeros dos errores indicaban que mis Afortunadamente, en OpenMP es muy senci- so adecuado y aprovechando las herramientas
sospechas eran correctas. Al revisar las lí- llo marcar variables como locales para cada disponibles (las que mencioné en este artícu-
neas referidas, noté que la línea 96 era la thread. Simplemente se utiliza el comando pri- lo son gratuitas), hacer programas paralelos
sentencia: vate. El listado 3 muestra el código resultante. es mucho más fácil de lo que pensábamos.
temp = my_array[letter][j+1];
y la línea 98 era: void parallel_bubble_sort (char *** &my_array, El método adecuado para desarrollar pro-
int letter_counts[26]){
my_array[letter][j] = temp; gramas paralelos involucra cuatro pasos:
char * temp;
#pragma omp parallel for private(temp) • Análisis. Determinar los mejores lugares
Así que lo que estaba sucediendo es que for (int letter =0; letter < 26; letter++) { para usar threads
distintos threads estaban recurriendo al for (int i =0; i < letter_counts[letter] - 1 ; i++){ • Implementación. Introducir en el código
mismo tiempo a la misma variable temp for (int j =0; j < letter_counts[letter] - 1 - i; j++){ los elementos para ejecución paralela.
if (strcmp(static_cast<char *>(my_array[letter]
para reordenar los valores de los arreglos; [j+1]), static_cast<char *>(my_array[letter][j])) < 0){
• Depuración. Asegurar que todo esté fun-
también encontré warnings, indicando que temp = my_array[letter][j+1]; cionando correctamente.
había threads que esperaban más de 3 segun- my_array[letter][j+1] = my_array[letter][j]; • Optimización. Realizar ajustes para maxi-
dos para obtener acceso a un recurso, esto es my_array[letter][j] = temp; mizar desempeño.
}
bastante tiempo para un programa cuya eje-
}
cución total dura 6 segundos. Probablemente } Este artículo abordó la implementación (a
esto se debía a la pelea entre los 8 threads } través de OpenMP) y depuración (con Intel
para acceder la misma variable temp. Ya que } Thread Checker). Para este pequeño programa
había encontrado el problema, tendría que Listado 3. Código corregido el análisis fue automático. Sin embargo, para
pensar en la solución adecuada. Una opción problemas reales, con mayor complejidad, es
era encerrar las líneas 96 a 98 en una sección En esta ocasión, cuando ejecuté el progra- crítico comenzar con un buen análisis.
crítica, o sincronizada, de forma que al mismo ma el resultado fue correcto, y el tiempo de
tiempo solamente un thread pudiera estar en ejecución disminuyó significativamente. En Referencias
esta sección, y hasta que terminara todas las lugar de los 7.40 segundos originales, ahora [ openmp.org/wp/ ]
operaciones de la sección liberaría el control el ordenamiento se ejecutó en 1.60 segun- [ intel.com/software/products ]
para otro thread. Otra opción era hacer que dos. Un vistazo al Intel Thread Checker indi- [ softwarecommunity.intel.com/isn/home/ ]
la variable temp fuera local para cada thread. có que ya no había errores ni avisos. [ devx.com/go-parallel ]

Shannon Cepeda ha laborado en Intel durante 7 años en roles relacionados con el análisis y optimización de desempeño de sistemas. Shannon es Ingeniero en
Ciencias Computacionales, y Maestra en Ciencias de la Computación por la Universidad de Carolina del Norte.

www.sg.com.mx NOV-ENE 2009 59


// tecnología /*gadgets*/

Tivoli
NetWorks Radio
Hay equipos de audio que se ven bien, otros que resultan funciona-
les, y los que proveen audio en alta definición. Pero hay pocos que
logran combinarlo todo y además le agregan ese “pequeño extra”
que los hace especiales. Tal es el caso de NetWorks Radio, fabricado
por Tivoli, que luego de preguntarse: ¿qué haría un radio ideal? Mate-
rializaron esta monada que además de su diseño sencillo y moderno,
permite el acceso a las ventajas del broadcasting por Internet de tal
manera que con él se sintonizan estaciones de radio de cualquier par-
te del mundo sin interferencias, ofreciendo sonido cristalino y en el
idioma original; o escuchar la música que se tiene almacenada en la
PC desde cualquier habitación de la casa, a través de conexión Ether-
net o de manera inalámbrica. Incluso cuando NetWorks es sólo un ga-
binete, se puede expandir conectándole un par extra de altoparlantes
estéreo, un subwoofer o un reproductor de CD. Cuenta con control
de balance, panel de iluminación LCD, reloj digital con fechador, vo-
lumen de alarma independiente, entradas auxiliares, control remoto,
cable de corriente desmontable y capacidad de almacenamiento de
hasta 200 estaciones para guardar favoritos; entre muchas otras ca-
racterísticas que lo hacen un equipo high-tech con estilo.

Firebox
Brick USB
Para recordar aquellas épocas en las que todo era tan sencillo
como unir bloques de colores para construir una casa o una
nave espacial; ¿por qué no traer de regreso esas lindas
memorias de la infancia a nuestro acelerado ritmo de vida
en el que todo es llevar, traer y compartir información a
través de pequeños dispositivos con gran capacidad? Y
en respuesta a tan larga pregunta... unos legos USB (que
no son oficialmente legos) disponibles en rojo, azul o ama-
rillo con opción para guardar 2GB ó 4GB de documentos
importantes, música, imágenes o cualquier otro tipo de ar-
chivo digital. Lo mejor de ellos es que se pueden unir unos
con otros, de tal forma que a primera vista, pareciera que sólo
se trata de un grupo de bloques de colores.

60 NOV-ENE 2009 www.sg.com.mx


Palm
Palm Treo Pro
Bajo el lema “Acelerar en lugar de complicar” Palm lanza su telé-
fono inteligente Palm Treo Pro, dirigido al segmento corporativo.
Este modelo está dirigido a los usuarios empresariales que requie-
ren un dispositivo sencillo de usar, que ejecute de forma transpa-
rente aplicaciones basadas en plataforma Microsoft. Esto se logra
gracias a que el Treo Pro funciona sobre la plataforma Windows
Mobile 6.1 Professional, así que
utiliza Outlook como cliente
de correo, y permite abrir y
editar nativamente archivos
Word, Excel y Power Point. Casio
Adicionalmente, soporta
acceso seguro a servidores Exilim EX-Z300
de documentos SharePoint.
Así que si buscas un dispo- Como parte de las nuevas tendencias en cámaras di-
sitivo móvil que te permita gitales para la temporada otoño - invierno 2008, Casio
manejar los mismos docu- lanzó seis modelos de la serie Exilim, y elegimos la
mentos que manejas en la EX-Z300 por llevar consigo la etiqueta de “el mejor des-
oficina de forma rápido y empeño” y por estar dirigida hacia aficionados exigen-
sencilla, el Treo Pro puede tes, que también disfrutan subiendo videos a YouTube.
ser una gran opción. Con 10.1MP y zoom óptico de 4x, modo Make up para
corrección de imagen, pantalla de 3” TFT LCD súper bri-
llante, grabación de video en HD, objetivo de gran an-
gular de 28 milímetros, modo de disparo especial para
escenas nocturnas, detección de rostros y 300 imáge-
nes con una sola carga de batería, resulta una pequeña
gran opción, portátil, digital y, a buen precio.

HP
Mini-Note PC
Como la nueva era de computadoras portátiles es una realidad, HP presenta
su minicomputadora HP 2133, diseñada para el mercado empresarial, pero
perfecta para usarse en la oficina, en la casa, en viajes de negocios o sim-
plemente para llevarla a cualquier parte. Dentro de sus características
principales destacan su peso de 1.10 kilogramos, cubierta de aluminio
cepillado resistente, HP DuraKeys, que es una capa transparente apli-
cada sobre el teclado para proteger el acabado, las letras y caracteres
impresos. Pantalla resistente a ralladuras de 8.9” y armazón reforzado
con bisagras de magnesio. Tecnología inalámbrica Wi-Fi WLAN integrada
y Bluetooth opcional. Memoria de 512MG y 1GB; disco duro desde 120GB; batería
de 3 ó 6 celdas con rendimiento de hasta 55 horas. Opera con Windows Vista, XP o Linux.

www.sg.com.mx NOV-ENE 2009 61


// fundamentos

¿Por qué Cuesta Tanto Darle una Oportunidad


a la Usabilidad?
Mejorando la experiencia del usuario
Por Romeo Márquez

Cada vez más compañías descubren el alto código y lo más importante: mejorar la ex- • Diseño centrado siempre en el usuario.
valor de tener sitios web o Software desa- periencia del usuario. Para lograr un buen diseño de sitio o apli-
rrollados con principios de usabilidad. Aún cación, será importante saber quién es el
así, el 80% de las empresas desarrolladoras Diseño y usabilidad usuario promedio: cuales son sus hábitos
de Software ignoran por completo el tema. • Arquitectura de información. En un sitio de navegación, cómo usa la tecnología o
web, una buena arquitectura es fundamental que tipo de información busca.
Usabilidad: casos de la vida real pues determinará si los usuarios podrán o no
Es muy común que no se tome en cuenta o llegar a la información preparada para ellos. Si se incorpora esa información al diseño,
que se deje para el último aplicar usabilidad el resultado será de mayor utilidad para el
durante el proceso de desarrollo de un sitio Suena sencillo, ¿no?; A pesar de eso, la usuario final.
web o una aplicación. gran mayoría de los sitios web NO cuen-
tan con una verdadera arquitectura de in- Es indispensable diseñar el sitio tomando en
La siguiente es una conversación que he te- formación. Esto se traduce en menús mal cuenta el tiempo de descarga. Los usuarios
nido en más de una ocasión con diferentes organizados con opciones interminables, son cada vez menos pacientes y el tiempo
compañías de desarrollo de software: secciones del sitio con nombres extrava- promedio de espera para un sitio Web es de
gantes, visitantes desubicados y lo más 2 a 10 segundos.
Cliente: Necesitamos que hagan bonita grave: usuarios frustrados.
nuestra aplicación. Esto no significa restringirse de usar mul-
Romeo: Muy bien, ¿cuando empiezan el aná- Las estadísticas lo confirman: timedia en el proyecto, sin embargo será
lisis de requerimientos con el usuario? • El 83% de los visitantes abandonan un importante que el usuario mismo sea quien
Cliente: Eso ya lo hicimos sitio si tienen que hacer demasiados clicks decida cuando y bajo que circunstancias de-
Romeo: ¿ Ah si? para encontrar lo que buscan. sea verla en vez de forzarlo.
Cliente: Así es, el desarrollo lo terminaremos • El 62% deja de buscar un artículo mientras
en una semana más, por eso estamos vien- visitan una tienda en línea. Si tu proyecto tiene más de un tipo de usua-
do quien va a hacer la interfaz de usuario. • 40% de los usuarios no regresan al sitio rio, será mejor diseñar secciones específicas
Romeo: Plop! debido a una mala experiencia relacionada para mostrar el contenido preparado para
con la falta de usabilidad. cada tipo de usuario.
Claro que es posible mejorar en términos de
usabilidad un sitio o un software ya diseña- Es importante definir bien la arquitectura de La Usabilidad en un sitio Web o aplicación
dos, más vale tarde que nunca, pero ¿por información en una aplicación, pues determi- debe:
qué dejarlo para el último o en las manos nará si el usuario la considera fácil de utilizar
equivocadas? y presenta menos resistencia al cambio. • Facilitar el acceso a la información.
• Reducir la posibilidad de cometer errores.
A veces queda la responsabilidad en los pro- Esto puede determinar si un software ten- • Incrementar la productividad del usuario.
gramadores de determinar el lugar de cada drá aceptación en el mercado o dentro de la • Reducir el tiempo dedicado a la capacitación.
cosa en la interfaz, sin embargo la experien- compañía. • Reducir el costo de dar soporte al usuario.
cia indica que eso es un grave error.
A menos que quieras ser como el dueño de • Pruebas de usabilidad. Nada peor que ha-
A continuación veremos por qué tomar en una compañía de software que dijo: No que- cer todo el esfuerzo de lanzar un sitio Web o
cuenta a la usabilidad desde el inicio del remos que nuestra documentación para el software para descubrir que el usuario no
proyecto, ayuda a obtener mejores resul- usuario final sea muy clara. Hacemos mucho encuentra lo que necesita, ni puede realizar
tados en el producto final, evitar reescribir dinero capacitando a nuestros clientes. sus actividades con facilidad.

Romeo Márquez Guzmán es fundador de gelattina, una compañía especializada en web 2.0, diseño de interfaces, E-Marketing, widgets y video para web y
podcasting). Adicionalmente es miembro de la Usability Professionals’ Association. Para Gelattina, ha dirigido proyectos de diseños de interfaces para The Home Depot,
Coca-cola, Banorte, Hoteles Marriott, Aba Seguros entre otros. www.gelattina.com romeo@gelattina.com

62 NOV-ENE 2009 www.sg.com.mx


El mejor método para detectar esas fallas es Si cuesta $1 hacer el cambio en papel, en-
realizar pruebas de usabilidad. tonces cuesta $10 hacerlo en el código y Conclusión
$100 cuando el sitio está en línea” Siempre será mejor aplicar conceptos
Aunque hay métodos sumamente sofistica- - Theresa Cunnington, ComputerWorld de usabilidad desde el inicio del proce-
dos para hacer pruebas de usabilidad, inclu- so de diseño y desarrollo de un proyec-
sive pueden realizarseen papel. • “La acción mas común de un usuario en un to. Para lo cual es importante incluir a
sitio Web es huir!” los usuarios y realizar pruebas de usabi-
En cualquiera de los casos, es mejor realizar - Edward Tufte, Information Design Guru lidad durante el proceso de diseño.
las pruebas durante las etapas más tempra-
nas del diseño y repetirlo varias veces a lo • “La Usabilidad es crítica para cualquier
largo del proyecto, para asegurar una inter- aplicación, sin embargo, para el software Referencias
faz con un alto nivel de usabilidad. orientado a mercados masivos, la usabi- [ “Google en 28 palabras”. tinyurl.com/5ak6fa ]
lidad significa el éxito o fracaso más que [ “El laboratorio de usabilidad de Google”.
Algunas citas interesantes cualquier otra característica.” tinyurl.com/6no9mo ]
• “¿Cual es el costo de hacer feliz al usua- - Dr. Jerrold Grochow, CTO, American [ “La usabilidad incrementa las utilidades:
rio?; Es bajo si se hace al inicio del ciclo de Management Systems 2 casos de éxito”. tinyurl.com/55wrol ]
desarrollo web.

INDEX

DIRECTORIO Anunciante Páginas Sitio

Adecco 2F, 1 www.adecco.com.mx


Avantare 41 www.avantare.com
AMITI 49 www.amiti.org.mx
Brio 39 www.brio.com.mx
Compusoluciones 45 www.compusoluciones.com
Compushow 51 www.compushow.com.mx
IT Institute 9 www.it-institute.org
Microsoft F0 www.microsoft.com.mx
Milestone Consulting 4F www.milestone.com.mx
NYCE 3F www.nyce.org.mx
SafeNet 11 www.safenet-inc.com
SG Campus 13 www.sgcampus.com.mx
SIE Center 17 esicenter.itesm.mx

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

www.sg.com.mx NOV-ENE 2009 63


// carrera

¿Cómo Enseñar a los Programadores del Futuro?


¿Estructurada, POO o Scripts?
Por Gunnar Wolf

Nuestro gremio se caracteriza por conformar- temos, ¿qué y cómo enseñan a los alumnos “cerca del metal”, como desarrollos de siste-
se por dos principales perfiles: Autodidactas las universidades en nuestro País, las ca- mas tiempo real, embebidos, controladores
y escolarizados. Esto obedece a que el cam- rreras relacionadas con el cómputo? ¿Qué de hardware o software orientado al alto rendi-
po es aún novedoso, y es aún posible para un perfiles reales de egreso hay de cada una miento, es fundamental dominar estos temas.
aficionado ir obteniendo de manera gradual e de estas carreras (desde la Licenciatura en
independiente los conocimientos para llegar Informática Administrativa, pasando por las Por otro lado, para los programadores que par-
a un nivel de competencia comparable con Ingenierías, con perfiles orientados más ha- ten de un entorno meramente procedimental,
quien estudió una carrera formalmente. cia Sistemas, Electrónica u otras variantes, la POO se presenta como una complejidad adi-
y hasta las Ciencias de la Computación)?  ¿Y cional, un obstáculo para la manera que tienen
El programador autodidacta tí­picamente es cómo explicamos que, a la hora de buscar un y conocen de solucionar los problemas.
un miembro muy valioso del equipo de desa- trabajo, tan frecuentemente todos son pues-
rrollo, dado que llegó a acumular sus conoci- tos dentro de la misma bolsa? Si bien la discusión académica respecto a es-
mientos -teóricos y prácticos por motivación tas dos escuelas está tan viva como cuando
propia. Si bien es común que su formación El primer obstáculo al que creo todos los se planteó por primera vez hace más de 20
muestre importantes “agujeros” cognitivos programas académicos deben reaccionar es años (p.ej. 2 y sus respuestas en3), creo yo
en aquellos campos que requieren mayor que, muchos alumnos sienten que progra- que el problema de la motivación reside en
rigor teórico/matemático, o en aquellos por mar es una tarea tediosa, un rol que se verán no enfocarnos en lenguajes y marcos “sim-
donde el interés no lo llevó, comúnmente los forzados a desempeñar durante los prime- ples” (sin ser de juguete), que no permiten
subsanará tan pronto se enfrente a situacio- ros años de su trabajo, en lo que logran un al alumno experimentar la “gratificación
nes que los requieran. Sin embargo, es justa- ascenso a un puesto de “responsabilidad”. instantánea” de lograr resultados atractivos
mente en las áreas más teóricas y áridas del Esto es, en buena medida, por lo torpe que tras apenas un primer acercamiento. Los len-
cómputo donde hay una mayor proporción resulta la enseñanza de los conceptos y ha- guajes denominados “de scripts” (Python,
de profesionales con éste perfil. bilidades básicos de la programación. Ruby, Perl, y un largo etcétera) deben ser
enseñados de otra manera, mucho más gra-
No puede ser casualidad que dentro de los Hay dos escuelas básicas: Comenzar ense- dual, pero sin duda ayudan a mantener alta
desarrolladores de Software Libre haya tan ñando programación utilizando un lenguaje la motivación y baja la frustración.
alta proporción de autodidactas, gente for- mí­nimo aunque completo, apto para transmitir
mada en otras disciplinas, que ha ido en- los fundamentos de la estructura y el control Pero... ¿No son lenguajes con relativamente
contrando su nicho de interés y trabajo en el de flujo (al estilo de C o del venerable Pascal). baja penetración corporativa? Así­ es, y eso
cómputo, encontrando que en la creación de En contraposición a ellos, muchos otros acadé- representa otra ventaja - Una de las principa-
herramientas cubran sus necesidades parti- micos defienden comenzar enseñando con un les cualidades de un programador debe ser la
culares de una nueva vocación. paradigma completamente POO, con lengua- capacidad de aprender tecnologías nuevas.
jes como Java o como C#. Y ambas alternativas Al enseñar con herramientas distintas, ayu-
Podríamos dedicar un amplio espacio a nos dejan importantes huecos por llenar. damos a que los estudiantes desarrollen la
analizar la relación entre el conocimien- importante habilidad de “aprender a apren-
to adquirido formal e informalmente, y en Para alguien que inició con lenguajes de der”, no encasillarse en una herramienta.
cómo insertar a estos en un esquema aca- muy alto nivel, resulta más difícil com- ¡Que se hagan el hábito de aprender nuevos
démicamente más formal... Pero el tema del prender la traducción a código de más lenguajes para diferentes retos!
que quiero ocuparme en esta ocasión es de bajo nivel y la implementación en hard-
quien viene de una enseñanza escolarizada. ware del mismo, especialmente lo relativo Referencias
a administración de memoria y el órden [ 1. Drepper, Ulrich. “What Every Program-
¿Cómo transmitir el conocimiento, el inte- de complejidad; en este sentido, una de mer Should Know About Memory”people.
rés y el entusiasmo, a los programadores las más brillantes exposiciones la hace Ul- redhat.com/drepper/cpumemory.pdf ]
escolarizados, para que alcancen un nivel rich Drepper, en su texto “What Every Pro- [ 2. “Just say ‘A Class Defines a Data Type’”,
de habilidad similar al de los autodidactas? grammer Should Know About Memory” 1. mags.acm.org/communications/200803 ]
Para esto, es fundamental que nos pregun- Para todas las aplicaciones que corren [ 3. “Forum” ,
mags.acm.org/communications/200805 ]

Gunnar Wolf ha sido usuario y promotor de Software Libre en México por más de diez años. Es fundador del Congreso Nacional de Software Libre (CONSOL)
y miembro externo del Departamento de Seguridad de Cómputo en la UNAM. Participa como desarrollador en el proyecto Debian desde el 2003. Trabaja como
administrador de red y en el desarrollo de sistemas para el Instituto de Investigaciones Económicas de la UNAM.

64 NOV-ENE 2009 www.sg.com.mx

También podría gustarte