SG19 (Febrero-Abril 2008)

68
Software Guru CONOCIMIENTO EN PRÁCTICA No.19 Febrero-Abril 2008 • www.sg.com.mx [ Tutorial ] SAP NetWeaver Noticias Eventos Fundamentos UML Infraestructura Carrera Biblioteca • Model Driven Architecture • Ruby on Rails • Administración de Proyectos México. $65 MXN Y LA PILA ES PArA ... Averigua quienes se pusieron las pilas en los Premios SG [ CASO DE ESTUDIO ] CMMI a través de MoProSoft

description

SG #19. Febrero -Abril 2008

Transcript of SG19 (Febrero-Abril 2008)

Page 1: SG19 (Febrero-Abril 2008)

Software Guru CONOCIMIENTO EN PRÁCTICA

www

.sg.

com

.mx

SO

FT

WA

RE

GU

RU

CO

NO

CIM

IEN

TO

EN

PR

ÁC

TIC

A

Febr

ero-

Abr

il 20

08

No.19 • Febrero-Abril 2008 • www.sg.com.mx

[ Tutorial ] SAP NetWeaverNoticias • Eventos • Fundamentos • UML • Infraestructura • Carrera • Biblioteca

No.

19

• Model Driven Architecture

• Ruby on Rails

• Administración de Proyectos

México. $65 MXN

Y LA PILA ES PArA ... Averigua quienes se pusieron las pilas en los Premios SG

[ CASO DE ESTUDIO ]

CMMI a través de MoProSoft

Page 2: SG19 (Febrero-Abril 2008)
Page 3: SG19 (Febrero-Abril 2008)
Page 4: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

// CONTENIDO

Dirección EditorialPedro Galván

Dirección de OperacionesMara Ruvalcaba

Coordinación EditorialSonia Sánchez

Arte y DiseñoDavid Gutiérrez, Oscar Sámano

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.

ColaboradoresKentaro Takahasi, Fernando Moreira,

Luciano Petricelli, Peter Coffee, Enrique Flores, Valerio Adrián Anacleto, Carlos Ortega,

Charlie Macías, Sergio Orozco, Ariel García, Susana Tamayo, José Luis Flores,

Claudia N. González, Eduardo Olivares.

Fotografía Gabriel González

Ventas Claudia Perea, Natalia Sánchez

Marketing y RPDafne Vidal

Circulación y Suscripciones Daniel López

AdministraciónAraceli Torres

[email protected]

+52 55 5239 5502

SG Software Guru es una publicación bimestral editada por Brainworx S.A. de C.V., Malinche no. 6, Col. El Parque, C.P. 53398, Naucalpan, México. Queda prohibida la reproducción total o parcial del contenido sin previo aviso por escrito de los editores. Todos los artículos son responsabilidad de sus propios autores y no necesariamente reflejan el punto de vista de la editorial. Reserva de Derechos al Uso Exclusivo: 04-2004-090212091400-102. Certificado de licitud de título: 12999. Certificado de licitud de contenido:10572. ISSN: 1870-0888. Registro Postal: PP15-5106. Se imprimió en enero de 2008 en El universal, Compañía Periodística Nacional. Distribuido por Comercializadora Alieri y Sepomex.

directorio

Hemos iniciado un nuevo año, algunos de ustedes ya habrán iniciado una nueva die-ta o habrán disminuído la dósis de cafeína du-rante el día. Algunos otros se preguntarían ¿y la revista Software Guru? ¿Dónde está?

Nos unimos al inicio de año y de los cambios, aquellos que nos brindarán la oportunidad no solamente de crecer, sino también de mantener con ustedes el conocimiento que nuestros colaboradores siempre están dis-puestos a plasmar en letras.

¿Y qué tiene de nuevo? Bueno, para darte una ayudadita, te diremos que a partir de este número nos extendemos a más pági-nas de contenido.

Como también te has dado cuenta, hemos cambiado los periódos de publicación, ra-zón por la cuál en enero no estuvimos en circulación impresa. A partir de este mes nos tendrás en tu casa cada trimestre. Pero no te preocupes, es un cambio para bien.

Este cambio en la publicación, brinda a todo el equipo de Software Guru la oportunidad de trabajar en nuevos proyectos que tam-bién serán benéficos para todos ustedes, sabemos que serán de su completo agrado y conforme se estén horneando les estare-mos informando sobre ellos.

Una vez contestadas las interrogantes, po-demos hablar del contenido de este primer número del 2008. Como recordarán, hace algunos meses se realizó una pequeña

encuesta para detectar los productos con mayor preferencia entre los usuarios, para recolectar estos datos, abrimos un wiki en el que ustedes libremente podían expresar sus propuestas, y nosotros obtener a tra-vés de su participación los resultados que se muestran en el artículo correspondien-te. No solamente eso, el equipo de SG hace un pequeño reconocimiento a tan solo, una pequeña muestra de las personalida-des destacadas en el mundo de las Tecno-logías de la Información. Hemos escogido la pila como símbolo de los Premios SG, ya que conllevan poder y energía.

Para los gustosos de la administración de proyectos, tenemos una nueva sec-ción que estamos seguros será de su completo agrado e interés.

Sabemos que no todos pudieron asistir a SG’07 Conferencia y Expo, pero que están interesados en saber ¿cómo estuvo el even-to? Bueno, no tienen que preguntarle más al amigo o compañero de trabajo que pudo asistir, aquí encontrarán una pequeña rese-ña de los pormenores del congreso.

Los invitamos a disfrutar junto con nosotros, este número, que da el banderazo de inicio a una nueva etapa para esta, nuestra revista.

¡Nos vemos en SG’08!

— Equipo Editorial

Editorial

02

Page 5: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Columnas

Tejiendo Nuestra Red 08por Hanna Oktaba

Mejora Continua 10por Luis Cuellar

Prueba de Software 30por Luis Vinicio León

Tendencias en Software 48por Luis Daniel Soto

Cátedra y Más 50por Raúl Trejo

Tierra Libre 60 por Emilio Osorio

20

Productos

LO QUE VIENE 12Sync Framework y SyncFeed, NetBeans 6.0, Amazon SimpleDB, Mercurial. TUTORIAL 14Instalando el ambiente de SAP NetWeaver CE 7.1 SR3.

NOVEDADES 18Force.com

Prácticas

CASO DE ESTUDIO 32 CMMI por Medio de MoProSoftA través de este caso, conoceremos la experiencia al momento de implantar MoProSoft en la obten-ción de nivel dos de CMMi.

ADMINISTRACIÓN DE PROYECTOS 34No Todo son Ceros y UnosConozcamos las habilidades que complementan la tarea de administrar un proyecto.

ARQUITECTURA 36MDAEn este artículo vemos las bases de la arquitec-tura dirigida por modelos, y su propuesta para el desarrollo de software.

PROGRAMACIÓN 40Aprendiendo Ruby y RailsPresentamos la segunda parte de este tutorial, con ella terminamos los conceptos básicos e introductorios del lenguaje.

UML 46 Uso de UML en Aplicaciones WebLa flexibilidad de UML permite extender y enriquecer el significado de sus elementos. Aprendamos a usar la extensión WAE .

EN PORTADA

Premios SG Un reconocimiento a las mejores herra-mientas y personas de la industria.

18contenido feb-abr 2008

03

// CONTENIDO

En Cada Número

NOTICIAS Y EVENTOS 04

FUNDAMENTOS 52

PARALELISMO 54

INFRAESTRUCTURA 56 CARRERA 62

BIBLIOTECA 64

Reseña de SG’07

Page 6: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

// NOTICIAS

04

PMI Capítulo México se reactivaDurante el 2007, el Capítulo México del PMI (Project Management Institute) mostró cambios significativos en su estructura y forma de trabajo. Desde el 2006 el capítulo cambió de mesa directiva y generó un plan de reactivación, que durante el 2007 obtuvo excelentes acciones como: lanzamiento de un nuevo sitio web, lan-zamiento de un boletín mensual, organización de ciclos de conferencias, organización de eventos enfocados en la dirección de proyectos, y la generación de un Progra-ma de Reconocimientos, entre otras.

Entre las actividades a observar en el 2008, están la par-ticipación en un proyecto para estandarizar la disciplina de PMI y la organización del Primer Congreso Nacional de Dirección de Proyectos. Para mayor información visita: www.pmimexico.org

Séptimo aniversario GLIBEl pasado 15 de diciembre, en la ciudad de Irapuato, Guanajuato se llevó a cabo la celebración del séptimo aniversario del grupo linuxero del bajío. El evento se realizó en las instalaciones del Hotel Holiday Inn, el cual tuvo como objetivo difundir el uso y desarrollo de GNU/Linux y el Software Libre mediante un ciclo de conferencias que año con año el grupo de usuarios organiza, no solamente como una forma de celebrar su aniversario, sino también como medio de difusión sobre el movimiento hacia las personas vecinas a la región.

Por la noche, se realizó un Barcamp como actividad comple-mentaria del evento, en el que los asistentes hablaron de dife-rentes temas en un ambiente de camaradería, finalizando así la celebración de aniversario del grupo.

Cutter Summit 2007El pasado mes de octubre, se llevó a cabo la Segunda Edición del CUTTER SUMMIT América Latina, encuentro de Expertos en Tecnologías de Información. A partir de un formato orien-tado hacia el debate y la generación de conocimiento al más alto nivel, se llevó a cabo la discusión de los temas en los que hoy las organizaciones de nuestro país están centrando sus esfuerzos; en lo que a Tecnologías de Información se refiere, desde una óptica objetiva y sobre todo, libre de la influencia de cualquier proveedor de la Industria de TI.

Page 7: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

// EVENTOS

05

Empresas recientemente evaluadas en CMMI:Empresa Evaluación Fecha Lead Appraiser Kernel CMMI 2 septiembre 2007 Viviana Rubinstein, LivewareInnevo CMMI 3 enero 2008 Jorge Boria, Liveware

XX Congreso Nacional y VI Congreso Internacional de Informática y Computación ANIEI 2007Del 24 al 26 de octubre de 2007, se llevó a cabo la vigésima edición del Congreso Nacional y sexta edición del Congreso Internacional de Informática y Computación, organizado por la Asociación Nacional de Instituciones de Educación en Infor-mática, con sede en la Universidad Autónoma de Chihuahua. Dentro del congreso se llevó a cabo la premiación del Certa-men Nacional de Tesis.

Foro Nacional de Integradoras de TI 2007El pasado mes de noviembre se realizó el primer Foro Nacional de Integradoras de Tecnologías de Información 2007, en las ins-talaciones del Centro del Software en la ciudad de Guadalajara. El objetivo fue reunir a representantes de las principales integra-doras y clusters de TI de México. Los representantes coincidieron en que vincular esfuerzos a nivel nacional es el único camino para lograr que México tenga una verdadera posición competitiva en el mercado global de las TI.

4 al 6 de Marzo 2008Compushow 2008 Cintermex, sala B, Monterrey, Nuevo LeónInfo: www.compushow.com.mx

5 al 6 de Marzo 20084° Conferencia Anual de IT Service Management WTC, Ciudad de México Info: www.pinkelephant.com

5 al 6 de Marzo 2008Cutter Enterprise Architecture Summit JW Marriot, Ciudad de MéxicoInfo: www.cutter.com.mx/easummit

6 al 8 de Marzo 2008SISCTI 33 ITESM Campus Monterrey, Monterrey, Nuevo LeónInfo: www.siscti.com

13 de Marzo 2008IDC Business Process Optimization & Management Conference 2008 Centro Banamex, Ciudad de MéxicoInfo: www.idc-eventos.com 13 de Marzo 2008Reunión mensual del PMI Capítulo MéxicoHotel Crowne Plaza, Ciudad de México Info: www.pmimexico.org

16 y 17 de Abril 2008Gartner Enterprise Integration Summit Centro Banamex, Ciudad de MéxicoInfo: www.gartner.com/mx/appint

19 al 22 de Febrero 2008CONSOL 2008Universidad Autónoma de la Ciudad de México, Campus Tezonco, Ciudad de MéxicoInfo: www.consol.org.mx 21 de Febrero 2008IDC Enterprise Mobility Conference 2008Centro Banamex, Ciudad de MéxicoInfo: www.idc-eventos.com

21 de Febrero 2008Reunión mensual del PMI Capítulo MéxicoHotel Crowne Plaza, Ciudad de MéxicoInfo: www.pmimexico.org

26 de Febrero 2008Tendencias 2008Centro Banamex, Ciudad de MéxicoInfo: www.expocomm.com.mx/tendencias.htm

27 al 29 de Febrero 2008Linux World 2008 Centro Banamex, Ciudad de MéxicoInfo: www.linuxworldexpo.com.mx

27 al 29 de Febrero 2008Expo Comm 2008 Centro Banamex, Ciudad de MéxicoInfo: www.expocomm.com.mx

3 al 7 de Marzo 2008SD West 2008Santa Clara Convention Center, Santa Clara, CAInfo: www.sdexpo.com

Page 8: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx0606

// INDUSTRIA

Uno de los paneles de discusión durante la Convención de CANIETI

La Cámara Nacional de la Industria Electrónica, de Telecomunica-ciones y Tecnologías de la Información (CANIETI), cuyo principal propósito es el lograr el desarrollo competitivo de la Industria con sentido gremial y responsabilidad social, es uno de los organismos que más impulsa nuestra industria a lo largo de todo el país e in-cluso en el exterior. Por ello es importante que nos mantengamos al tanto de sus acciones, iniciativas en curso y perspectiva para el futuro próximo.

XXVIII Convención AnualDel 8 al 11 de noviembre pasado se realizó la convención anual de CANIETI en Mérida, Yucatán. El tema principal de la convención fue “Tecnología e Innovación como Habilitadores de la Competitividad”, lo cual quedó reflejado desde el mensaje inaugural de Eduardo Ruiz Esparza, Presidente nacional de CANIETI quien mencionó que: “El éxito de México radicará en la integridad y la velocidad con la que adoptemos estas nuevas formas de colaboración y de aprendizaje organizacional continuo, que hoy se reconocen como las bases de una sociedad de la innovación y el conocimiento”.

Como ya es costumbre, la XXVIII Convención Anual CANIETI contó con un nutrido programa de conferencias que incluyó las siguientes sesiones:• Perspectivas Políticas y Económicas 2007 – 2012, impartida por el Mtro. Federico Reyes Heroles. • Tendencias y Futuro de la Tecnología, impartida por Jerry Bautista, jefe de laboratorios de investigación en Intel. • Factores Habilitadores de la Competitividad, impartida por Sergio García de Alba, ex Secretario de Economía.• Vinculación con Universidades para el Liderazgo Tecnológico, im-partida por Lueny Morell, Directora de Relaciones Universitarias de HP en América Latina. • Innovación en las PYMES, impartida por Darrell Mann, un renom-

brado consultor que asesora a los gobiernos de países como Mala-sia, Hong Kong y Corea del Sur. • Educación y Capacitación del Capital Humano, a cargo del Dr. Jose Enri-que Villa Rivera, Director General del Instituto Politécnico Nacional.

La convención, no solamente estuvo formada por conferencias, el programa también estuvo formado por “paneles” que permitieron el intercambio de opiniones de diferentes personalidades en una mis-ma presentación, permitiendo que los presentes tuvieran opiniones de diferentes puntos de vista. Además, como parte de las activida-des del evento, se realizó el III Encuentro Nacional de Negocios per-mitiendo la relación directa entre los diferentes representantes de las PyME’s y los tomadores de decisiones de los grandes empresas que estuvieron presentes en ella.

Durante la convención se inauguraron las oficinas de CANIETI en esta ciudad de Mérida, lo cual es resultado de una alianza con el Consejo de la Industria de TI en Yucatán, conocido por sus siglas como CITI. Platicando con los directivos de este organismo, nos enteramos de que en Yucatán se percibe una oportunidad importante para conver-tirse en un centro proveedor de servicios de TI para organizaciones en el estado de Florida en Estados Unidos, lo cual se facilita debido a la cercanía geográfica.

Actividades y perspectiva para 2008Recientemente tuvimos oportunidad de platicar con Rogelio Garza, Director General de CANIETI, acerca de las principales actividades e iniciativas en las que estarán involucrados durante el 2008. Rogelio nos comentó que los tres puntos donde se concentrarán son:• Impulso de innovación en la PyME• Desarrollo de capital humano• Fomento de competitividad y competencia

Innovación en las PyMEs Todos sabemos que para mejorar los índices de creación y aprove-chamiento de tecnología en nuestro país es crucial involucrar a la PyME. CANIETI está haciendo su parte para lograr esto, y actualmen-te está trabajando en programas para apoyar la implantación de me-todologías traídas de países como Corea y Malasia, cuyo objetivo es generar innovación en las PyMES.

Desarrollo de capital humanoUna de las áreas que está demandando mayor atención de parte de CANIETI, y que es uno de los principales retos para nuestra industria en los próximos años es el de apoyar el desarrollo de capital humano suficiente en calidad y cantidad para satisfacer la demanda de nuestra industria. Es un hecho que hay una gran brecha entre las habilidades y conocimientos de los recién graduados, y lo que necesita la indus-tria. Sin embargo, más que apuntar el dedo hacia las universidades y decir que no están haciendo su trabajo, debemos reconocer que en el proceso de formación de este capital humano están involucrados no

CANIETITecnología e Innovación como Habilitadores de la Competitividad

Page 9: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

solamente las instituciones educativas, sino también el sector empre-sarial. Es así que una buena vinculación industria-academia es vital para poder desarrollar el capital humano que necesitamos.

CompetenciaCualquier industria sana requiere de un margo legal que fomente la competencia. Es por ello que CANIETI está muy involucrada con organismos como la COFEMER (Comisión Federal de Mejora Regu-latoria) para impulsar acciones que promuevan una competencia en igualdad de circunstancias.

Mexico TIEl programa México TI es otra de las iniciativas fundamentales que ejecuta CANIETI. El objetivo de este programa es promover a nivel mundial a nuestro país como un proveedor confiable de productos y servicios de tecnología. Es bueno saber que hay varios estados de la república que se están sumando a este esfuerzo.

Asesoría para los estadosUna de las actividades que CANIETI cada vez realiza más es asesorar a los estados para identificar sus capacidades y ayudarlos a decidir en qué áreas de TI especializar su oferta. Las opciones son muchas y muy variadas, por ejemplo para algún estado puede tener mucho sentido convertirse en un polo para call centers, mientras que para otro estado tendrá más sentido especializarse en software para agricultura.

ConclusiónCANIETI es un organismo vital en el desarrollo de nuestra indus-tria. Invitamos a todos los empresarios a que se acerquen a la sede de CANIETI que corresponda a su región para conocer más sobre las diferentes iniciativas a las que se pueden sumar y que sin duda les traerán beneficios significativos ya sea individual como colectivamente.

Page 10: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx08

/*TEJIENDO NUESTRA RED*/

Mientras muchos de ustedes disfrutaban de múltiples actividades durante el segundo evento de Software Guru, Ana Vázquez y yo

atendimos la reunión interina del comité ISO/IEC JTC1 SC7 del 29 de oc-tubre al 2 de noviembre de 2007 en Montreal. En esta ocasión el grupo de trabajo WG24, cuyo objetivo es generar normas de Software Life Cycle Profiles and Guidelines for Use in Very Small Enterprises (VSE), con un total de 20 delegados, tuvo más asistentes que nunca. Para fortalecer el bloque latino se incorporaron Jesús Salillas del European Software Institute, Bilbao, España y Liliana Gómez de Parquesoft de Cali, Colom-bia. La similitud cultural nos dio mucha confianza y la oportunidad de disfrutar de unas tertulias muy agradables en nuestro idioma favorito. De Irlanda asistió Marty Sanders, acompañada del joven Rory O’Connor, quien a la hora de poner manos a la obra nos ayudó en la actualización de diagramas de actividades para el Perfil Básico (antes Perfil 1). Tam-bién, se reincorporó un delegado de Estados Unidos, Perry De Weese, un consultor independiente y partner del SEI, que se volvió nuestro alia-do técnico más preciado durante la reunión de Montreal.

La delegación más numerosa fue la de Tailandia. Tanin Uthayanaka el coordinador del grupo WG24, logró convencer a sus autoridades nacionales sobre la importancia de la participación de Tailandia en los trabajos de ISO. Gracias a eso pudieron mandar a seis delega-dos, todos con el financiamiento de sus autoridades, quienes tam-bién invitaron a los delegados del WG24 a una elegante cena. A la hora de despedirnos, cuando les agradecimos su amabilidad, dije-ron que los agradecidos eran ellos porque la aportación mexicana les ofrece la posibilidad de tener un buen resultado en los trabajos del grupo que coordinan. Así que con Tailandia estamos a mano.

Para esta reunión Ana y yo preparamos un mapeo detallado de nuestros procesos del Perfil Básico, es decir los de Administración de Proyectos Específicos y el de Desarrollo y Mantenimiento de Software, a la nueva versión de ISO/IEC 12207 Software Life Cycle Processes, que está a punto de publicarse en su versión revisada. Al WG24 le interesa mucho saber cuáles y cuántos procesos de este estándar están cubiertos por el Perfil Básico para poder posicionar-lo como una guía válida para su implementación.

Tal como lo esperamos, cubrimos bastantes elementos de la ISO/IEC 12207, esto dio la confianza al grupo de que vamos por un buen camino. Nosotras hicimos un mapeo conservador, por ejemplo: consideramos que nuestro modelo no cubre al proceso de Asegura-

miento de Calidad por no tener un rol externo al proyecto que haga este tipo de labores. Sin embargo, Perry De Weese, que conoce muy bien la versión actual de la ISO/IEC 12207, nos demostró que con las actividades de verificación, validación y pruebas cubrimos completamente este requisito. No es necesario tener un revisor in-dependiente para cuidar la calidad. Mi intuición femenina siempre me ha dicho que la calidad depende de uno mismo, de los que de-sarrollan, y no de la existencia de “policías” externos al proyecto que revisen nuestro trabajo, pero necesitaba que me lo confirmara un experto ajeno al círculo de los creadores de la norma nacional. Afortunadamente Perry De Weese es la persona que así lo entiende y nos ayudó a encontrar argumentos para convencer a los demás miembros del WG24.

Durante la semana se revisaron los comentarios recibidos por parte de los delegados del WG24 a la definición del Perfil Básico, uno de ellos fue el cambio de nombre. Las aportaciones enriquecieron los detalles de la presentación del modelo pero no cambiaron su esen-cia. Para el mes de diciembre el grupo emitirá las primeras versio-nes completas de las siguientes partes de la norma 29110 Software Engineering — Lifecycle Profiles for Very Small Enterprises (VSE):- Part 1: Overview - Part 2: Framework and Taxonomy - Part 5: Management and Engineering Guides

