SG13 Videojuegos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 60

Análisis de ROI

• POJOs y
Frameworks Ligeros

• Evaluación de
Arquitecturas

Software Guru CONOCIMIENTO EN PRÁCTICA


Año 03 No.01 • Enero-Febrero 2007 • www.softwareguru.com.mx

ESPECIAL
Desarrollo de
Software en
Universidades
[ ENTREVISTAS ]
Desde Creanimax
Bill Plympton
René Castillo
Ernesto Gálvez

Desarrollo de
Videojuegos
¿Por dónde comenzar?
México, $65.00

[ Novedades ]
Noticias • Eventos • Fundamentos • UML • Infraestructura • Reflexiones
WCF
// CONTENIDO

directorio
Dirección Editorial
Pedro Galván

Dirección de Operaciones
Mara Ruvalcaba

Coordinación Editorial
Susana Tamayo

Asesoría Editorial
Edgardo Domínguez

Arte y Diseño
Dafne Ortega
Oscar Sámano

Consejo Editorial
Francisco Camargo, Ralf Eder, Raúl Trejo,
Guillermo Rodríguez, ITESM-CEM;
Hanna Oktaba, UNAM-AMCIS;
Luis Cuellar, Softtek;

Editorial Luis Vinicio León, e-Quallity - ITESO.

Colaboradores
Ariel García, Sergio Orozco,
Quizá muchos de ustedes se vean sor- plementamos todo esto con las opiniones Luis Daniel Soto, Jaime Sánchez,
prendidos con la portada de esta edición, de nuestros columnistas, que ya son par- Marco A. Dorantes, Jorge Palacios, Joaquín
la número13 de SG, la primera del año que te fundamental del contenido; echaremos Arellano, Carlos Gutiérrez, Oscar Guillén,
Angélica Su, Alfredo Calvo, Ixcoatl Pérez, Omar
apenas comienza. Y es que para abrir este un vistazo por Windows Communication
Gómez, Ana Vázquez, Mario Gutiérrez, Haarón
2007, decidimos enfocarnos en un tema Foundation, que es uno de los pilares de
González, Charlie Macías, Emilio Osorio,
que está de moda: los videojuegos. Al Windows Vista; veremos cómo determi- Consuelo Jiménez, Joel Villagrana.
igual que todos los temas que abordamos, nar el ROI de un esfuerzo de mejora de
hemos buscado hacerlo desde la perspec- procesos, y también conoceremos sobre Ilustración de Portada
tiva no de usuarios, sino de creadores. Por los famosos POJOs. Vale la pena hacer un www.tollhaus.com.mx
otra parte, escoger este tema nos permi- paréntesis para mencionar que durante
tió tomarnos algunas libertades no sólo todo el tiempo que estuvimos haciendo Ventas
en el diseño, sino también en los conte- este número, cada que se mencionaba Claudia Perea
nidos. Consideramos que este número el término POJO, Susana no podía evitar
tiene un buen balance de temas y niveles pensar en cierta ave de color amarillo. Marketing
de profundidad. Tenemos desde artículos Natalia Sánchez
amigables que van dirigidos al público en Mientras editábamos los textos de este
Circulación y Subscripciones
general, hasta los muy clavados que son número, llegamos a la conclusión de que
Daniel Velázquez
para nuestros fieles gurús. Tal vez por tienen un dejo de nostalgia, porque la ma-
error llegue a haber algunos despistados yoría de los colaboradores que participaron, Contacto
que tomen esta revista pensando que en- hacen referencias al pasado, a su juventud. [email protected]
contrarán información sobre los últimos En realidad, queremos llegar tanto a los jó- +52 55 5239 5502
juegos y consolas. Al principio se llevarán venes que apenas comienzan como a todos
una desilusión, pero estamos seguros que aquellos que crecieron mirando la evolución
se les pasará cuando descubran que aquí de un mundo que hoy nos ha rebasado.
hay información para aprender a desarro- SG Software Guru es una publicación bimestral ed-
llar sus propios juegos. Equipo Editorial itada por Brainworx S.A. de C.V., Malinche no. 6, Col.
El Parque, C.P. 53398, Naucalpan, México. Prohibida
la reproducción total o parcial del contenido sin previo
Además del desarrollo de videojuegos, aviso por escrito de los editores. Todos los artículos son
tenemos un artículo especial que recalca FE DE ERRATAS: responsabilidad de sus propios autores y no necesari-
amente reflejan el punto de vista de la editorial. Reserva
la importancia y necesidad de los centros Queremos pedir una disculpa porque en el número
de Derechos al Uso Exclusivo: 04-2004-090212091400-
de desarrollo de software en las univer- anterior Jorge Palacios escribió el reportaje del Cluster 102. Certificado de licitud de título: 12999. Certificado
sidades. Consideramos que estos centros FidSoftware y no apareció su crédito; por otra parte, el de licitud de contenido:10572. ISSN: 1870-0888. Reg-
istro Postal: PP15-5106. Se imprimió en diciembre de
son vitales para generar los profesionis- subtítulo en la columna de Hanna Oktaba debió decir:
2006 en Litográfica Roma. Distribuido por Rrecca Com-
tas de software que necesitamos. Com- International Process Research Consortium (IPRC). ercializadora y Sepomex.

02 ENE-FEB 2007 www.softwareguru.com.mx


24 contenido
ene-feb 2007

EN PORTADA
Desarrollo de Videojuegos
Nuestro artículo de portada en esta ocasión,
abarca desde los primeros pasos hacia la
creación de videojuegos hasta un amplio
panorama de esta industria y la oportunidad
que representa para nuestro país.

Productos
LO QUE VIENE 12
IBM Rational SDP, Apache Axis 2, JBoss
Seam y Unity3D

NOVEDADES 14
Windows Communication Foundation

Especial
Centros de Desarrollo de
Software en Universidades 16

Columnas
Prácticas
Tejiendo Nuestra Red 08 Cátedra y Más 46
por Hanna Oktaba y Ana Váquez por Mario Gutiérrez MEJORA DE PROCESOS 36
Análisis de ROI
Mejora Continua 10 Tierra Libre 48 La mejora de procesos requiere una inversión
por Luis Cuellar por Emilio Osorio significativa de recursos. Alfredo Calvo y Angélica
Su nos explican cómo estimar el ROI.
Tendencias en Software 44
por Luis Daniel Soto DISEÑO 38
POJOs y Frameworks Ligeros
Ixcoatl Pérez nos muestra cómo combinar POJOs
con frameworks como Spring e Hibernate, para
desarrollar aplicaciones empresariales.

ARQUITECTURA 40
Evaluación de Arquitectura de Software
Omar Gómez nos enseña a evaluar arquitecturas
para determinar si cumplen con los requerimientos.

En Cada Número
Noticias y Eventos 04
CLÚSTERS 06
UML 42

20 Entrevista
Bill Plympton, René Castillo, Ernesto Gálvez
Fundamentos
INFRAESTRUCTURA
REFLEXIONES
50
52
56

www.softwareguru.com.mx ENE-FEB 2007 03


// NOTICIAS

Oracle Open World

Del 22 al 26 de octubre, los más innovadores desarrollos


en tecnología, aplicaciones y soluciones desfilaron por el
Centro Moscone de San Francisco, California, durante el
Oracle OpenWorld 2006.
En un imponente ambiente de alrededor de 41 mil partici-
pantes de todo el mundo, se llevaron a cabo más de 1,400
sesiones en torno a las principales aplicaciones de Ora-
cle, 400 demos en vivo de desarrolladores, conferencias
a cargo de importantes usuarios y ejecutivos de Oracle, y
una Expo con más de 300 expositores. Durante el evento,
como noticia principal y sorpresa para muchos, Oracle
anunció que dará soporte total a estándares abiertos, por
medio del programa llamado Unbreakable Linux.

Lanzamiento de Windows Vista


El pasado 29 de noviembre se realizó la presentación de Win-
dows Vista y Office 2007, dedicada a los desarrolladores de
software y profesionales de TI. Dicho evento se realizó en el
World Trade Center de la Ciudad de México, y resaltó por su
magnitud y variedad. La gran sorpresa fue que la conferencia
de arranque la impartió Jesús Ramírez, Director Técnico de la
Selección Sub 17 de futbol, actuales campeones mundiales.
Su plática estuvo enfocada en el poder de la mente cuando
se aplica de manera correcta, y en la importancia del trabajo
en equipo. Posteriormente se llevaron a cabo sesiones para
ahondar en los distintos detalles de esta nueva versión, y el
nuevo modelo de desarrollo de aplicaciones que introduce.

Toman Protesta los Miembros de


la Mesa Directiva de la ANIEI

El pasado 12 de diciembre, en las instalaciones de la Rec-


toría de la UAM, se llevó a cabo la toma de protesta de los
miembros de la Mesa Directiva de la Asociación Nacional
de Instituciones de Educación en Informática (ANIEI). Para
su periodo 2006 - 2008, la Lic. Ma. de Lourdes Sánchez, por
segunda ocasión, estará a cargo de la presidencia de esta
asociación. La ANIEI ha fungido como pieza fundamental
en la vinculación Industria-Academia-Gobierno, ya que en-
tre sus principales objetivos está el ejecutar la estrategia
2 del programa PROSOFT, enfocada en diseñar el modelo
paracurricular de Desarrollador de Software, Ingeniero de
Software, Arquitecto, y Administrador en Proyectos, así
como adecuar los modelos educativos relacionados con la
informática, tareas clave para el esperado crecimiento de la
industria de software en México.

04 ENE-FEB 2007 www.softwareguru.com.mx


// EVENTOS

13 al 16 Febrero 2007 27 Febrero al 2 Marzo 2007


CONSOL 2007 Linux World Conference & Expo
Congreso Nacional de Software Libre Expo Comm 2007, Von Conference & Expo, Expo Móvil
Facultad de Ingeniería UNAM, Cd. de México Centro Banamex, Cd. de México
Info: www.consol.org.mx Info: www.expocomm.com.mx
Email: [email protected] Tel: (55) 1087-1650 ext. 1160
Email: [email protected]

27 Febrero 2007 22 al 24 Marzo 2007


Tendencias 2007 III Simposio Metodología Seis Sigma
Select Centro de Investigación en Matemáticas (CIMAT)
Centro Banamex, Cd. de México Hotel Real de Minas, Guanajuato, Gto.
Info: www.select.com.mx Info: www.cimat.mx/Sitios/seissigma
Tel: (55) 5256 1426 Email: [email protected]
Email: [email protected]

Softtek, Única Empresa Privada que


Opera dos Centros CMMI5 y uno CMM5 TI-M, Primera Empresa en el Norte
en América Latina de México en Obtener CMMI Nivel 3
Softtek concluyó con éxito la valoración en CMMI 5 de sus Centros de TI-M (anteriormente TI Móvil) fue acreditado bajo el nivel 3
Entrega de Servicio Near Shore en Aguascalientes y México D. F. Estos de CMMI. La implementación y evaluación fueron posibles
se suman al Centro en Monterrey, que fue evaluado CMM 5 en 2004. gracias al apoyo de consultores de It Era. El proceso de
Blanca Treviño, Presidente y CEO de Softtek comentó: “El contar con implementación tuvo una duración total de dos años, y el
una red de Centros certificados en los más altos niveles de CMM, grupo evaluador fue dirigido por el SCAMPI Lead Appraiser
proporciona cuantiosos beneficios a nuestros clientes en función de Carlos Galván.
productividad, eficiencia en costos y certeza de resultados.” Softtek
ha sido pionero en la implementación de prácticas de ingeniería de soft- TI-M se ha destacado por minimizar el riesgo en el portafolio
ware en América Latina, y en los servicios de Near Shore outsourcing. de proyectos de TI y maximizar el rendimiento de las inver-
Hoy en día, la empresa cuenta con 7 Centros, 4 de ellos en México, 2 en siones de clientes como Ternium-Hylsa, Sigma Alimentos,
Brasil, y uno más en España, a los que se sumará un nuevo Centro en Ipsos Bimsa, entre otros.
Asia que iniciará operaciones hacia finales de 2007.

IMSS, Primer Organismo de Gobierno GULEV Congreso Internacional de Software


en Alcanzar la Evaluación CMMI Libre 2006
La Coordinación de Tecnología para la incorporación y Recau- Del 7 al 9 de diciembre se llevó a cabo la VI edición del GULEV
dación del Seguro Social (CTIRSS) fue acreditada con el nivel Congreso Internacional de Software Libre, en Cancún, Quintana
3 de capacidad y nivel 2 de madurez de CMMI. La CTIRSS, Roo. Este año se contó con la presencia de algunas de las más
a cargo del Lic. Marco Rojano, quien forma parte del equi- importantes figuras del Software Libre como Miguel de Icaza
po del Lic. Igor Rosette, Director de Innovación y Desarrollo (Novell) quien ha iniciado proyectos como GNOME y Mono,
Tecnológico del IMSS, se ha convertido en la primera unidad Rasmus Lerdorf creador de PHP uno de los lenguajes de progra-
de gobierno en México y una de las 50 a nivel mundial en ob- mación más populares en el mundo, Bruce Momjian creador de
tener dicha evaluación. Esto representa una recompensa al PostgreSQL un potente gestor de Bases de Datos, Bdale Garbee
esfuerzo de más de 3 años de trabajo de un área conformada (HP) y por primera vez en un evento en latinoamerica, Guido Van
por más 60 personas, quienes además de desarrollar y man- Rossum, creador del lenguaje Python.
tener en operación más de 50 aplicaciones que soportan los
procesos de incorporación y recaudación de todo el Institu- El evento fue un éxito, y se anunció que próximamente habrá
to, se pusieron como meta el hacer crecer una organización muy gratas sorpresas alrededor del evento de Software Libre
de clase mundial. con mayor tradición en México.

www.softwareguru.com.mx ENE-FEB 2007 05


// REPORTAJE /* CLÚSTERS */

Teraloc
De Morelos para Todo México
Por Jorge Palacios

Teraloc es una integradora de empresas del área de Tecnología de Información, que está basada en la ciudad de Cuernavaca, Morelos y
opera desde 2003. Principalmente se enfoca a desarrollar y comercializar productos de sus asociados para la gestión publica, apoyándose
en diferentes herramientas y distintas metodologías en las que se trabaja la administración de proyectos, ITIL, PSP/TSP.

Teraloc cuenta con 6 socios, que son: Pero las habilidades del personal no son todo. También se necesitan pro-
•Synerware - Especializada en el software para agencias automotrices. cesos maduros y repetibles, y clientes interesados en adquirir tus produc-
•Morelos Web - Dedicada al desarrollo y hosting de paginas web tos y servicios. Fue por eso que desde un inicio, Teraloc definió un plan de
para el Estado de Morelos. desarrollo estratégico, que además de la capacitación, consideraba otros
•Victec - Enfocados al desarrollo de aplicaciones de referenciación aspectos como la definición de procesos, y la generación de demanda.
geográfica.
•AE Sistemas - Desarrolla aplicaciones administrativas dando servi- Los resultados de tales esfuerzos han sido, sin duda positivos, dan-
cios a la medida de las necesidades del cliente. do como resultado que la oferta de valor de Teraloc sea más competi-
•Pineda y Asociados especializados en metodologías para BPM. tiva en términos de calidad y precio. Adicionalmente, Teraloc provee
•AFRM procesos - que se dedica al modelado de procesos. soluciones para la comunidad, tales como apertura de empleos y
soluciones a nivel gubernamental.
La unión de estas seis empresas, da como resultado, Teraloc, que
como ya explicamos, es una integradora de empresas de TI en el es- Mercado meta
tado de Morelos. Estas forman parte de la Asociación de la Industria Teraloc tiene bien definido cual es su mercado meta, el cual está
del Software en Morelos, que es la AISAC. Teraloc surge con el obje- compuesto de:
tivo de crear un corredor tecnológico en esta zona, estableciéndolo •Empresas medianas y grandes que necesiten redefinir y/o automa-
como la integradora y la Asociación de Intelsoft. tizar sus procesos internos y externos a través de diversas tecno-
logías de información para dar un soporte adecuado en la toma de
¿Por qué Teraloc? decisiones.
El vocablo Teraloc proviene de la combinación del prefijo Tera, que •Micro y pequeña empresa agrupada.
se refiere a cantidad 1x1012, como se entiende en Megabytes, Giga- •Gobierno en sus 3 niveles.
bytes y Terabytes, y Loc, que se refiere a las siglas utilizadas para
referirse a líneas de código (lines of code). Este nombre se debe a Principales logros
que el enfoque inicial estaba orientado a la maquila de desarrollo Entre los logros más recientes de Teraloc y sus empresas asociadas,
de software. Sin embargo, la experiencia ha hecho ver a Teraloc, podemos resaltar los siguientes:
que es mejor enfocarse en segmentos de mayor valor, y por eso ha •Selección de Syner IP para el programa de aceleración Techba en
decidido enfocarse en la gestión y automatización de procesos de Austin, Texas.
negocio (BPM), y metodologías de administración de proyectos y •Creación de la cátedra AISAC en el ITESM Campus Ciudad de México
desarrollo de software. y Santa Fe.
•Definición del Modelo APTI de TeraLOC para la administración de
Como ya mencionamos, Teraloc nació hace cuatro años, al parejo proyectos de TI y su adopción en la AISAC.
del programa ProSoft. Desde un inicio han contado con el apoyo de •Plataforma e-learning para capacitación a distancia vía web.
dicho programa, y han aprovechado los recursos provenientes de •Integración de IT Learning en el consejo de educación a distancia de
este fondo para dirigirlos principalmente al área de capacitación. la Secretaría de Economía.
De hecho, Teraloc fue la primera compañía del estado de Morelos
en firmar un convenio con Prosoft, siendo la primera entidad para Para mayor información, visita www.teraloc.com.
el desarrollo del impulso del software.

La primera etapa en el desarrollo de Teraloc, estuvo enfocada en


la generación y formación de recursos humanos. Teraloc desde el
principio se ha manejado con un enfoque académico en la for-
mación de gente, generando confianza a través de cursos de ca-
pacitación donde reciben certificaciones conjuntas. De acuerdo
con la gente de Teraloc, esto ha sido la base para establecer lazos
de comunicación y, que la integradora siga funcionando y dando
grandes resultados.

06 ENE-FEB 2007 www.softwareguru.com.mx


// COLUMNA /*TEJIENDO NUESTRA RED*/

Lo Que Pasó en Luxemburgo


Avances de MoProSoft en el WG24

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

E n esta ocasión voy a contarles sobre la


segunda participación de la Delegación
Mexicana en una reunión del ISO/IEC JTC1
Después de hacer un análisis de los objetivos
de cada uno de los procesos, así como los
costos y beneficios asociados, los procesos
son herramientas de diversos tipos para
ayudar en la implementación de estas prác-
ticas en las VSE, como son la secuencia de
SC7 WG24, cuyo nombre es “Software Life seleccionados fueron los que se encuentran actividades, roles, descripciones de produc-
Cycle Profiles and Guidelines for use in Very en la categoría de Operación: Administración tos, formatos, etcétera.
Small Enterprises (VSE)”. de Proyectos Específicos (APE) y, Desarrollo
y Mantenimiento de Software (DMS). La próxima reunión será en mayo de 2007,
Ya en el número de julio-agosto 2006, plati- en San Petersburgo. Para entonces se espe-
camos sobre la primera participación de la Los participantes se dividieron en dos gru- ra que el delegado de Finlandia, Timo Varkoi,
Delegación en la ciudad de Bangkok, donde pos para analizar las actividades de cada experto en el estándar ISO/IEC 12207, ten-
nuestra norma mexicana basada en MoPro- uno de estos procesos, y seleccionar las que ga el mapeo de MoProSoft hacia esa norma,
Soft y EvalProSoft fue presentada y se selec- consideraban indispensables para el primer que este primer perfil haya sido revisado o
cionó, de entre varios documentos similares perfil. Nuestro papel consistió principalmen- probado en los países de origen de los dele-
de otros países como base para los trabajos te, en explicarles el “porqué” de algunos ele- gados, y que los documentos del grupo ten-
del grupo. En esa primera reunión, la Delega- mentos que tiene el modelo y su relación con gan un número ISO/IEC asignado.
ción Mexicana se comprometió a realizar la la práctica que conocemos.
traducción de MoProSoft al inglés; realizado El trabajo va para largo. Ya nos dimos cuenta
en un grupo de trabajo que integra el NYCE Posteriormente, se realizó una discusión que con dos reuniones de trabajo al año no
(el organismo que emitió la norma), y que se conjunta de ambos grupos para generar se puede avanzar mucho. El objetivo es ge-
entregó a través de la Dirección General de consenso. Cabe aclarar que no contaban con nerar una secuencia de 3 a 4 perfiles, cada
Normas, al responsable del WG24. el “acordeón”, de la versión “coloreada” por vez más amplios, no necesariamente corres-
niveles de capacidades. pondientes a niveles de capacidades o de
La Delegación en esta ocasión estuvo inte- madurez, que sirvan de guía a las empresas.
grada por Francisco López Lira, Ana Vázquez En general, las actividades seleccionadas del El perfil final incluirá a MoProSoft completo.
y yo, que somos miembros de la AMCIS y proceso de Administración de Proyectos Espe-
hemos trabajado en diversos proyectos rela- cíficos fueron las que corresponden al nivel de Y de Luxemburgo... lo que les podemos contar
cionados con la norma. El objetivo fue incluir capacidad 1, y de Desarrollo y Mantenimiento es que es un país con historia milenaria. Su nú-
en los productos del WG24 la mayor canti- de Software de los niveles 1 y 2. Dicho de otra mero de habitantes no rebasa a la delegación
dad de elementos de MoProSoft. La reunión forma, del proceso APE se eligió la planeación, más pequeña del DF, no tiene fronteras; es por
se llevó a cabo en Luxemburgo del 2 al 6 de registro y control de los principales parámetros supuesto muy limpio, y tiene la parte antigua
octubre, y asistieron delegados de Bélgica, de administración de proyectos como costo, con castillos y callejones como de cuento de
Luxemburgo, Finlandia, Canadá, Irlanda, Es- tiempo y riesgo, mientras que del DMS se es- hadas. Sin embargo, es un país fundador de la
tados Unidos, Tailandia, Sudáfrica y Austra- cogieron las actividades de Especificación de Unión Europea, un país que hace competencia
lia, siendo ésta, la primera participación de Requerimientos, Análisis y Diseño, Construc- a Suiza en el área bancaria y, que a la vez, está
los dos últimos. ción, Integración y Pruebas, con sus respecti- preocupado por apoyar e innovar a sus peque-
vas verificaciones y validaciones. ñas empresas. Nuestros anfitriones fueron del
El objetivo de dicha sesión fue definir el con- Centre de Recherche Public Henri Tudor, el cual
junto de actividades que las VSE implemen- En adición, se incluyeron algunas activida- desde hace veinte años se dedica al apoyo de
tarán en su primer ciclo de mejora, y que en des para controlar los cambios y las ver- las PyMES en el uso de las Tecnologías de In-
adelante, llamaremos “primer perfil”. Las ac- siones de los productos, subsanando así la formación para su beneficio.
tividades realizadas fueron las siguientes: ausencia del proceso de Conocimiento de la
Organización en este primer perfil. Otra vez nos da envidia, ¿verdad? Mejor
•Presentación de las cuatro partes de la aprendamos de otros y agreguemos nues-
norma MoProSoft. ¿Nada nuevo? En realidad no, ya que estas tros granitos de arena. Porque lo que pode-
•Selección de los procesos de MoProSoft buenas prácticas están contenidas en otros mos hacer, también puede servir de ejem-
que integrarán el primer perfil. estándares como el ISO/IEC 12207, además plo a los demás.
•Selección de las actividades de estos pro- de ser conocidas por buena parte de la in-
cesos que integrarán el primer perfil. dustria. Lo que sí pretende aportar el WG24, — Hanna Oktaba y Ana Vázquez

08 ENE-FEB 2007 www.softwareguru.com.mx


// COLUMNA /*MEJORA CONTINUA*/

Procesos y Variabilidad
La Diferencia entre Productos y Servicios

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.

Ú ltimamente he tenido que viajar a diferentes lugares, lo que me


