You are on page 1of 60

Software Guru CONOCIMIENTO EN PRCTICA

w
w
w
.
s
o
f
t
w
a
r
e
g
u
r
u
.
c
o
m
.
m
x
Ao 03 No.01 Enero-Febrero 2007 www.softwareguru.com.mx
[ Novedades ]
WCF
Noticias Eventos Fundamentos UML Infraestructura Reexiones
Anlisis de ROI
POJOs y
Frameworks Ligeros
Evaluacin de
Arquitecturas
Desarrollo de
Videojuegos
[ ENTREVISTAS ]
Desde Creanimax
Bill Plympton
Ren Castillo
Ernesto Glvez
ESPECIAL
Desarrollo de
Software en
Universidades
Mxico, $65.00
Por dnde comenzar?
Direccin Editorial
Pedro Galvn
Direccin de Operaciones
Mara Ruvalcaba
Coordinacin Editorial
Susana Tamayo
Asesora Editorial
Edgardo Domnguez
Arte y Diseo
Dafne Ortega
Oscar Smano
Consejo Editorial
Francisco Camargo, Ralf Eder, Ral Trejo,
Guillermo Rodrguez, ITESM-CEM;
Hanna Oktaba, UNAM-AMCIS;
Luis Cuellar, Softtek;
Luis Vinicio Len, e-Quallity - ITESO.
Colaboradores
Ariel Garca, Sergio Orozco,
Luis Daniel Soto, Jaime Snchez,
Marco A. Dorantes, Jorge Palacios, Joaqun
Arellano, Carlos Gutirrez, Oscar Guilln,
Anglica Su, Alfredo Calvo, Ixcoatl Prez, Omar
Gmez, Ana Vzquez, Mario Gutirrez, Haarn
Gonzlez, Charlie Macas, Emilio Osorio,
Consuelo Jimnez, Joel Villagrana.
Ilustracin de Portada
www.tollhaus.com.mx
Ventas
Claudia Perea
Marketing
Natalia Snchez
Circulacin y Subscripciones
Daniel Velzquez
Contacto
info@softwareguru.com.mx
+52 55 5239 5502
SG Software Guru es una publicacin bimestral ed-
itada por Brainworx S.A. de C.V., Malinche no. 6, Col.
El Parque, C.P. 53398, Naucalpan, Mxico. Prohibida
la reproduccin total o parcial del contenido sin previo
aviso por escrito de los editores. Todos los artculos son
responsabilidad de sus propios autores y no necesari-
amente refejan el punto de vista de la editorial. Reserva
de Derechos al Uso Exclusivo: 04-2004-090212091400-
102. Certifcado de licitud de ttulo: 12999. Certifcado
de licitud de contenido:10572. ISSN: 1870-0888. Reg-
istro Postal: PP15-5106. Se imprimi en diciembre de
2006 en Litogrfca Roma. Distribuido por Rrecca Com-
ercializadora y Sepomex.
directorio
Quiz muchos de ustedes se vean sor-
prendidos con la portada de esta edicin,
la nmero13 de SG, la primera del ao que
apenas comienza. Y es que para abrir este
2007, decidimos enfocarnos en un tema
que est de moda: los videojuegos. Al
igual que todos los temas que abordamos,
hemos buscado hacerlo desde la perspec-
tiva no de usuarios, sino de creadores. Por
otra parte, escoger este tema nos permi-
ti tomarnos algunas libertades no slo
en el diseo, sino tambin en los conte-
nidos. Consideramos que este nmero
tiene un buen balance de temas y niveles
de profundidad. Tenemos desde artculos
amigables que van dirigidos al pblico en
general, hasta los muy clavados que son
para nuestros feles gurs. Tal vez por
error llegue a haber algunos despistados
que tomen esta revista pensando que en-
contrarn informacin sobre los ltimos
juegos y consolas. Al principio se llevarn
una desilusin, pero estamos seguros que
se les pasar cuando descubran que aqu
hay informacin para aprender a desarro-
llar sus propios juegos.
Adems del desarrollo de videojuegos,
tenemos un artculo especial que recalca
la importancia y necesidad de los centros
de desarrollo de software en las univer-
sidades. Consideramos que estos centros
son vitales para generar los profesionis-
tas de software que necesitamos. Com-
plementamos todo esto con las opiniones
de nuestros columnistas, que ya son par-
te fundamental del contenido; echaremos
un vistazo por Windows Communication
Foundation, que es uno de los pilares de
Windows Vista; veremos cmo determi-
nar el ROI de un esfuerzo de mejora de
procesos, y tambin conoceremos sobre
los famosos POJOs. Vale la pena hacer un
parntesis para mencionar que durante
todo el tiempo que estuvimos haciendo
este nmero, cada que se mencionaba
el trmino POJO, Susana no poda evitar
pensar en cierta ave de color amarillo.
Mientras editbamos los textos de este
nmero, llegamos a la conclusin de que
tienen un dejo de nostalgia, porque la ma-
yora de los colaboradores que participaron,
hacen referencias al pasado, a su juventud.
En realidad, queremos llegar tanto a los j-
venes que apenas comienzan como a todos
aquellos que crecieron mirando la evolucin
de un mundo que hoy nos ha rebasado.
Equipo Editorial
FE DE ERRATAS:
Queremos pedir una disculpa porque en el nmero
anterior Jorge Palacios escribi el reportaje del Cluster
FidSoftware y no apareci su crdito; por otra parte, el
subttulo en la columna de Hanna Oktaba debi decir:
International Process Research Consortium (IPRC).
Editorial
// CONTENIDO
02
ENE-FEB 2007 www.softwareguru.com.mx
Columnas
Tejiendo Nuestra Red 08
por Hanna Oktaba y Ana Vquez
Mejora Continua 10
por Luis Cuellar
Tendencias en Software 44
por Luis Daniel Soto
Ctedra y Ms 46
por Mario Gutirrez
Tierra Libre 48
por Emilio Osorio
EN PORTADA
Desarrollo de Videojuegos
Nuestro artculo de portada en esta ocasin,
abarca desde los primeros pasos hacia la
creacin de videojuegos hasta un amplio
panorama de esta industria y la oportunidad
que representa para nuestro pas.
contenido
ene-feb 2007
// CONTENIDO
En Cada Nmero
NOTICIAS y EVENTOS 04
CLSTERS 06
UML 42
FUNDAMENTOS 50
INFRAESTRUCTURA 52
REFLEXIONES 56
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
Prcticas
MEJORA DE PROCESOS 36
Anlisis de ROI
La mejora de procesos requiere una inversin
signifcativa de recursos. Alfredo Calvo y Anglica
Su nos explican cmo estimar el ROI.
DISEO 38
POJOs y Frameworks Ligeros
Ixcoatl Prez nos muestra cmo combinar POJOs
con frameworks como Spring e Hibernate, para
desarrollar aplicaciones empresariales.
ARQUITECTURA 40
Evaluacin de Arquitectura de Software
Omar Gmez nos ensea a evaluar arquitecturas
para determinar si cumplen con los requerimientos.
Entrevista
Bill Plympton, Ren Castillo, Ernesto Glvez 20
www.softwareguru.com.mx
03
ENE-FEB 2007
24
04
ENE-FEB 2007 www.softwareguru.com.mx
Lanzamiento de Windows Vista
El pasado 29 de noviembre se realiz la presentacin de Win-
dows Vista y Offce 2007, dedicada a los desarrolladores de
software y profesionales de TI. Dicho evento se realiz en el
World Trade Center de la Ciudad de Mxico, y resalt por su
magnitud y variedad. La gran sorpresa fue que la conferencia
de arranque la imparti Jess Ramrez, Director Tcnico de la
Seleccin Sub 17 de futbol, actuales campeones mundiales.
Su pltica estuvo enfocada en el poder de la mente cuando
se aplica de manera correcta, y en la importancia del trabajo
en equipo. Posteriormente se llevaron a cabo sesiones para
ahondar en los distintos detalles de esta nueva versin, y el
nuevo modelo de desarrollo de aplicaciones que introduce.
Oracle Open World
Del 22 al 26 de octubre, los ms innovadores desarrollos
en tecnologa, aplicaciones y soluciones desflaron por el
Centro Moscone de San Francisco, California, durante el
Oracle OpenWorld 2006.
En un imponente ambiente de alrededor de 41 mil partici-
pantes de todo el mundo, se llevaron a cabo ms de 1,400
sesiones en torno a las principales aplicaciones de Ora-
cle, 400 demos en vivo de desarrolladores, conferencias
a cargo de importantes usuarios y ejecutivos de Oracle, y
una Expo con ms de 300 expositores. Durante el evento,
como noticia principal y sorpresa para muchos, Oracle
anunci que dar soporte total a estndares abiertos, por
medio del programa llamado Unbreakable Linux.
// NOTICIAS
Toman Protesta los Miembros de
la Mesa Directiva de la ANIEI
El pasado 12 de diciembre, en las instalaciones de la Rec-
tora de la UAM, se llev a cabo la toma de protesta de los
miembros de la Mesa Directiva de la Asociacin Nacional
de Instituciones de Educacin en Informtica (ANIEI). Para
su periodo 2006 - 2008, la Lic. Ma. de Lourdes Snchez, por
segunda ocasin, estar a cargo de la presidencia de esta
asociacin. La ANIEI ha fungido como pieza fundamental
en la vinculacin Industria-Academia-Gobierno, ya que en-
tre sus principales objetivos est el ejecutar la estrategia
2 del programa PROSOFT, enfocada en disear el modelo
paracurricular de Desarrollador de Software, Ingeniero de
Software, Arquitecto, y Administrador en Proyectos, as
como adecuar los modelos educativos relacionados con la
informtica, tareas clave para el esperado crecimiento de la
industria de software en Mxico.
05
ENE-FEB 2007 www.softwareguru.com.mx
13 al 16 Febrero 2007
CONSOL 2007
Congreso Nacional de Software Libre
Facultad de Ingeniera UNAM, Cd. de Mxico
Info: www.consol.org.mx
Email: consol@consol.org.mx
27 Febrero 2007
Tendencias 2007
Select
Centro Banamex, Cd. de Mxico
Info: www.select.com.mx
Tel: (55) 5256 1426
Email: liliana.garcia@select.com.mx
27 Febrero al 2 Marzo 2007
Linux World Conference & Expo
Expo Comm 2007, Von Conference & Expo, Expo Mvil
Centro Banamex, Cd. de Mxico
Info: www.expocomm.com.mx
Tel: (55) 1087-1650 ext. 1160
Email: marcela@ejkrause.com
22 al 24 Marzo 2007
III Simposio Metodologa Seis Sigma
Centro de Investigacin en Matemticas (CIMAT)
Hotel Real de Minas, Guanajuato, Gto.
Info: www.cimat.mx/Sitios/seissigma
Email: seissigma@cimat.mx
Softtek, nica Empresa Privada que
Opera dos Centros CMMI5 y uno CMM5
en Amrica Latina
Softtek concluy con xito la valoracin en CMMI 5 de sus Centros de
Entrega de Servicio Near Shore en Aguascalientes y Mxico D. F. Estos
se suman al Centro en Monterrey, que fue evaluado CMM 5 en 2004.
Blanca Trevio, Presidente y CEO de Softtek coment: El contar con
una red de Centros certifcados en los ms altos niveles de CMM,
proporciona cuantiosos benefcios a nuestros clientes en funcin de
productividad, efciencia en costos y certeza de resultados. Softtek
ha sido pionero en la implementacin de prcticas de ingeniera de soft-
ware en Amrica Latina, y en los servicios de Near Shore outsourcing.
Hoy en da, la empresa cuenta con 7 Centros, 4 de ellos en Mxico, 2 en
Brasil, y uno ms en Espaa, a los que se sumar un nuevo Centro en
Asia que iniciar operaciones hacia fnales de 2007.
IMSS, Primer Organismo de Gobierno
en Alcanzar la Evaluacin CMMI
La Coordinacin de Tecnologa para la incorporacin y Recau-
dacin del Seguro Social (CTIRSS) fue acreditada con el nivel
3 de capacidad y nivel 2 de madurez de CMMI. La CTIRSS,
a cargo del Lic. Marco Rojano, quien forma parte del equi-
po del Lic. Igor Rosette, Director de Innovacin y Desarrollo
Tecnolgico del IMSS, se ha convertido en la primera unidad
de gobierno en Mxico y una de las 50 a nivel mundial en ob-
tener dicha evaluacin. Esto representa una recompensa al
esfuerzo de ms de 3 aos de trabajo de un rea conformada
por ms 60 personas, quienes adems de desarrollar y man-
tener en operacin ms de 50 aplicaciones que soportan los
procesos de incorporacin y recaudacin de todo el Institu-
to, se pusieron como meta el hacer crecer una organizacin
de clase mundial.
TI-M, Primera Empresa en el Norte
de Mxico en Obtener CMMI Nivel 3
TI-M (anteriormente TI Mvil) fue acreditado bajo el nivel 3
de CMMI. La implementacin y evaluacin fueron posibles
gracias al apoyo de consultores de It Era. El proceso de
implementacin tuvo una duracin total de dos aos, y el
grupo evaluador fue dirigido por el SCAMPI Lead Appraiser
Carlos Galvn.
TI-M se ha destacado por minimizar el riesgo en el portafolio
de proyectos de TI y maximizar el rendimiento de las inver-
siones de clientes como Ternium-Hylsa, Sigma Alimentos,
Ipsos Bimsa, entre otros.
GULEV Congreso Internacional de Software
Libre 2006
Del 7 al 9 de diciembre se llev a cabo la VI edicin del GULEV
Congreso Internacional de Software Libre, en Cancn, Quintana
Roo. Este ao se cont con la presencia de algunas de las ms
importantes fguras del Software Libre como Miguel de Icaza
(Novell) quien ha iniciado proyectos como GNOME y Mono,
Rasmus Lerdorf creador de PHP uno de los lenguajes de progra-
macin ms populares en el mundo, Bruce Momjian creador de
PostgreSQL un potente gestor de Bases de Datos, Bdale Garbee
(HP) y por primera vez en un evento en latinoamerica, Guido Van
Rossum, creador del lenguaje Python.
El evento fue un xito, y se anunci que prximamente habr
muy gratas sorpresas alrededor del evento de Software Libre
con mayor tradicin en Mxico.
// EVENTOS
Teraloc cuenta con 6 socios, que son:
Synerware - Especializada en el software para agencias automotrices.
Morelos Web - Dedicada al desarrollo y hosting de paginas web
para el Estado de Morelos.
Victec - Enfocados al desarrollo de aplicaciones de referenciacin
geogrfca.
AE Sistemas - Desarrolla aplicaciones administrativas dando servi-
cios a la medida de las necesidades del cliente.
Pineda y Asociados especializados en metodologas para BPM.
AFRM procesos - que se dedica al modelado de procesos.
La unin de estas seis empresas, da como resultado, Teraloc, que
como ya explicamos, es una integradora de empresas de TI en el es-
tado de Morelos. Estas forman parte de la Asociacin de la Industria
del Software en Morelos, que es la AISAC. Teraloc surge con el obje-
tivo de crear un corredor tecnolgico en esta zona, establecindolo
como la integradora y la Asociacin de Intelsoft.
Por qu Teraloc?
El vocablo Teraloc proviene de la combinacin del prefjo Tera, que
se refere a cantidad 1x1012, como se entiende en Megabytes, Giga-
bytes y Terabytes, y Loc, que se refere a las siglas utilizadas para
referirse a lneas de cdigo (lines of code). Este nombre se debe a
que el enfoque inicial estaba orientado a la maquila de desarrollo
de software. Sin embargo, la experiencia ha hecho ver a Teraloc,
que es mejor enfocarse en segmentos de mayor valor, y por eso ha
decidido enfocarse en la gestin y automatizacin de procesos de
negocio (BPM), y metodologas de administracin de proyectos y
desarrollo de software.
Como ya mencionamos, Teraloc naci hace cuatro aos, al parejo
del programa ProSoft. Desde un inicio han contado con el apoyo de
dicho programa, y han aprovechado los recursos provenientes de
este fondo para dirigirlos principalmente al rea de capacitacin.
De hecho, Teraloc fue la primera compaa del estado de Morelos
en frmar un convenio con Prosoft, siendo la primera entidad para
el desarrollo del impulso del software.
La primera etapa en el desarrollo de Teraloc, estuvo enfocada en
la generacin y formacin de recursos humanos. Teraloc desde el
principio se ha manejado con un enfoque acadmico en la for-
macin de gente, generando confianza a travs de cursos de ca-
pacitacin donde reciben certificaciones conjuntas. De acuerdo
con la gente de Teraloc, esto ha sido la base para establecer lazos
de comunicacin y, que la integradora siga funcionando y dando
grandes resultados.
Pero las habilidades del personal no son todo. Tambin se necesitan pro-
cesos maduros y repetibles, y clientes interesados en adquirir tus produc-
tos y servicios. Fue por eso que desde un inicio, Teraloc defni un plan de
desarrollo estratgico, que adems de la capacitacin, consideraba otros
aspectos como la defnicin de procesos, y la generacin de demanda.
Los resultados de tales esfuerzos han sido, sin duda positivos, dan-
do como resultado que la oferta de valor de Teraloc sea ms competi-
tiva en trminos de calidad y precio. Adicionalmente, Teraloc provee
soluciones para la comunidad, tales como apertura de empleos y
soluciones a nivel gubernamental.
Mercado meta
Teraloc tiene bien defnido cual es su mercado meta, el cual est
compuesto de:
Empresas medianas y grandes que necesiten redefnir y/o automa-
tizar sus procesos internos y externos a travs de diversas tecno-
logas de informacin para dar un soporte adecuado en la toma de
decisiones.
Micro y pequea empresa agrupada.
Gobierno en sus 3 niveles.
Principales logros
Entre los logros ms recientes de Teraloc y sus empresas asociadas,
podemos resaltar los siguientes:
Seleccin de Syner IP para el programa de aceleracin Techba en
Austin, Texas.
Creacin de la ctedra AISAC en el ITESM Campus Ciudad de Mxico
y Santa Fe.
Defnicin del Modelo APTI de TeraLOC para la administracin de
proyectos de TI y su adopcin en la AISAC.
Plataforma e-learning para capacitacin a distancia va web.
Integracin de IT Learning en el consejo de educacin a distancia de
la Secretara de Economa.
Para mayor informacin, visita www.teraloc.com.
06
ENE-FEB 2007 www.softwareguru.com.mx
/* CLSTERS */
Teraloc
De Morelos para Todo Mxico
Por Jorge Palacios
Teraloc es una integradora de empresas del rea de Tecnologa de Informacin, 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 gestin publica, apoyndose
en diferentes herramientas y distintas metodologas en las que se trabaja la administracin de proyectos, ITIL, PSP/TSP.
// REPORTAJE
08
ENE-FEB 2007 www.softwareguru.com.mx
E
n esta ocasin voy a contarles sobre la
segunda participacin de la Delegacin
Mexicana en una reunin del ISO/IEC JTC1
SC7 WG24, cuyo nombre es Software Life
Cycle Profles and Guidelines for use in Very
Small Enterprises (VSE).
Ya en el nmero de julio-agosto 2006, plati-
camos sobre la primera participacin de la
Delegacin en la ciudad de Bangkok, donde
nuestra norma mexicana basada en MoPro-
Soft y EvalProSoft fue presentada y se selec-
cion, de entre varios documentos similares
de otros pases como base para los trabajos
del grupo. En esa primera reunin, la Delega-
cin Mexicana se comprometi a realizar la
traduccin de MoProSoft al ingls; realizado
en un grupo de trabajo que integra el NYCE
(el organismo que emiti la norma), y que se
entreg a travs de la Direccin General de
Normas, al responsable del WG24.
La Delegacin en esta ocasin estuvo inte-
grada por Francisco Lpez Lira, Ana Vzquez
y yo, que somos miembros de la AMCIS y
hemos trabajado en diversos proyectos rela-
cionados con la norma. El objetivo fue incluir
en los productos del WG24 la mayor canti-
dad de elementos de MoProSoft. La reunin
se llev a cabo en Luxemburgo del 2 al 6 de
octubre, y asistieron delegados de Blgica,
Luxemburgo, Finlandia, Canad, Irlanda, Es-
tados Unidos, Tailandia, Sudfrica y Austra-
lia, siendo sta, la primera participacin de
los dos ltimos.
El objetivo de dicha sesin fue defnir el con-
junto de actividades que las VSE implemen-
tarn en su primer ciclo de mejora, y que en
adelante, llamaremos primer perfl. Las ac-
tividades realizadas fueron las siguientes:
Presentacin de las cuatro partes de la
norma MoProSoft.
Seleccin de los procesos de MoProSoft
que integrarn el primer perfl.
Seleccin de las actividades de estos pro-
cesos que integrarn el primer perfl.
Despus de hacer un anlisis de los objetivos
de cada uno de los procesos, as como los
costos y benefcios asociados, los procesos
seleccionados fueron los que se encuentran
en la categora de Operacin: Administracin
de Proyectos Especfcos (APE) y, Desarrollo
y Mantenimiento de Software (DMS).
Los participantes se dividieron en dos gru-
pos para analizar las actividades de cada
uno de estos procesos, y seleccionar las que
consideraban indispensables para el primer
perfl. Nuestro papel consisti principalmen-
te, en explicarles el porqu de algunos ele-
mentos que tiene el modelo y su relacin con
la prctica que conocemos.
Posteriormente, se realiz una discusin
conjunta de ambos grupos para generar
consenso. Cabe aclarar que no contaban con
el acorden, de la versin coloreada por
niveles de capacidades.
En general, las actividades seleccionadas del
proceso de Administracin de Proyectos Espe-
cfcos fueron las que corresponden al nivel de
capacidad 1, y de Desarrollo y Mantenimiento
de Software de los niveles 1 y 2. Dicho de otra
forma, del proceso APE se eligi la planeacin,
registro y control de los principales parmetros
de administracin de proyectos como costo,
tiempo y riesgo, mientras que del DMS se es-
cogieron las actividades de Especifcacin de
Requerimientos, Anlisis y Diseo, Construc-
cin, Integracin y Pruebas, con sus respecti-
vas verifcaciones y validaciones.
En adicin, se incluyeron algunas activida-
des para controlar los cambios y las ver-
siones de los productos, subsanando as la
ausencia del proceso de Conocimiento de la
Organizacin en este primer perfl.
Nada nuevo? En realidad no, ya que estas
buenas prcticas estn contenidas en otros
estndares como el ISO/IEC 12207, adems
de ser conocidas por buena parte de la in-
dustria. Lo que s pretende aportar el WG24,
son herramientas de diversos tipos para
ayudar en la implementacin de estas prc-
ticas en las VSE, como son la secuencia de
actividades, roles, descripciones de produc-
tos, formatos, etctera.
La prxima reunin ser en mayo de 2007,
en San Petersburgo. Para entonces se espe-
ra que el delegado de Finlandia, Timo Varkoi,
experto en el estndar ISO/IEC 12207, ten-
ga el mapeo de MoProSoft hacia esa norma,
que este primer perfl haya sido revisado o
probado en los pases de origen de los dele-
gados, y que los documentos del grupo ten-
gan un nmero ISO/IEC asignado.
El trabajo va para largo. Ya nos dimos cuenta
que con dos reuniones de trabajo al ao no
se puede avanzar mucho. El objetivo es ge-
nerar una secuencia de 3 a 4 perfles, cada
vez ms amplios, no necesariamente corres-
pondientes a niveles de capacidades o de
madurez, que sirvan de gua a las empresas.
El perfl fnal incluir a MoProSoft completo.
Y de Luxemburgo... lo que les podemos contar
es que es un pas con historia milenaria. Su n-
mero de habitantes no rebasa a la delegacin
ms pequea del DF, no tiene fronteras; es por
supuesto muy limpio, y tiene la parte antigua
con castillos y callejones como de cuento de
hadas. Sin embargo, es un pas fundador de la
Unin Europea, un pas que hace competencia
a Suiza en el rea bancaria y, que a la vez, est
preocupado por apoyar e innovar a sus peque-
as empresas. Nuestros anftriones fueron del
Centre de Recherche Public Henri Tudor, el cual
desde hace veinte aos se dedica al apoyo de
las PyMES en el uso de las Tecnologas de In-
formacin para su benefcio.
Otra vez nos da envidia, verdad? Mejor
aprendamos de otros y agreguemos nues-
tros granitos de arena. Porque lo que pode-
mos hacer, tambin puede servir de ejem-
plo a los dems.
Hanna Oktaba y Ana Vzquez
Lo Que Pas en Luxemburgo
Avances de MoProSoft en el WG24
La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus reas de inters son Ingeniera de Software, Tecnolo-
ga 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). Tambin es Directora Tcnica del proyecto COMPETISOFT.
// COLUMNA /*TEJIENDO NUESTRA RED*/ // COLUMNA
10
ENE-FEB 2007 www.softwareguru.com.mx

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