Estas partes quedarán sometidas a la revisión de los delegados del ISO/IEC JTC1 SC7 quienes entregarán sus comentarios a princi-pios de 2008. Si pasamos esta primera “presentación en sociedad” los pasos siguientes serán más sencillos. Aunque conociendo los tiempos ISO el proceso durará unos dos años más. Sin embargo en México no tenemos que esperar tanto, ya que desde hace tiempo contamos con la norma nacional NMX-I-059-NYCE y todas las em-presas pueden adoptarla para después someterse a una evalua-ción antes de que ésta se convierta en una norma internacional.

La parte turística en esta ocasión no fue muy abundante. Estu-vimos en el centro moderno de la ciudad de Montreal, con tem-peratura de pocos grados sobre cero, pero sin llover ni nevar. La Escuela Superior de Tecnología de la Universidad de Québec, que albergaba el evento, fue nuevamente el objeto de envidia ya que tiene varias carreras tecnológicas, incluyendo la de Ingeniería de Software, en un edificio grande, moderno, en el cual todo funcio-

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.

// COLUMNA// COLUMNA

Page 11: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

naba a la perfección (salvo el elevador principal). Tuve oportunidad de reencontrarme con un ex alumno de la maestría de la UNAM que desde hace tres años trabaja con éxito en una empresa de desa-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 Diseño, y confirmé por enésima vez que en México los que quieren prepararse bien lo pueden hacer.

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-

da de todas la regiones del mundo. Hasta me llevaron a cenar comida polaca, pero que no se les ocurra pedir la comida canadiense. Con la música pasa algo parecido, lo que más disfruté fue el jazz en vivo.

La siguiente reunión será en Berlín, agendada para el mes de mayo de 2008. Será muy interesante porque conoceremos los comenta-rios hechos a nuestros documentos provenientes de decenas de países que no estuvieron involucrados en su elaboración.

—Hanna Oktaba

“En la reunión, los asistentes de Tailandia quedaron complacidos con la ayuda que los mexicanos les han ofrecido a través de sus

aportaciones en conocimientos”.

Page 12: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx10

Una vez más el año llego a su fin. Este es un buen momento para definir cómo nos fue el año pasado: ¿logramos alcanzar

nuestros propósitos?, ¿logramos certificar a nuestra organización?, ¿convencimos a nuestros superiores de la importancia de manejar procesos estables?, ¿convencimos a nuestros compañeros de la importancia de ponerse de acuerdo en una forma única de estimar o de planear un proyecto?

Si la respuesta es sí: felicidades. Puedo decirles que son parte de una selecta minoría. Definitivamente vale la pena una gran celebra-ción y seguir adelante así, con los planes del año siguiente. Pero si la respuesta es no, estoy seguro que para estos momentos ya hicieron su análisis de causas raíz con la idea de establecer y do-cumentar las diferentes problemáticas que les impidieron lograr sus objetivos. Con la idea de ayudar en la medida de lo posible a la realización de dichos planes, quisiera enfocar este artículo y el siguiente en algunos problemas comunes y algunos consejos que pueden utilizar para sobrepasarlos.

Pasar el examen no implica conocimientoMuchas veces la iniciativa de calidad surge como una búsqueda por un certificado, esto no necesariamente es malo. El certificado te da un foco más preciso y visible en cuanto a dónde vas y qué es lo que quieres lograr; desafortunadamente en ocasiones vemos 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 buen plan de trabajo para un equipo de calidad no se enfoca en el orden de los requisitos de un modelo, sino en resolver primero los problemas de mayor impacto dentro de la organización y los de menor importancia después. El plan de trabajo no puede enfocarse a cerrar primero los hallazgos referentes a control de requerimien-tos y después a los de planeación, etcétera. Sino que tal vez se enfoque a resolver el problema de exceso de defectos, que puede estar relacionado en parte con planeación, en parte con ingeniería de software, entre otros. El plan debe de reflejar la problemática y no el modelo.

Desde fuera se ve tan fácil cambiar, especialmente a los demásEstamos tan acostumbrados a programar instrucciones en las compu-tadoras que nos olvidamos que generar cambio en las personas no es algo trivial. Piensen cuándo fue la última vez que cambiaron de esti-lista, cuándo cambiaron de restaurante favorito o la ruta para llegar al trabajo. Normalmente cambiar genera incertidumbre, miedo, estrés.

Ahora imaginen que alguien viene a decirles que la forma en que le han dado seguimiento a los proyectos toda la vida está mal. ¿Cómo se atreven? El estrés hacia el cambio es el enemigo número uno de las áreas de procesos. Nunca debemos subestimarlo, siempre debemos estar cerca de la gente, entender sus problemas, buscar vender las ideas que queremos implementar, impulsar a que participen en lo que se va a definir.

Dios creó el universo en siete días porque no existía una base instalada¿Cómo se implementan procesos cuando todos corren en diferentes direcciones moviendo los brazos y gritando: “fuego, fuego”? Normal-mente en una compañía el modo de pánico es mucho más fuerte que el modo previsor, y también es común que las personas que trabajan en las áreas de calidad sean requeridas continuamente para “bombe-razos”. ¿Cómo nos podemos enfocar en el proceso si constantemente nos estamos saliendo? Los bomberos en la vida real trabajan tanto en apagar incendios como en prevenirlos. Para un bombero voluntario el éxito no es apagar un incendio, sino prevenir incendios dentro de su zona. A veces en las organizaciones se vive con la idea de que un incendio no es una calamidad, sino los gajes del oficio. Necesitamos medir para evaluar si realmente los servicios de bombero son cada vez menores, y nunca podemos dejar una zona de desastre sin antes tener un plan de cómo lograr que eso nunca se repita.

Dónde está la metodologíaLa semana pasada estaba viendo un programa de televisión llamado “Top Chef”, en donde un grupo de chefs compiten semanalmente pre-parando diferentes platillos para no ser anulados. En la eliminatoria pasada uno del los jueces regañaba a un participante y le decía: “si te preocupa más cómo se ve tu platillo en lugar de cual es su sabor vas por el camino equivocado”. La proliferación de metodologías comer-ciales ha generado una idea: la mejor metodología es la que mejor se ve. La realidad es que las metodologías que se venden en el mercado son metodologías estables, metodologías que tienen poca evolución. 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 acuerdo a cómo mejora la organización; por lo que al definir los pro-cesos, plantillas y demás, es de vital importancia la flexibilidad y con-sistencia antes que la belleza. Con esto se nos acaba el espacio por el momento. Continuaremos en la próxima ocasión y por ahora sólo me queda decirles feliz 2008 y que se cumplan todos sus deseos.

—Luis R. Cuellar

/*MEJORA CONTINUA*/

Año Nuevo, Vida Nueva¿Renovarse o Mantenerse?

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.

// COLUMNA// COLUMNA

Page 13: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 14: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx12

/* LO QUE VIENE*/// PRODUCTOS

Amazon SimpleDB Servicio de base de datos por Internet

Amazon SimpleDB es un web service para realizar queries en tiempo real sobre datos estructurados. Este servicio funciona en conjunto con Amazon Simple Storage Service (Amazon S3) y Amazon Elastic Com-pute Cloud (Amazon EC2) para proveer la habilidad de almacenar, procesar y obtener conjuntos de datos de la “nube”.

Tradicionalmente, este tipo de funcionalidad ha sido lograda con una base de datos en cluster, lo cual requiere una fuerte inversión inicial, además de la complejidad para mantenerla y administrarla. En contraste, SimpleDB es sencilla de usar y provee la funcionalidad esperada de una base de datos (bús-queda y manipulación de datos) sin la complejidad operacional. SimpleDB no requiere esquemas de base de datos, automáticamente indexa los datos y provee un API sencillo para almacenamiento y búsqueda de datos. Los desarrolladores ganan acceso a esta fun-cionalidad, que escala automáticamente, y solamente pagan por lo que usan.

Mayor información en: aws.amazon.com

Mercurial Control de versiones distribuido

En los últimos meses los sistemas distribuidos para control de versiones (DVCS) han aumentado signifi-camente en popularidad. A diferencia de los sistemas convencionales de control de versiones que mantienen un repositorio central, en un DVCS cada usuario gene-ra una copia completa del repositorio y hace commits locales sobre su propia copia. Estos cambios poste-riormente son compartidos a través de sincronización. Este esquema permite trabajar fuera de línea, y da mu-cho mayor flexibilidad para mantener la estructura de un repositorio.

Mercurial es uno de los DVCS más populares y está recibiendo muy buenos comentarios por parte de la comunidad conforme se acerca a su versión 1.0 (actual-mente en 0.9.5). De hecho, proyectos como NetBeans y OpenJDK recientemente migraron su código de desa-rrollo a Mercurial.

Mayor información en: selenic.com/mercurial/wiki

Sync Framework y SyncFeedPilares para S+S

Microsoft recientemente dio a conocer dos tecnologías que serán una parte importante de su estrategia de software + servicios (S+S).

La primera es Sync Framework, una plataforma de sincro-nización para habilitar el uso de aplicaciones, servicios y dispositivos que no estén conectados a la red de forma con-tinua, es decir que se puedan usar offline. La visión de esta plataforma es habilitar la construcción de “ecosistemas de sincronización” que integren cualquier tipo de aplicaciones y datos a través de cualquier tipo de red y protocolo. El Sync Framework actualmente se encuentra disponible como CTP (Community Technology Preview) en MSDN.

La segunda tecnología en cuestión es FeedSync, antes co-nocida como Simple Sharing Extensions, y que básicamente viene a ser una extensión para Atom y RSS. Llama la aten-ción que la especificación de FeedSync está disponible bajo una de las licencias de Creative Commons.

Mayor información en: msdn2.microsoft.com/en-us/sync

NetBeans 6.0 Viene por todo

NetBeans 6.0 por fin ha sido liberado, y viene por todo. En una sola herramienta integrada, NetBeans provee soporte para desarrollo de aplicaciones tanto desktop como web, empresariales y móviles. Y no sólo está limitado al lengua-je Java sino que también provee funcionalidad para desa-rrollo en Ruby/Rails y C/C++. Ante esto, es comprensible el hecho de que NetBeans se promueva a sí mismo como “el único IDE que necesitas”.

El equipo de NetBeans ya está trabajando en la versión 6.1 que saldrá en los próximos meses y que incluirá las siguientes mejoras: • Soporte para los frameworks Hibernate y Spring• Soporte para Axis• Instalación de aplicaciones sobre WebSphere• Capacidad para deshacer (undo) refactorizaciones

Mayor información en: netbeans.org

Page 15: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 16: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

// CONTENIDO PATROCINADO

Aplicaciones Compuestas o “composiciones”, son aplicaciones que usan de funcionalidades existentes y expuestas a través de sus interfaces.

El SAP NetWeaver Composition Environment 7.1 es una infraes-tructura que provee tanto herramientas, como un ambiente de tiempo de ejecución para el desarrollo, ejecución y administra-ción de aplicaciones compuestas de acuerdo con la visión del eSOA (Arquitectura Orientada a Servicios de Negocios), de SAP.

El DVD encartado en esta edición, trae con anticipación para el mercado hispano, la última versión del NetWeaver Composition Environment 7.1 SR3. compuesto de:• Servidor de Aplicaciones SAP NetWeaver, conforme la especifi-cación Java EE 5. • SAP Web Dynpro - es la tecnología estándar de SAP para desa-rrollo de interfaces de usuarios.

Como es una tecnología agnóstica de implementación, puede ser programado en Java y también ABAP, tiene una arquitectura ba-sada en MVC (Model-View-Controller) lo que ayuda en extremo en la implementación de interfaces con clara separación de los servicios de back end. • Ambiente y herramientas de Composición de SAP.• Banco de datos MaxDB 7.6 – MaxDB es el sistema administra-dor del banco de datos desarrollado por SAP. Donde una de las mayores bases instaladas es el SDN (sdn.sap.com), con más de 600 mil usuarios.• SAP NetWeaver Developer Studio – ambiente de desarrollo, basado en el Eclipse Europa (versión 3.3), con decenas de plugins de SAP.

Requisitos de Sistema• Windows XP Professional (Service Pack 2) o Windows 2003 Ser-ver (Service Pack 1)• Sistema de archivos NTFS• Internet Explorer 6.0 o superior o Firefox 1.0 o superior• Al menos 1.5 GB RAM, es recomendado 2 GB de memoria• PC 1.5 GHz o superior• 7 GB de disco libre• Monitor con resolución de 1024 x 768 pixels y 256 colores

• En caso de no estar conectado a una red, utilizar el MS Loopback Adapter.

Memorice la contraseña que usted definirá en el paso 7, pues la misma, es la contraseña maestra de autenticación para varias situaciones. Después de la instalación, los varios usuarios y contraseñas son:• SAP NetWeaver Application usuario: Administrador contraseña: <contraseña maestra>• Login de operador del administrador del MaxDB usuario: control contraseña: <contraseña maestra>• Usuario del banco de datos MaxDB usuario: superdba contraseña: <contraseña maestra>• Usuario para la consola de administración SAP usuario: usuario del Windows contraseña: contraseña del Windows• Administrador del ICM usuario: Administrador contraseña: abc123

Empezando la instalaciónEl primer paso es instalar el Java Development Kit (JDK 1.5.0_11 o superior). El download puede ser hecho directamente en la In-ternet, en el sitio web de Sun Microsystems. En este mismo sitio, en la sección “Other Downloads”, hay que hacer el download del JCE (Java Cryptography Extension Unlimited Strength Jurisdiction Policy Files 5.0) que será pedido durante la instalación del Com-position Environment.

Para empezar la instalación ejecute el archivo start.htm, donde se mostrarán diversas informaciones sobre el contenido del DVD, y los procedimientos resumidos de esta tutoría. Haga clic en next(siguiente) hasta llegar al inicio de la instalación. Alternativamente, usted puede ejecutar directamente el archivo “sapinst.exe” localizado en el direc-torio ...\CompEnv\CE71_03_IM_WIN_I386_ADA.

Así como la mayor parte de las soluciones y productos SAP, la ins-talación empieza con un Wizard, en el que usted deberá entrar con todos los parámetros necesarios para la instalación. Solamente después de la colecta de todas las informaciones necesarias y la revisión de los parámetros es que la instalación efectivamente em-pezará. A partir de esto todo se realiza automáticamente.

Seleccione “SAP Netweaver CE Development System” y haga clic en “Next”.

Instalando el Ambiente del SAP NetWeaver CE 7.1 SR3SAP NetWeaver Composition Environment 7.1 SR3 Evaluation Version Por Kentaro Takahashi, Fernando Moreira, Luciano Petricelli

En este número incluímos un DVD, con la versión de evaluación de SAP NetWeaver Composition Environment 7.1 SR3. Aquí está la guía de instalación paso a paso de esta herramienta, además de referencias en el sitio web oficial para encontrar más detalles sobre el producto o acceder al área de los foros.

14

// TUTORIAL

Page 17: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Elija la opción de instalación “Typical”(típico). Esta opción informa que la mayor parte de los parámetros ya están previamente defini-dos, optimizando el proceso de instalación.

Acepte el acuerdo de licencia y haga clic en “Next”. Elegir un identificador para su ambiente. Para esta instalación va-mos utilizar el default “CE1”.

Indicar la ruta de instalación para el archivo con el JCE Policy baja-do anteriormente. Indicar la contraseña principal que servirá como clave estándar para los usuarios creados.

En esta pantalla se presenta, un resumen de todos los parámetros seleccionados hasta el momento. Usted puede revisar las configura-ciones elegidas y empezar la instalación. Haga clic en “Next”.

La instalación podrá consumir algo cerca de 50 a 70 minutos de-pendiendo de los recursos de hardware disponibles.

Al término de la instalación haga clic en “OK” para empezar automática-mente el servidor de aplicaciones. Por ser la primera vez, varias rutinas de inicio serán ejecutadas y, por lo tanto, el proceso puede demorarse.

Para acompañar la carga del servidor de aplicaciones usamos el SAPMMC (SAP Management Console) que puede ser empezado a tra-vés de un icono creado por la instalación en su desktop. Esta carga del servidor, debe consumir de 50 a 90 minutos.

Expandiendo el nodo “CE1” podemos verificar varias informaciones. Hagar clic en “Process List”(lista de procesos) conforme la figura abajo para acompañar el status de los procesos. Para que el ambien-te esté totalmente en el aire es necesario que todos los nodos estén con la indicación en color verde.

El SAP MMC también es utilizado para empezar y parar el Composite Environment manualmente. Haga clic con el botón derecho del ratón arriba de la identificación del sistema (“CE1”) y elija “Start”(inicio) o “Stop”(detener). En este momento son ejecutadas varias rutinas para que el ambiente y el banco sean iniciados/detenidos en la se-cuencia correcta.

ATENCIÓN: siempre utilice el MMC para iniciar y detener el servidor. Si la instalación fuera realizada en un notebook o desktop que deba

15

Page 18: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

ser desconectado constantemente, recuerde siempre de parar el am-biente de la manera correcta, antes de desconectar la máquina. Esto evita posibles inconsistencias causadas por la desconexión inmedia-ta del sistema y que rutinas de detención no sean ejecutadas.

Verificando los servicios y herramientas Para conocer los servicios y herramientas del servidor de aplicaciones, abra el navegador y entre con la siguiente URL: <servidor>:<puerto http> donde el puerto debe seguir la siguiente regla: 5 + “Central Instance Number” + 00. En este caso 50000.

Ejemplo: localhost: 50000

SAP Library - link para el sitio de documentos en línea de SAP (help.sap.com).

System InformationDetalle de las configuraciones del sistema y su estado.

User ManagementConsola de administración de usuarios, grupos, papeles y sus datos.

Web Services NavigatorHerramienta que permite tener acceso a descripción WSDL de un web service y probar un Web Service.

SAP NetWeaver AdministratorHerramienta de administración, configuración y evaluación, que agrupa las principales tareas administrativas.

Services RegistryRegistro con base en el UDDI que contiene definiciones de servi-cios empresariales y referencias a sus datos de metas.

UDDI ClientProvee un cliente UDDI para funciones de consulta y publicación en registros compatibles con el UDDI.

16

// CONTENIDO PATROCINADO // TUTORIAL

Page 19: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Web Dynpro Es una tecnología para la creación de interfaces de usuario, dis-ponibles dentro del NetWeaver Developer Studio.

Ahora que el Composite Environment está instalado y funcionan-do, vamos instalar el SAP Netweaver Developer Studio. El NetWeaver Developer Studio es el ambiente de desarrollo de SAP para la creación de aplicaciones de negocio con base en JAVA. Esta herramienta es totalmente basada en Eclipse.

Para empezar el wizard de instalación es sólo ejecutar el archivo “IDESetup.exe” localizado en el directorio: io ...\DevStudio\CE71_03_JAVA_IDE. Después del empiezo del wizard, haga clic en “Next”.

Elija el directorio de instalación y haga clic en “Next”. Informar el camino de la instalación del JDK 5 y haga clic en “Next”.Haga clic en “Next” . Informar el sitio de update a partir del cual serán instaladas/actua-lizadas las funcionalidades del Developer Studio. Es recomendable dejar el valor propuesto que apunta para un archivo en el propio DVD conteniendo las informaciones necesarias. Haga clic en “Next”.

Seleccione todas las opciones de la lista y haga clic en “Next”.

Acepte el término de licencia y haga clic en “Next”.

Ya que está siendo descubierto el mundo JAVA en SAP, seleccione todas las funcionalidades opcionales para que pueda explorarlos después. Haga clic en “Next”. Observe la necesidad de los requisitos de hardware. Haga clic en “Finish”(finalizar). Para acceder el Netweaver Developer Studio utilice el icono crea-do automáticamente en su desktop.

En la pantalla de bienvenidas existen varias informaciones incluyen-do algunos tutoriales y ejemplos para que empiece sus desarrollos.

Para practicar el desarrollo en este nuevo ambiente, además de toda 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-cusión, blogs, downloads e informaciones para las varias comunida-des de SAP (desarrolladores, consultores y clientes) e información relacionada al Netweaver (plataforma tecnológica SAP).

Si hubiera algún problema en la instalación, visite el sitio en la Internet 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. [email protected]

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. [email protected]

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. [email protected]

17

Page 20: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

1618

/* NOVEDADES*/// PRODUCTOS

Force.comLa Plataforma como Servicio Por Peter Coffee

La labor de los desarrolladores de aplicaciones de software empresa-rial ha cambiado enormemente en los últimos años. Antes, su princi-pal tarea consistía en automatizar los procesos comerciales internos. Solían utilizar los sistemas internos de una compañía para atender al personal interno. Hoy en día, las tareas a las que se enfrentan los equipos de desarrollo consisten en automatizar las interacciones de los procesos comerciales de la compañía con los socios de negocio y clientes del mundo exterior. A menudo, el lugar donde se produce esta interacción estratégica es la red pública de Internet, y las reglas que a menudo la rigen son los protocolos del web.

El modelo del software como servicio es una de las principales tendencias en el ámbito de las TI. Una de las empresas líderes en este segmento es salesforce.com, a través de su aplicación de CRM que funciona bajo un esquema on-demand. Pero ahora, salesforce.com está yendo un paso más alla al no solo ofrecer su aplicación como servicio, sino al brindar su plataforma como servicio. Esto significa que los desarrolladores pueden utilizar la infraestructura y plataforma de salesforce.com para crear sus propias aplicaciones, las cuales posteriormente se ejecuten bajo un esquema on-demand desde la infraestructura de salesforce.com. Dicha plataforma es conocida con el nombre force.com y es una excelente forma de crear rápidamente aplicaciones web.

Cómo dar los primeros pasos con force.comAprender a desarrollar aplicaciones en la plataforma force.com no requiere comprar nuevo hardware, instalar middleware, ni pagar capacitación. Simplemente el desarrollador necesita re-gistrarse de forma gratuita en el Apex Developer Network (ADN) en salesforce.com/developer. Después de hacer esto, visitando la pestaña de “Getting Started” se tiene acceso a videos y tuto-riales (ver figura 1).

