Beruflich Dokumente
Kultur Dokumente
Model Driven
Architecture
• Ruby on Rails
• Administración
de Proyectos
[ CASO DE ESTUDIO ]
CMMI a través de
MoProSoft
Y LA PILA
ES Para ...
Averigua quienes se pusieron
las pilas en los Premios SG
México. $65 MXN
[ Tutorial ]
Noticias • Eventos • Fundamentos • UML • Infraestructura • Carrera • Biblioteca SAP NetWeaver
// CONTENIDO
directorio
Dirección Editorial
Pedro Galván
Dirección de Operaciones
Mara Ruvalcaba
Coordinación Editorial
Sonia Sánchez
Consejo Editorial
Jorge Valdés - PMI; Francisco Camargo,
Luis Daniel Soto - Microsoft; Ralf Eder, Raúl
Trejo, Guillermo Rodríguez, ITESM-CEM;
Hanna Oktaba, UNAM-AMCIS; Luis Cuellar,
Softtek; Luis Vinicio León, e-Quallity - ITESO,
Emilio Osorio.
Hemos iniciado un nuevo año, algunos encuesta para detectar los productos con
de ustedes ya habrán iniciado una nueva die- mayor preferencia entre los usuarios, para Colaboradores
ta o habrán disminuído la dósis de cafeína du- recolectar estos datos, abrimos un wiki en Kentaro Takahasi, Fernando Moreira,
rante el día. Algunos otros se preguntarían ¿y el que ustedes libremente podían expresar Luciano Petricelli, Peter Coffee, Enrique Flores,
Valerio Adrián Anacleto, Carlos Ortega,
la revista Software Guru? ¿Dónde está? sus propuestas, y nosotros obtener a tra-
Charlie Macías, Sergio Orozco, Ariel García,
vés de su participación los resultados que
Susana Tamayo, José Luis Flores,
Nos unimos al inicio de año y de los cambios, se muestran en el artículo correspondien- Claudia N. González, Eduardo Olivares.
aquellos que nos brindarán la oportunidad te. No solamente eso, el equipo de SG hace
no solamente de crecer, sino también de un pequeño reconocimiento a tan solo, Fotografía
mantener con ustedes el conocimiento que una pequeña muestra de las personalida- Gabriel González
nuestros colaboradores siempre están dis- des destacadas en el mundo de las Tecno-
puestos a plasmar en letras. logías de la Información. Hemos escogido Ventas
la pila como símbolo de los Premios SG, ya Claudia Perea, Natalia Sánchez
¿Y qué tiene de nuevo? Bueno, para darte que conllevan poder y energía.
una ayudadita, te diremos que a partir de Marketing y RP
este número nos extendemos a más pági- Para los gustosos de la administración Dafne Vidal
nas de contenido. de proyectos, tenemos una nueva sec-
Circulación y Suscripciones
ción que estamos seguros será de su
Daniel López
Como también te has dado cuenta, hemos completo agrado e interés.
cambiado los periódos de publicación, ra- Administración
zón por la cuál en enero no estuvimos en Sabemos que no todos pudieron asistir a Araceli Torres
circulación impresa. A partir de este mes SG’07 Conferencia y Expo, pero que están
nos tendrás en tu casa cada trimestre. Pero interesados en saber ¿cómo estuvo el even- Contacto
no te preocupes, es un cambio para bien. to? Bueno, no tienen que preguntarle más info@softwareguru.com.mx
al amigo o compañero de trabajo que pudo +52 55 5239 5502
Este cambio en la publicación, brinda a todo asistir, aquí encontrarán una pequeña rese-
SG Software Guru es una publicación bimestral
el equipo de Software Guru la oportunidad ña de los pormenores del congreso. editada por Brainworx S.A. de C.V., Malinche no.
de trabajar en nuevos proyectos que tam- 6, Col. El Parque, C.P. 53398, Naucalpan, México.
bién serán benéficos para todos ustedes, Los invitamos a disfrutar junto con nosotros, Queda prohibida la reproducción total o parcial
del contenido sin previo aviso por escrito de los
sabemos que serán de su completo agrado este número, que da el banderazo de inicio a editores. Todos los artículos son responsabilidad de
y conforme se estén horneando les estare- una nueva etapa para esta, nuestra revista. sus propios autores y no necesariamente reflejan el
mos informando sobre ellos. punto de vista de la editorial. Reserva de Derechos
al Uso Exclusivo: 04-2004-090212091400-102.
¡Nos vemos en SG’08! Certificado de licitud de título: 12999. Certificado
Una vez contestadas las interrogantes, po- de licitud de contenido:10572. ISSN: 1870-0888.
demos hablar del contenido de este primer Registro Postal: PP15-5106. Se imprimió en enero de
2008 en El universal, Compañía Periodística Nacional.
número del 2008. Como recordarán, hace — Equipo Editorial
Distribuido por Comercializadora Alieri y Sepomex.
algunos meses se realizó una pequeña
18 EN PORTADA
Premios SG
Un reconocimiento a las mejores herra-
mientas y personas de la industria.
Productos
LO QUE VIENE 12
Sync Framework y SyncFeed, NetBeans
6.0, Amazon SimpleDB, Mercurial.
tutorial 14
Instalando el ambiente de SAP NetWeaver
CE 7.1 SR3.
NOVEDADES 18
Force.com
Columnas Prácticas
Tejiendo Nuestra Red 08 Tendencias en Software 48 CASO DE ESTUDIO 32
por Hanna Oktaba por Luis Daniel Soto CMMI por Medio de MoProSoft
A través de este caso, conoceremos la experiencia
Mejora Continua 10 Cátedra y Más 50 al momento de implantar MoProSoft en la obten-
por Luis Cuellar por Raúl Trejo ción de nivel dos de CMMi.
20
con ella terminamos los conceptos básicos e
introductorios del lenguaje.
UML 46
Uso de UML en Aplicaciones Web
Reseña de SG’07 La flexibilidad de UML permite extender y
enriquecer el significado de sus elementos.
Aprendamos a usar la extensión WAE .
CANIETI
Tecnología e Innovación como Habilitadores de la Competitividad
ISO
Seguimos Avanzando
La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software, Tec-
nología Orientada a Objetos, Modelos de Procesos de Software y Mejora de Procesos. Actualmente es miembro de International Process
Research Group (IPRC). También es Directora Técnica del proyecto COMPETISOFT.
naba a la perfección (salvo el elevador principal). Tuve oportunidad da de todas la regiones del mundo. Hasta me llevaron a cenar comida
de reencontrarme con un ex alumno de la maestría de la UNAM que polaca, pero que no se les ocurra pedir la comida canadiense. Con la
desde hace tres años trabaja con éxito en una empresa de desa- música pasa algo parecido, lo que más disfruté fue el jazz en vivo.
rrollo de software en Montreal. Casi lloré cuando me decía cómo le
han servido las clases de Orientación a Objetos y de Patrones de La siguiente reunión será en Berlín, agendada para el mes de mayo
Diseño, y confirmé por enésima vez que en México los que quieren de 2008. Será muy interesante porque conoceremos los comenta-
prepararse bien lo pueden hacer. rios hechos a nuestros documentos provenientes de decenas de
países que no estuvieron involucrados en su elaboración.
Durante los pocos días que estuve en Montreal logré constatar que es
una ciudad de miles de restaurantes para todos los bolsillos con comi- —Hanna Oktaba
Luis R. Cuellar es Director de Calidad a nivel mundial de Softtek Information Services. Luis es reconocido por la American Society for Quality
(ASQ) como Certified Quality Manager, Certified Software Engineer, y Six Sigma Black Belt. En los últimos cinco años ha estado a cargo de la
definición e implantación de la estrategia para CMMI5 y Six Sigma a través de las diferentes áreas del centro de desarrollo de Softtek.
Si la respuesta es sí: felicidades. Puedo decirles que son parte de Dios creó el universo en siete días porque no
una selecta minoría. Definitivamente vale la pena una gran celebra- existía una base instalada
ción y seguir adelante así, con los planes del año siguiente. Pero ¿Cómo se implementan procesos cuando todos corren en diferentes
si la respuesta es no, estoy seguro que para estos momentos ya direcciones moviendo los brazos y gritando: “fuego, fuego”? Normal-
hicieron su análisis de causas raíz con la idea de establecer y do- mente en una compañía el modo de pánico es mucho más fuerte que
cumentar las diferentes problemáticas que les impidieron lograr el modo previsor, y también es común que las personas que trabajan
sus objetivos. Con la idea de ayudar en la medida de lo posible a en las áreas de calidad sean requeridas continuamente para “bombe-
la realización de dichos planes, quisiera enfocar este artículo y el razos”. ¿Cómo nos podemos enfocar en el proceso si constantemente
siguiente en algunos problemas comunes y algunos consejos que nos estamos saliendo? Los bomberos en la vida real trabajan tanto
pueden utilizar para sobrepasarlos. en apagar incendios como en prevenirlos. Para un bombero voluntario
el éxito no es apagar un incendio, sino prevenir incendios dentro de
Pasar el examen no implica conocimiento su zona. A veces en las organizaciones se vive con la idea de que un
Muchas veces la iniciativa de calidad surge como una búsqueda incendio no es una calamidad, sino los gajes del oficio. Necesitamos
por un certificado, esto no necesariamente es malo. El certificado medir para evaluar si realmente los servicios de bombero son cada vez
te da un foco más preciso y visible en cuanto a dónde vas y qué menores, y nunca podemos dejar una zona de desastre sin antes tener
es lo que quieres lograr; desafortunadamente en ocasiones vemos un plan de cómo lograr que eso nunca se repita.
el certificado como el objetivo final de nuestra búsqueda y olvida-
mos las razones detrás del mismo: crear una cultura de calidad. Un Dónde está la metodología
buen plan de trabajo para un equipo de calidad no se enfoca en el La semana pasada estaba viendo un programa de televisión llamado
orden de los requisitos de un modelo, sino en resolver primero los “Top Chef”, en donde un grupo de chefs compiten semanalmente pre-
problemas de mayor impacto dentro de la organización y los de parando diferentes platillos para no ser anulados. En la eliminatoria
menor importancia después. El plan de trabajo no puede enfocarse pasada uno del los jueces regañaba a un participante y le decía: “si te
a cerrar primero los hallazgos referentes a control de requerimien- preocupa más cómo se ve tu platillo en lugar de cual es su sabor vas
tos y después a los de planeación, etcétera. Sino que tal vez se por el camino equivocado”. La proliferación de metodologías comer-
enfoque a resolver el problema de exceso de defectos, que puede ciales ha generado una idea: la mejor metodología es la que mejor se
estar relacionado en parte con planeación, en parte con ingeniería ve. La realidad es que las metodologías que se venden en el mercado
de software, entre otros. El plan debe de reflejar la problemática y son metodologías estables, metodologías que tienen poca evolución.
no el modelo. Las metodologías con las que trabajamos en el día a día son metodo-
logías vivas que, sobre todo al principio, cambian constantemente de
Desde fuera se ve tan fácil cambiar, acuerdo a cómo mejora la organización; por lo que al definir los pro-
especialmente a los demás cesos, plantillas y demás, es de vital importancia la flexibilidad y con-
Estamos tan acostumbrados a programar instrucciones en las compu- sistencia antes que la belleza. Con esto se nos acaba el espacio por el
tadoras que nos olvidamos que generar cambio en las personas no es momento. Continuaremos en la próxima ocasión y por ahora sólo me
algo trivial. Piensen cuándo fue la última vez que cambiaron de esti- queda decirles feliz 2008 y que se cumplan todos sus deseos.
lista, cuándo cambiaron de restaurante favorito o la ruta para llegar al
trabajo. Normalmente cambiar genera incertidumbre, miedo, estrés. —Luis R. Cuellar
Mercurial
Control de versiones distribuido
Amazon SimpleDB
Servicio de base de datos por Internet
Requisitos de Sistema Así como la mayor parte de las soluciones y productos SAP, la ins-
• Windows XP Professional (Service Pack 2) o Windows 2003 Ser- talación empieza con un Wizard, en el que usted deberá entrar con
ver (Service Pack 1) todos los parámetros necesarios para la instalación. Solamente
• Sistema de archivos NTFS después de la colecta de todas las informaciones necesarias y la
• Internet Explorer 6.0 o superior o Firefox 1.0 o superior revisión de los parámetros es que la instalación efectivamente em-
• Al menos 1.5 GB RAM, es recomendado 2 GB de memoria pezará. A partir de esto todo se realiza automáticamente.
• PC 1.5 GHz o superior
• 7 GB de disco libre Seleccione “SAP Netweaver CE Development System” y haga clic
• Monitor con resolución de 1024 x 768 pixels y 256 colores en “Next”.
Indicar la ruta de instalación para el archivo con el JCE Policy baja- Para acompañar la carga del servidor de aplicaciones usamos el
do anteriormente. Indicar la contraseña principal que servirá como SAPMMC (SAP Management Console) que puede ser empezado a tra-
clave estándar para los usuarios creados. vés de un icono creado por la instalación en su desktop. Esta carga del
servidor, debe consumir de 50 a 90 minutos.
Services Registry
Registro con base en el UDDI que contiene definiciones de servi-
cios empresariales y referencias a sus datos de metas.
UDDI Client
System Information Provee un cliente UDDI para funciones de consulta y publicación
Detalle de las configuraciones del sistema y su estado. en registros compatibles con el UDDI.
Informar el camino de la instalación del JDK 5 y haga clic en “Next”. Para practicar el desarrollo en este nuevo ambiente, además de toda
Haga clic en “Next” . la información provista en el Help SAP http://help.sap.com tenemos
también el SDN (http://sdn.sap.com). Este sitio provee foros de dis-
Informar el sitio de update a partir del cual serán instaladas/actua- cusión, blogs, downloads e informaciones para las varias comunida-
lizadas las funcionalidades del Developer Studio. Es recomendable des de SAP (desarrolladores, consultores y clientes) e información
dejar el valor propuesto que apunta para un archivo en el propio DVD relacionada al Netweaver (plataforma tecnológica SAP).
conteniendo las informaciones necesarias. Haga clic en “Next”.
Si hubiera algún problema en la instalación, visite el sitio en la Internet
Seleccione todas las opciones de la lista y haga clic en “Next”. del SDN, en los foros encontrará posibles respuestas al problema pre-
sentado y es la manera más rápida de solucionar cualquier duda.
Kentaro Takahashi es consultor senior de SAP, Bacharel y Mestre en Ciencias de la Computación por la Universidad de Brasilia (UnB). Conferencista en
eventos nacionales e internacionales. Escribe regularmente para publicaciones especializadas. kentaro.takahashi@sap.com
Fernando Moreira es consultor senior de SAP, formado en Ingeniaría de Computación por la Universidad Federal de São Carlos (UFSCar). Actúa como
consultor NetWeaver. fernando.moreira@sap.com
Luciano Petricelli, Posgraduado en Business Enterprise Solution Provider, desarrollador ABAP desde 1998 y desarrollador NetWeaver Enterprise Portal
desde 2001. Trabaja en SAP desde 1997, hoy actúa como líder de solución “User Productivity Enablement & Development” para FS-Brasil.
l.petricelli@sap.com
Force.com
La Plataforma como Servicio
Por Peter Coffee
La labor de los desarrolladores de aplicaciones de software empresa- pasos adicionales de integración de la aplicación, ésta forma par-
rial ha cambiado enormemente en los últimos años. Antes, su princi- te inmediatamente del catálogo de herramientas disponibles para
pal tarea consistía en automatizar los procesos comerciales internos. el usuario o el desarrollador, y extiende las capacidades que exis-
Solían utilizar los sistemas internos de una compañía para atender tían antes de que se creara la nueva aplicación. Es posible incluir
al personal interno. Hoy en día, las tareas a las que se enfrentan los rápidamente nuevas funciones. Con sólo hacer clic con el ratón
equipos de desarrollo consisten en automatizar las interacciones de para activar una función de la plataforma, es posible agregar a
los procesos comerciales de la compañía con los socios de negocio la aplicación opciones como la búsqueda, bitácoras o envío de
y clientes del mundo exterior. A menudo, el lugar donde se produce documentos. El desarrollador no tiene que escribir nuevo código
esta interacción estratégica es la red pública de Internet, y las reglas personalizado para que estas funciones estén disponibles.
que a menudo la rigen son los protocolos del web.
Peter Coffee es Director de Investigación de Plataforma en salesforce.com, donde sirve como enlace con la comunidad de desarrollo respecto a la plata-
forma Apex. Anteriormente, Peter estuvo 18 años en eWeek (antes conocido como PC Week).
Tal vez fuiste una de las personas que compartió en vivo la emo-
en
cia
ción de este evento, pero sabemos que otros por alguna ra-
s,
fue SG’07.
,y
14
9
ex
po
sit
or
es
pa
ra
un
to
ta
ld
e9
16
pe
rs
on
as
en
SG
’0
7.
nologías de Información para darles a conocer lo mejor de sus produc- pañarnos por la noche pudieron convivir más con sus amigos, com-
tos o servicios. Cada uno de ellos hizo un gran esfuerzo para atender a pañeros de trabajo y en general con el equipo de SG, anfitriones
todos los asistentes a la Expo, explicándoles la oferta de su empresa y del evento.
en algunos casos otorgándoles algún pequeño presente, y folletos de
información acerca de sus productos y actividades. Preocupados porque todos llegaran sanos y salvos al lugar, hubo
autobuses que sirvieron para transportarnos desde el hotel sede
Nuestros patrocinadores premier, representados por tres grandes en hasta el bar, la misma travesía para el regreso. Música, bocadillos,
su ramo: Microsoft, Red Hat e IBM, nos engalanaron con su presencia. bebidas y baile fueron los elementos clave para la noche, en la que
Sin olvidar la mención de todas las asociaciones que estuvieron con todos disfrutamos del ambiente y la vista panorámica.
nosotros, apoyando con la difusión del evento entre sus miembros.
Agradecemos también a Prosoft por el apoyo, a los medios que cu- Anécdotas
brieron el evento. Ya como cierre de esta reseña, queremos compartir algunas anécdo-
tas y datos al margen:
¡Gracias a todos y cada uno de ellos! • Contamos con la presencia de asistentes Venezolanos, quienes dis-
frutaron de los tres días de la Conferencia y Expo, el día del evento
Lo más importante: los asistentes social nos regalaron una sesión de baile grandiosa, era la primera
Este año no pudo ser la excepción, personas de diferentes puntos vez que venían a la Ciudad de México, aunque ya conocían las costas
de la República Mexicana se hicieron presentes: desarrolladores, ge- oaxaqueñas, quedaron encantados no solamente con el evento, sino
rentes, directivos, líderes de proyectos y académicos. con el lugar sede.
• Personas que vinieron de diferentes puntos de la República Mexi-
La sensación de familiaridad se sintió cuando al caminar por los pa- cana, asistieron con maleta en mano al día de talleres.
sillos se veía a personas detenerse para saludarse, viejos conocidos • La mesa de futbolito además de divertir, generó retas entre los
se reencontraban o compañeros de trabajo se sentaban juntos a co- asistentes.
mer o simplemente, se encontraban después de mucho tiempo en • Cada día hay más mujeres inmersas en el mundo de las Tecnologías
las reuniones de comunidad que se realizaron durante el evento. de Información.
• Tuvimos voluntarios de diferentes partes de la República Mexica-
Todo el equipo detrás del congreso estuvimos preocupados por brin- na: Monterrey, Oaxaca, Puebla y Tlaxcala.
darles la mejor de las atenciones a todos los asistentes, para que los
temas de cada track estuviera a la altura, y principalmente hacerlos Podríamos mencionar muchas más, pero es mejor vivirlas que leer-
sentir como en casa. las, no se pierdan la siguiente edición.
www.sg.com.mx
www.sg.com.mx FEB-ABR 2008 25
Control de Versiones A pesar de llevar poco tiempo en el mercado, El .NET Compact Framework es una versión de
Ganador: Rational ClearCase Visual Studio Team Edition for Software Testers .NET diseñada para funcionar en dispositivos
quedó en segundo lugar lo cual es señal de lo móviles basados en Windows CE. Reciente-
Los sistemas para control de versiones son la bien que ha sido recibida esta herramienta. mente se liberó la versión 3.5, que soporta los
infraestructura básica de cualquier proyecto nuevos APIs y tecnologías como WCF y LINQ.
de software serio.
Otra herramienta popular entre los lectores de
ClearCase es uno de los sistemas más conoci- Librería o Framework SG para desarrollo móvil fue NetBeans Mobi-
dos en este segmento. Tiene un conjunto de Ganador: Delphi VCL lity Pack, el cual está dirigido a desarrollo en
funcionalidad bastante completo, diseñado Java Micro Edition.
para satisfacer las necesidades de los pro- La mayoría de las aplicaciones de software
yectos más grandes y complejos. Entre éstas modernas se desarrollan sobre un framework
están la capacidad de ejecutarse en Linux, que hace mucho del “trabajo sucio”, permi-
Solaris y Windows, soporte a grandes canti- tiendo que nos enfoquemos en la lógica de RAD
dades de archivos, y manejo de repositorios negocio. Por otro lado, también existen libre- Ganador: PowerBuilder
en múltiples sitios. Adicionalmente está la rías de componentes reutilizables que resuel-
gran ventaja de la integración con otras herra- ven muchas de las tareas más comunes (ma- Impulsadas por la creciente necesidad de re-
mientas, especialmente de Rational. nejo de persistencia, gráficas, etcétera).. cortar el tiempo requerido para desarrollar
aplicaciones, las herramientas RAD (Rapid
Siguiendo muy de cerca a ClearCase quedó Delphi VCL (Visual Component Library) es Application Development) han tomado bas-
Borland StarTeam, que también provee un un framework basado en componentes para tante fuerza en los últimos años.
conjunto de funcionalidad bastante avanza- desarrollar aplicaciones de escritorio y web.
do. Posteriormente encontramos a Subver- Los componentes de VCL se enfocan en con- PowerBuilder es una de las herramientas más
sion, el cual es utilizado en la mayoría de los troles gráficos para las pantallas, y acceso a maduras y conocidas en este segmento. Al
proyectos open source. base de datos. parecer cuenta con una fiel base de usuarios
entre los lectores de SG, porque la votaron
El segundo lugar fue para Apache Com- como el RAD más popular.
mons, una librería de componentes
Testing reutilizables en Java que se ha ido de- Siguiendo a PowerBuilder tenemos a Genexus,
Ganador: Rational Functional Tester sarrollando durante los proyectos de Magic eDeveloper, 4D y Genero Studio.
Apache. Después tenemos a Infragistics
Así como existe una gran variedad de tipos de NetAdvantage para .NET, una librería de
prueba de software, también existe una gran componentes visuales para .NET.
variedad de herramientas para probar soft- Sistema Operativo
ware: pruebas unitarias, pruebas funcionales, Ganador: Windows Server 2003
pruebas de interfase de usuario, pruebas de
desempeño, tan solo por mencionar algunas. Desarrollo Móvil No hay mucho que decir en cuanto a sistema
Ganador: .NET Compact Framework operativo para servidores. Básicamente las
El producto ganador en esta categoría fue variables a tener en cuenta son estabilidad,
Rational Functional Tester, una herramienta Cada vez se desarrollan más aplicaciones seguridad y facilidad de administración.
para automatización de pruebas funcionales para dispositivos móviles, pero no por esto el
y de regresión, que soporta la realización desarrollo para estos dispositivos deja de te- Windows Server 2003 fue elegido como pri-
de pruebas para aplicaciones web, desktop ner sus particularidades, por lo que requiere mera opción por los lectores de SG. Entre
Java, desktop .NET, SAP, y Siebel. de herramientas especializadas. sus cualidades destacan la facilidad de ad-
Base de Datos
Ganador: Oracle
Oracle es posiblemente el nombre más grande A pesar de que esta categoría está enfocada Plataforma SOA
en el segmento de base de datos. En el 2007 en una tecnología específica (Java) conside- Ganador: WebSphere
lanzó su versión 11g, que incluye mejoras para ramos importante incluirla, ya que es un seg-
el manejo de datos históricos, soporte a datos mento muy importante para nuestros lecto- SOA (Service Oriented Architecture) es posi-
geoespaciales, y Real Application Testing que res, y existe mucha competencia dentro de él. blemente el acrónimo que más hemos oído
es la capacidad de simular cargas de trabajo A pesar de que todos los servidores Java EE en TI en los últimos años, y todavía nos fal-
de producción en ambientes de prueba. proveen la misma funcionalidad base (indica- tan otros tantos. Pero para que SOA se con-
da por la especificación de JEE), hay detalles vierta en algo más que un “buzz word”, se
Como escolta cercano de Oracle, los lectores como el desempeño, escalabilidad o facilidad requieren productos reales y maduros que
de SG eligieron a SQL Server, que ha teni- de administración que son los que establecen lo habiliten.
do gran dinamismo ya que introdujo varias las diferencias entre productos.
novedades en su versión 2005 y se espera Los lectores de SG consideran que al día
todavía más con la versión 2008. Después WebSphere Application Server fue el gana- de hoy, WebSphere a través de MQ Series y
tenemos a MySQL, una base de datos open dor en esta categoría. Es un producto bas- Message Broker provee la mejor plataforma
source que es ampliamente utilizada en apli- tante maduro que se encuentra consolida- SOA disponible en el mercado.
caciones web. do en gran cantidad de organizaciones.
En el segundo lugar encontramos la pro-
Siguiendo muy de cerca a WebSphere puesta de Microsoft con Biztalk, Sharepoint
tenemos a dos servidores de aplicación y System Center, y en tercer lugar encontra-
Servidor de Aplicaciones JEE open source: Sun Java System (basado en mos a Fusion, la plataforma de middleware
Ganador: WebSphere Application Server Glassfish) y JBoss. unificada de Oracle.
Portal para portal muy completo con noti- Nueva Tecnología hablado en SG, siendo LINQ una
Desarrolladores cias, blogs, demos, tutoriales y Ganador: .NET Framework 3.5 de las más notables.
Ganador: MSDN descargas de software.
Esta categoría se refiere a las he- Los retadores fueron JavaFX, Flex
En cuanto a portales en Internet Después de MSDN, los lectores rramientas, lenguajes, platafor- 3 y Silverlight. Hace poco más
relacionados con desarrollo de de SG eligieron a java.net –la mas y SDKs lanzados en el 2007 de un año habíamos adelantado
software, el más recomendado comunidad online de Java– e que se ven más prometedoras. en estas páginas que 2007 sería
es Microsoft Developer Net- IBM developerWorks. el año en el que iniciaría la gue-
work (MSDN). Sin duda, MSDN La versión 3.5 del .NET Framework rra de los “clientes ricos”, y los
es un recurso fundamental En cuanto a portales de habla resultó ganadora. Esta versión resultados en esta categoría son
para cualquier entusiasta de hispana, el más popular fue incluye gran cantidad de innova- prueba de que no andábamos
tecnología Microsoft, y es un Club Delphi. ciones sobre las que ya hemos tan perdidos.
ERP
Ganador: SAP
CRM
Ganador: SAP
Luis Vinicio León Carrillo es Director de e-Quallity S.A. de C.V., empresa especializada en prueba de software. Es profesor-investigador
del Departamento de Electrónica, Sistemas e Informática del ITESO. Es doctor por la Universidad Técnica de Clausthal, Alemania; su tesis
tiene que ver con aplicaciones de métodos y lenguajes formales que incrementan significativamente la eficiencia y la efectividad de la
prueba de software.
Me da mucho gusto retomar esta columna en la revista, después de un los defectos que aún se encuentran en el producto, así como del costo
receso de aproximadamente un año. Durante ese tiempo hemos visto de detectarlos.
cosas interesantes que buscaremos sistematizar y exponer aquí duran- 2. Dependiendo de los datos del diagnóstico, el interesado puede optar
te éste y los siguientes números. por contratar las pruebas profundas.
3. Si después de estas pruebas y luego de aplicar nuestro modelo de
En [1] describimos los problemas que pueden presentarse cuando el calidad de productos, el software muestra un excelente comportamien-
software no se prueba adecuadamente, analizándolos a la luz de dos to (después de las pruebas regresivas [3]), se hace acreedor a ostentar
proyectos extremos en los que participamos. nuestro sello de calidad. (Este modelo fue validado con apoyo del Con-
sejo Nacional de Ciencia y Tecnología, CONACYT.)
Aquí presentaremos los resultados de la evaluación de la calidad de una
muestra de productos mexicanos en el marco del Concurso e-Quallity Utilizando esta experiencia, a mediados del año pasado lanzamos este
2007, del cual hicimos la premiación en el pasado Congreso SG’07 Confe- concurso, en el que convocamos a la comunidad desarrolladora nacio-
rencia y Expo. No se trata de un estudio estadístico riguroso, pero vemos nal de software a enviarnos productos terminados pequeños (máximo
estos datos como una aportación inicial para llenar el enorme hueco de 30 meses-hombre de desarrollo) para encontrar el producto con la me-
información que tenemos respecto a métricas de calidad de los productos nor densidad de defectos (cantidad de defectos entre tamaño).
mexicanos y su repercusión en la industria.
Una cantidad considerable de productos fueron rechazados, ya fuera
El impacto de probar inadecuadamente el software porque se excedían en el tamaño o porque no estaban completamente
En los Estados Unidos, tan solo en 2003, las pérdidas en su industria por terminados. La muestra final sobre la que se generaron los datos que
la inexistencia o mala aplicación de pruebas a productos de software as- mostraremos consta de 24 productos. Su tamaño se midió utilizando
cendieron a casi $600 mil millones, que equivalen a aproximadamente una métrica interna semejante a los puntos de función.
el 1% de su producto interno bruto [2].
A los productos concursantes les aplicamos una variación del diagnós-
Dichas pérdidas consideran no solamente las del sector de Tecnologías tico descrito arriba y, a cada participante le enviamos la primera capa
de Información, sino de muchos otros sectores que utilizan el software de defectos que detectamos en su producto, la estimación de los que
en sus operaciones. Se trata de pérdidas que no son sólo cuantiosas, aún quedaban en su sistema, y la comparación de su producto frente a
sino que desgastan gran parte de su sector productivo. otros, en términos de densidad de defectos.
—Luis Vinicio
En Septiembre del 2007 Kernel Technologies Group S.A. de C.V. fue procesos como en los productos de trabajo. La capacitación en los
la primera empresa mexicana en alcanzar el nivel 2 de CMMi bajo la temas de aseguramiento de calidad se complementó internamente
nueva versión del modelo para desarrollo de software versión 1.2. explicando y revisando los checklists de cumplimiento de activida-
Pero más importante que esto es el hecho de que basaron su estra- des, así como los artefactos para verificación y validación.
tegia de implementación en el Modelo MoProSoft. En este artículo,
compartimos algunas de nuestras experiencias y opiniones relacio- Complementar actividades utilizando el análisis de brecha
nadas con este proceso de mejora, esperando que le sean de utili- Una presentación realizada por la AMCIS en marzo del 2005 para mos-
dad a los lectores de SG. trar los resultados de las Pruebas Controladas de MoProSoft contenía
un análisis de brecha entre el modelo MoProSoft vs. CMMI N2 en su
Para nosotros fue una gran ayuda contar con MoProSoft como refe- versión escalonada, indicando que el 67% de las prácticas se cubrían
rencia, ya que a diferencia de CMMi, MoProSoft sí cuenta con una en forma total, el 10% se cubrían en forma amplia, 17% en forma par-
secuencia y lista de actividades a realizar bajo un enfoque y lógica cial y el 6% no estaban cubiertas. Nosotros pusimos especial atención
de negocio. La documentación que proporciona MoProSoft fue de en esta información, ya que ese 67% significaba que solo tendríamos
gran ayuda en la implementación de CMMi ya que es muy clara en que completar el 33% restante en cuanto a definición de procesos,
las actividades que deben realizarse, las entradas y salidas de cada ahorrando así tiempo y esfuerzo en ésta fase del proyecto. Fue así que
proceso, así como la asignación específica de responsabilidades. conseguimos de parte de AMCIS el detalle de este análisis de brecha
realizado por Cecilia Montero (Lead Assesor) y Gisela Rivera, donde se
Factores críticos de éxito detalla la relación entre las prácticas de las Areas de Proceso de CMMI
A continuación explicamos los que consideramos fueron factores crí- y los procesos/actividades que las cubrían. Tomando como base éste
ticos de éxito para lograr el nivel 2 de CMMi. mapeo, iniciamos a analizar qué procedimientos, actividades y pro-
ductos tendríamos que agregarle al MoProSoft para que cumpliera
Capacitación totalmente con cada práctica. Así que para cada brecha definida, defi-
El proceso de mejora inició con una estrategia fuerte de capacita- nimos un plan de acción para cubrirla.
ción en CMMi para los responsables de definición de procesos. El
propósito fue que estas personas tuvieran en claro la razón de ser Métricas y revisión a nivel gerencial
del modelo y las exigencias que involucra. Igual de importante fue A fin de asegurar el buen desempeño de los proyectos y el apego a
la capacitación impartida al “sponsor” del proyecto, ya que ayudó a los procesos, se establecieron reuniones periódicas a nivel gerencial
que comprendiera la envergadura del proyecto que estaríamos reali- para revisar los indicadores de los proyectos. Los indicadores que
zando y que esto requería de su fuerte compromiso y participación. usamos son índice de cronograma, índice de esfuerzo, índice de cos-
Para esta capacitación nos apoyamos en la empresa Innevo. to, así como el uso de semáforos para mostrar cuando un indicador
estaba fuera del rango establecido por la dirección. La definición de
Apego a las actividades de MoProSoft indicadores se basó en las recomendaciones del PMBOK 3ª Edición.
Decidimos utilizar directamente las actividades de MoProSoft para Se agregó una actividad de revisión de los defectos encontrados en
hacer checklists de aseguramiento de calidad, revisando por ejem- procesos y productos, a fin de tomar acciones correctivas. Se utilizó
plo que se llevaran a cabo todas y cada una de las actividades de pla- una plantilla para llevar a cabo la reunión, donde ya se establecían
neación para generar el plan de proyecto y plan de desarrollo. Adicio- los puntos a revisar en la reunión y fue de gran utilidad para no dejar
nalmente se siguieron las verificaciones y validaciones tal como las pasar aspectos de monitoreo como son el manejo de datos, riesgos
propone MoProSoft. Esto nos permitió asegurar tanto calidad en los asociados a un defecto, y obtener compromiso de los involucrados.
Claudia N. Gonzalez es Licenciada en Sistemas Computacionales por el ITESM y cuenta con reconocimiento por la AMCIS como Practicante MoProSoft, Con-
sultor Profesional MoProSoft, y Evaluador Profesional MoProSoft. Desde 1985 ha trabajado en empresas de desarrollo de software asumiendo diferentes roles
principalmente en tareas de gerencia de proyectos de desarrollo de software y de capacitación y consultoría de procesos.
Eduardo Olivares es Ingeniero Administrador de Sistemas por la UANL y Maestro en Ciencias Computacionales por el ITESM. Cuenta con el certificado de PMP
y con el certificado como PSP Developer y PSP Instructor por el SEI. Desde 1989 ha trabajado como desarrollador, líder de proyectos y jefe de oficina de proyec-
tos en áreas de TI de diferentes grupos empresariales, así como docente del área de Tecnologías de Información del ITESM y de la UDEM.
Para todos los procesos se monitorearon las actividades planeadas ta que para asegurar la calidad de producto y proceso como requiere
y el esfuerzo estimado contra el real. CMMI tuvimos que detallar checklists que apoyaran ésta práctica.
3. MoProSoft define sus procesos por área de responsabilidad, sin
Asignación de esfuerzo para actividades del modelo embargo la secuencia de actividades se da naturalmente entre las
Quizá uno de los puntos más complejos, pero a la vez más impor- áreas. Por ejemplo, durante el proceso de venta, se requiere que se
tantes es estimar el esfuerzo en todas las actividades relaciona- realice un entendimiento de requerimientos y una planeación para
das con el modelo, tanto CMMI como MoProSoft, de manera que poder definir el alcance del proyecto que se está vendiendo. Para
debe quedar asentado y asignado el tiempo para: la persona que aclarar esta secuencia de actividades nos apoyamos en diagramas
define y establece los procesos, el encargado de las actividades de flujo inter-procesos, lo que ayudó a que se entendiera mejor la
de administración de configuración, aseguramiento de calidad de relación entre ellos.
procesos y productos, capacitación, administración de proyectos 4. MoProSoft define algunas actividades de manera muy general
y mantenimiento a la matriz de rastreo. Algunos roles pueden ser por lo que en algunas de ellas tuvimos que definir procedimientos
compartidos; por ejemplo la persona de calidad puede también más detallados y/o realizar minutas para asegurar que se cumpliera
dar capacitación o participar de la definición de procedimientos, completamente la práctica CMMI. Algunos de ellos son: la imple-
el configurador puede participar en actividades de desarrollo o mentación de un procedimiento de control de cambios para revi-
mantener la matriz de rastreo. En nuestra experiencia, el tiempo sar y autorizar cambios a requerimientos, actividades específicas
de todas las actividades de soporte al proyecto incluyendo tiempo de administración de configuración como lo es, establecer un plan
para medición y análisis, planeación, monitoreo de proyecto, ase- de administración de configuración que indica nombrado de ítems,
guramiento de calidad y administración de requerimientos; en un permisos, líneas base y niveles de autoridad para su promoción, au-
proyecto que anteriormente tomaba 1,000 horas llevando sólo Mo- ditorías físicas y funcionales a realizar. La mayoría de los requisitos
ProSoft, se incrementa en cerca del 20% del esfuerzo después de de CMMi estaban cubiertos en las prácticas de MoProSoft reforzán-
haber agregado las actividades del análisis de brecha hacia CMMi dolas con el uso de minutas para cada reunión y dando instruccio-
nivel 2. Lo anterior debe considerarse una inversión que paga en nes muy específicas, sobre los acuerdos y compromisos que deben
beneficios de calidad y confianza hacia los compromisos del pro- reflejarse en cada reunión, sin dejar margen a ambigüedades. En la
yecto con el cliente. versión de este artículo que se publicará en el sitio web de SG se
incluirá un anexo con un ejemplo de una actividad que fue detallada
Herramientas de esta forma.
Es de gran ayuda apoyarse en herramientas que faciliten la adopción 5. Implementar otros procesos MoProSoft como son la Planeación
y aplicación del proceso. Recomendamos considerar herramientas Estratégica y la Gestión de Procesos ayudaron a la implementación
de trabajo para administración del proceso de cambios en configu- del proceso y a que la organización lo apoyara, así como a la opera-
ración, manejo de la matriz de rastreo, levantamiento y seguimiento ción misma del negocio.
a incidencias, bases de datos con datos del proyecto (WBS, costos,
riesgos, cambios) o herramientas para registro y seguimiento a las
actividades, son importantes para reducir el tiempo de uso de hojas Conclusión
electrónicas más susceptibles a errores. CMMI está enfocado principalmente a organizaciones gran-
des. Sin embargo el enfoque que seguimos de utilizar como
Lecciones aprendidas marco de referencia MoProSoft fue un gran acierto que nos
1. Tal vez la lección aprendida más distintiva de nuestro proyecto, acercó muy rápidamente a nuestro objetivo de lograr el
fue el entender que para cubrir el 33% de actividades pendientes no nivel 2 de madurez en CMMI, apenas 8 meses después de
significaba invertir un 33% más de esfuerzo ya que las prácticas no tener implantado MoProSoft. Ahora vamos por el siguien-
cubiertas en MoProSoft se trataban de cuestiones un tánto comple- te nivel y además de seguir utilizando MoProSoft como un
jas de definir e implementar como lo son Administración de Configu- marco de referencia relevante nos apoyaremos en PSP/TSP
ración (CM) y Medición y Análisis (MA). para acelerar nuestro siguiente objetivo en madurez de pro-
2. Aunque iniciamos las actividades de verificación y validación utilizan- cesos mediante CMMI.
do como guía los criterios presentados en MoProSoft, nos dimos cuen-
Afortunadamente hay publicaciones, como La mayoría de los proyectos de software no que por lo tanto se ha hecho acreedor a un
la que tienes en este momento en tus ma- tienen grandes problemas en los aspectos ascenso. Ser líder de proyecto no necesa-
nos, que llevan información útil a la gente tecnológicos porque la gente en el medio riamente debe de verse como el ascenso
para brindarles un poco de luz acerca de suele apasionarse con el uso de la tecnolo- natural en la carrera de los programadores,
la manera de trabajar o las herramientas gía, lo cual se ve reflejado en las aplicacio- de hecho esto es algo que, por la naturaleza
a utilizar para ser más efectivos en su tra- nes desarrolladas. Su uso en los proyectos, de los programadores, debería de ser casi la
bajo. Hoy tenemos el honor de iniciar esta aunque no siempre perfecto, no representa excepción, más que la regla.
sección que SG inaugura, donde se trata- la principal causa cuando fracasa un proyec-
rán temas diversos acerca de la adminis- to. Incluso en muchos de los casos en que La ruta del PM
tración de proyectos. Esperamos que sea la tecnología falla se debe a una mala admi- Debe existir una ruta de crecimiento para los
una columna de interés para todos ustedes nistración de ésta y no porque no se contara profesionales de la tecnología, y otra ruta di-
y que les brinde algunas señales positivas con una tecnología adecuada o por falta de ferente para la gente, que aun y cuando gusta
que puedan ser aprovechadas para el cre- personal hábil en el uso de la tecnología. de la tecnología, se apasiona más por las acti-
cimiento profesional de los que realizan un vidades administrativas. Uno y otro requieren
rol así. Tecnología vs administración perfiles un tanto distintos. Pero, si los progra-
de proyectos madores descubren que la única manera de
Seguramente habrás escuchado acerca de la El problema es que los “tecnólogos” no suelen recibir un aumento de sueldo importante en su
importancia de la administración de proyec- apasionarse por la disciplina, el orden, el lide- empresa se logra “ascendiendo” a líder de pro-
tos. También habrás escuchado que un buen razgo, y mucho menos por llenar documentos y yecto, es natural que tanta gente ponga la mira
porcentaje de los proyectos que fracasan se plantillas. En muchos de los casos les interesa en un rol así, sin tener el perfil ni las habilida-
debe a causas relacionadas con la adminis- más sacar adelante su propio, muchas veces des necesarias y con las consecuencias desas-
tración de proyectos: requerimientos po- excesivo trabajo, que perseguir gente para que trosas que vemos día a día en los proyectos.
bres, malas estimaciones, falta de dirección, cumpla con su trabajo. Incluso, con el pretexto
desmotivación del equipo, falta de comu- de los métodos ágiles, los desarrolladores en- Administrar no es tan divertido
nicación, riesgos sin contemplar, cambios cuentran muchas veces en este tipo de meto- Administrar un proyecto implica planear, do-
constantes, etcétera. dologías un excelente pretexto para justificar cumentar, comunicar, escuchar, dirigir, liderar,
la ausencia de controles y planes. enfrentarse a los problemas de la comunidad
Apasionados de la tecnología que representa el equipo de trabajo y los
Por supuesto que todas tus habilidades y La mala noticia es que la administración de stakeholders, implica motivar a sus compañe-
certificaciones en lenguajes de programa- proyectos es un mal necesario. Tan necesario, ros de trabajo, entre otras muchas habilida-
ción, herramientas de desarrollo, bases de que día a día vemos sistemas que no hacen lo des. Claro que un poco de conocimiento tec-
datos, arquitectura, etcétera, te ayudan en que el usuario quiere, que fallan constante- nológico es útil, pero no es lo más importante
gran medida, a tener un proyecto de software mente fricciones permanentes entre el equi- para el líder de proyecto que quiere destacar.
exitoso. Pero, debemos de entender que eso po de desarrollo y el cliente, desarrolladores En todo caso debe tener las habilidades para
no es todo lo que se necesita para alcanzar que no tienen vida propia fuera del trabajo integrar gente que cuente con dichas habilida-
los objetivos del proyecto (de hecho definir porque constantemente tienen que apagar des dentro de su equipo de trabajo. Este tipo
el objetivo del proyecto no es una actividad los fuegos, resultado de una mala planea- de tareas no son precisamente las que más
técnica) . La tecnología es sólo una de las to- ción. Consecuencias, muchas de éstas, de motivan a un apasionado de la tecnología.
rres que sostienen a esa edificación llamada una mala administración de proyectos.
proyecto, y sin una buena administración de ¿PMs sabelotodo?
proyectos el edificio se puede venir abajo Confundiendo al PM Claro que en proyectos pequeños, quien diri-
fácilmente. Entre más grande y complejo el En primer lugar, hay que entender que un ge el trabajo suele tomar responsabilidades
proyecto, más indispensable se vuelve el candidato a administrador de proyectos, no adicionales a la administración del proyec-
uso de las prácticas administrativas y de un necesariamente es aquella persona que ha to. Esto no ocurre pocas veces, y en dichas
buen proceso de desarrollo. estado haciendo un buen trabajo técnico y situaciones cubrir dichos roles requiere las
Enrique Flores es colaborador para liderdeproyecto.com, un portal gratuito para promover mejores practicas en administración de proyectos en América Latina
MDA
Reusabilidad Orientada al Negocio
Por Valerio Adrián Anacleto
Este artículo fue originalmente publicado en la base de conocimien- ted Analysis and Design) contiene, entre otros, una vista de análisis, una
to de Epidata Consulting (www.epidataconsulting.com) y se publica vista de diseño detallado y código –representando la vista de negocios
en SG con el consentimiento del autor. de un sistema–, la vista de arquitectura y la vista de implementación.
MDA agrega una capa de abstracción más, que representa el contexto
En los últimos años, muchas organizaciones han comenzado a prestar de negocio del sistema. En la figura 1 se muestran las diferentes capas
atención a MDA, ya que promueve el uso eficiente de modelos de siste- de abstracción (layers). El gráfico se hace más abstracto hacia la izquier-
mas en el proceso de desarrollo de software. da y se vuelve más concreto hacia la derecha.
¿Qué es MDA?
MDA es el acrónimo de Model Driven Architecture (Arquitectura Dirigi-
da por Modelos), un concepto promovido (pero no creado) por la OMG,
que propone basar el desarrollo de software en modelos especificados
utilizando UML, para que, a partir de esos modelos, se realicen trasforma-
ciones que generen código u otro modelo, con características de una tec-
nología particular (o con menor nivel de abstracción). MDA define un fra-
mework para procesar y relacionar modelos. Suele escucharse que MDA
es la evolución natural de UML, ya que tiende a incrementar la cantidad de
código generado, a partir de especificaciones detalladas en UML. Figura 1: Un ejemplo de modelo MDA y sus relaciones.
¿Qué no es MDA? Los modelos concretos exceden en número a los modelos abstractos. A
Hoy MDA es uno de los tantos acrónimos de moda y, como ocurre algu- medida que avanzamos en las transformaciones, los modelos se vuelven
nas veces con las modas, el concepto puede tender a malinterpretarse. más concretos, transformando al modelo abstracto en uno compatible con
Por lo tanto, enumeremos rápidamente que no es MDA. una tecnología o plataforma. La situación inversa de llevar el código hacia
1. MDA no es un proceso de desarrollo un modelo concreto –también conocido como ingeniería en reversa– rara
2. MDA no es una especificación vez ocurre, excepto cuando el punto de partida es el código mismo. Esto
3. MDA no es una implementación se produce debido a que MDA promueve la fuerte separación entre las
4. MDA no es una implementación de referencia de ningún estándar responsabilidades de requerimientos del negocio y las responsabilida-
particular des tecnológicas. La ventaja de esta “separación de responsabilidades”
5. MDA no es un concepto maduro aún es que ambos aspectos pueden evolucionar individualmente sin generar
6. MDA no es simplemente generar código dependencias entre sí. De está manera, la lógica de negocio responderá a
7. MDA no tiene, aún, una visión unificada en la industria las necesidades del negocio y no dependerá de vicisitudes técnicas.
8. MDA no es una arquitectura ni un “arquitectural style o pattern”
CIM (Computational-Independent Model)
Modelos MDA El CIM se centra en los requerimientos y representa el nivel más alto del
Los modelos juegan un rol trascendental en MDA. Como un framework modelo de negocios. Usa un lenguaje para modelar procesos de negocios
para construir sistemas, MDA abstrae el sistema a construir en distintas que no es UML, aunque este lenguaje puede ser derivado perfectamente
capas de abstracción (layers). Tradicionalmente, el OOAD (Object Orien- utilizando MOF (meta-object facility). El CIM transciende a los sistemas;
Code model Ahora bien, para realizar el mapeo entre un PIM marcado y, por ejemplo,
El modelo de código representa el código desplegable (deployable), nor- un PSM, es necesario detallar cómo se mapean esas marcas; para eso
malmente en un lenguaje de programación de alto nivel, como Java, C#, se definen los Mappers (mapeadores). Puede verse la relación entre los
C++,VB, JSP, etc. Idealmente, el modelo de código está listo para compilar mapeadores, las marcas y los PSM en la figura 3. Los mapeos se hacen
y no debería requerir la intervención humana; el despliegue de la aplica- utilizando un QVT: Query, Views, and Transformations.
ción podría ser automatizado. Según los puristas y algunos fanáticos de
MDA, en un ambiente MDA maduro no deberíamos pensar en el código Ventajas de MDA
más que como simples archivos, o como un mero objeto intermedio para La ventaja principal de MDA radica en la clara y estricta separación
generar el ejecutable final. Pero debido a que MDA no está maduro, y di- de responsabilidades. Por un lado, modelaremos los PIMs, que re-
fícilmente se llegue alguna vez a la utopía de no tener que tocar ningún presentan los modelos de nuestro negocio, y por otro lado, los PSMs
código, los desarrolladores seguiremos necesitando conocer la tecnolo- con las preocupaciones tecnológicas. Esto permitirá que ambos mo-
gía para complementar la generación de código, debuguear la aplicación delos puedan evolucionar por separado. De esta manera, si quisié-
y, sobre todo, lidiar con muchos y variados errores inesperados, extraños ramos, por ejemplo, modificar un aspecto técnico, bastará con modi-
y divertidos. ficar el PSM sin que estos tengan impacto en la lógica de negocios.
Esta idea viene de un concepto que, en ingeniería de software, se
Decisiones de diseño llama “Guías de Diseño”. Particularmente, una de esas guías dice
Hemos visto cómo, de manera automática y paulatina, MDA promueve que el modelado de la solución debe ser dirigido por el negocio. Esta
la transformación de modelos que representan lógicas de negocios com- guía se basa en la afirmación de que un cambio en el negocio segura-
plejas (CIM), hasta llegar al código ejecutable y desplegable (Code Mo- mente produzca un cambio en el código, pero no lo inverso: los cam-
del). Pero, ¿qué pasa con las decisiones de diseño, aquellas decisiones bios en el código no deberían impactar en el negocio. MDA también
que tomamos cuando, por ejemplo, tenemos que desarrollar un sistema permite: lidiar con la complejidad del negocio, modelando a éste por
donde la mayoría de las transacciones sólo leen datos, pero diez de ellas separado y permitiendo su análisis y mejora; disminuir costos, si se
hacen uso intensivo del procesador? ¿Qué pasaría si todos los mapeos se cuenta con una herramienta MDA adecuada a nuestras necesidades;
hicieran de igual manera? Nos es dado a pensar que esto degradaría la mejorar la calidad de nuestros modelos y procesos, mediante su
calidad final percibida de la aplicación. Para corregir este problema, MDA análisis y la separación de responsabilidades.
promueve el uso de Marks (marcas), las cuales indican aspectos especí-
ficos para tener en cuenta en cada transformación. Un PIM generado a Estándares involucrados en MDA
partir de un PIM y Marcas se denomina PIM Marcado o Marked PIM. La Las tecnologías más importantes involucradas, para poder llevar a la
utilización de las marcas establece que las decisiones respecto a aspec- práctica los conceptos subyacentes en MDA son: Meta Object Facili-
tos tecnológicos queden fuera de los modelos principales. ty (MOF), Unified Modeling Language (UML), XML Model Interchange
(XMI), Common Warehouse Meta-model (CWM), Software Process
Engineering Meta-model (SPEM), Action Semantics Language (ASL),
Query-View-Transformation (QVT), UML profiles.
Herramientas MDA
Las herramientas MDA deberían proveer la capacidad de transformar
modelos de negocios puro (CIMs) en aplicaciones completas, desple-
gables y capaces de ejecutar con un mínimo de decisiones técnicas.
Lamentablemente, nos encontramos muy lejos de que MDA o alguna
herramienta MDA provea todas estas facilidades para cualquier negocio
y problemática a desarrollar. Tampoco existe un líder en herramientas
MDA, debido a que son muy sofisticadas. Algunas de las herramientas
más conocidas con:
1. ATL (ATLAS Transformation Language)
2. OptimalJ
3. ArcStyler
4. UMT (UML Model Transformation)
5. ArgoUML
6. Codagen
Figura 3: Utilización de marcas y mapeos 7. Rational Architect
Valerio Adrián Anacleto es socio fundador de Epidata Consulting, empresa especializada en Arquitectura de Software con oficinas en Argentina y
Chile. Adicionalmente, Valerio es docente de la facultad de ciencias exactas y naturales de la UBA y dicta clases también en CEIS - Carrera de
especialización de Ingeniería de Software - en la UCA.
Más allá del caso práctico sugerido, debemos tener en cuenta varios factores al momento
de la evaluación. Estos factores tienen que ver con: El mantenimiento de la aplicación:
¿Cuánto me va a costar agregar o mantener código una vez que haya pasado por el pro-
ceso de generación? Impacto del cambio: ¿Cómo se administra un cambio en el proceso
de negocio? ¿Qué costo tiene? Manejo de excepciones: ¿Cómo se administran los casos
excepcionales, como por ejemplo las transacciones que hacen uso intensivo del procesa-
dor? Curva de aprendizaje: ¿Cuál es la curva de aprendizaje? ¿Tengo que aprender todo un
nuevo meta-lenguaje? ¿Basta con el uso intuitivo de herramientas “visuales”? Madurez:
¿Qué tan madura es la herramienta y los frameworks involucrados? ¿Cuántos y cuáles ca-
sos de éxito existen?
Como éstas, hay muchas preguntas que debemos hacernos antes de elegir una herramienta,
con la cual tendremos que convivir un tiempo determinado y la cual podría llegar a transfor-
marse en un gasto, para dejar de ser la inversión esperada.
Conclusión
MDA data del año 2000, cuando la OMG publicó un white-paper titulado “Model Driven
Architecture”, en el que describía la visión del desarrollo de software a través de modelos
de objetos relacionados entre sí, para la generación de sistemas completos.
Si bien transcurrieron casi seis años desde esa fecha, MDA no es, ni será, una bala de
plata capaz de aniquilar a todas las problemáticas inherentes al desarrollo de software.
Hoy día, a pesar de todo, los modelos son costosos de construir y, una vez construido el
modelo, éste debe ser transformado manualmente en código. Esta tarea es tediosa, pro-
pensa a errores, repetitiva en muchos casos y, sobre todo, un proceso caro en recursos
(y dinero, claro). Además, una vez que el trabajo interesante y de mayor abstracción fue
realizado, sólo la transformación desde el código al ejecutable es automatizable.
En el número anterior SG Año 03, número 06, comenzamos con una admin1 = CAdminSistema.new( “Carlos”, “a9M4xSmart”, “xxx” )
serie de artículos introductorios al lenguaje de programación Ruby y admin2 = CAdminSistema.new( “Marco”, “b9D4xSmallTs”, “www” )
admin3 = CAdminSistema.new( “Luis”, “ b9D4xBigHcWTs “, “rrr” )
el uso del framework Ruby on Rails. En este artículo, continuamos con
admin4 = CAdminSistema.new( “Pablo”, “f0H4xSmart”, “xxx” )
la serie introductoria a la representación natural del lenguaje. En esta
ocasión, veremos otras de las características de Ruby, las cuales, nos Una vez que tenemos los objetos con los usuarios, los agregamos a
ayudarán a comprender mejor el uso de RoR (Ruby on Rails) . la lista:
Los arreglos presentan el operador [ ] que permite accesar un elemento determinado; y como
sucede en otros lenguajes, el indice inicial del arreglo comienza en 0.
Si por otra parte no deseamos utilizar la declaración explícita de un arreglo, sino queremos
definirlo dinámicamente, se deberá emplear la clase Array:
nombreArreglo = Array.new
La clase Array posee un gran número de métodos ya que hereda (o adquiere) mucha fun-
cionalidad de otro mixin importante: Enumerable. Un mixin es una característica de Ruby
que permite la inclusión de funcionalidades (métodos que estén definidos en otra área
(module) ) dentro de una clase o método dado. El concepto es parecido al efecto que se
tiene si se usan elementos definidos en otro package (si se habla de Java) o namespaces
(si se habla de C#).
Ahora bien, entre los métodos y operadores más importantes de la clase Array están:
&, *, +, -, ==, [], at, concat, delete, delete_at, each, empty?, eql?, fetch, first, include?, insert,
join, last, length, nitems, porp, push, replace, reverse, shift, size, sort, to_a, transpose.
Hashes
Al igual que los arreglos los hashes son colecciones indexadas, pero a diferencia de los prime-
ros, los hashes presentan un indexado y método de acceso asociado a valores de llaves especí-
ficas dentro del hash. También se les conoce como mapas, diccionarios o arreglos asociativos,
en donde las llaves y valores pueden ser de cualquier tipo.
La forma de declarar un hash es:
Observemos que a diferencia de un arreglo, cada elemento del hash es un par llave => valor en
donde a diferencia de lo que pasa en un arreglo, el valor de la llave no necesariamente tiene
que ser ordenado en relación con otros elementos del hash.
Algunos ejemplos de hash son: uno de los administradores, podríamos hacerlo accesando directa-
mente a cualquiera de sus celdas:
ACCION = 1 puts “Elemento 0:= “ + listaUsuarios[ 0 ].nombre
DRAMA = 2 puts “Elemento 1:= “ + listaUsuarios[ 1 ].nombre
hash1 = { 0 => “PRIMERO”, 1 => “SEGUNDO”, 2=> “TERCERO” } …
hash2 = { ACCION => “60 Segundos”, DRAMA => “Kramer vs Kramer” } puts “Elemento 3:= “ + listaUsuarios[ 3 ].nombre
hash3 = { 1 => ‘K’, 3 => ‘L’, 5 => ‘M’ }
hash4 = { 0 => 0, 1 =>1, 2 => ‘M’, 4 =>’Carlos’ } Sin embargo esto representa una gran cantidad de trabajo, más aún
cuando sabemos que es posible tomar ventaja de la naturaleza del
El acceso a cualquiera de los elementos del hash es a través de los arreglo como colección, es decir, al igual que sucede en otros len-
valores de las llaves, utilizando el operador [ ]: guajes de programación es posible iterar sobre el arreglo:
puts hash1[ 0 ]
puts hash1[ 2 ] class CListaUsuarios
puts hash2[ DRAMA ] …
puts hash2[ 0 ] def getNombres_iterando_en_arreglo
puts hash3[ 1 ] tamanoArreglo = @arregloUsuarios.length
puts hash3[ 5 ] if tamanoArreglo > 0 then
puts hash3[ 0 ] begin
puts hash3[ 2 ] ###--- !OJO! Notese que el indice inicia en 0 ---###
puts hash4[ 4 ] ###--- y acaba en tamanoArreglo-1 ---###
for i in 0..tamanoArreglo-1
La salida es: puts @arregloUsuarios[ i ].nombre
end
PRIMERO end
TERCERO
end ### <= end del if-then
Kramer vs Kramer
nil end ### <= end del def nombres
K …
M end
…
nil listaUsuarios. getNombres_iterando_en_arreglo
nil
Carlos La salida será:
Ahora bien, aun cuando tanto arreglos como hashes son estructuras Carlos
sumamente útiles, es necesario incorporar otro elemento de Ruby Marcos
que entre otras cosas complementa y toma ventaja de la naturaleza Luis
de estas estructuras. Pablo
El elemento al que nos referimos se conoce como bloque (block), y Además de mostrar cómo se itera sobre un arreglo, este ejemplo
permite la ejecución de instrucciones interactuando con cada uno de muestra dos nuevas estructuras de control: if-then y for. La estructura
los elementos internos de los hashes y/o arreglos, de hecho también if-then comprueba la veracidad de una condición, si se cumple se eje-
utiliza en forma intrínseca la capacidad funcional los métodos sim- cuta el conjunto de sentencias contenidas en el siguiente bloque.
ples o agregados a una clase.
La estructura for ejecuta repetidamente un conjunto de intrucciones,
Bloques (blocks) tomando como base el rango definido después de la palabra in.
Un bloque (block) es un mecanismo que permite la agrupación de
enunciados y la llamada anónima a esta agrupación desde un méto- En ambos casos la delimitación del bloque de sentencias ocurre has-
do determinado. ta la declaración de la palabra end (nótese los comentarios que indi-
can los finales de bloque).
A continuación definiremos un ejemplo para explicar con más dete-
nimiento cómo opera. El iterar sobre un arreglo parece bastante claro y útil, de hecho
como se puede apreciar esta forma es muy similar a la que se
Continuando con el ejemplo de los Usuarios, recordemos que había- tiene en otros lenguajes como VB.NET, C# o Java, sin embargo, es
mos agregado datos, si ahora deseamos conocer el nombre de cada posible que este tipo de codificación sea más natural si emplea-
- La definición del bloque inicia a partir de la palabra do y hasta la mente cómo es que está definido internamente each, si podemos
palabra end; es decir abarca los parámetros y todo el bloque de sen- deducir que en este método existe una declaración yield que tiene
tencias que se deseen definir hasta la palabra end. un solo parámetro, y que éste le proporciona el valor correspondien-
- La listaParametrosFormalesDelMetodo es la definición de todos te al parámetro elementoArreglo (esto es, sólo existe un parametro
los parámetros a pasarle al método, y estos pueden o no ser los dentro del bloque).
mismos parámetros que internamente se le pasen al metodo yield. Ahora, lo que sucede dentro del bloque es responsabilidad del pro-
- La listaParametrosAPasar es la declaración formal de todos los pa- gramador: en este caso sólo se deseó imprimir el nombre del ele-
rámetros que se le pasan al método. mento del arreglo en cuestión, si hubiésemos querido podríamos
- paramA, paramB,…paramZ son los párametros a pasarle al bloque; haber escrito un bloque de sentencias más sofisticado.
dicha lista debe declararse en medio de barras verticales, precedi-
das además por la palabra reservada do. Compárese la elegancia, legibilidad y agilidad que proporciona
esta construcción contra la forma clásica de iterar sobre el arreglo
En runtime, el orden de ejecución de llamadas es: que habiamos propuesto anteriormente (y que es similar a la que
1. Se invoca algunMetodo con la listaParametrosAPasar. se tiene en VB.NET, Java o C# ).
2. Una vez dentro de algunMetodo se empiezan a ejecutar en orden
todas las sentencias hasta que Ruby detecta la invocación a yield. Resumen
3. El intérprete de Ruby es inteligente y recuerda si existe algun blo- En esta segunda parte se completó la revisión de los principales
que que previamente definido de manera adyacente a la llamada ini- elementos de lenguaje Ruby. Como ya se había explicado antes,
cial de algunMetodo. ésta no sería una revisión exhaustiva sino lo suficientemente ge-
4. Si fue definido, yield actúa como la invocación anónima a ese neral y breve para contar los elementos básicos necesarios para
bloque, es decir yield invoca la ejecución de bloque pasándole aplicar Rails.
a este los parámetros param0, param1, …paramN, en otras pa-
labras, paramA tomará el valor que hayamos pasado a param0, Esta revisión incluyó el manejo de arreglos, hashes y bloques. Y una
paramB tomará el de param1, paramC tomará el de param2, et- breve explicación de concepto de mixin y de las estructuras de con-
cétera. trol if-then y for.
5. Una vez ejecutado el bloque, se regresa el control al método, eje-
cutándose la siguiente instrucción definida después de yield. En nuestra próxima entrega abarcaremos la instalación y arquitectu-
ra de Rails como framework con un ejemplo que permitará mostrar
Nota: Por supuesto que tanto los parámetros del método como los del las capacidades de desarrollo ágil de Ruby y de Rails.
bloque son opcionales y pueden o no declararse si así uno lo desea.
Referencias
Abordemos ahora nuestro ejemplo: • Thomas David, Fowler Chad, Hunt Andy. “Programming Ruby”. 2nd
Edition. The Pragmatic Bookshelf. 2005.
@arregloUsuarios.each do| elementoArreglo | • Thomas David, Heinemeier Hanson David, et al. “Agile Web Deve-
puts elementoArreglo.nombre lopment with Rails”. 2nd Edition. The Pragmatic Bookshelf. 2006.
end • Black, David A. “Ruby for Rails”. Manning Publications Co. 2006
Primero notemos que each es un método que pertenece a la clase • Troelsen, Andrew. “Pro C# 2005 and the .NET 2.0 Platform”. 3rd
Array (se puede constatar esto si accesamos la biblioteca de lengua- Edtion. Apress. 2005.
je: Ruby Library Reference). • www.ruby-lang.org/en
Si bien es cierto que en la biblioteca no podemos verificar directa- • www.rubyonrails.org
Carlos Ortega es consultor en metodologías y prácticas ágiles (XP, TDD, Refactoring, Pair Programming), cuenta con certificaciones en RUP,
OOAD, UML, etcétera. Es Certified ATAM Evaluator y Certified Professional Software Architect ambos avalados por el SEI. Ha colaborado en numerosos
proyectos para diversas organizaciones como Banco de Mexico, Elektra, Banco Azteca, Fandelli, Oracle, IMSS, Heinson, Accenture, EDS. Actualmente
colabora con Software Ágil, empresa dedicada al tutelaje e implementación de metodologías ágiles (SCRUM, XP, Crystal).
Frecuentemente somos cuestionados en nuestros cursos acerca de Estereotipos para las clases
las formas para representar de manera más explícita cierto tipo de
aplicaciones utilizando UML, pero sin lo “aburrido” de la notación.
Cierto es que UML es gráfico de por sí, pero usar los mismos elemen- Estereotipo Descripción
tos independientemente del tipo de aplicación, por ejemplo cuando Representa una página Web que tiene scripts ejecuta-
estudiamos el modelado de aplicaciones web, el modelado del ne- dos por el servidor. Estos scripts interactúan con los
gocio, de sistemas de tiempo real o de bases de datos, a algunas recursos que se encuentran al alcance del servidor.
personas les genera ruido y prefieren algo más explícito. Sólo puede mantener relaciones con objetos que se
encuentren en el servidor.
Para resolverlo aprovechamos una de las características peculiares
que le dan flexibilidad a la notación de UML. Y consiste en el conjunto Representan páginas que son dibujadas por el nave-
de mecanismos de extensión (de significado): estereotipo, restricción gador web y pueden ser una combinación de algún
o algunos lenguajes de marcado, scripts del lado del
y valor etiquetado. Estos mecanismos le permiten a UML extender y cliente, islas de datos, etc.
enriquecer el significado de sus elementos y símbolos básicos de tal
suerte que pueden ser empleados para representar dominios en don-
de nunca se tuvo una intención explícita de origen de aplicarlos. Ha- Representa una colección de campos de entrada que
berlo hecho así supondría una limitante para la aplicación genérica del forman parte con una página del lado cliente (Client
lenguaje unificado. Ejemplos de estos dominios son el modelado de Page). Tiene una correspondencia directa con la eti-
negocio (aunque ya existe BPMN como un estándar más específico), queta <FORM> de XHTML.
el modelado de bases de datos, el modelado de aplicaciones web o el
modelado de circuitos electrónicos, por mencionar algunos.
Es una colección de scripts del lado del cliente que
Arquitectura para web existe como un archivo separado y que son incluidos
mediante una petición independiente por parte del
La mayoría de las aplicaciones desarrolladas hoy en día son las apli-
navegador.
caciones llamadas web, es decir, aquellas que tienen como elemen-
to significativo de su arquitectura un navegador y un protocolo de
comunicación HTTP. Cuando capacitamos a la gente en arquitectura
y patrones, buscamos que el alumno comprenda las formas de ela- Estereotipos para las relaciones entre las clases
borar este tipo de aplicaciones, como su ubicación en algunos de
los patrones de arquitectura web: “Cliente Delgado Web”, “Cliente Link Representa un apuntador desde una client page hacia
una client page o server page. Corresponde directa-
Robusto Web” o “Reparto Web”.
mente con una etiqueta <a> (ancla) de HTML.
El estándar de facto en web Esta relación siempre se da entre una form y una server
Submit
En 1998, Jim Conallen definió una extensión a la que denominó WAE page, por supuesto, la server page procesa los datos
(Web Application Extension) para UML. Esta extensión es la conven- que la form le envía (submits).
ción más difundida y aceptada hasta nuestros días y podríamos decir
que define el estándar de facto. En esta entrega, formada por dos Build Sirve para identificar cuales server page son responsa-
bles de de la creación de una client page. Una server
artículos, presentaremos los elementos que definen el 20-80 en el
page puede crear varias client page, pero una client
modelado de aplicaciones web usando la WAE. El foco de este artí- page sólo puede ser creada por una sola server page.
culo es la WAE en los diagramas de clases. Esta relación siempre es unidireccional.
Extensiones WAE para el diagrama de clases Redirect Esta es también una relación unidireccional que indica
que una página Web redirige hacia otra. En caso de
Algunos de los ejemplos más comunes de estereotipos que se pue- que la página origen sea una client page esta aso-
den asociar a las clases y a las relaciones entre éstas, para represen- ciación corresponderá con la META etiqueta y valor
tar una aplicación en web son las siguientes: HTTP-EQUIV de Refresh.
Un ejemplo de sistema en web cuentan con íconos alternativos que pueden utilizarse, aunque esto
Si bien no presentaremos el modelo de casos de uso para ejem- es algo opcional. En nuestro ejemplo se muestran directamente los
plificar el uso de esta notación, para resaltar el modelo de clases nombres de los estereotipos para cada clase y relación, en lugar de
con sus extensiones, si necesitamos ubicar el ejemplo en algún es- los íconos asociados a cada uno de esos estereotipos. Muchas he-
cenario. Por ejemplo: en nuestro sitio nuestros alumnos pueden rramientas de modelado te permiten, de manera simple, elegir entre
consultar los datos del curso en el que están inscritos y, desde este una u otra forma de representación.
mismo lugar, pueden también contestar una encuesta de satisfac-
ción durante el último día del mismo. En la figura 1 vemos parte Aplicación de WAE en las páginas
del modelo de clases de dicho sistema utilizando los estereotipos En el diagrama de la figura 1 podemos observar varias clases a las
propios de WAE. que se les han asociado los estereotipos antes descritos, también
podemos observar que entre las clases sólo existen relaciones
Anotaciones básicas de asociación, de las cuales algunas usan los estereotipos WAE y
Suponemos que está de más comentar que las relaciones entre las otras no. Las que no usan los estereotipos WAE como por ejem-
clases en los diagramas de clases no sugieren o asumen ningún plo: la relación entre LoginForm y LoginValidator es la veterana
tipo de flujo, que las puntas de flechas sólo son restricciones en relación de composición, la cual indica lo de siempre, que el script
cuanto al sentido en que la relación puede ser transitada. Recorde- del lado del cliente LoginValidator es una pieza inseparable de la
mos que el diagrama de clases es un diagrama estructural. También forma LoginForm.
cabe señalar que el diagrama de clases que aquí se presenta tiene
un punto de vista de diseño y no uno conceptual (figura 1). Relaciones WAE entre las páginas del sistema
También podemos ver que la página del lado del servidor llamada
PresentarDatosCurso es la responsable de procesar los datos que
la forma Login le envía (relación «submit»). Otra de las cosas que
podemos ver es que la página del lado del servidor PresentarDatos-
Curso es la que se encarga de construir la página del lado del cliente
CursoForm (relación «build») o, en caso de presentarse un error, re-
dirigir el control a la página del lado del servidor que se encarga de
manejarlo ReportarError (relación «redirect»). Finalmente, podemos
notar también que la página del lado del cliente CursoForm mantiene
una liga hacia la página del lado del servidor EncuestaParticipante
(relación «link»).
Sólo el comienzo
Figura 1: Modelo de sistema de cursos y encuestas con extensiones WAE. Existen algunos otros elementos definidos en la WAE que aquí he-
mos omitido. Este artículo presenta sólo unos pocos de los más uti-
Nombres o íconos lizados. Próximamente presentaremos los estereotipos y aplicación
Igual que cuando brindamos nuestra capacitación presencial, y an- de éstos en los diagramas de componentes; y recuerda que al elabo-
tes de analizar este modelo de clases, consideramos conveniente rar tus modelos, en muchos casos, entre más simple mejor. Al fin y al
recordarle a nuestro público que algunos elementos estereotipados cabo un modelo busca simplificar, no complicar las cosas.
Sergio Orozco es Director General e Instructor Senior, Charlie Macías es Consultor Senior e Instructor Senior,ambos especializados en temas relacionados
con UML en Milestone Consulting. Milestone Consulting (UML Value Added Training Center), es una empresa especializada en capacitación práctica-inten-
siva y consultoría en UML, BPMN, Arquitectura de SW y PM. Milestone Consulting fue la primer empresa mexicana miembro de la OMG, además de ser REP
del PMI. info@milestone.com.mx www.milestone.com.mx
Reciclando
Cómputo verde
Tecnología
Luis Daniel Soto es Director Regional de Desarrolladores y Difusión de Plataforma en Microsoft para América Latina. Es miembro de la
orden nacional al mérito de México (ministro de educación). Luis Daniel obtuvo el primer lugar en el Concurso Nacional para Software de
Exportación en 1989. blogs.msdn.com/luisdans
Genio y Figura o…
El Gusto por el Cómputo
Dr. Raul A. Trejo es profesor investigador del Instituto Tecnológico y de Estudios Superiores de Monterrey, campus Estado de México. Aun-
que su área de especialidad es la inteligencia artificial, siempre ha sido un apasionado de la Ingeniería de Software y de la programación en
particular. Ha programado en Basic, Pascal, C y sus derivados, pasando por lenguajes más esotéricos como Lisp, Scheme y Prolog, antes de
dejarse convencer por la programación orientada a objetos. Es entusiasta usuario de C# y aún encuentra ratos libres para programar.
Parecería que el control de las versiones Beta licen las correcciones necesarias dentro de
de software no es una tarea fácil, pero la Cuando el desarrollo ha alcanzado cier- esta misma fase.
realidad es otra. Este tipo de administra- ta madurez, es decir, cuando se tiene la
ción es muy sencilla si se basa en la no- primera versión completa conforme a los Versión RC (release candidate)
menclatura adecuada. requisitos establecidos en la pre-alfa, en- En esta etapa se puede considerar al desarro-
tonces el producto pasa a otra etapa del llo como un producto final que solamente será
Esta nomenclatura es la que define a simple control de versiones. Generalmente es considerado como versión definitiva si éste no
vista los detalles de las versiones que se es- aquí cuando los desarrolladores congelan presenta fallas. Cuando se llega hasta aquí, no
tán trabajando en nuestro desarrollo. la solicitud de nuevas características al deben existir errores que detengan el desarro-
producto que no hayan sido definidas en llo y avance del mismo. Debe contemplar todos
¿Cómo se define? las etapas previas. los puntos que se definieron en el diseño del
El esquema para administrar estas versiones sistema (considerado en la etapa pre-alfa).
se expresa típicamente por una nomencla- Las versiones beta comienzan a definirse
tura formada por tres dígitos, los cuales, de bajo la nomenclatura: Siguiendo la nomenclatura, en este momen-
acuerdo a su posición adquieren un signifi- to ya tendríamos la versión 1 del producto y
Versión mayor.versión menor
cado, definiendo bajo el siguiente esquema la 0 en el dígito de la versión menor. Si exis-
sus valores: Como la fase aún no cuenta con las ca- tieran cambios en esta etapa, se definirian
raterísticas necesarias para considerar- después del segundo dígito separado por
Versión mayor.versión menor[.número de revisión[.número
de modificación]]
se un producto candidato a una primera punto, es decir:
versión, el dígito mayor se define con un
Para las versiones comerciales de un produc- 0, formando el distintivo para la versión 1.0 sería una versión RC sin modificaciones,
to, esta nomenclatura comienza a partir de beta de 0.X. Conforme al esquema, si en mientras que 1.0.1 sería una versión RC con
la versión 1.0 identificando a las versiones esta fase existiera un cambio que no es una modificación realizada.
alpha o beta cuando la parte de la versión tan relevante para catalogarlo como un
mayor está por debajo de 1, y aumenta su producto candidato al siguiente nivel, en- El incremento del dígito que indica la versión
valor cuándo el producto ha sufrido cambios tonces las modificaciones iniciarian en 1 e mayor, se realiza cuando éste ha sufrido cam-
relevantes en su funcionamiento. irían en una posición después del número bios relevantes a su funcionalidad actual.
de la revisión, es decir, se tendría defini-
Las bases da la beta: Versión final
Pre-alfa En esta etapa, el producto es considerado
0.X.X.1
Se le llama pre-alfa a la etapa que define como estable y relativamente libre de erro-
todas las actividades previas a las pruebas Indicando el cambio que ha presentado el res, aunque puede presentar algunos, pero
de software, pueden considerarse dentro producto en esta fase. Si esta fuera la ver- deben ser los mínimos. En este momento,
de esta el análisis de requerimientos, dise- sión 1 de la beta con una primera revisión, el producto está listo para ser liberado al
ño de software, desarrollo de software y el entonces la nomenclatura estaría formada usuario final. Generalmente a este tipo de
unit testing. de la siguiente manera: versiones con fines comerciales, se les defi-
ne con un nombre de control diferente al de
Alfa 0.1.1.1 la nomenclatura pasada.
Su nombre se deriva de la primera letra del
alfabeto griego. Esta versión no es pública y Aquí podemos realizar dos tipos de pruebas:
su liberación solamente se hace dentro de 1. Abierta, el número de participantes que se Conclusión
las áreas internas de testing. A esta fase se asignan para su prueba no está limitado. El control de versiones no solamente
le considera como la primera de desarrollo 2. Cerrada, en la que un grupo de personas ayuda a la buena administración de
concreto de la lógica. Básicamente estamos es seleccionado para realizarle las pruebas un proyecto, sino que además brinda,
hablando de un prototipo. necesarias al producto. a simple vista, un panorama general
del estado en el que se encuentra el
Generalmente un desarrollo en esta etapa Los testers (evaluadores) asignados, repor- desarrollo de una aplicación. Esta
no contiene toda la funcionalidad que tiene tarán al equipo de desarrollo los errores en- ingeniería brinda consistencia, repro-
contemplado el producto final, por lo tanto, contrados y en ocasiones, características de ducibilidad y verificabilidad durante el
se pueden presentar numerosos bugs en su menor importancia que les gustaría ver en la proceso de desarrollo.
fase de revisión. versión final del producto, para que se rea-
En 1965 Gordon Moore predijo que la cantidad de transistores que se Se necesitan nuevas estrategias para mantener el ritmo de mejora en
podía integrar en un chip de silicón se duplicaría cada 18 a 24 meses. desempeño y precio.
Esta se conoce como la Ley de Moore, y se ha mantenido durante
más de 40 años. Durante este tiempo, el incremento en la densidad Estrategias de mejora que se han aplicado
de transistores ha generado aumentos proporcionales en el desem- A lo largo de los años, los diseñadores de procesadores han encontra-
peño de los microprocesadores y la relación precio/desempeño. do varias estrategias para aprovechar la mayor densidad de transisto-
res sin necesidad de aumentar la frecuencia de reloj. Algunas son:
En general, conforme los transistores son más pequeños pueden
switchear más rápido entre un estado y otro. Esto permite que al • Formatos de datos mayores. Los procesadores modernos de 64 bits
mismo tiempo que aumenta la cantidad de transistores, también se son el resultado de una larga evolución desde los primeros procesa-
aumente la frecuencia del reloj de un procesador. Tradicionalmente, dores de 4 bits. Cada mejora ha provisto un procesamiento más rápido
los aumentos en la frecuencia de reloj han sido más importantes que de mayores cantidades de datos, y ha permitido que los procesadores
los aumentos en densidad de transistores. Esto es porque aprove- puedan apuntar directamente a mayores volúmenes de memoria. Ac-
char una mayor cantidad de transistores requiere mejoras de diseño, tualmente estamos viviendo una transición donde los procesadores
mientras que las ganancias otorgadas por una mayor frecuencia de de 64 bits se convertirán en la norma. Para poner esto en perspectiva,
reloj son automáticas. El software existente se ejecuta de forma más recordemos que un procesador de 32 bits puede apuntar directamen-
rápida sin tener que hacerle nada. Por esta razón, el aumento de fre- te hasta un máximo de 4GB de memoria, mientras que uno de 64 bits
cuencia ha sido el motor principal detrás de las mejoras en desem- soporta espacios de dirección de 18 millones de terabytes.
peño de los procesadores.
• Paralelismo a nivel de instrucciones. También conocido como ILP
La Ley de Moore se mantiene al día de hoy y se espera que la densi- por sus siglas en inglés (Instruction Level Parallelism), permite que un
dad de transistores se siga duplicando al mismo ritmo durante otros procesador dinámicamente evalúe conjuntos de código para determi-
diez años por lo menos. Sin embargo, en años recientes el aumen- nar qué instrucciones son independientes y se pueden procesar de
to de frecuencia ha encontrado obstáculos mayores. Sucede que el forma simultánea o en otro orden. Si una instrucción está esperan-
consumo de energía y generación de calor aumentan exponencial- do una entrada de datos, entonces el procesador puede ejecutar una
mente con la frecuencia de reloj. Esto no había sido un problema instrucción independiente mientras tanto. Esta estrategia ha cobrado
anteriormente porque los niveles no eran significativos, pero en los mayor importancia conforme ha aumentado la brecha entre la veloci-
últimos años se ha convertido en un factor de crucial importancia en dad de los procesadores y las memorias. A lo largo de los años, se ha
el diseño de procesadores. hecho un uso fuerte de ILP para reducir el impacto de los tiempos de
espera de memoria. Sin embargo, esta actividad es demandante en
Aunque los servidores modernos proveen un desempeño por watt procesamiento, ya que requiere que el procesador examine código en
mucho mejor que el de sus antecesores, en total tienen requerimien- tiempo de ejecución, encuentre oportunidades de paralelizarlo, y lue-
tos de energía y enfriamiento mayores, y muchos de los centros de go reagende las instrucciones en la cola de procesamiento. Esto hace
datos existentes no fueron diseñados para satisfacer estas deman- a ILP altamente intensivo en recursos, lo cual se termina traduciendo
das de energía. El costo acumulativo de cumplir estos requerimien- en un alto consumo de energía y generación de calor.
tos se está haciendo excesivo, especialmente ante el aumento en los
precios de la energía eléctrica. • Hyper-Threading. Es una técnica que permite que en un momento de-
terminado las diferentes partes de un CPU estén trabajando en diferen-
Por esta razón, aumentar la frecuencia de reloj ha dejado de ser el tes hilos (threads). De esta forma se obtiene un mayor aprovechamiento
medio principal para aumentar el desempeño de los procesadores. del CPU. Para obtener los beneficios de Hyper-Threading, así como de
Robert Shiveley es Gerente de Soluciones Empresariales en Intel, donde dirige las estrategias de transición en la plataforma de servidores. La versión
original de este artículo está publicada en www.devx.com/go-parallel/Article/32725 y ha sido traducida y editada por SG con el permiso del autor.
• Mayor cache. La memoria cache es un espacio para almacenar datos e instrucciones cerca
del procesador (típicamente en el mismo chip). Esto la hace mucho más rápida que la memoria
convencional, además de consumir menos energía.
De las estrategias descritas, la que puede proveer las mejoras más significativas en desem-
peño y consumo de energía es la de aumentar el cache. Sin embargo, esto no es suficiente
para mantener el ritmo de mejora que se tenía con el aumento periódico de la frecuencia de
reloj. Es así que se necesita de una estrategia nueva y diferente para mantener el crecimiento
en desempeño que demanda la industria.
La estrategia multicore
La respuesta de la industria a los retos de desempeño ha sido integrar más núcleos (co-
res) de procesamiento en cada chip de microprocesador. Al tener varios cores ejecutando
instrucciones de forma simultánea, es posible brindar un gran desempeño en aplicaciones
multithreaded mientras se mantiene baja la frecuencia de reloj, limitando así el consumo
de energía.
Aprovechando multicore
Queda claro que los procesadores multicore son el paradigma predominante durante los
próximos años en prácticamente todas las arquitecturas de cómputo, ya que permiten brin-
dar mejoras continuas en desempeño. Los procesadores multicore funcionan muy bien en
aplicaciones que hacen un buen uso de threads, tales como aplicaciones científicas, y
de alto volumen transaccional. También son ideales para ambientes virtualizados, ya que
cada ambiente virtual puede ejecutarse de forma independiente en cada core.
Sin embargo, en el caso de aplicaciones que no hagan un buen uso de threads, las mejoras
de desempeño que se pueden obtener al aumentar el número de núcleos de procesamiento
son marginales. Es por esto que las organizaciones deben revisar cuidadosamente el modelo
y carga de trabajo al que están sujetos sus aplicaciones y servidores, para evaluar qué tantas
mejoras pueden obtener a través de multicore. Adicionalmente deben establecer lineamien-
tos para que las nuevas aplicaciones hagan un buen uso de threads y por lo tanto aprove-
chen al máximo las arquitecturas multicore.
¿Qué es computación ubicua? ¿Es una nueva En nuestro ejemplo, el usuario podría consultar más desee separarse de la misma. Un camino
tecnología orientada al servicio?, ¿un nuevo su correo electrónico o cualquier otro servicio menos transitado al cual le llamo “invisible”
reto en tecnología?, ¿una preocupación más de cómputo desde un espejo o en su recámara tiene como ideal construir una computadora
para los defensores de la privacidad y segu- o baño donde podría escuchar, leer o reenviar que tenga un grado de integración y adecua-
ridad? el mensaje desde una interfaz personalizada. ción tal, que parezca algo natural y llegue
a ser usada de forma transparente por el
Computación ubicua es el nombre de la si- Origen usuario sin siquiera pensarlo. (A esta noción
guiente generación de dispositivos y servi- El concepto de computación ubicua surge a fi- también le llamo computación ubicua) Estoy
cios en Tecnología de Información. Su imple- nales de la década de los ochenta siendo ela- convencido que en los próximos 20 años el
mentación y uso tendrá un impacto radical borado por Mark Weiser durante su trabajo segundo camino será el domínate, pero esto
en la vida de los usuarios tanto en el aspecto en Seros Palo Alto Research Center como jefe no será sencillo. Muy poca de la infraestructu-
laboral, como el académico y actividades de de tecnología. Él junto con John Seely Brown ra de sistemas actuales sobrevivirá este cam-
la vida cotidiana. Con esta nueva tecnología escribieron los primeros ensayos sobre la bio. Durante los últimos cuatro años, hemos
se realizará una transición del uso tradicio- computación ubicua definiendo y esquemati- estado construyendo en PARC distintas ver-
nal de un equipo de cómputo a un nuevo pa- zando su importancia y alcances. siones de la infraestructura del futuro.”
radigma donde la tecnología residirá invisi-
blemente en nuestra vida diaria, proveyendo Weiser reconoce la necesidad de entender Es claro que Weiser no es el único que ha
servicios personalizados a cada usuario. los fenómenos sociales, culturales y psicoló- trabajado en este nuevo paradigma. El MIT
gicos para poder realmente extender e inte- también ha estado realizando investigación;
Cómputo tradicional grar el poder de cómputo en escenarios de la ha contribuido significativamente en este
Para dimensionar el impacto de esta nueva vida real. Él describe la computación ubicua campo. Otras instituciones o compañías que
tecnología, describamos el paradigma tradi- de la siguiente forma: están realizando investigación en esta área
cional de la computación ... son: El Colegio de Computación de Georgia
“Estamos tratando de cambiar radicalmente la Tech, el programa de telecomunicaciones
Tradicionalmente, una persona requiere utili- visión de cómo deberían ser los servicios de interactivas de NYU, Microsoft, Apple, Intel,
zar una computadora para tener acceso a un computo y redes… Nuestra propuesta prelimi- entre otros.
servicio. Además, la persona está obligada nar es: conectar al mundo a través de cientos
a adaptarse a las interfaces y limitaciones de de dispositivos inalámbricos de todos los ta- ¿Computación ubicua o
dicho servicio. Por ejemplo, para revisar su maños (desde pantallas de una pulgada hasta realidad virtual?
correo electrónico, un usuario requiere de un una pared completa) para cada persona y para La computación ubicua es totalmente lo
equipo de cómputo con acceso a Internet, cada oficina. Esta propuesta requiere de nue- opuesto a una realidad virtual. La realidad vir-
econtrándose con distintas formas de acceder vos trabajos en sistemas operativos, redes, re- tual coloca a un usuario en un mundo virtual
su correo, cada una con diferentes interfaces des inalámbricas, interfaces de usuario, panta- generado por una computadora. La compu-
que el usuario debe de saber utilizar. Al día de llas, y muchas otras áreas. Nosotros llamamos tación ubicua requiere que la infraestructura
hoy, la experiencia de usuario y el alcance de a esta propuesta, computación ubicua, la cual y servicios de cómputo residan en el mundo
servicio no es similar entre un cliente de co- es diferente a soluciones como PDA, dynabo- real de los usuarios. Mientras que la realidad
rreo, una página web o un dispositivo móvil. oks o cualquier otra información disponible a virtual es un problema que puede ser solucio-
través de la interacción con nuestros dedos. La nado principalmente con poder de cómputo
En la computación ubicua se rompe este computación ubicua es invisible y se encuentra y las interfaces apropiadas, la computación
paradigma al proponer que la tecnología de en cualquier lugar. Esta no vive en un disposi- ubicua requiere de una integración de perso-
cómputo debe transformarse en una herra- tivo de cómputo, sino se en encuentra en ele- nas con conocimientos en Ciencias Computa-
mienta integrada a nuestra vida diaria y que mentos comunes de nuestra vida diaria. cionales, Ingeniería y Ciencias Sociales.
por esta naturaleza debe ser más robusta y
efectiva. En este nuevo paradigma el usuario Por más de 30 años la mayor parte de los En su esencia, los modelos de computación
no es forzado a buscar un equipo de cómputo diseños de interfaces y cómputo han sido ubicua comparten una visión donde peque-
y seleccionar entre distintas interfaces. Por orientados por el camino hacia la máquina ños dispositivos de cómputo, de bajo costo
el contrario, ésta propone que la interfaz de “espectacular”. El ideal de este camino es lo- y con alta conectividad, se encuentran dis-
cómputo es responsable de localizar y brin- grar construir una computadora tan increíble, tribuidos en gran escala en elementos coti-
dar el servicio requerido por el usuario. maravillosa e interesante que el usuario ja- dianos de la vida diaria para satisfacer cual-
Dell
XPS M1730
Comencemos por sus principales características: tecnología móvil AGEIA PhysX, pantalla Game-
Panel LCD (incorporada a la carcasa) de alta definición con tiempos de respuesta de siete milise-
gundos y compatibilidad con la aplicación Dell LightFX para manipular la iluminación multicolor
LED en el perímetro del sistema, procesador móvil Intel Core 2 Extreme, tecnología Nvidia
SLI con doble GeForce GPUs listo para DirectX 10. Es “la bestia”, una portátil diseñada,
pensada e inspirada en las necesidades de los gamers. En conjunto ofrece entregas
realistas e interacciones ambientales sobresalientes a grandes velocidades sin
degradar el desempeño general del sistema; permite ver estadística de jue-
go, crear nuevos macros y rastrear datos importantes del sistema sin
abandonar el juego. Incluye también un teclado iluminado con área
separada de 10 teclas numéricas; opciones Wi-Fi con Wireless-N
(opcional), cámara web y micrófono para juegos en línea. Para cerrar
la jaula de la más reciente creación de Dell se puede personalizar con
cuatro colores diferentes: crimson red, sapphire blue, bone white y smoke
grey. Como dato adicional, los creadores de la XPS M1730 colaboraron con los
desarrolladores de títulos como The Orange Box y Bioshock para asegurarse que
cumpliera con los requisitos necesarios.
Firebox
Amazon Tux Droid
Kindle Para los seguidores y fanáticos de Linux, su pin-
güino representativo se materializa. Se llama Tux
Encontrarse con esta curiosidad tecno- Droid y no es sólo un adorno para el escritorio, sino
lógica ideada por Amazon puede cau- que es un pingüino muy activo. Se programa para
sar cierta nostalgia en un país como el recibir y transmitir todo tipo de información de In-
nuestro que no lee ni en defensa propia, ternet como correos electrónicos, RSS, noticias,
pero para los que sí y son ávidos devora- clima y mucho más. Además funciona como telé-
dores de novelas o cualquier otro géne- fono VoIP inalámbrico. Viene acompañado de un
ro, y le han entrado a la era de los libros transmisor USB en forma de pez –sí, de pez – para
electrónicos, Kindle simplemente los va poder alimentarle información. Además, emite una
a volver locos. ¿Qué es? “Es una revolu- alerta cuando llegan correos nuevos; puede bailar,
cionaria pantalla electrónica tipo papel” girar y parpadear según se desee. Sirve también
que se lee y se ve como si fuera papel como altavoz para reproductores MP3 y desper-
real; no requiere de una computadora, tador; y gracias a sus sensores de sonido se pro-
cables o sincronización, su conectividad grama como alarma anti-intrusos. Pareciera que lo
inalámbrica permite comprar directamente en la tienda Kindle desde donde único que le falta es hablar, pero
quiera que uno se encuentre, así que el libro adquirido (de una librería de más también hace esto, ya que pue-
de 90 mil títulos disponibles, incluyendo los Best Sellers del New York Times) de consultar tu calendario de
se auto descarga en menos de un minuto. Se puede acceder también a mues- Google y avisarte con
tras de libros para leer los primeros capítulos y después tomar la decisión de su voz robótica avisa
compra; así como a los mejores diarios y revistas de todo el mundo; más de cuando tienes una
250 blogs de negocios, tecnologías, deportes, entretenimiento y política. Es cita. Como es de
ligero, delgado como una edición de bolsillo, pero con una gran ventaja: le esperarse, todo
caben hasta 200 títulos. Cuenta con batería de larga duración que no requiere el software que
recarga diaria. Ahora viajar con el libro favorito que pesa lo de diez será cosa habilita al Tux
del pasado. Droid es libre.
Emilio Osorio colabora actualmente como Consultor Asociado para Sun Microsystems México. Ha trabajado en desarrollos basados en Java desde
1996 y actualmente se dedica a ayudar a equipos de desarrollo a aprovechar las ventajas del Software Libre y los métodos ágiles en sus organizaciones.
Ferviente entusiasta de la aplicación social de la tecnología, a últimas fechas está 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
Wayne Mondy y Robert Noe en su libro sobre Segundo paso Tener una relación más cercana con los que
la Administración de Recursos Humanos defi- Convergencia de los procesos complemen- toman decisiones. Establecer una relación
nieron a un plan de carrera como un proceso tarios de desarrollo (del sistema social y del de confianza con los superiores.
continuo por el cual un individuo establece individuo). Desarrollar un sentido de lealtad hacia la
sus metas de desarrollo profesional e identi- organización. Comprometerse y sentir afec-
fica los medios para alcanzarlas. El desarrollo Alrededor de este paso, la organización debe to con el lugar de trabajo.
individual y las necesidades organizacionales estar preparada para mantener: Recurrir a expertos en el campo. Consultar a
no son cosas separadas ni diferentes. Las em- Procesos de evaluación. Consultores inter- colegas respetados por su dominio técnico.
presas deben ayudar a los empleados en la nos y/o externos que lleven a cabo entrevis- Recurrir a colaboradores clave. Consultar a
planeación de su carrera para que se puedan tas y simulaciones de negocios. personal del equipo respetado por los demás.
satisfacer las necesidades de ambos. Pruebas psicológicas. Para orientar los in- Conocer realístamente las oportunidades
tereses personales y las habilidades indivi- de progreso. Estar consciente de las condi-
El plan de carrera, es un método para el de- duales. ciones en la organización que permiten o no
sarrollo de aptitudes, fundamentándose en Evaluaciones de desempeño e integración. un desarrollo.
la ubicación de un colaborador en puestos de Con la aplicación consistente de instrumentos
trabajo cuidadosamente estudiados para pro- que evalúen aspectos técnicos o gerenciales En la ingeniería de software
porcionarle la oportunidad de desarrollar las según las características y nivel del puesto. Hoy en día, una de las áreas de ejercicio profe-
competencias necesarias para otros puestos de Plan de formación. Para la actualización de sional más comunes es la de las Tecnologías
mayor responsabilidad. Una gran parte del dise- conocimientos y el desarrollo de competen- de la Información. Dentro de sus vertientes
ño para el reclutamiento, selección, orientación cias. tecnológicas el desarrollo de aplicaciones se
y ubicación del talento/capital humano se hace Proyecciones de ascensos. Retroalimenta- ha consolidado como una disciplina híbrida
en función de las necesidades de la organiza- ción de los superiores de la organización con de lógica altamente estructurada denomina-
ción y es un sistema ideal para la planificación y relación a los avances y logros. da como ingeniería de software.
desarrollo de los Recursos Humanos. Puede ser Planificación de sustituto. En congruencia
implantado de acuerdo a los siguientes pasos. con el concepto de plan de carrera conside- Quien se desempeña en este campo pro-
rar igualmente el desarrollo de los miembros fesional debería de considerar al definir su
Primer paso del equipo de trabajo para, eventualmente, plan de carrera el desarrollar habilidades
Entender los factores esenciales que deben cubrir la posición a futuro. tanto técnicas de su especialidad como ad-
estar presentes en la organización: ministrativas en general tales como:
Igualdad de oportunidades. Los criterios y El Colaborador debe proveerse de:
normas de evaluación son claras y equitativas. Manuales de descripción de funciones. Para Habilidades “duras”: contratación, finan-
Apoyo del reporte superior inmediato. Interés tener claras las responsabilidades y alcan- zas, control de costos y calendarios, medi-
del supervisor en el crecimiento profesional de ces de su actuación. ción del desempeño, monitoreo de la cali-
sus subordinados y su retroalimentación ade- Mapa de carrera. Considerando las posibi- dad, análisis de riesgos.
cuada y oportuna. lidades de ascenso fundamentadas en el Habilidades “suaves”: negociación, gestión
Conocimiento de las oportunidades. Esque- organigrama presente y las proyecciones de del cambio, astucia política, empatía, comu-
ma institucional en términos de reconoci- crecimiento. nicación oral y escrita.
miento y espacios disponibles para ubicarse Sesiones sobre planificación de carrera. Se-
en la organización en función de los resulta- siones de asesoría y acompañamiento por
dos individuales. parte de personal calificado.
Conclusión
Interés del colaborador. El genuino compro- No es tan sencillo el implantar este
miso de la persona en aprender y desempe- Tercer paso concepto, debido al gran valor que
ñarse mejor. El desarrollo profesional individual, concretado tiene este tipo de programas, si no se
Satisfacción personal. Dependiendo de la en el convencimiento y compromiso de cada diseñan e instrumentan correctamen-
edad y circunstancias personales y de pre- persona y que comprende acciones para: te la pérdida de credibilidad es muy
paración, el sentirse feliz con la contribución Lograr mejores niveles de desempeño. Es- difícil de recuperar posteriormente.
a la comunidad. forzarse en una ejecución de excelencia.
José Luis Flores Pérez es Director Editorial de la firma de Consultoría y Educación en Procesos de Negocio y Dirección de Proyectos TenStep Latinoa-
mérica. José Luis tiene estudios de Doctorado en Ciencias de la Administración en la Universidad Nacional Autónoma de México (UNAM). Es graduado en
Administración Estratégica de Tecnologías de Información por la Universidad de California en Berkeley y Diplomado en Administración de la Calidad y en
Desarrollo de Habilidades de Dirección por el Instituto Tecnológico Autónomo de México (ITAM). Puede ser contactado en jflores@tenstep.com.mx
01
Hablar de Silverlight 1.0 es sinónimo de desarrollar contenido estático que se pue-
aplicaciones resultado de una mezcla de XAML de generar con esta tecnología.
(eXtensible Application Markup Language), HTMl
y JavaScript, herramientas fáciles de integrar dentro de una La última parte, está enfocada
aplicación Web ya existente. Además de ser compatibles con para que el lector aterrice los
las bibliotecas y técnicas del ya popular AJAX (Asinchronous conceptos al mundo real, mos-
JavaScript and XML). Por estas características, se le considera trando en un capítulo cómo crear
a Silverlight la promesa alternativa a otro de los más populares una aplicación interactiva o cómo
dentro de las aplicaciones web: Flash. Esto lo logra a través experimentar con los conceptos
de la creación de contenido web enriquecido y aplicaciones de animación, audio o video.
utilizando add-on’s que son igualmente amigables tanto para
desarrolladores como para diseñadores. Uno de los temas que trata de
manera fácil de entender es
Para todos aquellos interesados en conocer más sobre Silverlight XAML, el cual se muestra en su
este libro es un buen comienzo. El libro está compuesto por 10 forma nata y no a través de alguna herramienta que pueda pro-
capítulos distribuidos en tres partes. La parte de fundamentos ducirlo, característica que le da un valor agregado al libro y que
abarca dos temas: el inicio con Silverlight y otro capítulo dedica- lo distingue de otros textos similares. Indudablemente un texto
do a XAML. La segunda parte del libro abarca temas referentes al que no debe faltar en el librero.
02
Para los amantes de Java y sus herramientas, este entre el lenguaje de marcado y
libro es una opción para conocer más a fondo los el lenguaje de programación.
conceptos de Hibernate, proyecto ambicioso que Otro punto que al igual que
tiende a ser una solución completa al problema de los datos el uso de un DBMS también
persistentes en Java, mediando la interacción de la aplicación es importante y siempre está
con una base de datos relacional, brindando al desarrollador lantente,es la carga y almace-
libertad para concentrarse en los problemas relacionados con la namiento de datos, proceso
lógica del negocio. que se tiene presente en esta
edición y los autores le dedican
Podemos distinguir tres secciones: la parte introductoria que lle- la última sección de este libro.
vará al lector, no solamente a repasar conceptos básicos sobre el
paradigma de la programación orientada a objetos, sino que tam- Para finalizar, una introduc-
bién lo guía a dar sus primeros pasos con Hibernate describiendo ción al framework JBoss Seam
sus conceptos básicos. y complementar los conceptos
de Hibernate y dar el paso de
Interactuar con un administrador de bases de datos siempre es crear fácilmente aplicaciones Web. Aquí, podemos contemplar las
necesario, así que la segunda sección trata este tema, a través mejores ideas de los autores para realizar tareas cuando se tra-
de las opciones de mapeo en Hibernate y mencionando el mapeo baja con datos persistentes en Java explicados bajo el contexto
con archivos tipo XML y Java, mostrando al lector la convivencia de Hibernate.