ha dado algo de tiempo para leer. En la Harvard Business Re-
view de noviembre 2006, encontr un artculo sumamente interesan-
te, titulado: Breaking the Tradeoff of Effciency and Services.
El artculo, bsicamente habla sobre el hecho de que una de las grandes
diferencias entre las compaas de productos y las de servicio, radica en
que en una organizacin de servicios, el cliente constantemente irrumpe
en la operacin, a travs de un comportamiento impredecible, pidiendo
servicios en tiempos no apropiados, una gran cantidad de actividades
adicionales, o cambiando continuamente de opinin. Esto genera gran-
des variaciones en el proceso, y hace mucho ms complicada la opera-
cin orientada a servicios, que la enfocada a producto.
En un servicio, conforme aumenta la variabilidad, tambin aumenta
el costo. Por ejemplo, si el cliente cambia con frecuencia de decisin,
en cuanto a si quiere su sistema con una funcionalidad especfca
o no, el costo de la aplicacin se eleva, y se genera trabajo que f-
nalmente no se utilizar. Para poder resolver esta problemtica, el
autor del artculo que le, plantea la necesidad de defnir el tipo de
interrupcin que genera el cliente, y tomar la decisin entre:
a) Manejar la variabilidad en forma controlada. Por ejemplo, los pro-
cesos de Starbucks estn diseados para ofrecer un gran nmero de
opciones, y aun as, controlarlas dentro del mismo proceso.
b) Reducir la variabilidad. Por ejemplo, un restaurante maneja tipos
de cocina y mens para reducir las posibilidades de variacin dentro
de las elecciones a seguir.
Mquinas y personas
Tal vez lo que ms me llam la atencin del artculo, fueron las implica-
ciones que esta diferencia entre productos y servicios tiene en el rea de
sistemas. Todos sabemos que desarrollar sistemas es, tanto un produc-
to (el sistema en cuestin) como un servicio (anlisis de la problemti-
ca, diseo de la solucin, etctera). Esta dualidad hace que el desarrollo
de sistemas sea una labor sumamente compleja y llena de decisiones,
y el gran problema que nos trae es que lo que a un cliente dej suma-
mente maravillado, a otro simplemente no le trae ningn valor, por lo
que es difcil hacerlo repetible. Por desgracia, muchas de las teoras de
Ingeniera de Software y modelos de Calidad, se basan en modelos de
manufactura, en donde el cliente genera una variabilidad mnima.
Esto nos lleva a una amplia diferenciacin entre dos extremos de pen-
samiento: por un lado estn los que ven la calidad como una lista de
proceso, plantillas, y reglas inquebrantables que todo proyecto debe
seguir para minimizar la variabilidad. Por otro lado, estn los que
piensan que no tienen sentido los modelos de calidad, pues por ms
procesos que se tengan, siempre existirn miles de decisiones que se
toman en su momento, y lo mejor es tener gente inteligente que pueda
resolver de forma autnoma todos los problemas que se le presenten.
El proceso que se siga, ser a discrecin de dichos individuos.
La estrategia de calidad inteligente, es precisamente la que se mue-
ve en medio de estos dos mundos, la que da una serie de reglas,
prcticas tcnicas y lineamientos. Se asegura que stos se sigan de
acuerdo a como se plane al principio del proyecto, y tiene apoyo
constante del resto de la organizacin para asegurarse de lograr un
buen balance entre fexibilidad y variabilidad.
Ni muy muy ni tan tan
Veamos de nuevo el desarrollo de software como un servicio. Los
procesos de calidad tienen dos funciones primordiales:
1) Lograr generar un producto sin defectos y bajo un presupuesto
predeterminado
2) Reducir el costo de manera constante al capitalizar el conocimien-
to, para que el siguiente producto se haga de forma ms rpida.
En otras palabras, estamos buscando complacer al usuario lo ms
efcientemente posible, por ende, con la menor variacin posible.
As, todo proyecto debe iniciar preguntndole al cliente cules son sus
requerimientos no funcionales ms importantes y por qu. Con esta
informacin, podemos crear una serie de mtricas que nos ayuden a
ver si estamos cumpliendo con lo que un cliente en particular consi-
dera calidad. Algunos clientes tienen muy claro que las mtricas ms
importantes de su proyecto son la entrega a tiempo, sin defectos y
bajo el presupuesto acordado. Sin embargo, tenemos muchos otros
con ideas diferentes, hay algunos que no les preocupan esas cosas;
buscan una compaa con la que se puedan entender, por lo que para
ellos, lo ms importante es la fexibilidad en la forma de trabajo, y una
gran comunicacin entre las personas del proyecto. Mientras que a
otros, lo que les interesa es que su gente se quede con el conocimien-
to necesario, aunque cueste ms caro. Sin importar cules son los re-
quisitos, es muy importante conocerlos, medirlos, y en base a ellos,
establecer en dnde se debe guiar al cliente y en dnde seguirlo.
A final de cuentas
Bajo ningn motivo, un proceso substituye a tener gente capaz de
resolver y entender las necesidades del cliente. Por lo tanto, la idea
de que exista un proceso, es buscar cmo disminuir, en la medida
posible, la mayora de las variaciones en el proyecto, para as lograr
resultados ms efcientes, y al mismo tiempo tener a nuestros clien-
tes siempre contentos, sin importar lo que estn buscando.
Luis Cuellar
Procesos y Variabilidad
La Diferencia entre Productos y Servicios
/*MEJORA CONTINUA*/ // COLUMNA
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 aos ha estado a cargo de la
definicin e implantacin de la estrategia para CMMI5 y Six Sigma a travs de las diferentes reas del centro de desarrollo de Softtek.
eDeveloper V10 de Magic Software Enterprises es el nuevo paso evoluti-
vo de una herramienta de programacin que por ms de dos dcadas, ha
estado entregando tecnologa innovadora para los desarrolladores de
aplicaciones que se enfocan en minimizar los costos, ajustndose a los
estndares que prevalecen en la industria.
M
uchos de los conceptos actualmente aceptados como
parte esencial para la administracin de todo el ciclo de
desarrollo, han sido la parte central de la productividad de eDe-
veloper a travs de toda su historia.
Estos conceptos incluyen: repositorios para abarcar las des-
cripciones de una aplicacin completa, Reglas de Negocio para
obtener los mayores niveles de abstraccin, Desarrollo Decla-
rativo por medio de metadatos para reducir la codifcacin de
manera drstica.
Todo esto se logra sin defnir una sola lnea de cdigo, ya que
todas la reglas de negocio estn interconstruidas en el motor au-
tmata, que es el ncleo central de la tecnologa Magic.
Esto nos lleva a ser un Lenguaje visual 4GL y, a ser considerados
como una herramienta RAD+D, donde la ltima D, es la facilidad
de poner en Ejecucin (Deployment) nuestros desarrollos.
Aunado a esto, tenemos la posibilidad de que las aplicaciones de-
sarrolladas con eDeveloper sean rpidamente escalables, facilitan-
do la implementacin de nuevas versiones de sus sistemas.
Tambin tenemos la capacidad de que sus desarrollos corran en
distintas plataformas, como UNIX, Linux o Windows, y con co-
nexiones a las bases de datos lderes en la industria, incluida la
capacidad de explotar datos de sistemas AS/400.
Tenemos un rpido Retorno de la Inversin hecha con eDevelo-
per, ya que las ventajas que se le presentan al programador, le
permiten incrementar su efciencia. Las mayores ventajas que
se otorgan son el uso de un paradigma de desarrollo uniforme,
tanto para aplicaciones C/S o para Web; una independencia de
la base de datos a utilizar, permitiendo que el desarrollador se
olvide de las tareas mundanas de conexin a las distintas bases
de datos que pudieran utilizarse en su organizacin; la intero-
perabilidad con las distintas tecnologas emergentes, como el
uso de XML, ejecucin de servicios de mensajera MSMQ, la
interaccin con plataformas J2EE y el uso de Web Services.
Con estas caractersticas de conexin tan diversas, tenemos la
capacidad de generar aplicaciones compuestas, sin que esto dis-
minuya la velocidad de desarrollo.
Lo que nos permite ser compatibles con las Arquitecturas Orien-
tadas a Servicios (SOA), y a su vez, ser una herramienta para el
Desarrollo de Aplicaciones Orientadas a Servicios (SODA), pero
siempre contemplando los estndares existentes en la industria;
como en el caso, por poner un ejemplo, de nuestra conexin a
Systinet, que es un aplicativo estndar para la comunicacin,
tanto de consumo como de proveedor de Web Services.
Nuestros desarrollos se guardan en documentos XML, pero sin que
el desarrollador tenga que escribir una sola lnea XML. eDeveloper
es tan compatible con XML, que puede ocupar un documento XML,
y editarlo como si se tratase de una tabla de una base de datos.
El entorno de desarrollo, conocido como Editor de Tareas, con-
junta todas las caractersticas necesarias para el desarrollo de la
lgica, as como la presentacin de un programa o tarea.
La edicin de las formas que se dispondrn al usuario fnal, po-
drn tener la mejor presentacin, siendo compatibles con los es-
tilos grfcos de Windows XP, para el caso de aplicaciones C/S,
o compatibles con los estilos diseados por el editor de pginas
HTML de su eleccin, para el caso de aplicaciones Web.
El programador podr trabajar de la misma forma en C/S como en
Web, basados en un mismo paradigma de desarrollo. Todo est
basado en una tecnologa que conocemos como Browser Client,
el cual, pondr a nuestra disposicin, la facilidad de crear aplica-
ciones para Internet o Intranet, pero dndole al usuario fnal, la
apariencia de que trabaja en C/S. Un concepto de una aplicacin
para cliente ligero basado en un navegador.
El motor autmata permite ejecutar nuestras aplicaciones ya sea
corriendo dentro del mdulo de ejecucin de aplicaciones, como
en el caso de aplicaciones Stand-Alone o C/S, o corriendo como
servicios, para el caso de Servidores de Procesos o Servidores de
Aplicaciones Web. Y con la capacidad de portabilidad a distintas
plataformas, esto nos ofrece un espectro de posibilidades mayor.
Esto, y mucho ms, es el eDeveloper V10. Mayor informacin en
www.rocasistemas.com.mx
// PUBLIREPORTAJE
Apache Axis2
Web Services Open Source de 3ra Generacin
Axis2 es un motor de web services desarrollado por la Apache Soft-
ware Foundation, y por lo tanto, open source. Axis2 se encuentra
actualmente en su versin 1.1, la cual fue recientemente liberada y
recibida con gran entusiasmo por la comunidad.
De acuerdo con los expertos, hoy en da estamos en la tercera ge-
neracin de middleware para web services, y Axis2 forma parte de
sta. Mientras que las dos primeras generaciones se enfocaron en
demostrar que los web services eran posibles, la tercera genera-
cin se enfoca en hacerlos efcientes y confables. Es decir, algo que
vaya ms all de los prototipos, y que sea una alternativa real para
sistemas de misin crtica.
Apache Axis2 fue diseado y construido desde cero, a partir de las
lecciones aprendidas con Apache Axis, el cual puede ser considerado
un middleware de web services de 2da generacin. Axis2 es mucho
ms efciente, escalable y modular que su antecesor. Adems, es
altamente extensible a travs de mdulos opcionales para soportar
especifcaciones avanzadas de web services como son WS-Security,
WS-Trust, WS-Reliable Messaging, o WS-Eventing.
Ms informacin en ws.apache.org/axis2
12
ENE-FEB 2007 www.softwareguru.com.mx
Rational Software Delivery Platform 7.0
Desarrollo Global de Aplicaciones SOA
IBM lanz la versin 7 de su lnea de herramientas de desarrollo de software, Ra-
tional Software Delivery Platform (SDP) que es un conjunto de herramientas para
desarrollar software, basadas en Eclipse, y complementada con procesos que en-
globan mejores prcticas, como el Rational Unifed Process.
Esta versin est principalmente orientada a la construccin y mantenimiento
de aplicaciones orientadas a servicios. Otro aspecto importante, es que atiende
las caractersticas y necesidades del desarrollo de software moderno y global,
donde los equipos de desarrollo estn dispersos geogrfcamente, por lo que las
herramientas de desarrollo deben soportar y facilitar esta forma de trabajo.
Algunos de los productos especfcos incluidos como parte de esta nueva
versin estn:
IBM Rational Application Developer Un IDE completo para disear, desarrollar,
depurar e instalar aplicaciones SOA y J2EE en ambientes empresariales.
IBM Rational Software Modeler Un modelador visual basado en UML 2.1, para
que los arquitectos, analistas y diseadores plasmen y comuniquen los requeri-
mientos y diseo de los sistemas a construir.
IBM Rational Functional Tester Una herramienta de pruebas avanzada que
provee pruebas automatizadas funcionales y de regresin.
Ms informacin en www-306.ibm.com/software/rational
JBoss Seam 1.1
Aplicaciones Web con Funcionalidad Compleja,
pero Desarrollo Sencillo
Seam es el framework de JBoss para desarrollar aplica-
ciones Web 2.0. Dicho framework integra tecnologas
populares como AJAX, Java Server Faces, EJB3, Java
portlets y workfow, bajo un modelo unifcado.
Seam facilita el desarrollo de aplicaciones web ricas y ba-
sadas en estados (stateful), a travs del manejo sencillo
de objetos con estado, que residen en el servidor, que
interactan con componentes AJAX del lado del cliente.
La versin 1.1 de Seam se liber recientemente, y entre
sus nuevas capacidades estn:
Modelo de componentes basado en POJOs, que eli-
mina la dependencia a EJBs para manejar estado.
Nuevo framework de persistencia basado en Java
Persistente API e Hibernate.
Integracin con ICEfaces y Ajax4jsf para generar com-
ponentes GUI de nueva generacin.
Soporte de conversaciones atmicas, las cuales
son requeridas por el modelo de operacin de las
aplicaciones AJAX.
Mayor informacin en www.jboss.com/products/seam
Unity 1.6
Desarrollo de Juegos 3D Multiplataforma
Unity es una herramienta para desarrollar juegos de
3D, que se pueden ejecutar en un navegador web, o
standalone. Con Unity se puede generar grfcas de
gran detalle, a una gran velocidad. Vale la pena notar
ue, Unity utiliza Mono como mquina virtual para la
ejecucin de scripts multiplataforma.
Unity es utilizado por diversos estudios desarrollado-
res de juegos, y recibi el segundo lugar en la catego-
ra Mejor uso de las grfcas de Mac OS X, durante el
pasado Developer Conference de Apple.
En el sitio web de Unity (unity3d.com) se puede descargar
una versin de evaluacin, y tambin se puede echar un
vistazo a la galera de cosas hechas con dicha herramien-
ta. Quedars impresionado por el detalle y velocidad de
las grfcas que se ejecutan en tu navegador.
/* LO QUE VIENE*/ // PRODUCTOS
V
ivimos en un mundo cada da ms conectado. Las organizacio-
nes se han enrolado en la era de Internet, ofreciendo servicios
electrnicos que les permiten integrar o exponer su informacin in-
terna, hacia clientes u otros procesos empresariales externos. Esta
conectividad, combinada con la necesidad de integrar sistemas he-
terogneos, ha infuenciado el establecimiento de un nuevo para-
digma: las arquitecturas orientadas a servicios (SOA), de las cuales
hemos odo tanto en los ltimos meses.
A pesar de que ya existan mltiples tecnologas para construir este tipo
de sistemas, como lo son CORBA y DCOM, en defnitiva los servicios web
basados en XML fueron un paso importante para descubrir y asimilar el
verdadero potencial del concepto de software como servicio, o software
que se conecta con software, abriendo una nueva gama de posibilida-
des para construir aplicaciones distribuidas, debido a la adopcin de
estndares abiertos para conectar personas, sistemas y dispositivos.
Mltiples proveedores de plataformas tecnolgicas ya soportan en sus
productos el uso de web services y sus estndares para permitirnos in-
tegrar sistemas, aunque stos utilicen diferentes plataformas operati-
vas. Sin embargo, las capacidades de integracin a travs de servicios
web no son del todo ricas, de alguna manera estn limitadas a cierto
tipo de escenarios. En otras palabras, los servicios web se quedan cor-
tos en funcionalidad. Por ejemplo, hacer trabajar tecnologas J2EE con
.NET es factible, pero complicado a la vez, requiere de consideraciones
tcnicas adicionales para reforzar la seguridad, compartir la identidad
de usuario, soportar transacciones distribuidas.
Los retos que se tienen en la actualidad para hacer realidad la visin
de orientacin a servicios son:
Cmo podemos asegurarnos de que las conexiones entre los servi-
cios sean confables, y se repongan a fallos en la comunicacin?
Cmo establecer todo un mecanismo de seguridad integral para el
intercambio de mensajes entre servicios?
Cmo crear aplicaciones que expandan sus fronteras de confanza y
participen en procesos transaccionales locales y remotos?
Qu modelo de programacin debo utilizar para construir servicios?
Cmo puedo hacer que una aplicacin est orientada a servicios y
pueda benefciarse de este estilo de arquitectura?
Para resolver estas necesidades, se ha creado la tecnologa Windows
Communication Foundation (WCF).
Windows Communication Foundation
Es uno de los pilares del .NET Framework 3.0. Bsicamente provee
un subsistema de programacin para la construccin de aplicaciones
distribuidas orientadas a servicios. WCF permite el desarrollo de ser-
vicios seguros, confables y transaccionales que interoperan ya sea
con plataformas Microsoft u otras; soportando coexistencia con ante-
riores tecnologas para aprovechar las inversiones existentes. Ofrece
mecanismos de implementacin mucho ms sofsticados que los que
actualmente utilizamos para distribuir servicios y conectar sistemas.
WCF combina y extiende las tecnologas actuales para construir siste-
mas distribuidos bajo plataforma Microsoft, hablamos de .NET Enterpri-
se Services (COM+), MSMQ, .NET Framework Remoting, Web Service En-
hancement (WSE), ASP.NET Web Services (ASMX) y System.Messaging,
con la intencin de proveer un solo marco de trabajo o unifcado.
Como ya coment, WCF es parte del .NET Framework 3.0, lo que
signifca que es parte integral e interna de Windows Vista, pero que
tambin estar disponible en otros sistemas operativos que sopor-
ten el .NET Framework 3.0, como Windows XP SP2 y Windows Server
2003 SP1. Adicionalmente, existen proyectos basados en Mono, para
llevar soporte de WCF a plataforma Unix/Linux.
Objetivos de Diseo
WCF hace posible lo anterior gracias a los siguientes objetivos de diseo:
Soportar internamente un gran conjunto de protocolos para servi-
cios web: las tecnologas actuales para web services proveen sopor-
te para un tipo de interoperabilidad muy bsica entre aplicaciones.
Por ejemplo, estas tecnologas carecen de la habilidad de lograr in-
teroperabilidad garantizando una seguridad integral y comunicacin
confable. WCF soporta interoperabilidad segura, confable y transac-
cional, a travs de soporte interno para las especifcaciones WS-*.
Diseo orientado a servicios: los principios del desarrollo orientado
a servicios han permitido hacer frente al reto de construir software
que se adapta con rapidez a las necesidades del negocio. WCF es el
primer modelo de programacin construido desde cero para facilitar
implcitamente el desarrollo de aplicaciones orientadas a servicios.
Modelo de programacin unifcado: WCF provee una API diseada
para el desarrollo de sistemas conectados, lo cual trae mejoras en
productividad al desarrollar este tipo de sistemas.
Fundamentos de WCF
La fgura 1 ilustra el fujo de un servicio que utiliza WCF. Los EndPoint
son la unidad principal de exposicin de funcionalidad en un servicio,
un servicio puede albergar mltiples EndPoint cada uno con su pro-
pia confguracin. Los EndPoints pueden ser confgurados de manera
programtica (en cdigo) o declarativa (en confguracin XML) y son
prcticamente nuestros canales de conversacin con las aplicacio-
nes cliente o con otros consumidores de nuestros servicios, ya que
Windows Communication Foundation
Un Framework para Desarrollar Aplicaciones Distribuidas
Por Haarn Gonzlez
Haarn Gonzlez trabaja para DirectApps, una empresa de Sacramento, CA dedicada a construir soluciones web para automatizar flujos de trabajo, servicios
de infraestructura y staffing. Haarn es Licenciado en Informtica egresado del Instituto Tecnolgico de Mexicali, y cuenta con las certificaciones MCP, MCAD
y MCT, adems de ser reconocido como Microsoft MVP en la categora ASP.NET, y ser orador regional de INETA (International .NET Association).
14
ENE-FEB 2007 www.softwareguru.com.mx
/* NOVEDADES*/ // PRODUCTOS
15
ENE-FEB 2007 www.softwareguru.com.mx
/* NOVEDADES*/
defnen en donde, cmo y qu se intercambia. Los EndPoints estn
compuestos por:
Address defne: donde exponer un servicio, en otras palabras, una
direccin en la red en donde reside un servicio.
Binding defne: cmo exponer un servicio, o qu protocolos de trans-
porte (TCP, HTTP), codifcacin (texto, binario, MTOM) y requerimientos
de seguridad (SSL, WS-Security) se utilizarn en la conversacin.
Contract defne: qu exponer en un servicio, es decir, qu estructu-
ras (datos) y operaciones (mtodos) se pueden intercambiar durante
una conversacin entre servicios.
Un ejemplo sencillo
Para construir servicios WCF requerimos hacer referencia a System.
ServiceModel incluido en .NET Framework 3.0. Primeramente hay que
defnir el contrato, ya que es muy importante especifcar las reglas para
lograr una conversacin. En WCF existen los atributos DataContract y
OperationContract. Los DataContract nos permiten califcar cdigo para
que sean tomadas como las estructuras de datos que vamos a utilizar
para intercambiar mensajes. Los OperationContract nos permiten calif-
car cdigo para que sea tomado como los mtodos o puntos de entrada
que pueden invocarse durante el intercambio de mensajes.
Veamos el cdigo para defnir un contrato:
using System.ServiceModel;
namespace BasicWCFDemo.Server
{
[ServiceContract(Namespace = http://DemoWCFService.ServiceContracts/2006/11,
Name = ICalculoService)]
public interface ICalculoService
{ [OperationContract(Action = Suma, IsOneWay = false)]
int Suma(int x, int y);
[OperationContract(Action = Resta, IsOneWay = false)]
int Resta(int x, int y);
[OperationContract(Action = Multiplicacion, IsOneWay = false)]
int Multiplicacion(int x, int y);
}
}
Una vez defnido nuestro contrato, lo implementamos en la clase
CalculoService, que es donde realmente existir la funcionalidad de
nuestro servicio.
using System.ServiceModel;
namespace BasicWCFDemo.Server
{
[ServiceBehavior(Name = CalculoService)]
public class CalculoService : ICalculoService
{ public int Suma(int x, int y) { return x + y; }
public int Resta(int x, int y) { return x - y; }
public int Multiplicacion(int x, int y) { return x * y; }
}
}
El siguiente paso es especifcar el hospedaje de nuestro servicio, y
eso lo hacemos a travs de la clase ServiceHost. Con ServiceHost po-
demos hacer que cualquier aplicacin pueda convertirse en un hus-
ped de algn servicio, eliminando dependencias a otros productos
del servidor. Por ejemplo, el siguiente cdigo hace que nuestra apli-
cacin de consola sea un husped de servicio.
using System.ServiceModel;
namespace BasicWCFDemo.Server
{
class Program
{
static void Main(string[] args)
{
Uri direccionUrl = new Uri(http://localhost:8080/BasicWCFDemoServer);
ServiceHost servicioHost = new ServiceHost(typeof(CalculoService), direccionUrl);
servicioHost.AddServiceEndpoint(typeof(ICalculoService), new BasicHttpBinding(),
direccionUrl);
servicioHost.Open();
Console.WriteLine(Servicio escuchando...);
Console.ReadKey();
servicioHost.Close();
}
}
}
Si observamos detenidamente el cdigo, encontraremos que se ha es-
pecifcado la direccin (address) donde reside nuestro servicio en la red,
el canal (binding) utilizado para intercambiar mensajes (BasicHttpBin-
ding) y el contrato usado por el servicio. Aqu es donde sucede la magia,
ya que es donde podemos confgurar nuestro servicio basado en los
tres conceptos ms importantes: Address, Binding y Contract.
Conclusin
WCF se puede usar para conectar sistemas que se ejecutan en con-
textos locales, Intranet, Extranet e Internet. WCF provee un marco de
referencia unifcado y con capacidades avanzadas para el desarrollo
de aplicaciones distribuidas.
Figura 1. Flujo de un servicio con WCF.
16
ENE-FEB 2007 www.softwareguru.com.mx
// ESPECIAL

El egresado de una carrera de Ingeniera


de Software, est realmente preparado
para afrontar como se debe, los retos que
demanda el mercado laboral?, lamentable-
mente, en la mayora de los casos, el alum-
no promedio slo obtiene los conocimientos
tericos y prcticos que le ensean en las
aulas, y que a pesar de que son buenos, no
son del todo sufcientes. Cul puede ser una
de las causas? Hoy en da, no slo es necesa-
rio dominar algn lenguaje de programacin
orientado a objetos pensando que es la ni-
ca opcin para un problema, sino tambin,
poder codifcar en el clsico notepad o en un
editor bsico, saber que existen tcnicas de
produccin de sistemas; aprender de memo-
ria el modelo de cascada o espiral, u otro, sa-
ber de la existencia de UML, pero no saberla
aplicar; conocer y desarrollar en una sola
base de datos, y en general, conceptos bsi-
cos del mundo de IT; se requiere ampliar as
como profundizar en dichos conocimientos y
en muchos ms, no por soberbia, sino porque
el mercado lo exige, demanda profesionistas
mejor preparados en reas de conocimientos
ms recientes, cada vez ms usadas.
Por otra parte, para incrementar su competitividad, el
egresado necesita tener un background ms amplio de lo
que los planes de estudios actuales ofrecen. Esto, debido
a que el mercado laboral es muy exigente, competitivo,
y no slo requiere profesionistas que sepan conceptos y
fundamentos bsicos de Information Technology (IT, por
sus siglas en ingls); sino que tambin se requiere que es-
tn familiarizados con:
IDEs: como Java Studio Creator 2, Visual Studio
2003/2005, Eclipse, NetBeans, Zend Studio, etctera.
No slo dominar un lenguaje de programacin (orien-
tado a objetos, estructurado, procedural, etctera),
sino que adems, sepan usar de forma bsica otros
lenguajes (si no dominarlo, saber qu alcance tiene
cada uno y cules son sus ventajas sobre otros len-
guajes) en caso que sea necesario moverse a un nuevo
lenguaje.
Cmo interactan diferentes lenguajes con diferentes
proveedores de bases de datos (Oracle, SQL Server, MyS-
QL, Informix, PostgreSQL, etctera).
La ya tan mencionada Web 2.0.
Modelos arquitectnicos como MVC (Model View Con-
troller), o SOA (Service Oriented Architecture).
Poder entender adecuadamente y llevar a la prctica
(en escala) conceptos de ingeniera de software, pasan-
do por modelado de objetos, calidad en el software, PSP,
TSP, ITIL y, por qu no?, CMM/CMMI y varios ms.
Creacin de Software confable, seguro, adaptable, ad-
ministrable, entre otros.
Facilidad de adaptarse a cambios, tiempos y tecnologas.
Centros de Desarrollo
de Software en las Universidades?
Una Realidad an sin Explotar
Por Joaqun Arellano
Joaqun Alonso Arellano Ramrez, se ha desempeado como desarrollador, implementador y administrador de sistemas, coautor del artculo Confiabilidad del Soft-
ware: desarrollando productos confiables. Sus intereses en el rea de sistemas incluyen, sistemas en plataforma WEB y Tcnicas de Produccin 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.
17
ENE-FEB 2007 www.softwareguru.com.mx
Centros de Desarrollo
de Software en las Universidades?
Dnde puede el alumno aprender esto?, dnde ms,
sino en su misma universidad, de qu forma?, promo-
viendo centros de desarrollo de software en los que el
alumno pueda, de forma voluntaria, involucrarse y pro-
fundizar en conceptos como los antes mencionados,
mientras desarrolla proyectos reales, que no necesaria-
mente tienen que ser grandes (en complejidad y tamao)
para que el alumno pueda usar los conceptos anteriores,
sino a travs de proyectos planeados y estructurados,
todo, al mismo tiempo que cursa su carrera. Esto ayuda
a que el alumno mientras estudia una carrera de Ingenie-
ra de Software, tenga la posibilidad de aplicar todos los
conocimientos que adquiere a lo largo de sus estudios,
ms una gran parte, de los que ya hemos mencionado, en
proyectos reales. Muchos de los conceptos, si no es que
la gran mayora, se pueden obtener mediante iniciativas,
como por ejemplo:
Software gratis. Algunos de ellos se pueden obtener
bajo algn tipo de licenciamiento, y en ciertos casos,
existen cursos, tambin gratuitos, que ofrecen las em-
presas, para capacitarse en el uso de dicha tecnologa.
Programas de certifcaciones gratuitos, como los que
ofrece Microsoft con su Academia Latinoamericana de
Management (ITIL), Desarrollador Cinco estrellas 2005,
por mencionar uno.
Evaluacin de software, que muchas empresas ofre-
cen, como Flex 2 de Adobe (recin liberado) y las ver-
siones constantes de los productos de Sun, IBM, Zend,
ActiveGrid, etctera.
Convenios como los que algunas universidades tie-
nen con empresas como Microsoft, Macromedia (ahora
Adobe), Oracle, Sun, en donde el alumno puede tener
acceso a versiones gratuitas de software, o como las
versiones educativas que ponen a disposicin un gran
nmero de empresas, como Zend Technology.
Acercamiento con empresas de software que aplican
CMM/CMMI, ITIL, PSP, TSP; conceptos de ingeniera de
software y herramientas tecnolgicas actuales que re-
quieren de los egresados cierto grado de conocimiento.
Una gran gama de sitios en Internet en donde se puede
obtener material de alta calidad de los conceptos y tecno-
logas ya mencionados, y de muchos ms, que quiz se me
puedan estar pasando.
Acercamiento con gobiernos Estatal y Federal, para in-
centivar dichos centros en la educacin pblica y privada.
Estructura propuesta
Profundizando un poco en cmo se podran estructurar di-
chos centros, considero tres bloques esenciales, como se
muestra en la siguiente fgura.
Estructura en 3 Bloques Esenciales.
El egresado necesita tener un background
ms amplio de lo que los planes de estudios
actuales ofrecen.
18
ENE-FEB 2007 www.softwareguru.com.mx
// ESPECIAL
Zona operativa y de control
La integraran personas que formen parte de las acade-
mias de IT de las mismas universidades, y alumnos; es de
academias de IT forme parte de esta zona, es para lograr
un vnculo entre los salones de clase y los centros de de-
sarrollo de software; mientras que la de los alumnos, es
fortalecer los aspectos administrativos y de control de
proyectos de software en ellos, y no slo la parte tcnica
(el desarrollo del software como tal).
Zona de desarrollo de SW
Estara conformada 100% por los alumnos que hayan
obtenido un nivel de conocimientos adecuado, que les
permita explotarlo en dichos proyectos. El nivel de cono-
cimiento puede ser delimitado mediante varias formas:
de algn semestre en adelante, nmero de materias cur-
sadas, conocimientos tcnicos, promedios, etctera.
Zona de soporte y apoyo:
En esta zona se encontraran profesionistas de IT exter-
nos, empresas pblicas y privadas, gobierno y dems
personas e instituciones que puedan aportar sus cono-
cimientos para el beneficio de los centros. Las empresas
pblicas, privadas y gobierno seran los patrocinado-
res de proyectos especficos, aportando SW licencia-
do para fines educativos, programas de capacitacin,
charlas, orientacin y soporte de las metodologas que
usan, por mencionar algunos. La forma puede ser varia-
da, no necesariamente tiene que ser presencial; y los
profesionistas de IT aportaran los conocimientos que
han adquirido a lo largo de su carrera, permitiendo en-
tre otras cosas, alentar a los estudiantes a seguir cre-
ciendo en el mundo de las ITs y de igual forma, dando
soporte a proyectos que les interesen.
Como puntos fnales es necesario recalcar, que el nivel
de conocimientos que un alumno pueda llegar a tener,
aprender, manejar y conocer, de los conceptos aqu pre-
sentados, depender en gran parte, de su propia inquie-
tud, complementada por los consejos y apoyo que reciba
de todas las personas que formen parte de los centros,
as como de los proyectos manejados. De la curiosidad
nace el inters, y es por medio de centros de desarrollo
de software que el alumno puede despertar su inquietud
por conocer ms de lo que los planes de estudio suelen
cubrir. Esto con el fn ltimo, de presentar egresados al
mercado laboral, con la confanza, el respaldo tcnico y
conocimientos para enfrentar los retos laborales que el
mundo de IT necesita.
Sin duda se requiere de inversiones econmicas, insta-
laciones, tiempo, esfuerzo y personal, pero no tienen
que ser necesariamente exigentes, es posible hacer
uso de mucho de lo que las instalaciones de las uni-
versidades tienen, para dar soporte a centros de esta
clase y los resultados compensaran la inversin.
No es necesario destacar los benefcios que los alum-
nos principalmente, las empresas pblicas y privadas,
instituciones educativas y el gobierno podran obtener,
porque son obvios. El objetivo no slo es benefciar al
alumno sino tambin a todas las partes que se vean in-
volucradas en proyectos de este tipo. Las formas de cris-
talizar los centros son variadas. Se propone una estruc-
tura operacional bsica de cmo se podran administrar
los centros, pero el hecho es que necesitan realizarse,
como bien lo menciona el Dr. Carlos Montes de Oca en
la edicin mayo-junio 2006 de la revista Software Guru,
y agregara algo que sin duda muchos compartirn con-
migo: que si Mxico quiere competir internacionalmente
como pas, en el desarrollo de software de calidad, es ne-
cesario que los alumnos y egresados estn a la par sobre
lo que da con da surge en este mundo cambiante de las
ITs, siendo la propuesta aqu presentada, un medio por
el cual se puede lograr.
NOTA
El propsito de mencionar el software y las em-
presas aqu citadas, es con el fin de divulgar el
gran esfuerzo hecho, en trminos generales, por
empresas de TI para dar a conocer a la comuni-
dad los productos, tecnologas y metodologas
que ofrecen y promueven bajo diferentes esque-
mas de licenciamiento.
De la curiosidad nace el inters, y es por
medio de centros de desarrollo de software
que el alumno puede despertar su inquietud
por conocer ms, de lo que los planes de
estudio suelen cubrir.
20
ENE-FEB 2007 www.softwareguru.com.mx
// ENTREVISTA
B
i
l
l

P
l
y
m
p
t
o
n
El pasado mes de octubre en la ciudad de Guadalajara, Jalisco,
se realiz el primer Festival Nacional de Animacin y Videojue-
gos, Creanimax 2006, donde se dieron lugar profesionistas y
entusiastas del medio, para compartir conocimientos, secre-
tos, y conocer un poco ms de cerca lo que se est haciendo
tanto en Mxico como en otras partes del mundo.
Software Guru estuvo presente, y tuvimos la oportunidad de
platicar con tres interesantes personajes, cada uno con su muy
particular estilo y espacio en el universo de la animacin 3D
y el desarrollo de videojuegos. Se trata de Bill Plympton, con
ms de veinte aos de experiencia, creador de cortos animados
como Guard Dog; Ernesto Glvez, CEO y socio fundador de
Immersion Games, y Ren Castillo, animador en stop motion,
creador de Poncho Baln y de la pelcula animada Hasta los
Huesos. A continuacin lo que compartieron con nosotros.
Sobreviviendo como animador independiente Nos
llam la atencin el ttulo de tu ponencia, qu es lo
que compartes con los asistentes?
Creo que ahora es un momento muy especial, parece ser
que hay mucho inters en la animacin. Es la segunda
poca dorada en animacin. Y creo que es posible con-
vertirse en un animador independiente y hacer dinero. Me
gusta compartir con la gente mi propia experiencia, cmo
he sobrevivido haciendo pequeos flmes, comerciales y
largometrajes. Me gusta revelar el secreto de mi xito con
las personas, decirles cmo hacer las cosas y al mismo
tiempo, mostrar un poco de mi nuevo trabajo.
Podras compartir con nosotros el secreto de tu xito?
Me parece que es muy importante que el flme sea diver-
tido, creo que a la gente le gusta rerse con la animacin,
por lo tanto, debe ser divertido. Tambin creo que debe
ser corto, alrededor de cinco minutos, y deber ser barato,
es decir, no invertir cientos y cientos de dlares. Si puedes
hacerlo, si puedes cumplir con estos tres requisitos, tu fl-
me ser exitoso y podrs hacer mucho dinero.
Seguro que hay algunos tips para todos aquellos que
quieren iniciarse en la animacin independiente.
Por supuesto. Quiz el ms importante es dibujar, hacerlo
siempre, nunca dejarlo; tener un cuaderno donde cons-
tantemente se anoten ideas, porque sas, eventualmente
se convierten en proyectos. Es vital tambin, ver muchos
flmes, es importante conocer la animacin, la historia de
la animacin, debes amarla, deber tener pasin por ella ,
yo lo hago, trabajo doce horas al da haciendo mis flmes,
y esa es la clase de pasin que debes tener.
Cul crees que sea el papel de Mxico en el mundo de
la animacin?
Justo de eso platicaba en la maana con una persona, Mxico
tiene una maravillosa tradicin de historias y artistas, desde
los aztecas y los mayas, hasta las grandes leyendas; y creo
que el artista de hoy, ama al contador de historias, ama las
artes visuales, y son exactamente los dos ingredientes que
se necesitan para convertirse en un xito. No creo que se ne-
cesite mucho dinero, no creo que se necesite mucha tecnolo-
ga, slo contar historias interesantes y entretenidas.
Ves futuro en los animadores mexicanos?
Bueno, Ren Castillo es una gran estrella, es una gran cele-
bridad. Lo conoc hace alrededor de cinco aos en un fes-
tival, y me gustan mucho sus flmes. Me parece que ahora,
como sabes, los cineastas mexicanos son muy populares,
por tanto, creo que Mxico est explotando, en trminos
de produccin cinematogrfca.
Cul es el panorama de la industria actualmente?
Creo que est creciendo, y eso hace que sea el momento
perfecto para la animacin. Hay muchsimos mercados, y
trabajos ah, esperando por el talento.
BILL PLYMPTON
Naci en Portland, Oregon el 30 de abril de 1946. Sus flmes cortos se han mostrado
alrededor de los Estados Unidos, sobre todo durante festivales de animacin. Con un
peculiar sentido del humor y visin burlona del da a da, que se refejan en sus Micro-
toons y otros populares cortos para MTV, Plympton se ha hecho famoso con Guard
Dog que le vali la nominacin al Oscar en 2005. Su ms reciente produccin se titula
Idiots and Angeles. Para conocer ms de cerca su trabajo: www.plymptoons.com
21
ENE-FEB 2007 www.softwareguru.com.mx
REN CASTILLO
Es egresado de la carrera de Comunicacin por el ITESO en Guadalajara, Jalisco. Su af-
cin desde pequeo por modelar personajes de plastilina lo llev a encontrar en la ani-
macin stop motion el lugar perfecto para darle rienda suelta a su creatividad. Muestra
de su sobresaliente trabajo son los flmes animados Hasta los Huesos y Sin Sostn.
Adems de la animacin en Flash, Poncho Baln. www.ponchobalon.com
Cul fue tu primer encuentro con la animacin?
Desde nio haca muequitos de plastilina, era algo que no poda dejar
de hacer, tena dinero y compraba plastilina para crear monitos diferentes,
nunca copiaba, y haca mis historias. Pero a pesar de ese acercamiento,
no contempl jams la animacin como una posibilidad. Y fue hasta los
23 aos cuando iba en el coche, en el radio escuch un anuncio que deca:
curso de animacin con plastilina. Me dije: yo puedo hacer eso, as es
que llam, me inscrib y al da siguiente ya estaba ah.
Qu opinas de eventos como Creanimax?
Cuando empec a hacer animacin, hace quince aos, haba dos
personas a quin preguntarles, y no te decan nada. Por tanto, esto
representa un gran crecimiento, relacionado con la tecnologa que
nos acerca las herramientas; tiene que ver tambin con el software,
que nos permite ahora, hacer cosas de gran calidad y en un tiempo
aceptable. Antes, slo Disney haca pelculas, y usaban novecientas
personas para hacer un largometraje. Hoy en da, con cincuenta per-
sonas lo puedes hacer, y eso es gracias a la tecnologa. Hay como un
boom en todo el mundo, justamente por eso, porque hay un sinfn
de plataformas para hacer animacin 3D.
Hacer stop motion es laborioso. Cunto tiempo tardas?
Normalmente en un segundo de animacin me tardo una hora. Si es
complicado y a 24 cuadros por segundo, me tardo hasta cinco horas
por segundo. Es que tienes que mezclar escultura, actuacin y todo. Es
un proceso muy artesanal, extremadamente artesanal, de hecho, es la
tcnica de animacin ms cara y lenta de todas. Adems hay que tomar
en cuenta todo el tiempo previo, hay que hacer los personajes, las ma-
quetas, iluminar, todo lleva consigo una preproduccin bastante larga.
Qu tipo de software utilizas?
La verdad es que utilizo softwares diferentes, pero para stop mo-
tion, utilizo Adobe Premiere o Final Cut para hacer un animatic, que
es algo parecido a una maqueta que te permite ver cmo ser tu
proyecto. La animacin hay que planearla siempre y mucho, sea la
tcnica que vayas a usar, siempre hay un trabajo de trazo a lpiz, de
story board, y luego un sistema de edicin no lineal para armar tu
maqueta. Despus, para animar stop motion, utilizo un software que
se llama Frame Thief, que graba cuadro por cuadro, es muy sencillo
porque grabas desde tu cmara, mientras ves cmo corre la anima-
cin. Todas son herramientas muy buenas que permiten previsua-
lizar el avance de tu animacin. Antes no tenamos nada de esto,
y era completamente a ciegas, animabas y despus tardabas otros
dos das editando cuadro por cuadro, era hasta entonces cuando
podas ver cmo se vea. Ahora lo puedes ver al instante. Tambin
hacemos animacin en Flash, por ejemplo, Poncho Baln. Usamos
tambin software de animacin 3D, tanto Maya como 3ds Studio
Max y claro, software como Photoshop que es bsico y Word para
escribir, que es el primer paso. Digamos que la computadora es una
parte fundamental.
Cmo ves la industria de animacin en Mxico?
En Mxico hay mucho talento, todava es una materia pendiente,
pero puede llegar a ser una gran industria, representa ingresos im-
portantes para Estados Unidos y Canad, as como para muchos pa-
ses asiticos. Yo creo que podemos ser muy buenos maquiladores
a un costo relativamente bajo, sper competitivos con imagen, por
ejemplo, pero adems, podemos generar propiedades, proyectos.
Aunque quiz, el principal problema aqu en Mxico, son los anima-
dores. No encontramos animadores, porque no hay, todava no estn
listos, la gente est aprendiendo por su cuenta y eso lleva mucho
tiempo. Y es que si te preguntas: qu va primero?, es todo, las es-
cuelas, los proyectos, las empresas, todo va de la mano.
Alguna vez te ha cruzado por la mente desarrollar videojuegos?
Totalmente, por supuesto, con Poncho Baln ya estoy en plticas
con gente de aqu (Creanimax) para hacer un juego. Me parece mag-
nfco que podamos encontrarnos, y veamos en conjunto todas las
posibilidades que tenemos. Porque quiz t quieras desarrollar un
videojuego basado en un personaje que nadie conoce, y eso te di-
fculte darlo a conocer, pero si yo tengo un personaje, que a parte
estoy lanzando, y tengo grandes planes para l, de pronto podemos
lanzar un juego, es decir, sumamos esfuerzos.
Ren Castillo
22
ENE-FEB 2007 www.softwareguru.com.mx
Cmo surge Immersion Games?
Hace cuatro aos decidimos fundar nuestra compaa,
queramos hacer videojuegos, pero no tenamos pre-
supuesto para hacerlo ni siquiera para pagar el pri-
mer mes de nuestros salarios, as que decidimos ex-
plorar otras reas relacionadas tambin con grfcos
3D, pero orientadas hacia desarrollo de soluciones de
seguridad, de arquitectura, etctera. As nos mantuvi-
mos durante mucho tiempo, viviendo de regatearle a los
clientes, eso nos cans, nos aburri, pero fue lo que nos
permiti ir creciendo poco a poco, y entonces decidimos
arriesgarlo todo y desarrollar videojuegos.
Cmo captaron la atencin de inversionistas? Porque
desarrollar un videojuego requiere capital y proyec-
cin para ser exitoso.
Se dio la oportunidad de que unos inversionistas me-
tieran su dinero en nuestra compaa, pero nunca se
atrevieron, porque siempre nos vieron como un grupo
de jvenes, pensaban que podan perder su dinero fcilmen-
te. Mientras eso suceda, contactamos con una compaa
norteamericana, porque pensbamos que con aquel dine-
ro, compraramos tecnologa de otros para hacer nuestros
videojuegos, pero eso nunca sucedi. Un da, producto de
nuestra desesperacin hablamos con dicha empresa con la
propuesta de hacer mejoras en su tecnologa, a cambio de su
cdigo fuente, y el uso de esa tecnologa. Llevamos ms de
un ao y medio cerrando el negocio, pensamos que todo se-
ra de un mes para otro, pero por suerte, al leer las propues-
tas tcnicas de lo que ambos queramos hacer, aceptaron, y
no slo eso, sino que disminuyeron el valor de la tecnologa
como en un 70%. Despus nos pidieron imgenes de lo que
estbamos haciendo, cuando las vieron, nos ofrecieron su
tecnologa a cambio de regalas cuando el juego estuviera
terminado. Luego de un par de semanas trabajando echaron
un vistazo a lo que estbamos haciendo, se dieron cuenta
que s cumplamos lo prometido, as que nos ofrecieron hacer
un juego en conjunto, y de ah arrancamos.
Cmo dieron a conocer su trabajo en la industria?
En uno de los eventos ms importantes de la industria de vi-
deojuegos, el GDC (Game Developers Conference), cuando lo
hicimos, causamos un gran impacto, e incluso, compaas de
talla mundial como Epic Games, duea de uno de los mejo-
res motores grfcos llamado Unreal Engine 3, al ver nuestro
trabajo, decidi que usramos su tecnologa para desarrollar
el videojuego. Despus conseguimos un publisher que nos f-
nanciara, y ahora estamos por terminar nuestros dos primeros
juegos: Monster Madness y CellFactor, uno lo terminamos en
diciembre, el otro en febrero.
Cul es tu apreciacin de Latinoamrica en el mundo
del desarrollo de videojuegos?
Desde el punto de vista, ya no tanto de lo artstico o tcnico,
sino desde el punto de vista productivo, y en muchas con-
ferencias he dicho lo mismo, el hecho de que estemos en
pases en vas de desarrollo, ha provocado que aprendamos
a utilizar muy bien los poco recursos con los que contamos.
Queremos dar la oportunidad que nunca tuvimos. Sabemos
que en Latinoamrica hay muchos entusiastas, hay mucha
gente que quiere hacer videojuegos, pero desafortunada-
mente, dependiendo de dnde quieras competir, los niveles
que se necesitan de conocimiento son bastante fuertes, y
queremos que la gente se entere de eso, que hay una gran
oportunidad, pero que no se puede aprovechar si no has
desarrollado el conocimiento sufciente, que por el hecho
de que a ti te gusten los videojuegos o tengas una gran vi-
sin alrededor del tema o tengas el empuje o el dinero, no
signifca que seas la persona indicada para hacerlo. El truco
est en que armes equipo de gente muy talentosa y que si
t eres programador, y has programado algo para videojue-
gos, pero sabes que a tu nivel le falta, y terminas encontrn-
dote con otra persona que hace cosas en un fn de semana
y todas son geniales, pues hazte a un lado, mantente en el
equipo, pero deja que sea l el que lo haga, y lo mismo en
la parte artstica.
Tengo entendido que quieren impulsar la industria en
Latinoamrica, platcanos un poco al respecto.
Queremos trabajar muy fuerte para desarrollar la indus-
tria en Latinoamrica. Hemos encontrado en NAGA (Na-
tional Gamers Association) un punto de apoyo para crear
una serie de programas, que por ejemplo, nos permitan
compartir todo el conocimiento que hemos adquirido.
Desarrollar programas de capacitacin, pero no slo eso,
tambin hacer que la industria mundial comience a diri-
gir la mirada hacia nosotros; que nos vean como un mer-
cado interesante.
ERNESTO GLVEZ
Nacido, radicado en Colombia e ingeniero de profesin, es el CEO y socio fundador de
Immersion Games, junto a otras tres personas. Est encargado de la ingeniera de pro-
duccin que est relacionada con el uso de las mquinas 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 fnal puedes terminar en cualquier rea.
www.immersionsoftware.com www.cellfactorgame.com www.monster-madness.com
E
r
n
e
s
t
o

G

l
v
e
z
// ENTREVISTA
24
ENE-FEB 2007 www.softwareguru.com.mx
D
e
s
a
r
r
o
l
l
o

d
e

V
i
d
e
o
j
u
e
g
o
s

P
o
r D

n
d
e
E
m
p
e
z
a
r?
P
o
r Jo
el V
illag
ran
a
D
e
sd
e
n
i
o
sie
m
p
re
m
e
h
a
n
g
u
sta
d
o
lo
s v
id
e
o
ju
e
g
o
s, y
sie
m
p
re
h
a
b
a

te
n
id
o
c
u
rio
sid
a
d
d
e
c

m
o
e
s e
l p
ro
c
e
so
p
a
ra
c
re
a
r u
n
o
. F
in
a
lm
e
n
te
,
h
a
c
e
6
a

o
s, d
e
c
id
q
u
e
e
ra
tie
m
p
o
d
e
a
p
re
n
d
e
r a
d
e
sa
rro
lla
rlo
s; d
e
sp
u

s d
e

id
e
a
liz
a
r p
o
r u
n
o
s m
in
u
to
s u
n
v
id
e
o
ju
e
g
o
p
e
rfe
c
to
c
o
m
o
p
rim
e
r p
ro
y
e
c
to
,
tu
v
e
q
u
e
v
o
lv
e
r a
la
re
a
lid
a
d
:
Y
p
o
r d

n
d
e
e
m
p
ie
zo
?
E
n
to
n
c
e
s c
o
m
e
n
c


a
b
u
sc
a
r in
fo
rm
a
c
i
n
e
n
In
te
rn
e
t, q
u
e
e
n
a
q
u
e
l e
n
to
n
c
e
s e
ra
m
u
y
e
sc
a
sa
;
p
a
re
c
a
q
u
e
m
is d
u
d
a
s a
u
m
e
n
ta
b
a
n
e
n
lu
g
a
r d
e
d
ism
in
u
ir:
Q
u

le
n
g
u
a
je

d
e
p
ro
g
ra
m
a
c
i
n
se
u
tiliz
a
?, se
u
sa
a
lg

n
c
o
m
p
ila
d
o
r e
n
e
sp
e
c
ia
l?, q
u


e
stru
c
tu
ra
tie
n
e
u
n
ju
e
g
o
?, q
u

n
e
c
e
sito
a
p
re
n
d
e
r?, c

m
o
se
h
a
c
e
n
lo
s ju
e
-
g
o
s p
a
ra
la
s c
o
n
so
la
s?
E
ra
n
a
lg
u
n
a
s d
e
la
s m
u
c
h
a
s p
re
g
u
n
ta
s q
u
e
te
n
a
.
www.softwareguru.com.mx
25
ENE-FEB 2007
Muy rpido me di cuenta de 3 cosas: la pri-
mera es que no exista algn libro ni tutorial
que ensee todo lo que se necesita saber; la
segunda es que toda la informacin existen-
te estaba en ingls (y eso no ha cambiado);
y la tercera, es que ni siquiera ah me podra
escapar de las matemticas la direccin en
la que se mueve un objeto, determinar si est
dentro del rango de visin de la cmara vir-
tual, determinar si un vehculo choc contra
un edifcio; todo eso requiere matemticas.
Desafortunadamente, en Mxico todava no
existe una industria de desarrollo de video-
juegos como tal, y es una lstima, porque es
una industria de billones de dlares. Ya exis-
ten carreras de desarrollo de videojuegos en
universidades internacionales, pero en mu-
chas universidades de nuestro pas ni siquie-
ra se toma en serio la materia de grfcas por
computadora, que es la base de todo.
Esto en gran parte se debe a falta de infor-
macin, muchas personas creen que es lo
mismo jugarlos que desarrollarlos. Un juego
2D puede ser fcil, pero uno 3D es algo muy
diferente y se necesitan muchas personas
trabajando en conjunto para crearlo. No es
que una sola persona no pueda, pero se tar-
dara mucho ms tiempo. Un juego comer-
cial tarda entre 1.5 y 3 aos para ser desa-
rrollado, con un equipo de 25 personas en
promedio. Un juego 3D generalmente tiene
programacin orientada a objetos, clculos
trigonomtricos y de lgebra lineal que se
ejecutan durante todo el juego, estructuras
de datos especializadas, y tambin puede
existir una red neuronal para el manejo de
la inteligencia artifcial, as como algo de
teora de autmatas fnitos y teora de gra-
fos aplicada, entre muchas otras cosas. Y
an as, hay maestros de universidades que
cuando se les presenta un juego como una
idea para un proyecto fnal, solo dicen en
tono despectivo otro jueguito?
Tuve la oportunidad de participar en el Festi-
val de Desarrollo de Videojuegos Creanimax
2006, y me di cuenta que por fn se estn
haciendo esfuerzos para entrarle a esta in-
dustria. Me di cuenta de que hay algunas
compaas interesadas en desarrollar jue-
gos, pero falta apoyo y habilidades tcnicas.
Tambin me enter de un par de universida-
des en Guadalajara que estn incorporando
una carrera de animacin y arte digital a su
oferta acadmica. Hay muchas personas in-
volucradas ya en el modelado y animacin
3D y son buenos. Entonces no vamos tan
mal, slo falta ponernos las pilas, organizar-
nos y darle importancia tambin a la parte de
la programacin.
As que el objetivo de este artculo, es tra-
tar de dar una pequea orientacin para
aquellos que desean empezar a desarrollar
videojuegos y tengan preguntas parecidas
a las que tena yo cuando empec.
Qu se necesita saber para
desarrollar videojuegos?
Programacin. Lo primero que se necesita es
saber programar en algn lenguaje orienta-
do a objetos, yo en lo personal uso C++, pero
tambin se puede utilizar C#, Delphi, Java,
etctera. En cuanto a compiladores, no hay
gran diferencia, se pueden utilizar el Visual
C++ 2005 Express Edition de Microsoft o el
C++ de Borland.
Game Engines. Los juegos generalmente
tienen mdulos clave para manejar tareas
como mostrar grfcas, manejar recursos,
interpretar y ejecutar scripts, reproducir
efectos de sonido, manejar la inteligencia
artifcial, manejar el input del usuario. Estos
mdulos clave, junto con otros, forman de
manera colectiva lo que se llama un Game
Engine, un producto que ofrece todas estas
caractersticas, y hay quienes las usan para
ahorrarse algo de trabajo al programar. De
hecho, los estudios dedicados a los vide-
ojuegos, utilizan Game Engines comerciales
o desarrolladas por ellos mismos. Utilizar un
Game Engine cuando se est iniciando en la
programacin de videojuegos, podra ser una
limitante hasta cierto punto, porque primero
se tendra que estudiar la documentacin de
sta para saber utilizarla y si no se tienen los
fundamentos tericos sufcientes, cuando se
quiera modifcar una parte del engine para
adaptarla al juego deseado, ser mucho ms
difcil. Existe una gran variedad de engines,
desde algunas gratuitas y/o, open source
como Irrlicht, hasta otras comerciales como
el Unreal Engine 3, cuyo licenciamiento pue-
de rebasar los cien mil dlares.
Matemticas. Es deseable tener cono-
cimientos generales de lgebra lineal y
trigonometra, sobre todo para el rea de
programacin de grfcas. Si no se tie-
nen estos conocimientos, se tendrn que
aprender al mismo tiempo que se hace con
la teora y programacin de grfcas.
Qu se necesita aprender para
desarrollar videojuegos?
Esta pregunta no es fcil de contestar, so-
bre todo porque existen diferentes reas
dentro de la programacin de videojue-
gos: grfcas, redes, inteligencia artifcial,
sonido, lgica principal.
El rea en el que est centrado este artculo
es en la de grfcas, y para esta rea se nece-
sitan aprender bsicamente dos cosas:
Teora de grfcas: involucra aprender las
bases de los sistemas de coordenadas 2D
D
e
sd
e
n
i
o
sie
m
p
re
m
e
h
a
n
g
u
sta
d
o
lo
s v
id
e
o
ju
e
g
o
s, y
sie
m
p
re
h
a
b
a

te
n
id
o
c
u
rio
sid
a
d
d
e
c

m
o
e
s e
l p
ro
c
e
so
p
a
ra
c
re
a
r u
n
o
. F
in
a
lm
e
n
te
,
h
a
c
e
6
a

o
s, d
e
c
id
q
u
e
e
ra
tie
m
p
o
d
e
a
p
re
n
d
e
r a
d
e
sa
rro
lla
rlo
s; d
e
sp
u

s d
e

id
e
a
liz
a
r p
o
r u
n
o
s m
in
u
to
s u
n
v
id
e
o
ju
e
g
o
p
e
rfe
c
to
c
o
m
o
p
rim
e
r p
ro
y
e
c
to
,
tu
v
e
q
u
e
v
o
lv
e
r a
la
re
a
lid
a
d
:
Y
p
o
r d

n
d
e
e
m
p
ie
zo
?
E
n
to
n
c
e
s c
o
m
e
n
c


a
b
u
sc
a
r in
fo
rm
a
c
i
n
e
n
In
te
rn
e
t, q
u
e
e
n
a
q
u
e
l e
n
to
n
c
e
s e
ra
m
u
y
e
sc
a
sa
;
p
a
re
c
a
q
u
e
m
is d
u
d
a
s a
u
m
e
n
ta
b
a
n
e
n
lu
g
a
r d
e
d
ism
in
u
ir:
Q
u

le
n
g
u
a
je

d
e
p
ro
g
ra
m
a
c
i
n
se
u
tiliz
a
?, se
u
sa
a
lg

n
c
o
m
p
ila
d
o
r e
n
e
sp
e
c
ia
l?, q
u


e
stru
c
tu
ra
tie
n
e
u
n
ju
e
g
o
?, q
u

n
e
c
e
sito
a
p
re
n
d
e
r?, c

m
o
se
h
a
c
e
n
lo
s ju
e
-
g
o
s p
a
ra
la
s c
o
n
so
la
s?
E
ra
n
a
lg
u
n
a
s d
e
la
s m
u
c
h
a
s p
re
g
u
n
ta
s q
u
e
te
n
a
.
y 3D, las bases de los objetos 3D que son
representados como modelos poligonales
(vrtices, normales, caras, etctera); las
bses de la arquitectura grfca (diferentes
tipos de transformaciones y proyecciones);
las matemticas involucradas (vectores,
planos, matrices y todas sus operaciones
relacionadas). Diferentes modelos de ilumi-
nacin, mapeado de texturas, entre otras co-
sas. Es necesario tener estos conocimientos,
ya que se aplican a las APIs para programa-
cin grfca existentes y son necesarios para
explotar todo su potencial.
Una API para programacin de grfcas: que
es bsicamente una librera que usamos en
nuestro cdigo para poder mandar grfcas a
la pantalla, sin tener que accesar al hardware
directamente (en su lugar, los drivers se en-
cargan de procesar las peticiones hechas por
las APIs). Las dos APIs de grfcas ms usa-
das son OpenGL y Direct3D, y dado que los
resultados que se pueden obtener con ellas,
son, hasta cierto punto similares, la eleccin
de una u otra es cuestin personal.
Qu es DirectX?
DirectX es una serie de APIs de Microsoft para
manejo de grfcas, input del usuario, soni-
do, video, y funciones de redes que se pue-
den usar en aplicaciones de multimedia en
general, no solamente juegos. En versiones
anteriores de DirectX, las grfcas 2D y 3D
se manejaban con las APIs DirectDraw y Di-
rect3D, respectivamente. A partir de DirectX
8, stas se fusionaron en DirectX Graphics,
pero es mejor conocida como Direct3D.
Qu es OpenGL?
OpenGL es una API para el manejo de gr-
fcas exclusivamente, no tiene otro tipo de
funciones utilizadas en los juegos. OpenGL
es multiplataforma, lo que signifca que el
mismo cdigo puede correr en Windows,
Mac, X Window, con mnimas modifcacio-
nes. Esta es una de las ventajas que, puede
decirse, tiene con respecto a Direct3D, el
cual es exclusivamente para Windows.
Dado que OpenGL es multiplataforma, no inclu-
ye comandos para manejo de ventanas, porque
estos son diferentes en cada caso. Dependien-
do de la plataforma, hay mtodos para crear
una ventana con soporte para OpenGL. Para
agilizar o hacer ms fcil el manejo de ventanas.
Ya existen algunas libreras que se utilizan junto
con OpenGL, por ejemplo: SDL y GLUT.
OpenGL, a diferencia de DirectX, no se baja
como un paquete, de algn sitio de Internet,
ya que es implementado por los drivers. To-
das las mquinas con Windows 95 o posterior,
incluyen los drivers de OpenGL 1.1, aunque la
versin ms reciente de OpenGL es 2.0 Win-
dows Vista tendr los drivers de OpenGL 1.4.
Entonces, la versin de OpenGL que se tenga,
depende de dos cosas: la primera es nuestra
tarjeta de video no todas las tarjetas sopor-
tan las ltimas versiones de OpenGL , y la
segunda, es actualizar los drivers de nuestra
tarjeta de video para tener la versin ms re-
ciente que soporte la tarjeta.
Para utilizar OpenGL, es necesario confgurar
nuestro compilador para que pueda encontrar
la libreria (OpenGL32.lib) y los archivos de
encabezado (gl.h, glu.h, glaux.h) de OpenGL.
As mismo, necesitamos incluir los archivos
de encabezado en los archivos de cdigo
fuente donde se usen funciones de OpenGL.
Cmo puedo programar
videojuegos para Xbox360,
PlayStation 3, GameCube?
En el caso de Xbox360, para desa-
rrollar un juego se necesita obtener
un Kit de Desarrollo, que consta de
una consola Xbox360 especial para
desarrollo, herramientas, SDKs, y do-
cumentacin. El desarrollo se hace
en una PC con Visual Studio o Co-
deWarrior por ejemplo. Dicha PC est
conectada a la consola especial de de-
sarrollo, generalmente por ethernet.
Una vez compilado el cdigo, ste se
pasa a la consola; la forma de cmo
hacerlo, depende de cada sistema. En
Xbox, se cuenta con unos plugins en
Visual Studio que copian los datos de
la PC al disco duro del Xbox, y despus
el Xbox monta el directorio que se co-
pi, como si fuera el disco duro inter-
no, para empezar a correr el juego.
Para obtener el kit de desarrollo, se nece-
sita ser un desarrollador registrado con
Microsoft, y los kits son muy caros. Aun-
que existe el XNA Game Studio Express,
ste, no es suficiente para hacer juegos
comerciales, en realidad, es un producto
dirigido ms para estudiantes y hobbyists.
Adems, para ser aceptado como desarro-
llador, se debe seguir un proceso que est
sujeto a aceptacin por parte de Microsoft.
Se puede encontrar ms informacin en:
www.xbox.com/en-us/dev/ default.htm
Otros fabricantes de consolas piden requisitos
adicionales. Por ejemplo, Nintendo pide que
se cuente con respaldo fnanciero de algn
distribuidor de juegos internacional. As que,
en general, para desarrollar un videojuego
para consolas, se necesita tener una compaa
establecida con presupuesto sufciente.
Si quieres aprender cmo es el desarrollo
para consolas, una muy recomendada para
empezar sera Gameboy Advance (GBA), ya
que es de las menos complejas. En el sitio
www.jharbour.com/gameboy/default.aspx
se encuentra gratuitamente el ebook Pro-
gramming The Nintendo Game Boy Advan-
ce, que nunca se public como libro debido
a cuestiones legales. En ste, se encuentra
informacin de cmo ejecutar nuestros pro-
26
ENE-FEB 2007 www.softwareguru.com.mx
pios juegos de GBA en una PC, usando un
emulador, as como informacin de cmo
correrlos en una consola GBAreal.
Referencias en lnea
Algunos links con mucha informacin son
los siguientes:
www.opengl.org El sitio ofcial de OpenGL,
tiene documentacin y foros de OpenGL para
principiantes y avanzados.
msdn.microsoft.com/library/en-us/directx9_
c/directx_sdk.asp Informacin de DirectX.
www.gamedev.net Un sitio con mucha docu-
mentacin de desarrollo de juegos en general y
foros para los diferentes aspectos del desarro-
llo.
www.gamasutra.com Un sitio donde se pue-
den encontrar las ms recientes noticias de
la industria de los videojuegos, pero tambin
cuenta con algo de informacin tcnica.
www.fipcode.com Un sitio que ya no se man-
tiene por sus creadores, pero tiene una extensa
coleccin de artculos, todava en lnea, relacio-
nados al desarrollo de videojuegos.
Qu libros me pueden servir?
La tabla en la parte superior de esta pgina
lista algunos libros que considero buenos
y que son tiles, independientemente del
nivel de conocimiento de programacin de
videojuegos que se tenga. Como ya lo haba
mencionado, hasta el momento, no s de al-
gun libro que ensee todo lo relacionado al
desarrollo de videojuegos, as que los cate-
goric en 6 grupos principales, y por razones
de espacio, slo menciono unos cuantos de
cada categora.
Qu tarjeta grfica me puede
servir para empezar?
El mercado de las tarjetas grfcas es domina-
do por dos compaas, ATI y NVIDIA. Las dos
ofrecen tarjetas grfcas de muy buena calidad
y de una gran variedad de precios, dependien-
do de la generacin de la tarjeta. Muchas ve-
ces, al ver las cajas de las tarjetas pueden sur-
gir ms preguntas, ya que la informacin que
tienen, puede parecer extraa. Por ejemplo, es
importante entender lo que son los Shaders.
Shaders: hasta hace algunos aos, se deca
que las tarjetas grfcas tenan una arqui-
tectura fja (Fixed-Function Pipeline) ya que
la informacin enviada desde la aplicacin,
siempre pasaba por las mismas operaciones
dentro de la tarjeta grfca. Esto ha cambia-
do, y actualmente las tarjetas grfcas tienen
una arquitectura programable.
Una arquitectura programable signifca que
desde la aplicacin, se le puede indicar a la
tarjeta grfca que ejecute ciertos programas
pequeos (llamados Shaders) ella misma, li-
berando al CPU completamente de ejecutar
esas funciones. Es por esto que las tarjetas
grfcas actuales, cuentan con su propia
memoria y procesador, conocido como GPU
(Graphics Processing Unit). Muchos de los
efectos visuales avanzados que vemos en
los juegos de hoy en da, son implementa-
dos por medio de Shaders.
Hace algunos aos, los Shaders eran escri-
tos en lenguaje ensamblador, por tal razn
no eran tan populares. Actualmente la mayo-
ra de los Shaders, son escritos en lenguajes
de alto nivel, muy parecidos a C, los tres
ms usados son: GLSL (especfco de Open-
GL); HLSL (especfco de DirectX) y Cg (pue-
de correr ya sea en OpenGL o DirectX).
Las tarjetas grfcas con arquitectura pro-
gramable tienen dos ncleos o procesadores
programables, uno se ejecuta a nivel de ob-
jetos y otro se ejecuta a nivel de pixeles. Los
Shaders que se pueden ejecutar en ellos, se
conocen como Vertex Shaders y Pixel Sha-
ders respectivamente (los ltimos tambin
se conocen como Fragment Shaders).
Las tarjetas grfcas con arquitectura pro-
gramable, tambin tienen soporte para la ar-
quitectura fja, y es decisin de la aplicacin,
utilizar una u otra arquitectura o incluso uti-
lizar las dos. Es por eso que muchas veces,
aunque tengamos un procesador avanzado,
si no tenemos una tarjeta grfca con arqui-
tectura programable como lo requieren algu-
nos juegos, no podremos ejecutarlos.
Tips generales
Es ms fcil empezar por 2D, y algunas co-
sas de 2D se aplican a 3D tambin.
Es ms sencillo aprender OpenGL que Di-
rectX (en mi opinin).
Jugar muchos juegos. Es la mejor manera
de sacar ideas para juegos nuevos.
Ayudar a otros. Tambin se aprende mucho
cuando se ensea.
Tratar de hacer un clon de algn juego 2D
sencillo (Tetris, Pong) y despus mejorarlo.
Para un juego 3D, es ms rpido desarro-
llarlo en equipo.
Tema Ttulo Autor
Matemticas/Fsica Mathematics for 3d Game Eric Lengyel
Programming and Computer Graphics
OpenGL OpenGL Programming Guide: OpenGL Architecture
The Ofcial Guide to Learning OpenGL Review Board
Beginning OpenGL Game Programming. Dave Astle y
Kevin Hawkins
More OpenGL Game Programming. Dave Astle
Grcas 3D Interactive Computer Graphics: Edward Angel
A Top-Down Approach using OpenGL.
Real-Time Rendering Tomas Akenine-Moller
y Eric Haines
Desarrollo de Juegos Game Programming Gems. Mark DeLoura
(Serie de 6 libros hasta el momento). (Editor)
Core Techniques and Algorithms in Daniel Sanchez-Crespo
Game Programming
Inteligencia Articial AI Game Programming Wisdom 3 Steve Rabin
Modelado Modeling a Character in 3DS Max Paul Steed
www.softwareguru.com.mx
27
ENE-FEB 2007
Conclusin
El tema de desarrollo de videojuegos
es muy extenso, pero espero haber
respondido las preguntas bsicas
acerca de cmo empezar. El siguiente
artculo tiene informacin mas espe-
cfca en cuanto a la estructura de un
juego. Si dej alguna pregunta sin
responder, me pueden contactar en
joel.villagrana@gmail.com y tratar
de responder lo ms pronto posible.
Estructura bsica de un juego
Una parte de inicializacin - Aqu se crea
nuestra ventana principal, se cargan todos
los archivos que necesita el juego (modelos
3D, imgenes, sonidos) y se crean e inicia-
lizan los diferentes subsistemas del juego
(grfcas, input del usuario, inteligencia ar-
tifcial, etctera).
Un ciclo principal - Este ciclo principal eje-
cuta la lgica del juego una y otra vez, hasta
que el usuario sale del juego. La lgica bsi-
ca dentro de este ciclo es:

Actualizacin - Por ejemplo la posicin
de un enemigo, verificar si el usuario ha
presionado algun botn, actualizar la po-
sicin de un cohete se dispar, verificar si
un vehculo ha colisionado contra algn
objeto del mundo.
Render Es la parte ms importante, es decir,
el mandar todas las grfcas a la pantalla.
Este ciclo se ejecuta muchas veces por se-
gundo, y cada ejecucin se conoce como Fra-
me. Una medida del rendimiento de nuestro
juego, es indicar cuantos FPS (frames-per-
second) ejecuta. Qu tan rpido corre un
juego, depende de muchos factores, princi-
palmente aspectos de hardware como proce-
sador, memoria, tarjeta grfca; aunque tam-
bin, infuyen aspectos de nuestra lgica de
programacin. Por lo general, en el desarrollo
de un juego se intenta tener por lo menos
60fps, para que el movimiento de los objetos
sea contnuo.
Una parte de liberacin de recursos Eje-
cutada al fnalizar el juego, aqu se libera la
memoria obtenida de manera dinmica en
todos los subsistemas del juego.
Conceptos bsicos
Defnamos algunos conceptos bsicos que
nos ayudarn a entender el cdigo de nues-
tro juego 2D:
Framebuffer. OpenGL cuenta con una co-
leccin de bfers donde se almacena infor-
macin que se presentar en la pantalla. El
bfer principal, es el bfer de color, que es
un arreglo bidimensional que almacena el
color fnal de los pixeles. Tambin existe el
bfer de profundidad (Z-buffer), que almace-
na la informacin de profundidad (respecto
a la cmara virtual) de cada pixel generado
cuando se hacer un render de un objeto,
esto sirve para determinar si cada pixel del
objeto es visible al hacer la comparacin de
los pixeles generados contra la informacin
que ya se tiene en el Z-Buffer.
En las aplicaciones grfcas se tienen cuan-
do mnos dos framebuffers, uno para mos-
trar en la pantalla y otro para hacer un ren-
der en l, mientras el otro, se muestra en la
pantalla. Al terminar de hacer un render en
un bfer, se hace un intercambio, el bfer
en el que se hizo el render es mostrado en
la pantalla, mientras se hace render en el
otro. Es necesario usar dos bfers, ya que
de lo contrario, tendramos un efecto visual
desagradable al hacer render sobre el bfer
en pantalla.
Render. Es el proceso de tomar una repre-
sentacin matemtica tridimensional de un
objeto y presentarlo como una imagen bidi-
mensional en la pantalla. Para este proceso
se toma toda la informacin relacionada al
objeto como color, posicin y textura.
Proyecciones. Las 3 etapas conceptuales
de la arquitectura grfca son: Aplicacin,
Geometra, y Rasterizacin. En la etapa de
Geometra, se toman los objetos y sus da-
tos asociados y se proyectan en la panta-
lla. Hay dos formas principales de hacerlo:
para 2D se usa la proyeccin ortogonal, en
28
ENE-FEB 2007 www.softwareguru.com.mx
D
esarrollar un juego de video en 2D con OpenGL no es tan complica-
do como podras pensar. A travs de una serie de artculos, mostrar
cmo se desarrolla un juego sencillo, que sirva para dar una idea clara de
las funciones y estructura bsica de un juego. Por razones de espacio en la
revista, en esta primera parte slo introducir algunos conceptos bsicos
y de conguracin; y en prximas entregas continuar con los diferentes
aspectos a resolver, en el desarrollo de un juego 2D.
D
e
s
a
r
r
o
l
l
o

d
e

u
n

J
u
e
g
o

2
D
C
o
n
c
e
p
to
s
y
C
o
n
fig
u
ra
c
i
n
P
o
r Jo
el V
illag
ran
a
sta, la apariencia de los objetos es la mis-
ma, independientemente de la distancia
desde donde se vean. Para 3D se utiliza la
proyeccin en perspectiva; donde la apa-
riencia de los objetos cambia, dependiendo
de la distancia con respecto a la cmara vir-
tual, que es como percibimos los objetos
en la vida real.
Transformaciones. En un juego, el movi-
miento de los objetos se realiza por medio
de transformaciones. Trasladar un proyectil
de una posicin a otra, rotar la cmara vir-
tual, hacer ms grande un objeto, son ejem-
plos de transformaciones.
Matrices. Para almacenar informacin acer-
ca del tipo de proyeccin usada en un jue-
go, e informacin de las transformaciones
y parmetros actuales de la cmara virtual,
OpenGL utiliza la Projection Matrix y la Mo-
delView Matrix respectivamente.
Viewport. Podemos defnir un rea dentro
de una ventana, a la cual va a afectar nues-
tro render. Generalmente, el viewport tiene
el mismo tamao de la ventana, pero si qui-
siramos hacer una aplicacin que muestre
nuestros objetos desde varias perspectivas
(como lo hace 3dsmax por ejemplo) tendra-
mos que defnir diferentes viewports dentro
de nuestra ventana.
Geometra. Todos los objetos que vemos en
un juego 3D estn compuestos por peque-
os tringulos, que al ser representados en
conjunto, determinan la forma del objeto.
Las formas bsicas que se mandan a la tarje-
ta grfca son cuadrados, tringulos, lneas,
y puntos. Cada una de estas primitivas tiene
informacin asociada como vrtices, norma-
les, y coordenadas de textura.
Texturas. Son bsicamente, imgenes que
van a ser pegadas a nuestra geometra
para darle la apariencia final. Una restric-
cin importante para las texturas de un jue-
go, es que su tamao debe ser potencia de
2, por ejemplo 128x128, 256x256, 512x512
pixeles. Para determinar qu parte de la
textura se pegar en cada tringulo de la
geometra, se utilizan las coordenadas de
textura. Al hacer el render, se deben pasar
las coordenadas de textura por cada vrti-
ce de la geometra. OpenGL funciona como
una mquina de estados, es decir, guarda
la informacin actual de las propiedades
de los objetos hasta que se le indican nue-
vas propiedades.
GL Utility Toolkit (GLUT)
GLUT es una librera que simplifca la creacin
y manejo de ventanas con soporte para Open-
GL. En GLUT podemos defnir nuestras call-
back functions, que son las funciones llama-
das automticamente cuando ocurren ciertos
eventos como cuando se cambia de tamao
la ventana, cuando se hace clic con el mouse
o cuando se recibe input del teclado.
GLUT se puede descargar en www.xmission.
com/~nate/glut.html, y si quieres confgu-
rar Visual Studio para usar GLUT, puedes
encontrar una gua para esto en csf11.acs.
uwosh.edu/cs371/visualstudio/
El siguiente cdigo es un ejemplo de un es-
queleto que inicializa OpenGL y GLUT.
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h> // funciones de GLUT y OpenGL
/* Declaracion de callback functions, etc */
void SG_DisplayFunction();
void SG_KeyboardFunction( unsigned char key, int x, int y );
void SG_SizeFunction( int width, int height );
void SG_MouseFunction( int button, int state, int x, int y );
void InitializeProjection( int width, int height );
void InitializeOpenGL();
/* ... */
void InitializeOpenGL()
{
// Color que se utilizar cuando se limpie la pantalla (RGBA)
glClearColor( 0.0f, 0.4f, 0.9f, 1.0f );
// Parmetros para el uso del Z-buffer
glClearDepth( 1.0f );
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
glShadeModel( GL_SMOOTH ); // Tipo de shading
InitializeProjection( 800, 600 ); // Proyeccin
//...
}
void InitializeProjection( int width, int height )
{
glViewport( 0, 0, width, height ); // Viewport
glMatrixMode( GL_PROJECTION ); // Proyeccin
glLoadIdentity();
glOrtho( 0, width, 0, height, -10, 10 ); // 2D
/* Cambiar para poder procesar las transformaciones de la
camara virtual */
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
}
void SG_DisplayFunction()
{
// Limpia el bufer de color y el Z-buffer
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
//...
glFlush(); // Termina los comandos de render pendientes
glutSwapBuffers(); // Intercambia el front y back buffer
}
void SG_SizeFunction( int width, int height )
{
InitializeProjection( width, height );
}
void SG_KeyboardFunction( unsigned char key, int x, int y ){ /*...*/ }
void SG_MouseFunction( int button, int state, int x, int y ){ /*...*/ }
int main( int argc, char** argv )
{
/* Cdigo de inicializacin de GLUT */
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH |
GLUT_RGBA );
glutInitWindowPosition( 0, 0 );
glutInitWindowSize( 800, 600 );
glutInit( &argc, argv );
/* Creacin de la ventana */
glutCreateWindow(Juego 2D SG 2007);
/* Callback Functions */
// Funcin llamada cada vez que el usuario cambia
// de tamao la ventana
glutReshapeFunc( SG_SizeFunction );
// Funcin llamada cuando la ventana necesita ser redibujada
glutDisplayFunc( SG_DisplayFunction );
// Funcin llamada cada que nuestra aplicacin esta libre
glutIdleFunc( SG_DisplayFunction );
// Funcin llamada cada que se recibe input del teclado
glutKeyboardFunc( SG_KeyboardFunction );
// Funcin llamada cada que se recibe input del mouse
glutMouseFunc( SG_MouseFunction );
// Inicializacin de OpenGL
InitializeOpenGL();
// El loop principal de la aplicacin
glutMainLoop();
return 0;
}
Como se puede observar, el uso de GLUT
permite simplifcar a unas cuantas lneas,
un cdigo de inicializacin que podra to-
mar el doble de lneas o ms, usando la API
de Windows.
Joel Villagrana, egresado de la Universidad de Guadalajara como Ingeniero en Computacin, ha estado en contacto con la programacin de videojuegos des-
de hace 4 aos cuando estudi una maestra en Ambientes Virtuales en Inglaterra. Actualmente trabaja para IBM, pero en su tiempo libre sigue aprendiendo
las nuevas tcnicas de grficas 3D. Particip en el libro More OpenGL Game Programming, publicado en 2005. Recientemente particip en Creanimax 2006.
La informacin de estos artculos representa su punto de vista y no necesariamente el de IBM Corporation. joel.villagrana@gmail.com
www.softwareguru.com.mx
29
ENE-FEB 2007
Conclusin
En esta primera parte, revisamos los
conceptos bsicos para arrancar con el
desarrollo de nuestro juego. En entre-
gas posteriores veremos cmo crear el
mundo grfco de nuestro juego, mo-
ver los objetos, detectar colisiones,
reproducir sonidos, y muchos otros
aspectos involucrados en el desarrollo
de un juego. Hasta entonces!
Con historias as, es que surge la industria de
los videojuegos, y precisamente este tipo de
juegos simples, pero contagiosos, se conocen
actualmente como juegos ocasionales o casual
gaming. Lo interesante de dicha tendencia en
videojuegos, no es tanto la capacidad de po-
derlos jugar una y otra vez, sino que adems,
puedes disfrutarlos en diferentes dispositivos y
competir contra diferentes adversarios en lnea.
En este sentido, el Xbox 360 abri un mercado
muy interesante a travs de su Xbox Live, con el
que los usuarios pueden descargar de Internet
contenidos y juegos. Sin embargo, esto presen-
t dos problemas principales; el primero es que,
para desarrollar juegos para diferentes platafor-
mas (por ejemplo, Xbox y PC), se necesitaban
bases de cdigo diferentes e independientes.
El segundo problema, es que la capacidad de
desarrollar juegos para consolas slo estaba
disponible para las grandes casas desarrollado-
ras de juegos, utilizando kits de desarrollo caros
y con disponibilidad limitada. Esto eliminaba la
posibilidad de que un desarrolaldor casual pu-
diera hacer un juego para Xbox, por ejemplo.
Para resolver tales problemas, se cre XNA.
XNA es un framework basado en .NET, que
facilita el desarrollo de videojuegos y permi-
te usar una misma base de cdigo para tanto
plataforma Xbox como Windows.
Para desarrollar juegos basados en el fra-
mework XNA, se utiliza XNA Game Studio,
que es un ambiente de desarrollo basado en
Visual Studio C#. XNA Game Studio estar
disponible en dos versiones:
XNA Game Studio Express. Versin gratuita
basada en Visual Studio Express C# dirigida
a los desarrolladores casuales o por hobby.
Actualmente est disponible como beta, y en
cualquier momento se liberar la versin fnal.
XNA Game Studio Professional. Dirigido a
profesionales que crean juegos para comer-
cializar. Se espera que sea lanzado en el se-
gundo semestre de 2007.
Cuando ests desarrollando un videojuego,
lo ms complejo se encuentra en generar el
cdigo, que se va a encargar de operar las
controladoras de videos, las interfaces de
entrada o controles, los eventos a los que
Figura 1. Aqu se ilustran las capas que componen el XNA Framework.
C
u
a
n
d
o
e
sta
b
a
e
n
la
se
c
u
n
d
a
ria
, re
c
u
e
rd
o
m
u
y
b
ie
n
q
u
e
m
e
e
n
c
a
n
ta
b
a