Ventajas de una plataforma como servicioForce.com ofrece al desarrollador un gran salto cualitativo en cuanto a generación de aplicaciones ofrecidas a través de la Web. Al desarrollar aplicaciones web, típicamente éstas se programan primero en la máquina del desarrollador y posteriormente insta-larlas y publicarlas en un servidor web, de forma que se puedan ver “en vivo”. Este paso no existe cuando se desarrolla en force.com, ya que la aplicación “nace en la web”. La aplicación puede probarse o mostrarse a otros inmediatamente y exactamente de la forma en que aparecerá cuando se utilice.

Hay que tener en cuenta que la nueva aplicación se ubica en el contexto de otras herramientas de salesforce.com. Al no haber

pasos adicionales de integración de la aplicación, ésta forma par-te inmediatamente del catálogo de herramientas disponibles para el usuario o el desarrollador, y extiende las capacidades que exis-tían antes de que se creara la nueva aplicación. Es posible incluir rápidamente nuevas funciones. Con sólo hacer clic con el ratón para activar una función de la plataforma, es posible agregar a la aplicación opciones como la búsqueda, bitácoras o envío de documentos. El desarrollador no tiene que escribir nuevo código personalizado para que estas funciones estén disponibles.

Figura 1. Página de acceso.

Basado en el popular patrón MVCMuchos desarrolladores de aplicaciones comerciales están fami-liarizados con tecnologías de desarrollo centrados en objetos, que utilizan la arquitectura de Modelo/Vista/Controlador. El MVC separa el diseño de la función de una aplicación de la forma en que se utilizarán esas funciones. Force.com aplica los conceptos de MVC. La clara definición de esta arquitectura ayuda al desarro-llador a crear aplicaciones muy potentes y, por su parte, la pla-taforma force.com detecta y evita muchos errores comunes que podrían provocar problemas en momentos posteriores del ciclo de desarrollo.

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).

Page 21: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx 19

Confiabilidad y seguridad sencilla de obtenerComo ya dijo el gran filósofo SpiderMan, un gran poder conlleva una gran responsabilidad. Actualmente existe una gran preocupación en las empresas por la gestión y el gobierno de las TI, los desarrolladores tendrán el placer de ver el alto grado de precisión que la plataforma for-ce.com ofrece a los equipos de desarrollo en cuanto al acceso a la infor-mación, permitiendo fácilmente configurar qué roles de usuario tienen acceso a distintos niveles de información en nuestras aplicaciones.

Poniendo a trabajar el talento de los desarrolladoresTodo lo que se ha tratado hasta ahora es algo que cualquier usua-rio comercial puede aprender a hacer, sobre todo si el usuario tiene experiencia con productos de bases de datos personales o incluso con aplicaciones de hojas de datos comunes. El siguiente nivel de Force.com tiene más relación con las capacidades e intereses del desarrollador profesional: un diseñador experimentado que tiene el interés y la capacidad de definir nuevas lógicas de negocio.

Tenga en cuenta que en la frase anterior se utilizan las palabras “definir nuevas lógicas de negocio” en vez de “escribir nuevo códi-go personalizado”. Los desarrolladores que han trabajado en otras plataformas encontrarán que muchas de las funciones necesarias las realiza Force.com con tan sólo escribir sencillas fórmulas, como las hojas de datos comunes mencionadas anteriormente. Aún es necesaria la experiencia que tiene el desarrollador para compren-der el proceso comercial y expresar ese proceso de forma precisa, pero aun así el desarrollador puede aplicar sus habilidades con menor esfuerzo en Force.com que en ninguna otra plataforma de aplicaciones.

Los desarrolladores también observarán que, si utilizan los mecanis-mos de reglas en lugar de escribir código personalizado, la aplicación podrá ofrecer al usuario sencillos métodos de revisión de la aplica-ción con tan sólo cambiar los valores de parámetros. Un usuario con privilegios administrativos podrá modificar a menudo una aplicación para aplicar cambios sencillos sin que tenga que intervenir el desa-rrollador. De esta forma se reducen los costos de mantenimiento de la aplicación y se permite al equipo de desarrollo centrarse en su trabajo de creación de nuevas capacidades.

Apex: el lenguaje para hablar a “la nube”Muchos desarrolladores tendrán gran interés en las herramientas que les permiten definir nuevos comportamientos en los mecanismos de Force.com. Los desarrolladores pueden escribir código en el lenguaje Apex de salesforce.com, que es como una mezcla de Java y SQL. Este lenguaje híbrido, desarrollado para trabajar estrechamente con el sis-tema de Force.com, da a los desarrolladores una atractiva combina-ción de alta legibilidad con una rigurosa gestión de los datos.

Gracias a los distintos tutoriales escritos y de video que se ofrecen en el sitio web de salesforce.com, los desarrolladores verán que pue-

den escribir y probar código directamente en el navegador para de-finir nuevas funciones en las aplicaciones. En el área de “Tools” del Apex Developer Network, es posible descargar el “Apex Toolkit for Eclipse”, que es un plugin de Eclipse para desarrollar con Apex.

El desarrollo de Apex en Eclipse ofrece a los desarrolladores todo el poder de un completo y moderno editor de código, a la vez que ac-tualiza automáticamente el código que reside en los niveles superio-res de Force.com. De la misma forma que si edita código a través del navegador, el desarrollador no tendrá que pensar en cómo instalar la aplicación, ni siquiera cuando use Eclipse para la edición de alto rendimiento en su estación de trabajo (ver figura 2).

Figura 2. Edición de código con Eclipse.

Otras herramientas disponibles para descarga en el ADN incluyen el Apex Explorer, que es una herramienta para navegación de datos, y el Flex Toolkit for Apex, el cual permite utilizar Flex para desarrollar interfaces gráficas enriquecidas.

ConclusiónForce.com plantea una paradoja para el desarrollador: por un lado le hará sentir familiar con la forma de uso de los con-ceptos de base de datos convencional y con la sintaxis del nuevo código, pero por otro se sentirá un novato en la crea-ción de aplicaciones web, que resulta infinitamente menos complicada que el desarrollo que se realizaba anteriormente. Al ofrecerles de forma gratuita una cuenta de desarrollador, materiales de capacitación y herramientas, Force.com ofrece a los desarrolladores la posibilidad de explorar cómo será en el futuro el trabajo que realizan hoy.

Page 22: SG19 (Febrero-Abril 2008)

365 asistentes a conferencias, 402 a expo, y 149 expositores para un total de 916 personas en SG ’07.

20

El Encuentro con el Conocimiento

FEB-ABR 2008 www.sg.com.mx

Page 23: SG19 (Febrero-Abril 2008)

21

Pocas son las ocasiones en que los profesionistas en Tecnologías de In-formación podemos reunirnos tanto para saludarnos como para compartir

conocimiento con nuestros colegas de la región. Y qué mejor pretexto para estar todos juntos que SG ‘07 Conferencia y Expo.

Tal vez fuiste una de las personas que compartió en vivo la emo-ción de este evento, pero sabemos que otros por alguna ra-

zón no pudieron asistir, así que para ellos dedicamos esta reseña de lo que fue el congreso, y para los primeros

esta es una forma de revivir experiencia de lo que fue SG’07.

365 asistentes a conferencias, 402 a expo, y 149 expositores para un total de 916 personas en SG ’07.

FEB-ABR 2008www.sg.com.mx

Page 24: SG19 (Febrero-Abril 2008)

22 FEB-ABR 2008 www.sg.com.mx

La sedeEl corazón de la Ciudad de México fue el elegido para proveer las instalaciones necesarias y realizar el con-greso. El Hotel Sheraton Centro Histórico fue la sede del evento, ubicado sobre una de las principales avenidas del Distrito Federal, el hotel contaba con las instalacio-nes necesarias para realizar sin problemas el evento.

Su céntrica ubicación permitió no solamente el fácil ac-ceso al lugar, sino que además sirvió de lugar turístico para que tanto los visitantes provenientes de otros esta-dos y países conocieran un poco de la arquitectura colo-nial característica del Centro Histórico.

Los magistralesBuscamos que los conferencistas magistrales de SG sean personas de mucho talento. Elegir a aquellos que son reconocidos internacionalmente y que pueden plan-tear un tema de interés para la audiencia de SG no es una labor sencilla. Se requirió de un esfuerzo significati-vo para identificar candidatos adecuados, contactarlos, convencerlos y acordar el tema que abordarían durante su conferencia.

Scott Ambler fue el encargado de abrir el evento con la primera conferencia magistral. Scott es uno de los gu-rús más reconocidos en desarrollo ágil, y nos compartió un poco de su amplio conocimiento sobre cómo pueden aplicarse estas técnicas en proyectos corporativos de gran escala. Terminado el turno de Scott, Danese Cooper iluminó la sala para todos los gustosos de temas sobre Open Source, ella nos platicó sobre las implicaciones que éste tiene para las personas que nos dedicamos al desarrollo de software.

La conferencia magistral para cerrar el primer día estuvo a cargo de Orlando Rincón. Desafortunadamente en úl-timo momento el no pudo realizar el viaje a México. Sin embargo, es aquí donde entró el aprovechamiento de la tecnología, y Orlando pudo realizar su conferencia de forma remota a través de Skype. A pesar de esto, la con-ferencia de Orlando fue la más larga, más entretenida y que mayor reflexión provocó entre los asistentes.

El día martes, Gavin King inició la sesión de conferen-cias magistrales platicándonos acerca de Web Beans, que es una propuesta muy interesante para el desarrollo de aplicaciones web con estado (stateful). La apariencia fresca de Gavin ofreció a los asistentes el ambiente de camaradería necesario para que más de una vez las ri-sas no se hicieran esperar en la sala, dando una muestra que la tecnología o la ciencia no están peleadas con el buen humor. El segundo conferencista magistral fue Mi-guel Serrano, quien subió al estrado para hablar sobre la

mejora de procesos y el panorama de esta área tanto en nuestra región como en el resto del mundo. Para finalizar con la serie de conferencias magistrales, Eric Jarvi com-partió técnicas y prácticas modernas para la depuración de aplicaciones de software.

Gracias a todos ellos por compartir con nosotros el gran compromiso de llevarle a todos ustedes los conocimien-tos y experiencias al utilizar tecnologías de vanguardia.

Conferencias parcialesTécnica, estrategia, vanguardia y futuro además de la experiencia y conocimiento, fueron los puntos clave para elegir a los conferencistas de las sesiones parale-las. Lamentablemente nada más pudimos elegir 32 po-nencias, las cuales divididas en cinco diferentes tracks, corrieron de forma paralela durante los días de la Expo. De esta manera, captamos a personas laborando en diferentes ambientes de trabajo para que los conoci-mientos fueran diversos y no estuvieran enfocados en una sola área de conocimiento.

Los tracks de conocimientos fueron: Herramientas y Tecnologías, Procesos, Ingeniería de Software, Estrate-gia para Empresarios y Dirección de Proyectos. Algunos ejemplos de los temas que se trataron fueron: Orques-tación de Servicios, Mashups, Planeación de Proyectos, Implantación de MoProSoft, Software Testing, Programa-ción Paralela, Introducción a Ruby on Rails, Diseño de Servicios, entre otros.

Personas de las áreas bancarias; consultores, investiga-dores, empresarios y desarrolladores fueron los perfiles de los ponentes, mostrando al espectador su experien-cia y dominio en el tema.

Día de laboratoriosEl último día de SG’07 fue para realizar los talleres. Cinco salones con 105 equipos de cómputo instalados para que todos pudieran tener acceso al software necesario para el aprendizaje del laboratorio.

Con duración de cuatro horas cada uno, 10 talleres fueron impartidos por expertos y conocedores en los diferentes temas; cada asistente pudo tomar dos talleres de su pre-ferencia, obteniendo al final de la sesión una introduc-ción al tema o herramienta en cuestión, y con suficiente información para poder seguir estudiando por su cuenta y compartir con sus colegas el conocimiento adquirido.

ExpoEste evento no hubiera sido posible sin la participación de nuestros patrocinadores. Nos preocupamos por llevarles una muestra de las mejores empresas en ámbitos de Tec-

Lo

s co

nfer

enci

stas

mej

or e

valu

ados

fuer

on: E

mil

io O

sori

o (4

.90)

, Ern

esto

El

izal

de (

4.77

) y O

rlan

do R

incó

n (4

.64)

en

esca

la d

el 1

al 5

.

El promedio de satisfacción general de los asistentes fue de 4.21 en una escala del 1 al 5.

Page 25: SG19 (Febrero-Abril 2008)

23FEB-ABR 2008www.sg.com.mx

nologías de Información para darles a conocer lo mejor de sus produc-tos o servicios. Cada uno de ellos hizo un gran esfuerzo para atender a todos los asistentes a la Expo, explicándoles la oferta de su empresa y en algunos casos otorgándoles algún pequeño presente, y folletos de información acerca de sus productos y actividades.

Nuestros patrocinadores premier, representados por tres grandes en su ramo: Microsoft, Red Hat e IBM, nos engalanaron con su presencia. Sin olvidar la mención de todas las asociaciones que estuvieron con nosotros, apoyando con la difusión del evento entre sus miembros. Agradecemos también a Prosoft por el apoyo, a los medios que cu-brieron el evento.

¡Gracias a todos y cada uno de ellos!

Lo más importante: los asistentesEste año no pudo ser la excepción, personas de diferentes puntos de la República Mexicana se hicieron presentes: desarrolladores, ge-rentes, directivos, líderes de proyectos y académicos.

La sensación de familiaridad se sintió cuando al caminar por los pa-sillos se veía a personas detenerse para saludarse, viejos conocidos se reencontraban o compañeros de trabajo se sentaban juntos a co-mer o simplemente, se encontraban después de mucho tiempo en las reuniones de comunidad que se realizaron durante el evento.

Todo el equipo detrás del congreso estuvimos preocupados por brin-darles la mejor de las atenciones a todos los asistentes, para que los temas de cada track estuviera a la altura, y principalmente hacerlos sentir como en casa.

¿Bailamos?El evento social se realizó en La Terraza, bar ubicado en el edificio de los portales frente a Palacio Nacional. Con una vista a la plancha del Zócalo, todas las personas que tuvieron la energía para acom-

pañarnos por la noche pudieron convivir más con sus amigos, com-pañeros de trabajo y en general con el equipo de SG, anfitriones del evento.

Preocupados porque todos llegaran sanos y salvos al lugar, hubo autobuses que sirvieron para transportarnos desde el hotel sede hasta el bar, la misma travesía para el regreso. Música, bocadillos, bebidas y baile fueron los elementos clave para la noche, en la que todos disfrutamos del ambiente y la vista panorámica.

AnécdotasYa como cierre de esta reseña, queremos compartir algunas anécdo-tas y datos al margen:• 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 social nos regalaron una sesión de baile grandiosa, era la primera vez que venían a la Ciudad de México, aunque ya conocían las costas oaxaqueñas, quedaron encantados no solamente con el evento, sino con el lugar sede. • Personas que vinieron de diferentes puntos de la República Mexi-cana, asistieron con maleta en mano al día de talleres. • La mesa de futbolito además de divertir, generó retas entre los asistentes. • Cada día hay más mujeres inmersas en el mundo de las Tecnologías de Información. • Tuvimos voluntarios de diferentes partes de la República Mexica-na: Monterrey, Oaxaca, Puebla y Tlaxcala.

Podríamos mencionar muchas más, pero es mejor vivirlas que leer-las, no se pierdan la siguiente edición.

Queremos agradecer a todos los asistentes, patrocinadores, ponen-tes, medios y personas que formaron parte del staff para que SG’07 Conferencia y Expo haya sido de su total agrado, invitándolos a que se alisten para repetir esta aventura en junio del 2008.

Los asistentes a SG ’07 llegaron de 23 estados diferentes de la República Mexicana, así como otros países (Venezuela, Estados Unidos, España y Colombia).

Sigma Tao, con 14 personas, fue la empresa con más asistentes en conferencias de SG ’07.

¡Nos vemos en SG’08!

Page 26: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx24 www.sg.com.mx

Page 27: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx 25

Los Premios SG son un reco-nocimiento a lo más destacado de la industria de software en nuestra región. Además de dar honor a quie-nes honor merecen, los Premios SG brindan un mecanismo para que los lectores conozcan diferentes opcio-nes de productos y los consideren en sus próximos proyectos.

Los ganadores fueron elegidos por los mismos lectores de SG a través de una encuesta que se realizó en

noviembre y diciembre del 2007. Previamente, se habían definido a los participantes en cada catego-ría por medio de un wiki abierto. Es así que estos premios son un fiel reflejo de las preferencias de ustedes, los lectores de SG. Pero como ustedes saben, desarrollar buen software no solo requiere de buenas herramientas e infraes-tructura, sino también de perso-nas capaces. Por ello hemos crea-do también un espacio dentro de

los premios para reconocer a per-sonas destacadas en el ámbito de desarrollo de software en nuestra región. En este caso, las personas fueron elegidas por SG, pero para la próxima edición planeamos estable-cer un mecanismo para que las per-sonas reconocidas también puedan ser elegidas por los lectores de SG.

Comencemos entonces para averi-guar quienes son los que se pusie-ron las pilas en el 2007.

FEB-ABR 2008www.sg.com.mx 25

MODELADO y ARqUITECTURAGanador: Rational Software Architect

Los modelos visuales son de gran utilidad para definir y comunicar la estructura y comporta-miento de los componentes de software.

Rational Software Architect (RSA) es la evo-lución de lo que alguna vez fue la edición empresarial de Rational Rose. RSA combina las capacidades básicas que uno podría es-perar de cualquier herramienta moderna de modelado (soporte para UML 2, ingeniería en reversa y generación de código, patrones de diseño, exportación de modelos a HTML) con capacidades avanzadas para el desarro-llo de arquitecturas distribuidas. Entre estas resalta el “Architectural Discovery”, que per-mite visualizar la estructura de una aplica-ción y automáticamente detecta patrones y antipatrones. Otra capacidad interesante es la transformación de UML a web services.

Entre las otras herramientas que destacaron en esta categoría están Enterprise Architect de Sparx Systems, y Visual Paradigm para UML. ArgoUML aparece como la opción de software libre en este segmento. Sin embargo, la brecha de funcionalidad respecto a productos como RSA o Enterprise Architect es muy grande.

GESTIóN DE REqUERIMIENTOSGanador: Rational RequisitePro

La práctica de requerimientos de software tiende a centrarse en la definición de éstos. Es decir, en especificarlos de forma clara y preci-sa, ya sea por medio de casos de uso, story-boards o alguna otra técnica. Sin embargo, tanto o más importante que la definición de requerimientos es la capacidad para adminis-trarlos adecuadamente durante el ciclo de vida de un proyecto.

RequisitePro se integra con Microsoft Word de forma que es posible seleccionar pedazos de texto dentro de un documento y marcarlos como requerimientos formales que son alma-cenados en una base de datos de uso especí-fico. Una vez en la base de datos, es posible definir para cada requerimiento características como su prioridad, estatus, relación con otros requerimientos, relación con componentes de ejecución y prueba, y luego administrar los cambios que se den durante el proyecto.

Borland Caliber Analyst fue la solución de ges-tión de requerimientos que quedó en segun-do lugar, y vale la pena conocer un poco más sobre ella ya que es una suite con dos pro-ductos diferentes: DefineIT para la definición de requerimientos a través de herramientas visuales, y CaliberRM para la administración durante el ciclo de vida.

IDEGanador: Visual Studio 2005

Aunque no sustituyen la habilidad y conoci-mientos, los ambientes de desarrollo inte-grado (IDE) son herramientas de gran utili-dad para cualquier programador.

Las herramientas de Microsoft siempre han sido reconocidas por su facilidad de uso. El pro-blema es que típicamente no habían sido muy poderosas ni extensibles, estando enfocadas al desarrollo de aplicaciones departamentales sencillas. Sin embargo, en Visual Studio 2005 Microsoft conjuntó la facilidad de uso con una arquitectura extensible y el poder de la pla-taforma .Net. Esta receta ha dado excelentes resultados, y prueba de ello es que haya sido elegida como el IDE más popular .

El segundo lugar fue para Eclipse, seguido de cerca por Delphi 2007 para Win32.

Page 28: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mxwww.sg.com.mx26

CONTROL DE VERSIONESGanador: Rational ClearCase

Los sistemas para control de versiones son la infraestructura básica de cualquier proyecto de software serio.

ClearCase es uno de los sistemas más conoci-dos en este segmento. Tiene un conjunto de funcionalidad bastante completo, diseñado para satisfacer las necesidades de los pro-yectos más grandes y complejos. Entre éstas están la capacidad de ejecutarse en Linux, Solaris y Windows, soporte a grandes canti-dades de archivos, y manejo de repositorios en múltiples sitios. Adicionalmente está la gran ventaja de la integración con otras herra-mientas, especialmente de Rational.

Siguiendo muy de cerca a ClearCase quedó Borland StarTeam, que también provee un conjunto de funcionalidad bastante avanza-do. Posteriormente encontramos a Subver-sion, el cual es utilizado en la mayoría de los proyectos open source.

TESTINGGanador: Rational Functional Tester

Así como existe una gran variedad de tipos de prueba de software, también existe una gran variedad de herramientas para probar soft-ware: pruebas unitarias, pruebas funcionales, pruebas de interfase de usuario, pruebas de desempeño, tan solo por mencionar algunas.

El producto ganador en esta categoría fue Rational Functional Tester, una herramienta para automatización de pruebas funcionales y de regresión, que soporta la realización de pruebas para aplicaciones web, desktop Java, desktop .NET, SAP, y Siebel.

A pesar de llevar poco tiempo en el mercado, Visual Studio Team Edition for Software Testers quedó en segundo lugar lo cual es señal de lo bien que ha sido recibida esta herramienta.

LIbRERíA O FRAMEwORkGanador: Delphi VCL

La mayoría de las aplicaciones de software modernas se desarrollan sobre un framework que hace mucho del “trabajo sucio”, permi-tiendo que nos enfoquemos en la lógica de negocio. Por otro lado, también existen libre-rías de componentes reutilizables que resuel-ven muchas de las tareas más comunes (ma-nejo de persistencia, gráficas, etcétera)..

Delphi VCL (Visual Component Library) es un framework basado en componentes para desarrollar aplicaciones de escritorio y web. Los componentes de VCL se enfocan en con-troles gráficos para las pantallas, y acceso a base de datos.

El segundo lugar fue para Apache Com-mons, una librería de componentes reutilizables en Java que se ha ido de-sarrollando durante los proyectos de Apache. Después tenemos a Infragistics NetAdvantage para .NET, una librería de componentes visuales para .NET.

DESARROLLO MóVILGanador: .NET Compact Framework