ha dado algo de tiempo para leer. En la Harvard Business Re-
view de noviembre 2006, encontré un artículo sumamente interesan-
toman en su momento, y lo mejor es tener gente inteligente que pueda
resolver de forma autónoma todos los problemas que se le presenten.
El proceso que se siga, será a discreción de dichos individuos.
te, titulado: “Breaking the Tradeoff of Efficiency and Services”.
La estrategia de calidad inteligente, es precisamente la que se mue-
El artículo, básicamente habla sobre el hecho de que una de las grandes ve en medio de estos dos mundos, la que da una serie de reglas,
diferencias entre las compañías de productos y las de servicio, radica en prácticas técnicas y lineamientos. Se asegura que éstos se sigan de
que en una organización de servicios, el cliente constantemente irrumpe acuerdo a como se planeó al principio del proyecto, y tiene apoyo
en la operación, a través de un comportamiento impredecible, pidiendo constante del resto de la organización para asegurarse de lograr un
servicios en tiempos no apropiados, una gran cantidad de actividades buen balance entre flexibilidad y variabilidad.
adicionales, o cambiando continuamente de opinión. Esto genera gran-
des variaciones en el proceso, y hace mucho más complicada la opera- Ni muy muy ni tan tan
ción orientada a servicios, que la enfocada a producto. Veamos de nuevo el desarrollo de software como un servicio. Los
procesos de calidad tienen dos funciones primordiales:
En un servicio, conforme aumenta la variabilidad, también aumenta 1) Lograr generar un producto sin defectos y bajo un presupuesto
el costo. Por ejemplo, si el cliente cambia con frecuencia de decisión, predeterminado
en cuanto a si quiere su sistema con una funcionalidad específica 2) Reducir el costo de manera constante al capitalizar el conocimien-
o no, el costo de la aplicación se eleva, y se genera trabajo que fi- to, para que el siguiente producto se haga de forma más rápida.
nalmente no se utilizará. Para poder resolver esta problemática, el
autor del artículo que leí, plantea la necesidad de definir el tipo de En otras palabras, estamos buscando complacer al usuario lo más
interrupción que genera el cliente, y tomar la decisión entre: eficientemente posible, por ende, con la menor variación posible.
a) Manejar la variabilidad en forma controlada. Por ejemplo, los pro-
cesos de Starbucks están diseñados para ofrecer un gran número de Así, todo proyecto debe iniciar preguntándole al cliente cuáles son sus
opciones, y aun así, controlarlas dentro del mismo proceso. requerimientos no funcionales más importantes y por qué. Con esta
b) Reducir la variabilidad. Por ejemplo, un restaurante maneja tipos información, podemos crear una serie de métricas que nos ayuden a
de cocina y menús para reducir las posibilidades de variación dentro ver si estamos cumpliendo con lo que un cliente en particular consi-
de las elecciones a seguir. dera calidad. Algunos clientes tienen muy claro que las métricas más
importantes de su proyecto son la entrega a tiempo, sin defectos y
Máquinas y personas bajo el presupuesto acordado. Sin embargo, tenemos muchos otros
Tal vez lo que más me llamó la atención del artículo, fueron las implica- con ideas diferentes, hay algunos que no les preocupan esas cosas;
ciones que esta diferencia entre productos y servicios tiene en el área de buscan una compañía con la que se puedan entender, por lo que para
sistemas. Todos sabemos que desarrollar sistemas es, tanto un produc- ellos, lo más importante es la flexibilidad en la forma de trabajo, y una
to (el sistema en cuestión) como un servicio (análisis de la problemáti- gran comunicación entre las personas del proyecto. Mientras que a
ca, diseño de la solución, etcétera). Esta dualidad hace que el desarrollo otros, lo que les interesa es que su gente se quede con el conocimien-
de sistemas sea una labor sumamente compleja y llena de decisiones, to necesario, aunque cueste más caro. Sin importar cuáles son los re-
y el gran problema que nos trae es que lo que a un cliente dejó suma- quisitos, es muy importante conocerlos, medirlos, y en base a ellos,
mente maravillado, a otro simplemente no le trae ningún valor, por lo establecer en dónde se debe guiar al cliente y en dónde seguirlo.
que es difícil hacerlo repetible. Por desgracia, muchas de las teorías de
Ingeniería de Software y modelos de Calidad, se basan en modelos de A final de cuentas
manufactura, en donde el cliente genera una variabilidad mínima. Bajo ningún motivo, un proceso substituye a tener gente capaz de
resolver y entender las necesidades del cliente. Por lo tanto, la idea
Esto nos lleva a una amplia diferenciación entre dos extremos de pen- de que exista un proceso, es buscar cómo disminuir, en la medida
samiento: por un lado están los que ven la calidad como una lista de posible, la mayoría de las variaciones en el proyecto, para así lograr
proceso, plantillas, y reglas inquebrantables que todo proyecto debe resultados más eficientes, y al mismo tiempo tener a nuestros clien-
seguir para minimizar la variabilidad. Por otro lado, están los que tes siempre contentos, sin importar lo que estén buscando.
piensan que no tienen sentido los modelos de calidad, pues por más
procesos que se tengan, siempre existirán miles de decisiones que se —Luis Cuellar

10 ENE-FEB 2007 www.softwareguru.com.mx


// PUBLIREPORTAJE

eDeveloper V10 de Magic Software Enterprises es el nuevo paso evoluti-


vo de una herramienta de programación que por más de dos décadas, ha
estado entregando tecnología innovadora para los desarrolladores de
aplicaciones que se enfocan en minimizar los costos, ajustándose a los
estándares que prevalecen en la industria.

Lo que nos permite ser compatibles con las Arquitecturas Orien-


tadas a Servicios (SOA), y a su vez, ser una herramienta para el
Desarrollo de Aplicaciones Orientadas a Servicios (SODA), pero
siempre contemplando los estándares existentes en la industria;
como en el caso, por poner un ejemplo, de nuestra conexión a

M uchos de los conceptos actualmente aceptados como


parte esencial para la administración de todo el ciclo de
desarrollo, han sido la parte central de la productividad de eDe-
Systinet, que es un aplicativo estándar para la comunicación,
tanto de consumo como de proveedor de Web Services.

veloper a través de toda su historia. Nuestros desarrollos se guardan en documentos XML, pero sin que
el desarrollador tenga que escribir una sola línea XML. eDeveloper
Estos conceptos incluyen: repositorios para abarcar las des- es tan compatible con XML, que puede ocupar un documento XML,
cripciones de una aplicación completa, Reglas de Negocio para y editarlo como si se tratase de una tabla de una base de datos.
obtener los mayores niveles de abstracción, Desarrollo Decla-
rativo por medio de metadatos para reducir la codificación de El entorno de desarrollo, conocido como Editor de Tareas, con-
manera drástica. junta todas las características necesarias para el desarrollo de la
lógica, así como la presentación de un programa o tarea.
Todo esto se logra sin definir una sola línea de código, ya que
todas la reglas de negocio están interconstruidas en el motor au- La edición de las formas que se dispondrán al usuario final, po-
tómata, que es el núcleo central de la tecnología Magic. drán tener la mejor presentación, siendo compatibles con los es-
tilos gráficos de Windows XP, para el caso de aplicaciones C/S,
Esto nos lleva a ser un Lenguaje visual 4GL y, a ser considerados o compatibles con los estilos diseñados por el editor de páginas
como una herramienta RAD+D, donde la última D, es la facilidad HTML de su elección, para el caso de aplicaciones Web.
de poner en Ejecución (Deployment) nuestros desarrollos.
El programador podrá trabajar de la misma forma en C/S como en
Aunado a esto, tenemos la posibilidad de que las aplicaciones de- Web, basados en un mismo paradigma de desarrollo. Todo está
sarrolladas con eDeveloper sean rápidamente escalables, facilitan- basado en una tecnología que conocemos como Browser Client,
do la implementación de nuevas versiones de sus sistemas. el cual, pondrá a nuestra disposición, la facilidad de crear aplica-
ciones para Internet o Intranet, pero dándole al usuario final, la
También tenemos la capacidad de que sus desarrollos corran en apariencia de que trabaja en C/S. Un concepto de una aplicación
distintas plataformas, como UNIX, Linux o Windows, y con co- para cliente ligero basado en un navegador.
nexiones a las bases de datos líderes en la industria, incluida la
capacidad de explotar datos de sistemas AS/400. El motor autómata permite ejecutar nuestras aplicaciones ya sea
corriendo dentro del módulo de ejecución de aplicaciones, como
Tenemos un rápido Retorno de la Inversión hecha con eDevelo- en el caso de aplicaciones Stand-Alone o C/S, o corriendo como
per, ya que las ventajas que se le presentan al programador, le servicios, para el caso de Servidores de Procesos o Servidores de
permiten incrementar su eficiencia. Las mayores ventajas que Aplicaciones Web. Y con la capacidad de portabilidad a distintas
se otorgan son el uso de un paradigma de desarrollo uniforme, plataformas, esto nos ofrece un espectro de posibilidades mayor.
tanto para aplicaciones C/S o para Web; una independencia de
la base de datos a utilizar, permitiendo que el desarrollador se Esto, y mucho más, es el eDeveloper V10. Mayor información en
olvide de las tareas mundanas de conexión a las distintas bases www.rocasistemas.com.mx
de datos que pudieran utilizarse en su organización; la intero-
perabilidad con las distintas tecnologías emergentes, como el
uso de XML, ejecución de servicios de mensajería MSMQ, la
interacción con plataformas J2EE y el uso de Web Services.

Con estas características de conexión tan diversas, tenemos la


capacidad de generar aplicaciones compuestas, sin que esto dis-
minuya la velocidad de desarrollo.
// PRODUCTOS /* LO QUE VIENE*/

Rational Software Delivery Platform 7.0


Desarrollo Global de Aplicaciones SOA
JBoss Seam 1.1
Aplicaciones Web con Funcionalidad Compleja,
IBM lanzó la versión 7 de su línea de herramientas de desarrollo de software, Ra- pero Desarrollo Sencillo
tional Software Delivery Platform (SDP) que es un conjunto de herramientas para
desarrollar software, basadas en Eclipse, y complementada con procesos que en- Seam es el framework de JBoss para desarrollar aplica-
globan mejores prácticas, como el Rational Unified Process. ciones Web 2.0. Dicho framework integra tecnologías
Esta versión está principalmente orientada a la construcción y mantenimiento populares como AJAX, Java Server Faces, EJB3, Java
de aplicaciones orientadas a servicios. Otro aspecto importante, es que atiende portlets y workflow, bajo un modelo unificado.
las características y necesidades del desarrollo de software moderno y global,
donde los equipos de desarrollo están dispersos geográficamente, por lo que las Seam facilita el desarrollo de aplicaciones web ricas y ba-
herramientas de desarrollo deben soportar y facilitar esta forma de trabajo. sadas en estados (stateful), a través del manejo sencillo
Algunos de los productos específicos incluidos como parte de esta nueva de objetos con estado, que residen en el servidor, que
versión están: interactúan con componentes AJAX del lado del cliente.
•IBM Rational Application Developer – Un IDE completo para diseñar, desarrollar,
depurar e instalar aplicaciones SOA y J2EE en ambientes empresariales. La versión 1.1 de Seam se liberó recientemente, y entre
•IBM Rational Software Modeler – Un modelador visual basado en UML 2.1, para sus nuevas capacidades están:
que los arquitectos, analistas y diseñadores plasmen y comuniquen los requeri- •Modelo de componentes basado en POJOs, que eli-
mientos y diseño de los sistemas a construir. mina la dependencia a EJBs para manejar estado.
•IBM Rational Functional Tester – Una herramienta de pruebas avanzada que •Nuevo framework de persistencia basado en Java
provee pruebas automatizadas funcionales y de regresión. Persistente API e Hibernate.
•Integración con ICEfaces y Ajax4jsf para generar com-
Más información en www-306.ibm.com/software/rational ponentes GUI de nueva generación.
•Soporte de conversaciones atómicas, las cuales
son requeridas por el modelo de operación de las
aplicaciones AJAX.

Mayor información en www.jboss.com/products/seam


Apache Axis2
Web Services Open Source de 3ra Generación

Axis2 es un motor de web services desarrollado por la Apache Soft-


ware Foundation, y por lo tanto, open source. Axis2 se encuentra
actualmente en su versión 1.1, la cual fue recientemente liberada y Unity 1.6
recibida con gran entusiasmo por la comunidad. Desarrollo de Juegos 3D Multiplataforma

De acuerdo con los expertos, hoy en día estamos en la tercera ge- Unity es una herramienta para desarrollar juegos de
neración de middleware para web services, y Axis2 forma parte de 3D, que se pueden ejecutar en un navegador web, o
ésta. Mientras que las dos primeras generaciones se enfocaron en standalone. Con Unity se puede generar gráficas de
demostrar que los web services “eran posibles”, la tercera genera- gran detalle, a una gran velocidad. Vale la pena notar
ción se enfoca en hacerlos eficientes y confiables. Es decir, algo que ue, Unity utiliza Mono como máquina virtual para la
vaya más allá de los prototipos, y que sea una alternativa real para ejecución de scripts multiplataforma.
sistemas de misión crítica.
Unity es utilizado por diversos estudios desarrollado-
Apache Axis2 fue diseñado y construido desde cero, a partir de las res de juegos, y recibió el segundo lugar en la catego-
lecciones aprendidas con Apache Axis, el cual puede ser considerado ría “Mejor uso de las gráficas de Mac OS X”, durante el
un middleware de web services de 2da generación. Axis2 es mucho pasado Developer Conference de Apple.
más eficiente, escalable y modular que su antecesor. Además, es
altamente extensible a través de módulos opcionales para soportar En el sitio web de Unity (unity3d.com) se puede descargar
especificaciones avanzadas de web services como son WS-Security, una versión de evaluación, y también se puede echar un
WS-Trust, WS-Reliable Messaging, o WS-Eventing. vistazo a la galería de cosas hechas con dicha herramien-
ta. Quedarás impresionado por el detalle y velocidad de
Más información en ws.apache.org/axis2 las gráficas que se ejecutan en tu navegador.

12 ENE-FEB 2007 www.softwareguru.com.mx


// PRODUCTOS /* NOVEDADES*/

Windows Communication Foundation


Un Framework para Desarrollar Aplicaciones Distribuidas
Por Haarón González

V ivimos en un mundo cada día más conectado. Las organizacio-


nes se han enrolado en la era de Internet, ofreciendo servicios
electrónicos que les permiten integrar o exponer su información in-
vicios seguros, confiables y transaccionales que interoperan ya sea
con plataformas Microsoft u otras; soportando coexistencia con ante-
riores tecnologías para aprovechar las inversiones existentes. Ofrece
terna, hacia clientes u otros procesos empresariales externos. Esta mecanismos de implementación mucho más sofisticados que los que
conectividad, combinada con la necesidad de integrar sistemas he- actualmente utilizamos para distribuir servicios y conectar sistemas.
terogéneos, ha influenciado el establecimiento de un nuevo para-
digma: las arquitecturas orientadas a servicios (SOA), de las cuales WCF combina y extiende las tecnologías actuales para construir siste-
hemos oído tanto en los últimos meses. mas distribuidos bajo plataforma Microsoft, hablamos de .NET Enterpri-
se Services (COM+), MSMQ, .NET Framework Remoting, Web Service En-
A pesar de que ya existían múltiples tecnologías para construir este tipo hancement (WSE), ASP.NET Web Services (ASMX) y System.Messaging,
de sistemas, como lo son CORBA y DCOM, en definitiva los servicios web con la intención de proveer un solo marco de trabajo o unificado.
basados en XML fueron un paso importante para descubrir y asimilar el
verdadero potencial del concepto de software como servicio, o software Como ya comenté, WCF es parte del .NET Framework 3.0, lo que
que se conecta con software, abriendo una nueva gama de posibilida- significa que es parte integral e interna de Windows Vista, pero que
des para construir aplicaciones distribuidas, debido a la adopción de también estará disponible en otros sistemas operativos que sopor-
estándares abiertos para conectar personas, sistemas y dispositivos. ten el .NET Framework 3.0, como Windows XP SP2 y Windows Server
Múltiples proveedores de plataformas tecnológicas ya soportan en sus 2003 SP1. Adicionalmente, existen proyectos basados en Mono, para
productos el uso de web services y sus estándares para permitirnos in- llevar soporte de WCF a plataforma Unix/Linux.
tegrar sistemas, aunque éstos utilicen diferentes plataformas operati-
vas. Sin embargo, las capacidades de integración a través de servicios Objetivos de Diseño
web no son del todo ricas, de alguna manera están limitadas a cierto WCF hace posible lo anterior gracias a los siguientes objetivos de diseño:
tipo de escenarios. En otras palabras, los servicios web se quedan cor- •Soportar internamente un gran conjunto de protocolos para servi-
tos en funcionalidad. Por ejemplo, hacer trabajar tecnologías J2EE con cios web: las tecnologías actuales para web services proveen sopor-
.NET es factible, pero complicado a la vez, requiere de consideraciones te para un tipo de interoperabilidad muy básica entre aplicaciones.
técnicas adicionales para reforzar la seguridad, compartir la identidad Por ejemplo, estas tecnologías carecen de la habilidad de lograr in-
de usuario, soportar transacciones distribuidas. teroperabilidad garantizando una seguridad integral y comunicación
confiable. WCF soporta interoperabilidad segura, confiable y transac-
Los retos que se tienen en la actualidad para hacer realidad la visión cional, a través de soporte interno para las especificaciones WS-*.
de orientación a servicios son: •Diseño orientado a servicios: los principios del desarrollo orientado
•¿Cómo podemos asegurarnos de que las conexiones entre los servi- a servicios han permitido hacer frente al reto de construir software
cios sean confiables, y se repongan a fallos en la comunicación? que se adapta con rapidez a las necesidades del negocio. WCF es el
•¿Cómo establecer todo un mecanismo de seguridad integral para el primer modelo de programación construido desde cero para facilitar
intercambio de mensajes entre servicios? implícitamente el desarrollo de aplicaciones orientadas a servicios.
•¿Cómo crear aplicaciones que expandan sus fronteras de confianza y •Modelo de programación unificado: WCF provee una API diseñada
participen en procesos transaccionales locales y remotos? para el desarrollo de sistemas conectados, lo cual trae mejoras en
•¿Qué modelo de programación debo utilizar para construir servicios? productividad al desarrollar este tipo de sistemas.
•¿Cómo puedo hacer que una aplicación esté orientada a servicios y
pueda beneficiarse de este estilo de arquitectura? Fundamentos de WCF
Para resolver estas necesidades, se ha creado la tecnología Windows La figura 1 ilustra el flujo de un servicio que utiliza WCF. Los EndPoint
Communication Foundation (WCF). son la unidad principal de exposición de funcionalidad en un servicio,
un servicio puede albergar múltiples EndPoint cada uno con su pro-
Windows Communication Foundation pia configuración. Los EndPoints pueden ser configurados de manera
Es uno de los pilares del .NET Framework 3.0. Básicamente provee programática (en código) o declarativa (en configuración XML) y son
un subsistema de programación para la construcción de aplicaciones prácticamente nuestros canales de conversación con las aplicacio-
distribuidas orientadas a servicios. WCF permite el desarrollo de ser- nes cliente o con otros consumidores de nuestros servicios, ya que

Haarón González trabaja para DirectApps, una empresa de Sacramento, CA dedicada a construir soluciones web para automatizar flujos de trabajo, servicios
de infraestructura y staffing. Haarón es Licenciado en Informática egresado del Instituto Tecnológico de Mexicali, y cuenta con las certificaciones MCP, MCAD
y MCT, además de ser reconocido como Microsoft MVP en la categorÌa ASP.NET, y ser orador regional de INETA (International .NET Association).

14 ENE-FEB 2007 www.softwareguru.com.mx


