SG13 Videojuegos
SG13 Videojuegos
SG13 Videojuegos
Análisis de ROI
• POJOs y
Frameworks Ligeros
• Evaluación de
Arquitecturas
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;
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.
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
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 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.
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.
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.
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.
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).
using System.ServiceModel;
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.
¿Centros de Desarrollo
de Software en las Universidades?
Una Realidad aún sin Explotar Por Joaquín Arellano
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.
¿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:
“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
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
¿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
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
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.
Conceptos básicos
Definamos algunos conceptos básicos que
nos ayudarán a entender el código de nues-
tro juego 2D:
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
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
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]
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.
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
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).
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
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.
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.
•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
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.
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]
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.
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
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.
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.
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
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.
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
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.
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]
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]
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-
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
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.
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
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