Cada vez se desarrollan más aplicaciones para dispositivos móviles, pero no por esto el desarrollo para estos dispositivos deja de te-ner sus particularidades, por lo que requiere de herramientas especializadas.

El .NET Compact Framework es una versión de .NET diseñada para funcionar en dispositivos móviles basados en Windows CE. Reciente-mente se liberó la versión 3.5, que soporta los nuevos APIs y tecnologías como WCF y LINQ.

Otra herramienta popular entre los lectores de SG para desarrollo móvil fue NetBeans Mobi-lity Pack, el cual está dirigido a desarrollo en Java Micro Edition.

RADGanador: PowerBuilder

Impulsadas por la creciente necesidad de re-cortar el tiempo requerido para desarrollar aplicaciones, las herramientas RAD (Rapid Application Development) han tomado bas-tante fuerza en los últimos años.

PowerBuilder es una de las herramientas más maduras y conocidas en este segmento. Al parecer cuenta con una fiel base de usuarios entre los lectores de SG, porque la votaron como el RAD más popular.

Siguiendo a PowerBuilder tenemos a Genexus, Magic eDeveloper, 4D y Genero Studio.

SISTEMA OPERATIVOGanador: Windows Server 2003

No hay mucho que decir en cuanto a sistema operativo para servidores. Básicamente las variables a tener en cuenta son estabilidad, seguridad y facilidad de administración.

Windows Server 2003 fue elegido como pri-mera opción por los lectores de SG. Entre sus cualidades destacan la facilidad de ad-

LIbRO CLáSICOGanador: UML Distilled

¿Qué libro es el que más lectores de SG consideran indispensable para cualquier desarrollador de software? La respuesta es el UML Distilled de Fowler, seguido por De-sign Patterns de Gamma y compa-ñía, y Applying UML and Patterns de Larman. Vale la pena notar que los tres libros son sobre diseño.

LIbRO RECIENTEGanador: Agile Software Development

En cuanto a libros publicados en los últimos tres años, el más popular es Agile Software Deve-lopment de Alistair Cockburn, seguido por The Best Software Writing, que es una compilación de artículos seleccionados por Joel Spolsky.

CERTIFICACIóNGanador: Sun Certified Java Enterprise Architect

¿Qué certificación de TI es la que más vale la pena? De acuer-do con los lectores de SG, es la de Arquitecto Empresarial Java otorgada por Sun Microsyste-ms, seguida por la de Experto en Soluciones otorgada por IBM. Posteriormente encontramos

un empate entre la certificación de Project Manager Professional (PMP) del PMI y la de Microsoft Certified Systems Engineer.

Sabemos que las certificaciones no son garantía de conocimien-to, pero como ya se vio en la encuesta de salarios de SG, son de gran utilidad para conseguir trabajo u obtener ese deseado aumento de sueldo.

Page 29: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

ministración, virtualización de servidores y manejo eficiente de almacenamiento.

El segundo lugar lo obtuvo Red Hat Enterpri-se Linux, seguido de Sun Solaris, SUSE Linux Enterprise y Debian. Vale la pena hacer notar que Red Hat, SUSE y Debian en total suma-ron más votos que los que recibió Windows 2003 así que esto nos indica que el pingüino superó a las ventanas en esta votación.

bASE DE DATOSGanador: Oracle

La base de datos es un elemento crucial de cualquier sistema de software. A fin de cuentas, serviría de poco una aplicación con una interfase de usuario y comporta-miento perfecto, pero cuya base de datos fuera poco confiable.

Oracle es posiblemente el nombre más grande en el segmento de base de datos. En el 2007 lanzó su versión 11g, que incluye mejoras para el manejo de datos históricos, soporte a datos geoespaciales, y Real Application Testing que es la capacidad de simular cargas de trabajo de producción en ambientes de prueba.

Como escolta cercano de Oracle, los lectores de SG eligieron a SQL Server, que ha teni-do gran dinamismo ya que introdujo varias novedades en su versión 2005 y se espera todavía más con la versión 2008. Después tenemos a MySQL, una base de datos open source que es ampliamente utilizada en apli-caciones web.

SERVIDOR DE APLICACIONES JEEGanador: WebSphere Application Server

A pesar de que esta categoría está enfocada en una tecnología específica (Java) conside-ramos importante incluirla, ya que es un seg-mento muy importante para nuestros lecto-res, y existe mucha competencia dentro de él. A pesar de que todos los servidores Java EE proveen la misma funcionalidad base (indica-da por la especificación de JEE), hay detalles como el desempeño, escalabilidad o facilidad de administración que son los que establecen las diferencias entre productos.

WebSphere Application Server fue el gana-dor en esta categoría. Es un producto bas-tante maduro que se encuentra consolida-do en gran cantidad de organizaciones.

Siguiendo muy de cerca a WebSphere tenemos a dos servidores de aplicación open source: Sun Java System (basado en Glassfish) y JBoss.

PLATAFORMA SOAGanador: WebSphere

SOA (Service Oriented Architecture) es posi-blemente el acrónimo que más hemos oído en TI en los últimos años, y todavía nos fal-tan otros tantos. Pero para que SOA se con-vierta en algo más que un “buzz word”, se requieren productos reales y maduros que lo habiliten.

Los lectores de SG consideran que al día de hoy, WebSphere a través de MQ Series y Message Broker provee la mejor plataforma SOA disponible en el mercado.

En el segundo lugar encontramos la pro-puesta de Microsoft con Biztalk, Sharepoint y System Center, y en tercer lugar encontra-mos a Fusion, la plataforma de middleware unificada de Oracle.

PORTAL PARA DESARROLLADORESGanador: MSDN

En cuanto a portales en Internet relacionados con desarrollo de software, el más recomendado es Microsoft Developer Net-work (MSDN). Sin duda, MSDN es un recurso fundamental para cualquier entusiasta de tecnología Microsoft, y es un

portal muy completo con noti-cias, blogs, demos, tutoriales y descargas de software.

Después de MSDN, los lectores de SG eligieron a java.net –la comunidad online de Java– e IBM developerWorks.

En cuanto a portales de habla hispana, el más popular fue Club Delphi.

NUEVA TECNOLOGíAGanador: .NET Framework 3.5

Esta categoría se refiere a las he-rramientas, lenguajes, platafor-mas y SDKs lanzados en el 2007 que se ven más prometedoras.

La versión 3.5 del .NET Framework resultó ganadora. Esta versión incluye gran cantidad de innova-ciones sobre las que ya hemos

hablado en SG, siendo LINQ una de las más notables.

Los retadores fueron JavaFX, Flex 3 y Silverlight. Hace poco más de un año habíamos adelantado en estas páginas que 2007 sería el año en el que iniciaría la gue-rra de los “clientes ricos”, y los resultados en esta categoría son prueba de que no andábamos tan perdidos.

27

Page 30: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

PLATAFORMA bPMGanador: WebSphere

La oferta de BPM (Business Process Mana-gement) ha madurado considerablemente en los últimos años, y ahora la mayoría de las empresas proveedoras de esta tecnolo-gía ofrecen una suite que incluye diferentes productos para modelar procesos, publicar-los, ejecutarlos y monitorearlos.

La oferta de WebSphere para BPM incluye Business Modeler, Business Monitor y Pro-cess Server y fue elegida como ganadora en esta categoría.

El segundo lugar se lo llevó la oferta BPM de Oracle, la cual reúne un grupo de productos dirigidos al modelado, diseño y simulación de procesos (BPA Suite) con el middleware de Oracle para ejecución y monitoreo de procesos en una arquitectura SOA. En tercer lugar tenemos a JBoss jBPM.

ERPGanador: SAP

En el segmento de aplicaciones empresaria-les, tenemos a los sospechosos comunes, con SAP a la cabeza, seguido de Oracle y Microsoft Dynamics.

Pero lo interesante está en los siguientes tres lugares, donde tenemos a OpenBra-vo –un ERP open source de origen espa-ñol– seguido de dos productos mexicanos: Dynaware y Kepler.

CRMGanador: SAP

En el espacio de los CRM tenemos a los mismos tres primeros lugares que en ERPs: SAP, Oracle/Siebel y Dynamics, lo cual supo-nemos que no sorprende a nadie.

Otra vez, lo interesante está en los “retado-res”, donde en este caso tenemos a Sugar-CRM un CRM open source, y a Salesforce, un CRM en esquema de software como servicio que ha tenido gran éxito en otros países y está comenzando a penetrar en América Latina.

28

Page 31: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Christian StrevelChristian es la versión mexicana de un rock star/geek. Es posible encontrarlo dando una conferencia en algún con-greso, poniendo música como DJ en una fiesta, o desarrollando una aplica-ción de la más alta complejidad para un cliente en el extranjero. Es director de consultoría en Intellekt, empresa que formó junto con su hermano hace cuatro años y que se especializa en entrenamiento y consultoría para de-sarrollo de aplicaciones en .Net.

Christian puso en alto el nombre de México el año pasado cuando ganó el primer lugar de un concurso de desarrollo de gadgets en el que participaron desarrolladores de toda América Latina. Bill Gates premió personalmente a Christian durante su visita a la ciudad de México en marzo del 2007.

Oscar ToledoOscar Toledo Gutierrez tiene 29 años y es uno de los hijos/integrantes de Familia Toledo. Esta es una familia/organización de autodidactas de-dicados al desawrrollo de tecnolo-gías. Entre sus creaciones están una computadora de bajo costo, y un sistema operativo A pesar de que no han logrado conseguir fondeo o un esquema que consideren adecuado para poder fabricar o distribuir sus productos masivamente, lo que que-da muy claro es el talento técnico que tienen.

Este talento quedó patente en la 19ª edición del IOCCC (International Obfuscated C Code Contest), uno de los concursos de programación de mayor prestigio en el mundo, donde Oscar Toledo Gutiérrez ganó el primer lugar general (Best of Show) con un simulador del funcio-namiento total de una computadora, además del primer lugar en las categorías Most Portable Chess Set con un juego de ajedrez grafica-do y Best Small Program que ilustra el periplo del caballo.

Gunnar WolfA pesar de lo que su nombre pueda sugerir, Gunnar Eyal Wolf Iszaevich es mexicano, y a mucha honra. Trabaja como administrador de sistemas en el Instituto de Economía de la UNAM, pero ese solo es su trabajo “de día” que le permite pagar las cuentas. Por lo que Gunnar es más conocido es por ser uno de los principales promotores del software libre en México, y un miembro clave entre las filas de los debian deve-lopers, el grupo de gente que ayuda a desarrollar y mantener Debian, una de las distribuciones de Linux más utilizadas y reconocidas.

Además de participar en debian, Gunnar ha desarrollado varias aplica-ciones de software libre, entre ellas COMAS (Conference Management System), un sistema web para manejar conferencias que se ha utilizado en varios eventos en el mundo. Pero sobre todo, Gunnar es un promotor tanto de nuestro país, como del software libre. Prueba de esto es que en el 2006 se echó en hombros el compromiso de realizar en nuestro país la conferencia internacional para desarrolladores de Debian, lo cual atrajo a nuestras tierras a varias luminarias del software libre de todo el mundo.

Hanna OktabaHanna no necesita introducción alguna. A lo largo de más de 20 años ha sido probablemente la persona que más ha hecho por la industria de software de México. Ya sea dando clases a cientos de alumnos a nivel licenciatura y pos-grado, colaborando con empresas para mejorar sus procesos de software, de-sarrollando modelos como MoProSoft, promoviendo en el extranjero lo que se hace en nuestro país, y por supuesto colaborando con SG.

Independientemente de todas sus credenciales y logros, a la fecha Hanna sigue haciendo todo lo que puede y más para impulsar el desarrollo de software tanto en nuestro país como en el resto de América Latina.

Premios para GurúsEs ahora momento de reconocer a algunas de las personas que más destacaron en 2007 desarrollando software o colaborando al crecimiento de nuestra industria.

29

Page 32: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx30

/*PRUEBA DE SOFTWARE*/

Me da mucho gusto retomar esta columna en la revista, después de un receso de aproximadamente un año. Durante ese tiempo hemos visto cosas interesantes que buscaremos sistematizar y exponer aquí duran-te éste y los siguientes números.

En [1] describimos los problemas que pueden presentarse cuando el software no se prueba adecuadamente, analizándolos a la luz de dos proyectos extremos en los que participamos.

Aquí presentaremos los resultados de la evaluación de la calidad de una muestra de productos mexicanos en el marco del Concurso e-Quallity 2007, del cual hicimos la premiación en el pasado Congreso SG’07 Confe-rencia y Expo. No se trata de un estudio estadístico riguroso, pero vemos estos datos como una aportación inicial para llenar el enorme hueco de información que tenemos respecto a métricas de calidad de los productos mexicanos y su repercusión en la industria.

El impacto de probar inadecuadamente el software En los Estados Unidos, tan solo en 2003, las pérdidas en su industria por la inexistencia o mala aplicación de pruebas a productos de software as-cendieron a casi $600 mil millones, que equivalen a aproximadamente el 1% de su producto interno bruto [2].

Dichas pérdidas consideran no solamente las del sector de Tecnologías de Información, sino de muchos otros sectores que utilizan el software en sus operaciones. Se trata de pérdidas que no son sólo cuantiosas, sino que desgastan gran parte de su sector productivo.

En México no tenemos datos semejantes, pero es posible pensar en un comportamiento parecido. Sin embargo, en nuestro país el efecto sería mucho más nocivo (aunque de menor cuantía): mientras que la indus-tria del software estadounidense es mucho más grande y madura, la nuestra está apenas despegando; esto dificulta ganar inercia positiva en muchos sentidos: el crecimiento de la industria se vuelve más lento, se dificulta generar confianza en esa tecnología, lo que a la vez disminu-ye la atracción de inversiones en empresas tecnológicas, lo que a su vez dificulta el crecimiento... un indeseable círculo vicioso.

La muestra y el proceso El método que utilizamos para la evaluación de productos está formado por 3 fases:1. Un diagnóstico del software: un tester experimentado realiza pruebas exploratorias y detecta una primera capa de defectos. Utilizando esa in-formación y nuestro modelo estadístico, se genera una estimación de

los defectos que aún se encuentran en el producto, así como del costo de detectarlos.2. Dependiendo de los datos del diagnóstico, el interesado puede optar por contratar las pruebas profundas.3. Si después de estas pruebas y luego de aplicar nuestro modelo de calidad de productos, el software muestra un excelente comportamien-to (después de las pruebas regresivas [3]), se hace acreedor a ostentar nuestro sello de calidad. (Este modelo fue validado con apoyo del Con-sejo Nacional de Ciencia y Tecnología, CONACYT.)

Utilizando esta experiencia, a mediados del año pasado lanzamos este concurso, en el que convocamos a la comunidad desarrolladora nacio-nal de software a enviarnos productos terminados pequeños (máximo 30 meses-hombre de desarrollo) para encontrar el producto con la me-nor densidad de defectos (cantidad de defectos entre tamaño).

Una cantidad considerable de productos fueron rechazados, ya fuera porque se excedían en el tamaño o porque no estaban completamente terminados. La muestra final sobre la que se generaron los datos que mostraremos consta de 24 productos. Su tamaño se midió utilizando una métrica interna semejante a los puntos de función.

A los productos concursantes les aplicamos una variación del diagnós-tico descrito arriba y, a cada participante le enviamos la primera capa de defectos que detectamos en su producto, la estimación de los que aún quedaban en su sistema, y la comparación de su producto frente a otros, en términos de densidad de defectos.

Resultados y análisis El tamaño promedio de los productos fue de 20.4 meses-hombre de desarrollo, la mayoría de ellos fueron aplicaciones administrativas. La figura 1 presenta datos concretos sobre la calidad de los productos.

Producto… Defectos / Caso de prueba

Defectos aún en el software

más maduro 1/10 150

promedio 1/4 500

menos maduro 10/17 900

Figura-1: Densidad de defectos en productos mexicanos pequeños

Los datos concuerdan con nuestra experiencia: el promedio de los productos que hemos probado difiere del mostrado aquí en sólo unas cuantas centésimas (antes de las correcciones y pruebas re-

La Calidad del Software Mexicano Pruebas de software inadecuadas: un Inhibidor de Crecimiento

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.

// COLUMNA// COLUMNA

Page 33: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

gresivas). Esto es grave, pues significa que uno de cada cuatro casos de prueba deja al descubierto algún defecto (aunque no nece-sariamente crítico).

Dichos datos son relevantes, pues una den-sidad de defectos como la del promedio puede tener un impacto significativo en el crecimiento de las empresas desarrollado-ras, como se muestra en la figura-2. En ella la curva negra muestra el consumo “con-vencional” de los recursos al desarrollar un nuevo producto de software, considerando patrones de [4]; la curva verde muestra los ingresos por ventas del producto; la azul representa los costos de mantenimiento cuando el software es probado adecuada-mente antes de ser liberado y se elimina la mayoría de los defectos; y la curva roja representa los costos de mantenimiento cuando no se prueba o se prueba inadecua-damente el software.

Figura-2: Impacto económico de las pruebas.

La gráfica muestra algo que vemos en nuestra práctica diaria y posiblemente nos hemos acostumbrado a: cuando no se prueba adecuadamente el software las consecuencias recaen en los costos de mantenimiento, estos pueden mermar sig-nificativamente las utilidades, dificultando la inversión en las áreas de mercadotec-nia e innovación en el producto, este factor provoca la dificultad de crecimiento en esa unidad de negocio.

—Luis Vinicio

Referencias• [1] León-Carrillo, L. “The Impact of Software Testing in small Settings”, en Oktaba H. and Piatini, M. (Eds). “Software Processes in small Enterprises”. Por publicarse.• [2] Tassey, G. “The Economic Impacts of In-adequate Infrastructure for Software Testing”. Final Report. National Institute of Standards & Technology. 2002.• [3] www.e-quallity.net/definiciones.php• [4] The Project Management Institute. “A Guide to the Project Management Body of Knowledge”. USA, 2000.

ConclusiónAsí como en los Estados Unidos, en México la prueba de software inade-cuada también puede tener un im-pacto negativo severo en la industria en general.

Dicho impacto se acentúa porque in-hibe el crecimiento no sólo del sector de las Tecnologías de Información, sino de muchos otros que utilizan software en sus empresas.

Este no es un estudio concluyente, pero genera información que debiera motivar a continuar obteniendo da-tos parecidos. En ese sentido, conti-nuaremos poniendo nuestro granito de arena con el Concurso e-Quallity 2008, que lanzaremos durante el pri-mer trimestre de este año.

Estén pendientes, visiten: www.e-quallity.net

Page 34: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx323232

/*-CASO DE ESTUDIO*/// PRáCTICAS

CMMi por Medio de MoProSoftExperiencia de Kernel TechnologiesPor Claudia N. González y Eduardo Olivares En Septiembre del 2007 Kernel Technologies Group S.A. de C.V. fue la primera empresa mexicana en alcanzar el nivel 2 de CMMi bajo la nueva versión del modelo para desarrollo de software versión 1.2. Pero más importante que esto es el hecho de que basaron su estra-tegia de implementación en el Modelo MoProSoft. En este artículo, compartimos algunas de nuestras experiencias y opiniones relacio-nadas con este proceso de mejora, esperando que le sean de utili-dad a los lectores de SG.

Para nosotros fue una gran ayuda contar con MoProSoft como refe-rencia, ya que a diferencia de CMMi, MoProSoft sí cuenta con una secuencia y lista de actividades a realizar bajo un enfoque y lógica de negocio. La documentación que proporciona MoProSoft fue de gran ayuda en la implementación de CMMi ya que es muy clara en las actividades que deben realizarse, las entradas y salidas de cada proceso, así como la asignación específica de responsabilidades.

Factores críticos de éxitoA continuación explicamos los que consideramos fueron factores crí-ticos de éxito para lograr el nivel 2 de CMMi.

CapacitaciónEl proceso de mejora inició con una estrategia fuerte de capacita-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 del modelo y las exigencias que involucra. Igual de importante fue la capacitación impartida al “sponsor” del proyecto, ya que ayudó a que comprendiera la envergadura del proyecto que estaríamos reali-zando y que esto requería de su fuerte compromiso y participación. Para esta capacitación nos apoyamos en la empresa Innevo.

Apego a las actividades de MoProSoftDecidimos utilizar directamente las actividades de MoProSoft para hacer checklists de aseguramiento de calidad, revisando por ejem-plo que se llevaran a cabo todas y cada una de las actividades de pla-neación para generar el plan de proyecto y plan de desarrollo. Adicio-nalmente se siguieron las verificaciones y validaciones tal como las propone MoProSoft. Esto nos permitió asegurar tanto calidad en los

procesos como en los productos de trabajo. La capacitación en los temas de aseguramiento de calidad se complementó internamente explicando y revisando los checklists de cumplimiento de activida-des, así como los artefactos para verificación y validación.

Complementar actividades utilizando el análisis de brechaUna presentación realizada por la AMCIS en marzo del 2005 para mos-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 versión escalonada, indicando que el 67% de las prácticas se cubrían en forma total, el 10% se cubrían en forma amplia, 17% en forma par-cial y el 6% no estaban cubiertas. Nosotros pusimos especial atención en esta información, ya que ese 67% significaba que solo tendríamos que completar el 33% restante en cuanto a definición de procesos, ahorrando así tiempo y esfuerzo en ésta fase del proyecto. Fue así que conseguimos de parte de AMCIS el detalle de este análisis de brecha realizado por Cecilia Montero (Lead Assesor) y Gisela Rivera, donde se detalla la relación entre las prácticas de las Areas de Proceso de CMMI y los procesos/actividades que las cubrían. Tomando como base éste mapeo, iniciamos a analizar qué procedimientos, actividades y pro-ductos tendríamos que agregarle al MoProSoft para que cumpliera totalmente con cada práctica. Así que para cada brecha definida, defi-nimos un plan de acción para cubrirla.

Métricas y revisión a nivel gerencialA fin de asegurar el buen desempeño de los proyectos y el apego a los procesos, se establecieron reuniones periódicas a nivel gerencial para revisar los indicadores de los proyectos. Los indicadores que usamos son índice de cronograma, índice de esfuerzo, índice de cos-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 indicadores se basó en las recomendaciones del PMBOK 3ª Edición. Se agregó una actividad de revisión de los defectos encontrados en procesos y productos, a fin de tomar acciones correctivas. Se utilizó una plantilla para llevar a cabo la reunión, donde ya se establecían los puntos a revisar en la reunión y fue de gran utilidad para no dejar pasar aspectos de monitoreo como son el manejo de datos, riesgos 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.

Page 35: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx 33