definen en donde, cómo y qué se intercambia. Los EndPoints están Una vez definido nuestro contrato, lo implementamos en la clase
compuestos por: CalculoService, que es donde realmente existirá la funcionalidad de
• Address define: donde exponer un servicio, en otras palabras, una nuestro servicio.
dirección en la red en donde reside un servicio.
• Binding define: cómo exponer un servicio, o qué protocolos de trans-
using System.ServiceModel;
porte (TCP, HTTP), codificación (texto, binario, MTOM) y requerimientos
de seguridad (SSL, WS-Security) se utilizarán en la conversación. namespace BasicWCFDemo.Server
• Contract define: qué exponer en un servicio, es decir, qué estructu- {
[ServiceBehavior(Name = “CalculoService”)]
ras (datos) y operaciones (métodos) se pueden intercambiar durante public class CalculoService : ICalculoService
una conversación entre servicios. { public int Suma(int x, int y) { return x + y; }
public int Resta(int x, int y) { return x - y; }
Un ejemplo sencillo }
public int Multiplicacion(int x, int y) { return x * y; }

El siguiente paso es especificar el hospedaje de nuestro servicio, y


eso lo hacemos a través de la clase ServiceHost. Con ServiceHost po-
demos hacer que cualquier aplicación pueda convertirse en un hués-
ped de algún servicio, eliminando dependencias a otros productos
del servidor. Por ejemplo, el siguiente código hace que nuestra apli-
cación de consola sea un huésped de servicio.

using System.ServiceModel;

Figura 1. Flujo de un servicio con WCF. namespace BasicWCFDemo.Server


{
class Program
Para construir servicios WCF requerimos hacer referencia a System. {
ServiceModel incluido en .NET Framework 3.0. Primeramente hay que static void Main(string[] args)
definir el contrato, ya que es muy importante especificar las reglas para {
Uri direccionUrl = new Uri(“http://localhost:8080/BasicWCFDemoServer”);
lograr una conversación. En WCF existen los atributos DataContract y ServiceHost servicioHost = new ServiceHost(typeof(CalculoService), direccionUrl);
OperationContract. Los DataContract nos permiten calificar código para servicioHost.AddServiceEndpoint(typeof(ICalculoService), new BasicHttpBinding(),
que sean tomadas como las estructuras de datos que vamos a utilizar direccionUrl);
para intercambiar mensajes. Los OperationContract nos permiten califi- servicioHost.Open();
Console.WriteLine(“Servicio escuchando...”);
car código para que sea tomado como los métodos o puntos de entrada Console.ReadKey();
que pueden invocarse durante el intercambio de mensajes. servicioHost.Close();
}
}
Veamos el código para definir un contrato: }

using System.ServiceModel;
Si observamos detenidamente el código, encontraremos que se ha es-
namespace BasicWCFDemo.Server pecificado la dirección (address) donde reside nuestro servicio en la red,
{ el canal (binding) utilizado para intercambiar mensajes (BasicHttpBin-
[ServiceContract(Namespace = “http://DemoWCFService.ServiceContracts/2006/11”,
Name = “ICalculoService”)]
ding) y el contrato usado por el servicio. Aquí es donde sucede la magia,
public interface ICalculoService ya que es donde podemos configurar nuestro servicio basado en los
{ [OperationContract(Action = “Suma”, IsOneWay = false)] tres conceptos más importantes: Address, Binding y Contract.
int Suma(int x, int y);
[OperationContract(Action = “Resta”, IsOneWay = false)]
int Resta(int x, int y); Conclusión
[OperationContract(Action = “Multiplicacion”, IsOneWay = false)] WCF se puede usar para conectar sistemas que se ejecutan en con-
int Multiplicacion(int x, int y); textos locales, Intranet, Extranet e Internet. WCF provee un marco de
}
} referencia unificado y con capacidades avanzadas para el desarrollo
de aplicaciones distribuidas.

www.softwareguru.com.mx ENE-FEB 2007 15


// ESPECIAL

¿Centros de Desarrollo
de Software en las Universidades?
Una Realidad aún sin Explotar Por Joaquín Arellano

¿paraEldeegresado de una carrera de Ingeniería


Software, está realmente preparado
afrontar como se debe, los retos que
y no sólo requiere profesionistas que sepan conceptos y
fundamentos básicos de Information Technology (IT, por
sus siglas en inglés); sino que también se requiere que es-
demanda el mercado laboral?, lamentable- tén familiarizados con:
mente, en la mayoría de los casos, el alum-
no promedio sólo obtiene los conocimientos •IDEs: como Java Studio Creator 2, Visual Studio
teóricos y prácticos que le enseñan en las 2003/2005, Eclipse, NetBeans, Zend Studio, etcétera.
aulas, y que a pesar de que son buenos, no •No sólo dominar un lenguaje de programación (orien-
son del todo suficientes. ¿Cuál puede ser una tado a objetos, estructurado, procedural, etcétera),
de las causas? Hoy en día, no sólo es necesa- sino que además, sepan usar de forma básica otros
rio dominar algún lenguaje de programación lenguajes (si no dominarlo, saber qué alcance tiene
orientado a objetos –pensando que es la úni- cada uno y cuáles son sus ventajas sobre otros len-
ca opción para un problema–, sino también, guajes) en caso que sea necesario moverse a un nuevo
poder codificar en el clásico notepad o en un lenguaje.
editor básico, saber que existen técnicas de
producción de sistemas; aprender de memo- •Cómo interactúan diferentes lenguajes con diferentes
ria el modelo de cascada o espiral, u otro, sa- proveedores de bases de datos (Oracle, SQL Server, MyS-
ber de la existencia de UML, pero no saberla QL, Informix, PostgreSQL, etcétera).
aplicar; conocer y desarrollar en una sola •La ya tan mencionada Web 2.0.
base de datos, y en general, conceptos bási-
cos del mundo de IT; se requiere ampliar así •Modelos arquitectónicos como MVC (Model View Con-
como profundizar en dichos conocimientos y troller), o SOA (Service Oriented Architecture).
en muchos más, no por soberbia, sino porque
el mercado lo exige, demanda profesionistas •Poder entender adecuadamente y llevar a la práctica
mejor preparados en áreas de conocimientos (en escala) conceptos de ingeniería de software, pasan-
más recientes, cada vez más usadas. do por modelado de objetos, calidad en el software, PSP,
TSP, ITIL y, ¿por qué no?, CMM/CMMI y varios más.

Por otra parte, para incrementar su competitividad, el •Creación de Software confiable, seguro, adaptable, ad-
egresado necesita tener un background más amplio de lo ministrable, entre otros.
que los planes de estudios actuales ofrecen. Esto, debido
a que el mercado laboral es muy exigente, competitivo, •Facilidad de adaptarse a cambios, tiempos y tecnologías.

Joaquín Alonso Arellano Ramírez, se ha desempeñado como desarrollador, implementador y administrador de sistemas, coautor del artículo “Confiabilidad del Soft-
ware: desarrollando productos confiables”. Sus intereses en el área de sistemas incluyen, sistemas en plataforma WEB y Técnicas de Producción de Sistemas. Trabaja
en el departamento de desarrollo de sistemas escolares del ITESM Campus Monterrey y forma parte del equipo que implementa el modelo CMMi en el mismo instituto.

16 ENE-FEB 2007 www.softwareguru.com.mx


“El egresado necesita tener un background
más amplio de lo que los planes de estudios
actuales ofrecen”.

¿Dónde puede el alumno aprender esto?, dónde más, •Acercamiento con empresas de software que aplican
sino en su misma universidad, ¿de qué forma?, promo- CMM/CMMI, ITIL, PSP, TSP; conceptos de ingeniería de
viendo centros de desarrollo de software en los que el software y herramientas tecnológicas actuales que re-
alumno pueda, de forma voluntaria, involucrarse y pro- quieren de los egresados cierto grado de conocimiento.
fundizar en conceptos como los antes mencionados,
mientras desarrolla proyectos reales, que no necesaria- •Una gran gama de sitios en Internet en donde se puede
mente tienen que ser grandes (en complejidad y tamaño) obtener material de alta calidad de los conceptos y tecno-
para que el alumno pueda usar los conceptos anteriores, logías ya mencionados, y de muchos más, que quizá se me
sino a través de proyectos planeados y estructurados, puedan estar pasando.
todo, al mismo tiempo que cursa su carrera. Esto ayuda •Acercamiento con gobiernos Estatal y Federal, para in-
a que el alumno mientras estudia una carrera de Ingenie- centivar dichos centros en la educación pública y privada.
ría de Software, tenga la posibilidad de aplicar todos los
conocimientos que adquiere a lo largo de sus estudios, Estructura propuesta
más una gran parte, de los que ya hemos mencionado, en Profundizando un poco en cómo se podrían estructurar di-
proyectos reales. Muchos de los conceptos, si no es que chos centros, considero tres bloques esenciales, como se
la gran mayoría, se pueden obtener mediante iniciativas, muestra en la siguiente figura.
como por ejemplo:

•Software gratis. Algunos de ellos se pueden obtener


bajo algún tipo de licenciamiento, y en ciertos casos,
existen cursos, también gratuitos, que ofrecen las em-
presas, para capacitarse en el uso de dicha tecnología.

•Programas de certificaciones gratuitos, como los que


ofrece Microsoft con su Academia Latinoamericana de
Management (ITIL), Desarrollador Cinco estrellas 2005,
por mencionar uno.

•Evaluación de software, que muchas empresas ofre-


cen, como Flex 2 de Adobe (recién liberado) y las ver-
siones constantes de los productos de Sun, IBM, Zend,
ActiveGrid, etcétera.

•Convenios como los que algunas universidades tie-


nen con empresas como Microsoft, Macromedia (ahora
Adobe), Oracle, Sun, en donde el alumno puede tener
acceso a versiones gratuitas de software, o como las
versiones educativas que ponen a disposición un gran
número de empresas, como Zend Technology.
Estructura en 3 Bloques Esenciales.

www.softwareguru.com.mx ENE-FEB 2007 17


// ESPECIAL

“De la curiosidad nace el interés, y es por


medio de centros de desarrollo de software
que el alumno puede despertar su inquietud
por conocer más, de lo que los planes de
estudio suelen cubrir”.

Zona operativa y de control de software que el alumno puede despertar su inquietud


La integrarían personas que formen parte de las acade- por conocer más de lo que los planes de estudio suelen
mias de IT de las mismas universidades, y alumnos; es de cubrir. Esto con el fin último, de presentar egresados al
academias de IT forme parte de esta zona, es para lograr mercado laboral, con la confianza, el respaldo técnico y
un vínculo entre los salones de clase y los centros de de- conocimientos para enfrentar los retos laborales que el
sarrollo de software; mientras que la de los alumnos, es mundo de IT necesita.
fortalecer los aspectos administrativos y de control de
proyectos de software en ellos, y no sólo la parte técnica Sin duda se requiere de inversiones económicas, insta-
(el desarrollo del software como tal). laciones, tiempo, esfuerzo y personal, pero no tienen
que ser necesariamente exigentes, es posible hacer
Zona de desarrollo de SW uso de mucho de lo que las instalaciones de las uni-
Estaría conformada 100% por los alumnos que hayan versidades tienen, para dar soporte a centros de esta
obtenido un nivel de conocimientos adecuado, que les clase y los resultados compensarían la inversión.
permita explotarlo en dichos proyectos. El nivel de cono-
cimiento puede ser delimitado mediante varias formas: No es necesario destacar los beneficios que los alum-
de algún semestre en adelante, número de materias cur- nos principalmente, las empresas públicas y privadas,
sadas, conocimientos técnicos, promedios, etcétera. instituciones educativas y el gobierno podrían obtener,
porque son obvios. “El objetivo no sólo es beneficiar al
Zona de soporte y apoyo: alumno sino también a todas las partes que se vean in-
En esta zona se encontrarían profesionistas de IT exter- volucradas en proyectos de este tipo. Las formas de cris-
nos, empresas públicas y privadas, gobierno y demás talizar los centros son variadas. Se propone una estruc-
personas e instituciones que puedan aportar sus cono- tura operacional básica de cómo se podrían administrar
cimientos para el beneficio de los centros. Las empresas los centros, pero el hecho es que necesitan realizarse”,
públicas, privadas y gobierno serían los “patrocinado- como bien lo menciona el Dr. Carlos Montes de Oca en
res” de proyectos específicos, aportando SW licencia- la edición mayo-junio 2006 de la revista Software Guru,
do para fines educativos, programas de capacitación, y agregaría algo que sin duda muchos compartirán con-
charlas, orientación y soporte de las metodologías que migo: que si México quiere competir internacionalmente
usan, por mencionar algunos. La forma puede ser varia- como país, en el desarrollo de software de calidad, es ne-
da, no necesariamente tiene que ser presencial; y los cesario que los alumnos y egresados estén a la par sobre
profesionistas de IT aportarían los conocimientos que lo que día con día surge en este mundo cambiante de las
han adquirido a lo largo de su carrera, permitiendo en- IT’s, siendo la propuesta aquí presentada, un medio por
tre otras cosas, alentar a los estudiantes a seguir cre- el cual se puede lograr.
ciendo en el mundo de las IT’s y de igual forma, dando
soporte a proyectos que les interesen.
NOTA
Como puntos finales es necesario recalcar, que el nivel El propósito de mencionar el software y las em-
de conocimientos que un alumno pueda llegar a tener, presas aquí citadas, es con el fin de divulgar el
aprender, manejar y conocer, de los conceptos aquí pre- gran esfuerzo hecho, en términos generales, por
sentados, dependerá en gran parte, de su propia inquie- empresas de TI para dar a conocer a la comuni-
tud, complementada por los consejos y apoyo que reciba dad los productos, tecnologías y metodologías
de todas las personas que formen parte de los centros, que ofrecen y promueven bajo diferentes esque-
así como de los proyectos manejados. De la curiosidad mas de licenciamiento.
nace el interés, y es por medio de centros de desarrollo

18 ENE-FEB 2007 www.softwareguru.com.mx


// ENTREVISTA

El pasado mes de octubre en la ciudad de Guadalajara, Jalisco,


se realizó el primer Festival Nacional de Animación y Videojue-
gos, Creanimax 2006, donde se dieron lugar profesionistas y
entusiastas del medio, para compartir conocimientos, secre-
tos, y conocer un poco más de cerca lo que se está haciendo
tanto en México como en otras partes del mundo.

Software Guru estuvo presente, y tuvimos la oportunidad de


platicar con tres interesantes personajes, cada uno con su muy
particular estilo y espacio en el universo de la animación 3D
y el desarrollo de videojuegos. Se trata de Bill Plympton, con
más de veinte años de experiencia, creador de cortos animados
como “Guard Dog”; Ernesto Gálvez, CEO y socio fundador de
Immersion Games, y René Castillo, animador en stop motion,
creador de “Poncho Balón” y de la película animada “Hasta los
Huesos”. A continuación lo que compartieron con nosotros.

“Sobreviviendo como animador independiente” Nos filmes, es importante conocer la animación, la historia de
Bill Plympton

llamó la atención el título de tu ponencia, ¿qué es lo la animación, debes amarla, deber tener pasión por ella ,
que compartes con los asistentes? yo lo hago, trabajo doce horas al día haciendo mis filmes,
Creo que ahora es un momento muy especial, parece ser y esa es la clase de pasión que debes tener.
que hay mucho interés en la animación. Es la segunda
“época dorada” en animación. Y creo que es posible con- ¿Cuál crees que sea el papel de México en el mundo de
vertirse en un animador independiente y hacer dinero. Me la animación?
gusta compartir con la gente mi propia experiencia, cómo Justo de eso platicaba en la mañana con una persona, México
he sobrevivido haciendo pequeños filmes, comerciales y tiene una maravillosa tradición de historias y artistas, desde
largometrajes. Me gusta revelar el secreto de mi éxito con los aztecas y los mayas, hasta las grandes leyendas; y creo
las personas, decirles cómo hacer las cosas y al mismo que el artista de hoy, ama al contador de historias, ama las
tiempo, mostrar un poco de mi nuevo trabajo. artes visuales, y son exactamente los dos ingredientes que
se necesitan para convertirse en un éxito. No creo que se ne-
¿Podrías compartir con nosotros el secreto de tu éxito? cesite mucho dinero, no creo que se necesite mucha tecnolo-
Me parece que es muy importante que el filme sea diver- gía, sólo contar historias interesantes y entretenidas.
tido, creo que a la gente le gusta reírse con la animación,
por lo tanto, debe ser divertido. También creo que debe ¿Ves futuro en los animadores mexicanos?
ser corto, alrededor de cinco minutos, y deber ser barato, Bueno, René Castillo es una gran estrella, es una gran cele-
es decir, no invertir cientos y cientos de dólares. Si puedes bridad. Lo conocí hace alrededor de cinco años en un fes-
hacerlo, si puedes cumplir con estos tres requisitos, tu fil- tival, y me gustan mucho sus filmes. Me parece que ahora,
me será exitoso y podrás hacer mucho dinero. como sabes, los cineastas mexicanos son muy populares,
por tanto, creo que México está explotando, en términos
Seguro que hay algunos tips para todos aquellos que de producción cinematográfica.
quieren iniciarse en la animación independiente.
Por supuesto. Quizá el más importante es dibujar, hacerlo ¿Cuál es el panorama de la industria actualmente?
siempre, nunca dejarlo; tener un cuaderno donde cons- Creo que está creciendo, y eso hace que sea el momento
tantemente se anoten ideas, porque ésas, eventualmente perfecto para la animación. Hay muchísimos mercados, y
se convierten en proyectos. Es vital también, ver muchos trabajos ahí, esperando por el talento.

BILL PLYMPTON
Nació en Portland, Oregon el 30 de abril de 1946. Sus filmes cortos se han mostrado
alrededor de los Estados Unidos, sobre todo durante festivales de animación. Con un
peculiar sentido del humor y visión burlona del día a día, que se reflejan en sus “Micro-
toons” y otros populares cortos para MTV, Plympton se ha hecho famoso con “Guard
Dog” que le valió la nominación al Oscar en 2005. Su más reciente producción se titula
“Idiots and Angeles”. Para conocer más de cerca su trabajo: www.plymptoons.com

20 ENE-FEB 2007 www.softwareguru.com.mx


René Castillo ¿Qué tipo de software utilizas?
La verdad es que utilizo softwares diferentes, pero para stop mo-
tion, utilizo Adobe Premiere o Final Cut para hacer un animatic, que
es algo parecido a una maqueta que te permite ver cómo será tu
proyecto. La animación hay que planearla siempre y mucho, sea la
técnica que vayas a usar, siempre hay un trabajo de trazo a lápiz, de
story board, y luego un sistema de edición no lineal para armar tu
maqueta. Después, para animar stop motion, utilizo un software que
se llama Frame Thief, que graba cuadro por cuadro, es muy sencillo
porque grabas desde tu cámara, mientras ves cómo corre la anima-
ción. Todas son herramientas muy buenas que permiten previsua-
lizar el avance de tu animación. Antes no teníamos nada de esto,
y era completamente a ciegas, animabas y después tardabas otros
dos días editando cuadro por cuadro, era hasta entonces cuando
¿Cuál fue tu primer encuentro con la animación? podías ver cómo se veía. Ahora lo puedes ver al instante. También
Desde niño hacía muñequitos de plastilina, era algo que no podía dejar hacemos animación en Flash, por ejemplo, Poncho Balón. Usamos
de hacer, tenía dinero y compraba plastilina para crear monitos diferentes, también software de animación 3D, tanto Maya como 3ds Studio
nunca copiaba, y hacía mis historias. Pero a pesar de ese acercamiento, Max y claro, software como Photoshop que es básico y Word para
no contemplé jamás la animación como una posibilidad. Y fue hasta los escribir, que es el primer paso. Digamos que la computadora es una
23 años cuando iba en el coche, en el radio escuché un anuncio que decía: parte fundamental.
“curso de animación con plastilina”. Me dije: “yo puedo hacer eso”, así es
que llamé, me inscribí y al día siguiente ya estaba ahí. ¿Cómo ves la industria de animación en México?
En México hay mucho talento, todavía es una materia pendiente,
¿Qué opinas de eventos como Creanimax? pero puede llegar a ser una gran industria, representa ingresos im-
Cuando empecé a hacer animación, hace quince años, había dos portantes para Estados Unidos y Canadá, así como para muchos paí-
personas a quién preguntarles, y no te decían nada. Por tanto, esto ses asiáticos. Yo creo que podemos ser muy buenos maquiladores
representa un gran crecimiento, relacionado con la tecnología que a un costo relativamente bajo, súper competitivos con imagen, por
nos acerca las herramientas; tiene que ver también con el software, ejemplo, pero además, podemos generar propiedades, proyectos.
que nos permite ahora, hacer cosas de gran calidad y en un tiempo Aunque quizá, el principal problema aquí en México, son los anima-
aceptable. Antes, sólo Disney hacía películas, y usaban novecientas dores. No encontramos animadores, porque no hay, todavía no están
personas para hacer un largometraje. Hoy en día, con cincuenta per- listos, la gente está aprendiendo por su cuenta y eso lleva mucho
sonas lo puedes hacer, y eso es gracias a la tecnología. Hay como un tiempo. Y es que si te preguntas: ¿qué va primero?, es todo, las es-
“boom” en todo el mundo, justamente por eso, porque hay un sinfín cuelas, los proyectos, las empresas, todo va de la mano.
de plataformas para hacer animación 3D.
¿Alguna vez te ha cruzado por la mente desarrollar videojuegos?
Hacer stop motion es laborioso. ¿Cuánto tiempo tardas? Totalmente, por supuesto, con Poncho Balón ya estoy en pláticas
Normalmente en un segundo de animación me tardo una hora. Si es con gente de aquí (Creanimax) para hacer un juego. Me parece mag-
complicado y a 24 cuadros por segundo, me tardo hasta cinco horas nífico que podamos encontrarnos, y veamos en conjunto todas las
por segundo. Es que tienes que mezclar escultura, actuación y todo. Es posibilidades que tenemos. Porque quizá tú quieras desarrollar un
un proceso muy artesanal, extremadamente artesanal, de hecho, es la videojuego basado en un personaje que nadie conoce, y eso te di-
técnica de animación más cara y lenta de todas. Además hay que tomar ficulte darlo a conocer, pero si yo tengo un personaje, que a parte
en cuenta todo el tiempo previo, hay que hacer los personajes, las ma- estoy lanzando, y tengo grandes planes para él, de pronto podemos
quetas, iluminar, todo lleva consigo una preproducción bastante larga. lanzar un juego, es decir, sumamos esfuerzos.

RENÉ CASTILLO
Es egresado de la carrera de Comunicación por el ITESO en Guadalajara, Jalisco. Su afi-
ción desde pequeño por modelar personajes de plastilina lo llevó a encontrar en la ani-
mación stop motion el lugar perfecto para darle rienda suelta a su creatividad. Muestra
de su sobresaliente trabajo son los filmes animados “Hasta los Huesos” y “Sin Sostén”.
Además de la animación en Flash, “Poncho Balón”. www.ponchobalon.com

www.softwareguru.com.mx ENE-FEB 2007 21


// ENTREVISTA

¿Cómo surge Immersion Games? res motores gráficos llamado Unreal Engine 3, al ver nuestro
Hace cuatro años decidimos fundar nuestra compañía, trabajo, decidió que usáramos su tecnología para desarrollar
queríamos hacer videojuegos, pero no teníamos pre- el videojuego. Después conseguimos un publisher que nos fi-
supuesto para hacerlo ni siquiera para pagar el pri- nanciara, y ahora estamos por terminar nuestros dos primeros
mer mes de nuestros salarios, así que decidimos ex- juegos: Monster Madness y CellFactor, uno lo terminamos en
plorar otras áreas relacionadas también con gráficos diciembre, el otro en febrero.
3D, pero orientadas hacia desarrollo de soluciones de
seguridad, de arquitectura, etcétera. Así nos mantuvi- ¿Cuál es tu apreciación de Latinoamérica en el mundo
mos durante mucho tiempo, viviendo de regatearle a los del desarrollo de videojuegos?
clientes, eso nos cansó, nos aburrió, pero fue lo que nos Desde el punto de vista, ya no tanto de lo artístico o técnico,
permitió ir creciendo poco a poco, y entonces decidimos sino desde el punto de vista productivo, y en muchas con-
arriesgarlo todo y desarrollar videojuegos. ferencias he dicho lo mismo, el hecho de que estemos en
países en vías de desarrollo, ha provocado que aprendamos
¿Cómo captaron la atención de inversionistas? Porque a utilizar muy bien los poco recursos con los que contamos.
desarrollar un videojuego requiere capital y proyec- Queremos dar la oportunidad que nunca tuvimos. Sabemos
ción para ser exitoso. que en Latinoamérica hay muchos entusiastas, hay mucha
Se dio la oportunidad de que unos inversionistas me- gente que quiere hacer videojuegos, pero desafortunada-
tieran su dinero en nuestra compañía, pero nunca se mente, dependiendo de dónde quieras competir, los niveles
atrevieron, porque siempre nos vieron como un grupo que se necesitan de conocimiento son bastante fuertes, y
Ernesto Gálvez

de jóvenes, pensaban que podían perder su dinero fácilmen- queremos que la gente se entere de eso, que hay una gran
te. Mientras eso sucedía, contactamos con una compañía oportunidad, pero que no se puede aprovechar si no has
norteamericana, porque pensábamos que con aquel dine- desarrollado el conocimiento suficiente, que por el hecho
ro, compraríamos tecnología de otros para hacer nuestros de que a ti te gusten los videojuegos o tengas una gran vi-
videojuegos, pero eso nunca sucedió. Un día, producto de sión alrededor del tema o tengas el empuje o el dinero, no
nuestra desesperación hablamos con dicha empresa con la significa que seas la persona indicada para hacerlo. El truco
propuesta de hacer mejoras en su tecnología, a cambio de su está en que armes equipo de gente muy talentosa y que si
código fuente, y el uso de esa tecnología. Llevamos más de tú eres programador, y has programado algo para videojue-
un año y medio cerrando el negocio, pensamos que todo se- gos, pero sabes que a tu nivel le falta, y terminas encontrán-
ría de un mes para otro, pero por suerte, al leer las propues- dote con otra persona que hace cosas en un fin de semana
tas técnicas de lo que ambos queríamos hacer, aceptaron, y y todas son geniales, pues hazte a un lado, mantente en el
no sólo eso, sino que disminuyeron el valor de la tecnología equipo, pero deja que sea él el que lo haga, y lo mismo en
como en un 70%. Después nos pidieron imágenes de lo que la parte artística.
estábamos haciendo, cuando las vieron, nos ofrecieron su
tecnología a cambio de regalías cuando el juego estuviera Tengo entendido que quieren impulsar la industria en
terminado. Luego de un par de semanas trabajando echaron Latinoamérica, platícanos un poco al respecto.
un vistazo a lo que estábamos haciendo, se dieron cuenta Queremos trabajar muy fuerte para desarrollar la indus-
que sí cumplíamos lo prometido, así que nos ofrecieron hacer tria en Latinoamérica. Hemos encontrado en NAGA (Na-
un juego en conjunto, y de ahí arrancamos. tional Gamers Association) un punto de apoyo para crear
una serie de programas, que por ejemplo, nos permitan
¿Cómo dieron a conocer su trabajo en la industria? compartir todo el conocimiento que hemos adquirido.
En uno de los eventos más importantes de la industria de vi- Desarrollar programas de capacitación, pero no sólo eso,
deojuegos, el GDC (Game Developers Conference), cuando lo también hacer que la industria mundial comience a diri-
hicimos, causamos un gran impacto, e incluso, compañías de gir la mirada hacia nosotros; que nos vean como un mer-
talla mundial como Epic Games, dueña de uno de los mejo- cado interesante.

ERNESTO GÁLVEZ
Nacido, radicado en Colombia e ingeniero de profesión, es el CEO y socio fundador de
Immersion Games, junto a otras tres personas. Está encargado de la ingeniería de pro-
ducción que está relacionada con el uso de las máquinas y los procesos para producir
cualquier clase de producto. En sus propias palabras: “Siempre he sido conciente de
que la universidad lo que hace es darte criterios y volverte una persona racional para
solucionar problemas y al final puedes terminar en cualquier área”.
www.immersionsoftware.com www.cellfactorgame.com www.monster-madness.com

22 ENE-FEB 2007 www.softwareguru.com.mx


s
ana

e
Villagr

d
o
el

o
Por Jo

l
De
e
sarro l
oj u e g
V i
¿Po
d
r D ó nde Empe
zar?

han
o los vid
cre
os, y siem
alme
eojueg ar uno. Fin spués de
; de
gustad roceso para esarrollarlos er proyecto é
bía
pre hante,

,
me el p rad prim enc
iño siempre de cómo eso de aprenderfecto como ntonces comscasa;
esde n curiosidad e era tiemp eojuego pe mpiezo?” E s era muy e guaje
D tenidoos, decidí qunutos un vidpor dónde euel entonce r: “¿Qué len ¿qué
añ mi ¿Y aq ui al?,
hace 6 ar por unos a realidad: “rnet, que en ar de disminor en especi n los jue-
idealiz ue volver a l ión en Inte taban en lugn compilad ómo se hace tenía.
tuve q ar informac das aumen ¿se usa algú render?, ¿c eguntas que
a busc a que mis duse utiliza?, é necesito aps muchas pr
parecí gramación juego?, ¿qu lgunas de la
de protura tiene unlas?” Eran a
estruc ra las conso
gos pa

24 ENE-FEB 2007 www.softwareguru.com.mx


Muy rápido me di cuenta de 3 cosas: la pri- idea para un proyecto final, solo dicen en módulos clave, junto con otros, forman de
mera es que no existía algún libro ni tutorial tono despectivo “¿otro jueguito?” manera colectiva lo que se llama un Game
que enseñe todo lo que se necesita saber; la Engine, un producto que ofrece todas estas
segunda es que toda la información existen- Tuve la oportunidad de participar en el Festi- características, y hay quienes las usan para
te estaba en inglés (y eso no ha cambiado); val de Desarrollo de Videojuegos Creanimax ahorrarse algo de trabajo al programar. De
y la tercera, es que ni siquiera ahí me podría 2006, y me di cuenta que por fin se están hecho, los estudios dedicados a los vide-
escapar de las matemáticas –la dirección en haciendo esfuerzos para entrarle a esta in- ojuegos, utilizan Game Engines comerciales
la que se mueve un objeto, determinar si está dustria. Me di cuenta de que hay algunas o desarrolladas por ellos mismos. Utilizar un
dentro del rango de visión de la cámara vir- compañías interesadas en desarrollar jue- Game Engine cuando se está iniciando en la
tual, determinar si un vehículo chocó contra gos, pero falta apoyo y habilidades técnicas. programación de videojuegos, podría ser una
un edificio; todo eso requiere matemáticas. También me enteré de un par de universida- limitante hasta cierto punto, porque primero
des en Guadalajara que están incorporando se tendría que estudiar la documentación de
Desafortunadamente, en México todavía no una carrera de animación y arte digital a su ésta para saber utilizarla y si no se tienen los
existe una industria de desarrollo de video- oferta académica. Hay muchas personas in- fundamentos teóricos suficientes, cuando se
juegos como tal, y es una lástima, porque es volucradas ya en el modelado y animación quiera modificar una parte del engine para
una industria de billones de dólares. Ya exis- 3D –y son buenos–. Entonces no vamos tan adaptarla al juego deseado, será mucho más
ten carreras de desarrollo de videojuegos en mal, sólo falta ponernos las pilas, organizar- difícil. Existe una gran variedad de engines,
universidades internacionales, pero en mu- nos y darle importancia también a la parte de desde algunas gratuitas y/o, open source
chas universidades de nuestro país ni siquie- la programación. como Irrlicht, hasta otras comerciales como
ra se toma en serio la materia de gráficas por el Unreal Engine 3, cuyo licenciamiento pue-
computadora, que es la base de todo. Así que el objetivo de este artículo, es tra- de rebasar los cien mil dólares.
tar de dar una pequeña orientación para
Esto en gran parte se debe a falta de infor- aquellos que desean empezar a desarrollar Matemáticas. Es deseable tener cono-
mación, muchas personas creen que es lo videojuegos y tengan preguntas parecidas cimientos generales de álgebra lineal y
mismo jugarlos que desarrollarlos. Un juego a las que tenía yo cuando empecé. trigonometría, sobre todo para el área de
2D puede ser fácil, pero uno 3D es algo muy programación de gráficas. Si no se tie-
diferente y se necesitan muchas personas ¿Qué se necesita saber para nen estos conocimientos, se tendrán que
trabajando en conjunto para crearlo. No es desarrollar videojuegos? aprender al mismo tiempo que se hace con
que una sola persona no pueda, pero se tar- Programación. Lo primero que se necesita es la teoría y programación de gráficas.
daría mucho más tiempo. Un juego comer- saber programar en algún lenguaje orienta-
cial tarda entre 1.5 y 3 años para ser desa- do a objetos, yo en lo personal uso C++, pero ¿Qué se necesita aprender para
rrollado, con un equipo de 25 personas en también se puede utilizar C#, Delphi, Java, desarrollar videojuegos?
promedio. Un juego 3D generalmente tiene etcétera. En cuanto a compiladores, no hay Esta pregunta no es fácil de contestar, so-
programación orientada a objetos, cálculos gran diferencia, se pueden utilizar el Visual bre todo porque existen diferentes áreas
trigonométricos y de álgebra lineal que se C++ 2005 Express Edition de Microsoft o el dentro de la programación de videojue-
ejecutan durante todo el juego, estructuras C++ de Borland. gos: gráficas, redes, inteligencia artificial,
de datos especializadas, y también puede sonido, lógica principal.
existir una red neuronal para el manejo de Game Engines. Los juegos generalmente El área en el que está centrado este artículo
la inteligencia artificial, así como algo de tienen módulos clave para manejar tareas es en la de gráficas, y para esta área se nece-
teoría de autómatas finitos y teoría de gra- como mostrar gráficas, manejar recursos, sitan aprender básicamente dos cosas:
fos aplicada, entre muchas otras cosas. Y interpretar y ejecutar scripts, reproducir
aún así, hay maestros de universidades que efectos de sonido, manejar la inteligencia •Teoría de gráficas: involucra aprender las
cuando se les presenta un juego como una artificial, manejar el input del usuario. Estos bases de los sistemas de coordenadas 2D

www.softwareguru.com.mx ENE-FEB 2007 25


la libreria (OpenGL32.lib) y los archivos de
encabezado (gl.h, glu.h, glaux.h) de OpenGL.
Así mismo, necesitamos incluir los archivos
de encabezado en los archivos de código
fuente donde se usen funciones de OpenGL.

¿Cómo puedo programar


videojuegos para Xbox360,
PlayStation 3, GameCube?
En el caso de Xbox360, para desa-
rrollar un juego se necesita obtener
un “Kit de Desarrollo”, que consta de
una consola Xbox360 especial para
desarrollo, herramientas, SDKs, y do-
cumentación. El desarrollo se hace
en una PC con Visual Studio o Co-
deWarrior por ejemplo. Dicha PC está
conectada a la consola especial de de-
sarrollo, generalmente por ethernet.
Una vez compilado el código, éste se
pasa a la consola; la forma de cómo
hacerlo, depende de cada sistema. En
Xbox, se cuenta con unos plugins en
Visual Studio que copian los datos de
y 3D, las bases de los objetos 3D que son ¿Qué es OpenGL? la PC al disco duro del Xbox, y después
representados como modelos poligonales OpenGL es una API para el manejo de grá- el Xbox monta el directorio que se co-
(vértices, normales, caras, etcétera); las ficas exclusivamente, no tiene otro tipo de pió, como si fuera el disco duro inter-
báses de la arquitectura gráfica (diferentes funciones utilizadas en los juegos. OpenGL no, para empezar a correr el juego.
tipos de transformaciones y proyecciones); es multiplataforma, lo que significa que el
las matemáticas involucradas (vectores, mismo código puede correr en Windows,
planos, matrices y todas sus operaciones Mac, X Window, con mínimas modificacio- Para obtener el kit de desarrollo, se nece-
relacionadas). Diferentes modelos de ilumi- nes. Esta es una de las ventajas que, puede sita ser un desarrollador registrado con
nación, mapeado de texturas, entre otras co- decirse, tiene con respecto a Direct3D, el Microsoft, y los kits son muy caros. Aun-
sas. Es necesario tener estos conocimientos, cual es exclusivamente para Windows. que existe el XNA Game Studio Express,
ya que se aplican a las APIs para programa- éste, no es suficiente para hacer juegos
ción gráfica existentes y son necesarios para Dado que OpenGL es multiplataforma, no inclu- comerciales, en realidad, es un producto
explotar todo su potencial. ye comandos para manejo de ventanas, porque dirigido más para estudiantes y hobbyists.
estos son diferentes en cada caso. Dependien- Además, para ser aceptado como desarro-
•Una API para programación de gráficas: que do de la plataforma, hay métodos para crear llador, se debe seguir un proceso que está
es básicamente una librería que usamos en una ventana con soporte para OpenGL. Para sujeto a aceptación por parte de Microsoft.
nuestro código para poder mandar gráficas a agilizar o hacer más fácil el manejo de ventanas. Se puede encontrar más información en:
la pantalla, sin tener que accesar al hardware Ya existen algunas librerías que se utilizan junto www.xbox.com/en-us/dev/ default.htm
directamente (en su lugar, los drivers se en- con OpenGL, por ejemplo: SDL y GLUT.
cargan de procesar las peticiones hechas por Otros fabricantes de consolas piden requisitos
las APIs). Las dos APIs de gráficas más usa- OpenGL, a diferencia de DirectX, no se baja adicionales. Por ejemplo, Nintendo pide que
das son OpenGL y Direct3D, y dado que los como un paquete, de algún sitio de Internet, se cuente con respaldo financiero de algún
resultados que se pueden obtener con ellas, ya que es implementado por los drivers. To- distribuidor de juegos internacional. Así que,
son, hasta cierto punto similares, la elección das las máquinas con Windows 95 o posterior, en general, para desarrollar un videojuego
de una u otra es cuestión personal. incluyen los drivers de OpenGL 1.1, aunque la para consolas, se necesita tener una compañía
versión más reciente de OpenGL es 2.0 –Win- establecida con presupuesto suficiente.
¿Qué es DirectX? dows Vista tendrá los drivers de OpenGL 1.4–.
DirectX es una serie de APIs de Microsoft para Entonces, la versión de OpenGL que se tenga, Si quieres aprender cómo es el desarrollo
manejo de gráficas, input del usuario, soni- depende de dos cosas: la primera es nuestra para consolas, una muy recomendada para
do, video, y funciones de redes que se pue- tarjeta de video –no todas las tarjetas sopor- empezar sería Gameboy Advance (GBA), ya
den usar en aplicaciones de multimedia en tan las últimas versiones de OpenGL –, y la que es de las menos complejas. En el sitio
general, no solamente juegos. En versiones segunda, es actualizar los drivers de nuestra www.jharbour.com/gameboy/default.aspx
anteriores de DirectX, las gráficas 2D y 3D tarjeta de video para tener la versión más re- se encuentra gratuitamente el ebook “Pro-
se manejaban con las APIs DirectDraw y Di- ciente que soporte la tarjeta. gramming The Nintendo Game Boy Advan-
rect3D, respectivamente. A partir de DirectX ce”, que nunca se publicó como libro debido
8, éstas se fusionaron en DirectX Graphics, Para utilizar OpenGL, es necesario configurar a cuestiones legales. En éste, se encuentra
pero es mejor conocida como Direct3D. nuestro compilador para que pueda encontrar información de cómo ejecutar nuestros pro-

26 ENE-FEB 2007 www.softwareguru.com.mx


Tema Tìtulo Autor
efectos visuales avanzados que vemos en
Matemáticas/Física Mathematics for 3d Game Eric Lengyel los juegos de hoy en día, son implementa-
Programming and Computer Graphics dos por medio de Shaders.
OpenGL OpenGL Programming Guide: OpenGL Architecture
The Official Guide to Learning OpenGL Review Board Hace algunos años, los Shaders eran escri-
tos en lenguaje ensamblador, por tal razón
Beginning OpenGL Game Programming. Dave Astle y no eran tan populares. Actualmente la mayo-
Kevin Hawkins ría de los Shaders, son escritos en lenguajes
de “alto nivel”, muy parecidos a C, los tres
More OpenGL Game Programming. Dave Astle más usados son: GLSL (específico de Open-
GL); HLSL (específico de DirectX) y Cg (pue-
Gráficas 3D Interactive Computer Graphics: Edward Angel
A Top-Down Approach using OpenGL. de correr ya sea en OpenGL o DirectX).

Real-Time Rendering Tomas Akenine-Moller Las tarjetas gráficas con arquitectura pro-
y Eric Haines gramable tienen dos núcleos o procesadores
programables, uno se ejecuta a nivel de ob-
Desarrollo de Juegos Game Programming Gems. Mark DeLoura jetos y otro se ejecuta a nivel de pixeles. Los
(Serie de 6 libros hasta el momento). (Editor)
Shaders que se pueden ejecutar en ellos, se
Core Techniques and Algorithms in Daniel Sanchez-Crespo conocen como Vertex Shaders y Pixel Sha-
Game Programming ders respectivamente (los últimos también
se conocen como Fragment Shaders).
Inteligencia Artificial AI Game Programming Wisdom 3 Steve Rabin
Las tarjetas gráficas con arquitectura pro-
Modelado Modeling a Character in 3DS Max Paul Steed gramable, también tienen soporte para la ar-
quitectura fija, y es decisión de la aplicación,
utilizar una u otra arquitectura o incluso uti-
pios juegos de GBA en una PC, usando un gun libro que enseñe todo lo relacionado al lizar las dos. Es por eso que muchas veces,
emulador, así como información de cómo desarrollo de videojuegos, así que los cate- aunque tengamos un procesador avanzado,
correrlos en una consola GBAreal. goricé en 6 grupos principales, y por razones si no tenemos una tarjeta gráfica con arqui-
de espacio, sólo menciono unos cuantos de tectura programable como lo requieren algu-
Referencias en línea cada categoría. nos juegos, no podremos ejecutarlos.
Algunos links con mucha información son
los siguientes: ¿Qué tarjeta gráfica me puede Tips generales
www.opengl.org – El sitio oficial de OpenGL, servir para empezar? •Es más fácil empezar por 2D, y algunas co-
tiene documentación y foros de OpenGL para El mercado de las tarjetas gráficas es domina- sas de 2D se aplican a 3D también.
principiantes y avanzados. do por dos compañías, ATI y NVIDIA. Las dos •Es más sencillo aprender OpenGL que Di-
ofrecen tarjetas gráficas de muy buena calidad rectX (en mi opinión).
msdn.microsoft.com/library/en-us/directx9_ y de una gran variedad de precios, dependien- •Jugar muchos juegos. Es la mejor manera
c/directx_sdk.asp – Información de DirectX. do de la generación de la tarjeta. Muchas ve- de sacar ideas para juegos nuevos.
ces, al ver las cajas de las tarjetas pueden sur- •Ayudar a otros. También se aprende mucho
www.gamedev.net – Un sitio con mucha docu- gir más preguntas, ya que la información que cuando se enseña.
mentación de desarrollo de juegos en general y tienen, puede parecer extraña. Por ejemplo, es •Tratar de hacer un clon de algún juego 2D
foros para los diferentes aspectos del desarro- importante entender lo que son los Shaders. sencillo (Tetris, Pong) y después mejorarlo.
llo. •Para un juego 3D, es más rápido desarro-
Shaders: hasta hace algunos años, se decía llarlo en equipo.
www.gamasutra.com – Un sitio donde se pue- que las tarjetas gráficas tenían una arqui-
den encontrar las más recientes noticias de tectura fija (Fixed-Function Pipeline) ya que
la industria de los videojuegos, pero también la información enviada desde la aplicación,
cuenta con algo de información técnica. siempre pasaba por las mismas operaciones
dentro de la tarjeta gráfica. Esto ha cambia-
www.flipcode.com – Un sitio que ya no se man- do, y actualmente las tarjetas gráficas tienen
tiene por sus creadores, pero tiene una extensa una arquitectura programable. Conclusión
colección de artículos, todavía en línea, relacio- El tema de desarrollo de videojuegos
nados al desarrollo de videojuegos. Una arquitectura programable significa que es muy extenso, pero espero haber
desde la aplicación, se le puede indicar a la respondido las preguntas básicas
¿Qué libros me pueden servir? tarjeta gráfica que ejecute ciertos programas acerca de cómo empezar. El siguiente
La tabla en la parte superior de esta página pequeños (llamados Shaders) ella misma, li- artículo tiene información mas espe-
lista algunos libros que considero buenos berando al CPU completamente de ejecutar cífica en cuanto a la estructura de un
y que son útiles, independientemente del esas funciones. Es por esto que las tarjetas juego. Si dejé alguna pregunta sin
nivel de conocimiento de programación de gráficas actuales, cuentan con su propia responder, me pueden contactar en
videojuegos que se tenga. Como ya lo había memoria y procesador, conocido como GPU [email protected] y trataré
mencionado, hasta el momento, no sé de al- (Graphics Processing Unit). Muchos de los de responder lo más pronto posible.

www.softwareguru.com.mx ENE-FEB 2007 27


second) ejecuta. Qué tan rápido corre un
juego, depende de muchos factores, princi-
palmente aspectos de hardware como proce-
sador, memoria, tarjeta gráfica; aunque tam-
bién, influyen aspectos de nuestra lógica de
programación. Por lo general, en el desarrollo
de un juego se intenta tener por lo menos
60fps, para que el movimiento de los objetos
sea contínuo.

•Una parte de liberación de recursos – Eje-


cutada al finalizar el juego, aquí se libera la
memoria obtenida de manera dinámica en
todos los subsistemas del juego.

Conceptos básicos
Definamos algunos conceptos básicos que
nos ayudarán a entender el código de nues-
tro juego 2D:

o d e u n Framebuffer. OpenGL cuenta con una co-

l l
D o
lección de búfers donde se almacena infor-

r
a r
2
mación que se presentará en la pantalla. El

s
De
o
búfer principal, es el búfer de color, que es

g
un arreglo bidimensional que almacena el

ue
color final de los pixeles. También existe el

J
búfer de profundidad (Z-buffer), que almace-
na la información de profundidad (respecto
a la cámara virtual) de cada pixel generado
grana
el Villa cuando se hacer un render de un objeto,
Por Jo esto sirve para determinar si cada pixel del
objeto es visible al hacer la comparación de

nfigu ración los pixeles generados contra la información

pto s y Co que ya se tiene en el Z-Buffer.


Conce
En las aplicaciones gráficas se tienen cuan-
do ménos dos framebuffers, uno para mos-
trar en la pantalla y otro para hacer un ren-
der en él, mientras el otro, se muestra en la
pantalla. Al terminar de hacer un render en

D
un búfer, se hace un intercambio, el búfer
esarrollar un juego de video en 2D con OpenGL no es tan complica-
en el que se hizo el render es mostrado en
do como podrías pensar. A través de una serie de artículos, mostraré la pantalla, mientras se hace render en el
cómo se desarrolla un juego sencillo, que sirva para dar una idea clara de otro. Es necesario usar dos búfers, ya que
las funciones y estructura básica de un juego. Por razones de espacio en la de lo contrario, tendríamos un efecto visual
revista, en esta primera parte sólo introduciré algunos conceptos básicos desagradable al hacer render sobre el búfer
y de configuración; y en próximas entregas continuaré con los diferentes en pantalla.
aspectos a resolver, en el desarrollo de un juego 2D.
Render. Es el proceso de tomar una repre-
Estructura básica de un juego •Actualización - Por ejemplo la posición sentación matemática tridimensional de un
•Una parte de inicialización - Aquí se crea de un enemigo, verificar si el usuario ha objeto y presentarlo como una imagen bidi-
nuestra ventana principal, se cargan todos presionado algun botón, actualizar la po- mensional en la pantalla. Para este proceso
los archivos que necesita el juego (modelos sición de un cohete se disparó, verificar si se toma toda la información relacionada al
3D, imágenes, sonidos) y se crean e inicia- un vehículo ha colisionado contra algún objeto como color, posición y textura.
lizan los diferentes subsistemas del juego objeto del mundo.
(gráficas, input del usuario, inteligencia ar- •Render – Es la parte más importante, es decir, Proyecciones. Las 3 etapas conceptuales
tificial, etcétera). el mandar todas las gráficas a la pantalla. de la arquitectura gráfica son: Aplicación,
Geometría, y Rasterización. En la etapa de
•Un ciclo principal - Este ciclo principal eje- Este ciclo se ejecuta muchas veces por se- Geometría, se toman los objetos y sus da-
cuta la lógica del juego una y otra vez, hasta gundo, y cada ejecución se conoce como Fra- tos asociados y se “proyectan” en la panta-
que el usuario sale del juego. La lógica bási- me. Una medida del rendimiento de nuestro lla. Hay dos formas principales de hacerlo:
ca dentro de este ciclo es: juego, es indicar cuantos FPS (frames-per- para 2D se usa la proyección ortogonal, en

28 ENE-FEB 2007 www.softwareguru.com.mx


glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
ésta, la apariencia de los objetos es la mis- la información actual de las propiedades //...
ma, independientemente de la distancia de los objetos hasta que se le indican nue- glFlush(); // Termina los comandos de render pendientes
desde donde se vean. Para 3D se utiliza la vas propiedades. glutSwapBuffers(); // Intercambia el front y back buffer
}
proyección en perspectiva; donde la apa-
riencia de los objetos cambia, dependiendo GL Utility Toolkit (GLUT) void SG_SizeFunction( int width, int height )
de la distancia con respecto a la cámara vir- GLUT es una librería que simplifica la creación {
InitializeProjection( width, height );
tual, que es como percibimos los objetos y manejo de ventanas con soporte para Open- }
en la vida real. GL. En GLUT podemos definir nuestras call- void SG_KeyboardFunction( unsigned char key, int x, int y ){ /*...*/ }
back functions, que son las funciones llama- void SG_MouseFunction( int button, int state, int x, int y ){ /*...*/ }
Transformaciones. En un juego, el movi- das automáticamente cuando ocurren ciertos
int main( int argc, char** argv )
miento de los objetos se realiza por medio eventos como cuando se cambia de tamaño {
de transformaciones. Trasladar un proyectil la ventana, cuando se hace clic con el mouse /* Código de inicialización de GLUT */
de una posición a otra, rotar la cámara vir- o cuando se recibe input del teclado. glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH |
GLUT_RGBA );
tual, hacer más grande un objeto, son ejem- glutInitWindowPosition( 0, 0 );
plos de transformaciones. GLUT se puede descargar en www.xmission. glutInitWindowSize( 800, 600 );
com/~nate/glut.html, y si quieres configu- glutInit( &argc, argv );
/* Creación de la ventana */
Matrices. Para almacenar información acer- rar Visual Studio para usar GLUT, puedes glutCreateWindow(“Juego 2D – SG 2007”);
ca del tipo de proyección usada en un jue- encontrar una guía para esto en csf11.acs. /* Callback Functions */
go, e información de las transformaciones uwosh.edu/cs371/visualstudio/ // Función llamada cada vez que el usuario cambia
// de tamaño la ventana
y parámetros actuales de la cámara virtual, glutReshapeFunc( SG_SizeFunction );
OpenGL utiliza la Projection Matrix y la Mo- El siguiente código es un ejemplo de un es- // Función llamada cuando la ventana necesita ser redibujada
delView Matrix respectivamente. queleto que inicializa OpenGL y GLUT. glutDisplayFunc( SG_DisplayFunction );
// Función llamada cada que nuestra aplicación esta “libre”
glutIdleFunc( SG_DisplayFunction );
Viewport. Podemos definir un área dentro #include <stdio.h>
// Función llamada cada que se recibe input del teclado
#include <stdlib.h>
de una ventana, a la cual va a afectar nues- #include <GL/glut.h> // funciones de GLUT y OpenGL
glutKeyboardFunc( SG_KeyboardFunction );
tro render. Generalmente, el viewport tiene // Función llamada cada que se recibe input del mouse
glutMouseFunc( SG_MouseFunction );
el mismo tamaño de la ventana, pero si qui- /* Declaracion de callback functions, etc */
// Inicialización de OpenGL
void SG_DisplayFunction();
siéramos hacer una aplicación que muestre void SG_KeyboardFunction( unsigned char key, int x, int y );
InitializeOpenGL();
nuestros objetos desde varias perspectivas // El loop principal de la aplicación
void SG_SizeFunction( int width, int height );
glutMainLoop();
(como lo hace 3dsmax por ejemplo) tendría- void SG_MouseFunction( int button, int state, int x, int y );
return 0;
void InitializeProjection( int width, int height );
mos que definir diferentes viewports dentro void InitializeOpenGL();
}
de nuestra ventana. /* ... */