p
a
sa
r h
o
ra
s ju
g
a
n
d
o
c
o
n
la
s m
a
q
u
in
ita
s. P
a
ra
m
, e
ra
fe
n
o
m
e
n
a
l v
e
r a

P
a
c
-M
a
n
c
o
rrie
n
d
o
p
a
ra
n
o
se
r a
lc
a
n
z
a
d
o
p
o
r lo
s fa
n
ta
sm
a
s, o
ju
g
a
r a
d
e
s-
tru
ir lo
s a
ste
ro
id
e
s q
u
e
e
x
p
lo
ta
b
a
n
e
n
p
e
d
a
z
o
s m

s p
e
q
u
e

o
s.
X
N
A
D
e
s
a
rro
llo
d
e
J
u
e
g
o
s
a
l A
lc
a
n
c
e
d
e
T
o
d
o
s
P
o
r Jaim
e S
n
ch
ez
30
ENE-FEB 2007 www.softwareguru.com.mx
debe de responder, etctera. Toda esta l-
gica, la administra XNA, de tal manera que,
es mucho ms fcil comenzar a desarrollar
tu videojuego usando las interfaces que te
provee, adems, cuando lo instalas, vienen
pre cargadas una serie de plantillas que te
permiten comenzar a crear tu juego en me-
nos de 5 minutos.
Capas de XNA
Ahora, ya que entendimos qu onda con XNA,
vamos a verlo un poco ms a detalle. El frame-
work est organizado en 4 capas orientadas a
diferentes propsitos:
La capa base del framework XNA es la capa
denominada de Plataforma, que es donde se
maneja toda la lgica de bajo nivel, por ejemplo
lo que es Direct 3D, XACT, etctera. Digamos
que es como el cerebro de XNA.
Encima de la capa de plataforma se encuen-
tra la del framework bsico, o central. Aqu es
donde se procesa la informacin general del
videojuego, es decir, el audio, los procesamien-
tos matemticos, almacenamiento, etctera.
Para facilitar el desarrollo de los juegos, se
dise un conjunto de interfaces que forman la
capa denominada, framework extendido.
La ltima capa es la de juego, que es donde
se lleva toda la lgica como tal. Lo interesante
es que t puedes generar componentes que
permitan que los dems puedan acceder a
tu juego y confgurar cmo se desarrolla.
Por ejemplo, podras hacer una interfaz
para que pudieran descargar nuevas naves
espaciales, o en un ambiente un poco ms
comercial, podras vender espacio publicita-
rio en tu videojuego. Imagina que pudieras
rentarle a una compaa de refrescos, un es-
pacio para que publiciten sus productos, y
al trmino del periodo, venderle ese mismo
espacio a una compaa de automviles, y lo
nico que cambiara en tu juego, es la mane-
ra en la que se consume dicho componente.
Sera genial, no?
Para dar inicio
Ya que conoces cmo est diseada a gran
escala la arquitectura de XNA, muy segura-
mente tu siguiente pregunta sera: Cmo lo
empiezo a utilizar?
Lo primero que tienes que hacer es descar-
gar Visual Studio Express C#. Lo puedes
encontrar en el sitio msdn.microsoft.com/
vstudio/express/visualcsharp. Una vez que
instales C# Express necesitas descargar el
Game Studio Express de XNA, desde el sitio
msdn.microsoft.com/directx/xna/gse.
Una vez que instalaste los programas, estars
listo para comenzar a desarrollar tu juego. Te
recomiendo que para comenzar te bases en
alguna de las plantillas de videojuegos que ya
vienen instaladas, esto te va a permitir enten-
der cmo est estructurado el videojuego.
Lo importante, es que sepas que, generar un
videojuego, no es cosa sencilla, ya que tie-
nes que disear la historia del juego, todo
el arte, las animaciones, objetos en 3D, el
audio, y ya una vez que tienes todos estos
componentes, comienza lo divertido: inte-
grarlos. Pero no te desanimes, ya vers que
con un poco de prctica, pronto estars de-
sarrollando juegos divertidos, que podrs
compartir con tus amigos o incluso, jugarlos
en lnea.
Conclusin
Desarrollar un videojuego involucra
tomar en cuenta muchos aspectos.
Afortunadamente, XNA elimina algo de
esa complejidad y es una excelente op-
cin para desarrollar juegos tanto para
Xbox como Windows. Lo mejor de todo
es que XNA Game Studio Express es
gratis, as que si eres un desarrollador
de software y conoces algo de C#, anda
ya, y desarrolla tus primeros juegos.
Figura 2. Interfaz de desarrollo de Game Studio
Express de XNA.
Figura 3. Plantilla de desarrollo Space War.
Figura 4. Juego en ejecucin.
C
u
a
n
d
o
e
sta
b
a
e
n
la
se
c
u
n
d
a
ria
, re
c
u
e
rd
o
m
u
y
b
ie
n
q
u
e
m
e
e
n
c
a
n
ta
b
a