Para todos los procesos se monitorearon las actividades planeadas y el esfuerzo estimado contra el real.

Asignación de esfuerzo para actividades del modeloQuizá uno de los puntos más complejos, pero a la vez más impor-tantes es estimar el esfuerzo en todas las actividades relaciona-das con el modelo, tanto CMMI como MoProSoft, de manera que debe quedar asentado y asignado el tiempo para: la persona que define y establece los procesos, el encargado de las actividades de administración de configuración, aseguramiento de calidad de procesos y productos, capacitación, administración de proyectos y mantenimiento a la matriz de rastreo. Algunos roles pueden ser compartidos; por ejemplo la persona de calidad puede también dar capacitación o participar de la definición de procedimientos, el configurador puede participar en actividades de desarrollo o mantener la matriz de rastreo. En nuestra experiencia, el tiempo de todas las actividades de soporte al proyecto incluyendo tiempo para medición y análisis, planeación, monitoreo de proyecto, ase-guramiento de calidad y administración de requerimientos; en un proyecto que anteriormente tomaba 1,000 horas llevando sólo Mo-ProSoft, se incrementa en cerca del 20% del esfuerzo después de haber agregado las actividades del análisis de brecha hacia CMMi nivel 2. Lo anterior debe considerarse una inversión que paga en beneficios de calidad y confianza hacia los compromisos del pro-yecto con el cliente.

Herramientas Es de gran ayuda apoyarse en herramientas que faciliten la adopción y aplicación del proceso. Recomendamos considerar herramientas de trabajo para administración del proceso de cambios en configu-ración, manejo de la matriz de rastreo, levantamiento y seguimiento 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 electrónicas más susceptibles a errores.

Lecciones aprendidas 1. Tal vez la lección aprendida más distintiva de nuestro proyecto, fue el entender que para cubrir el 33% de actividades pendientes no significaba invertir un 33% más de esfuerzo ya que las prácticas no cubiertas en MoProSoft se trataban de cuestiones un tánto comple-jas de definir e implementar como lo son Administración de Configu-ración (CM) y Medición y Análisis (MA).2. Aunque iniciamos las actividades de verificación y validación utilizan-do como guía los criterios presentados en MoProSoft, nos dimos cuen-

ta que para asegurar la calidad de producto y proceso como requiere CMMI tuvimos que detallar checklists que apoyaran ésta práctica.3. MoProSoft define sus procesos por área de responsabilidad, sin embargo la secuencia de actividades se da naturalmente entre las áreas. Por ejemplo, durante el proceso de venta, se requiere que se realice un entendimiento de requerimientos y una planeación para poder definir el alcance del proyecto que se está vendiendo. Para aclarar esta secuencia de actividades nos apoyamos en diagramas de flujo inter-procesos, lo que ayudó a que se entendiera mejor la relación entre ellos. 4. MoProSoft define algunas actividades de manera muy general por lo que en algunas de ellas tuvimos que definir procedimientos más detallados y/o realizar minutas para asegurar que se cumpliera completamente la práctica CMMI. Algunos de ellos son: la imple-mentación de un procedimiento de control de cambios para revi-sar y autorizar cambios a requerimientos, actividades específicas de administración de configuración como lo es, establecer un plan de administración de configuración que indica nombrado de ítems, permisos, líneas base y niveles de autoridad para su promoción, au-ditorías físicas y funcionales a realizar. La mayoría de los requisitos de CMMi estaban cubiertos en las prácticas de MoProSoft reforzán-dolas con el uso de minutas para cada reunión y dando instruccio-nes muy específicas, sobre los acuerdos y compromisos que deben reflejarse en cada reunión, sin dejar margen a ambigüedades. En la 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 de esta forma. 5. Implementar otros procesos MoProSoft como son la Planeación Estratégica y la Gestión de Procesos ayudaron a la implementación del proceso y a que la organización lo apoyara, así como a la opera-ción misma del negocio.

ConclusiónCMMI está enfocado principalmente a organizaciones gran-des. Sin embargo el enfoque que seguimos de utilizar como marco de referencia MoProSoft fue un gran acierto que nos acercó muy rápidamente a nuestro objetivo de lograr el nivel 2 de madurez en CMMI, apenas 8 meses después de tener implantado MoProSoft. Ahora vamos por el siguien-te nivel y además de seguir utilizando MoProSoft como un marco de referencia relevante nos apoyaremos en PSP/TSP para acelerar nuestro siguiente objetivo en madurez de pro-cesos mediante CMMI.

“La definición de los procesos fue de gran importancia para la implementación del modelo”.

Page 36: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

/*ADMINISTRACIÓN DE PROYECTOS*/// PRÁCTICAS

Afortunadamente hay publicaciones, como la que tienes en este momento en tus ma-nos, que llevan información útil a la gente para brindarles un poco de luz acerca de la manera de trabajar o las herramientas a utilizar para ser más efectivos en su tra-bajo. Hoy tenemos el honor de iniciar esta sección que SG inaugura, donde se trata-rán temas diversos acerca de la adminis-tración de proyectos. Esperamos que sea una columna de interés para todos ustedes y que les brinde algunas señales positivas que puedan ser aprovechadas para el cre-cimiento profesional de los que realizan un rol así.

Seguramente habrás escuchado acerca de la importancia de la administración de proyec-tos. También habrás escuchado que un buen porcentaje de los proyectos que fracasan se debe a causas relacionadas con la adminis-tración de proyectos: requerimientos po-bres, malas estimaciones, falta de dirección, desmotivación del equipo, falta de comu-nicación, riesgos sin contemplar, cambios constantes, etcétera.

Apasionados de la tecnologíaPor supuesto que todas tus habilidades y certificaciones en lenguajes de programa-ción, herramientas de desarrollo, bases de datos, arquitectura, etcétera, te ayudan en gran medida, a tener un proyecto de software exitoso. Pero, debemos de entender que eso no es todo lo que se necesita para alcanzar los objetivos del proyecto (de hecho definir el objetivo del proyecto no es una actividad técnica) . La tecnología es sólo una de las to-rres que sostienen a esa edificación llamada proyecto, y sin una buena administración de proyectos el edificio se puede venir abajo fácilmente. Entre más grande y complejo el proyecto, más indispensable se vuelve el uso de las prácticas administrativas y de un buen proceso de desarrollo.

La mayoría de los proyectos de software no tienen grandes problemas en los aspectos tecnológicos porque la gente en el medio suele apasionarse con el uso de la tecnolo-gía, lo cual se ve reflejado en las aplicacio-nes desarrolladas. Su uso en los proyectos, aunque no siempre perfecto, no representa la principal causa cuando fracasa un proyec-to. Incluso en muchos de los casos en que la tecnología falla se debe a una mala admi-nistración de ésta y no porque no se contara con una tecnología adecuada o por falta de personal hábil en el uso de la tecnología.

Tecnología vs administración de proyectosEl problema es que los “tecnólogos” no suelen apasionarse por la disciplina, el orden, el lide-razgo, y mucho menos por llenar documentos y plantillas. En muchos de los casos les interesa más sacar adelante su propio, muchas veces excesivo trabajo, que perseguir gente para que cumpla con su trabajo. Incluso, con el pretexto de los métodos ágiles, los desarrolladores en-cuentran muchas veces en este tipo de meto-dologías un excelente pretexto para justificar la ausencia de controles y planes.

La mala noticia es que la administración de proyectos es un mal necesario. Tan necesario, que día a día vemos sistemas que no hacen lo que el usuario quiere, que fallan constante-mente fricciones permanentes entre el equi-po de desarrollo y el cliente, desarrolladores que no tienen vida propia fuera del trabajo porque constantemente tienen que apagar los fuegos, resultado de una mala planea-ción. Consecuencias, muchas de éstas, de una mala administración de proyectos.

Confundiendo al PMEn primer lugar, hay que entender que un candidato a administrador de proyectos, no necesariamente es aquella persona que ha estado haciendo un buen trabajo técnico y

que por lo tanto se ha hecho acreedor a un ascenso. Ser líder de proyecto no necesa-riamente debe de verse como el ascenso natural en la carrera de los programadores, de hecho esto es algo que, por la naturaleza de los programadores, debería de ser casi la excepción, más que la regla.

La ruta del PMDebe existir una ruta de crecimiento para los profesionales de la tecnología, y otra ruta di-ferente para la gente, que aun y cuando gusta de la tecnología, se apasiona más por las acti-vidades administrativas. Uno y otro requieren perfiles un tanto distintos. Pero, si los progra-madores descubren que la única manera de recibir un aumento de sueldo importante en su empresa se logra “ascendiendo” a líder de pro-yecto, es natural que tanta gente ponga la mira en un rol así, sin tener el perfil ni las habilida-des necesarias y con las consecuencias desas-trosas que vemos día a día en los proyectos.

Administrar no es tan divertidoAdministrar un proyecto implica planear, do-cumentar, comunicar, escuchar, dirigir, liderar, enfrentarse a los problemas de la comunidad que representa el equipo de trabajo y los stakeholders, implica motivar a sus compañe-ros de trabajo, entre otras muchas habilida-des. Claro que un poco de conocimiento tec-nológico es útil, pero no es lo más importante para el líder de proyecto que quiere destacar. En todo caso debe tener las habilidades para integrar gente que cuente con dichas habilida-des dentro de su equipo de trabajo. Este tipo de tareas no son precisamente las que más motivan a un apasionado de la tecnología.

¿PMs sabelotodo?Claro que en proyectos pequeños, quien diri-ge el trabajo suele tomar responsabilidades adicionales a la administración del proyec-to. Esto no ocurre pocas veces, y en dichas situaciones cubrir dichos roles requiere las

No Todo son Ceros y UnosUn Espacio para la Administración de Proyectos Por Enrique Flores

Enrique Flores es colaborador para liderdeproyecto.com, un portal gratuito para promover mejores practicas en administración de proyectos en América Latina

34

Page 37: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

No Todo son Ceros y UnosUn Espacio para la Administración de Proyectos Por Enrique Flores

habilidades adicionales correspondientes. Incluyendo la parte técnica si se trata de un rol de programador, por ejemplo.

Un proyecto es una empresa, y el líder es el director de esa empresa. Así que piensa bien si quieres ser un líder o administrador de proyectos, pues no tiene por qué ser ne-cesariamente así. Es importante fijar bien los intereses particulares de cada quien y buscar el crecimiento en ese sentido. El di-rector de la orquesta es importante, pero el pianista, el trompetista y el violinista tam-bién lo son, pues sin ellos no tendríamos el placer de disfrutar una obra musical.

Poder PMPor supuesto que es tentador que lo llamen a uno líder o director del equipo, pero si de eso se trata entonces busca ser el líder técnico si tu pasión es la tecnología. Esto te pondrá en el organigrama en un nivel similar al de líder de proyecto. Sobre todo para aquellos que cuenten con habilidades de liderazgo o sim-plemente para quienes el estatus sea algo trascendental en sus objetivos de crecimien-to profesional, pero que no cuenten con habi-lidades o gustos por la administración.

Claro que las empresas o áreas de desarrollo tienen que hacer su parte y definir planes de crecimiento para la gente técnica como: pro-gramadores, analistas, arquitectos, testers, etcétera. Y otra ruta de crecimiento para la gente con habilidades administrativas: lí-deres de proyectos, gerentes de producto, gerentes de área técnica, directores de sis-temas, etcétera. O simplemente podríamos definir niveles para los líderes de proyecto, tales como: junior, senior, master, etcétera.

A través de estos artículos algunos expertos y gurús de la administración irán comen-tando algunas de las habilidades, técnicas, herramientas, tips y experiencias relaciona-das con la administración de proyectos, es-perando que la gente interesada en el tema obtenga un valor extra de SG. Esta columna busca ser algo así como el rincón de los ad-ministradores de proyecto.

El que busca encuentraAdicional te recomiendo que busques una preparación formal constante. Si eres de los pocos afortunados en contar con la disciplina adecuada para auto capacitarte consigue una buena lista de libros, generalmente esto sirve para estructurar adecuadamente las buenas prácticas que has aprendido en el camino.

Busca capacitación que te brinde las bases teóricas, pero sobre todo busca cursos que te transmitan la experiencia de alguien que haya estado en las trincheras, asegúrate de conocer el currículum del instructor si te decides a inver-tir en capacitación presencial, relaciónate con otros administradores de proyectos y busca la ayuda y opinión de gente con mayor experien-cia, esto cada vez es más sencillo mediante el uso de los foros de discusión especializados en Internet o de las redes sociales. Estudia y analiza la experiencia y buenas prácticas de otros administradores, por ejemplo; en algún blog de un profesional en administración de proyectos. Y si tu objetivo profesional está claramente dirigido hacia la administración de proyectos, busca prepararte y generar la expe-riencia necesaria para lograr alguna certifica-ción importante, como la del PMP.

El futuroEn la medida en que las áreas, empresas y profesionales de sistemas le den su debi-da importancia a la disciplina de adminis-tración de proyectos, notarán que incluso los problemas técnicos se disminuyen en los sistemas. Pues esta disciplina tiene la responsabilidad de vigilar que todos los recursos (incluyendo los tecnológicos) se aprovechen al máximo para lograr los ob-jetivos del proyecto. Afortunadamente hay suficientes fuentes de información, referen-cias y modelos que pueden mostrar el cami-no hacia una madurez en la administración de proyectos.

Esperamos pronto volver a estar con ustedes compartiendo un poco de nuestras experien-cias. Por lo pronto les deseamos mucha suer-te en el desarrollo de su carrera profesional como administradores de proyectos.

Page 38: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx36

/*ARQUITECTURA*/// PRÁCTICAS

MDAReusabilidad Orientada al NegocioPor Valerio Adrián Anacleto En los últimos años, muchas organizaciones han comenzado a prestar atención a MDA, ya que promueve el uso eficiente de modelos de siste-mas en el proceso de desarrollo de software.

MDA representa para nosotros, los desarrolladores, una nueva mane-ra de organizar y administrar arquitecturas empresariales, basada en la utilización de herramientas de automatización de etapas en el ciclo de desarrollo y servicios. De esta forma, permite definir los modelos y facilitar trasformaciones paulatinas entre diferentes modelos. Algunos ejemplos de modelos son: el modelo de análisis, el de diseño y el de comportamiento, entre otros. Es decir que, a partir de uno de ellos, po-demos generar otro de menor abstracción.

Un ejemplo común de generación de modelos, es la generación de có-digo a partir del modelo de diseño, mediante el uso de una herramienta de modelado UML. En este caso usamos una herramienta para transfor-mar el modelo de diseño en el “modelo” de código.

¿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.

¿Qué no es MDA?Hoy MDA es uno de los tantos acrónimos de moda y, como ocurre algu-nas veces con las modas, el concepto puede tender a malinterpretarse. Por lo tanto, enumeremos rápidamente que no es MDA. 1. MDA no es un proceso de desarrollo 2. MDA no es una especificación 3. MDA no es una implementación 4. MDA no es una implementación de referencia de ningún estándar particular5. MDA no es un concepto maduro aún 6. MDA no es simplemente generar código 7. MDA no tiene, aún, una visión unificada en la industria 8. MDA no es una arquitectura ni un “arquitectural style o pattern”

Modelos MDALos modelos juegan un rol trascendental en MDA. Como un framework para construir sistemas, MDA abstrae el sistema a construir en distintas capas de abstracción (layers). Tradicionalmente, el OOAD (Object Orien-

ted Analysis and Design) contiene, entre otros, una vista de análisis, una vista de diseño detallado y código –representando la vista de negocios 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 de negocio del sistema. En la figura 1 se muestran las diferentes capas de abstracción (layers). El gráfico se hace más abstracto hacia la izquier-da y se vuelve más concreto hacia la derecha.

Figura 1: Un ejemplo de modelo MDA y sus relaciones.

Los modelos concretos exceden en número a los modelos abstractos. A medida que avanzamos en las transformaciones, los modelos se vuelven más concretos, transformando al modelo abstracto en uno compatible con una tecnología o plataforma. La situación inversa de llevar el código hacia un modelo concreto –también conocido como ingeniería en reversa– rara vez ocurre, excepto cuando el punto de partida es el código mismo. Esto se produce debido a que MDA promueve la fuerte separación entre las responsabilidades de requerimientos del negocio y las responsabilida-des tecnológicas. La ventaja de esta “separación de responsabilidades” es que ambos aspectos pueden evolucionar individualmente sin generar dependencias entre sí. De está manera, la lógica de negocio responderá a las necesidades del negocio y no dependerá de vicisitudes técnicas.

CIM (Computational-Independent Model)El CIM se centra en los requerimientos y representa el nivel más alto del modelo de negocios. Usa un lenguaje para modelar procesos de negocios que no es UML, aunque este lenguaje puede ser derivado perfectamente utilizando MOF (meta-object facility). El CIM transciende a los sistemas;

Este artículo fue originalmente publicado en la base de conocimien-to de Epidata Consulting (www.epidataconsulting.com) y se publica en SG con el consentimiento del autor.

Page 39: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

cada proceso de negocio interactúa con traba-jadores humanos y/o componente de máquina. El CIM describe solamente aquellas interaccio-nes que tienen lugar entre los procesos y las responsabilidades de cada trabajador, sea o no humano. Un objetivo fundamental del CIM, es que cualquiera que pueda entender el negocio y los procesos del mismo puede comprenderlo, ya que éste evita todo tipo de conocimiento es-pecializado o de sistemas. CMI debe su nombre a este foco en el negocio por sobre la tecnolo-gía, que en español se traduce como: “Modelo Independiente de la Computación”

PIM (Platform-Independent Model)El PIM, que se traduce al castellano como “Mo-delo Independiente de la Plataforma”, repre-senta el modelo de procesos de negocio a ser implementado. Comúnmente se usa UML o un

derivado de UML para describir el PIM. El PIM modela los procesos y estructuras del sistema, sin hacer ninguna referencia a la plataforma en la (o las) que será desplegada la aplicación. A su vez, ignora los sistemas operativos, los len-guajes de programación, el hardware y la topo-logía de red. Suele ser el punto de entrada de todas las herramientas para MDA e incluso de muchos artículos que hablan de MDA, dejando de lado el CIM.

PSM (Platform-Specific Model)El PSM, que se traduce al castellano como “Modelo Específico de la Plataforma”, repre-senta la proyección de los PIMs en una pla-taforma específica. Un PIM puede generar múltiples PSMs, cada uno para una tecnología distinta. Generalmente, los PSMs deben co-laborar entre sí para una solución completa y consistente. Normalmente, esto se realiza en

UML, creando distintos profiles que definen un PSM para cada tecnología requerida. Los PSMs tienen que lidiar explícitamente con los sistemas operativos, los lenguajes de progra-mación, las plataformas (CORBA, .Net, J2EE, ETC), etcétera.

Figura 2: Los PIMs se transforman en PSMs

Page 40: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx38

/*ARQUITECTURA*/// PRÁCTICAS

Code modelEl modelo de código representa el código desplegable (deployable), nor-malmente en un lenguaje de programación de alto nivel, como Java, C#, C++,VB, JSP, etc. Idealmente, el modelo de código está listo para compilar y no debería requerir la intervención humana; el despliegue de la aplica-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 más que como simples archivos, o como un mero objeto intermedio para generar el ejecutable final. Pero debido a que MDA no está maduro, y di-fícilmente se llegue alguna vez a la utopía de no tener que tocar ningún código, los desarrolladores seguiremos necesitando conocer la tecnolo-gía para complementar la generación de código, debuguear la aplicación y, sobre todo, lidiar con muchos y variados errores inesperados, extraños y divertidos.

Decisiones de diseñoHemos visto cómo, de manera automática y paulatina, MDA promueve la transformación de modelos que representan lógicas de negocios com-plejas (CIM), hasta llegar al código ejecutable y desplegable (Code Mo-del). Pero, ¿qué pasa con las decisiones de diseño, aquellas decisiones que tomamos cuando, por ejemplo, tenemos que desarrollar un sistema donde la mayoría de las transacciones sólo leen datos, pero diez de ellas hacen uso intensivo del procesador? ¿Qué pasaría si todos los mapeos se hicieran de igual manera? Nos es dado a pensar que esto degradaría la calidad final percibida de la aplicación. Para corregir este problema, MDA promueve el uso de Marks (marcas), las cuales indican aspectos especí-ficos para tener en cuenta en cada transformación. Un PIM generado a partir de un PIM y Marcas se denomina PIM Marcado o Marked PIM. La utilización de las marcas establece que las decisiones respecto a aspec-tos tecnológicos queden fuera de los modelos principales.

Figura 3: Utilización de marcas y mapeos

Ahora bien, para realizar el mapeo entre un PIM marcado y, por ejemplo, un PSM, es necesario detallar cómo se mapean esas marcas; para eso se definen los Mappers (mapeadores). Puede verse la relación entre los mapeadores, las marcas y los PSM en la figura 3. Los mapeos se hacen utilizando un QVT: Query, Views, and Transformations.

Ventajas de MDALa ventaja principal de MDA radica en la clara y estricta separación de responsabilidades. Por un lado, modelaremos los PIMs, que re-presentan los modelos de nuestro negocio, y por otro lado, los PSMs con las preocupaciones tecnológicas. Esto permitirá que ambos mo-delos puedan evolucionar por separado. De esta manera, si quisié-ramos, por ejemplo, modificar un aspecto técnico, bastará con modi-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 llama “Guías de Diseño”. Particularmente, una de esas guías dice que el modelado de la solución debe ser dirigido por el negocio. Esta guía se basa en la afirmación de que un cambio en el negocio segura-mente produzca un cambio en el código, pero no lo inverso: los cam-bios en el código no deberían impactar en el negocio. MDA también permite: lidiar con la complejidad del negocio, modelando a éste por separado y permitiendo su análisis y mejora; disminuir costos, si se cuenta con una herramienta MDA adecuada a nuestras necesidades; mejorar la calidad de nuestros modelos y procesos, mediante su análisis y la separación de responsabilidades.

Estándares involucrados en MDALas tecnologías más importantes involucradas, para poder llevar a la práctica los conceptos subyacentes en MDA son: Meta Object Facili-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 MDALas 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. OptimalJ3. ArcStyler4. UMT (UML Model Transformation) 5. ArgoUML 6. Codagen 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.

Page 41: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

8. MDA Transf 9. Enterprise Architect 10. GReAT 11. AndroMDA