Geometría. Todos los objetos que vemos en void InitializeOpenGL() Como se puede observar, el uso de GLUT
{
un juego 3D están compuestos por peque- // Color que se utilizará cuando se limpie la pantalla (RGBA) permite simplificar a unas cuantas líneas,
ños triángulos, que al ser representados en glClearColor( 0.0f, 0.4f, 0.9f, 1.0f ); un código de inicialización que podría to-
conjunto, determinan la forma del objeto. mar el doble de líneas o más, usando la API
// Parámetros para el uso del Z-buffer
Las formas básicas que se mandan a la tarje- glClearDepth( 1.0f ); de Windows.
ta gráfica son cuadrados, triángulos, líneas, glEnable( GL_DEPTH_TEST );
y puntos. Cada una de estas primitivas tiene glDepthFunc( GL_LEQUAL );
información asociada como vértices, norma- glShadeModel( GL_SMOOTH ); // Tipo de shading
les, y coordenadas de textura. InitializeProjection( 800, 600 ); // Proyección
//...
}
Texturas. Son básicamente, imágenes que
van a ser “pegadas” a nuestra geometría void InitializeProjection( int width, int height )
para darle la apariencia final. Una restric- { Conclusión
glViewport( 0, 0, width, height ); // Viewport
ción importante para las texturas de un jue- En esta primera parte, revisamos los
glMatrixMode( GL_PROJECTION ); // Proyección
go, es que su tamaño debe ser potencia de glLoadIdentity(); conceptos básicos para arrancar con el
2, por ejemplo 128x128, 256x256, 512x512 glOrtho( 0, width, 0, height, -10, 10 ); // 2D desarrollo de nuestro juego. En entre-
pixeles. Para determinar qué parte de la /* Cambiar para poder procesar las transformaciones de la gas posteriores veremos cómo crear el
camara virtual */
textura se pegará en cada triángulo de la glMatrixMode( GL_MODELVIEW ); mundo gráfico de nuestro juego, mo-
geometría, se utilizan las coordenadas de glLoadIdentity(); ver los objetos, detectar colisiones,
textura. Al hacer el render, se deben pasar } reproducir sonidos, y muchos otros
las coordenadas de textura por cada vérti- void SG_DisplayFunction() aspectos involucrados en el desarrollo
ce de la geometría. OpenGL funciona como { de un juego. ¡Hasta entonces!
una máquina de estados, es decir, guarda // Limpia el bufer de color y el Z-buffer

Joel Villagrana, egresado de la Universidad de Guadalajara como Ingeniero en Computación, ha estado en contacto con la programación de videojuegos des-
de hace 4 años cuando estudió una maestría en Ambientes Virtuales en Inglaterra. Actualmente trabaja para IBM, pero en su tiempo libre sigue aprendiendo
las nuevas técnicas de gráficas 3D. Participó en el libro “More OpenGL Game Programming”, publicado en 2005. Recientemente participó en Creanimax 2006.
La información de estos artículos representa su punto de vista y no necesariamente el de IBM Corporation. [email protected]

www.softwareguru.com.mx ENE-FEB 2007 29


XNA
a
e Sánch
ez
d e T odos e e n cantaba
a l A lcance
Por Jaim
y b
em er
ien qufenomenal vdes-
ego s do m u era ar a
ro l l o de Ju a r i a , recuer s. Para mí, asmas, o jug
Desar nd it a nt
a e n la secun las maquindo por los fapequeños.
esta b o co canz a más
uandohoras jugandara no ser al en pedazos
C pasar corriendo p e explotaban
an
Pac-M s asteroides
qu
truir lo

Con historias así, es que surge la industria de


los videojuegos, y precisamente este tipo de
juegos simples, pero contagiosos, se conocen
actualmente como juegos ocasionales o casual
gaming. Lo interesante de dicha tendencia en
videojuegos, no es tanto la capacidad de po-
derlos jugar una y otra vez, sino que además,
puedes disfrutarlos en diferentes dispositivos y
competir contra diferentes adversarios en línea.

En este sentido, el Xbox 360 abrió un mercado


muy interesante a través de su Xbox Live, con el
que los usuarios pueden descargar de Internet
contenidos y juegos. Sin embargo, esto presen-
tó dos problemas principales; el primero es que,
para desarrollar juegos para diferentes platafor-
mas (por ejemplo, Xbox y PC), se necesitaban
bases de código diferentes e independientes.
El segundo problema, es que la capacidad de
desarrollar juegos para consolas sólo estaba Figura 1. Aquí se ilustran las capas que componen el XNA Framework.
disponible para las grandes casas desarrollado-
ras de juegos, utilizando kits de desarrollo caros Para desarrollar juegos basados en el fra- •XNA Game Studio Professional. Dirigido a
y con disponibilidad limitada. Esto eliminaba la mework XNA, se utiliza XNA Game Studio, profesionales que crean juegos para comer-
posibilidad de que un desarrolaldor casual pu- que es un ambiente de desarrollo basado en cializar. Se espera que sea lanzado en el se-
diera hacer un juego para Xbox, por ejemplo. Visual Studio C#. XNA Game Studio estará gundo semestre de 2007.
Para resolver tales problemas, se creó XNA. disponible en dos versiones:
•XNA Game Studio Express. Versión gratuita Cuando estás desarrollando un videojuego,
XNA es un framework basado en .NET, que basada en Visual Studio Express C# dirigida lo más complejo se encuentra en generar el
facilita el desarrollo de videojuegos y permi- a los desarrolladores casuales o por hobby. código, que se va a encargar de operar las
te usar una misma base de código para tanto Actualmente está disponible como beta, y en controladoras de videos, las interfaces de
plataforma Xbox como Windows. cualquier momento se liberará la versión final. entrada o controles, los eventos a los que

30 ENE-FEB 2007 www.softwareguru.com.mx


debe de responder, etcétera. Toda esta ló- Lo importante, es que sepas que, generar un
gica, la administra XNA, de tal manera que, videojuego, no es cosa sencilla, ya que tie-
es mucho más fácil comenzar a desarrollar nes que diseñar la historia del juego, todo
tu videojuego usando las interfaces que te el arte, las animaciones, objetos en 3D, el
provee, además, cuando lo instalas, vienen audio, y ya una vez que tienes todos estos
pre cargadas una serie de plantillas que te componentes, comienza lo divertido: inte-
permiten comenzar a crear tu juego en me- grarlos. Pero no te desanimes, ya verás que
nos de 5 minutos. con un poco de práctica, pronto estarás de-
sarrollando juegos divertidos, que podrás
Capas de XNA compartir con tus amigos o incluso, jugarlos
Ahora, ya que entendimos qué onda con XNA, en línea.
vamos a verlo un poco más a detalle. El frame- Figura 2. Interfaz de desarrollo de Game Studio
work está organizado en 4 capas orientadas a Express de XNA.
diferentes propósitos:
•La capa base del framework XNA es la capa
denominada de “Plataforma”, que es donde se
maneja toda la lógica de bajo nivel, por ejemplo
lo que es Direct 3D, XACT, etcétera. Digamos
que es como el cerebro de XNA.
•Encima de la capa de plataforma se encuen-
tra la del framework básico, o central. Aquí es
donde se procesa la información general del
videojuego, es decir, el audio, los procesamien-
tos matemáticos, almacenamiento, etcétera.
•Para facilitar el desarrollo de los juegos, se
diseñó un conjunto de interfaces que forman la
capa denominada, framework extendido.
•La última capa es la de juego, que es donde
se lleva toda la lógica como tal. Lo interesante
es que tú puedes generar componentes que
permitan que los demás puedan acceder a
tu juego y configurar cómo se desarrolla.
Por ejemplo, podrías hacer una interfaz
para que pudieran descargar nuevas naves
espaciales, o en un ambiente un poco más Figura 3. Plantilla de desarrollo Space War.
comercial, podrías vender espacio publicita-
rio en tu videojuego. Imagina que pudieras
rentarle a una compañía de refrescos, un es-
pacio para que publiciten sus productos, y
al término del periodo, venderle ese mismo
espacio a una compañía de automóviles, y lo
único que cambiaría en tu juego, es la mane-
ra en la que se consume dicho componente.
Sería genial, ¿no?
Conclusión
Para dar inicio Figura 4. Juego en ejecución. Desarrollar un videojuego involucra
Ya que conoces cómo está diseñada a gran tomar en cuenta muchos aspectos.
escala la arquitectura de XNA, muy segura- Game Studio Express de XNA, desde el sitio Afortunadamente, XNA elimina algo de
mente tu siguiente pregunta sería: ¿Cómo lo msdn.microsoft.com/directx/xna/gse. esa complejidad y es una excelente op-
empiezo a utilizar? ción para desarrollar juegos tanto para
Una vez que instalaste los programas, estarás Xbox como Windows. Lo mejor de todo
Lo primero que tienes que hacer es descar- listo para comenzar a desarrollar tu juego. Te es que XNA Game Studio Express es
gar Visual Studio Express C#. Lo puedes recomiendo que para comenzar te bases en gratis, así que si eres un desarrollador
encontrar en el sitio msdn.microsoft.com/ alguna de las plantillas de videojuegos que ya de software y conoces algo de C#, anda
vstudio/express/visualcsharp. Una vez que vienen instaladas, esto te va a permitir enten- ya, y desarrolla tus primeros juegos.
instales C# Express necesitas descargar el der cómo está estructurado el videojuego.

Jaime Sánchez Beltrán, con más de 10 años de experiencia en la industria de Tecnologías de Información, actualmente se desempeña como evangelista
para empresas de software en Microsoft, entre sus labores se encuentra la divulgación tecnológica, y generación de programas que impulsen el ecosistema
de TI. Ha participado como conferencista nacional e internacional, empujando la innovación en TI. Anteriormente trabajó para Microsoft en Texas, soportando
las cuentas Premiere de América Latina.

www.softwareguru.com.mx ENE-FEB 2007 31


g e n c i a
l i
In t
t
e
i fi c i a l
A
Ap
rl i
Por Dr.
c a c ión a do
s Delg
Carlo
a
s Jueg
lo
os d e Vide
o

L a Inteligencia Artificial (IA) en los juegos de video, ha cobrado auge en los últimos años. Dado que las imáge-
nes desplegadas por las consolas de la siguiente generación (Wii, PlayStation 3 y Xbox 360) cada vez se acer-
can más a la realidad, ahora, el reto radica en hacer que estas imágenes cobren “vida” y realicen comportamiento
que el jugador perciba como inteligente. Esto es, que el comportamiento sea tan creíble como las imágenes des-
plegadas. Para cumplir este gran reto, los videojuegos están utilizando cada vez, con mayor frecuencia, técnicas
de Inteligencia Artificial avanzadas, como lo son Redes Neuronales, Algoritmos Genéticos, y Planeación, y ya
no sólo técnicas que se han usado tradicionalmente, como las Máquinas de Estado Finito (FSM) para simular el
comportamiento de los personajes, y el Algoritmo A* para encontrar rutas. El presente artículo se divide en dos
partes: la primera es un vistazo a lo que es la IA más interesante en los juegos de video actuales, y la segunda, es
un ejemplo de IA reactiva para un juego que estamos desarrollando en Nibbo Studios.

Juegos cuya IA vale la pena notar dor). Esto se realiza por medio de la técnica con estos objetivos. Esto acarrea el benefi-
Estos son algunos de los juegos que consideo de IA conocida como aprendizaje reforzado, cio de que las acciones y los objetivos están
vale la pena destacar por su uso de IA: donde se premia a la criatura si realiza la ac- “desacopladas”, por lo que es más sencillo
ción que le pedimos (por medio de un caricia expandir el sistema de IA de manera eficaz.
1. Creatures, un juego de vida artificial crea- en el lomo) o se castiga si no hace lo que se
do por Steve Grand para Cyberlife en el Reino pide (a través de un latigazo). Ejemplo: Überpong
Unido. En este juego, cada una de las criatu- desarrollado por Nibbo Studios
ras (Norns) tiene diferentes genes. Los Norns 3. F.E.A.R. (First Encounter Assault Recon), Ahora daré un ejemplo de la IA del videojue-
se aparean entre sí para dar vida a nuevas IA por Jeff Orkin de Monolith Productions. go mexicano Überpong, desarrollado por Ni-
criaturas, que van evolucionando su DNA y Cuenta con la Inteligencia Artificial más in- bbo Studios (www.nibbo.net) en la ciudad de
adquiriendo algunos rasgos de generaciones teresante, ya que se utilizan técnicas como Aguascalientes. Überpong actualmente se
anteriores. El cerebro de las criaturas es si- el uso de un planeador para complementar encuentra en pruebas beta, y pronto saldrá al
mulado por una red neuronal sencilla. Steve a otras que se han utilizado con mayor fre- mercado. Este videojuego ha ganado dos pre-
Grand incluso, se ha auto proclamado un dios cuencia en la IA de los juegos de video, como mios a nivel nacional, incluyendo el mejor vi-
digital, ya que según él, ha creado “vida” den- son las maquina de estado finito (FSM) y el deojuego en PC desarrollado por una empresa
tro de una computadora. algoritmo A*. Lo interesante de utilizar el mexicana en el concurso del capítulo mexicano
planeador, es que solamente es necesario de la IGDA (International Game Developers As-
2. Black and White de Peter Molyneaux de especificar cuál es el conjunto de objetivos sociation) en noviembre del 2006. Überpong
Lionhead Studios, donde se puede entrenar que persigue el personaje y cuáles son las es un videojuego que combina los géneros
a las bestias que dependen del dios (el juga- acciones que puede realizar para cumplir de deportes y de acción para traer el clásico

32 ENE-FEB 2007 www.softwareguru.com.mx


Figura 1. Contestación del enemigo (paddle derecho)
en el nivel de la tierra.

Figura 2. Enemigo (paddle derecho) recibiendo la


pelota en el nivel del hielo.

juego de Pong al siglo XXI. Para lograrlo, se la pelota (siguiéndola o prediciendo a cada tear la pantalla cuando la pelota esté cerca del
dotó de algoritmos de física computacional, instante dónde llegará la pelota). jugador, le dará menos tiempo de reaccionar.
detección de colisiones y de Inteligencia Ar- 2. Parámetros para definir un sistema primi-
tificial que a continuación se describe: tivo de visión. El juego se puede ver en acción en las figuras
3. Velocidad máxima del paddle. 1 y 2 (que se muestran en la esquina superior
La Inteligencia Artificial de los enemigos de 4. Aceleración máxima del paddle. izquierda).
Überpong se divide en 4 dimensiones, una 5. Porcentaje de decaimiento de la velocidad
para definir cómo el control (paddle) del del paddle.
enemigo se aproxima a la pelota, y las otras
3, para definir la personalidad del enemigo. Para definir la personalidad del enemigo, se
El sistema de IA está influenciado en los crearon los perfiles de personalidad, estos
estudios doctorales de un servidor. En este están dados en 3 dimensiones:
tipo de IA, por medio de reglas sencillas se •La primera dimensión define si el enemigo Conclusión
simula comportamiento que parece ser más será agresivo, precavido, o miedoso; esto La Inteligencia Artificial es sin duda,
complejo. Sistemas similares de IA se han es, si tratará de acelerar la pelota, no hará un campo con mucho potencial, que
utilizado para simular animales artificiales, nada o si tratará de desacelerar la pelota. tiene grandes áreas de oportunidad
y también para guiar robots en ambientes •La segunda dimensión define si el enemigo en los juegos de video. Espero que
complejos y cambiantes. es arriesgado o no; esto es, si tratará de apli- con este breve artículo les haya
car efecto o no a la pelota. dado una idea del tipo de conside-
Para definir cómo se aproxima el paddle del •La tercera dimensión define si el enemigo es raciones que se deben tener en IA
enemigo a la pelota, se definieron un con- impulsivo o calculador; esto es, qué estrategia para videojuegos, y también espe-
junto de parámetros que se especifican en utilizará para aplicarle los ítems al jugador: si es ro, haber despertado su curiosidad
el archivo XML de la IA. Entre éstos se en- impulsivo, los aplicará en cuanto los tenga dis- para que conozcan más sobre esta
cuentran: ponibles y si es calculador, los aplicará cuando fascinante área.
1. Qué método utilizará para aproximarse a ocasione más daño al jugador, por ejemplo, vol-

El Dr. Carlos Delgado Mata es socio fundador de Nibbo Studios, y ha estado encargado de la Inteligencia Artificial y Física Computacional del más
reciente proyecto. Además, es profesor investigador en el campus académico de la Universidad Panamericana, Universidad Bonaterra. Es autor de mas de
30 artículos en el área de Agentes y Entornos Virtuales Inteligentes. Es fundador y co-chair de la conferencia internacional especializada en el área IVEVA
(Intelligent Virtual Environments and Virtual Agents).

www.softwareguru.com.mx ENE-FEB 2007 33


d u s t r i a scar G
uillén

In
g. O
Por In

La
s cia
c e d e Todo m e r a instan ías
an pr i pañ
g o s al Alc j u e gos, enn en las comambién
Ju e vid e o nsa s. T
s a r ro llo de n d u s t ria de riente y, pie ros crecimo o Francia.
De e la i no o nosot terra
s e h abla d iajan al leja muchos de nidos, Ingla el nuestro.
uandoas mentes v on los que Estados U íamos sería
C nuestr los juegos cpaíses comos que pensar
sy en
niponamos pensar n el último
paí
podríaiertamente, e
gente conoce
Pero c oca ellas
“Muy pencia de aquchan por
la exist ñías que lu
compaño común: , con
un sueollar juegos ual
desarrdad intelectMéxico”.
propie, hechos en
propia
Aunque desde hace cerca de diez años han exis- defienda a capa y espada. Por lo mismo, mu-
tido intentos de desarrollo de juegos de video chas veces estas personas suelen no estudiar Malinchismo. El malinchismo mexicano es otro
en México, aún muy poca gente conoce la exis- el mercado para conocer a su competencia y factor importante que no podemos dejar fuera
tencia de aquellas compañías que luchan por el tema que se elige para el juego a desarrollar de la ecuación. Pongamos por ejemplo el juego
un sueño común: desarrollar juegos, con pro- se escoge simplemente basándose en el gusto Mythic Blades desarrollado por la compañía Ver-
piedad intelectual propia, “Hechos en México”. personal de quienes lo van a crear. Debido a million Games de Querétaro. Cuando Vermillion
esto, podemos ver que algunos de los primeros mostró las primeras versiones de su producto
Desgraciadamente, los primeros proyectos no juegos mexicanos fueron muy similares a jue- en los foros especializados mexicanos, lo único
cautivaron al público de la manera que sus crea- gos reconocidos mundialmente. Esto provocó que recibió fue críticas. Miguel Pineda, socio
dores hubieran querido. Sin embargo, a medida que el consumidor, al tener que elegir entre dos fundador de Vermillion Games, una vez comen-
que pasan los años, cada vez más gente creati- juegos similares, uno desarrollado por un estu- tó que los comentarios más viscerales hacia el
va se dispone a embarcarse en tan aventurada dio reconocido, y otro por un grupo de personas juego fueron por parte de los propios paisanos.
tarea, y en conocer los errores del pasado, que que apenas comienzan y del cual no se sabe Esto casi los llevó a abandonar el proyecto. Sin
han servido de lección para muchas compañías mucho, obviamente se inclinará por el primero. embargo, al mostrar su juego en páginas de In-
que están comenzando. ternet y foros extranjeros, la aceptación fue tal
Piratería. La piratería es otro factor que inci- que terminaron el juego y éste fue comercializa-
Antecedentes y dió y sigue causando molestias a los desa- do en varios países por una distribuidora norte-
lecciones aprendidas rrolladores en nuestro país. Se estima que americana, recibiendo grandes alabanzas por el
Los factores que ocasionaron que los proyectos más del 80% de los videojuegos que se ven- arte gráfico del mismo.
pioneros fracasaran, son varios, y se necesitaría den en México son adquiridos en el mercado
hablar, en particular de cada una de las empre- informal. Este vicio, que las autoridades han Esfuerzos recientes de promoción
sas involucradas, para buscar-encontrar qué fue dejado pasar, origina que las personas con- Eventos como Creanimax 2006, que se reali-
lo que hizo falta. Sin embargo, a manera general sideren normal comprar un juego por veinte zó el pasado mes de octubre en Guadalajara,
podemos englobar los más importantes y de los pesos o menos, en el mercado de la esquina, Jalisco; donde se dieron cita varias de las más
cuales, se trata un poco a continuación. sin ponerse a pensar en todo el esfuerzo que importantes personalidades en materia de
hay detrás, y por el cual el producto comprado Animación y Videojuegos no sólo nacional sino
Originalidad. Al no tener una clara visión del en una tienda legítima, tiene un precio mucho internacional, y los concursos organizados por
mercado se suele pasar por alto varios factores más elevado. Es risible entonces, ver que haya el capítulo en México de la IGDA (International
externos que pueden hacer que un producto no gente que luego de conseguir de manera ilegal Game Developers Association) junto con Oelli,
se venda como se tiene planeado. Si a cualquier videojuegos desarrollados en México, se pre- la empresa organizadora del Electronic Game
desarrollador de juegos se le pregunta qué gunte por qué la compañía que lo desarrolló ya Show, y la Secretaría de Economía, son puntos
piensa de su creación, lo más seguro es que la no continuó sacando más proyectos. importantes de exposición de la creatividad de

34 ENE-FEB 2007 www.softwareguru.com.mx


los jóvenes mexicanos. En los concursos de am- Idle Hands Games. Enfocados en la creación mic futurista que daba oportunidad al lector de
bos eventos se premiaron proyectos realizados de juegos para dispositivos móviles, esta em- terminar cada uno de los capítulos, viviéndolo
por estudiantes, profesionistas y empresas, presa del D.F. cuenta ya con siete juegos en su en un juego adjunto en forma de CD con cada
basándose en diferentes factores como el ga- haber; que se basan en ideas simples, pero tomo. El principal problema que enfrentó este
meplay del juego, el arte y música, pero sobre entretenidas y se venden por medio de des- proyecto, fue no haber considerado los largos
todo, la originalidad de los mismos. cargas directas al celular. Entre sus juegos más tiempos que toma desarrollar un videojuego, ya
populares se encuentra “Ruta 666”, en el que que la idea original era que, tanto el juego como
Cabe mencionar que entre los premios otorga- el usuario toma el papel de un chofer de auto- el cómic, salieran mensualmente. Se lanzaron al
dos en el concurso de la IGDA, se dio a los me- bús, que intenta realizar su trabajo en el caos mercado dos tomos y se desarrolló una versión
jores proyectos la oportunidad de viajar a San vial de la ciudad de México. especial del juego en formato de Arcadia, mis-
Francisco el próximo año, para asistir al Game mos que se pueden adquirir todavía, a través de
Developers Conference, donde podrán exhibir Nibbo Studios. Empresa de Aguascalientes la página de Internet de la casa editorial.
sus proyectos en un pabellón que pretende que ha desarrollado diferentes proyectos
acercar a los desarrolladores nacionales con los como los kioscos con pantalla táctil, presen- Xibalba Studios. Con base en Monterrey, esta
del resto del mundo. Esperemos que estos apo- tados en la Feria de San Marcos 2006 en el compañía está formada por egresados de Digi-
yos continúen y que las empresas nacionales stand del Gobierno Estatal; un juego didácti- pen, una de las más prestigiosas escuelas de
sepan sacar el máximo provecho de los mismos, co para la enseñanza del teclado de la compu- desarrollo de videojuegos. Hasta la fecha, sólo
y que la industria de videojuegos en nuestro tadora de nombre “Mecapumble” y el juego han mostrado una demo tecnológica de su mo-
país dé el gran paso y dé a conocer al mundo la en 2D que aún se encuentra en desarrollo, tor de juegos, pero se sabe que trabajan en un
creatividad con la que contamos. llamado “Überpong”. Este último logró con- proyecto basado en el juego maya de la pelota,
seguir el segundo lugar en el concurso de de- que llevará el nombre de “Underworld Tourna-
Algunas empresas mexicanas sarrollo de juegos durante Creanimax 2006 y ment”, y que se espera salga para el Xbox Live.
A continuación, una breve reseña de algunas el primer lugar en la categoría profesional en
empresas representativas de esta naciente in- el concurso organizado por la IGDA. Vermillion Games. Compañía formada por
dustria de videojuegos en México. los hermanos Pineda de Querétaro. Su juego
Nusof Studios. Ganadores del segundo lugar de “Mythic Blades”, es considerado por muchos,
Artefacto Estudio. Es una compañía que trabaja la categoría profesional del concurso de la IGDA. el mejor juego de video desarrollado en Méxi-
en una amplia gama de proyectos que van des- Su proyecto más sobresaliente “Biops 2” es un co hasta la fecha. La calidad que han logrado
de aplicaciones web, hasta creación de imagen juego tridimensional de armas en primera per- imprimir en el arte gráfico y la programación,
corporativa y desarrollo de videojuegos. Su sona (first person shooter), con buenos gráficos hizo que distribuidores internacionales de vi-
proyecto “Xtreme Drive” los hizo merecedores y un nivel adecuado de emoción y dificultad. deojuegos se fijaran en él, y se esté vendien-
del tercer lugar en el concurso más reciente de do ya en diversos lugares del mundo.
desarrollo de videojuegos de la IGDA. Radical Studios. Sacaron al mercado un juego
“multi-jugador masivo en línea” (MMOG por
AztecTech Games. Parte del Instituto Aztec Tech, sus siglas en inglés), en el cual se permitía jugar
el cual es considerado como la primera escuela en tiempo real contra enemigos programados y
de desarrollo de videojuegos en Latinoamérica. personas que estuvieran en línea en el mismo
Sacó al mercado dos de los primeros juegos momento que se estuviera jugando. La idea de
para PC de creación mexicana: “World Masters”y esta compañía era seguir mejorando el juego de
“Hellcopters”, en los que se trabajó cerca de seis manera continua, cobrando mensualidades a
años y que, desgraciadamente no lograron cap- los suscriptores para permitirles tener acceso al
turar la atención del público mexicano. juego. Desgraciadamente, la empresa no pudo Conclusión
soportar los costos de operación y cerró opera- A pesar de los retos y dificultades que
Digital Moon Studios. Compañía originaria del ciones al poco tiempo de haber comenzado. enfrenta esta industria en nuestro país,
estado de México que se dedica a la realización las esperanzas de que siga creciendo
de proyectos a manera de outsourcing. Poco se Ranflosoft. Sorprendió a muchos con su juego son muchas, ya que existe gente que
conoce acerca de los juegos en los que han par- de peleas basado en personajes políticos y del cree firmemente que México puede
ticipado, debido a los contratos de confidencia- folclor mexicano. Aún y cuando la calidad gráfi- dejar de ser un país consumidor y con-
lidad que se requieren para conseguir este tipo ca y el gameplay del juego dejaban mucho que vertirse en un país creador de propie-
de proyectos. desear, “Kombate Mexicano” siempre lograba dad intelectual y juegos de calidad. Si
sacar una sonrisa en las personas que lo proba- quieres conocer más sobre desarrollo
Dimtv. Empresa dedicada a la creación de jue- ron por primera vez. de videojuegos en nuestro país, te re-
gos publicitarios. Han logrado concretar nego- comiendo que entres al sitio del capí-
cios con empresas nacionales e internacionales Snake & Eagle Studios. Esta compañía, aso- tulo en México del IGDA, disponible en
a las cuales les han desarrollado juegos basa- ciada con la casa editorial Linaje, desarrolló el http://mexico.vjuegos.org/
dos en su marca o producto. proyecto “Antrophos”, que consistía en un có-

Ing. Oscar Miguel Guillén Hernández. Ingeniero en Electrónica y Sistemas Digitales por la Universidad Panamericana campus Bonaterra de la ciudad de
Aguascalientes. Socio fundador y Director Creativo de la empresa de tecnologías de entretenimiento Tecnochtitlán S.A. de C.V. de la cual se desprende la marca
de juegos de video Nibbo Studios. Creador de los personajes de los juegos Mecapumble y Überpong. Co-coordinador de los proyectos creados por la empresa
y encargado del área artística de la misma.

www.softwareguru.com.mx ENE-FEB 2007 35


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

Análisis del ROI


Una Herramienta para Justificar la Mejora de Procesos
Por Angélica Su y Alfredo Calvo

M ucho se ha cuestionado si la mejora de


procesos de software basada en CMMI,
realmente trae beneficios tangibles para las
de utilidad del 35%? O quizá destinarlo a me-
jorar la infraestructura de cómputo. A fin de
cuentas, la implementación de un programa de
1. Determinar el alcance de la
iniciativa de mejora
A fin de acotar el alcance del programa de me-
compañías de nuestro país. Las empresas que mejora de procesos de software compite por jora, la organización debe decidir:
quieren comenzar a implementar un esfuerzo recursos humanos y económicos limitados. •La representación del modelo que utilizará
de esta naturaleza, se cuestionan cómo poder (escalonada o continua).
justificar los recursos que van a invertir para Actualmente, las compañías utilizan el ROI •Las áreas de proceso a implementar.
ello, y si se aprovecharán de manera adecuada. para evaluar los proyectos de inversión que •El nivel de madurez objetivo.
Aunque para muchas de estas empresas, la ob- tienen en puerta. Sin embargo, para un pro- •Las áreas involucradas (una división, toda
tención de un nivel de madurez sigue siendo el grama de mejora basado en CMMI, la com- la organización, todos los tipos de proyecto,
principal móvil para implementar CMMI. La rea- plejidad de este análisis radica en obtener o sólo aquellos que pertenezcan a una u otra
lidad muestra que, tales iniciativas, logran un la información suficiente y confiable para tecnología, etcétera).
éxito significativo cuando son vistas como un calcularlo correctamente.
objetivo de negocio, que traerá consigo benefi- 2. Estimar el esfuerzo y los costos
cios económicos y que resolverá problemáticas Análisis del Retorno de Inversión asociados
relevantes en la organización. El proceso para analizar el ROI de un programa Como en cualquier proyecto, es necesario
de mejora se ilustra en la siguiente figura, y se identificar los recursos que se requerirán para
Las preguntas que típicamente surgen al plan- describe a continuación: poder implementar el programa de mejora. Los
tear un programa de mejora son: ¿cuánto nos principales rubros a considerar son:
va a costar?, ¿qué beneficios vamos a obte- •Capacitación.
ner?, ¿cómo justifico el gasto ante el Consejo?, •Esfuerzo para la definición, despliegue y so-
¿existe información de resultados obtenidos porte del proceso.
por empresas similares en México? •Herramientas.
•Consultoría especializada.
Para poder generar un adecuado entendimien- •Evaluaciones formales.
to de implicaciones y beneficios asociados con
un programa de mejora, el análisis del Retorno Es importante contemplar los costos asocia-
de Inversión o ROI (Return of Investment) es dos, no sólo para la implementación del pro-
una herramienta de utilidad, que permite apo- grama, sino también para mantenerlo operan-
yar la justificación de la inversión en términos do, aun después de haber alcanzado un nivel
tangibles para los tomadores de decisiones en de madurez.
la organización.
3. Dimensionar los beneficios
El ROI es un concepto sencillo de comprender Un programa de mejora debe estar goberna-
y aplicar. Supongamos el caso de una empre- do por los objetivos de mejora definidos por
sa que enfrenta la decisión de si invertir o no, el negocio. La experiencia después de innu-
en un programa de mejora. El análisis del ROI merables sesiones de trabajo con directores
significa evaluar si la inversión es rentable, de empresas de TI para identificar los obje-
comparada con otros proyectos u opciones tivos de negocio, nos arroja que los cinco
de inversión disponibles, es decir, ¿por qué no principales son:
mejor invertir este dinero en el banco a taza del •Mejorar la utilidad de los proyectos.
8%?, o ¿por qué no invertirlo como capital de •Cumplir dentro del tiempo y costo estimado.
trabajo en proyectos para buscar un margen Figura 1. Procedimiento para el análisis del ROI. •Mejorar la satisfacción del cliente.

Alfredo Calvo es Consultor Sr. de IT ERA en CMMI, Planeación Estratégica y Balanced Scorecard. Alfredo es CMM CBA-IPI Lead Assessor e
Instructor de PSP y TSP autorizado por el SEI, así como Premio Nacional de Tecnología 2000. Ha sido desarrollador, líder de proyecto, gerente y
director de TI para diversas empresas y cuenta con amplia experiencia brindando servicios de consultoría en mejora de procesos.

Angélica Su es Gerente de Línea de Negocio de CMMI en IT ERA. Cuenta con más de 12 años de experiencia en el ámbito de mejora de procesos,
ha participado en diversos proyectos de implementación de modelos como CMMI, MoProSoft, RUP, ITIL para diversas compañías. Participó como
editora en MoProSoft y EvalProSoft, las cuales actualmente forman parte de norma mexicana de software.

36 ENE-FEB 2007 www.softwareguru.com.mx


El análisis del ROI es una
herramienta de utilidad, que
permite apoyar la justificación de la
inversión en términos tangibles.

•Mejorar la calidad del producto. •Ti-M. Evaluada en diciembre del 2006 como 60 Desarrolladores
•Mejorar la productividad del equipo. CMMI Nivel 3, con información de uso de sus 260 Días laborales
procesos en más de 15 proyectos. Sus estima-
8 Horas x día
El punto más complicado para realizar un ade- ciones de esfuerzo tienen variaciones respec-
cuado análisis del ROI, es el dimensionamiento to a la realidad, de menos del 10% (de -8% a 124,800 Horas hombre al año
y la cuantificación de los beneficios que se ob- +5%), lo cual habla de la madurez y confiabili- $ 30.00 Tarifa promedio (USD)
tendrán con CMMI, debido sobre todo, a la ca- dad de su operación.
$ 3,744,000 Ingresos estimados
rencia de información; la buena noticia es que • Dextra Technologies. Empresa trabajando anuales (USD)
ahora existen resultados cuantitativos publi- con procesos CMMI Nivel 3, actualmente pre-
cados que pueden servir como base para este senta datos recopilados durante 2 años, que $ 374,400 Ahorros estimados por aumento
en productividad del 10% por
análisis. En la tabla 1, se pueden observar los reflejan un efectivo control en la densidad de año (USD)
resultados del uso de CMMI publicados por el defectos en sus proyectos. Esto le ha permitido
SEI, con datos relevantes como: la disminución mejorar el empleo de sus recursos, disminu- Tabla 2. Ejemplo de beneficios estimados.
del costo en un 20%, aumento en calidad en un yendo el retrabajo en actividades de calidad.
50%, aumento en precisión del calendario del • Mexware Consulting. Comenzó a imple- beneficio esperado de 374 mil dólares al
37%, aumento en productividad del 62% y un mentar su programa de mejora de procesos año tenemos:
ROI medio de 4.7 a 1. en 2005 y actualmente implementa proyec-
tos con procesos de Nivel CMMI3. Sus re- ROI = 374,400 / 75,000 = 4.99
Categoría de Rendimiento Número Desempeño Desempeño sultados a la fecha para 20 proyectos ejecu-
Desempeño medio de datos Inferior mayor
tados reflejan una desviación promedio de 5. Presentación de resultados
Costo 20% 21 3% 87%
esfuerzo y tiempo del 5% Comunicar a la organización el análisis realiza-
Calendario 37% 19 2% 90% • A nivel gubernamental, está el caso de la Co- do, los objetivos de negocio, las metas de me-
Productividad 62% 17 9% 255% ordinación de Tecnología para la Incorporación jora y los beneficios esperados, es importante
Calidad 50% 20 7% 132% y Recaudación del IMSS, que en octubre de para generar el compromiso y patrocinio de
Satisfacción 14% 6 -4% 55% 2006 obtuvo el Nivel 3 de capacidad de CMMI. todos los participantes que pueden apoyar a
del Cliente Dentro de los resultados actualmente reporta- que el programa de mejora tenga éxito.
Retorno de 4.7 : 1 16 2:1 27% dos, presenta proyectos con desviación pro-
Inversión
medio del 6.3%, un índice de apego a procesos Principales consideraciones
Tabla 1. Resultados publicados por el SEI. www.sei.cmu. definidos del 98.1% y un ROI de 3.5 a 1. •Se requiere acceso a información relevante
edu/cmmi/results.html. y sensible.
Algunos de los ejemplos típicos que se pre- •Calcular los beneficios no es una tarea trivial.
Estos datos pueden ser tomados “como re- sentan como metas de mejora pueden ser: •Falta de consistencia en la medición del ROI.
ferencia”, con las debidas reservas, ya que •Disminuir el retrabajo por corrección a •Las organizaciones no tienen datos de su
cada empresa es diferente, y los criterios defectos en un X% situación actual.
para captar, calcular y presentar dicha infor- •Disminuir el retrabajo por mala especifi-
mación no necesariamente podrían ser apli- cación de requerimientos en un X%
cables a su empresa. •Acotar la desviación en esfuerzo y tiempo Conclusión
a un X% El análisis del ROI es una herra-
Las empresas que han aportado datos al SEI •Aumentar la rentabilidad en un X% mienta de suma utilidad para
son empresas del tamaño de Boeing, Lookheed evaluar la conveniencia de un pro-
Martin, GM, Siemens, etcétera; y para la em- En la tabla 2 se presenta un ejemplo para grama de mejora. Se requiere con-
presa promedio en nuestro país genera inquie- estimar los beneficios en una empresa con templar los costos asociados con
tud, sobre si estos datos les son aplicables o 60 desarrolladores, tomando como base un la implementación y el manteni-
no. La mala noticia aquí, es que actualmente aumento en productividad del 10%. miento del programa de mejora. Es
no existe un registro similar para las empresas indispensable establecer objeti-
mexicanas, pues son aún pocas las que han 4. Calcular el ROI vos de negocio cuantificables que
implementado con éxito el CMMI, y menos El cálculo del ROI, se realiza dividiendo la guíen y gobiernen el programa de
todavía, las que cuentan con información his- estimación de los beneficios estimados en- mejora. Los beneficios económi-
tórica confiable. A continuación, se presentan tre los costos asociados con el programa. cos se determinan en b ase a estos
datos de empresas mexicanas con las cuales Siguiendo el ejemplo anterior, si conside- objetivos de negocio.
hemos trabajado en la empresa It Era. ramos una inversión de 75 mil dólares, un

www.softwareguru.com.mx ENE-FEB 2007 37


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

POJOs y Frameworks Ligeros:


Simplificando el Desarrollo
Por Ixcoatl Pérez

Q uienes han desarrollado aplicaciones em-


presariales usando la especificación 2 de
EJB (Enterprise Java Beans), conocen el excesivo
El resultado es un objeto de datos llamado
CapturaResultDTO con el resultado de la ope-
ración. Los métodos que acceden la base de
No fomenta la Orientación
a Objetos
Mucha gente piensa que por el hecho de escri-
tiempo que se consume en el ciclo Editar-Com- datos están encapsulados en DAOs, los cuales bir código en un lenguaje que soporte OO, ya
pilar-Debugear. Incluso, posiblemente se han pueden ser implementados con JDBC o algún están desarrollando con objetos y todo el para-
vuelto expertos en pasatiempos como Sudoku, otro mecanismo de persistencia. Este diseño digma que éste conlleva. Sin embargo, lo ante-
u otra actividad que haga más llevadera la es- aparenta estar bastante bien, pero esconde va- rior no es una estrategia basada en tecnología,
pera en este ciclo. Es cierto que algunas veces rios problemas que describo a continuación. sino en la organización del código. La cultura
la utilización de tal tecnología es la mejor deci- de la programación orientada a componentes
sión que podemos tomar, sin embargo, también Problemas frecuentes en EJBs de EJB 2, no fomenta la orientación a objetos,
existen muchos proyectos donde su uso no es él Framework pesado y complejo. EJB 2 es un ya que los session y message-driven beans son
más recomendado, e incluso hace el desarrollo framework muy completo, que resuelve reque- estructuras monolíticas y clases muy pesadas.
más lento y tedioso, afectando la productividad rimientos comunes en las aplicaciones empre- Por otro lado, los Entity Beans que son crea-
del equipo de desarrollo. sariales, tales como el manejo de transaccio- dos para representar entidades de negocio,
nes distribuidas, seguridad y persistencia. Esto tienen muchas limitaciones que los hacen difí-
Un típico diseño basado en trae varias ventajas, pero también lo convierte ciles para implementar un modelo de objetos.
Arquitectura EJB 2 en un modelo muy pesado y complejo. Como resultado, es difícil desarrollar un verda-
Veamos un ejemplo simple de tipos de cam- dero estilo Orientado a Objetos sobre la plata-
bios, donde se nos solicita el servicio de Poca productividad. La arquitectura EJB 2 na- forma J2EE. Este tipo de desarrollos es lo que
Captura de Operaciones de compra-venta de ció con el propósito de facilitar el desarrollo Martin Fowler llama “anemia domain model”,
dólares hacia otras instituciones bancarias. de aplicaciones empresariales, y ciertamente y parecido a la falta de vitalidad en la sangre
La figura 1 muestra cómo podría diseñarse nos evita la necesidad de codificar procesos anémica, los modelos de objeto anémicos úni-
este servicio con un Session EJB. estructurales de bajo nivel, pero esa ayuda camente modelan superficialmente el proble-
se paga con altísimos costos de tiempo. Ha- ma, ya que contienen clases que implementan
El acceso hacia los objetos de datos (Data Ac- cer cualquier modificación a un EJB, requiere poco, o nada de comportamientos.
cess Object - DAO) es a través de un EJB llama- además de editar y compilar, instalar cada
do CapturaService, donde cualquier validación componente EJB en el Servidor de Aplicacio- Desarrollando con POJOs y
y/o proceso de lógica de negocio es ejecutada. nes, configurar los archivos XML, levantar el Frameworks ligeros
Por ejemplo, si la institución bancaria existe, o Servidor de Aplicaciones para que se tomen Antes de la especificación EJB 3, muchos
si la cantidad que se desea cambiar está den- los cambios, y buscar soluciones a problemas desarrolladores desilusionados con EJB bus-
tro de los límites aceptables. generados por los mismos EJBs. caron alternativas, y encontraron que los
POJO son una de esas, convincente a EJBs.
Un POJO (Plain Old Java Object) es simple-
mente un objeto de Java que no implementa
ninguna interfase especial. Su nombre fue
creado por Fowler, Rebbecca Parsons y Josh
MacKenzie para darle a los objetos regulares
de Java un nombre de sonido divertido.

Los POJOs por sí solos, no son suficientes para


crear una aplicación empresarial completa,
ya que carecen de los servicios que brinda
un contenedor de EJB. Por eso, la solución es
complementarlos con el uso de Frameworks
Ligeros como Spring e Hibernate, que reem-
Figura 1. Diseño de Captura de Operaciones con EJB 2. plazan algunas de las partes pesadas de la

Ixcoatl Pérez es Consultor TI especializado en sector financiero, con experiencia desarrollando sistemas empresariales para diferentes industrias en USA y
México. Es experto en análisis y diseño orientado a objetos, desarrollo web, RUP y arquitectura J2EE. Ixcoatl cuenta con las certificaciones Sun Certified Java
Developer, Sun Certified Web Component Developer y Sun Certified Business Component Developer.

38 ENE-FEB 2007 www.softwareguru.com.mx


plataforma J2EE. Hibernate y Spring tienen características importan- Debido al alto nivel de configuracion de Spring, la fábrica de Spring-
tes, el no ser intrusivas, es una de ellas. Proveen transacciones y per- Bean puede ser configurada para regresar un proxy en lugar del
sistencia sin requerir que las clases implementen ninguna interfase en objeto original. Este proxy, también conocido como interceptor, es
especial (por ello siguen siendo POJOs). La aplicación es ensamblada un objeto que finge ser el objeto original, pero que puede ejecutar
con contenedores ligeros que implementen Dependecy Injection en código adicional antes y después de la invocación del objeto ori-
lugar de usar la búsqueda de componentes con JNDI. ginal, y por tanto sirve para muchos propósitos, como administrar
transacciones, seguridad o conexiones a la base de datos. Captura-
Estos frameworks solucionan diferentes necesidades a lo largo de un Façade puede ser envuelto en un interceptor, el cual administra las
desarrollo empresarial. Los beneficios son mayores cuando se combi- transacciones con algún administrador de transacciones propio del
nan adecuadamente con patrones de diseño y mejores prácticas de framework de persistencia que estemos usando.
desarrollo. Por ejemplo, el patrón de Modelo de Domino nos brinda
todo el beneficio del Desarrollo OO, ya que las reglas de negocios son Diseño basado en POJOs
la base de la implementación, al tiempo que los objetos de dominio Revisemos por último el diseño del servicio de Captura de Operacio-
ignoran que serán persistidos, ya que, transparentemente son mapea- nes de compra-venta de dólares, pero ahora con POJOs. Este diseño
dos hacia la Base de Datos relacional. Un framework de persistencia tiene más componentes que el basado en EJB, y puede parecer más
como Hibernate nos brinda una solución ORM (Object-Relational Ma- complejo, pero su diseño es más modular y mucho más fácil de probar
pping), y si se requiere mapear POJOs hacia sentencias SQL, iBATIS, y extender. Aun cuando son más clases, cada una tiene un pequeño
nos brinda una solución bastante conveniente para ejecutar senten- número de responsabilidades fáciles de entender y bien definidas.
cias SQL. Con un el uso de interfaces se evita acoplar un modelo de
dominio hacia un framework de persistencia específico, lo que nos da Se agregó un nuevo modulo CantidadPolicy, donde aplicamos polí-
mayor flexibilidad e incluso es posible probar el modelo de domino sin ticas de filtro que tengan que ver con la cantidad que se compra o
un esquema de Base de Datos. El desarrollo con POJOs también nos vende. Esto es más que nada, un ejemplo de lo fácil que se puede
brinda un beneficio extra, ya que el Desarrollo Orientado-a-Pruebas agregar nueva funcionalidad, es decir, un objeto con responsabilidad
(Test Driven Development - TDD) es bastante simple y compatible con simple y específica.
los POJOs, al no depender de un servidor de aplicaciones.

Tal vez la principal razón para usar Session Beans, es la capacidad


de tener transacciones administradas por el contenedor (Container-
Managed Transaction - CMT). Esto permite que el contenedor EJB
automáticamente comience una transacción cuando un método es
invocado, haciendo el commit cuando termina exitosamente, o el ro-
llback en caso de no ser así. Ahora bien, si optamos por la opción de
POJOS y frameworks ligeros, el framework de Spring nos provee una
solución equivalente a CMT para POJOs, además de tener un rango
amplio de características que lo hacen muy fácil de usar. Cuando un
método POJO es llamado, Spring automáticamente comenzará una
transacción y hará el commit o rollback correspondiente. Aquí lo in-
teresante es que Spring puede administrar las transacciones usando
el framework de persistencia, el administrador de transacciones de
JDBC, o el Java Transaction API (JTA), según sea deseado. Esto es tan
simple como definir un POJO como un Spring Bean, con unas cuan-
tas líneas de XML similar al deployment descriptor de EJB, y con eso
tenemos un POJO que es transaccional. La aplicación obtiene un Figura 2. Diseño del servicio usando POJOs.
SpringBean llamando a la fábrica de SpringBean con el nombre y tipo
esperado. Tan simple como: Usamos interfaces para simplificar el desarrollo orientado a pruebas, ya
que es posible reemplazar la implementación del repositorio Hibernate
BeanFactory factory = new XMLBeanFactory(new FileInputSteam(“capturaFacade.xml”)) ; por algún otro framework de persistencia, sin modificar el código.
CapturaFacade cF = (CapturaFacade) factory.getBean(“CapturaFacade”, CapturaFacade.class);
En resumen, los frameworks ligeros como Spring e Hibernate nos permi-
Nota: Utilizamos un Façade con la intención de desacoplar las res- ten usar POJOs, con todas sus conveniencias; y tener los mismos benefi-
ponsabilidades de un CapturaService y la capa de presentación. cios de usar EJB Session Beans, sin tener sus complicaciones.

www.softwareguru.com.mx ENE-FEB 2007 39


// PRÁCTICAS /* ARQUITECTURA */

Evaluando la Arquitectura de Software


Parte 1. Panorama General
Por Omar Gómez

U no de los factores que determina el éxito o fracaso de un siste-


ma de software, es su arquitectura. Con esto nos referimos a la
estructura o conjunto de estructuras del sistema, las cuales están
del sistema que están en operación, por ejemplo: rendimiento, con-
fiabilidad, disponibilidad, tolerancia a fallas. En cambio, los atribu-
tos de desarrollo son las cualidades del sistema que son relevantes
compuestas de elementos de software, propiedades externas visi- desde una perspectiva del desarrollo de software, por ejemplo: faci-
bles de estos elementos y las relaciones entre sí [1]. lidad de modificación, facilidad de re-utilización, flexibilidad.

El diseñar debidamente una arquitectura de software, garantiza que el Primeros inicios


sistema de software cumpla con uno o varios atributos de calidad. Por Los primeros esfuerzos en realizar evaluaciones a arquitecturas de soft-
ejemplo, que sea fácil de usar, confiable o seguro. Sin embargo, si la ar- ware utilizando un proceso estructurado y definido, fueron descritos en
quitectura no se diseña de forma apropiada, el sistema de software resul- un trabajo seminal hecho por Parnas y Weiss [5] en 1985. En él se propone
tante no logrará sus objetivos [2]. De nada sirve un sistema de software utilizar revisiones de diseño activas, que consisten en detectar errores e
que no cumple con los tiempos de respuesta requeridos por el cliente, o inconsistencias, por ejemplo aquellos que no fueron detectados en la fase
que es complejo de modificar, difícil de usar o vulnerable a ataques. de requerimientos. Este proceso consiste en elaborar una serie de cues-
tionarios cuidadosamente escritos, de tal manera que el revisor no pueda
Por lo regular, se conoce hasta el final del desarrollo del sistema de responderlos de una manera pasiva, es decir, con un “Sí” o un “No”.
software, si éste cumplió o no con los atributos de calidad que se
especificaron en los requerimientos no funcionales. Dicho conoci- Cada cuestionario se diseña para encontrar diferentes tipos de erro-
miento tardío, implica tomar demasiados riesgos innecesarios, un res, por lo que cada uno, evalúa aspectos específicos del diseño.
ejemplo es, descubrir fallas en el sistema de software debido a que Estos, a su vez, junto con la documentación del diseño, se entregan
en la fase de diseño no se eligió apropiadamente una arquitectura. para su evaluación a un grupo de revisores expertos en uno o varios
Para reducir tales riesgos y, como una buena práctica de ingeniería, aspectos específicos del diseño. En promedio, la duración de dichas
es recomendable llevar acabo evaluaciones a la arquitectura. revisiones se lleva de uno a dos días, dependiendo de la complejidad
del diseño, así como del número de revisores.
La finalidad de este artículo es dar a conocer un panorama general so-
bre evaluaciones a arquitecturas de software. En él, presento el propó- ¿Cuándo es recomendable evaluar?
sito de evaluar, conceptos sobre atributos de calidad, primeros intentos La evaluación a la arquitectura puede efectuarse en varios momentos,
de evaluación, momentos en los que se pueden realizar evaluaciones, dependiendo de la etapa de construcción en que se encuentre. La evalua-
clasificación de las técnicas de evaluación, planeación de evaluaciones, ción clásica se efectúa una vez que la arquitectura se ha terminado y aún
y beneficios que se obtienen al evaluar una arquitectura. no se implementa. La evaluación temprana se lleva acabo una, o varias
veces durante la etapa de construcción de la arquitectura, mientras que
Porqué es necesario evaluar una arquitectura la evaluación tardía, se realiza cuando la arquitectura existe y la implanta-
de software ción se ha completado. Clements, Kazman y Klein [6] proponen dos reglas
El propósito de realizar evaluaciones a la arquitectura, es para anali- de oro para determinar el momento de efectuar la evaluación:
zar e identificar riesgos potenciales en su estructura y sus propieda- 1. Realizar una evaluación cuando el equipo de desarrollo inicia a
des, que puedan afectar al sistema de software resultante, verificar tomar decisiones que afectan directamente a la arquitectura; y...
que los requerimientos no funcionales estén presentes en la arqui- 2. Cuando el costo de no tomar estas decisiones podría pesar más,
tectura, así como determinar en qué grado se satisfacen los atribu- que el costo de realizar una evaluación.
tos de calidad. Cabe señalar que los requerimientos no funcionales,
también son conocidos como atributos de calidad. De acuerdo al es- Técnicas de evaluación
tándar IEEE 610.12-1990 [3], un atributo de calidad es una caracterís- Existen varias técnicas para evaluar arquitecturas de software, que
tica que afecta la calidad de un elemento. En esta definición, el tér- se clasifican en cualitativas y cuantitativas. Dentro de las técnicas de
mino “característica” se refiere a aspectos no funcionales, mientras evaluación cualitativas se pueden utilizar: escenarios, cuestionarios
que el término “elemento” se refiere a un componente o sistema. o listas de verificación. Por otro lado, en las técnicas de evaluación
cuantitativas se pueden emplear: métricas, simulaciones, prototi-
Los atributos de calidad se clasifican en dos grupos [4]: operaciona- pos, experimentos o modelos matemáticos; en la figura 1 se mues-
les y de desarrollo. Los atributos operacionales son las cualidades tran de manera gráfica estas técnicas.

Omar Salvador Gómez Gómez obtuvo el grado de Maestro en Ingeniería de Software en el Centro de Investigación en Matemáticas. Actualmente es
profesor de la Universidad de Guadalajara, es miembro de la Association for Computing Machinery ACM y del IEEE Computer Society. Puedes contactarlo
en [email protected]

40 ENE-FEB 2007 www.softwareguru.com.mx


Realizar una evaluación no
planeada, representa retrasos
en los tiempos de entrega, así
como un incremento en los
costos del proyecto.
La mayoría de los métodos de evaluación utilizan escenarios, que son por los resultados obtenidos de la evaluación, ya que puede deci-
secuencias específicas de pasos que involucran el uso o la modificación dir continuar o no con el proyecto, dependiendo de los resultados.
del sistema. Por lo regular, las técnicas de evaluación cualitativas son Un ejemplo de este caso es el siguiente, tras haber efectuado una
usadas cuando la arquitectura se encuentra en construcción, mientras evaluación temprana, se determinó que no es posible implantar la
que las técnicas de evaluación cuantitativas, se usan cuando la arqui- arquitectura con la infraestructura disponible, ya que esta no cum-
tectura ya ha sido implantada. Por ejemplo, es posible hacer uso de mo- plirá con los tiempos de respuesta requeridos por el cliente.
delos matemáticos tales como teoría de colas, para medir el desempeño
de un conjunto de componentes EJB en una aplicación J2EE [7]. Resultado de la evaluación
Una vez que se ha efectuado la evaluación, se debe elaborar un repor-
te. Que debe presentarse como un documento preliminar, con la fina-
lidad de que se corrija por las personas que participaron en la evalua-
ción. El contenido del reporte responde a dos tipos de preguntas [6]:
•¿Se ha diseñado la arquitectura mas apropiada para el sistema?
•¿Cuál de las arquitecturas propuestas es la más apropiada para el
sistema a construir?

Además de responder estas preguntas, el reporte también indica el


grado en que se cumplieron los atributos de calidad.

Conclusiones
En esta primera parte presentamos un panorama general sobre las
evaluaciones a las arquitecturas de software. Entre los puntos más
importantes destacaron: el propósito de evaluar, los momentos y
los tipos de técnicas de evaluación, así como los resultados que se
obtienen de ésta. En la próxima ocasión, expondremos de manera
detallada, algunos de los métodos de evaluación a arquitecturas de
software más usados en la actualidad.

Figura 1. Clasificación de las técnicas de evaluación.


Referencias
Planear o no la evaluación 1. Len Bass, Paul Clements & Rick Kazman. “Software Architecture in
Las evaluaciones pueden ser planeadas o no planeadas. Una eva- Practice”. SEI Series In Software Engineering. Segunda edición. Addison
luación planeada es aquella que ha sido contemplada dentro del Wesley, 2003.
ciclo de vida de desarrollo, por lo que es parte de las activida- 2. Anthony Finkelstein & John Dowell. “A Comedy of Errors: The Lon-
des del proyecto. Son varios los beneficios que se obtienen de don Ambulance Service Case Study”. Proceedings of 8th International
realizar evaluaciones, algunos de estos son descubrir defectos e Workshop on Software Specification and Design (IWSSD-8), Schloss
inconsistencias en la fase de diseño, asegurar que se cumplan Velen; Alemania, Marzo 1996.
los atributos de calidad, así como reducir los costos del proyecto. 3. “Standard Glossary of Software Engineering Terminology.”, Institute of
Comúnmente una evaluación no planeada, se presenta cuando la Electrical and Electronics Engineers (IEEE), 1990.
arquitectura de software contiene varios defectos que han sido 4. Jan Bosch & Peter Molin. “Software Architecture Design: Evaluation
detectados en etapas tardías del desarrollo, por ende, realizar and Transformation”. Proceedings of IEEE Engineering of Computer
una evaluación no planeada, representa retrasos en los tiempos Based Systems Symposium (ECBS ‘99) 1999.
de entrega, así como un incremento en los costos del proyecto. 5. David L. Parnas & David M. Weiss. “Active Design Reviews: Principles
Es recomendable que en el proyecto se contemple realizar una o and Practices”. Proceedings of 18th International Conference on Software
varias evaluaciones a la arquitectura. Engineering 1985.
6. Paul Clements, Rick Kazman & Mark Klein. “Evaluating Software Archi-
¿Quiénes participan en la evaluación? tectures”. SEI Series in Software Engineering. Addison Wesley, 2002.
Generalmente las evaluaciones a la arquitectura se hacen por los 7. Yan Liu & Ian Gorton. “Performance Prediction of J2EE Applications
miembros del equipo de desarrollo, tales como el arquitecto, di- Using Messaging Protocols.” International SIGSOFT Symposium on
señador y administrador del proyecto. Sin embargo, puede haber Component-based Software Engineering (CBSE). Mayo 2005.
excepciones en las que se contrate a un grupo de personas espe-
cialistas para realizar la evaluación. El cliente también se interesa

www.softwareguru.com.mx ENE-FEB 2007 41


// UML

Brindándole un Hogar al Software:


DIAGRAMAS DE DISTRIBUCIÓN
Por Charlie Macías y Sergio Orozco

Imagina tu casa con un televisor de plas- tu casa tiene espacio dónde colocarlos. Si eres cha gente conoce tradicionalmente como la
ma de 50 pulgadas, un refrigerador que te suficientemente precavido evaluarás si la ins- arquitectura física. En este puedes visuali-
envía mensajes cuando la leche o el huevo talación eléctrica o hidráulica es la apropiada zar las computadoras (clientes, servidores,
están por terminarse; una estufa con parrilla para que funcionen correctamente. Si eres un PDAs), elementos adicionales de hardware
electrónica que se apaga sola; una sala de diseñador de interiores o un arquitecto, bos- (impresoras, ruteadores) y las conexiones
piel que da masajes y autoregula su tempe- quejarás algún plano para asegurarte de estar (la red). Incluso puedes indicar qué sistema
ratura; dos líneas telefónicas con teléfonos tomando la decisión correcta. operativo corre en una computadora o en
inalámbricos de 5.8 Ghz de largo alcance y cuál de las computadoras pondrás a correr
una cama king size automática con masajes; Así mismo ocurre en el caso del software, ciertos componentes de tu aplicación.
todo esto para que lo disfrutes tú, tus padres antes de desarrollar un conjunto de compo-
y tus cinco hermanitos. De fantasía, ¿cierto? nentes que formarán una aplicación, pensa- Los componentes de software realizan la
Contenido en una maravillosa casa duplex rás si el equipo e infraestructura con la que dinámica de un sistema; representan agre-
de interés social de 70 metros cuadrados. cuentas es apropiada para dicho sistema. An- gaciones de clases. Son los moldes de fa-
¡Espera! ¿Maravillosa casa duplex para todo tes de desarrollar el software, e incluso antes bricación que construyen a los objetos que
esto? Hablemos de incongruencias. No pa- de comprometerte con tu cliente a desarro- colaboran en tiempo de ejecución para llevar
rece ser el lugar más apropiado para tener llarlo, tendrás que asegurarte de identificar acabo lo que especifican los requerimientos.
esas comodidades, ¿cierto? si se cuenta con el equipo apropiado o con el Estos componentes tienen que ser colocados
presupuesto para adquirirlo y así poder hacer en el hardware para que los podamos usar.
Soñar no cuesta, no planear sí funcionar correctamente la aplicación. Entender la manera, lugares y necesidades
Antes de decidir comprar los anteriores com- que los alojarán es un factor importante en
ponentes, tienes que asegurarte que van a Proponer o Restringir la definición del dominio de la solución.
caber o, funcionar en tu casa. Y si no caben, y Al inicio del proyecto, en lo que podemos lla-
tienes el presupuesto, tendrás que mudarte mar fase de Inicio o Concepción (“Inception”)
a otra casa más apropiada. en el caso del Proceso Unificado, tendrás que Elementos del Diagrama
desarrollar un primer diagrama de distribu- de Distribución
Bueno, pues eso mismo sucede con el desa- ción para identificar las restricciones físicas
rrollo de software. Antes de decidir desarro- de hardware en el proyecto (el equipo e ins- Nodo. Representa un recurso de cóm-
llar una aplicación con ciertos requerimien- talaciones con las que cuenta el cliente para puto que puede alojar artefactos y que
tos, tienes que asegurarte que cuentas con el proyecto), o en su defecto, documentar el se puede interconectar con otros nodos
la infraestructura apropiada para ponerlos a hardware propuesto, en el cual se tendrá que para describir topologías de redes.
funcionar sin problema. Si no cuentas con invertir para hacer funcionar el software.
ella, tendrás que decidir cuál será el equipo Dispositivo. Representa un recurso fí-
y ambiente adecuados (computadoras, ser- En la fase posterior, la de Elaboración, este sico de cómputo que posee capacidad
vidores, sistemas operativos, etcétera) para diagrama tendrá que ser refinado para dejar de procesamiento; se representa igual
instalar y hacer funcionar tu aplicación. Por especificadas las decisiones tomadas con que un nodo.
supuesto, restringiéndote al presupuesto respecto a esta perspectiva del sistema.
disponible para tal fin. Entorno. Ejecutable. Representa un
El diagrama de distribución es el artefac- recurso lógico de cómputo dentro
Antes de llenar tu casa con todo tipo de mue- to de UML que nos permite representar los del cual se alojan manifestaciones de
bles y componentes, de seguro visualizarás si elementos físicos de un sistema; lo que mu- componentes de cierto tipo.

Charlie Macías es arquitecto de software y consultor senior en UML de Milestone Consulting. Sergio Orozco es director general, consultor e instructor senior
de Milestone Consulting (UML Value Added Training Center), empresa especializada en capacitación práctica y consultoría en UML, CMMI y orientación a
objetos. Milestone Consulting es la primer empresa mexicana miembro de la OMG

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

42 ENE-FEB 2007 www.softwareguru.com.mx


“Por más extraño que parezca, ni las
clases ni los componentes se ejecutan
en el hardware, ya que estos tipos de
elementos carecen de manifestación en
el mundo físico”.

Un artefacto es una pieza de información física


Rutas de Comunicación. Asociación que usa o produce un proceso de desarrollo de
que se modela sólo entre objetivos software, una distribución o el funcionamiento
de distribución (nodos, dispositivos de un sistema. Ejemplos de artefactos, son los
o entornos ejecutables) indicando archivos que distribuimos en el hardware, como
que estos pueden intercambiar men- los archivos JAR, WAR, EAR, EXE y DLL. En la
sajes y señales. siguiente figura podemos observar la relación
que existe entre el concepto tradicional de com-
Componente. Representa unidades ponente y el artefacto donde se manifiesta.
autocontenidas de software que
realizan a las clases, o a cualquier
elemento empacable

Artefacto. Representa la manifes-


tación de un componente en el
mundo físico. Figura 2. Relación entre el artefacto y el componente
manifestado.

Ambientando la Casa
Los componentes necesitan de un ambiente
donde se ejecutarán. Si deseas dejar gráfi-
camente documentada esta información. El
ambiente de ejecución se puede representar
de manera similar a los nodos, es decir, en
forma de cubo. Sólo que dicho ambiente se
aloja dentro de un dispositivo, como se pue-
de ver en la ilustración.

Figura 1. Dos recursos de cómputo con capacidad


de procesamiento conectados y alojando artefactos.

Un artefacto no es una Ilusión


Un concepto que para muchos resulta difícil de
entender, es el artefacto. Especialmente por su
relación con el concepto de componente. El ni-
vel de abstracción es diferente en ambos casos,
aunque podemos referirnos en cierta situación, Figura 3. Artefacto que se ejecuta en un ambiente de
a elementos muy similares. ejecución dentro de un dispositivo.

Por más extraño que parezca, ni las clases ni Así que antes de decidir llenarte de comodi-
los componentes se ejecutan en el hardware, dades, asegúrate de contar con el espacio y
ya que estos tipos de elementos carecen de las características necesarias en tu casa. An-
manifestación en el mundo físico. Para lograr tes de invertir en la compra o desarrollo de
la manifestación de las clases y componentes un software, asegúrate que tendrá un hogar
necesitamos un artefacto. apropiado donde hospedarse.

www.softwareguru.com.mx ENE-FEB 2007 43


// COLUMNA /*TENDECIAS EN SW*/

Office Business Applications (OBA) y


Line of Business Integration (LOBi)
El Próximo Patrón Estratégico

Luis Daniel Soto es director de Evangelización en nuevas tecnologías en Microsoft México. Entre sus funciones actuales están la de adminis-
tración de la relación con el Gobierno Mexicano para el desarrollo de la industria de software (ProSoft). Es jurado del “Gran Orden del Honor
al Mérito Autoral” en software del INDAUTOR/SEP y fundador de diversas asociaciones de TI. Ganó el primer lugar en el concurso nacional
para software de exportación en 1989. blogs.msdn.com/luisdans

E n la columna anterior hablé sobre Software as a Service (SaaS), el


cual puede ser denominado como un patrón estratégico, tal vez el
de mayor proyección e importancia hacia el resto de ésta década. Otros
Office System 2007 como plataforma de desarrollo
Office 2007 será el gran habilitador de este tipo de aplicaciones. Los
objetivos principales de esta versión son:
patrones estratégicos que existen actualmente en el mercado son: 1. Mayor productividad en lo que cada herramienta ofrece.
•Win32 – la mayoría de aplicaciones actuales para Microsoft Windows. 2. Transformarse en un cliente de tres áreas poco desarrolladas en las
•Dispositivos – teléfonos, portátiles, conectados a tv, embebido. empresas: a) Comunicaciones unificadas y colaboración; b) Adminis-
•Empresarial – cliente-servidor, 3 capas. tración de contenido empresarial; c) Inteligencia de negocios.
•Videojuegos – escritorio, consola, portátil, teléfonos. 3. Convertirse finalmente en una plataforma de desarrollo auténtica.