p
a
sa
r h
o
ra
s ju
g
a
n
d
o
c
o
n
la
s m
a
q
u
in
ita
s. P
a
ra
m
, e
ra
fe
n
o
m
e
n
a
l v
e
r a

P
a
c
-M
a
n
c
o
rrie
n
d
o
p
a
ra
n
o
se
r a
lc
a
n
z
a
d
o
p
o
r lo
s fa
n
ta
sm
a
s, o
ju
g
a
r a
d
e
s-
tru
ir lo
s a
ste
ro
id
e
s q
u
e
e
x
p
lo
ta
b
a
n
e
n
p
e
d
a
z
o
s m

s p
e
q
u
e

o
s.
X
N
A
D
e
s
a
rro
llo
d
e
J
u
e
g
o
s
a
l A
lc
a
n
c
e
d
e
T
o
d
o
s
P
o
r Jaim
e S
n
ch
ez
www.softwareguru.com.mx
31
ENE-FEB 2007
Jaime Snchez Beltrn, con ms de 10 aos de experiencia en la industria de Tecnologas de Informacin, actualmente se desempea como evangelista
para empresas de software en Microsoft, entre sus labores se encuentra la divulgacin tecnolgica, y generacin de programas que impulsen el ecosistema
de TI. Ha participado como conferencista nacional e internacional, empujando la innovacin en TI. Anteriormente trabaj para Microsoft en Texas, soportando
las cuentas Premiere de Amrica Latina.
32
ENE-FEB 2007 www.softwareguru.com.mx
L
a Inteligencia Articial (IA) en los juegos de video, ha cobrado auge en los ltimos aos. Dado que las imge-
nes desplegadas por las consolas de la siguiente generacin (Wii, PlayStation 3 y Xbox 360) cada vez se acer-
can ms a la realidad, ahora, el reto radica en hacer que estas imgenes cobren vida y realicen comportamiento
que el jugador perciba como inteligente. Esto es, que el comportamiento sea tan creble como las imgenes des-
plegadas. Para cumplir este gran reto, los videojuegos estn utilizando cada vez, con mayor frecuencia, tcnicas
de Inteligencia Articial avanzadas, como lo son Redes Neuronales, Algoritmos Genticos, y Planeacin, y ya
no slo tcnicas que se han usado tradicionalmente, como las Mquinas de Estado Finito (FSM) para simular el
comportamiento de los personajes, y el Algoritmo A* para encontrar rutas. El presente artculo se divide en dos
partes: la primera es un vistazo a lo que es la IA ms 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
Estos son algunos de los juegos que consideo
vale la pena destacar por su uso de IA:
1. Creatures, un juego de vida artifcial crea-
do por Steve Grand para Cyberlife en el Reino
Unido. En este juego, cada una de las criatu-
ras (Norns) tiene diferentes genes. Los Norns
se aparean entre s para dar vida a nuevas
criaturas, que van evolucionando su DNA y
adquiriendo algunos rasgos de generaciones
anteriores. El cerebro de las criaturas es si-
mulado por una red neuronal sencilla. Steve
Grand incluso, se ha auto proclamado un dios
digital, ya que segn l, ha creado vida den-
tro de una computadora.
2. Black and White de Peter Molyneaux de
Lionhead Studios, donde se puede entrenar
a las bestias que dependen del dios (el juga-
dor). Esto se realiza por medio de la tcnica
de IA conocida como aprendizaje reforzado,
donde se premia a la criatura si realiza la ac-
cin que le pedimos (por medio de un caricia
en el lomo) o se castiga si no hace lo que se
pide (a travs de un latigazo).
3. F.E.A.R. (First Encounter Assault Recon),
IA por Jeff Orkin de Monolith Productions.
Cuenta con la Inteligencia Artifcial ms in-
teresante, ya que se utilizan tcnicas como
el uso de un planeador para complementar
a otras que se han utilizado con mayor fre-
cuencia en la IA de los juegos de video, como
son las maquina de estado fnito (FSM) y el
algoritmo A*. Lo interesante de utilizar el
planeador, es que solamente es necesario
especifcar cul es el conjunto de objetivos
que persigue el personaje y cules son las
acciones que puede realizar para cumplir
con estos objetivos. Esto acarrea el benef-
cio de que las acciones y los objetivos estn
desacopladas, por lo que es ms sencillo
expandir el sistema de IA de manera efcaz.
Ejemplo: berpong
desarrollado por Nibbo Studios
Ahora dar un ejemplo de la IA del videojue-
go mexicano berpong, desarrollado por Ni-
bbo Studios (www.nibbo.net) en la ciudad de
Aguascalientes. berpong actualmente se
encuentra en pruebas beta, y pronto saldr al
mercado. Este videojuego ha ganado dos pre-
mios a nivel nacional, incluyendo el mejor vi-
deojuego en PC desarrollado por una empresa
mexicana en el concurso del captulo mexicano
de la IGDA (International Game Developers As-
sociation) en noviembre del 2006. berpong
es un videojuego que combina los gneros
de deportes y de accin para traer el clsico
I
n
t
e
l
i
g
e
n
c
i
a