¿Cómo evaluar una herramienta MDA?Con el advenimiento de las palabras de moda (buzzwords), utilizadas en exceso y en mu-chos casos de manera inapropiada, llegan a la puerta de nuestros gerentes los vendedores de sueños y espejitos de colores comentando que, con la nueva herramienta MDA, po-dremos resolver todos nuestros problemas haciendo clic en el botón derecho del mouse. Como todo el mundo sabe, ese tipo de expectativas suele ser exagerada. En mi opinión personal, la forma de probar una herramienta es usarla para resolver nuestra problemá-tica y, si hay vendedores involucrados, pedirles gentilmente que nos ayuden a resolver la problemática de nuestro negocio con un caso “testigo” elegido por nosotros. Si la he-rramienta realmente funciona, podrá resolverse el caso testigo y nosotros seremos unos clientes felices.

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ónMDA 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.

MDA también es el resultado de reconocer que la interoperatibilidad es algo bueno y que el modelado también lo es. Bien utilizado y teniendo en cuenta los principios de diseño subyacentes, nos puede ahorrar la escritura y generación de muchas tediosas líneas de código, ayuda siempre bien recibida. Incluso es probable que, analizando las tecnologías utilizadas hoy en nuestra organización, encontremos que algunas de ellas están fuerte-mente relacionadas con el concepto MDA. En ese caso, es posible organizarlas de mane-ra que reflejen y hagan evidente el uso de MDA como concepto subyacente, más allá de las herramientas utilizadas.

Page 42: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx40

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

En el número anterior SG Año 03, número 06, comenzamos con una serie de artículos introductorios al lenguaje de programación Ruby y el uso del framework Ruby on Rails. En este artículo, continuamos con 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 ayudarán a comprender mejor el uso de RoR (Ruby on Rails) .

Más características de RubyEn la parte 1, hablamos no solamente de los antecedentes del len-guaje, sino que además vimos algunos conceptos básicos. Para continuar, seguiremos hablando de esta parte introductoria y más de sus conceptos básicos.

ArreglosSabemos que la manera mas fácil de implementar una lista de usuarios (al igual que cualquier otro tipo de lista) es utilizando un arreglo.

El código siguiente permitirá mostrar el uso de esta estructura de datos: class CListaUsuarios def initialize @arregloUsuarios = Array.new end def append( usuario ) @arregloUsuarios.push( usuario )

self #--- Regresa una referencia a si mismo #--- Además, esto permite hacer #--- multiples llamadas encadenadas a append end def delete_first @arregloUsuarios.shift end def delete_last @arregloUsuarios.pop end def []( indice ) @arregloUsuarios[ indice ] end end

Nótese el empleo de clase Array y la invocación del constructor me-diante la palabra reservada new.

En el artículo anterior, definimos la clase CUsuario y la clase CAdminSistema (SG Año 03, No. 06, pág. 36), tomando estas clases como ejemplos para in-corporar varios objetos a la lista de usuarios definimos:

admin1 = CAdminSistema.new( “Carlos”, “a9M4xSmart”, “xxx” )admin2 = CAdminSistema.new( “Marco”, “b9D4xSmallTs”, “www” )admin3 = CAdminSistema.new( “Luis”, “ b9D4xBigHcWTs “, “rrr” )admin4 = CAdminSistema.new( “Pablo”, “f0H4xSmart”, “xxx” )

Una vez que tenemos los objetos con los usuarios, los agregamos a la lista:

listaUsuarios = CListaUsuarios.newlistaUsuarios.append( admin1 )listaUsuarios.append( admin2 )listaUsuarios.append( admin3 )listaUsuarios.append( admin4 )

puts “Elemento 0:= “ + listaUsuarios[ 0 ].nombreputs “Elemento 1:= “ + listaUsuarios[ 1 ].nombreputs “Elemento 2:= “ + listaUsuarios[ 2 ].nombreputs “Elemento 3:= “ + listaUsuarios[ 3 ].nombre

La salida que se obtiene es:

CarlosMarcoLuisPablo Existe otra manera para definir e inicializar explicitamente un arre-glo, esta toma la siguiente forma:

nombreArreglo = [ elemento0, elemento1,…elementoN ]

Observemos con atención que la declaración es muy similar a como se declara un arreglo en otros lenguajes OO como VB.NET, C# o Java, esto es, se usan corchetes cuadrados para delimitar el conjunto de elementos contenidos en el arreglo, así como también el comas para diferenciar cada uno de los elementos.

En Ruby, un arreglo puede albergar diferentes tipos de elementos, por ejemplo: enteros, flotantes, caracteres, cadenas, diferentes ti-pos mezclados, o si se requiere no tener ningún elemento, en este sentido un arreglo en Ruby se comporta mas como un vector en Java que como un arreglo. A continuación algunos ejemplos:

arregloMin= [ ] # arreglo vacioarreglo1 = [0, 1, 2, 3]arreglo2 = [‘a’, ‘b’, ‘c’, ‘d’]arreglo3 = [0, ‘a’, 1, ‘b’, 2, ‘c’] # arreglo que contiene # diferentes tipos de elementos

Aprendiendo Ruby y Rails Parte 2. De los Arreglos a los BloquesPor Carlos Ortega

Page 43: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Aprendiendo Ruby y Rails

arreglo4 = [0, ‘a’, “primero”, 1, ‘b’, “segundo”, 2, ‘c’, “tercero”]arreglo5 = [1, 2, [30, 40, 50], 4] # arreglo conteniendo # otro arreglo como elemento

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.

puts arreglo1[ 0 ] # => 0puts arreglo1[ 1 ] # => 1puts arreglo1[ 2 ] # => 2puts arreglo5[ 0 ] # => 1puts arreglo4[ 2 ] # => primeroputs arreglo4[ 6 ] # => 2puts arreglo4[ 8 ] # => terceroputs arreglo5[ 2 ] # => [30, 40, 50]

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.

Estos métodos y operadores son similares a lo que se tienen en un Hash.

HashesAl 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:

nombreHash = { llaveX> valor0, llaveZ => valor1,… llaveJ => valorN }

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.

Page 44: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx42

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

Algunos ejemplos de hash son:

ACCION = 1DRAMA = 2hash1 = { 0 => “PRIMERO”, 1 => “SEGUNDO”, 2=> “TERCERO” }hash2 = { ACCION => “60 Segundos”, DRAMA => “Kramer vs Kramer” }hash3 = { 1 => ‘K’, 3 => ‘L’, 5 => ‘M’ }hash4 = { 0 => 0, 1 =>1, 2 => ‘M’, 4 =>’Carlos’ }

El acceso a cualquiera de los elementos del hash es a través de los valores de las llaves, utilizando el operador [ ]:

puts hash1[ 0 ]puts hash1[ 2 ]puts hash2[ DRAMA ]puts hash2[ 0 ]puts hash3[ 1 ]puts hash3[ 5 ]puts hash3[ 0 ]puts hash3[ 2 ]puts hash4[ 4 ]

La salida es:

PRIMEROTERCEROKramer vs KramernilKMnilnilCarlos

Ahora bien, aun cuando tanto arreglos como hashes son estructuras sumamente útiles, es necesario incorporar otro elemento de Ruby que entre otras cosas complementa y toma ventaja de la naturaleza de estas estructuras.

El elemento al que nos referimos se conoce como bloque (block), y permite la ejecución de instrucciones interactuando con cada uno de los elementos internos de los hashes y/o arreglos, de hecho también utiliza en forma intrínseca la capacidad funcional los métodos sim-ples o agregados a una clase.

Bloques (blocks)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-do determinado.

A continuación definiremos un ejemplo para explicar con más dete-nimiento cómo opera.

Continuando con el ejemplo de los Usuarios, recordemos que había-mos agregado datos, si ahora deseamos conocer el nombre de cada

uno de los administradores, podríamos hacerlo accesando directa-mente a cualquiera de sus celdas:

puts “Elemento 0:= “ + listaUsuarios[ 0 ].nombreputs “Elemento 1:= “ + listaUsuarios[ 1 ].nombre…puts “Elemento 3:= “ + listaUsuarios[ 3 ].nombre

Sin embargo esto representa una gran cantidad de trabajo, más aún cuando sabemos que es posible tomar ventaja de la naturaleza del arreglo como colección, es decir, al igual que sucede en otros len-guajes de programación es posible iterar sobre el arreglo:

class CListaUsuarios … def getNombres_iterando_en_arreglo tamanoArreglo = @arregloUsuarios.length if tamanoArreglo > 0 then begin ###--- !OJO! Notese que el indice inicia en 0 ---### ###--- y acaba en tamanoArreglo-1 ---### for i in 0..tamanoArreglo-1 puts @arregloUsuarios[ i ].nombre end end

end ### <= end del if-then

end ### <= end del def nombres … end … listaUsuarios. getNombres_iterando_en_arreglo

La salida será:

CarlosMarcosLuisPablo

Además de mostrar cómo se itera sobre un arreglo, este ejemplo muestra dos nuevas estructuras de control: if-then y for. La estructura if-then comprueba la veracidad de una condición, si se cumple se eje-cuta el conjunto de sentencias contenidas en el siguiente bloque.

La estructura for ejecuta repetidamente un conjunto de intrucciones, tomando como base el rango definido después de la palabra in.

En ambos casos la delimitación del bloque de sentencias ocurre has-ta la declaración de la palabra end (nótese los comentarios que indi-can los finales de bloque).

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 tiene en otros lenguajes como VB.NET, C# o Java, sin embargo, es posible que este tipo de codificación sea más natural si emplea-

Page 45: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

mos el concepto de bloque para accesar cada una de las celdas del arreglo:

class CListaUsuarios … def getNombres_usando_Iterador_y_Bloque @arregloUsuarios.each do| elementoArreglo | puts elementoArreglo.nombre end end end …listaUsuarios.getNombres_usando_Iterador_y_Bloque

La salida será:

CarlosMarcosLuisPablo

Expliquemos el ejemplo que se acaba de presentar: en Ruby, un blo-que (block) es una agrupación de sentencias que pueden ser invo-cadas desde un método de forma anónima. Formalmente se puede desglosar a un bloque a partir de la siguiente declaración:

def algunMetodo( listaParametrosFormalesDelMetodo ) .... yield( param0, param1…paramN ) … end ...

algunMetodo(listaParametrosAPasar) do| paramA, paramB...,paramZ | .... #...bloque de sentencias ... end

Dónde:- La definición del bloque debe hacerse inmediatamente después de la llamada al método.

Page 46: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx44

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

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).

“Un arreglo puede albergar diferentes tipos de elementos”.

- La definición del bloque inicia a partir de la palabra do y hasta la palabra end; es decir abarca los parámetros y todo el bloque de sen-tencias que se deseen definir hasta la palabra end.- La listaParametrosFormalesDelMetodo es la definición de todos los parámetros a pasarle al método, y estos pueden o no ser los mismos parámetros que internamente se le pasen al metodo yield.- La listaParametrosAPasar es la declaración formal de todos los pa-rámetros que se le pasan al método.- paramA, paramB,…paramZ son los párametros a pasarle al bloque; dicha lista debe declararse en medio de barras verticales, precedi-das además por la palabra reservada do.

En runtime, el orden de ejecución de llamadas es:1. Se invoca algunMetodo con la listaParametrosAPasar.2. Una vez dentro de algunMetodo se empiezan a ejecutar en orden todas las sentencias hasta que Ruby detecta la invocación a yield.3. El intérprete de Ruby es inteligente y recuerda si existe algun blo-que que previamente definido de manera adyacente a la llamada ini-cial de algunMetodo.4. Si fue definido, yield actúa como la invocación anónima a ese bloque, es decir yield invoca la ejecución de bloque pasándole a este los parámetros param0, param1, …paramN, en otras pa-labras, paramA tomará el valor que hayamos pasado a param0, paramB tomará el de param1, paramC tomará el de param2, et-cétera.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.

Nota: Por supuesto que tanto los parámetros del método como los del bloque son opcionales y pueden o no declararse si así uno lo desea.

Abordemos ahora nuestro ejemplo:

@arregloUsuarios.each do| elementoArreglo | puts elementoArreglo.nombre

end

Primero notemos que each es un método que pertenece a la clase Array (se puede constatar esto si accesamos la biblioteca de lengua-je: Ruby Library Reference).Si bien es cierto que en la biblioteca no podemos verificar directa-

mente cómo es que está definido internamente each, si podemos deducir que en este método existe una declaración yield que tiene un solo parámetro, y que éste le proporciona el valor correspondien-te al parámetro elementoArreglo (esto es, sólo existe un parametro dentro del bloque).Ahora, lo que sucede dentro del bloque es responsabilidad del pro-gramador: en este caso sólo se deseó imprimir el nombre del ele-mento del arreglo en cuestión, si hubiésemos querido podríamos haber escrito un bloque de sentencias más sofisticado.

Compárese la elegancia, legibilidad y agilidad que proporciona esta construcción contra la forma clásica de iterar sobre el arreglo que habiamos propuesto anteriormente (y que es similar a la que se tiene en VB.NET, Java o C# ).

ResumenEn esta segunda parte se completó la revisión de los principales elementos de lenguaje Ruby. Como ya se había explicado antes, ésta no sería una revisión exhaustiva sino lo suficientemente ge-neral y breve para contar los elementos básicos necesarios para aplicar Rails.

Esta revisión incluyó el manejo de arreglos, hashes y bloques. Y una breve explicación de concepto de mixin y de las estructuras de con-trol if-then y for.

En nuestra próxima entrega abarcaremos la instalación y arquitectu-ra de Rails como framework con un ejemplo que permitará mostrar las capacidades de desarrollo ágil de Ruby y de Rails.

Referencias• Thomas David, Fowler Chad, Hunt Andy. “Programming Ruby”. 2nd Edition. The Pragmatic Bookshelf. 2005.• Thomas David, Heinemeier Hanson David, et al. “Agile Web Deve-lopment with Rails”. 2nd Edition. The Pragmatic Bookshelf. 2006.• Black, David A. “Ruby for Rails”. Manning Publications Co. 2006• Troelsen, Andrew. “Pro C# 2005 and the .NET 2.0 Platform”. 3rd Edtion. Apress. 2005.• www.ruby-lang.org/en• www.rubyonrails.org

Page 47: SG19 (Febrero-Abril 2008)

¡Microsoft Visual Studio 2008 y .NET Framework 3.5 ya están listos!

// PUBLIRREPORTAJE

Microsoft está liberando una nueva versión de su suite de herramien-tas para programadores: Visual Studio 2008. Esta versión tiene como objetivo habilitar a los desarrolladores para crear aplicaciones de clientes inteligentes que generen experiencias de usuario más ricas y de mayor calidad.

El primer evento del lanzamiento a nivel mundial tendrá lugar en Los Ángeles, California el próximo 27 de febrero. En México se realizarán diversos eventos de lanzamiento durante los meses de marzo y abril, a los que se invitarán a socios, clientes, y miembros de las comunidades de desarrolladores.

Visual Studio 2008 cumple con la visión de Microsoft de ayudar a las per-sonas a desarrollar todo su potencial al crear herramientas que ayuden a los desarrolladores a crear aplicaciones más seguras, fáciles de admi-nistrar y confiables que aprovechen al máximo las ventajas de Windows Vista, Office 2007 y el framework de .NET. Visual Studio 2008 brinda avances clave en:• Desarrollo acelerado de aplicaciones• Colaboración efectiva entre miembros de un equipo• Experiencias de usuario fantásticas

Con herramientas de desarrollo avanzadas, capacidades de depuración en tiempo de ejecución y control de flujo, funcionalidad para conecti-vidad con diversas bases de datos y otras características innovadoras, Visual Studio 2008 facilita y acelera la creación de aplicaciones de nue-va generación. El nuevo entorno de Visual Studio 2008 incluye mejoras como: herramientas de diseño visual para un desarrollo más rápido, mejoras significativas en las herramientas para desarrollo Web y nuevas capacidades en lenguajes de programación que aceleran el desarrollo. Visual Studio 2008 le da a los desarrolladores el soporte para todos los marcos de trabajo requeridos para crear aplicaciones Web expresivas y contundentes basadas en la tecnología AJAX.NET.

Los desarrolladores podrán crear fácilmente aplicaciones web de nueva generación que se integren con cualquier base de datos, funcionen so-bre cualquier navegador Web moderno y tengan acceso completo a los servicios tanto de ASP.NET como de la plataforma Microsoft.

Desarrollo acelerado de aplicacionesVisual Studio 2008 provee capacidades mejoradas en los lenguajes y acceso a datos, tales como LINQ (Language Integrated Query), que fa-cilitan y hacen más rápida la construcción de soluciones que analizan y manipulan información.

Visual Studio 2008 también brinda la habilidad de utilizar distintas ver-siones del Framework .NET desde el mismo entorno de desarrollo para construir aplicaciones en las versiones 2.0, 3.0 y 3.5 del Framework .NET, lo que significa que podrán trabajar en una gran variedad de

proyectos desde un solo ambiente de trabajo con compatibilidad para aplicaciones legacy o para migración de desarrollos a la nueva versión del Framework.

Experiencia de usuario fantásticaVisual Studio 2008 ofrece a los desarrolladores nuevas herramientas que aceleran la creación de aplicaciones conectadas sobre las plata-formas más modernas incluyendo Windows Vista, Office 2007, SQL Server 2008 y Windows Server 2008. Para la Web, ASP.NET, AJAX.NET y otras nuevas tecnologías habilitarán a los desarrolladores para rápi-damente crear una nueva generación de experiencias web más inte-ractivas, eficientes y personalizadas. Visual Studio 2008 tiene soporte completo para XAML, la plataforma basada en XML para descripción de animaciones en 2D y 3D, así como de gráficos y texto vectorial.

Colaboración efectiva entre miembros del equipoVisual Studio 2008 incluye nuevas capacidades que ayudan a mejorar la colaboración en los equipos de desarrollo, incluyendo herramien-tas que ayudan a integrar al proceso de desarrollo a distintos roles como el de profesionistas de bases de datos o diseñadores gráficos. De la misma forma, Visual Studio 2008 se integra directamente con las herramientas de Expression Studio, permitiendo una colaboración efi-ciente entre equipos de diseño gráfico y de desarrollo de aplicaciones para crea aplicaciones con elementos visuales sorprendentes.

Utiliza el framework .NET 3.5El Framework .NET está diseñado para facilitar la rápida construcción de aplicaciones conectadas que proveen experiencias de usuario de alta calidad, al proveer bloques de construcción prefabricados que re-suelven las tareas de programación más comunes. En conjunto, Visual Studio 2008 y el Framework .NET 3.5 reducen la necesidad de código de bajo nivel para realizar tareas cotidianas, optimizando los tiempos de desarrollo y permitiendo que los programadores puedan concen-trarse en resolver los temas críticos del negocio.

El Framework .NET 3.5 es una mejora incremental de la versión 3.0 del mismo que incluye nuevos beneficios en las librerías base y en Windows Workflow Foundation, Windows Communication Foundation, Windows Presentation Foundation, y Windows CardSpace.

Recursos en el web• Para conocer más sobre estas tecnologías visita www.microsoft.com/spanish/msdn/latam/visualstudio2008• Materiales de entrenamiento sin costo blogs.msdn.com/jaimesb• Casos de éxito www.microsoft.com/mexico/casos • Sitio oficial del lanzamiento www.microsoft.com/latam/estamosconlosheroes

Page 48: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx46

// UML

Uso de UML en ApLicAciones WebpáginAs y ReLAcionesPor Charlie Macías y Sergio Orozco

Frecuentemente somos cuestionados en nuestros cursos acerca de 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-tos independientemente del tipo de aplicación, por ejemplo cuando estudiamos el modelado de aplicaciones web, el modelado del ne-gocio, de sistemas de tiempo real o de bases de datos, a algunas personas les genera ruido y prefieren algo más explícito.

Para resolverlo aprovechamos una de las características peculiares que le dan flexibilidad a la notación de UML. Y consiste en el conjunto de mecanismos de extensión (de significado): estereotipo, restricción y valor etiquetado. Estos mecanismos le permiten a UML extender y 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-berlo hecho así supondría una limitante para la aplicación genérica del lenguaje unificado. Ejemplos de estos dominios son el modelado de negocio (aunque ya existe BPMN como un estándar más específico), el modelado de bases de datos, el modelado de aplicaciones web o el modelado de circuitos electrónicos, por mencionar algunos.

Arquitectura para webLa mayoría de las aplicaciones desarrolladas hoy en día son las apli-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-borar este tipo de aplicaciones, como su ubicación en algunos de los patrones de arquitectura web: “Cliente Delgado Web”, “Cliente Robusto Web” o “Reparto Web”.

El estándar de facto en webEn 1998, Jim Conallen definió una extensión a la que denominó WAE (Web Application Extension) para UML. Esta extensión es la conven-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 artículos, presentaremos los elementos que definen el 20-80 en el modelado de aplicaciones web usando la WAE. El foco de este artí-culo es la WAE en los diagramas de clases.

Extensiones WAE para el diagrama de clasesAlgunos de los ejemplos más comunes de estereotipos que se pue-den asociar a las clases y a las relaciones entre éstas, para represen-tar una aplicación en web son las siguientes:

Estereotipos para las clases

Estereotipo Descripción

Representa una página Web que tiene scripts ejecuta-dos por el servidor. Estos scripts interactúan con los recursos que se encuentran al alcance del servidor. Sólo puede mantener relaciones con objetos que se encuentren en el servidor.

Representan páginas que son dibujadas por el nave-gador web y pueden ser una combinación de algún o algunos lenguajes de marcado, scripts del lado del cliente, islas de datos, etc.

Representa una colección de campos de entrada que forman parte con una página del lado cliente (Client Page). Tiene una correspondencia directa con la eti-queta <FORM> de XHTML.

Es una colección de scripts del lado del cliente que existe como un archivo separado y que son incluidos mediante una petición independiente por parte del navegador.

Estereotipos para las relaciones entre las clases

Link

Submit

Representa un apuntador desde una client page hacia una client page o server page. Corresponde directa-mente con una etiqueta <a> (ancla) de HTML.

Esta relación siempre se da entre una form y una server page, por supuesto, la server page procesa los datos que la form le envía (submits).

Build Sirve para identificar cuales server page son responsa-

bles de de la creación de una client page. Una server page puede crear varias client page, pero una client page sólo puede ser creada por una sola server page. Esta relación siempre es unidireccional.

Redirect Esta es también una relación unidireccional que indica

que una página Web redirige hacia otra. En caso de que la página origen sea una client page esta aso-ciación corresponderá con la META etiqueta y valor HTTP-EQUIV de Refresh.

Page 49: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

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. [email protected] www.milestone.com.mx

Un ejemplo de sistema en webSi bien no presentaremos el modelo de casos de uso para ejem-plificar el uso de esta notación, para resaltar el modelo de clases con sus extensiones, si necesitamos ubicar el ejemplo en algún es-cenario. Por ejemplo: en nuestro sitio nuestros alumnos pueden consultar los datos del curso en el que están inscritos y, desde este 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 del modelo de clases de dicho sistema utilizando los estereotipos propios de WAE.

Anotaciones básicasSuponemos que está de más comentar que las relaciones entre las clases en los diagramas de clases no sugieren o asumen ningún tipo de flujo, que las puntas de flechas sólo son restricciones en cuanto al sentido en que la relación puede ser transitada. Recorde-mos que el diagrama de clases es un diagrama estructural. También 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).