En esta ocasión, me referiré al que consideramos en Microsoft, el se- En particular, es interesante la plataforma del servidor, que incluye
gundo patrón estratégico en importancia para el futuro: Office Oriented una gran cantidad de nuevas tecnologías, entre las que destacan:
Applications. Las Office Business Applications (OBA) son una nueva •Colaboración: Blog y Wiki, RSS, Web Services API.
categoría de aplicaciones de negocio, que permite utilizar aplicacio- •Administración de contenido: Extensible Type System, Records
nes de negocio (line of business systems) desde Microsoft Office. Repository API, Web Management API, Information Rights API,
Document Converter.
Imagina que tienes una capa de datos (backend), y una capa de ló- •Inteligencia de negocios: Excel Services Web API, Excel Services
gica e integración con procesos de negocio (que residen en “line- Calculation Engine, Filter Web Parts, Data Connection Library.
of-business applications”, tales como ERPs, CRMs y SCMs), pero te •Procesos de negocio y formas: Pluggable SSO, Infopath Services.
falta tu capa de presentación. En lugar de desarrollar una aplicación •Búsqueda empresarial: Web Services Search API, Business Data
web, un cliente windows, o utilizar el front-end de un CRM específico, Catalog, iFilters.
puedes utilizar aplicaciones de Microsoft Office como tu capa de pre- •Portal: Web Parts Framework, User Profile API, Audience Targeting API.
sentación y dejar que los usuarios interactúen con los procesos de
negocio, a través de programas como Outlook que ya conocen bien, Es importante señalar que estos servicios descansan en los nuevos
y que de todos modos, tienen abiertos durante todo el día. “Windows SharePoint Services 3.0” (WSS 3.0) que se ofrecen gratuita-
mente para usuarios de Windows Server 2003 y Small Business Server.
El siguiente diagrama ilustra a grandes rasgos la arquitectura de este La infraestructura que ofrece WSS 3.0 incluye: flujos de trabajo, meta
nuevo tipo de aplicaciones. datos, búsqueda, auditoría, ayuda personalizada y otros servicios.