A
r
t
i
f
c
i
a
l
A
p
lic
a
c
i
n
a
lo
s
J
u
e
g
o
s
d
e
V
id
e
o

P
o
r D
r. C
arlo
s D
elg
ad
o
www.softwareguru.com.mx
33
ENE-FEB 2007
juego de Pong al siglo XXI. Para lograrlo, se
dot de algoritmos de fsica computacional,
deteccin de colisiones y de Inteligencia Ar-
tifcial que a continuacin se describe:
La Inteligencia Artifcial de los enemigos de
berpong se divide en 4 dimensiones, una
para defnir cmo el control (paddle) del
enemigo se aproxima a la pelota, y las otras
3, para defnir la personalidad del enemigo.
El sistema de IA est infuenciado en los
estudios doctorales de un servidor. En este
tipo de IA, por medio de reglas sencillas se
simula comportamiento que parece ser ms
complejo. Sistemas similares de IA se han
utilizado para simular animales artifciales,
y tambin para guiar robots en ambientes
complejos y cambiantes.
Para defnir cmo se aproxima el paddle del
enemigo a la pelota, se defnieron un con-
junto de parmetros que se especifcan en
el archivo XML de la IA. Entre stos se en-
cuentran:
1. Qu mtodo utilizar para aproximarse a
la pelota (siguindola o prediciendo a cada
instante dnde llegar la pelota).
2. Parmetros para defnir un sistema primi-
tivo de visin.
3. Velocidad mxima del paddle.
4. Aceleracin mxima del paddle.
5. Porcentaje de decaimiento de la velocidad
del paddle.
Para defnir la personalidad del enemigo, se
crearon los perfles de personalidad, estos
estn dados en 3 dimensiones:
La primera dimensin defne si el enemigo
ser agresivo, precavido, o miedoso; esto
es, si tratar de acelerar la pelota, no har
nada o si tratar de desacelerar la pelota.
La segunda dimensin defne si el enemigo
es arriesgado o no; esto es, si tratar de apli-
car efecto o no a la pelota.
La tercera dimensin defne si el enemigo es
impulsivo o calculador; esto es, qu estrategia
utilizar para aplicarle los tems al jugador: si es
impulsivo, los aplicar en cuanto los tenga dis-
ponibles y si es calculador, los aplicar cuando
ocasione ms dao al jugador, por ejemplo, vol-
tear la pantalla cuando la pelota est cerca del
jugador, le dar menos tiempo de reaccionar.
El juego se puede ver en accin en las fguras
1 y 2 (que se muestran en la esquina superior
izquierda).
Figura 1. Contestacin del enemigo (paddle derecho)
en el nivel de la tierra.
Figura 2. Enemigo (paddle derecho) recibiendo la
pelota en el nivel del hielo.
Conclusin
La Inteligencia Artifcial es sin duda,
un campo con mucho potencial, que
tiene grandes reas de oportunidad
en los juegos de video. Espero que
con este breve artculo les haya
dado una idea del tipo de conside-
raciones que se deben tener en IA
para videojuegos, y tambin espe-
ro, haber despertado su curiosidad
para que conozcan ms sobre esta
fascinante rea.
I
n
t
e
l
i
g
e
n
c
i
a

A
r
t
i
f
c
i
a
l
A
p
lic
a
c
i
n
a
lo
s
J
u
e
g
o
s
d
e
V
id
e
o

P
o
r D
r. C
arlo
s D
elg
ad
o
El Dr. Carlos Delgado Mata es socio fundador de Nibbo Studios, y ha estado encargado de la Inteligencia Artificial y Fsica Computacional del ms
reciente proyecto. Adems, es profesor investigador en el campus acadmico de la Universidad Panamericana, Universidad Bonaterra. Es autor de mas de
30 artculos 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).
Aunque desde hace cerca de diez aos han exis-
tido intentos de desarrollo de juegos de video
en Mxico, an muy poca gente conoce la exis-
tencia de aquellas compaas que luchan por
un sueo comn: desarrollar juegos, con pro-
piedad intelectual propia, Hechos en Mxico.
Desgraciadamente, los primeros proyectos no
cautivaron al pblico de la manera que sus crea-
dores hubieran querido. Sin embargo, a medida
que pasan los aos, cada vez ms gente creati-
va se dispone a embarcarse en tan aventurada
tarea, y en conocer los errores del pasado, que
han servido de leccin para muchas compaas
que estn comenzando.
Antecedentes y
lecciones aprendidas
Los factores que ocasionaron que los proyectos
pioneros fracasaran, son varios, y se necesitara
hablar, en particular de cada una de las empre-
sas involucradas, para buscar-encontrar qu fue
lo que hizo falta. Sin embargo, a manera general
podemos englobar los ms importantes y de los
cuales, se trata un poco a continuacin.
Originalidad. Al no tener una clara visin del
mercado se suele pasar por alto varios factores
externos que pueden hacer que un producto no
se venda como se tiene planeado. Si a cualquier
desarrollador de juegos se le pregunta qu
piensa de su creacin, lo ms seguro es que la
defienda a capa y espada. Por lo mismo, mu-
chas veces estas personas suelen no estudiar
el mercado para conocer a su competencia y
el tema que se elige para el juego a desarrollar
se escoge simplemente basndose en el gusto
personal de quienes lo van a crear. Debido a
esto, podemos ver que algunos de los primeros
juegos mexicanos fueron muy similares a jue-
gos reconocidos mundialmente. Esto provoc
que el consumidor, al tener que elegir entre dos
juegos similares, uno desarrollado por un estu-
dio reconocido, y otro por un grupo de personas
que apenas comienzan y del cual no se sabe
mucho, obviamente se inclinar por el primero.
Piratera. La piratera es otro factor que inci-
di y sigue causando molestias a los desa-
rrolladores en nuestro pas. Se estima que
ms del 80% de los videojuegos que se ven-
den en Mxico son adquiridos en el mercado
informal. Este vicio, que las autoridades han
dejado pasar, origina que las personas con-
sideren normal comprar un juego por veinte
pesos o menos, en el mercado de la esquina,
sin ponerse a pensar en todo el esfuerzo que
hay detrs, y por el cual el producto comprado
en una tienda legtima, tiene un precio mucho
ms elevado. Es risible entonces, ver que haya
gente que luego de conseguir de manera ilegal
videojuegos desarrollados en Mxico, se pre-
gunte por qu la compaa que lo desarroll ya
no continu sacando ms proyectos.
Malinchismo. El malinchismo mexicano es otro
factor importante que no podemos dejar fuera
de la ecuacin. Pongamos por ejemplo el juego
Mythic Blades desarrollado por la compaa Ver-
million Games de Quertaro. Cuando Vermillion
mostr las primeras versiones de su producto
en los foros especializados mexicanos, lo nico
que recibi fue crticas. Miguel Pineda, socio
fundador de Vermillion Games, una vez comen-
t que los comentarios ms viscerales hacia el
juego fueron por parte de los propios paisanos.
Esto casi los llev a abandonar el proyecto. Sin
embargo, al mostrar su juego en pginas de In-
ternet y foros extranjeros, la aceptacin fue tal
que terminaron el juego y ste fue comercializa-
do en varios pases por una distribuidora norte-
americana, recibiendo grandes alabanzas por el
arte grfico del mismo.
Esfuerzos recientes de promocin
Eventos como Creanimax 2006, que se reali-
z el pasado mes de octubre en Guadalajara,
Jalisco; donde se dieron cita varias de las ms
importantes personalidades en materia de
Animacin y Videojuegos no slo nacional sino
internacional, y los concursos organizados por
el captulo en Mxico de la IGDA (International
Game Developers Association) junto con Oelli,
la empresa organizadora del Electronic Game
Show, y la Secretara de Economa, son puntos
importantes de exposicin de la creatividad de
34
ENE-FEB 2007 www.softwareguru.com.mx
C
u
a
n
d
o
se
h
a
b
la
d
e
la
in
d
u
stria
d
e
v
id
e
o
ju
e
g
o
s, e
n
p
rim
e
ra
in
sta
n
c
ia

n
u
e
stra
s m
e
n
te
s v
ia
ja
n
a
l le
ja
n
o
o
rie
n
te
y, p
ie
n
sa
n
e
n
la
s c
o
m
p
a

a
s
n
ip
o
n
a
s y
lo
s ju
e
g
o
s c
o
n
lo
s q
u
e
m
u
c
h
o
s d
e
n
o
so
tro
s c
re
c
im
o
s. T
a
m
b
i
n

p
o
d
ra
m
o
s p
e
n
sa
r e
n
p
a
se
s c
o
m
o
E
sta
d
o
s U
n
id
o
s, In
g
la
te
rra
o
F
ra
n
c
ia
.
P
e
ro
c
ie
rta
m
e
n
te
, e
n
e
l
ltim
o
p
a
s q
u
e
p
e
n
sa
ra
m
o
s se
ra
e
l n
u
e
stro
.
L
a

I
n
d
u
s
t
r
i
a
D
e
s
a
rro
llo
d
e
J
u
e
g
o
s
a
l A
lc
a
n
c
e
d
e
T
o
d
o
s
P
o
r In
g
. O
scar G
u
illn

M
u
y
p
o
c
a
g
e
n
te
c
o
n
o
c
e

la
e
x
is
te
n
c
ia
d
e
a
q
u
e
lla
s

c
o
m
p
a

a
s
q
u
e
lu
c
h
a
n
p
o
r
u
n
s
u
e

o
c
o
m

n
:
d
e
s
a
rro
lla
r ju
e
g
o
s
, c
o
n

p
ro
p
ie
d
a
d
in
te
le
c
tu
a
l
p
ro
p
ia
, h
e
c
h
o
s
e
n
M

x
ic
o

.
los jvenes mexicanos. En los concursos de am-
bos eventos se premiaron proyectos realizados
por estudiantes, profesionistas y empresas,
basndose en diferentes factores como el ga-
meplay del juego, el arte y msica, pero sobre
todo, la originalidad de los mismos.
Cabe mencionar que entre los premios otorga-
dos en el concurso de la IGDA, se dio a los me-
jores proyectos la oportunidad de viajar a San
Francisco el prximo ao, para asistir al Game
Developers Conference, donde podrn exhibir
sus proyectos en un pabelln que pretende
acercar a los desarrolladores nacionales con los
del resto del mundo. Esperemos que estos apo-
yos continen y que las empresas nacionales
sepan sacar el mximo provecho de los mismos,
y que la industria de videojuegos en nuestro
pas d el gran paso y d a conocer al mundo la
creatividad con la que contamos.
Algunas empresas mexicanas
A continuacin, una breve resea de algunas
empresas representativas de esta naciente in-
dustria de videojuegos en Mxico.
Artefacto Estudio. Es una compaa que trabaja
en una amplia gama de proyectos que van des-
de aplicaciones web, hasta creacin de imagen
corporativa y desarrollo de videojuegos. Su
proyecto Xtreme Drive los hizo merecedores
del tercer lugar en el concurso ms reciente de
desarrollo de videojuegos de la IGDA.
AztecTech Games. Parte del Instituto Aztec Tech,
el cual es considerado como la primera escuela
de desarrollo de videojuegos en Latinoamrica.
Sac al mercado dos de los primeros juegos
para PC de creacin mexicana: World Mastersy
Hellcopters, en los que se trabaj cerca de seis
aos y que, desgraciadamente no lograron cap-
turar la atencin del pblico mexicano.
Digital Moon Studios. Compaa originaria del
estado de Mxico que se dedica a la realizacin
de proyectos a manera de outsourcing. Poco se
conoce acerca de los juegos en los que han par-
ticipado, debido a los contratos de confidencia-
lidad que se requieren para conseguir este tipo
de proyectos.
Dimtv. Empresa dedicada a la creacin de jue-
gos publicitarios. Han logrado concretar nego-
cios con empresas nacionales e internacionales
a las cuales les han desarrollado juegos basa-
dos en su marca o producto.
Idle Hands Games. Enfocados en la creacin
de juegos para dispositivos mviles, esta em-
presa del D.F. cuenta ya con siete juegos en su
haber; que se basan en ideas simples, pero
entretenidas y se venden por medio de des-
cargas directas al celular. Entre sus juegos ms
populares se encuentra Ruta 666, en el que
el usuario toma el papel de un chofer de auto-
bs, que intenta realizar su trabajo en el caos
vial de la ciudad de Mxico.
Nibbo Studios. Empresa de Aguascalientes
que ha desarrollado diferentes proyectos
como los kioscos con pantalla tctil, presen-
tados en la Feria de San Marcos 2006 en el
stand del Gobierno Estatal; un juego didcti-
co para la enseanza del teclado de la compu-
tadora de nombre Mecapumble y el juego
en 2D que an se encuentra en desarrollo,
llamado berpong. Este ltimo logr con-
seguir el segundo lugar en el concurso de de-
sarrollo de juegos durante Creanimax 2006 y
el primer lugar en la categora profesional en
el concurso organizado por la IGDA.
Nusof Studios. Ganadores del segundo lugar de
la categora profesional del concurso de la IGDA.
Su proyecto ms sobresaliente Biops 2 es un
juego tridimensional de armas en primera per-
sona (first person shooter), con buenos grficos
y un nivel adecuado de emocin y dificultad.
Radical Studios. Sacaron al mercado un juego
multi-jugador masivo en lnea (MMOG por
sus siglas en ingls), en el cual se permita jugar
en tiempo real contra enemigos programados y
personas que estuvieran en lnea en el mismo
momento que se estuviera jugando. La idea de
esta compaa era seguir mejorando el juego de
manera continua, cobrando mensualidades a
los suscriptores para permitirles tener acceso al
juego. Desgraciadamente, la empresa no pudo
soportar los costos de operacin y cerr opera-
ciones al poco tiempo de haber comenzado.
Ranflosoft. Sorprendi a muchos con su juego
de peleas basado en personajes polticos y del
folclor mexicano. An y cuando la calidad grfi-
ca y el gameplay del juego dejaban mucho que
desear, Kombate Mexicano siempre lograba
sacar una sonrisa en las personas que lo proba-
ron por primera vez.
Snake & Eagle Studios. Esta compaa, aso-
ciada con la casa editorial Linaje, desarroll el
proyecto Antrophos, que consista en un c-
mic futurista que daba oportunidad al lector de
terminar cada uno de los captulos, vivindolo
en un juego adjunto en forma de CD con cada
tomo. El principal problema que enfrent este
proyecto, fue no haber considerado los largos
tiempos que toma desarrollar un videojuego, ya
que la idea original era que, tanto el juego como
el cmic, salieran mensualmente. Se lanzaron al
mercado dos tomos y se desarroll una versin
especial del juego en formato de Arcadia, mis-
mos que se pueden adquirir todava, a travs de
la pgina de Internet de la casa editorial.
Xibalba Studios. Con base en Monterrey, esta
compaa est formada por egresados de Digi-
pen, una de las ms prestigiosas escuelas de
desarrollo de videojuegos. Hasta la fecha, slo
han mostrado una demo tecnolgica de su mo-
tor de juegos, pero se sabe que trabajan en un
proyecto basado en el juego maya de la pelota,
que llevar el nombre de Underworld Tourna-
ment, y que se espera salga para el Xbox Live.
Vermillion Games. Compaa formada por
los hermanos Pineda de Quertaro. Su juego
Mythic Blades, es considerado por muchos,
el mejor juego de video desarrollado en Mxi-
co hasta la fecha. La calidad que han logrado
imprimir en el arte grfico y la programacin,
hizo que distribuidores internacionales de vi-
deojuegos se fijaran en l, y se est vendien-
do ya en diversos lugares del mundo.
Ing. Oscar Miguel Guilln Hernndez. Ingeniero en Electrnica y Sistemas Digitales por la Universidad Panamericana campus Bonaterra de la ciudad de
Aguascalientes. Socio fundador y Director Creativo de la empresa de tecnologas de entretenimiento Tecnochtitln 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 artstica de la misma.
www.softwareguru.com.mx
35
ENE-FEB 2007
C
u
a
n
d
o
se
h
a
b
la
d
e
la
in
d
u
stria
d
e
v
id
e
o
ju
e
g
o
s, e
n
p
rim
e
ra
in
sta
n
c
ia

n
u
e
stra
s m
e
n
te
s v
ia
ja
n
a
l le
ja
n
o
o
rie
n
te
y, p
ie
n
sa
n
e
n
la
s c
o
m
p
a

a
s
n
ip
o
n
a
s y
lo
s ju
e
g
o
s c
o
n
lo
s q
u
e
m
u
c
h
o
s d
e
n
o
so
tro
s c
re
c
im
o
s. T
a
m
b
i
n

p
o
d
ra
m
o
s p
e
n
sa
r e
n
p
a
se
s c
o
m
o
E
sta
d
o
s U
n
id
o
s, In
g
la
te
rra
o
F
ra
n
c
ia
.
P
e
ro
c
ie
rta
m
e
n
te
, e
n
e
l
ltim
o
p
a
s q
u
e
p
e
n
sa
ra
m
o
s se
ra
e
l n
u
e
stro
.
L
a

I
n
d
u
s
t
r
i
a
D
e
s
a
rro
llo
d
e
J
u
e
g
o
s
a
l A
lc
a
n
c
e
d
e
T
o
d
o
s
P
o
r In
g
. O
scar G
u
illn

M
u
y
p
o
c
a
g
e
n
te
c
o
n
o
c
e

la
e
x
is
te
n
c
ia
d
e
a
q
u
e
lla
s

c
o
m
p
a

a
s
q
u
e
lu
c
h
a
n
p
o
r
u
n
s
u
e

o
c
o
m

n
:
d
e
s
a
rro
lla
r ju
e
g
o
s
, c
o
n

p
ro
p
ie
d
a
d
in
te
le
c
tu
a
l
p
ro
p
ia
, h
e
c
h
o
s
e
n
M

x
ic
o