Figura 1: Modelo de sistema de cursos y encuestas con extensiones WAE.

Nombres o íconosIgual que cuando brindamos nuestra capacitación presencial, y an-tes de analizar este modelo de clases, consideramos conveniente recordarle a nuestro público que algunos elementos estereotipados

cuentan con íconos alternativos que pueden utilizarse, aunque esto es algo opcional. En nuestro ejemplo se muestran directamente los nombres de los estereotipos para cada clase y relación, en lugar de los íconos asociados a cada uno de esos estereotipos. Muchas he-rramientas de modelado te permiten, de manera simple, elegir entre una u otra forma de representación. Aplicación de WAE en las páginasEn el diagrama de la figura 1 podemos observar varias clases a las que se les han asociado los estereotipos antes descritos, también podemos observar que entre las clases sólo existen relaciones de asociación, de las cuales algunas usan los estereotipos WAE y otras no. Las que no usan los estereotipos WAE como por ejem-plo: la relación entre LoginForm y LoginValidator es la veterana relación de composición, la cual indica lo de siempre, que el script del lado del cliente LoginValidator es una pieza inseparable de la forma LoginForm.

Relaciones WAE entre las páginas del sistemaTambié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 comienzoExisten 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-lizados. Próximamente presentaremos los estereotipos y aplicación de éstos en los diagramas de componentes; y recuerda que al elabo-rar tus modelos, en muchos casos, entre más simple mejor. Al fin y al cabo un modelo busca simplificar, no complicar las cosas.

“Estos mecanismos le permiten a UML extender y enriquecer el significado de sus

elementos y símbolos básicos”.

47

Page 50: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx48

Hemos hablado extensivamente de la nueva arquitectura de software más servicios:

Interfaz de usuarios. Clientes altamente interactivos y con múl-tiples cabezas, incluyendo PC multicore, dispositivos móviles, dispositivos de hogar como consolas de videojuego o sistemas de teatro en casa.

Lógica de negocio. Que puede ejecutarse en el cliente mismo en un centro empresarial dedicado o virtualizado. Con la evolución de la plataforma de software a cómputo utilitario será cada vez más posible enviar este procesamiento a un Haas (hardware as a service) externo.

Datos. Operando localmente, en centros de datos empresariales o detrás, en la nube de internet.

No obstante, la demanda del mercado no se refiere únicamen-te a la capacidad de hacer todo esto. De la misma forma que el consumidor joven cada vez solicita no tomar el café en un vaso desechable, se requiere del cómputo verde que contribuya a la preservación de la energía y los recursos naturales.

En los siguientes cinco años, las organizaciones de todo tipo agresivamente analizarán este tema y buscarán asegurar la sus-tentabilidad de los productos que utilicen. Las razones son éticas, ambientales y de relaciones públicas.

Cómputo verdeEl alto número de servidores en los centros de cómputo es una fuente primaria de consumo de energía para el funcionamiento y enfriamiento de los equipos. Las tecnologías de virtualización son contribuidoras a reducción de energía en el esquema de con-solidación de equipos. Se está experimentando ampliamente con centros de datos sin discos duros, basados en memorias flash y sus implicaciones cómo enviar los índices de bases de datos y mejorar la capacidad de búsqueda.

En el escritorio, se incrementa la demanda de componentes ver-des certificados con funciones de ahorro de energía y mejores op-ciones de software con el mismo objetivo. Lo que en 1992 inició en forma del programa voluntario “Energy Star”.

Sin duda, las prácticas verdes de operación de tecnologías de información cobrarán fuerza. Desde la adquisición inicial, el uso extendido de videoconferencias en lugar de viajes, la medición detallada de consumo de la energía hasta el reciclaje de equipos en base a sus materiales.

Otro punto a considerar es el e-desecho. Seguramente encontrare-mos racionalización del e-mail y el uso de tipografías más pequeñas para ahorro de papel impreso, utilizando ambos lados de la hoja y enfoques en compartir documentos impresos cobrarán auge.

El gobierno jugará un rol clave de diversas formas: apoyo finan-ciero, favoreciendo la investigación y desarrollo, estableciendo normas y legislaciones, y por supuesto como comprador.

ConclusiónLas oportunidades en este segmento serán amplias, incluso para los fabricantes. Por supuesto diversos empresarios tomarán ven-taja del momento en nuevas empresas relacionadas a este tema. Entre las empresas que destacan en este segmento están Faro-nics, Verdiem, Modius y 1E. Sin duda ésta será una categoría pro-metedora en sí misma para competencias diversas en la búsque-da de mejores soluciones.

Participa• www.theingenuitypoint.com• www.imaginecup.com

—Luis Daniel Soto

Reciclando TecnologíaCómputo verde

/*TENDENCIAS EN SW*/// COLUMNA

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

Page 51: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 52: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx50

Hace algún tiempo conversaba con un muy buen amigo mío, un psicólogo veterano de guerra de los Estados Unidos, de ascen-

dencia mexicana. Cómo era costumbre, me contaba de sus aventuras en el país vecino, las cuales inevitablemente tenían un final sorpren-dente, a lo que mi amigo solía acotar: “puedes sacar al muchacho de México, pero no puedes sacar a México del muchacho”.

Llevo casi veinte años dedicado a las tecnologías de información. A lo largo de este tiempo, he enfocado mis energías a diversas y siempre cambiantes especialidades dentro de esta área. En mis inicios, también un extraño en tierra extranjera, me dediqué a ese oscuro mundo que es la complejidad computacional, anali-zando sistemas que detectaban fallas en circuitos y algoritmos de inteligencia artificial para navegación de robots en ambientes cerrados. Siempre ingeniero de software, al regresar a mi país me interesé en metodologías de desarrollo de software, en particular en metodologías que las pequeñas empresas pudiesen adoptar para ser más competitivas.

Y de algún modo, mi investigación y trabajo fueron derivando ha-cia la utilización de las Tecnologías de Información en las empre-sas, hacia las limitantes de la industria mexicana para adoptarlas y hacia el estudio de las razones por las que una empresa debería apoyar sus procesos en TI. Según unos colegas míos (que también son colaboradores de esta revista), había “vuelto del lado oscuro de la fuerza”.

Pero parafraseando a mi amigo, puedes sacar al muchacho de la programación, pero no puedes sacar a la programación del mu-

chacho. Soy ingeniero en sistemas, y los lenguajes de programa-ción y la algoritmia siempre me han atraído. Con mis alumnos, dis-cuto los elementos que hacen comercialmente exitoso un portal de negocios electrónicos, pero pasamos también horas compren-diendo los mecanismos que hacen realidad dicho portal. El soft-ware sigue siendo una parte central de mi vida académica. Dedico mucha parte de mi tiempo de investigación a la inteligencia de negocios, siempre en contacto con mis colegas de administración de tecnologías de información para dimensionar herramientas de inteligencia de negocios a las necesidades empresariales, pero también devoro con pasión los artículos sobre los algoritmos de minería de datos que son el corazón de muchas aplicaciones de administración del conocimiento.

Empezamos un nuevo año, lo que se ha aprovechado en esta re-vista para hacer un alto y reconocer a los mejores entre los me-jores. Y recuerdo la razón original por la que soy parte de esta revista. Mientras preparo un escrito sobre la importancia de los nichos tecnológicos en el desarrollo de la competitividad indus-trial, despliego en mi escritorio los manuales de las últimas ver-siones de algunas herramientas de desarrollo para web. Y es que, después de estos veinte años, sigo siendo un desarrollador. El lado oscuro aún vive en mí.

Le dedico esta columna a todos los desarrolladores de corazón, que a lo largo de los años mantienen esa pasión por hacer soft-ware. Les deseo lo mejor para este 2008.

—Raul A. Trejo

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.

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

“Puedes sacar al muchacho de la programación, pero no puedes sacar a la programación del muchacho”.

Page 53: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 54: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx52

Parecería que el control de las versiones de software no es una tarea fácil, pero la realidad es otra. Este tipo de administra-ción es muy sencilla si se basa en la no-menclatura adecuada.

Esta nomenclatura es la que define a simple vista los detalles de las versiones que se es-tán trabajando en nuestro desarrollo.

¿Cómo se define?El esquema para administrar estas versiones se expresa típicamente por una nomencla-tura formada por tres dígitos, los cuales, de acuerdo a su posición adquieren un signifi-cado, definiendo bajo el siguiente esquema sus valores:

Versión mayor.versión menor[.número de revisión[.número de modificación]]

Para las versiones comerciales de un produc-to, esta nomenclatura comienza a partir de la versión 1.0 identificando a las versiones alpha o beta cuando la parte de la versión mayor está por debajo de 1, y aumenta su valor cuándo el producto ha sufrido cambios relevantes en su funcionamiento.

Las basesPre-alfaSe le llama pre-alfa a la etapa que define todas las actividades previas a las pruebas de software, pueden considerarse dentro de esta el análisis de requerimientos, dise-ño de software, desarrollo de software y el unit testing.

AlfaSu nombre se deriva de la primera letra del alfabeto griego. Esta versión no es pública y su liberación solamente se hace dentro de las áreas internas de testing. A esta fase se le considera como la primera de desarrollo concreto de la lógica. Básicamente estamos hablando de un prototipo.

Generalmente un desarrollo en esta etapa no contiene toda la funcionalidad que tiene contemplado el producto final, por lo tanto, se pueden presentar numerosos bugs en su fase de revisión.

BetaCuando el desarrollo ha alcanzado cier-ta madurez, es decir, cuando se tiene la primera versión completa conforme a los requisitos establecidos en la pre-alfa, en-tonces el producto pasa a otra etapa del control de versiones. Generalmente es aquí cuando los desarrolladores congelan la solicitud de nuevas características al producto que no hayan sido definidas en las etapas previas.

Las versiones beta comienzan a definirse bajo la nomenclatura:

Versión mayor.versión menor

Como la fase aún no cuenta con las ca-raterísticas necesarias para considerar-se un producto candidato a una primera versión, el dígito mayor se define con un 0, formando el distintivo para la versión beta de 0.X. Conforme al esquema, si en esta fase existiera un cambio que no es tan relevante para catalogarlo como un producto candidato al siguiente nivel, en-tonces las modificaciones iniciarian en 1 e irían en una posición después del número de la revisión, es decir, se tendría defini-da la beta:

0.X.X.1

Indicando el cambio que ha presentado el producto en esta fase. Si esta fuera la ver-sión 1 de la beta con una primera revisión, entonces la nomenclatura estaría formada de la siguiente manera:

0.1.1.1

Aquí podemos realizar dos tipos de pruebas: 1. Abierta, el número de participantes que se asignan para su prueba no está limitado.2. Cerrada, en la que un grupo de personas es seleccionado para realizarle las pruebas necesarias al producto.

Los testers (evaluadores) asignados, repor-tarán al equipo de desarrollo los errores en-contrados y en ocasiones, características de menor importancia que les gustaría ver en la versión final del producto, para que se rea-

licen las correcciones necesarias dentro de esta misma fase.

Versión RC (release candidate)En esta etapa se puede considerar al desarro-llo como un producto final que solamente será considerado como versión definitiva si éste no presenta fallas. Cuando se llega hasta aquí, no deben existir errores que detengan el desarro-llo y avance del mismo. Debe contemplar todos los puntos que se definieron en el diseño del sistema (considerado en la etapa pre-alfa).

Siguiendo la nomenclatura, en este momen-to ya tendríamos la versión 1 del producto y la 0 en el dígito de la versión menor. Si exis-tieran cambios en esta etapa, se definirian después del segundo dígito separado por punto, es decir:

1.0 sería una versión RC sin modificaciones, mientras que 1.0.1 sería una versión RC con una modificación realizada.

El incremento del dígito que indica la versión mayor, se realiza cuando éste ha sufrido cam-bios relevantes a su funcionalidad actual.

Versión finalEn esta etapa, el producto es considerado como estable y relativamente libre de erro-res, aunque puede presentar algunos, pero deben ser los mínimos. En este momento, el producto está listo para ser liberado al usuario final. Generalmente a este tipo de versiones con fines comerciales, se les defi-ne con un nombre de control diferente al de la nomenclatura pasada.

¿Es Alpha o Beta?Control de VersionesPor Sonia Sánchez

ConclusiónEl control de versiones no solamente ayuda a la buena administración de un proyecto, sino que además brinda, a simple vista, un panorama general del estado en el que se encuentra el desarrollo de una aplicación. Esta ingeniería brinda consistencia, repro-ducibilidad y verificabilidad durante el proceso de desarrollo.

// FUNDAMENTOS

Page 55: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 56: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx54

// INFRAESTRUCTURA// TECNOLOGÍA // CONCURRENCIA Y PARALELISMO

Mejorando el Desempeño de los Procesadores Modernos ¿Por qué Multicore?Por Robert Shiveley

En 1965 Gordon Moore predijo que la cantidad de transistores que se podía integrar en un chip de silicón se duplicaría cada 18 a 24 meses. 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 de transistores ha generado aumentos proporcionales en el desem-peño de los microprocesadores y la relación precio/desempeño.

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 mismo tiempo que aumenta la cantidad de transistores, también se aumente la frecuencia del reloj de un procesador. Tradicionalmente, los aumentos en la frecuencia de reloj han sido más importantes que los aumentos en densidad de transistores. Esto es porque aprove-char una mayor cantidad de transistores requiere mejoras de diseño, mientras que las ganancias otorgadas por una mayor frecuencia de reloj son automáticas. El software existente se ejecuta de forma más rápida sin tener que hacerle nada. Por esta razón, el aumento de fre-cuencia ha sido el motor principal detrás de las mejoras en desem-peño de los procesadores.

La Ley de Moore se mantiene al día de hoy y se espera que la densi-dad de transistores se siga duplicando al mismo ritmo durante otros diez años por lo menos. Sin embargo, en años recientes el aumen-to de frecuencia ha encontrado obstáculos mayores. Sucede que el consumo de energía y generación de calor aumentan exponencial-mente con la frecuencia de reloj. Esto no había sido un problema anteriormente porque los niveles no eran significativos, pero en los últimos años se ha convertido en un factor de crucial importancia en el diseño de procesadores.

Aunque los servidores modernos proveen un desempeño por watt mucho mejor que el de sus antecesores, en total tienen requerimien-tos de energía y enfriamiento mayores, y muchos de los centros de datos existentes no fueron diseñados para satisfacer estas deman-das de energía. El costo acumulativo de cumplir estos requerimien-tos se está haciendo excesivo, especialmente ante el aumento en los precios de la energía eléctrica.

Por esta razón, aumentar la frecuencia de reloj ha dejado de ser el medio principal para aumentar el desempeño de los procesadores.

Se necesitan nuevas estrategias para mantener el ritmo de mejora en desempeño y precio.

Estrategias de mejora que se han aplicadoA lo largo de los años, los diseñadores de procesadores han encontra-do varias estrategias para aprovechar la mayor densidad de transisto-res sin necesidad de aumentar la frecuencia de reloj. Algunas son:

• Formatos de datos mayores. Los procesadores modernos de 64 bits son el resultado de una larga evolución desde los primeros procesa-dores de 4 bits. Cada mejora ha provisto un procesamiento más rápido de mayores cantidades de datos, y ha permitido que los procesadores puedan apuntar directamente a mayores volúmenes de memoria. Ac-tualmente estamos viviendo una transición donde los procesadores de 64 bits se convertirán en la norma. Para poner esto en perspectiva, recordemos que un procesador de 32 bits puede apuntar directamen-te hasta un máximo de 4GB de memoria, mientras que uno de 64 bits soporta espacios de dirección de 18 millones de terabytes.

• Paralelismo a nivel de instrucciones. También conocido como ILP por sus siglas en inglés (Instruction Level Parallelism), permite que un procesador dinámicamente evalúe conjuntos de código para determi-nar qué instrucciones son independientes y se pueden procesar de forma simultánea o en otro orden. Si una instrucción está esperan-do una entrada de datos, entonces el procesador puede ejecutar una instrucción independiente mientras tanto. Esta estrategia ha cobrado mayor importancia conforme ha aumentado la brecha entre la veloci-dad de los procesadores y las memorias. A lo largo de los años, se ha hecho un uso fuerte de ILP para reducir el impacto de los tiempos de espera de memoria. Sin embargo, esta actividad es demandante en procesamiento, ya que requiere que el procesador examine código en tiempo de ejecución, encuentre oportunidades de paralelizarlo, y lue-go reagende las instrucciones en la cola de procesamiento. Esto hace a ILP altamente intensivo en recursos, lo cual se termina traduciendo en un alto consumo de energía y generación de calor.

• 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-tes hilos (threads). De esta forma se obtiene un mayor aprovechamiento 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.

Page 57: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

otras formas de paralelismo a nivel de threads, se requiere que el software a ejecutarse esté desarrollado bajo un paradigma multithreaded.

• 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 multicoreLa 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.

En esencia, un procesador multicore es similar a un servidor con varios procesadores, con la diferencia de que las unidades de procesamiento están integradas en un solo chip, lo cual brinda un mayor desempeño y eficiencia de energía.

Los principales fabricantes de procesadores estiman que la estrategia multicore permitirá obtener mejoras en desempeño de hasta 10 veces durante los próximos tres a cuatro años. Mientras tanto, estas empresas están desarrollando nuevos materiales, estructuras de tran-sistores, diseños de circuitos y otras tecnologías que permitirán aumentar la frecuencia de reloj de los núcleos pero manteniendo niveles bajos de consumo de energía.

Aprovechando multicoreQueda 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.

Page 58: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx56

// INFRAESTRUCTURA

Los Nuevos Paradigmas Computacionales Computación UbicuaPor Ariel García

// TECNOLOGÍA

¿Qué es computación ubicua? ¿Es una nueva tecnología orientada al servicio?, ¿un nuevo reto en tecnología?, ¿una preocupación más para los defensores de la privacidad y segu-ridad? Computación ubicua es el nombre de la si-guiente generación de dispositivos y servi-cios en Tecnología de Información. Su imple-mentación y uso tendrá un impacto radical en la vida de los usuarios tanto en el aspecto laboral, como el académico y actividades de la vida cotidiana. Con esta nueva tecnología se realizará una transición del uso tradicio-nal de un equipo de cómputo a un nuevo pa-radigma donde la tecnología residirá invisi-blemente en nuestra vida diaria, proveyendo servicios personalizados a cada usuario.

Cómputo tradicionalPara dimensionar el impacto de esta nueva tecnología, describamos el paradigma tradi-cional de la computación ...

Tradicionalmente, una persona requiere utili-zar una computadora para tener acceso a un servicio. Además, la persona está obligada a adaptarse a las interfaces y limitaciones de dicho servicio. Por ejemplo, para revisar su correo electrónico, un usuario requiere de un equipo de cómputo con acceso a Internet, econtrándose con distintas formas de acceder su correo, cada una con diferentes interfaces que el usuario debe de saber utilizar. Al día de hoy, la experiencia de usuario y el alcance de servicio no es similar entre un cliente de co-rreo, una página web o un dispositivo móvil.

En la computación ubicua se rompe este paradigma al proponer que la tecnología de cómputo debe transformarse en una herra-mienta integrada a nuestra vida diaria y que por esta naturaleza debe ser más robusta y efectiva. En este nuevo paradigma el usuario no es forzado a buscar un equipo de cómputo y seleccionar entre distintas interfaces. Por el contrario, ésta propone que la interfaz de cómputo es responsable de localizar y brin-dar el servicio requerido por el usuario.

En nuestro ejemplo, el usuario podría consultar su correo electrónico o cualquier otro servicio de cómputo desde un espejo o en su recámara o baño donde podría escuchar, leer o reenviar el mensaje desde una interfaz personalizada.

OrigenEl concepto de computación ubicua surge a fi-nales de la década de los ochenta siendo ela-borado por Mark Weiser durante su trabajo en Seros Palo Alto Research Center como jefe de tecnología. Él junto con John Seely Brown escribieron los primeros ensayos sobre la computación ubicua definiendo y esquemati-zando su importancia y alcances.

Weiser reconoce la necesidad de entender los fenómenos sociales, culturales y psicoló-gicos para poder realmente extender e inte-grar el poder de cómputo en escenarios de la vida real. Él describe la computación ubicua de la siguiente forma:

“Estamos tratando de cambiar radicalmente la visión de cómo deberían ser los servicios de computo y redes… Nuestra propuesta prelimi-nar es: conectar al mundo a través de cientos de dispositivos inalámbricos de todos los ta-maños (desde pantallas de una pulgada hasta una pared completa) para cada persona y para cada oficina. Esta propuesta requiere de nue-vos trabajos en sistemas operativos, redes, re-des inalámbricas, interfaces de usuario, panta-llas, y muchas otras áreas. Nosotros llamamos a esta propuesta, computación ubicua, la cual es diferente a soluciones como PDA, dynabo-oks o cualquier otra información disponible a través de la interacción con nuestros dedos. La computación ubicua es invisible y se encuentra en cualquier lugar. Esta no vive en un disposi-tivo de cómputo, sino se en encuentra en ele-mentos comunes de nuestra vida diaria.

Por más de 30 años la mayor parte de los diseños de interfaces y cómputo han sido orientados por el camino hacia la máquina “espectacular”. El ideal de este camino es lo-grar construir una computadora tan increíble, maravillosa e interesante que el usuario ja-

más desee separarse de la misma. Un camino menos transitado al cual le llamo “invisible” tiene como ideal construir una computadora que tenga un grado de integración y adecua-ción tal, que parezca algo natural y llegue a ser usada de forma transparente por el usuario sin siquiera pensarlo. (A esta noción también le llamo computación ubicua) Estoy convencido que en los próximos 20 años el segundo camino será el domínate, pero esto no será sencillo. Muy poca de la infraestructu-ra de sistemas actuales sobrevivirá este cam-bio. Durante los últimos cuatro años, hemos estado construyendo en PARC distintas ver-siones de la infraestructura del futuro.”