Conclusión
OBA permitirá “abrir el retorno de inversión de toda la tecnología em-
presarial”. Consiste en aprovechar la plataforma existente al máximo.
Algunos ejemplos: Panorama (BI en Sharepoint), Oracle Siebel (CRM
desde Outlook), Hummingbird (Administración de documentos desde
Word), Fractal Edge (Visualización desde Excel) y Mind Manager (Ma-
pas mentales con Open XML), son algunos ejemplos concretos.

Microsoft trabaja ya en “Office 14”, y la principal inversión a futuro


será precisamente la categoría denominada LOBi (Line of Business in-
tegration). Evalúenlo con sus usuarios, y decidan ustedes mismos.

—Luis Daniel Soto

Referencias
•Arquitectura OBA: msdn.microsoft.com/architecture/office
•Desarrollo OBA: msdn.microsoft.com/office
Figura 1. Arquitectura de aplicaciones orientadas a Office. •WSS 3.0: www.microsoft.com/technet/windowsserver/sharepoint

44 ENE-FEB 2007 www.softwareguru.com.mx


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

Realidad Virtual
Estimulando la Imaginación

El Dr. Mario Arturo Gutiérrez Alonso es profesor asistente del Departamento de Computación y Sistemas de Información de la Escuela
de Ingeniería y Arquitectura del ITESM Campus Toluca. Sus áreas de interés son la Realidad Virtual, Animación 3D y la Inteligencia Artificial
aplicadas al desarrollo de interfaces multimodales y simulación.