.
Conclusin
A pesar de los retos y dificultades que
enfrenta esta industria en nuestro pas,
las esperanzas de que siga creciendo
son muchas, ya que existe gente que
cree firmemente que Mxico puede
dejar de ser un pas consumidor y con-
vertirse en un pas creador de propie-
dad intelectual y juegos de calidad. Si
quieres conocer ms sobre desarrollo
de videojuegos en nuestro pas, te re-
comiendo que entres al sitio del cap-
tulo en Mxico del IGDA, disponible en
http://mexico.vjuegos.org/
36
ENE-FEB 2007 www.softwareguru.com.mx
M
ucho se ha cuestionado si la mejora de
procesos de software basada en CMMI,
realmente trae benefcios tangibles para las
compaas de nuestro pas. Las empresas que
quieren comenzar a implementar un esfuerzo
de esta naturaleza, se cuestionan cmo poder
justifcar los recursos que van a invertir para
ello, y si se aprovecharn de manera adecuada.
Aunque para muchas de estas empresas, la ob-
tencin de un nivel de madurez sigue siendo el
principal mvil para implementar CMMI. La rea-
lidad muestra que, tales iniciativas, logran un
xito signifcativo cuando son vistas como un
objetivo de negocio, que traer consigo benef-
cios econmicos y que resolver problemticas
relevantes en la organizacin.
Las preguntas que tpicamente surgen al plan-
tear un programa de mejora son: cunto nos
va a costar?, qu benefcios vamos a obte-
ner?, cmo justifco el gasto ante el Consejo?,
existe informacin de resultados obtenidos
por empresas similares en Mxico?
Para poder generar un adecuado entendimien-
to de implicaciones y benefcios asociados con
un programa de mejora, el anlisis del Retorno
de Inversin o ROI (Return of Investment) es
una herramienta de utilidad, que permite apo-
yar la justifcacin de la inversin en trminos
tangibles para los tomadores de decisiones en
la organizacin.
El ROI es un concepto sencillo de comprender
y aplicar. Supongamos el caso de una empre-
sa que enfrenta la decisin de si invertir o no,
en un programa de mejora. El anlisis del ROI
signifca evaluar si la inversin es rentable,
comparada con otros proyectos u opciones
de inversin disponibles, es decir, por qu no
mejor invertir este dinero en el banco a taza del
8%?, o por qu no invertirlo como capital de
trabajo en proyectos para buscar un margen
de utilidad del 35%? O quiz destinarlo a me-
jorar la infraestructura de cmputo. A fn de
cuentas, la implementacin de un programa de
mejora de procesos de software compite por
recursos humanos y econmicos limitados.
Actualmente, las compaas utilizan el ROI
para evaluar los proyectos de inversin que
tienen en puerta. Sin embargo, para un pro-
grama de mejora basado en CMMI, la com-
plejidad de este anlisis radica en obtener
la informacin sufciente y confable para
calcularlo correctamente.
Anlisis del Retorno de Inversin
El proceso para analizar el ROI de un programa
de mejora se ilustra en la siguiente fgura, y se
describe a continuacin:
1. Determinar el alcance de la
iniciativa de mejora
A fn de acotar el alcance del programa de me-
jora, la organizacin debe decidir:
La representacin del modelo que utilizar
(escalonada o continua).
Las reas de proceso a implementar.
El nivel de madurez objetivo.
Las reas involucradas (una divisin, toda
la organizacin, todos los tipos de proyecto,
o slo aquellos que pertenezcan a una u otra
tecnologa, etctera).
2. Estimar el esfuerzo y los costos
asociados
Como en cualquier proyecto, es necesario
identifcar los recursos que se requerirn para
poder implementar el programa de mejora. Los
principales rubros a considerar son:
Capacitacin.
Esfuerzo para la defnicin, despliegue y so-
porte del proceso.
Herramientas.
Consultora especializada.
Evaluaciones formales.
Es importante contemplar los costos asocia-
dos, no slo para la implementacin del pro-
grama, sino tambin para mantenerlo operan-
do, aun despus de haber alcanzado un nivel
de madurez.
3. Dimensionar los beneficios
Un programa de mejora debe estar goberna-
do por los objetivos de mejora defnidos por
el negocio. La experiencia despus de innu-
merables sesiones de trabajo con directores
de empresas de TI para identifcar los obje-
tivos de negocio, nos arroja que los cinco
principales son:
Mejorar la utilidad de los proyectos.
Cumplir dentro del tiempo y costo estimado.
Mejorar la satisfaccin del cliente.
/* MEJORA DE PROCESOS */
Anlisis del ROI
Una Herramienta para Justifcar la Mejora de Procesos
Por Anglica Su y Alfredo Calvo
// PRCTICAS
Alfredo Calvo es Consultor Sr. de IT ERA en CMMI, Planeacin Estratgica 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 Tecnologa 2000. Ha sido desarrollador, lder de proyecto, gerente y
director de TI para diversas empresas y cuenta con amplia experiencia brindando servicios de consultora en mejora de procesos.
Anglica Su es Gerente de Lnea de Negocio de CMMI en IT ERA. Cuenta con ms de 12 aos de experiencia en el mbito de mejora de procesos,
ha participado en diversos proyectos de implementacin de modelos como CMMI, MoProSoft, RUP, ITIL para diversas compaas. Particip como
editora en MoProSoft y EvalProSoft, las cuales actualmente forman parte de norma mexicana de software.
Figura 1. Procedimiento para el anlisis del ROI.
Mejorar la calidad del producto.
Mejorar la productividad del equipo.
El punto ms complicado para realizar un ade-
cuado anlisis del ROI, es el dimensionamiento
y la cuantifcacin de los benefcios que se ob-
tendrn con CMMI, debido sobre todo, a la ca-
rencia de informacin; la buena noticia es que
ahora existen resultados cuantitativos publi-
cados que pueden servir como base para este
anlisis. En la tabla 1, se pueden observar los
resultados del uso de CMMI publicados por el
SEI, con datos relevantes como: la disminucin
del costo en un 20%, aumento en calidad en un
50%, aumento en precisin del calendario del
37%, aumento en productividad del 62% y un
ROI medio de 4.7 a 1.
Estos datos pueden ser tomados como re-
ferencia, con las debidas reservas, ya que
cada empresa es diferente, y los criterios
para captar, calcular y presentar dicha infor-
macin no necesariamente podran ser apli-
cables a su empresa.
Las empresas que han aportado datos al SEI
son empresas del tamao de Boeing, Lookheed
Martin, GM, Siemens, etctera; y para la em-
presa promedio en nuestro pas genera inquie-
tud, sobre si estos datos les son aplicables o
no. La mala noticia aqu, es que actualmente
no existe un registro similar para las empresas
mexicanas, pues son an pocas las que han
implementado con xito el CMMI, y menos
todava, las que cuentan con informacin his-
trica confable. A continuacin, se presentan
datos de empresas mexicanas con las cuales
hemos trabajado en la empresa It Era.
Ti-M. Evaluada en diciembre del 2006 como
CMMI Nivel 3, con informacin de uso de sus
procesos en ms de 15 proyectos. Sus estima-
ciones de esfuerzo tienen variaciones respec-
to a la realidad, de menos del 10% (de -8% a
+5%), lo cual habla de la madurez y confabili-
dad de su operacin.
Dextra Technologies. Empresa trabajando
con procesos CMMI Nivel 3, actualmente pre-
senta datos recopilados durante 2 aos, que
refejan un efectivo control en la densidad de
defectos en sus proyectos. Esto le ha permitido
mejorar el empleo de sus recursos, disminu-
yendo el retrabajo en actividades de calidad.
Mexware Consulting. Comenz a imple-
mentar su programa de mejora de procesos
en 2005 y actualmente implementa proyec-
tos con procesos de Nivel CMMI3. Sus re-
sultados a la fecha para 20 proyectos ejecu-
tados refejan una desviacin promedio de
esfuerzo y tiempo del 5%
A nivel gubernamental, est el caso de la Co-
ordinacin de Tecnologa para la Incorporacin
y Recaudacin del IMSS, que en octubre de
2006 obtuvo el Nivel 3 de capacidad de CMMI.
Dentro de los resultados actualmente reporta-
dos, presenta proyectos con desviacin pro-
medio del 6.3%, un ndice de apego a procesos
defnidos del 98.1% y un ROI de 3.5 a 1.
Algunos de los ejemplos tpicos que se pre-
sentan como metas de mejora pueden ser:
Disminuir el retrabajo por correccin a
defectos en un X%
Disminuir el retrabajo por mala especifi-
cacin de requerimientos en un X%
Acotar la desviacin en esfuerzo y tiempo
a un X%
Aumentar la rentabilidad en un X%
En la tabla 2 se presenta un ejemplo para
estimar los beneficios en una empresa con
60 desarrolladores, tomando como base un
aumento en productividad del 10%.
4. Calcular el ROI
El clculo del ROI, se realiza dividiendo la
estimacin de los benefcios estimados en-
tre los costos asociados con el programa.
Siguiendo el ejemplo anterior, si conside-
ramos una inversin de 75 mil dlares, un
benefcio esperado de 374 mil dlares al
ao tenemos:
ROI = 374,400 / 75,000 = 4.99
5. Presentacin de resultados
Comunicar a la organizacin el anlisis realiza-
do, los objetivos de negocio, las metas de me-
jora y los beneficios esperados, es importante
para generar el compromiso y patrocinio de
todos los participantes que pueden apoyar a
que el programa de mejora tenga xito.
Principales consideraciones
Se requiere acceso a informacin relevante
y sensible.
Calcular los beneficios no es una tarea trivial.
Falta de consistencia en la medicin del ROI.
Las organizaciones no tienen datos de su
situacin actual.
Conclusin
El anlisis del ROI es una herra-
mienta de suma utilidad para
evaluar la conveniencia de un pro-
grama de mejora. Se requiere con-
templar los costos asociados con
la implementacin y el manteni-
miento del programa de mejora. Es
indispensable establecer objeti-
vos de negocio cuantificables que
guen y gobiernen el programa de
mejora. Los beneficios econmi-
cos se determinan en b ase a estos
objetivos de negocio.
37
ENE-FEB 2007 www.softwareguru.com.mx
El anlisis del ROI es una
herramienta de utilidad, que
permite apoyar la justicacin de la
inversin en trminos tangibles.
Categora de
Desempeo
Rendimiento
medio
Nmero
de datos
Desempeo
Inferior
Desempeo
mayor
Costo 20% 21 3% 87%
Calendario 37% 19 2% 90%
Productividad 62% 17 9% 255%
Calidad 50% 20 7% 132%
Satisfaccin
del Cliente
14% 6 -4% 55%
Retorno de
Inversin
4.7 : 1 16 2 : 1 27%
Tabla 1. Resultados publicados por el SEI. www.sei.cmu.
edu/cmmi/results.html.
60 Desarrolladores
260 Das laborales
8 Horas x da
124,800 Horas hombre al ao
$ 30.00 Tarifa promedio (USD)
$ 3,744,000 Ingresos estimados
anuales (USD)
$ 374,400 Ahorros estimados por aumento
en productividad del 10% por
ao (USD)
Tabla 2. Ejemplo de benecios estimados.
38
ENE-FEB 2007 www.softwareguru.com.mx
/* DISEO */ // PRCTICAS
Q
uienes han desarrollado aplicaciones em-
presariales usando la especificacin 2 de
EJB (Enterprise Java Beans), conocen el excesivo
tiempo que se consume en el ciclo Editar-Com-
pilar-Debugear. Incluso, posiblemente se han
vuelto expertos en pasatiempos como Sudoku,
u otra actividad que haga ms llevadera la es-
pera en este ciclo. Es cierto que algunas veces
la utilizacin de tal tecnologa es la mejor deci-
sin que podemos tomar, sin embargo, tambin
existen muchos proyectos donde su uso no es l
ms recomendado, e incluso hace el desarrollo
ms lento y tedioso, afectando la productividad
del equipo de desarrollo.
Un tpico diseo basado en
Arquitectura EJB 2
Veamos un ejemplo simple de tipos de cam-
bios, donde se nos solicita el servicio de
Captura de Operaciones de compra-venta de
dlares hacia otras instituciones bancarias.
La fgura 1 muestra cmo podra disearse
este servicio con un Session EJB.
El acceso hacia los objetos de datos (Data Ac-
cess Object - DAO) es a travs de un EJB llama-
do CapturaService, donde cualquier validacin
y/o proceso de lgica de negocio es ejecutada.
Por ejemplo, si la institucin bancaria existe, o
si la cantidad que se desea cambiar est den-
tro de los lmites aceptables.
El resultado es un objeto de datos llamado
CapturaResultDTO con el resultado de la ope-
racin. Los mtodos que acceden la base de
datos estn encapsulados en DAOs, los cuales
pueden ser implementados con JDBC o algn
otro mecanismo de persistencia. Este diseo
aparenta estar bastante bien, pero esconde va-
rios problemas que describo a continuacin.
Problemas frecuentes en EJBs
Framework pesado y complejo. EJB 2 es un
framework muy completo, que resuelve reque-
rimientos comunes en las aplicaciones empre-
sariales, tales como el manejo de transaccio-
nes distribuidas, seguridad y persistencia. Esto
trae varias ventajas, pero tambin lo convierte
en un modelo muy pesado y complejo.
Poca productividad. La arquitectura EJB 2 na-
ci con el propsito de facilitar el desarrollo
de aplicaciones empresariales, y ciertamente
nos evita la necesidad de codifcar procesos
estructurales de bajo nivel, pero esa ayuda
se paga con altsimos costos de tiempo. Ha-
cer cualquier modifcacin a un EJB, requiere
adems de editar y compilar, instalar cada
componente EJB en el Servidor de Aplicacio-
nes, confgurar los archivos XML, levantar el
Servidor de Aplicaciones para que se tomen
los cambios, y buscar soluciones a problemas
generados por los mismos EJBs.
No fomenta la Orientacin
a Objetos
Mucha gente piensa que por el hecho de escri-
bir cdigo en un lenguaje que soporte OO, ya
estn desarrollando con objetos y todo el para-
digma que ste conlleva. Sin embargo, lo ante-
rior no es una estrategia basada en tecnologa,
sino en la organizacin del cdigo. La cultura
de la programacin orientada a componentes
de EJB 2, no fomenta la orientacin a objetos,
ya que los session y message-driven beans son
estructuras monolticas y clases muy pesadas.
Por otro lado, los Entity Beans que son crea-
dos para representar entidades de negocio,
tienen muchas limitaciones que los hacen dif-
ciles para implementar un modelo de objetos.
Como resultado, es difcil desarrollar un verda-
dero estilo Orientado a Objetos sobre la plata-
forma J2EE. Este tipo de desarrollos es lo que
Martin Fowler llama anemia domain model,
y parecido a la falta de vitalidad en la sangre
anmica, los modelos de objeto anmicos ni-
camente modelan superfcialmente el proble-
ma, ya que contienen clases que implementan
poco, o nada de comportamientos.
Desarrollando con POJOs y
Frameworks ligeros
Antes de la especifcacin EJB 3, muchos
desarrolladores desilusionados con EJB bus-
caron alternativas, y encontraron que los
POJO son una de esas, convincente a EJBs.
Un POJO (Plain Old Java Object) es simple-
mente un objeto de Java que no implementa
ninguna interfase especial. Su nombre fue
creado por Fowler, Rebbecca Parsons y Josh
MacKenzie para darle a los objetos regulares
de Java un nombre de sonido divertido.
Los POJOs por s solos, no son sufcientes para
crear una aplicacin empresarial completa,
ya que carecen de los servicios que brinda
un contenedor de EJB. Por eso, la solucin es
complementarlos con el uso de Frameworks
Ligeros como Spring e Hibernate, que reem-
plazan algunas de las partes pesadas de la
Ixcoatl Prez es Consultor TI especializado en sector financiero, con experiencia desarrollando sistemas empresariales para diferentes industrias en USA y
Mxico. Es experto en anlisis y diseo 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.
POJOs y Frameworks Ligeros:

Simplifcando el Desarrollo
Por Ixcoatl Prez
Figura 1. Diseo de Captura de Operaciones con EJB 2.
/* DISEO */
plataforma J2EE. Hibernate y Spring tienen caractersticas importan-
tes, el no ser intrusivas, es una de ellas. Proveen transacciones y per-
sistencia sin requerir que las clases implementen ninguna interfase en
especial (por ello siguen siendo POJOs). La aplicacin es ensamblada
con contenedores ligeros que implementen Dependecy Injection en
lugar de usar la bsqueda de componentes con JNDI.
Estos frameworks solucionan diferentes necesidades a lo largo de un
desarrollo empresarial. Los benefcios son mayores cuando se combi-
nan adecuadamente con patrones de diseo y mejores prcticas de
desarrollo. Por ejemplo, el patrn de Modelo de Domino nos brinda
todo el benefcio del Desarrollo OO, ya que las reglas de negocios son
la base de la implementacin, al tiempo que los objetos de dominio
ignoran que sern persistidos, ya que, transparentemente son mapea-
dos hacia la Base de Datos relacional. Un framework de persistencia
como Hibernate nos brinda una solucin ORM (Object-Relational Ma-
pping), y si se requiere mapear POJOs hacia sentencias SQL, iBATIS,
nos brinda una solucin bastante conveniente para ejecutar senten-
cias SQL. Con un el uso de interfaces se evita acoplar un modelo de
dominio hacia un framework de persistencia especfco, lo que nos da
mayor fexibilidad e incluso es posible probar el modelo de domino sin
un esquema de Base de Datos. El desarrollo con POJOs tambin nos
brinda un benefcio extra, ya que el Desarrollo Orientado-a-Pruebas
(Test Driven Development - TDD) es bastante simple y compatible con
los POJOs, al no depender de un servidor de aplicaciones.
Tal vez la principal razn para usar Session Beans, es la capacidad
de tener transacciones administradas por el contenedor (Container-
Managed Transaction - CMT). Esto permite que el contenedor EJB
automticamente comience una transaccin cuando un mtodo es
invocado, haciendo el commit cuando termina exitosamente, o el ro-
llback en caso de no ser as. Ahora bien, si optamos por la opcin de
POJOS y frameworks ligeros, el framework de Spring nos provee una
solucin equivalente a CMT para POJOs, adems de tener un rango
amplio de caractersticas que lo hacen muy fcil de usar. Cuando un
mtodo POJO es llamado, Spring automticamente comenzar una
transaccin y har el commit o rollback correspondiente. Aqu lo in-
teresante es que Spring puede administrar las transacciones usando
el framework de persistencia, el administrador de transacciones de
JDBC, o el Java Transaction API (JTA), segn sea deseado. Esto es tan
simple como defnir un POJO como un Spring Bean, con unas cuan-
tas lneas de XML similar al deployment descriptor de EJB, y con eso
tenemos un POJO que es transaccional. La aplicacin obtiene un
SpringBean llamando a la fbrica de SpringBean con el nombre y tipo
esperado. Tan simple como:
BeanFactory factory = new XMLBeanFactory(new FileInputSteam(capturaFacade.xml)) ;
CapturaFacade cF = (CapturaFacade) factory.getBean(CapturaFacade, CapturaFacade.class);
Nota: Utilizamos un Faade con la intencin de desacoplar las res-
ponsabilidades de un CapturaService y la capa de presentacin.
Debido al alto nivel de confguracion de Spring, la fbrica de Spring-
Bean puede ser confgurada para regresar un proxy en lugar del
objeto original. Este proxy, tambin conocido como interceptor, es
un objeto que fnge ser el objeto original, pero que puede ejecutar
cdigo adicional antes y despus de la invocacin del objeto ori-
ginal, y por tanto sirve para muchos propsitos, como administrar
transacciones, seguridad o conexiones a la base de datos. Captura-
Faade puede ser envuelto en un interceptor, el cual administra las
transacciones con algn administrador de transacciones propio del
framework de persistencia que estemos usando.
Diseo basado en POJOs
Revisemos por ltimo el diseo del servicio de Captura de Operacio-
nes de compra-venta de dlares, pero ahora con POJOs. Este diseo
tiene ms componentes que el basado en EJB, y puede parecer ms
complejo, pero su diseo es ms modular y mucho ms fcil de probar
y extender. Aun cuando son ms clases, cada una tiene un pequeo
nmero de responsabilidades fciles de entender y bien defnidas.
Se agreg un nuevo modulo CantidadPolicy, donde aplicamos pol-
ticas de fltro que tengan que ver con la cantidad que se compra o
vende. Esto es ms que nada, un ejemplo de lo fcil que se puede
agregar nueva funcionalidad, es decir, un objeto con responsabilidad
simple y especfca.
Figura 2. Diseo del servicio usando POJOs.
Usamos interfaces para simplifcar el desarrollo orientado a pruebas, ya
que es posible reemplazar la implementacin del repositorio Hibernate
por algn otro framework de persistencia, sin modifcar el cdigo.
En resumen, los frameworks ligeros como Spring e Hibernate nos permi-
ten usar POJOs, con todas sus conveniencias; y tener los mismos benef-
cios de usar EJB Session Beans, sin tener sus complicaciones.
39
ENE-FEB 2007 www.softwareguru.com.mx
/* ARQUITECTURA */
40
ENE-FEB 2007 www.softwareguru.com.mx
U
no de los factores que determina el xito o fracaso de un siste-
ma de software, es su arquitectura. Con esto nos referimos a la
estructura o conjunto de estructuras del sistema, las cuales estn
compuestas de elementos de software, propiedades externas visi-
bles de estos elementos y las relaciones entre s [1].
El disear debidamente una arquitectura de software, garantiza que el
sistema de software cumpla con uno o varios atributos de calidad. Por
ejemplo, que sea fcil de usar, confable o seguro. Sin embargo, si la ar-
quitectura no se disea de forma apropiada, el sistema de software resul-
tante no lograr sus objetivos [2]. De nada sirve un sistema de software
que no cumple con los tiempos de respuesta requeridos por el cliente, o
que es complejo de modifcar, difcil de usar o vulnerable a ataques.
Por lo regular, se conoce hasta el fnal del desarrollo del sistema de
software, si ste cumpli o no con los atributos de calidad que se
especifcaron en los requerimientos no funcionales. Dicho conoci-
miento tardo, implica tomar demasiados riesgos innecesarios, un
ejemplo es, descubrir fallas en el sistema de software debido a que
en la fase de diseo no se eligi apropiadamente una arquitectura.
Para reducir tales riesgos y, como una buena prctica de ingeniera,
es recomendable llevar acabo evaluaciones a la arquitectura.
La fnalidad de este artculo es dar a conocer un panorama general so-
bre evaluaciones a arquitecturas de software. En l, presento el prop-
sito de evaluar, conceptos sobre atributos de calidad, primeros intentos
de evaluacin, momentos en los que se pueden realizar evaluaciones,
clasifcacin de las tcnicas de evaluacin, planeacin de evaluaciones,
y benefcios que se obtienen al evaluar una arquitectura.

Porqu es necesario evaluar una arquitectura
de software
El propsito de realizar evaluaciones a la arquitectura, es para anali-
zar e identifcar riesgos potenciales en su estructura y sus propieda-
des, que puedan afectar al sistema de software resultante, verifcar
que los requerimientos no funcionales estn presentes en la arqui-
tectura, as como determinar en qu grado se satisfacen los atribu-
tos de calidad. Cabe sealar que los requerimientos no funcionales,
tambin son conocidos como atributos de calidad. De acuerdo al es-
tndar IEEE 610.12-1990 [3], un atributo de calidad es una caracters-
tica que afecta la calidad de un elemento. En esta defnicin, el tr-
mino caracterstica se refere a aspectos no funcionales, mientras
que el trmino elemento se refere a un componente o sistema.
Los atributos de calidad se clasifcan en dos grupos [4]: operaciona-
les y de desarrollo. Los atributos operacionales son las cualidades
del sistema que estn en operacin, por ejemplo: rendimiento, con-
fabilidad, disponibilidad, tolerancia a fallas. En cambio, los atribu-
tos de desarrollo son las cualidades del sistema que son relevantes
desde una perspectiva del desarrollo de software, por ejemplo: faci-
lidad de modifcacin, facilidad de re-utilizacin, fexibilidad.
Primeros inicios
Los primeros esfuerzos en realizar evaluaciones a arquitecturas de soft-
ware utilizando un proceso estructurado y defnido, fueron descritos en
un trabajo seminal hecho por Parnas y Weiss [5] en 1985. En l se propone
utilizar revisiones de diseo activas, que consisten en detectar errores e
inconsistencias, por ejemplo aquellos que no fueron detectados en la fase
de requerimientos. Este proceso consiste en elaborar una serie de cues-
tionarios cuidadosamente escritos, de tal manera que el revisor no pueda
responderlos de una manera pasiva, es decir, con un S o un No.
Cada cuestionario se disea para encontrar diferentes tipos de erro-
res, por lo que cada uno, evala aspectos especfcos del diseo.
Estos, a su vez, junto con la documentacin del diseo, se entregan
para su evaluacin a un grupo de revisores expertos en uno o varios
aspectos especfcos del diseo. En promedio, la duracin de dichas
revisiones se lleva de uno a dos das, dependiendo de la complejidad
del diseo, as como del nmero de revisores.
Cundo es recomendable evaluar?
La evaluacin a la arquitectura puede efectuarse en varios momentos,
dependiendo de la etapa de construccin en que se encuentre. La evalua-
cin clsica se efecta una vez que la arquitectura se ha terminado y an
no se implementa. La evaluacin temprana se lleva acabo una, o varias
veces durante la etapa de construccin de la arquitectura, mientras que
la evaluacin tarda, se realiza cuando la arquitectura existe y la implanta-
cin se ha completado. Clements, Kazman y Klein [6] proponen dos reglas
de oro para determinar el momento de efectuar la evaluacin:
1. Realizar una evaluacin cuando el equipo de desarrollo inicia a
tomar decisiones que afectan directamente a la arquitectura; y...
2. Cuando el costo de no tomar estas decisiones podra pesar ms,
que el costo de realizar una evaluacin.
Tcnicas de evaluacin
Existen varias tcnicas para evaluar arquitecturas de software, que
se clasifcan en cualitativas y cuantitativas. Dentro de las tcnicas de
evaluacin cualitativas se pueden utilizar: escenarios, cuestionarios
o listas de verifcacin. Por otro lado, en las tcnicas de evaluacin
cuantitativas se pueden emplear: mtricas, simulaciones, prototi-
pos, experimentos o modelos matemticos; en la fgura 1 se mues-
tran de manera grfca estas tcnicas.
Evaluando la Arquitectura de Software
Parte 1. Panorama General
Por Omar Gmez
Omar Salvador Gmez Gmez obtuvo el grado de Maestro en Ingeniera de Software en el Centro de Investigacin en Matemticas. 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 ogomez@ieee.org
// PRCTICAS
41
ENE-FEB 2007 www.softwareguru.com.mx
La mayora de los mtodos de evaluacin utilizan escenarios, que son
secuencias especfcas de pasos que involucran el uso o la modifcacin
del sistema. Por lo regular, las tcnicas de evaluacin cualitativas son
usadas cuando la arquitectura se encuentra en construccin, mientras
que las tcnicas de evaluacin cuantitativas, se usan cuando la arqui-
tectura ya ha sido implantada. Por ejemplo, es posible hacer uso de mo-
delos matemticos tales como teora de colas, para medir el desempeo
de un conjunto de componentes EJB en una aplicacin J2EE [7].
Planear o no la evaluacin
Las evaluaciones pueden ser planeadas o no planeadas. Una eva-
luacin planeada es aquella que ha sido contemplada dentro del
ciclo de vida de desarrollo, por lo que es parte de las activida-
des del proyecto. Son varios los beneficios que se obtienen de
realizar evaluaciones, algunos de estos son descubrir defectos e
inconsistencias en la fase de diseo, asegurar que se cumplan
los atributos de calidad, as como reducir los costos del proyecto.
Comnmente una evaluacin no planeada, se presenta cuando la
arquitectura de software contiene varios defectos que han sido
detectados en etapas tardas del desarrollo, por ende, realizar
una evaluacin no planeada, representa retrasos en los tiempos
de entrega, as como un incremento en los costos del proyecto.
Es recomendable que en el proyecto se contemple realizar una o
varias evaluaciones a la arquitectura.
Quines participan en la evaluacin?
Generalmente las evaluaciones a la arquitectura se hacen por los
miembros del equipo de desarrollo, tales como el arquitecto, di-
seador y administrador del proyecto. Sin embargo, puede haber
excepciones en las que se contrate a un grupo de personas espe-
cialistas para realizar la evaluacin. El cliente tambin se interesa
por los resultados obtenidos de la evaluacin, ya que puede deci-
dir continuar o no con el proyecto, dependiendo de los resultados.
Un ejemplo de este caso es el siguiente, tras haber efectuado una
evaluacin temprana, se determin que no es posible implantar la
arquitectura con la infraestructura disponible, ya que esta no cum-
plir con los tiempos de respuesta requeridos por el cliente.
Resultado de la evaluacin
Una vez que se ha efectuado la evaluacin, se debe elaborar un repor-
te. Que debe presentarse como un documento preliminar, con la fna-
lidad de que se corrija por las personas que participaron en la evalua-
cin. El contenido del reporte responde a dos tipos de preguntas [6]:
Se ha diseado la arquitectura mas apropiada para el sistema?
Cul de las arquitecturas propuestas es la ms apropiada para el
sistema a construir?
Adems de responder estas preguntas, el reporte tambin indica el
grado en que se cumplieron los atributos de calidad.
Conclusiones
En esta primera parte presentamos un panorama general sobre las
evaluaciones a las arquitecturas de software. Entre los puntos ms
importantes destacaron: el propsito de evaluar, los momentos y
los tipos de tcnicas de evaluacin, as como los resultados que se
obtienen de sta. En la prxima ocasin, expondremos de manera
detallada, algunos de los mtodos de evaluacin a arquitecturas de
software ms usados en la actualidad.
Realizar una evaluacin no
planeada, representa retrasos
en los tiempos de entrega, as
como un incremento en los
costos del proyecto.
Referencias
1. Len Bass, Paul Clements & Rick Kazman. Software Architecture in
Practice. SEI Series In Software Engineering. Segunda edicin. Addison
Wesley, 2003.
2. Anthony Finkelstein & John Dowell. A Comedy of Errors: The Lon-
don Ambulance Service Case Study. Proceedings of 8th International
Workshop on Software Specification and Design (IWSSD-8), Schloss
Velen; Alemania, Marzo 1996.
3. Standard Glossary of Software Engineering Terminology., Institute of
Electrical and Electronics Engineers (IEEE), 1990.
4. Jan Bosch & Peter Molin. Software Architecture Design: Evaluation
and Transformation. Proceedings of IEEE Engineering of Computer
Based Systems Symposium (ECBS 99) 1999.
5. David L. Parnas & David M. Weiss. Active Design Reviews: Principles
and Practices. Proceedings of 18th International Conference on Software
Engineering 1985.
6. Paul Clements, Rick Kazman & Mark Klein. Evaluating Software Archi-
tectures. SEI Series in Software Engineering. Addison Wesley, 2002.
7. Yan Liu & Ian Gorton. Performance Prediction of J2EE Applications
Using Messaging Protocols. International SIGSOFT Symposium on
Component-based Software Engineering (CBSE). Mayo 2005.
Figura 1. Clasificacin de las tcnicas de evaluacin.
42
ENE-FEB 2007 www.softwareguru.com.mx
Brindndole un Hogar al Software:
DIAGRAMAS DE DISTRIBUCIN
Por Charlie Macas y Sergio Orozco
Imagina tu casa con un televisor de plas-
ma de 50 pulgadas, un refrigerador que te
enva mensajes cuando la leche o el huevo
estn por terminarse; una estufa con parrilla
electrnica que se apaga sola; una sala de
piel que da masajes y autoregula su tempe-
ratura; dos lneas telefnicas con telfonos
inalmbricos de 5.8 Ghz de largo alcance y
una cama king size automtica con masajes;
todo esto para que lo disfrutes t, tus padres
y tus cinco hermanitos. De fantasa, cierto?
Contenido en una maravillosa casa duplex
de inters social de 70 metros cuadrados.
Espera! Maravillosa casa duplex para todo
esto? Hablemos de incongruencias. No pa-
rece ser el lugar ms apropiado para tener
esas comodidades, cierto?
Soar no cuesta, no planear s
Antes de decidir comprar los anteriores com-
ponentes, tienes que asegurarte que van a
caber o, funcionar en tu casa. Y si no caben, y
tienes el presupuesto, tendrs que mudarte
a otra casa ms apropiada.
Bueno, pues eso mismo sucede con el desa-
rrollo de software. Antes de decidir desarro-
llar una aplicacin con ciertos requerimien-
tos, tienes que asegurarte que cuentas con
la infraestructura apropiada para ponerlos a
funcionar sin problema. Si no cuentas con
ella, tendrs que decidir cul ser el equipo
y ambiente adecuados (computadoras, ser-
vidores, sistemas operativos, etctera) para
instalar y hacer funcionar tu aplicacin. Por
supuesto, restringindote al presupuesto
disponible para tal fn.
Antes de llenar tu casa con todo tipo de mue-
bles y componentes, de seguro visualizars si
tu casa tiene espacio dnde colocarlos. Si eres
sufcientemente precavido evaluars si la ins-
talacin elctrica o hidrulica es la apropiada
para que funcionen correctamente. Si eres un
diseador de interiores o un arquitecto, bos-
quejars algn plano para asegurarte de estar
tomando la decisin correcta.
As mismo ocurre en el caso del software,
antes de desarrollar un conjunto de compo-
nentes que formarn una aplicacin, pensa-
rs si el equipo e infraestructura con la que
cuentas es apropiada para dicho sistema. An-
tes de desarrollar el software, e incluso antes
de comprometerte con tu cliente a desarro-
llarlo, tendrs que asegurarte de identifcar
si se cuenta con el equipo apropiado o con el
presupuesto para adquirirlo y as poder hacer
funcionar correctamente la aplicacin.
Proponer o Restringir
Al inicio del proyecto, en lo que podemos lla-
mar fase de Inicio o Concepcin (Inception)
en el caso del Proceso Unifcado, tendrs que
desarrollar un primer diagrama de distribu-
cin para identifcar las restricciones fsicas
de hardware en el proyecto (el equipo e ins-
talaciones con las que cuenta el cliente para
el proyecto), o en su defecto, documentar el
hardware propuesto, en el cual se tendr que
invertir para hacer funcionar el software.
En la fase posterior, la de Elaboracin, este
diagrama tendr que ser refnado para dejar
especifcadas las decisiones tomadas con
respecto a esta perspectiva del sistema.
El diagrama de distribucin es el artefac-
to de UML que nos permite representar los
elementos fsicos de un sistema; lo que mu-
cha gente conoce tradicionalmente como la
arquitectura fsica. En este puedes visuali-
zar las computadoras (clientes, servidores,
PDAs), elementos adicionales de hardware
(impresoras, ruteadores) y las conexiones
(la red). Incluso puedes indicar qu sistema
operativo corre en una computadora o en
cul de las computadoras pondrs a correr
ciertos componentes de tu aplicacin.
Los componentes de software realizan la
dinmica de un sistema; representan agre-
gaciones de clases. Son los moldes de fa-
bricacin que construyen a los objetos que
colaboran en tiempo de ejecucin para llevar
acabo lo que especifcan los requerimientos.
Estos componentes tienen que ser colocados
en el hardware para que los podamos usar.
Entender la manera, lugares y necesidades
que los alojarn es un factor importante en
la defnicin del dominio de la solucin.
Elementos del Diagrama
de Distribucin
Nodo. Representa un recurso de cm-
puto que puede alojar artefactos y que
se puede interconectar con otros nodos
para describir topologas de redes.
Dispositivo. Representa un recurso f-
sico de cmputo que posee capacidad
de procesamiento; se representa igual
que un nodo.
Entorno. Ejecutable. Representa un
recurso lgico de cmputo dentro
del cual se alojan manifestaciones de
componentes de cierto tipo.
// UML
Charlie Macas 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 capacitacin prctica y consultora en UML, CMMI y orientacin 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 capacitacin prctica y consultora en UML, CMMI y orientacin a objetos. Milestone Consulting es la primer empresa mexicana miem-
bro de la OMG. info@milestone.com.mx www.milestone.com.mx
43
ENE-FEB 2007 www.softwareguru.com.mx
Un artefacto no es una Ilusin
Un concepto que para muchos resulta difcil de
entender, es el artefacto. Especialmente por su
relacin con el concepto de componente. El ni-
vel de abstraccin es diferente en ambos casos,
aunque podemos referirnos en cierta situacin,
a elementos muy similares.
Por ms extrao que parezca, ni las clases ni
los componentes se ejecutan en el hardware,
ya que estos tipos de elementos carecen de
manifestacin en el mundo fsico. Para lograr
la manifestacin de las clases y componentes
necesitamos un artefacto.
Un artefacto es una pieza de informacin fsica
que usa o produce un proceso de desarrollo de
software, una distribucin o el funcionamiento
de un sistema. Ejemplos de artefactos, son los
archivos que distribuimos en el hardware, como
los archivos JAR, WAR, EAR, EXE y DLL. En la
siguiente fgura podemos observar la relacin
que existe entre el concepto tradicional de com-
ponente y el artefacto donde se manifesta.
Ambientando la Casa
Los componentes necesitan de un ambiente
donde se ejecutarn. Si deseas dejar grf-
camente documentada esta informacin. El
ambiente de ejecucin se puede representar
de manera similar a los nodos, es decir, en
forma de cubo. Slo que dicho ambiente se
aloja dentro de un dispositivo, como se pue-
de ver en la ilustracin.
As que antes de decidir llenarte de comodi-
dades, asegrate de contar con el espacio y
las caractersticas necesarias en tu casa. An-
tes de invertir en la compra o desarrollo de
un software, asegrate que tendr un hogar
apropiado donde hospedarse.
Por ms extrao que parezca, ni las
clases ni los componentes se ejecutan
en el hardware, ya que estos tipos de
elementos carecen de manifestacin en
el mundo fsico.
Rutas de Comunicacin. Asociacin
que se modela slo entre objetivos
de distribucin (nodos, dispositivos
o entornos ejecutables) indicando
que estos pueden intercambiar men-
sajes y seales.
Componente. Representa unidades
autocontenidas de software que
realizan a las clases, o a cualquier
elemento empacable
Artefacto. Representa la manifes-
tacin de un componente en el
mundo fsico.
Figura 1. Dos recursos de cmputo con capacidad
de procesamiento conectados y alojando artefactos.
Figura 2. Relacin entre el artefacto y el componente
manifestado.
Figura 3. Artefacto que se ejecuta en un ambiente de
ejecucin dentro de un dispositivo.
44
ENE-FEB 2007 www.softwareguru.com.mx
E
n la columna anterior habl sobre Software as a Service (SaaS), el
cual puede ser denominado como un patrn estratgico, tal vez el
de mayor proyeccin e importancia hacia el resto de sta dcada. Otros
patrones estratgicos que existen actualmente en el mercado son:
Win32 la mayora de aplicaciones actuales para Microsoft Windows.
Dispositivos telfonos, porttiles, conectados a tv, embebido.
Empresarial cliente-servidor, 3 capas.
Videojuegos escritorio, consola, porttil, telfonos.
En esta ocasin, me referir al que consideramos en Microsoft, el se-
gundo patrn estratgico en importancia para el futuro: Offce Oriented
Applications. Las Offce Business Applications (OBA) son una nueva
categora de aplicaciones de negocio, que permite utilizar aplicacio-
nes de negocio (line of business systems) desde Microsoft Offce.
Imagina que tienes una capa de datos (backend), y una capa de l-
gica e integracin con procesos de negocio (que residen en line-
of-business applications, tales como ERPs, CRMs y SCMs), pero te
falta tu capa de presentacin. En lugar de desarrollar una aplicacin
web, un cliente windows, o utilizar el front-end de un CRM especfco,
puedes utilizar aplicaciones de Microsoft Offce como tu capa de pre-
sentacin y dejar que los usuarios interacten con los procesos de
negocio, a travs de programas como Outlook que ya conocen bien,
y que de todos modos, tienen abiertos durante todo el da.