Es claro que Weiser no es el único que ha trabajado en este nuevo paradigma. El MIT también ha estado realizando investigación; ha contribuido significativamente en este campo. Otras instituciones o compañías que están realizando investigación en esta área son: El Colegio de Computación de Georgia Tech, el programa de telecomunicaciones interactivas de NYU, Microsoft, Apple, Intel, entre otros.

¿Computación ubicua o realidad virtual?La computación ubicua es totalmente lo opuesto a una realidad virtual. La realidad vir-tual coloca a un usuario en un mundo virtual generado por una computadora. La compu-tación ubicua requiere que la infraestructura y servicios de cómputo residan en el mundo real de los usuarios. Mientras que la realidad virtual es un problema que puede ser solucio-nado principalmente con poder de cómputo y las interfaces apropiadas, la computación ubicua requiere de una integración de perso-nas con conocimientos en Ciencias Computa-cionales, Ingeniería y Ciencias Sociales.

En su esencia, los modelos de computación ubicua comparten una visión donde peque-ños dispositivos de cómputo, de bajo costo y con alta conectividad, se encuentran dis-tribuidos en gran escala en elementos coti-dianos de la vida diaria para satisfacer cual-

// INFRAESTRUCTURA

Page 59: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

quier servicio. Por ejemplo: un sistema de refrigeración donde no solo esté consciente del contenido de alimentos, sino también, la capacidad de proponer menús acorde a su contenido y alertar a los usuarios de alimen-tos en estado de descomposición.

Las interfases existentes para la comunica-ción entre los dispositivos de cómputo y los usuarios, aún son inadecuados para el nivel de integración que se requiere para con el mundo real. Es claro que se requiere de una interfaz robusta y adecuada a los alcances propuestos por la computación ubicua. Sin embargo, se han realizado avances promete-dores en dispositivos como teléfonos móvi-les, dispositivos de música digital, sistemas de localización y pizarrones electrónicos. En cierta forma estos dispositivos nos ayudan a afirmar que ya estamos viviendo en cierto grado en mundo de cómputo ubicuo.

Algunos proyectos actualesEl Instituto Tecnológico de Georgia se encuen-tra realizando trabajos en la investigación y desarrollo de cómputo ubicuo. A continua-ción presentamos algunos de los proyectos que se están realizando:

• Proyecto: TrackSenseHoy en dia existen soluciones en el mercado para proporcionar la ubicación de un indivi-duo dentro de un espacio cerrado. Estos sis-temas requieren la instalación de infraestruc-tura adicional en el lugar en cuestión, además de ser soluciones costosas lo cual impide una adopción masiva. Para este proyecto, tam-bién están trabajando en una solución de bajo costo que no requiere infraestructura adicio-nal. Los prototipos del sistema actual tienen una precisión de centímetros en espacios de hasta cuatro metros cuadrados con uno o dos grados de precisión en la orientación.

• Proyecto: detección temprana de retrasos en el desarrolloSe está desarrollando una tecnología que permita detectar, grabar y dar seguimiento a eventos importantes en el desarrollo de

los niños durante los primeros cinco años de vida. El monitoreo de estos eventos brinda apoyo a los padres e instituciones de salud en la detección de retrasos en el desarrollo como autismo o sordera para poder ser tra-tados de forma efectiva y oportuna.

• Proyecto FetchFetch es un sistema de apoyo para personas con discapacidad visual. El sistema permite la localización de objetos perdidos. A través de entrevistas y trabajo conjunto con per-sonas que padecen este problema, se des-cubrió la necesidad de un sistema de loca-lización de objetos perdidos que pueda ser usado en varias localidades. El prototipo se encuentra en operación basado en un siste-ma con tecnología Bluetooth.

La cantidad de recursos y esfuerzos orienta-dos a la contracción de sistemas orientados a computación ubicua se ha incrementado significativamente en los últimos años. Va-rios expertos opinan que este es el futuro de las Tecnologías de Información, y mucho del trabajo realizado ya está dando frutos. Algu-nos ejemplos sencillos de esto son los sitios web que no sólo proporcionan mapas sino también direcciones y lugares de interés cer-canos, sistemas GPS personales, teléfonos que integran varias funciones en una, con-solas de videojuegos y entrenamiento, tan solo por mencionar algunos.

Lo maravilloso de esta nueva generación de cómputo es que no sólo se da en empresas privadas, sino también en instituciones edu-cativas. Esperemos que éstas y nuestros em-presarios nacionales den cabida a la investi-gación y desarrollo de soluciones basadas en cómputo ubicuo que permitan el crecimien-to y desarrollo tecnológico y económico de nuestro país.

Referencias:• home.cc.gatech.edu•en.wikipedia.org/wiki/Pervasive_computing• www.cc.gatech.edu/classes/cs6751_97_fall/projects/say-cheese/marcia/mfinal.html

Page 60: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx

Amazon

KindleEncontrarse con esta curiosidad tecno-lógica ideada por Amazon puede cau-sar cierta nostalgia en un país como el nuestro que no lee ni en defensa propia, pero para los que sí y son ávidos devora-dores de novelas o cualquier otro géne-ro, y le han entrado a la era de los libros electrónicos, Kindle simplemente los va a volver locos. ¿Qué es? “Es una revolu-cionaria pantalla electrónica tipo papel” que se lee y se ve como si fuera papel real; no requiere de una computadora, cables o sincronización, su conectividad

inalámbrica permite comprar directamente en la tienda Kindle desde donde quiera que uno se encuentre, así que el libro adquirido (de una librería de más de 90 mil títulos disponibles, incluyendo los Best Sellers del New York Times) se auto descarga en menos de un minuto. Se puede acceder también a mues-tras de libros para leer los primeros capítulos y después tomar la decisión de compra; así como a los mejores diarios y revistas de todo el mundo; más de 250 blogs de negocios, tecnologías, deportes, entretenimiento y política. Es ligero, delgado como una edición de bolsillo, pero con una gran ventaja: le caben hasta 200 títulos. Cuenta con batería de larga duración que no requiere recarga diaria. Ahora viajar con el libro favorito que pesa lo de diez será cosa del pasado.

58

/* GADGETS */// TEC-// TECNOLOGÍA

DellXPS 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

Tux DroidPara los seguidores y fanáticos de Linux, su pin-güino representativo se materializa. Se llama Tux Droid y no es sólo un adorno para el escritorio, sino que es un pingüino muy activo. Se programa para recibir y transmitir todo tipo de información de In-ternet como correos electrónicos, RSS, noticias, clima y mucho más. Además funciona como telé-fono VoIP inalámbrico. Viene acompañado de un transmisor USB en forma de pez –sí, de pez – para poder alimentarle información. Además, emite una alerta cuando llegan correos nuevos; puede bailar, girar y parpadear según se desee. Sirve también como altavoz para reproductores MP3 y desper-tador; y gracias a sus sensores de sonido se pro-grama como alarma anti-intrusos. Pareciera que lo único que le falta es hablar, pero también hace esto, ya que pue-de consultar tu calendario de Google y avisarte con su voz robótica avisa cuando tienes una cita. Como es de esperarse, todo el software que habilita al Tux Droid es libre.

Page 61: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx 593159

INDEX

Anunciante Páginas Sitio

Adecco 2F, 1 www.adecco.com.mxAlpha 31 www.alpha-consultoria.comAvantare 55 www.avantare.comCompusoluciones 41 www.compusoluciones.comCutter 59 www.cutter.com.mxESI Center 9 esicenter.itesm.mxe-Quallity 39 www.e-quallity.netGartner 51 www.gartner.com IDC 61 www.idc-eventos.comItera 7 www.itera.com.mxLinux World 53 www.linuxworldexpo.com.mxMicrosoft 45 www.microsoft.com/mexicoMilestone Consulting F4 www.milestone.com.mxNextel 13 www.nextel.com.mxPink Elephant 43 www.pinkelephant.comSafeNet 11 www.safenet-inc.comSG 49 www.sg.com.mx/sg08S&C 37 www.syc.com.mx Sun Microsystems 63 www.sun.com.mxSelect F3 www.select.com.mxTenStep 57 www.tenstep.com.mx

TENEMOS UN ESPACIO RESERVADO PARA TISi deseas anunciarte contáctanosen el (55) 5239 5502 o en [email protected]

DIRECTORIO

Page 62: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx60

Pocas veces me he sentido tan orgulloso de ser tabasqueño y muchas menos de ser de

sistemas como en la reciente inundación de Tabasco. Tuve la fortuna de presenciar lo que un pequeño grupo de gente bien motivada, sin importar su ubicación geográfica, su experien-cia o la “gurunes” de su conocimiento de tec-nología pueden hacer para ayudar.

Aún no termina de sorprenderme lo que logra-ron estos tecnólogos de diversos orígenes, exce-diendo en calidad y oportunidad a la respuesta de los organismos gubernamentales. Consideré importante contarles lo que presencié en esa semana caótica para nuestro estado, con el doble afán de reconocer a quienes participaron desinteresadamente en ayudar a sus hermanos y de motivarnos a todos a prestar una mano cuando veamos a los demás en necesidad.

Para mí, todo comenzó con una llamada de Eduardo quien me comentó que una amiga bloguera suya: Berenice, estaba en un alber-gue ayudando como voluntaria y necesitaban resolver un problema de sincronización de hojas de cálculo que tenían en los dos prin-cipales albergues de Villahermosa. Al llegar allí, me encontré con una pequeña red impro-visada y el problema de no poder obtener un censo fidedigno de los albergados debido a la duplicidad de los registros, era claro que se necesitaba una base de datos.

Margarita, la coordinadora del albergue, me co-mentó que en en la televisora local TVT, había otro grupo de voluntarios que había logrado configurar una aplicación en PHP —original-mente diseñada para un congreso— como una improvisada base de datos para recibir la infor-mación que todos los demás albergues envia-ban por diversos medios. Nos pidió hablar con ellos para ver si ya había algo que se pudiera aprovechar para ayudarlos con su problema.

Al llegar a TVT nos encontramos con un grupo de voluntarios capturando en la aplicación que Isaac había logrado reprogramar, para que la

televisora registrara a todas las personas y se pudieran procesar las llamadas de la gente preguntando por sus familiares. Desafortuna-damente, como todo era improvisado, la red LAN de TVT no tenía acceso a Internet y eso retrazó la consulta en Internet de la página.

Apareció entonces otro grupo de voluntarios encabezados por la gente de compañías de sis-temas de la ciudad ofreciendo un servidor para respaldar periódicamente el sitio completo en PHP y la base de datos de MySQL a otro servi-dor y poder dar lo que era el servicio de informa-ción mas valioso: la ubicación de personas.

La necesidad de los albergues en sí no se po-día cubrir con la aplicación de PHP, porque los albergues requerían de información diferente a la que TVT estaba registrando, así que la so-lución que se encontró para ellos, fue hacer uso de un servicio de web 2.0 llamado Zoho Creator, que en esencia es un constructor de formas de captura en web sin necesidad de programar. Con esto se pudo crear en cuestión de minutos un sistema de captura distribuida basado en Internet que podía ser utilizado des-de cualquier lugar con conexión a Internet, que a diferencia de la telefonía fija y celular, fue el único servicio estable durante la crisis.

Eduardo escribió un correo a los creadores del Zoho Creator por si necesitábamos ayuda en algo que no cubriera el servicio. Charles, integrante del equipo de Zoho, se comunicó con nosotros por Gtalk desde la India para ponerse a nuestra disposición.

Necesitábamos subir archivos CSV que nos lle-gaban masivamente a Zoho y usando la forma oficial de subirlos: una API de WebServices ba-sado en REST, iba a requerir de programación para soportar la funcionalidad. Se ofrecieron un par de voluntarios, pero unos minutos de chat con Charles lograron que nos mandara un pequeño programa de JavaSE para hacer jus-tamente eso. Las maravillas del Internet más la buena voluntad del otro lado del mundo.

Por otro lado, no podemos dejar de mencionar, la valiosa ayuda de algunos grandes amigos que acudieron con consejo, tiempo y algo de programación a soportar estos desarrollos, me viene a la mente la contribución de Alexandro Colorado con un desarrollo para replicar bases de datos, Suly al proveernos infraestructura de chats por scripts de Gtalk, Vicente con su códi-go para Mashups con Google maps y decenas de voluntarios virtuales que nos acompañaron sin parar durante esos días de crisis a través del grupo de google de ayuda@tabasco.

Con las aplicaciones en línea, las necesidades de información y administración de los alber-gados resueltas, otros voluntarios -como Ro-meo- se dieron a la tarea de programar Mas-hups para que se pudieran localizar en Google maps las ubicaciones físicas de los albergues en la aplicación de búsqueda de personas. Los datos de localización geográfica para el aplicativo fueron proporcionados por gente del gobierno, que por su parte, liberaron apli-caciones que sustituyeron los esfuerzos de los voluntarios en los albergues.

Al paso de los días nos llegaron rumores de que el gobierno estaba haciendo las mismas aplicaciones oficiales en Java EE y con todas las funcionalidades corporativas comunes. Pero, el testimonio de los albergues con los que permanecimos en contacto fue que lo que ofrecía el gobierno era demasiado complejo y difícil de usar. Una satisfacción mas para los voluntarios. Estos jóvenes que prestaron un servicio inigualable en el momento justo que era requerido. Qué orgullo ver que lo que tanto disfrutamos hacer pueda ser de utilidad.

¡Muchas gracias! Eduardo, Berenice, Isaac, Romeo y todos los voluntarios por tener los ánimos y la voluntad de demostrar que la tec-nología también puede ayudar a disminuir el sufrimiento, un verdadero ejemplo de cómo alcanzar el tecnonirvana...

—Emilio Osorio

La Tecnología al Servicio de la ComunidadVoluntariado Tecnológico en el Desastre de Tabasco

// COLUMNA // TIERRA 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 [email protected]

Page 63: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 64: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx62

Wayne Mondy y Robert Noe en su libro sobre la Administración de Recursos Humanos defi-nieron a un plan de carrera como un proceso continuo por el cual un individuo establece sus metas de desarrollo profesional e identi-fica los medios para alcanzarlas. El desarrollo individual y las necesidades organizacionales no son cosas separadas ni diferentes. Las em-presas deben ayudar a los empleados en la planeación de su carrera para que se puedan satisfacer las necesidades de ambos.

El plan de carrera, es un método para el de-sarrollo de aptitudes, fundamentándose en la ubicación de un colaborador en puestos de trabajo cuidadosamente estudiados para pro-porcionarle la oportunidad de desarrollar las competencias necesarias para otros puestos de mayor responsabilidad. Una gran parte del dise-ño para el reclutamiento, selección, orientación y ubicación del talento/capital humano se hace en función de las necesidades de la organiza-ción y es un sistema ideal para la planificación y desarrollo de los Recursos Humanos. Puede ser implantado de acuerdo a los siguientes pasos.

Primer paso Entender los factores esenciales que deben estar presentes en la organización: Igualdad de oportunidades. Los criterios y normas de evaluación son claras y equitativas. Apoyo del reporte superior inmediato. Interés del supervisor en el crecimiento profesional de sus subordinados y su retroalimentación ade-cuada y oportuna.Conocimiento de las oportunidades. Esque-ma institucional en términos de reconoci-miento y espacios disponibles para ubicarse en la organización en función de los resulta-dos individuales. Interés del colaborador. El genuino compro-miso de la persona en aprender y desempe-ñarse mejor.Satisfacción personal. Dependiendo de la edad y circunstancias personales y de pre-paración, el sentirse feliz con la contribución a la comunidad.

Segundo pasoConvergencia de los procesos complemen-tarios de desarrollo (del sistema social y del individuo).

Alrededor de este paso, la organización debe estar preparada para mantener:Procesos de evaluación. Consultores inter-nos y/o externos que lleven a cabo entrevis-tas y simulaciones de negocios.Pruebas psicológicas. Para orientar los in-tereses personales y las habilidades indivi-duales. Evaluaciones de desempeño e integración. Con la aplicación consistente de instrumentos que evalúen aspectos técnicos o gerenciales según las características y nivel del puesto. Plan de formación. Para la actualización de conocimientos y el desarrollo de competen-cias. Proyecciones de ascensos. Retroalimenta-ción de los superiores de la organización con relación a los avances y logros.Planificación de sustituto. En congruencia con el concepto de plan de carrera conside-rar igualmente el desarrollo de los miembros del equipo de trabajo para, eventualmente, cubrir la posición a futuro. El Colaborador debe proveerse de:Manuales de descripción de funciones. Para tener claras las responsabilidades y alcan-ces de su actuación.Mapa de carrera. Considerando las posibi-lidades de ascenso fundamentadas en el organigrama presente y las proyecciones de crecimiento. Sesiones sobre planificación de carrera. Se-siones de asesoría y acompañamiento por parte de personal calificado.

Tercer pasoEl desarrollo profesional individual, concretado en el convencimiento y compromiso de cada persona y que comprende acciones para:Lograr mejores niveles de desempeño. Es-forzarse en una ejecución de excelencia.

Tener una relación más cercana con los que toman decisiones. Establecer una relación de confianza con los superiores.Desarrollar un sentido de lealtad hacia la organización. Comprometerse y sentir afec-to con el lugar de trabajo.Recurrir a expertos en el campo. Consultar a colegas respetados por su dominio técnico.Recurrir a colaboradores clave. Consultar a personal del equipo respetado por los demás. Conocer realístamente las oportunidades de progreso. Estar consciente de las condi-ciones en la organización que permiten o no un desarrollo.

En la ingeniería de softwareHoy en día, una de las áreas de ejercicio profe-sional más comunes es la de las Tecnologías de la Información. Dentro de sus vertientes tecnológicas el desarrollo de aplicaciones se ha consolidado como una disciplina híbrida de lógica altamente estructurada denomina-da como ingeniería de software.

Quien se desempeña en este campo pro-fesional debería de considerar al definir su plan de carrera el desarrollar habilidades tanto técnicas de su especialidad como ad-ministrativas en general tales como:

Habilidades “duras”: contratación, finan-zas, control de costos y calendarios, medi-ción del desempeño, monitoreo de la cali-dad, análisis de riesgos.Habilidades “suaves”: negociación, gestión del cambio, astucia política, empatía, comu-nicación oral y escrita.

El Crecimiento Empresarial y Laboral El Valor de un Plan de Carrera y el Desarrollo Personal en la Ingeniería de SoftwarePor José Luis Flores

// CARRERA

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 [email protected]

ConclusiónNo es tan sencillo el implantar este concepto, debido al gran valor que tiene este tipo de programas, si no se diseñan e instrumentan correctamen-te la pérdida de credibilidad es muy difícil de recuperar posteriormente.

Page 65: SG19 (Febrero-Abril 2008)

FEB-ABR 2008www.sg.com.mx

Page 66: SG19 (Febrero-Abril 2008)

FEB-ABR 2008 www.sg.com.mx64

02Para los amantes de Java y sus herramientas, este libro es una opción para conocer más a fondo los conceptos de Hibernate, proyecto ambicioso que

tiende a ser una solución completa al problema de los datos persistentes en Java, mediando la interacción de la aplicación con una base de datos relacional, brindando al desarrollador libertad para concentrarse en los problemas relacionados con la lógica del negocio.

Podemos distinguir tres secciones: la parte introductoria que lle-vará al lector, no solamente a repasar conceptos básicos sobre el paradigma de la programación orientada a objetos, sino que tam-bién lo guía a dar sus primeros pasos con Hibernate describiendo sus conceptos básicos.

Interactuar con un administrador de bases de datos siempre es necesario, así que la segunda sección trata este tema, a través de las opciones de mapeo en Hibernate y mencionando el mapeo con archivos tipo XML y Java, mostrando al lector la convivencia

entre el lenguaje de marcado y el lenguaje de programación.Otro punto que al igual que el uso de un DBMS también es importante y siempre está lantente,es la carga y almace-namiento de datos, proceso que se tiene presente en esta edición y los autores le dedican la última sección de este libro.

Para finalizar, una introduc-ción al framework JBoss Seam y complementar los conceptos de Hibernate y dar el paso de crear fácilmente aplicaciones Web. Aquí, podemos contemplar las mejores ideas de los autores para realizar tareas cuando se tra-baja con datos persistentes en Java explicados bajo el contexto de Hibernate.

01Hablar de Silverlight 1.0 es sinónimo de desarrollar aplicaciones resultado de una mezcla de XAML (eXtensible Application Markup Language), HTMl

y JavaScript, herramientas fáciles de integrar dentro de una aplicación Web ya existente. Además de ser compatibles con las bibliotecas y técnicas del ya popular AJAX (Asinchronous JavaScript and XML). Por estas características, se le considera a Silverlight la promesa alternativa a otro de los más populares dentro de las aplicaciones web: Flash. Esto lo logra a través de la creación de contenido web enriquecido y aplicaciones utilizando add-on’s que son igualmente amigables tanto para desarrolladores como para diseñadores.

Para todos aquellos interesados en conocer más sobre Silverlight este libro es un buen comienzo. El libro está compuesto por 10 capítulos distribuidos en tres partes. La parte de fundamentos abarca dos temas: el inicio con Silverlight y otro capítulo dedica-do a XAML. La segunda parte del libro abarca temas referentes al

contenido estático que se pue-de generar con esta tecnología.

La última parte, está enfocada para que el lector aterrice los conceptos al mundo real, mos-trando en un capítulo cómo crear una aplicación interactiva o cómo experimentar con los conceptos de animación, audio o video.

Uno de los temas que trata de manera fácil de entender es XAML, el cual se muestra en su forma nata y no a través de alguna herramienta que pueda pro-ducirlo, característica que le da un valor agregado al libro y que lo distingue de otros textos similares. Indudablemente un texto que no debe faltar en el librero.

Silverlight 1.0 Unleashed Adam Nathan, SAMSAIGA, 2007

Java Persistence with HibernateChristian Bauer, Gavin KingMANNING, 2006

// TECNOLOGÍA// BIBLIOTECA

Page 67: SG19 (Febrero-Abril 2008)
Page 68: SG19 (Febrero-Abril 2008)

www

.sg.

com

.mx

SO

FT

WA

RE

GU

RU

CO

NO

CIM

IEN

TO

EN

PR

ÁC

TIC

A

Febr

ero-

Abr

il 20

08

[ Tutorial ] SAP NetWeaverNoticias • Eventos • Fundamentos • UML • Infraestructura • Carrera • Biblioteca

No.

19