E l término Realidad Virtual engloba


una gran cantidad de ideas filosófi-
cas, aplicaciones y áreas de investigación,
tivas que la misma realidad. Lo cierto es,
que estamos aún lejos de tener simulado-
res que confundan la mente del usuario a
rodeado de imágenes sintéticas proyec-
tadas en estéreo –simulando profundi-
dad– con la ayuda de lentes polarizados
todas ellas con un tema en común: “crear tal grado, que ya no sea posible distinguir especiales. La calidad de las imágenes
la sensación de estar ahí”, en un lugar lo real de lo sintético. sintéticas, ha mejorado mucho con los
que no existe o que en un momento dado desarrollos del hardware especializado
es imposible alcanzar. No está muy claro Simular realidades alternativas y entornos para la síntesis de gráficas en 3D. Hoy en
quién fue el primero en acuñar el térmi- virtuales, implica una gran cantidad de día una PC con tarjeta de gráficos profe-
no; se mencionan autores como Damien áreas de conocimiento. La idea principal sional, tiene poder de cómputo suficiente
Broderick, escritor australiano autor de es que el camino hacia una simulación de para visualizar escenas animadas com-
“The Judas Mandala” (1982), y Jaron La- la realidad, pasa por la estimulación simul- plejas de gran realismo. Para tener una
nier, investigador norteamericano funda- tánea y coherente de todos nuestros sen- idea más clara, una aplicación 3D actual,
dor de VPL Research, una compañía que tidos: vista, oído, olfato, tacto y gusto. La es capaz de animar una escena urbana
desarrollaba productos y aplicaciones de mayor parte de la investigación y el desa- (parques y edificios), con alrededor de 35
Realidad Virtual. rrollo se han enfocado en la vista y el oído. mil personajes con comportamiento inte-
El primer prototipo de visualización de in- ractivo e independiente de alta calidad
Uno de los primeros ejemplos de sistemas mersión total, que utilizó tecnología digital visual, a más de 30 cuadros por segundo
de Realidad Virtual es el “Sensorama”, de fue el Head Mounted Display (HMD), desa- (calidad de cine) para más información:
Morton Heilig, desarrollado en 1962; un rrollado por Ivan Sutherland y Bob Sproull http://vrlab.epfl.ch (VRlab-EPFL Suiza).
dispositivo mecánico que proyectaba una del XEROX PARC en 1962. En cuanto al audio, las tecnologías actua-
película de cine cuya reproducción era re- les permiten la reproducción de sonido
lativamente interactiva, e incluía la estimu- El HMD de Sutherland y Sproull, fue uno envolvente de alta calidad, y podemos
lación de múltiples sentidos: visión, soni- de los primeros intentos por presentar al decir que en buena medida, este reto ha
do, olfato y tacto. El sistema simulaba un usuario una interfase en la que la inte- sido superado.
paseo en bicicleta donde además de audio racción imitara la forma en que nos des-
y video, se liberaban diferentes aromas, envolvemos en la vida real: las imágenes El resto de los sentidos presentan pro-
dependiendo del lugar a visualizar en ese presentadas en una pantalla situada fren- blemas mucho más complejos de atacar,
momento. Se trataba de una verdadera in- te a los ojos, se actualizan dependiendo siendo el olfato y el gusto los menos es-
terfase multimodal o sistema multimedia, de los movimientos de la cabeza, como si tudiados. Sin embargo, existen trabajos
desarrollada antes que las computadoras el usuario estuviera “dentro” del entorno de investigación relevantes que tratan
digitales tuvieran posibilidades concretas artificial. La tecnología del HMD ha evolu- de resolver el problema de la producción
de simular entornos virtuales. cionado mucho en cuanto a la calidad de y liberación controlada de diversos tipos
las imágenes, pero nunca ha tenido mucha de aromas. Así mismo, hay prototipos
Cuando se habla de Realidad Virtual, tal aceptación, debido a que el dispositivo es como el “food simulator” que trata de imi-
vez las imágenes que vienen a la mente muy incómodo (ver cybersickness). tar el masticar y saborear alimentos –un
son las inspiradas por películas como “The tipo particular de interfase háptica– (ver
Lawnmower Man” o más recientemente Recientemente, los sistemas de visualiza- los trabajos de H. Iwata, Universidad de
“The Matrix”. Estas y otras producciones ción han adoptado el uso de proyectores, Tsukuba, Japón).
cinematográficas, presentan un estado de y entre los dispositivos más sofisticados,
la tecnología que aún no se ha alcanza- se encuentran los CAVE (Cave Automatic Considerando el trabajo de investigación y
do, y estimulan la imaginación al mostrar Virtual Environment), seis o más panta- los productos ya existentes en el mercado,
la posibilidad de crear simulaciones que llas de proyección que forman un área en el tacto es el tercer sentido humano más
sean indistinguibles o mucho más atrac- la que, el usuario puede colocarse y verse estudiado. Las interfaces hápticas (haptic

46 ENE-FEB 2007 www.softwareguru.com.mx


Las interfaces hápticas son dispositivos
electromecánicos –robots–,
que permiten simular la sensación de
tocar objetos con las manos y otras
partes del cuerpo.

interfaces) son dispositivos electromecá- tes principales: interacción, inmersión y


nicos –robots–, que permiten simular la tiempo real. Una de las áreas de investi-
sensación de tocar objetos con las manos y gación más vanguardistas, en cuanto al
otras partes del cuerpo, como el torso. Las componente interactivo se refiere, son
interfases hápticas más comunes son los las llamadas “brain interfaces”, trabajos
sistemas tipo PHANTOM. Estos dispositi- pioneros encaminados a utilizar las seña-
vos son brazos mecánicos con una especie les eléctricas producidas por el cerebro
de pluma o estilete, la cual, al ser manipu- y capturadas mediante electrodos, como
lada por el usuario, permite simular la re- medio de comunicación del usuario con
sistencia de diferentes materiales; como si la computadora. Los avances actuales
tocáramos con una pluma, superficies con permiten un control con cierta precisión
distinta textura y resistencia: metales, ro- del cursor de un mouse y la ejecución de
cas, esponjas, etcétera. Otros dispositivos acciones simples como abrir o cerrar una
hápticos comerciales, son los producidos aplicación. Quizás el fin último será llegar
por la compañía Immersion Co. tales como a un sistema como el de “The Matrix”, en
la “Haptic Workstation”: un exoesqueleto el que la simulación interactiva se reali-
que produce retroalimentación de fuerza ce estimulando directamente el cerebro,
en las muñecas y los dedos de ambas ma- pero afortunada o desafortunadamente,
nos. Al combinar estas interfases con un aún estamos muy lejos de ello.
sistema de sonido envolvente y un HMD, o
un sistema CAVE, se pueden obtener entor- La experiencia demuestra que, no se re-
nos virtuales interactivos, muy útiles para quiere de dispositivos muy complejos para
realizar estudios de ergonomía en cabinas lograr una inmersión total del usuario,
de todo tipo de vehículos; simulaciones de y hacerle olvidar el mundo que lo rodea
intervenciones quirúrgicas; terapias de in- en favor de una realidad alternativa. Una
mersión total para el tratamiento de fobias pantalla de computadora o televisión con
(fobia social, aracnofobia, claustrofobia) y imágenes y sonido bien diseñados, son ca-
juegos de video, entre otros. paces de mantener la atención del usuario
y aislarlo del mundo exterior por horas y
Son muchos los retos de investigación hasta días, como todo buen aficionado a
a superar, antes de tener un sistema de los videojuegos podrá constatar.
Realidad Virtual en verdad convincente y
accesible al público. En su mayoría, los En todo caso, a los interesados en in-
prototipos actuales son desarrollados por cursionar en el fascinante mundo de la
universidades y empresas que le apuestan Realidad Virtual, les recomiendo docu-
a las tecnologías emergentes. Sin embargo, mentarse en temas de gráficas por compu-
poco a poco los frutos de la investigación tadora, aprender a programar aplicaciones
se van filtrando en aplicaciones comercia- en OpenGL y/o Direct3D (DirectX) y revisar
les, y hoy en día tenemos efectos visuales la abundante literatura científica sobre in-
de gran realismo en el cine y en juegos de teracción humano-computadora, entornos
video. Estos últimos son lo más cercano virtuales y Realidad Virtual en general.
al triángulo ideal de la Realidad Virtual,
pues son la integración de tres componen- —Por Mario Gutiérrez

www.softwareguru.com.mx ENE-FEB 2007 45


// COLUMNA /*TIERRA LIBRE*/

SimpleJ
Regresando la Diversión al Desarrollo de Software

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

M éxico no escapa a la crisis mundial de déficit de profesionistas con


capacidades reales de programación. El desarrollo de software
atrae cada vez a menos jóvenes, y muchos de estos cambian de carrera
No se necesita ser un experto para comenzar con SimpleJ. En el sitio
de SimpleJ (www.simplej.com) está disponible un tutorial enfoca-
do a quienes no saben absolutamente nada de programación, y los
antes de graduarse. No es extraño encontrar en las universidades, gene- guía durante los primero pasos de la programación. Se comienza
raciones de carreras orientadas al desarrollo de software, con menos de con cosas sencillas, y va aumentando la complejidad poco a poco,
10 alumnos. Mucho se ha hablado de las causas de esta crisis, algunos como si el programador fuera “pasando de nivel”, de tal forma que
culpan a la falta de profesionalismo y experiencia real de los maestros, hacer un juego, se convierte en sí mismo, en un juego.
otros, al mal ejemplo que damos los que somos parte de esta industria:
nuestras jornadas de trabajo, niveles de estrés y costumbres geeks no Una parte muy importante de la escena de programación de hace
son muy atractivas para jóvenes de 18 años que sólo se quieren divertir. 20 años, eran los grupos de usuarios donde los adolescentes nos
presumíamos unos a otros lo que habíamos aprendido: scrolls de
Hace un par de años, Gerardo Horvilleur, mejor conocido como “El letras, música sintetizada, campos de estrellas que giraban, justo
Mago”, se preguntaba si parte del problema no sería la creciente como en la “Guerra de las Galaxias”. Este componente es esencial
complejidad de los entornos de desarrollo de software. en el desarrollo de buenos programadores, ya que normalmen-
te vienen en múltiplos, y aprenden juntos, ya sea colaborando o
Si tienes más de 35 años, aceptarás que la forma de empezar a pro- compitiendo. SimpleJ promueve esto, a través de un applet que
gramar actual –no importa si profesas la religión de .Net, Java o al- permite publicar los juegos desarrollados dentro de una página
gún culto menor– no se compara en nada con las “micros”, gloriosas web para presumirlos al mundo. Así que, espero pronto encontrar
máquinas como las Commodore, Apple o Tandys que llenaron nuestra muchos blogs de chavos mostrándole al mundo sus creaciones.
adolescencia de disfrutes computacionales. Recordarás el ansia de Adicionalmente, SimpleJ cuenta con una comunidad donde por
esperar el siguiente Compute Gazzete o Ahoy! en el Sanborns, para medio de foros, se pueden hacer preguntas, o ponerse de acuer-
copiar los programas de BASIC, sazonados con alguna otra rutina de do con alguien más para hacer un videojuego. Mago personal-
ensamblador de 6510 en glorioso código hexadecimal. Este tipo de mente contesta todas las dudas que puede, pero la comunidad es
cosas te iniciaron en la programación y gracias a ellas decidiste que principalmente soportada por alumnos de todo tipo de institucio-
querías hacerlo por el resto de tus días. nes académicas, desde universitarios del ITAM, hasta estudian-
tes del bachiller Juan de Dios Bátiz del IPN. Estas son escuelas
Los chavos de hoy, no tienen estas maravillosas opciones. No conoz- visionarias, que han entendido el potencial de dicha herramienta
co mucho el caso de .Net, pero en el de Java al menos, creo que bajar en el proceso educativo. Espero que pronto se unan muchas más
Glassfish, Netbeans, y demás cosas “básicas” para programar, no instituciones académicas a este esfuerzo.
llama tanto la atención de un adolescente como jugar el videojuego
de moda y convertirse en consumidores, más que en creadores. Con Finalmente, una de las partes más importantes de este desa-
las micros, si querías un juego, casi tenías que hacerlo. Ahí es donde rrollo –además de que es 100% mexicano–, es su modelo de
Mago cree que está el problema: “los jóvenes ya no eligen estudiar negocios. SimpleJ es software libre, licenciado con GPL y com-
programación, simplemente porque no es tan divertido y sencillo pletamente abierto. Mago ha decidido concentrar sus esfuerzos
como lo era en esos tiempos”. para hacer sustentable este proyecto a través de la venta de un
libro que tiene disponible para aprender a programar juegos de
Afortunadamente, Gerardo no se quedó con las manos cruzadas, y de- video con SimpleJ.
sarrolló Simple J, una novedosa apuesta a despertar la curiosidad de
los chavos, creado con la intención muy noble de regresar la progra- Si tienen algún hijo o familiar adolescente y con intereses tecnológi-
mación a su origen esencial: diversión. SimpleJ recrea un entorno de cos, no dejen pasar la oportunidad de pasar un buen rato con ellos
desarrollo virtual en Java, que permite crear juegos de video y compar- recordando viejos tiempos, y ayudando a que la industria de software
tirlos con el mundo. Simple J simula una computadora simplificada, en México tenga los mejores programadores. Una felicitación desde
para que sea más sencillo aprender a programar y evitar distracciones aquí, al talento y entusiasmo de Gerardo ([email protected]), sin
en detalles irrelevantes. La decisión de enfocarse en videojuegos me duda, un ejemplo a seguir en el software libre mexicano.
parece genial, es algo que los chavos conocen bien y les llama la aten-
ción. Sin darse cuenta, estarán aprendiendo a programar. — Emilio Osorio

48 ENE-FEB 2007 www.softwareguru.com.mx


// FUNDAMENTOS

Enseñar a Programar es Mucho Más


Que Sólo Enseñar un Lenguaje de Programación
Por Consuelo Jiménez