El siguiente diagrama ilustra a grandes rasgos la arquitectura de este
nuevo tipo de aplicaciones.
Office System 2007 como plataforma de desarrollo
Offce 2007 ser el gran habilitador de este tipo de aplicaciones. Los
objetivos principales de esta versin son:
1. Mayor productividad en lo que cada herramienta ofrece.
2. Transformarse en un cliente de tres reas poco desarrolladas en las
empresas: a) Comunicaciones unifcadas y colaboracin; b) Adminis-
tracin de contenido empresarial; c) Inteligencia de negocios.
3. Convertirse fnalmente en una plataforma de desarrollo autntica.
En particular, es interesante la plataforma del servidor, que incluye
una gran cantidad de nuevas tecnologas, entre las que destacan:
Colaboracin: Blog y Wiki, RSS, Web Services API.
Administracin de contenido: Extensible Type System, Records
Repository API, Web Management API, Information Rights API,
Document Converter.
Inteligencia de negocios: Excel Services Web API, Excel Services
Calculation Engine, Filter Web Parts, Data Connection Library.
Procesos de negocio y formas: Pluggable SSO, Infopath Services.
Bsqueda empresarial: Web Services Search API, Business Data
Catalog, iFilters.
Portal: Web Parts Framework, User Profle API, Audience Targeting API.
Es importante sealar que estos servicios descansan en los nuevos
Windows SharePoint Services 3.0 (WSS 3.0) que se ofrecen gratuita-
mente para usuarios de Windows Server 2003 y Small Business Server.
La infraestructura que ofrece WSS 3.0 incluye: fujos de trabajo, meta
datos, bsqueda, auditora, ayuda personalizada y otros servicios.
Conclusin
OBA permitir abrir el retorno de inversin de toda la tecnologa em-
presarial. Consiste en aprovechar la plataforma existente al mximo.
Algunos ejemplos: Panorama (BI en Sharepoint), Oracle Siebel (CRM
desde Outlook), Hummingbird (Administracin de documentos desde
Word), Fractal Edge (Visualizacin desde Excel) y Mind Manager (Ma-
pas mentales con Open XML), son algunos ejemplos concretos.
Microsoft trabaja ya en Offce 14, y la principal inversin a futuro
ser precisamente la categora denominada LOBi (Line of Business in-
tegration). Evalenlo con sus usuarios, y decidan ustedes mismos.
Luis Daniel Soto
Referencias
Arquitectura OBA: msdn.microsoft.com/architecture/offce
Desarrollo OBA: msdn.microsoft.com/offce
WSS 3.0: www.microsoft.com/technet/windowsserver/sharepoint
Offce Business Applications (OBA) y
Line of Business Integration (LOBi)
El Prximo Patrn Estratgico
/*TENDECIAS EN SW*/ // COLUMNA
Luis Daniel Soto es director de Evangelizacin en nuevas tecnologas en Microsoft Mxico. Entre sus funciones actuales estn la de adminis-
tracin de la relacin con el Gobierno Mexicano para el desarrollo de la industria de software (ProSoft). Es jurado del Gran Orden del Honor
al Mrito Autoral en software del INDAUTOR/SEP y fundador de diversas asociaciones de TI. Gan el primer lugar en el concurso nacional
para software de exportacin en 1989. blogs.msdn.com/luisdans
Figura 1. Arquitectura de aplicaciones orientadas a Ofce.
E
l trmino Realidad Virtual engloba
una gran cantidad de ideas filosfi-
cas, aplicaciones y reas de investigacin,
todas ellas con un tema en comn: crear
la sensacin de estar ah, en un lugar
que no existe o que en un momento dado
es imposible alcanzar. No est muy claro
quin fue el primero en acuar el trmi-
no; se mencionan autores como Damien
Broderick, escritor australiano autor de
The Judas Mandala (1982), y Jaron La-
nier, investigador norteamericano funda-
dor de VPL Research, una compaa que
desarrollaba productos y aplicaciones de
Realidad Virtual.
Uno de los primeros ejemplos de sistemas
de Realidad Virtual es el Sensorama, de
Morton Heilig, desarrollado en 1962; un
dispositivo mecnico que proyectaba una
pelcula de cine cuya reproduccin era re-
lativamente interactiva, e inclua la estimu-
lacin de mltiples sentidos: visin, soni-
do, olfato y tacto. El sistema simulaba un
paseo en bicicleta donde adems de audio
y video, se liberaban diferentes aromas,
dependiendo del lugar a visualizar en ese
momento. Se trataba de una verdadera in-
terfase multimodal o sistema multimedia,
desarrollada antes que las computadoras
digitales tuvieran posibilidades concretas
de simular entornos virtuales.
Cuando se habla de Realidad Virtual, tal
vez las imgenes que vienen a la mente
son las inspiradas por pelculas como The
Lawnmower Man o ms recientemente
The Matrix. Estas y otras producciones
cinematogrficas, presentan un estado de
la tecnologa que an no se ha alcanza-
do, y estimulan la imaginacin al mostrar
la posibilidad de crear simulaciones que
sean indistinguibles o mucho ms atrac-
tivas que la misma realidad. Lo cierto es,
que estamos an lejos de tener simulado-
res que confundan la mente del usuario a
tal grado, que ya no sea posible distinguir
lo real de lo sinttico.
Simular realidades alternativas y entornos
virtuales, implica una gran cantidad de
reas de conocimiento. La idea principal
es que el camino hacia una simulacin de
la realidad, pasa por la estimulacin simul-
tnea y coherente de todos nuestros sen-
tidos: vista, odo, olfato, tacto y gusto. La
mayor parte de la investigacin y el desa-
rrollo se han enfocado en la vista y el odo.
El primer prototipo de visualizacin de in-
mersin total, que utiliz tecnologa digital
fue el Head Mounted Display (HMD), desa-
rrollado por Ivan Sutherland y Bob Sproull
del XEROX PARC en 1962.
El HMD de Sutherland y Sproull, fue uno
de los primeros intentos por presentar al
usuario una interfase en la que la inte-
raccin imitara la forma en que nos des-
envolvemos en la vida real: las imgenes
presentadas en una pantalla situada fren-
te a los ojos, se actualizan dependiendo
de los movimientos de la cabeza, como si
el usuario estuviera dentro del entorno
artificial. La tecnologa del HMD ha evolu-
cionado mucho en cuanto a la calidad de
las imgenes, pero nunca ha tenido mucha
aceptacin, debido a que el dispositivo es
muy incmodo (ver cybersickness).
Recientemente, los sistemas de visualiza-
cin han adoptado el uso de proyectores,
y entre los dispositivos ms sofisticados,
se encuentran los CAVE (Cave Automatic
Virtual Environment), seis o ms panta-
llas de proyeccin que forman un rea en
la que, el usuario puede colocarse y verse
rodeado de imgenes sintticas proyec-
tadas en estreo simulando profundi-
dad con la ayuda de lentes polarizados
especiales. La calidad de las imgenes
sintticas, ha mejorado mucho con los
desarrollos del hardware especializado
para la sntesis de grficas en 3D. Hoy en
da una PC con tarjeta de grficos profe-
sional, tiene poder de cmputo suficiente
para visualizar escenas animadas com-
plejas de gran realismo. Para tener una
idea ms clara, una aplicacin 3D actual,
es capaz de animar una escena urbana
(parques y edificios), con alrededor de 35
mil personajes con comportamiento inte-
ractivo e independiente de alta calidad
visual, a ms de 30 cuadros por segundo
(calidad de cine) para ms informacin:
http://vrlab.epfl.ch (VRlab-EPFL Suiza).
En cuanto al audio, las tecnologas actua-
les permiten la reproduccin de sonido
envolvente de alta calidad, y podemos
decir que en buena medida, este reto ha
sido superado.
El resto de los sentidos presentan pro-
blemas mucho ms complejos de atacar,
siendo el olfato y el gusto los menos es-
tudiados. Sin embargo, existen trabajos
de investigacin relevantes que tratan
de resolver el problema de la produccin
y liberacin controlada de diversos tipos
de aromas. As mismo, hay prototipos
como el food simulator que trata de imi-
tar el masticar y saborear alimentos un
tipo particular de interfase hptica (ver
los trabajos de H. Iwata, Universidad de
Tsukuba, Japn).
Considerando el trabajo de investigacin y
los productos ya existentes en el mercado,
el tacto es el tercer sentido humano ms
estudiado. Las interfaces hpticas (haptic
46
ENE-FEB 2007 www.softwareguru.com.mx
Realidad Virtual
Estimulando la Imaginacin
/* CTEDRA Y MS */ // COLUMNA
El Dr. Mario Arturo Gutirrez Alonso es profesor asistente del Departamento de Computacin y Sistemas de Informacin de la Escuela
de Ingeniera y Arquitectura del ITESM Campus Toluca. Sus reas de inters son la Realidad Virtual, Animacin 3D y la Inteligencia Artificial
aplicadas al desarrollo de interfaces multimodales y simulacin.
45
ENE-FEB 2007 www.softwareguru.com.mx
interfaces) son dispositivos electromec-
nicos robots, que permiten simular la
sensacin de tocar objetos con las manos y
otras partes del cuerpo, como el torso. Las
interfases hpticas ms comunes son los
sistemas tipo PHANTOM. Estos dispositi-
vos son brazos mecnicos con una especie
de pluma o estilete, la cual, al ser manipu-
lada por el usuario, permite simular la re-
sistencia de diferentes materiales; como si
tocramos con una pluma, superficies con
distinta textura y resistencia: metales, ro-
cas, esponjas, etctera. Otros dispositivos
hpticos comerciales, son los producidos
por la compaa Immersion Co. tales como
la Haptic Workstation: un exoesqueleto
que produce retroalimentacin de fuerza
en las muecas y los dedos de ambas ma-
nos. Al combinar estas interfases con un
sistema de sonido envolvente y un HMD, o
un sistema CAVE, se pueden obtener entor-
nos virtuales interactivos, muy tiles para
realizar estudios de ergonoma en cabinas
de todo tipo de vehculos; simulaciones de
intervenciones quirrgicas; terapias de in-
mersin total para el tratamiento de fobias
(fobia social, aracnofobia, claustrofobia) y
juegos de video, entre otros.
Son muchos los retos de investigacin
a superar, antes de tener un sistema de
Realidad Virtual en verdad convincente y
accesible al pblico. En su mayora, los
prototipos actuales son desarrollados por
universidades y empresas que le apuestan
a las tecnologas emergentes. Sin embargo,
poco a poco los frutos de la investigacin
se van fltrando en aplicaciones comercia-
les, y hoy en da tenemos efectos visuales
de gran realismo en el cine y en juegos de
video. Estos ltimos son lo ms cercano
al tringulo ideal de la Realidad Virtual,
pues son la integracin de tres componen-
tes principales: interaccin, inmersin y
tiempo real. Una de las reas de investi-
gacin ms vanguardistas, en cuanto al
componente interactivo se refiere, son
las llamadas brain interfaces, trabajos
pioneros encaminados a utilizar las sea-
les elctricas producidas por el cerebro
y capturadas mediante electrodos, como
medio de comunicacin del usuario con
la computadora. Los avances actuales
permiten un control con cierta precisin
del cursor de un mouse y la ejecucin de
acciones simples como abrir o cerrar una
aplicacin. Quizs el fin ltimo ser llegar
a un sistema como el de The Matrix, en
el que la simulacin interactiva se reali-
ce estimulando directamente el cerebro,
pero afortunada o desafortunadamente,
an estamos muy lejos de ello.
La experiencia demuestra que, no se re-
quiere de dispositivos muy complejos para
lograr una inmersin total del usuario,
y hacerle olvidar el mundo que lo rodea
en favor de una realidad alternativa. Una
pantalla de computadora o televisin con
imgenes y sonido bien diseados, son ca-
paces de mantener la atencin del usuario
y aislarlo del mundo exterior por horas y
hasta das, como todo buen aficionado a
los videojuegos podr constatar.
En todo caso, a los interesados en in-
cursionar en el fascinante mundo de la
Realidad Virtual, les recomiendo docu-
mentarse en temas de grficas por compu-
tadora, aprender a programar aplicaciones
en OpenGL y/o Direct3D (DirectX) y revisar
la abundante literatura cientfica sobre in-
teraccin humano-computadora, entornos
virtuales y Realidad Virtual en general.
Por Mario Gutirrez
Las interfaces hpticas son dispositivos
electromecnicos robots,
que permiten simular la sensacin de
tocar objetos con las manos y otras
partes del cuerpo.
48
ENE-FEB 2007 www.softwareguru.com.mx
M
xico no escapa a la crisis mundial de dficit de profesionistas con
capacidades reales de programacin. El desarrollo de software
atrae cada vez a menos jvenes, y muchos de estos cambian de carrera
antes de graduarse. No es extrao encontrar en las universidades, gene-
raciones de carreras orientadas al desarrollo de software, con menos de
10 alumnos. Mucho se ha hablado de las causas de esta crisis, algunos
culpan a la falta de profesionalismo y experiencia real de los maestros,
otros, al mal ejemplo que damos los que somos parte de esta industria:
nuestras jornadas de trabajo, niveles de estrs y costumbres geeks no
son muy atractivas para jvenes de 18 aos que slo se quieren divertir.
Hace un par de aos, Gerardo Horvilleur, mejor conocido como El
Mago, se preguntaba si parte del problema no sera la creciente
complejidad de los entornos de desarrollo de software.
Si tienes ms de 35 aos, aceptars que la forma de empezar a pro-
gramar actual no importa si profesas la religin de .Net, Java o al-
gn culto menor no se compara en nada con las micros, gloriosas
mquinas como las Commodore, Apple o Tandys que llenaron nuestra
adolescencia de disfrutes computacionales. Recordars el ansia de
esperar el siguiente Compute Gazzete o Ahoy! en el Sanborns, para
copiar los programas de BASIC, sazonados con alguna otra rutina de
ensamblador de 6510 en glorioso cdigo hexadecimal. Este tipo de
cosas te iniciaron en la programacin y gracias a ellas decidiste que
queras hacerlo por el resto de tus das.
Los chavos de hoy, no tienen estas maravillosas opciones. No conoz-
co mucho el caso de .Net, pero en el de Java al menos, creo que bajar
Glassfsh, Netbeans, y dems cosas bsicas para programar, no
llama tanto la atencin de un adolescente como jugar el videojuego
de moda y convertirse en consumidores, ms que en creadores. Con
las micros, si queras un juego, casi tenas que hacerlo. Ah es donde
Mago cree que est el problema: los jvenes ya no eligen estudiar
programacin, simplemente porque no es tan divertido y sencillo
como lo era en esos tiempos.
Afortunadamente, Gerardo no se qued con las manos cruzadas, y de-
sarroll Simple J, una novedosa apuesta a despertar la curiosidad de
los chavos, creado con la intencin muy noble de regresar la progra-
macin a su origen esencial: diversin. SimpleJ recrea un entorno de
desarrollo virtual en Java, que permite crear juegos de video y compar-
tirlos con el mundo. Simple J simula una computadora simplifcada,
para que sea ms sencillo aprender a programar y evitar distracciones
en detalles irrelevantes. La decisin de enfocarse en videojuegos me
parece genial, es algo que los chavos conocen bien y les llama la aten-
cin. Sin darse cuenta, estarn aprendiendo a programar.
No se necesita ser un experto para comenzar con SimpleJ. En el sitio
de SimpleJ (www.simplej.com) est disponible un tutorial enfoca-
do a quienes no saben absolutamente nada de programacin, y los
gua durante los primero pasos de la programacin. Se comienza
con cosas sencillas, y va aumentando la complejidad poco a poco,
como si el programador fuera pasando de nivel, de tal forma que
hacer un juego, se convierte en s mismo, en un juego.
Una parte muy importante de la escena de programacin de hace
20 aos, eran los grupos de usuarios donde los adolescentes nos
presumamos unos a otros lo que habamos aprendido: scrolls de
letras, msica sintetizada, campos de estrellas que giraban, justo
como en la Guerra de las Galaxias. Este componente es esencial
en el desarrollo de buenos programadores, ya que normalmen-
te vienen en mltiplos, y aprenden juntos, ya sea colaborando o
compitiendo. SimpleJ promueve esto, a travs de un applet que
permite publicar los juegos desarrollados dentro de una pgina
web para presumirlos al mundo. As que, espero pronto encontrar
muchos blogs de chavos mostrndole al mundo sus creaciones.
Adicionalmente, SimpleJ cuenta con una comunidad donde por
medio de foros, se pueden hacer preguntas, o ponerse de acuer-
do con alguien ms para hacer un videojuego. Mago personal-
mente contesta todas las dudas que puede, pero la comunidad es
principalmente soportada por alumnos de todo tipo de institucio-
nes acadmicas, desde universitarios del ITAM, hasta estudian-
tes del bachiller Juan de Dios Btiz del IPN. Estas son escuelas
visionarias, que han entendido el potencial de dicha herramienta
en el proceso educativo. Espero que pronto se unan muchas ms
instituciones acadmicas a este esfuerzo.
Finalmente, una de las partes ms importantes de este desa-
rrollo adems de que es 100% mexicano, es su modelo de
negocios. SimpleJ es software libre, licenciado con GPL y com-
pletamente abierto. Mago ha decidido concentrar sus esfuerzos
para hacer sustentable este proyecto a travs de la venta de un
libro que tiene disponible para aprender a programar juegos de
video con SimpleJ.
Si tienen algn hijo o familiar adolescente y con intereses tecnolgi-
cos, no dejen pasar la oportunidad de pasar un buen rato con ellos
recordando viejos tiempos, y ayudando a que la industria de software
en Mxico tenga los mejores programadores. Una felicitacin desde
aqu, al talento y entusiasmo de Gerardo (mago@simplej.com), sin
duda, un ejemplo a seguir en el software libre mexicano.
Emilio Osorio
SimpleJ
Regresando la Diversin al Desarrollo de Software
/*TIERRA LIBRE*/ // COLUMNA
Emilio Osorio colabora actualmente como Consultor Asociado para Sun Microsystems Mxico. 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 mtodos giles en sus organizaciones.
Ferviente entusiasta de la aplicacin social de la tecnologa, a ultimas fechas esta involucrado con Organizaciones de la Sociedad Civil. Emilio estar
encantado de recibir sus comentarios y quejas en http://tecnonirvana.org/ y en oemilio@tecnonirvana.org
Cuando estamos inmiscuidos en
el rea de la enseanza, muchas
veces repetimos patrones, y ter-
minamos enseando de la mis-
ma forma en que nos dictaban
clase nuestros maestros. Usted,
que ya ha aprendido a progra-
mar, recuerda sus inicios?
Remontmonos a aquella clase de Pascal,
Cobol, Fortran, Basic o C. Como podr re-
cordar, lo que se haca era bsicamente
analizar a detalle los resultados, o bien,
proporcionar los datos necesarios para ge-
nerarlos. Posteriormente, se realizaba el
diagrama de fujo, lo cual implicaba disear
la solucin, y antes de pasar a construir-
lo, se verifcaba a travs de una prueba,
que eso realmente estaba correcto. Todos
aprendimos, pero, ser esta la manera
ms efectiva de ensear? Tomemos unos
minutos de nuestro tiempo para considerar
ciertos aspectos de la enseanza.
Para poder analizar un problema, encontrar
rpidamente una solucin y construirla, se
requiere del desarrollo de ciertas habilida-
des. Esto se da a travs de un adecuado
proceso de enseanza-aprendizaje. Sin em-
bargo, los cimientos deben defnirse desde
un primer contacto con algn curso de pro-
gramacin. Por lo general, hay un trabajo
previo con problemas razonados donde
estn involucradas diferentes variables y
con aplicaciones prcticas; esto ayudar a
que ese primer encuentro se convierta en
un reto atractivo.
Para que un estudiante pueda llegar a
construir programas sin importar el len-
guaje de programacin, es muy importan-
te el desarrollo de la lgica. El objetivo no
es ensearle instrucciones como, impri-
mir, leer, etctera. Cualquiera puede
aprenderse lneas de texto y su significa-
do, sino que debemos enfocarnos en en-
searles cundo y cmo usarlas, cundo y
cmo combinarlas, incluso mejorar la solu-
cin usando otras instrucciones. El alumno
necesita entender a detalle el significado
de cada tema y complementar esto con su
prctica y aplicacin, al mismo tiempo que
utiliza un lenguaje de programacin.
Muchas veces, para los alumnos resulta
difcil entender signifcados como, ciclos,
condicionales, mtodos, archivos, arreglos,
y ms an si esto se combina con la teora
de objetos y cmo pueden ser aplicados.
As pues, surge en el estudiante la tpica
pregunta: y para qu me sirve esto que
me estn explicando?
No hay que olvidar que, cuando el lenguaje
de programacin es sencillo, esas instruc-
ciones que se aprenden rpidamente se
pueden memorizar; pero quizs esto slo
servira cuando la persona ya tiene un ca-
mino recorrido en cuanto a la lgica de pro-
gramacin, de otra forma no lograremos un
aprendizaje signifcativo.
Uno de los puntos que debemos observar
con atencin, es que siempre se debe tener
una estrategia de enseanza donde se man-
tenga una relacin directa entre aquello que
se est enseando, y la vida real; de prefe-
rencia algo que los estudiantes ya hayan ex-
perimentado previamente. Por ejemplo, cul
es el proceso que tiene una tienda de auto-
servicio cuando la cajera pasa el producto
por un lector de cdigo de barras, o qu su-
cede cuando ellos entran a un sitio en Inter-
net para comprar un libro, o bien, qu pasa
en un restaurante de comida rpida cuando
solicitan algn tipo de alimento. A travs de
estos ejemplos, entendern el signifcado y
la aplicacin de aquello que se est expli-
cando y as, despertaremos el inters por
resolver cierto tipo de problemas.
No ser lo mismo si el primer bloque de
problemas a resolver que enfrenta alguien
que est aprendiendo a programar, son
series de Ulam, Fibonnaci, funciones expo-
nenciales, logartmicas, nmeros primos,
o generar las races de una ecuacin cua-
drtica. Como educadores, debemos des-
pertar el inters de nuestros estudiantes;
de nosotros depende captar y conservar la
atencin para lograr un nivel de aprendiza-
je satisfactorio. Muchas veces esto se lo-
gra cuando nos enfocamos al desarrollo de
juegos, donde ellos tengan la capacidad
de cumplir con las especificaciones que se
les indic, y que adems, puedan aplicar
su maravillosa creatividad, que puedo ase-
gurar que nos dejar asombrados.
Como instructores, siempre hay que con-
siderar el tipo de pblico que en ese mo-
mento tengamos en frente. Adems, nos
ayuda mucho si mostramos los temas de
la manera ms grfica posible, sobre todo
cuando se trata de temas abstractos como
archivos, arreglos y mtodos. Podemos
50
ENE-FEB 2007 www.softwareguru.com.mx
Ensear a Programar es Mucho Ms
Que Slo Ensear un Lenguaje de Programacin
Por Consuelo Jimnez
// FUNDAMENTOS
Ing. Ma. del Consuelo Jimnez Fernndez es profesor asociado del departamento de Ciencias Computacionales en la Universidad de Monterrey. Ha recibi-
do en ms de diez ocasiones el primer lugar en el concurso de investigacin vinculada a la docencia de la UDEM, y tambin ha recibido el premio a la calidad
docente. Sus reas de especialidad son: Metodologas para el Desarrollo de Software, Lenguajes de Programacin, y Administracin de Proyectos. Actual-
mente, es una de las evaluadoras en las propuestas de proyectos para la incubadora en UDEM. cjimenez@udem.edu.mx
43
SEP-OCT 2006 www.softwareguru.com.mx
apoyarnos en paquetes que permiten si-
mular o animar la teora relacionada a
estos temas, y que tienen ejemplos repre-
sentativos y claros.
Otro aspecto importante que convendra
considerar en la enseanza de la progra-
macin, es que cuando no existen bases
firmes en el rea matemtica, se le difi-
culta ms al alumno captar rpidamente
operaciones tan simples como, clculo
de porcentajes, promedios, frecuencias,
divisores, etctera; todos ellos son con-
ceptos que se ensean desde la primaria,
pero que por no llevarlos a la prctica
suelen olvidarlos fcilmente. Es recomen-
dable tener diseado un curso en un am-
biente en lnea, ms para estos casos, de
tal forma que la persona que requiera un
refuerzo pueda acceder a manera de au-
toestudio a aquellos mdulos que le ayu-
den a repasar o entender esos conceptos.
No cree usted que los cursos enfocados
a desarrollar la lgica de programacin,
deberan ser parte esencial de los progra-
mas acadmicos desde la primaria?
Si nuestro objetivo es ensear a programar,
y vemos que existen reas de oportunidad
para ello, sera preciso hacer un anlisis al
grupo de personas que recibimos a travs
de algn instrumento diagnstico, as po-
dremos defnir estrategias y estilos adecua-
dos de enseanza-aprendizaje. El diseo de
nuestras estrategias nos ayudar a lograr
nuestra principal meta: pensar de forma
lgica, para luego programar utilizando un
lenguaje de programacin.
En realidad, son muchos los elementos
que en un primer curso, los estudiantes de
programacin tienen que aprender y domi-
nar: la lgica, el lenguaje para programar
donde la sintaxis puede ser simple o com-
pleja; los estndares, el desarrollo de la
documentacin y el entorno de desarrollo.
Si logramos que tengan estas bases bien
cimentadas, entonces de ah, se despren-
dern la correcta definicin y relacin que
tengamos entre los estilos de enseanza y
aprendizaje.
Todos los que nos dedicamos a la ensean-
za de la programacin, fuimos inspirados
por algn buen maestro, y nuestro deber
ahora, es transmitir lo mejor posible esta
pasin por lo que hacemos, tomando lo
mejor de nuestros instructores, y aadien-
do lo que hemos aprendido en el camino.
No le gustara a usted, que cada uno de
sus estudiantes por lo menos, conservara
una actitud positiva ante lo aprendido? El
baln est de nuestro lado.
Algunos puntos clave para tomar
en cuenta:
Analice a su pblico o grupo.
Defna sus estrategias de enseanza
y aprendizaje, considere los estilos.
Apyese de elementos grfcos,
animaciones o simulaciones.
Tenga como apoyo su curso en lnea
y retroinforme de manera constante.
Cree un banco copioso de ejercicios,
material de contenido y exmenes.
Sea sencillo en su explicacin.
Cambie siempre la actitud de su
grupo cuando sta sea negativa.
Utilice problemas que permitan a
la persona establecer una relacin
con lo real.
Practique para poder aplicar lo
aprendido.
Y por favor, si tiene dudas al mane-
jar un tema, pida a sus alumnos
tiempo para investigarlo, y explque-
lo cuando se sienta seguro. Ellos se
lo agradecern.
El desarrollo de juegos nos ayuda a
despertar el inters de nuestros
estudiantes, para lograr as un nivel
de aprendizaje satisfactorio.
Para aquellos que no estn familiarizados
con el mundo de la telefona y desconocen
las caractersticas de un PBX (Private Bran-
ch Exchange), por favor continen leyendo.
Para quienes cuentan con amplia experien-
cia en este tema, si as lo desean, pueden
ir directamente a la explicacin de Asterisk
(www.asterisk.org).
Qu es un PBX?
Un PBX en la jerga de TI, es lo que cono-
cemos terrenalmente como un conmutador
de telfonos. Sin embargo, hay que hacer la
distincin del alcance de funcionalidad que
tiene este equipo. El PBX usualmente est
compuesto por tarjetas de circuitos electr-
nicos, semejantes a un motherboard, que
se insertan en gabinetes. Con este hard-
ware, adems de la funcionalidad de tele-
fona interna, tenemos servicios de correo
de voz, transferencia de llamadas, confe-
rencias, enrutamientos, confguraciones de
call center, identifcador de llamadas, c-
digos de seguridad, tarifcacin, etctera.
Por lo general, algunos servicios como por
ejemplo, el correo de voz, viene asociado a
una tarjeta en el gabinete.
Tpicamente, dichos equipos trabajan con
troncales analgicas o digitales, con co-
nexin directa a las centrales de fibra pti-
ca o cobre de los proveedores telefnicos.
En algunos casos es posible trabajar con l-
neas directas comerciales, pero esto suce-
de por lo regular en implementaciones pe-
queas, donde quizs no sea necesario el
uso de un PBX, dado los costos que impli-
ca tenerlo, que provienen de mantenimien-
to de hardware y software de las tarjetas,
servicios de programacin o capacitacin
para hacerlo con personal interno, contra-
tos de 7x24 en caso de fallas, dada la criti-
cidad del servicio, etctera.
La tecnologa de ToIP, trajo la evolucin de
estos equipos PBX en los hoy llamados call
managers. Un call manager es simplemente
un servidor que, a travs de software provee
la misma funcionalidad de un PBX, sin nece-
sidad de adquirir y mantener las costosas
tarjetas y gabinetes de los PBX.
A travs de la implementacin de ToIP, los
costos de operacin y mantenimiento del
equipo de telefona se reducen de forma
dramtica, dado que ofrecen la misma fun-
cionalidad a precios ms bajos con mayor
redundancia, y una mejor oferta de solucio-
nes, dado que se incorpora el video en tiem-
po real y los benefcios del mundo IP.
Aunque un call manager es ms efciente
en trminos de costos que un PBX, tambin
requiere de una inversin considerable de
capital para su implementacin. O cuando
menos, as lo era antes de que el open sour-
ce llegara al mundo de la telefona IP. Aqu es
donde entra Asterisk.
Qu es Asterisk?
Asterisk es una aplicacin que tiene toda
la funcionalidad de un call manager, y por
ende, las de un PBX, corre bajo plataforma
Linux BSD o Mac OSX, y adems tiene la fa-
bulosa cualidad de ser open source.
Antes de continuar, deseo resaltar la magni-
tud del prrafo anterior con un ejemplo: una
solucin de ToIP o de un PBX con la funciona-
lidad antes mencionada, signifca una inver-
sin que va desde 50 hasta 100 mil dlares,
en una implementacin pequea. No puedo
ser ms explicito en el impacto que podra
tener Asterisk en nuestra empresa.
El software fue escrito originalmente por
Mark Spencer de Digium Inc. y constante-
mente el cdigo se est enriquecido por la
comunidad open source de todo el mundo.
A la fecha, se continan realizando pruebas,
desarrollo de parches y extensiones que han
impulsado fuertemente al desarrollo y adop-
cin de dicha aplicacin
El programa no requiere de hardware adicio-
nal para soportar VoIP, y existe una buena
variedad de dispositivos para que Asterisk
pueda interconectarse con equipo tanto di-
gital como analgico. La mayor parte de es-
tos dispositivos provienen de Digium, que es
la marca que patrocina a Asterisk. Se cuenta
con hardware para poder conectar la aplica-
cin a troncales E1 y T1 para conexiones PRI
(Primary Rate Interface) que son las interfa-
ces ms comunes usadas por las empresas
con un alto volumen de llamadas. Para las
pequeas y medianas empresas, se cuentan
con dispositivos para la conexin de lneas
tradicionales, que pueden usarse a travs de
mdulos con puertos FXS, FXO.
Asterisk cuenta con un amplio rango de pro-
tocolos TDM que le permiten el manejo y
transmisin de voz sobre interfases tradicio-
nales, soporta la sealizacin estndar de los
sistemas telefnicos comerciales, tanto ame-
ricanos como europeos, lo cual le permite co-
52
ENE-FEB 2007 www.softwareguru.com.mx
Durante el ao pasado tuvimos la oportunidad de publicar varios artculos relacionados con tec-
nologas de VoIP (voz sobre IP), ToIP (telefona IP), protocolos y aplicaciones basados en SIP
(Session Iniciation Protocol). Toda esta tecnologa se integra para poder brindarnos comuni-
caciones punto a punto de voz, datos y video. En esta ocasin, vamos a conjuntar todos estos
conceptos en una aplicacin open source, que est siendo adoptada significativamente y merece
nuestra atencin en este nmero.
Asterisk
Demasiado Bueno y Aun As, es Cierto
Por Ariel Garca
// INFRAESTRUCTURA
53
ENE-FEB 2007 www.softwareguru.com.mx
nectarse a los sistemas de nueva generacin
o, a una infraestructura existente.
Arquitectura
Asterisk est diseado para brindar una
alta flexibilidad en su funcionalidad. Exis-
ten APIs que se disearon especficamen-
te, como el ncleo central de un PBX. Este
ncleo es el encargado de administrar las
interconexiones internas, abstrayndolo
de los protocolos especficos, codecs, e
interfaces de hardware de las aplicaciones
de telefona.
El ncleo de Asterisk administra las siguien-
tes funciones de forma interna:
PBX Switching. Esta unidad de switching
conecta de forma transparente las llamadas
que llegan desde cualquier interfase, ya sea
de hardware o software. Es el corazn de As-
terisk, y contiene el ncleo de la funcionali-
dad de PBX conectando las llamadas entre
los usuarios y automatizando tareas.
Lanzador de Aplicaciones. Lanza las aplicacio-
nes para los servicios como correo de voz, direc-
torio, grabacin y reproduccin de llamadas.
Traductor de Codecs. Utiliza los mdulos
de codecs para la codifcacin y decodifca-
cin de los formatos de audio estndar de
la industria. Se cuentan con los codecs ms
comunes para satisfacer las distintas nece-
sidades que pueden surgir, para encontrar el
balance entre calidad de audio y ancho de
banda de nuestra implementacin.
Scheduler and I/O Manager. Administra
las tareas programadas de bajo nivel y es
el encargado del manejo del sistema, para
el desempeo ptimo bajo cualquier condi-
cin de carga.
Mdulos APIs
A travs del uso de este sistema de mdulos,
el ncleo de Asterisk se despreocupa de de-
talles como de dnde proviene una llamada,
qu codec utiliza, etctera.
API de Canal. El API de canal administra
el tipo de conexin de la llamada que est
llegando al sistema. Esta puede ser una co-
nexin VoIP, ISDN, PRI u otra tecnologa. Los
mdulos dinmicos se cargan para manejar
las capas de bajo nivel para la deteccin y
manejo de estas conexiones.
API de Aplicacin. El API de aplicacin
permite que se corran varios mdulos de
tareas para ejecutar distintas funciones,
como conferencias, directorio, correo de
voz, y cualquier otra tarea que un sistema
PBX podra desempear ahora o en el futu-
ro. Estos mdulos pueden administrarse
por separado.
API Traductor de Codec. Este API tiene la
funcin de cargar los mdulos de codecs
para soportar los distintos formatos para
la codifcacin y decodifcacin del audio.
Estos pueden ser: GSM, Mu-Law, A-law, e
incluso MP3.
API de Formato de Archivos. Administra
la lectura y escritura de varios formatos
para el almacenamiento de datos en el sis-
tema de archivos.
Gracias a este manejo de mdulos, es posi-
ble integrar los sistemas de hardware actua-
les de telefona o las nuevas tecnologas de
voz que puedan emerger.
La implementacin y puesta a punto de esta
aplicacin, podra parecer complicada, pero
la realidad es distinta. Existen varias guas
para llevar acabo una implementacin com-
pleta de Asterisk, y adquiriendo el hardware
adecuado, se puede implementar como el
equipo de telefona de cualquier ofcina, sin
importar su tamao o complejidad.
Aunque usted no lo crea, hoy en da existen
varias empresas mexicanas que ya estn
utilizando este software como su sistema
de telefona. Lejos de pensar que su ope-
racin se ve comprometida al trabajar con
una aplicacin open soruce, resulta que su
comunicacin se ve incrementada, al poder
contar con los benefcios de la telefona IP a
un costo bajo. Esto, sumado con el soporte
y contribucin continua de la comunidad del
open source, debera llevar a cuestionarnos
si realmente deseamos continuar operando
con nuestro PBX actual o realizar inversio-
nes fuertes para implementar una solucin
de telefona IP propietaria.
Como siempre, la decisin es del negocio,
y la nica forma de comprobar los bene-
ficios de tal aplicacin es, evalundola y
presentando los resultados con un an-
lisis de riesgos. Por ello, los invito a que
instalen Asterisk en su ambiente de desa-
rrollo y vean si cumple las expectativas de
su negocio.
Referencias
www.asterisk.org
www.digium.com/en/index.php
www.voip-info.org/wiki-Asterisk+
installation+tips
Asterisk es una aplicacin que tiene toda la
funcionalidad de un call manager, y adems
tiene la fabulosa cualidad de ser open source.
54
ENE-FEB 2007 www.softwareguru.com.mx
/* GADGETS */ // TECNOLOGA
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 pequeo dispositivo hace
que la comunicacin 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 estndar inalmbrico 802.11g, que lo hace compatible con la mayora de los dispo-
sitivos inalmbricos, incluyendo los antiguos 802.11b. Adems es capaz de manejar cualquier
formato de archivo, en silencio o con audio. Es posible tambin acceder a Internet para integrar
en las presentaciones contenido directo de la Web gracias al puerto Ethernet.
Space Invaders 5-en-1 Plug & Play
Para recordar aquellos tiempos en que jugar videojuegos no requera de pulsar seis botones y
mover el joystick a la vez, y las palabras combo, juego en lnea, inmersin o grfcos en alta
defnicin ni siquiera fguraban en el vocabulario, existe esta pequea curiosidad retro, que de
seguro a muchos les provocar un nudo en la garganta y, a otros, quiz hasta derramar un par
de lgrimas. Tan simple como es, rayando en lo ridculamente hipntico, Space Invaders se ha
convertido en un icono cultural, y para celebrar su 25 aniversario, qu mejor que una unidad plug
& play con cinco juegos: Space Invaders, Phoenix, Qix, Lunar Rescue y Colony 7. Todo al ms puro
estilo arcadia. Se conecta directamente al televisor va cables AV, y su tamao compacto, permite
llevarlo a cualquier parte para aprovechar las televisiones que se atraviesen por el camino.
// TECNOLOGA
Widow PC
SLI Laptop
WidowPC es una compaa norteamericana por Internet, dedicada a la
fabricacin de computadoras pensadas en la experiencia de juego y en
los videojugadores. Ellos mismos se denominan, el Porsche de las
computadoras; y presentan la nueva generacin de desempeo mvil
para juegos de video. Es una de las ms rpidas e incluye uno de los
frame rates ms veloces en cuanto a plataformas mviles se refere;
adems soporta hasta tres monitores al mismo tiempo y cuenta con tar-
jeta de video dual NVIDIA 7950 GTX con 1028MB. Entre algunas otras de
sus caractersticas destacan: memoria DDR3, procesador AMD Turion
64bit Dual Core, monitor LCD con ClearView de 19 con resolucin de
1680X1050, cinco puertos USB 2.0, uno para teclado y video externo,
cuatro para audio, uno PMCIA y S-Video, entre otros. La tecnologa inte-
grada en esta computadora porttil, tambin ofrece alta defnicin para
explotar al mximo el poder grfco de los videojuegos, as como para
la reproduccin de contenidos digitales.
Pyramat
s2000 Sound Rocker
Accin en directo de los videojuegos, pelculas o msica, es la
mejor forma de defnir al s200 Sound Rocker, un silln equi-
pado con subwoofers PowersubTM de 5.5 que enva inten-
sas vibraciones y sonido ntido, de tal manera que es posible
apreciar desde un disparo hasta la respiracin de un persona-
je. Cuenta a su vez, con altavoces iluminados ARXTM de alto
desempeo y largo alcance que aceleran la experiencia de jue-
go. Est fabricado en tela Poly-strech que adems de brindar
confort durante largas horas, es porosa, per-
mitiendo as, la ventilacin entre el cuerpo
y el silln. En los costados se encuentran
entradas para audfonos, controles de
volumen y bajos, as como puertos
RCA multi player. Es compatible con
casi todas las consolas de videojue-
gos, televisores, reproductores de
video y MP3.
INDEX
Anunciante Pginas Sitio
AMCIS 55 www.amcis.org.mx
Avantare 51 www.avantare.com
ExpoComm 45 www.expocomm.com.mx
e-Quallity 43 www.e-quallity.net
Gartner F3 www.gartner.com/mx/appint
Itera 07 www.itera.com.mx
LinuxWorld 49 www.linuxworldexpo.com
Microsoft F2-01, 23 www.microsoft.com/mexico
Milestone Consulting F4 www.milestone.com.mx
Roca Sistemas 11 www.rocasistemas.com.mx
SafeNet 13 www.safenet-inc.com
Select / Tendencias 19 www.select.com.mx
Tiburn Software 47 www.tiburonsoft.com

TENEMOS UN ESPACIO
RESERVADO PARA TI
Si deseas anunciarte contctanos
en el (55) 5239 5502 o en ventas@
softwareguru.com.mx
DIRECTORIO
www.softwareguru.com.mx ENE-FEB 2007
55
Software durable implica diseo continuo
Identifcar el verdadero problema a resolver y disear el programa ati-
nado, representa el mayor avance en un proyecto de desarrollo, la parte
restante se trata de hacer de manera correcta dicho programa. El pro-
blema identifcado tpicamente contina co-evolucionando junto con
su solucin[1], en otras palabras, la solucin tecnolgica y el problema
de negocio se infuencian mutuamente. Una nocin comn dice que, el
mayor costo y esfuerzo en la aplicacin de software para resolver pro-
blemas de negocio, sucede en el desarrollo del mismo, y una vez que
est en produccin, es slo mantenimiento y operacin, por lo que las
mentes brillantes slo se requieren en el desarrollo; en muchos casos
esto sucede al revs, la necesidad de un diseo fexible y adaptable[2]
a situaciones poco previsibles sin importar cunto esfuerzo de an-
lisis se haya hecho ocurre en la etapa de mantenimiento, donde el
negocio de verdad necesita dicha fexibilidad, por lo que en tales casos,
ms vale transferir una parte signifcativa del costo de desarrollo a dicha
etapa de mantenimiento. En otras palabras, la actividad de disear[3] se
requiere a lo largo de todo el ciclo de vida del software.
Best practices
Para algunos est claro que, cuando se presenta un best practice, en rea-
lidad se est hablando de conocimiento tcito, es decir, conocimiento que
slo existe en la cabeza de las personas y que lleg ah por su experiencia
personal, o por observar de primera mano a otro profesional en plana ac-
cin; dicho conocimiento es de difcil acceso, y por lo tanto muy valioso. Lo
que no est claro para muchos, es que dicho conocimiento tiene contexto,
y su transmisin efectiva requiere una interaccin extensa as como una
amplia confanza entra las personas, y por ende, no es algo que se trans-
mita de forma escrita por defnicin deja de ser conocimiento tcito. El
riesgo de tomar como best practice el conocimiento obtenido fcilmente
en publicaciones o seminarios reside en la frase: no tienes que pensar,
slo aplica el best practice, pues impide lo que precisamente es nece-
sario hacer para adquirir el conocimiento tcito: pensar en contexto.
Adaptacin es clave, el mapa no es el terreno
Una vez que tienes experiencia con un buen nmero de mtodos de di-
seo, sigue el reto de saber cmo y cundo adaptar un mtodo a una
situacin en particular. Qu mantener o qu dejar de lado? Qu agre-
gar? Una manera es ignorar esta complejidad esperando que las cosas
simplemente pasen, pero en tal caso, sera mejor dedicarnos a otra
cosa y dejar esto en manos de alguien que le importe. El panorama de
aplicacin de software para resolver problemas de negocio, se observa
cada vez ms demandante, y la necesidad de mtodos dinmicos que
se adapten al vuelo ser cada vez ms necesaria. Un balance adecua-
do de propiedades como las que presenta Alistair Cockburn[4] (Entre-
ga frecuente, comunicacin efectiva, mejora refexiva, etctera.) puede
ayudar para confeccionar el mtodo de diseo para tu prximo proyecto
de desarrollo. Otra opcin es esperar que alguna fgura autoritaria y no
practicante, te diga cmo tienes que programar, o simplemente seguir
con la inercia de los proyectos en crisis, donde los integrantes ya saben
que el proyecto va a fracasar y que slo hay que hacer como que traba-
jas, aceptando que la realidad es as.
Conclusiones
David West nos presenta algo que llama curiosidades, en la introduc-
cin de su libro[5] y que refejan ciertos comportamientos muy dise-
minados en nuestra industria, que parecieran ser muy slidos y muy
bien defnidos, pero ante la luz de un poco de investigacin, resultan
ser slo malos entendidos. Por ejemplo, ante la pregunta: Cul es
el siguiente paso despus de orientacin a objetos?, Martin Fowler
respondi que se necesita entender realmente el paradigma de ob-
jetos como primer paso, antes de pensar en lo siguiente, o cmo dice
Anders Hejlsberg[6]: orientacin a objetos antes era como religin y
que apenas ahora est empezando a ser realmente til para cada vez
ms personas. La respuesta de David Parnas[7] tiene mucho sentido,
cuando responde a la pregunta: Cules son las ideas ms prome-
tedoras de ingeniera de software en el horizonte?, diciendo que las
ideas ms prometedoras no estn en el horizonte, sino aqu mismo
y desde ya hace tiempo, solamente que no han sido usadas como se
debe. Ha sido un placer escribir este artculo en sus tres partes. Sus
comentarios son bienvenidos: mdorante@hotmail.com
56
ENE-FEB 2007 www.softwareguru.com.mx
Programas Correctos
Parte 3. Pensar No es Opcional
Por Marco Antonio Dorantes
Referencias
1. Wicked Problems, Righteous Solutions
blogs.msdn.com/marcod/archive/2004/06/12/154131.aspx
2. Unconscious Design Defined
blogs.msdn.com/marcod/archive/2005/04/03/
UnconsciousDesignDefined.aspx
3. The Engineering in Software Development Trails of Design Mastery
blogs.msdn.com/marcod/archive/2004/06/23/163358.aspx
4. Just-In-Time Methodology Construction
alistair.cockburn.us/crystal/articles/jmc/
justintimemethodologyconstruction.html
5. David West. Object Thinking.
6. Life and Times of Anders Hejlsberg
channel9.msdn.com/Showpost.aspx?postid=159952
7. ACM Special Interest Group on Software Engineering (SIGSOFT) Soft-
ware Engineering Notes. ACM Fellow Profile: David Lorge Parnas
www.sigsoft.org/SEN/parnas.html
// REFLEXIONES
Marco Antonio Dorantes Martnez es un consultor en el diseo y formulacin de software desde 1987, oficio que lo llev a la investigacin aplicada en el
campo de los mtodos sistemticos para diseo de software. Ha realizado diversas contribuciones pblicas en la comunidad mundial de programacin, tanto
en foros tcnicos como en software, por ejemplo AutoTest for .Net y CppUnit for C++Builder disponibles desde www.xprogramming.com. Publica un diario
electrnico en blogs.msdn.com/marcod



























w
w
w
.
s
o
f
t
w
a
r
e
g
u
r
u
.
c
o
m
.
m
x
S
O
F
T
W
A
R
E

G
U
R
U

C
O
N
O
C
I
M
I
E
N
T
O

E
N

P
R

C
T
I
C
A

































E
n
e
r
o
-
F
e
b
r
e
r
o

2
0
0
7
[ Novedades ]
WCF
Noticias Eventos Fundamentos UML Infraestructura Reexiones
A

o

0
3


N
o
.

0
1

You might also like