Cuando estamos inmiscuidos en Para que un estudiante pueda llegar a rencia algo que los estudiantes ya hayan ex-
el área de la enseñanza, muchas construir programas sin importar el len- perimentado previamente. Por ejemplo, cuál
veces repetimos patrones, y ter- guaje de programación, es muy importan- es el proceso que tiene una tienda de auto-
minamos enseñando de la mis- te el desarrollo de la lógica. El objetivo no servicio cuando la cajera pasa el producto
ma forma en que nos dictaban es enseñarle instrucciones como, “impri- por un lector de código de barras, o qué su-
clase nuestros maestros. Usted, mir”, “leer”, etcétera. –Cualquiera puede cede cuando ellos entran a un sitio en Inter-
que ya ha aprendido a progra- aprenderse líneas de texto y su significa- net para comprar un libro, o bien, qué pasa
do–, sino que debemos enfocarnos en en- en un restaurante de comida rápida cuando
mar, ¿recuerda sus inicios? señarles cuándo y cómo usarlas, cuándo y solicitan algún tipo de alimento. A través de
cómo combinarlas, incluso mejorar la solu- estos ejemplos, entenderán el significado y
Remontémonos a aquella clase de Pascal, ción usando otras instrucciones. El alumno la aplicación de aquello que se está expli-
Cobol, Fortran, Basic o C. Como podrá re- necesita entender a detalle el significado cando y así, despertaremos el interés por
cordar, lo que se hacía era básicamente de cada tema y complementar esto con su resolver cierto tipo de problemas.
analizar a detalle los resultados, o bien, práctica y aplicación, al mismo tiempo que
proporcionar los datos necesarios para ge- utiliza un lenguaje de programación. No será lo mismo si el primer bloque de
nerarlos. Posteriormente, se realizaba el problemas a resolver que enfrenta alguien
diagrama de flujo, lo cual implicaba diseñar Muchas veces, para los alumnos resulta que está aprendiendo a programar, son
la solución, y antes de pasar a construir- difícil entender significados como, ciclos, series de Ulam, Fibonnaci, funciones expo-
lo, se verificaba a través de una prueba, condicionales, métodos, archivos, arreglos, nenciales, logarítmicas, números primos,
que eso realmente estaba correcto. Todos y más aún si esto se combina con la teoría o generar las raíces de una ecuación cua-
aprendimos, pero, ¿será esta la manera de objetos y cómo pueden ser aplicados. drática. Como educadores, debemos des-
más efectiva de enseñar? Tomemos unos Así pues, surge en el estudiante la típica pertar el interés de nuestros estudiantes;
minutos de nuestro tiempo para considerar pregunta: “¿y para qué me sirve esto que de nosotros depende captar y conservar la
ciertos aspectos de la enseñanza. me están explicando?” atención para lograr un nivel de aprendiza-
je satisfactorio. Muchas veces esto se lo-
Para poder analizar un problema, encontrar No hay que olvidar que, cuando el lenguaje gra cuando nos enfocamos al desarrollo de
rápidamente una solución y construirla, se de programación es sencillo, esas instruc- juegos, donde ellos tengan la capacidad
requiere del desarrollo de ciertas habilida- ciones que se aprenden rápidamente se de cumplir con las especificaciones que se
des. Esto se da a través de un adecuado pueden memorizar; pero quizás esto sólo les indicó, y que además, puedan aplicar
proceso de enseñanza-aprendizaje. Sin em- serviría cuando la persona ya tiene un ca- su maravillosa creatividad, que puedo ase-
bargo, los cimientos deben definirse desde mino recorrido en cuanto a la lógica de pro- gurar que nos dejará asombrados.
un primer contacto con algún curso de pro- gramación, de otra forma no lograremos un
gramación. Por lo general, hay un trabajo aprendizaje significativo. Como instructores, siempre hay que con-
previo con problemas razonados donde siderar el tipo de público que en ese mo-
están involucradas diferentes variables y Uno de los puntos que debemos observar mento tengamos en frente. Además, nos
con aplicaciones prácticas; esto ayudará a con atención, es que siempre se debe tener ayuda mucho si mostramos los temas de
que ese primer encuentro se convierta en una estrategia de enseñanza donde se man- la manera más gráfica posible, sobre todo
un reto atractivo. tenga una relación directa entre aquello que cuando se trata de temas abstractos como
se está enseñando, y la vida real; de prefe- archivos, arreglos y métodos. Podemos

Ing. Ma. del Consuelo Jiménez Fernández es profesor asociado del departamento de Ciencias Computacionales en la Universidad de Monterrey. Ha recibi-
do en más de diez ocasiones el primer lugar en el concurso de investigación vinculada a la docencia de la UDEM, y también ha recibido el premio a la calidad
docente. Sus áreas de especialidad son: Metodologías para el Desarrollo de Software, Lenguajes de Programación, y Administración de Proyectos. Actual-
mente, es una de las evaluadoras en las propuestas de proyectos para la incubadora en UDEM. [email protected]

50 ENE-FEB 2007 www.softwareguru.com.mx


“El desarrollo de juegos nos ayuda a
despertar el interés de nuestros
estudiantes, para lograr así un nivel
de aprendizaje satisfactorio”.

apoyarnos en paquetes que permiten si- documentación y el entorno de desarrollo.


mular o animar la teoría relacionada a Si logramos que tengan estas bases bien
estos temas, y que tienen ejemplos repre- cimentadas, entonces de ahí, se despren-
sentativos y claros. derán la correcta definición y relación que
tengamos entre los estilos de enseñanza y
Otro aspecto importante que convendría aprendizaje.
considerar en la enseñanza de la progra-
mación, es que cuando no existen bases Todos los que nos dedicamos a la enseñan-
firmes en el área matemática, se le difi- za de la programación, fuimos inspirados
culta más al alumno captar rápidamente por algún buen maestro, y nuestro deber
operaciones tan simples como, cálculo ahora, es transmitir lo mejor posible esta
de porcentajes, promedios, frecuencias, pasión por lo que hacemos, tomando lo
divisores, etcétera; todos ellos son con- mejor de nuestros instructores, y añadien-
ceptos que se enseñan desde la primaria, do lo que hemos aprendido en el camino.
pero que por no llevarlos a la práctica ¿No le gustaría a usted, que cada uno de
suelen olvidarlos fácilmente. Es recomen- sus estudiantes por lo menos, conservara
dable tener diseñado un curso en un am- una actitud positiva ante lo aprendido? El
biente en línea, más para estos casos, de balón está de nuestro lado.
tal forma que la persona que requiera un
refuerzo pueda acceder a manera de au-
toestudio a aquellos módulos que le ayu- Algunos puntos clave para tomar
den a repasar o entender esos conceptos. en cuenta:
¿No cree usted que los cursos enfocados •Analice a su público o grupo.
a desarrollar la lógica de programación, •Defina sus estrategias de enseñanza
deberían ser parte esencial de los progra- y aprendizaje, considere los estilos.
mas académicos desde la primaria? •Apóyese de elementos gráficos,
animaciones o simulaciones.
Si nuestro objetivo es enseñar a programar, •Tenga como apoyo su curso en línea
y vemos que existen áreas de oportunidad y retroinforme de manera constante.
para ello, sería preciso hacer un análisis al •Cree un banco copioso de ejercicios,
grupo de personas que recibimos a través material de contenido y exámenes.
de algún instrumento diagnóstico, así po- •Sea sencillo en su explicación.
dremos definir estrategias y estilos adecua- •Cambie siempre la actitud de su
dos de enseñanza-aprendizaje. El diseño de grupo cuando ésta sea negativa.
nuestras estrategias nos ayudará a lograr •Utilice problemas que permitan a
nuestra principal meta: “pensar de forma la persona establecer una relación
lógica”, para luego programar utilizando un con lo real.
lenguaje de programación. •Practique para poder aplicar lo
aprendido.
En realidad, son muchos los elementos •Y por favor, si tiene dudas al mane-
que en un primer curso, los estudiantes de jar un tema, pida a sus alumnos
programación tienen que aprender y domi- tiempo para investigarlo, y explíque-
nar: la lógica, el lenguaje para programar lo cuando se sienta seguro. Ellos se
donde la sintaxis puede ser simple o com- lo agradecerán.
pleja; los estándares, el desarrollo de la

www.softwareguru.com.mx SEP-OCT 2006 43


// INFRAESTRUCTURA

Asterisk
Demasiado Bueno y Aun Así, es Cierto
Por Ariel García

Durante el año pasado tuvimos la oportunidad de publicar varios artículos relacionados con tec-
nologías de VoIP (voz sobre IP), ToIP (telefonía IP), protocolos y aplicaciones basados en SIP
(Session Iniciation Protocol). Toda esta tecnología se integra para poder brindarnos comuni-
caciones punto a punto de voz, datos y video. En esta ocasión, vamos a conjuntar todos estos
conceptos en una aplicación open source, que está siendo adoptada significativamente y merece
nuestra atención en este número.

Para aquellos que no están familiarizados servicios de programación o capacitación solución de ToIP o de un PBX con la funciona-
con el mundo de la telefonía y desconocen para hacerlo con personal interno, contra- lidad antes mencionada, significa una inver-
las características de un PBX (Private Bran- tos de 7x24 en caso de fallas, dada la criti- sión que va desde 50 hasta 100 mil dólares,
ch Exchange), por favor continúen leyendo. cidad del servicio, etcétera. en una implementación pequeña. No puedo
Para quienes cuentan con amplia experien- ser más explicito en el impacto que podría
cia en este tema, si así lo desean, pueden La tecnología de ToIP, trajo la evolución de tener Asterisk en nuestra empresa.
ir directamente a la explicación de Asterisk estos equipos PBX en los hoy llamados call
(www.asterisk.org). managers. Un call manager es simplemente El software fue escrito originalmente por
un servidor que, a través de software provee Mark Spencer de Digium Inc. y constante-
¿Qué es un PBX? la misma funcionalidad de un PBX, sin nece- mente el código se está enriquecido por la
Un PBX en la jerga de TI, es lo que cono- sidad de adquirir y mantener las costosas comunidad open source de todo el mundo.
cemos terrenalmente como un conmutador tarjetas y gabinetes de los PBX. A la fecha, se continúan realizando pruebas,
de teléfonos. Sin embargo, hay que hacer la desarrollo de parches y extensiones que han
distinción del alcance de funcionalidad que A través de la implementación de ToIP, los impulsado fuertemente al desarrollo y adop-
tiene este equipo. El PBX usualmente está costos de operación y mantenimiento del ción de dicha aplicación
compuesto por tarjetas de circuitos electró- equipo de telefonía se reducen de forma
nicos, semejantes a un motherboard, que dramática, dado que ofrecen la misma fun- El programa no requiere de hardware adicio-
se insertan en gabinetes. Con este hard- cionalidad a precios más bajos con mayor nal para soportar VoIP, y existe una buena
ware, además de la funcionalidad de tele- redundancia, y una mejor oferta de solucio- variedad de dispositivos para que Asterisk
fonía interna, tenemos servicios de correo nes, dado que se incorpora el video en tiem- pueda interconectarse con equipo tanto di-
de voz, transferencia de llamadas, confe- po real y los beneficios del mundo IP. gital como analógico. La mayor parte de es-
rencias, enrutamientos, configuraciones de tos dispositivos provienen de Digium, que es
call center, identificador de llamadas, có- Aunque un call manager es más eficiente la marca que patrocina a Asterisk. Se cuenta
digos de seguridad, tarificación, etcétera. en términos de costos que un PBX, también con hardware para poder conectar la aplica-
Por lo general, algunos servicios como por requiere de una inversión considerable de ción a troncales E1 y T1 para conexiones PRI
ejemplo, el correo de voz, viene asociado a capital para su implementación. O cuando (Primary Rate Interface) que son las interfa-
una tarjeta en el gabinete. menos, así lo era antes de que el open sour- ces más comunes usadas por las empresas
ce llegara al mundo de la telefonía IP. Aquí es con un alto volumen de llamadas. Para las
Típicamente, dichos equipos trabajan con donde entra Asterisk. pequeñas y medianas empresas, se cuentan
troncales analógicas o digitales, con co- con dispositivos para la conexión de líneas
nexión directa a las centrales de fibra ópti- ¿Qué es Asterisk? tradicionales, que pueden usarse a través de
ca o cobre de los proveedores telefónicos. Asterisk es una aplicación que tiene toda módulos con puertos FXS, FXO.
En algunos casos es posible trabajar con lí- la funcionalidad de un call manager, y por
neas directas comerciales, pero esto suce- ende, las de un PBX, corre bajo plataforma Asterisk cuenta con un amplio rango de pro-
de por lo regular en implementaciones pe- Linux BSD o Mac OSX, y además tiene la fa- tocolos TDM que le permiten el manejo y
queñas, donde quizás no sea necesario el bulosa cualidad de ser open source. transmisión de voz sobre interfases tradicio-
uso de un PBX, dado los costos que impli- nales, soporta la señalización estándar de los
ca tenerlo, que provienen de mantenimien- Antes de continuar, deseo resaltar la magni- sistemas telefónicos comerciales, tanto ame-
to de hardware y software de las tarjetas, tud del párrafo anterior con un ejemplo: una ricanos como europeos, lo cual le permite co-

52 ENE-FEB 2007 www.softwareguru.com.mx


“Asterisk es una aplicación que tiene toda la
funcionalidad de un call manager, y además
tiene la fabulosa cualidad de ser open source”.

nectarse a los sistemas de nueva generación Módulos APIs la realidad es distinta. Existen varias guías
o, a una infraestructura existente. A través del uso de este sistema de módulos, para llevar acabo una implementación com-
el núcleo de Asterisk se despreocupa de de- pleta de Asterisk, y adquiriendo el hardware
Arquitectura talles como de dónde proviene una llamada, adecuado, se puede implementar como el
Asterisk está diseñado para brindar una qué codec utiliza, etcétera. equipo de telefonía de cualquier oficina, sin
alta flexibilidad en su funcionalidad. Exis- importar su tamaño o complejidad.
ten APIs que se diseñaron específicamen- •API de Canal. El API de canal administra
te, como el núcleo central de un PBX. Este el tipo de conexión de la llamada que está Aunque usted no lo crea, hoy en día existen
núcleo es el encargado de administrar las llegando al sistema. Esta puede ser una co- varias empresas mexicanas que ya están
interconexiones internas, abstrayéndolo nexión VoIP, ISDN, PRI u otra tecnología. Los utilizando este software como su sistema
de los protocolos específicos, codecs, e módulos dinámicos se cargan para manejar de telefonía. Lejos de pensar que su ope-
interfaces de hardware de las aplicaciones las capas de bajo nivel para la detección y ración se ve comprometida al trabajar con
de telefonía. manejo de estas conexiones. una aplicación open soruce, resulta que su
•API de Aplicación. El API de aplicación comunicación se ve incrementada, al poder
El núcleo de Asterisk administra las siguien- permite que se corran varios módulos de contar con los beneficios de la telefonía IP a
tes funciones de forma interna: tareas para ejecutar distintas funciones, un costo bajo. Esto, sumado con el soporte
•PBX Switching. Esta unidad de switching como conferencias, directorio, correo de y contribución continua de la comunidad del
conecta de forma transparente las llamadas voz, y cualquier otra tarea que un sistema open source, debería llevar a cuestionarnos
que llegan desde cualquier interfase, ya sea PBX podría desempeñar ahora o en el futu- si realmente deseamos continuar operando
de hardware o software. Es el corazón de As- ro. Estos módulos pueden administrarse con nuestro PBX actual o realizar inversio-
terisk, y contiene el núcleo de la funcionali- por separado. nes fuertes para implementar una solución
dad de PBX conectando las llamadas entre •API Traductor de Codec. Este API tiene la de telefonía IP propietaria.
los usuarios y automatizando tareas. función de cargar los módulos de codecs
•Lanzador de Aplicaciones. Lanza las aplicacio- para soportar los distintos formatos para Como siempre, la decisión es del negocio,
nes para los servicios como correo de voz, direc- la codificación y decodificación del audio. y la única forma de comprobar los bene-
torio, grabación y reproducción de llamadas. Estos pueden ser: GSM, Mu-Law, A-law, e ficios de tal aplicación es, evaluándola y
•Traductor de Codecs. Utiliza los módulos incluso MP3. presentando los resultados con un aná-
de codecs para la codificación y decodifica- •API de Formato de Archivos. Administra lisis de riesgos. Por ello, los invito a que
ción de los formatos de audio estándar de la lectura y escritura de varios formatos instalen Asterisk en su ambiente de desa-
la industria. Se cuentan con los codecs más para el almacenamiento de datos en el sis- rrollo y vean si cumple las expectativas de
comunes para satisfacer las distintas nece- tema de archivos. su negocio.
sidades que pueden surgir, para encontrar el
balance entre calidad de audio y ancho de Gracias a este manejo de módulos, es posi-
banda de nuestra implementación. ble integrar los sistemas de hardware actua- Referencias
•Scheduler and I/O Manager. Administra les de telefonía o las nuevas tecnologías de • www.asterisk.org
las tareas programadas de bajo nivel y es voz que puedan emerger. • www.digium.com/en/index.php
el encargado del manejo del sistema, para • www.voip-info.org/wiki-Asterisk+
el desempeño óptimo bajo cualquier condi- La implementación y puesta a punto de esta installation+tips
ción de carga. aplicación, podría parecer complicada, pero

www.softwareguru.com.mx ENE-FEB 2007 53


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

D-Link
Wireless Presentation Gateway
Hacer presentaciones desde diversas computadoras, proyectores y monitores sin utilizar cables, es el ob-
jetivo primordial del Wireless Presentation Gateway DPG-2100 de D-Link. Este pequeño dispositivo hace
que la comunicación entre equipos sea posible, de tal manera que, si en la sala de juntas se proyectan
varias diapositivas desde diferentes equipos, no será necesario estar conectando cada equipo. Está
basado en el estándar inalámbrico 802.11g, que lo hace compatible con la mayoría de los dispo-
sitivos inalámbricos, incluyendo los antiguos 802.11b. Además es capaz de manejar cualquier
formato de archivo, en silencio o con audio. Es posible también acceder a Internet para integrar
en las presentaciones contenido directo de la Web gracias al puerto Ethernet.

Pyramat
s2000 Sound Rocker
Acción en directo de los videojuegos, películas o música, es la
mejor forma de definir al s200 Sound Rocker, un sillón equi-
pado con subwoofers PowersubTM de 5.5” que envía inten-
sas vibraciones y sonido nítido, de tal manera que es posible
apreciar desde un disparo hasta la respiración de un persona-
je. Cuenta a su vez, con altavoces iluminados ARXTM de alto
Widow PC desempeño y largo alcance que aceleran la experiencia de jue-
go. Está fabricado en tela Poly-strech que además de brindar
SLI Laptop confort durante largas horas, es porosa, per-
mitiendo así, la ventilación entre el cuerpo
WidowPC es una compañía norteamericana por Internet, dedicada a la y el sillón. En los costados se encuentran
fabricación de computadoras pensadas en la experiencia de juego y en entradas para audífonos, controles de
los videojugadores. Ellos mismos se denominan, el “Porsche” de las volumen y bajos, así como puertos
computadoras; y presentan la nueva generación de desempeño móvil RCA multi player. Es compatible con
para juegos de video. Es una de las más rápidas e incluye uno de los casi todas las consolas de videojue-
frame rates más veloces en cuanto a plataformas móviles se refiere; gos, televisores, reproductores de
además soporta hasta tres monitores al mismo tiempo y cuenta con tar- video y MP3.
jeta de video dual NVIDIA 7950 GTX con 1028MB. Entre algunas otras de
sus características destacan: memoria DDR3, procesador AMD Turion
64bit Dual Core, monitor LCD con ClearView de 19” con resolución de
1680X1050, cinco puertos USB 2.0, uno para teclado y video externo,
cuatro para audio, uno PMCIA y S-Video, entre otros. La tecnología inte-
grada en esta computadora portátil, también ofrece alta definición para
explotar al máximo el poder gráfico de los videojuegos, así como para
la reproducción de contenidos digitales.

Space Invaders 5-en-1 Plug & Play


Para recordar aquellos tiempos en que jugar videojuegos no requería de pulsar seis botones y
mover el joystick a la vez, y las palabras “combo”, juego en línea, inmersión o gráficos en alta
definición ni siquiera figuraban en el vocabulario, existe esta pequeña curiosidad retro, que de
seguro a muchos les provocará un nudo en la garganta y, a otros, quizá hasta derramar un par
de lágrimas. Tan simple como es, rayando en lo ridículamente hipnótico, Space Invaders se ha
convertido en un icono cultural, y para celebrar su 25 aniversario, qué mejor que una unidad plug
& play con cinco juegos: Space Invaders, Phoenix, Qix, Lunar Rescue y Colony 7. Todo al más puro
estilo arcadia. Se conecta directamente al televisor vía cables AV, y su tamaño compacto, permite
llevarlo a cualquier parte para aprovechar las televisiones que se atraviesen por el camino.

54 ENE-FEB 2007 www.softwareguru.com.mx


INDEX

DIRECTORIO Anunciante Páginas Sitio

AMCIS 55 www.amcis.org.mx
Avantare 51 www.avantare.com
ExpoComm 45 www.expocomm.com.mx
e-Quallity 43 www.e-quallity.net
Gartner F3 www.gartner.com/mx/appint
Itera 07 www.itera.com.mx
LinuxWorld 49 www.linuxworldexpo.com
Microsoft F2-01, 23 www.microsoft.com/mexico
Milestone Consulting F4 www.milestone.com.mx
Roca Sistemas 11 www.rocasistemas.com.mx
SafeNet 13 www.safenet-inc.com
Select / Tendencias 19 www.select.com.mx
Tiburón Software 47 www.tiburonsoft.com

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

www.softwareguru.com.mx ENE-FEB 2007 55


// REFLEXIONES

Programas Correctos
Parte 3. Pensar No es Opcional
Por Marco Antonio Dorantes

Software durable implica diseño continuo ayudar para confeccionar el método de diseño para tu próximo proyecto
Identificar el verdadero problema a resolver y diseñar el programa ati- de desarrollo. Otra opción es esperar que alguna figura autoritaria y no
nado, representa el mayor avance en un proyecto de desarrollo, la parte practicante, te diga cómo tienes que programar, o simplemente seguir
restante se trata de hacer de manera correcta dicho programa. El pro- con la inercia de los proyectos en crisis, donde los integrantes ya saben
blema identificado típicamente continúa co-evolucionando junto con que el proyecto va a fracasar y que sólo hay que hacer como que traba-
su solución[1], en otras palabras, la solución tecnológica y el problema jas, aceptando que “la realidad es así”.
de negocio se influencian mutuamente. Una noción común dice que, el
mayor costo y esfuerzo en la aplicación de software para resolver pro- Conclusiones
blemas de negocio, sucede en el desarrollo del mismo, y una vez que David West nos presenta algo que llama curiosidades, en la introduc-
está en producción, es sólo mantenimiento y operación, por lo que las ción de su libro[5] y que reflejan ciertos comportamientos muy dise-
mentes brillantes sólo se requieren en el desarrollo; en muchos casos minados en nuestra industria, que parecieran ser muy sólidos y muy
esto sucede al revés, la necesidad de un diseño flexible y adaptable[2] bien definidos, pero ante la luz de un poco de investigación, resultan
a situaciones poco previsibles —sin importar cuánto esfuerzo de aná- ser sólo malos entendidos. Por ejemplo, ante la pregunta: ¿Cuál es
lisis se haya hecho— ocurre en la etapa de mantenimiento, donde el el siguiente paso después de orientación a objetos?, Martin Fowler
negocio de verdad necesita dicha flexibilidad, por lo que en tales casos, respondió que se necesita entender realmente el paradigma de ob-
más vale transferir una parte significativa del costo de desarrollo a dicha jetos como primer paso, antes de pensar en lo siguiente, o cómo dice
etapa de mantenimiento. En otras palabras, la actividad de diseñar[3] se Anders Hejlsberg[6]: “orientación a objetos antes era como religión y
requiere a lo largo de todo el ciclo de vida del software. que apenas ahora está empezando a ser realmente útil para cada vez
más personas”. La respuesta de David Parnas[7] tiene mucho sentido,
Best practices cuando responde a la pregunta: ¿Cuáles son las ideas más prome-
Para algunos está claro que, cuando se presenta un best practice, en rea- tedoras de ingeniería de software en el horizonte?, diciendo que las
lidad se está hablando de conocimiento tácito, es decir, conocimiento que ideas más prometedoras no están en el horizonte, sino aquí mismo
sólo existe en la cabeza de las personas y que llegó ahí por su experiencia y desde ya hace tiempo, solamente que no han sido usadas como se
personal, o por observar de primera mano a otro profesional en plana ac- debe. Ha sido un placer escribir este artículo en sus tres partes. Sus
ción; dicho conocimiento es de difícil acceso, y por lo tanto muy valioso. Lo comentarios son bienvenidos: [email protected]
que no está claro para muchos, es que dicho conocimiento tiene contexto,
y su transmisión efectiva requiere una interacción extensa así como una
amplia confianza entra las personas, y por ende, no es algo que se trans- Referencias
mita de forma escrita —por definición deja de ser conocimiento tácito. El 1. Wicked Problems, Righteous Solutions
riesgo de tomar como best practice el conocimiento obtenido fácilmente blogs.msdn.com/marcod/archive/2004/06/12/154131.aspx
en publicaciones o seminarios reside en la frase: “no tienes que pensar, 2. Unconscious Design Defined
sólo aplica el best practice”—, pues impide lo que precisamente es nece- blogs.msdn.com/marcod/archive/2005/04/03/
sario hacer para adquirir el conocimiento tácito: pensar en contexto. UnconsciousDesignDefined.aspx
3. The Engineering in Software Development – Trails of Design Mastery
Adaptación es clave, el mapa no es el terreno blogs.msdn.com/marcod/archive/2004/06/23/163358.aspx
Una vez que tienes experiencia con un buen número de métodos de di- 4. Just-In-Time Methodology Construction
seño, sigue el reto de saber cómo y cuándo adaptar un método a una alistair.cockburn.us/crystal/articles/jmc/
situación en particular. ¿Qué mantener o qué dejar de lado? ¿Qué agre- justintimemethodologyconstruction.html
gar? Una manera es ignorar esta complejidad esperando que las cosas 5. David West. Object Thinking.
simplemente pasen, pero en tal caso, sería mejor dedicarnos a otra 6. Life and Times of Anders Hejlsberg
cosa y dejar esto en manos de alguien que le importe. El panorama de channel9.msdn.com/Showpost.aspx?postid=159952
aplicación de software para resolver problemas de negocio, se observa 7. ACM Special Interest Group on Software Engineering (SIGSOFT) Soft-
cada vez más demandante, y la necesidad de métodos dinámicos que ware Engineering Notes. ACM Fellow Profile: David Lorge Parnas
se adapten al vuelo será cada vez más necesaria. Un balance adecua- www.sigsoft.org/SEN/parnas.html
do de propiedades como las que presenta Alistair Cockburn[4] (Entre-
ga frecuente, comunicación efectiva, mejora reflexiva, etcétera.) puede

Marco Antonio Dorantes Martínez es un consultor en el diseño y formulación de software desde 1987, oficio que lo llevó a la investigación aplicada en el
campo de los métodos sistemáticos para diseño de software. Ha realizado diversas contribuciones públicas en la comunidad mundial de programación, tanto
en foros técnicos como en software, por ejemplo AutoTest for .Net y CppUnit for C++Builder disponibles desde www.xprogramming.com. Publica un diario
electrónico en blogs.msdn.com/marcod

56 ENE-FEB 2007 www.softwareguru.com.mx


Año 03 No. 01 www.softwareguru.com.mx SOFTWARE GURU CONOCIMIENTO EN PRÁCTICA Enero-Febrero 2007

También podría gustarte