You are on page 1of 68

Data Warehouse
Multidimensional
• Ruby on Rails
• Documentación
de Arquitecturas

Software Guru CONOCIMIENTO EN PRÁCTICA


No.20 • Mayo - Julio 2008 • www.sg.com.mx

[ ENTREVISTAS ]
Terry Quatrani
Jon "maddog" Hall
John Crupi
Key speakers SG'08

México. $65 MXN

[ Herramientas ]
Noticias • Eventos • Fundamentos • UML • Infraestructura • Tecnología Visual Studio 2008
// CONTENIDO

directorio
Dirección Editorial
Pedro Galván

Dirección de Operaciones
Mara Ruvalcaba

Coordinación Editorial

Editorial Sonia Sánchez

Arte y Diseño
Grisel Otero

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; Luis Cuellar, Softtek;
Luis Vinicio León, e-Quallity, Emilio Osorio.
Remontarnos a la época del Renacimien- tentes al anterior congreso es junio. Dada
to sería hablar de la Capilla Sixtina o La esta preferencia, este año SG’08 Conferen- Colaboradores
Gioconda pero, ¿qué relación hay entre las cia y Expo ya tiene fecha, no solamente eso; Rigoberto Calleja, Rajah James, Omar Gómez,
artes con la tecnología?. La respuesta es paralelamente a nuestro evento, se realizará Carlos Ortega, Charlie Macías, Elizabeth
sencilla, las nuevas tendencias en lengua- el PMTOUR México 2008, organizado por el Almeraz, José de J. Hernández, Karina Okón,
jes de programación están retomando lo PMI Capítulo México. La agenda de ponen- Ariel García, Tom Mochal, José L. Flores,
mejor de aquellos que sirvieron como base cias y talleres ya la pueden consultar en el Tomás Helou, Ernesto Reyes, Elena Ruelas,
para los lenguajes modernos. sitio web oficial: www.sg.com.mx/sg08 Miguel A. Morán, Ariel Ortiz.

Ventas
Este movimiento es similar al Renacimien- El equipo de SG está con miles de ocupa-
Claudia Perea, Natalia Sánchez
to en las Bellas Artes, no solamente porque ciones organizando el evento, para que por
marca un estilo, además señala el inicio de tercera vez consecutiva se realice con éxito. Marketing y RP
una nueva generación de opciones para El lugar ya es conocido por ustedes Hotel Dafne Vidal
aplicar los conocimientos aprendidos en Sheraton Centro Histórico, escuchando sus
las clases de estructuras de datos. Para propuestas, ahora arrancamos con dos días Circulación y Suscripciones
los jóvenes estudiantes, se les presenta la de tutoriales. Como pueden darse cuenta, Daniel Velázquez
oportunidad de aprender la sintaxis de los los cambios nacen de sus sugerencias, sin
nuevos lenguajes, para los profesionistas olvidar mencionarles que fue difícil escoger Administración
con cierta trayectoria en el medio, el reto las pláticas paralelas, llegaron propuestas Araceli Torres
de actualizarse y saber qué es lo que viene muy interesantes pero lamentablemente el
atrás de ellos. tiempo es poco. Gracias a todos aquellos Contacto
que se tomaron un tiempo para registrar su info@softwareguru.com.mx
+52 55 5239 5502
En este número invitamos a nuestros fieles propuesta de charla.
lectores, a conocer un poco más sobre este
renacimiento tecnológico y sus tendencias. En esta ocasión tendremos la grata presen-
Sin pasar por alto las columnas que se han cia de Terry Quatrani, Jon “Maddog” Hall y
vuelto un clásico en cada edición. Temas John Cupri, 3 grandes celebridades dentro SG Software Guru es una publicación trimestral
que hablan sobre la documentación de ar- de sus áreas de desarrollo profesional, y editada por Brainworx S.A. de C.V., Malinche no.
6, Col. El Parque, C.P. 53398, Naucalpan, México.
quitecturas, la locura que pasa un usuario para terminar la noche, relajar los nervios,
Queda prohibida la reproducción total o parcial
cuando tiene muchas cuentas de acceso descansar la mente y sacar al niño geek que del contenido sin previo aviso por escrito de los
para diferentes servicios, el framework de todos llevan dentro, el evento social estará editores. Todos los artículos son responsabilidad de
Rails y otros temas que sabemos serán de encabezado por una sesión de Rock Band. sus propios autores y no necesariamente reflejan el
punto de vista de la editorial. Reserva de Derechos
su completo agrado. al Uso Exclusivo: 04-2004-090212091400-102.
¡Nos vemos en SG’08 Conferencia y Expo! Certificado de licitud de título: 12999. Certificado
Tocando otros temas, mediante una encues- de licitud de contenido:10572. ISSN: 1870-0888.
Registro Postal: PP15-5106. Se imprimió en abril de
ta realizada en el sitio web, sabemos que la 2008 en El universal, Compañía Periodística Nacional.
fecha preferida por la mayoría de los asis- » Equipo Editorial Distribuido por Comercializadora Alieri y Sepomex.

02 MAY-JUL 2008 www.sg.com.mx


contenido
may-jul 2008

EN PORTADA
Lenguajes de Programación
Conozcamos los orígenes de los nuevos
paradigmas dentro de este campo.

Especial 18
Data Warehouse Multidimensional.

Productos
LO QUE VIENE 12
JBuilder 2008, WebSphere sMash,
Mingle 2.0 y Quest para Sharepoint.

Herramientas 14
Visual Studio 2008 Herramientas
de análisis y medición de código.

Columnas Prácticas
Tejiendo Nuestra Red 08 Tierra Libre 61 ARQUITECTURA 38
por Hanna Oktaba por Emilio Osorio Más allá del manual de usuario
Conozcamos los diferentes tipos de
Mejora Continua 10 Columna Invitada 62 documentación que debe considerar
por Luis Cuellar por Tomás Helou un arquitecto de software.

Prueba de Software 36 Cátedra y Más 64 PROGRAMACIÓN 42


por Luis Vinicio León por Raúl Trejo Aprendiendo Ruby y Rails
En la tercera parte del tutorial, se hablará
Tendencias en Software 60 sobre el framework de Rails.
por Luis Daniel Soto
PROCESOS 46
CMMI-SVC
En Cada Número Para todas aquellas empresas dedicadas
a los servicios, este nuevo modelo les será
Noticias y Eventos 04 INFRAESTRUCTURA 56 de gran ayuda en su desempeño.

FUNDAMENTOS 54 GADGETS 58 UML 48


SysML
Con esta notación, el modelado de los

24
sistemas se amplía al considerar no
solamente los componentes tipo Software.

PM CORNER 50
Entrevistas El valor de las oficinas de proyectos
Terry Quatrani Notemos el valor del lugar en el que
Jon “maddog“ Hall se desarrolla toda la planeación de un
John Crupi proyecto en curso.

www.sg.com.mx MAY-JUL 2008 03


// NOTICIAS

IMPACT 2008
La ciudad de Las Vegas fue sede de Impact 2008, la confe-
rencia anual que IBM realiza para usuarios de Websphere
a la cual asistieron más de 6 mil personas de todo el mun-
do. El tema central a lo largo del evento fue SOA, e IBM
dejó claro su liderazgo en este campo no solo en térmi-
nos de tecnología, sino también en cantidad de clientes.
Prueba de ello fueron las más de 250 sesiones impartidas
directamente por clientes de IBM que hablaron sobre su
experiencia con SOA, destacando las pláticas de empre-
sas como Harley Davidson, Aetna y United Airlines.

El slogan del evento fue “Smart SOA”, y el objetivo era


hacer ver que los tiempos del “¿Qué es SOA?” finalmen-
te están quedado atrás, y por fin estamos entrando en el
“¿Cómo aplicar SOA de forma efectiva?”.

Estamos con los Héroes


Bajo el lema “estamos con los héroes” se realizó el lanzamiento
en México de Visual Studio 2008, Windows Server 2008 y SQL
Server 2008. Durante varias semanas se realizó un tour por dis-
tintas ciudades del país, y el 17 de abril fue el evento en Ciudad
de México con más de 2 mil asistentes, así como la participación
del Hijo del Santo.

Las nuevas versiones de estos productos proveen un gran núme-


ro de mejoras y nuevas capacidades, orientadas a hacer realidad
la visión de Microsoft de “Software + Servicios”. En el caso de
Visual Studio, el énfasis está en el desarrollo de aplicaciones dis-
tribuidas, así como el aprovechamiento de nuevas tecnologías
como LINQ. Por su parte, tal parece que la principal fortaleza de
Windows Server 2008 estará en la facilidad que provee para el
manejo de virtualización.

PROSOFT 2.0
La Secretaría de Economía dio a conocer la segunda generación del Programa
para la Industria de Software (PROSOFT) bajo el nombre de PROSOFT 2.0. En-
tre las novedades está la creación de un nuevo programa denominado PRO-
MEDIA, el cual está dirigido a impulsar el sector de los medios interactivos.

De acuerdo con Sergio Carrera, Director General de Comercio Interior y Eco-


nomía Digital en Secretaría de Economía, la principal diferencia con PROSOFT
2.0 es que maneja un enfoque de mayor proactividad, especialmente en el
desarrollo de capital humano. En lugar de esperar a que se presenten las
oportunidades para entonces comenzar a desarrollar la gente, ahora la men-
talidad es primero generar la gente para que así lleguen las oportunidades.

04 MAY-JUL 2008 www.sg.com.mx


// noticias

Gartner Enterprise Integration Summit


Al igual que cada año, este mes de abril se celebró la Cumbre
de Integración Empresarial de Gartner, en la cual se analizan
las tendencias en cuanto a arquitecturas empresariales e in-
tegración de datos y aplicaciones. Los temas que dominaron
la conferencia fueron SOA, BPM y enterprise mashups.

De acuerdo con los analistas de Gartner, lo que ven en Méxi-


co es que estamos haciendo un gran énfasis en la gestión
de procesos (BPM), pero nos está costando trabajo habilitar
esto en el contexto de arquitecturas orientadas a servicios,
por lo cual estamos obteniendo beneficios marginales.

Mexico First Tendencias 2008 Conferencia Anual de


CANIETI y ANIEI, con el apoyo de Secre- El pasado 26 de febrero se llevó a cabo Administración de
taría de Economía han creado la iniciati- el evento Tendencias 2008: Arquitectura
va Mexico First. Esta es una asociación para organizaciones de alto desempe- Servicios de TI
civil operada por CANIETI cuya misión ño, durante el cual se identificaron las
es aumentar la cantidad de personas prácticas que los empresarios deben En el pasado mes de abril, en el WTC
certificadas en nuestro país, de forma adoptar para ser competitivos. Se brin- de la Ciudad de México, se realizaron
que nuestro recurso humano sea reco- dó a los asistentes la oportunidad de dos días de conferencias organizados
nocido globalmente como una excelen- participar en seis talleres de bench- por Pink Elephant. Los participantes
te opción para satisfacer las necesida- marking para identificar oportunidades tuvieron la oportunidad de intercam-
des de la industria de TI. e impulsar el desempeño de sus biar ideas, aprender e integrarse en
organizaciones. un medio ejecutivo. Las sesiones se
A grandes rasgos, lo que Mexico First dividieron en diferentes sectores: Ad-
hará es captar las necesidades de El cierre del evento estuvo a cargo ministración de TI Ejecutiva y Estraté-
certificación en TI de los diferentes del Dr. Ricardo Zermeño González, di- gica, reuniones informativas de ITIL,
estados, y unificar el poder de compra rector general de Select, quién en su Gobernabilidad, ¿Dónde comenzar a
para mejorar la calidad y el costo. Esto conferencia magistral señaló las opor- implementar ITIL?, Implementación
acelerará los proyectos que solicitan tunidades para un crecimiento com- de Herramientas y Tecnología. Cabe
Fondos PROSOFT para certificación petitivo en México, destacando que destacar que en dicho evento se hizo
de personal, ya que los beneficiarios no solo se requieren las conocidas re- la presentación de la primera certifi-
no tendrán que buscar proveedores y formas estructurales, sino también de cación en ISO 20000 en Latinoamé-
obtener cotizaciones, sino que Mexico una reforma empresarial llamándola: rica, este honor lo tuvo la empresa
First se encargará de esto. la reforma estructural olvidada. colombiana Compuredes.

Empresas recientemente evaluadas en CMMI:


Empresa Evaluación Fecha Lead Appraiser
Sinersys CMMI Nivel 3 marzo 2008 Alfredo Calvo, Itera
Ventus CMMI Nivel 3 marzo 2008 José Luis Iparraguirre, Itera
IDS CMMI Nivel 3 marzo 2008 Ernesto R. Corona, Liveware

www.sg.com.mx MAY-JUL 2008 05


// Eventos

14 al 15 de Mayo 2008 22 de Mayo 2008


IDC WebSec Conference 2008 PRONET Heroes Coatzacoalcos
Centro Banamex, Cd. de México Salón de la CANACO de Coatzacoalcos, Veracruz
Info: www.idc-eventos.com Info: www.microsoft.com/latam/estamosconlosheroes

14 al 16 de Mayo 2008
Expo Data Center 2008 18 al 19 de Junio 2008
Salón Olmeca, WTC, Cd. de México Gartner 4ª Annual Outsourcing Summit
Info: www.expodatacenter.com/expo2008 Centro Banamex, Cd. de México
Info: www.gartner.com/mx/outsourcing

17 de Mayo 2008
BugCON Security Conferences
Instituto Politécnico Nacional, Cd. De México 21 al 24 de Junio 2008
Info: www.zonartm.org/BugCON SG’08 Conferencia y Expo /
PMTOUR México 2008
Hotel Sheraton Centro Histórico
20 al 21 de Mayo 2008 Info: www.sg.com.mx/sg08
Information Security
WTC, Cd. de México
Info: www.informationsecurity.com.mx
24 al 25 de Junio 2008
Cutter
21 al 23 de Mayo 2008 Mastering Personal Agility for Executives
Sun Tech Days 2008 Hotel JW Marritott, Cd. de México
Centro Banamex, Cd. de México Info: www.cutter.com.mx
Info: www.suntechdays.com.mx

Infor Day México 2008 Circuito Tecnológico 2008


Infor realizó los pasados 14 y 15 de febrero, en las instalacio- Secretaría de Economía, mediante el PROSOFT, dió inicio al Cir-
nes del Hotel Sheraton Centro Histórico, el primer Infor Day cuito Tecnológico 2008, programa de capacitación que a través
en América Latina. Este evento, como parte de la serie Infor de la impartición de talleres y conferencias, tiene como objetivo
Day a nivel mundial, celebró el crecimiento de los clientes en hacer extensivo el conocimiento que Empresas, Organizaciones
México y norteamérica ofreciendo un foro interactivo para las y Gobierno involucrado con las TI, desean dar a conocer.
compañías interesadas en aprender más sobre la empresa y
sus soluciones. El 4 de marzo dió inicio con el seminario “Generación de Demanda”,
dirigido a desarrolladores y distribuidores de tecnología, revi-
Las sesiones estuvieron enfocadas en las soluciones de nego- sando temas como el rol del gerente de marketing y experien-
cios para varias industrias, incluyendo manufactura discreta, cias reales en la generación de demanda. Las conferencias
manufactura de proceso, minoristas, servicios y más. Los asis- estuvieron a cargo de Christian Zuili de ZUiLi University, Daniel
tentes tuvieron la oportunidad de aprender las mejores prácti- Hernández de ActionCOACH, y Ernesto Herrera López de HLO.
cas del medio a través de pláticas sobre la dirección de produc-
tos, casos de estudio de implementaciones innovadoras en voz El 11 de abrilse presentó el seminario “CMMI ACQ - Modelo para
directa de los clientes de Infor así como a las sesiones educati- la mejora en las áreas de Adquisiciones”, donde Carlos Pérez y
vas enfocadas en las soluciones que ofrece esta compañía. Mariana Pérez-Vargas, de la empresa Avantare, presentaron el
modelo y su método de evaluación. Como parte del programa,
El vicepresidente de Infor en México, comentó que estable- AMITI presentó una metodología para el apoyo de ventas de TI
ciendo este evento anualmente en nuestro país, se demues- a gobierno, y posteriormente se contó con una mesa redonda
tra el compromiso de la empresa para servir a sus clientes de sobre la problemática y perspectiva de las adquisiones.
Latinoamérica resaltando la etapa de crecimiento en este mercado.
Para conocer la agenda visita: www.software.net.mx/circuito

06 MAY-JUL 2008 www.sg.com.mx


www.sg.com.mx MAY-JUL 2008
// COLUMNA /*TEJIENDO NUESTRA RED*/

50 Años de la Computación en México


Manifiesto de REMIDEC

La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software,
Tecnologí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.

E l 8 de junio de 1958, gracias a las gestio-


nes del Ing. Sergio Beltrán, se inauguró el
un poco más de trabajo, pero finalmente lo
concretamos.
…las Ciencias de la Computación no han lo-
grado un reconocimiento que corresponda a
Centro de Cálculo Electrónico en la Facultad su importancia y características específicas,
de Ciencias, UNAM. Su primera computado- En esta columna quiero compartir con los ni entre las autoridades del ramo, ni en el
ra fue la IBM-650 de bulbos, con memoria lectores de SG los puntos más importantes resto de la comunidad científica. Aun con
de tambor magnético y con lectora y perfo- del Manifiesto de la Comunidad Científica el crecimiento importante de profesores in-
radora de tarjetas. Los primeros expertos de la Computación que empieza con el si- vestigadores en computación en los últimos
en manejarla fueron José Luís Otalengo y guiente preámbulo: 15 años, su número es insuficiente ante las
Artemio Taboada, mientras que Manuel Or- necesidades del país. No hay suficientes
tega fue su primer operador. Estos datos Hoy, México tiene un número importante de grupos con la masa crítica requerida, ni se
los tomé del artículo: “Primera Década de especialistas en Ciencias de la Computación dan suficientes apoyos para desarrollar pro-
la Computación en México: 1958-1968 Pri- con alta calificación. yectos con la magnitud y plazos adecuados
mera y Segunda parte”, escrito por Miguel M. para lograr el posicionamiento e impactos
Soriano L. y Christian Lemaitre, publicado en Juzgamos que si se da un esfuerzo concer- convenientes para el país.
Ciencia y Desarrollo, vol. 60 y 61, 1985. tado y una adecuada inversión por parte de
las autoridades y de las instituciones involu- En pocas palabras: somos relativamente
Pasaron 50 años y afortunadamente tene- cradas, estos especialistas pueden producir muchos, pero pulverizados. El mejor ejemplo
mos el programa PROSOFT, que tiene por mucha más investigación de primera calidad es la UNAM. Somos bastantes, pero rega-
objetivo fortalecer la industria de software con un mayor impacto para el desarrollo de dos entre múltiples instituciones de esta
en México. Como todos sabemos, para lo- México. enorme Universidad. En la propia Facultad
grar este objetivo se requiere de una cola- de Ciencias, cuna de la computación en
boración muy estrecha entre el gobierno, El documento cuenta con ocho páginas y su México, existe la carrera de Ciencias de la
la industria y la academia. El papel de la contenido está estructurado de la siguiente Computación, pero no el departamento con
academia, hasta este momento, se está manera: el mismo nombre, porque nuestros colegas
viendo principalmente como proveedor de biólogos, físicos y matemáticos consideran
recursos humanos sin apreciar lo suficien- i. ¿En qué consiste y por qué es importante hacer que todavía estamos “peques”.
te la parte de investigación como la fuente investigación en Ciencias de la Computación?
de innovación. ii. La necesidad de hacer investigación en Entonces, ¿qué hacer para cambiar esta si-
Ciencias de la Computación en México. tuación? Cito a continuación la propuesta de
El año pasado, el Dr. Christian Lemaitre de la iii. Barreras para el florecimiento de la inves- las principales líneas de acción:
UAM-Cuajimalpa, uno de los Decanos de la tigación y desarrollo de la computación en
computación en México, empezó a convocar México. 1. Establecer la investigación y desarrollo
a la comunidad académica para aprovechar iv. Líneas de acción claves para promover la en Ciencias de la Computación y las Tecno-
este aniversario y hablar de la importancia investigación en Ciencias de la Computación logías de Información como un área priori-
de fomentar la investigación en computación. en México. taria para el país. Esto se debe incluir en el
Como resultado, se ha conformado la Red Plan Nacional de Desarrollo, estableciendo
Mexicana de Investigación y Desarrollo en Creo que para los lectores, los primeros dos la necesidad de asignar recursos específicos
Computación (REMIDEC) cuyas primeras puntos no requieren de mayor explicación, para promover la investigación a mediano y
tareas fueron hacer el censo de los docto- por lo tanto voy a concentrarme en presen- largo plazo. También, es necesario recono-
res en computación en México y elaborar tar las barreras y las líneas de acción que se cer a las Ciencias de la Computación como
un manifiesto. El censo nos sorprendió a proponen. una especialidad en sí misma en todas las
nosotros mismos, ya somos más de 500 instancias académicas y gubernamentales,
doctores en diversas áreas de computación Con respecto a las barreras, cito la parte en particular en el Sistema Nacional de
en México. Elaborar el manifiesto nos costó más importante del manifiesto: Investigadores (SNI).

08 MAY-JUL 2008 www.sg.com.mx


“Hoy, México tiene un número importante de
especialistas en Ciencias de la Computación
con alta calificación”.

2. Contar con una masa crítica de investi- tigación ni para los propios investigadores. toriales, los organismos de evaluación, los
gadores y grupos de investigación de pri- Es deseable instituir mecanismos de finan- órganos de gobierno de las asociaciones, la
mera calidad. Para ello, es necesario hacer ciamiento que propicien la conformación de organización de eventos. Se debe fomentar
un esfuerzo en la formación de nuevos grupos sólidos orientados a la investigación que los grupos de investigación mexicanos
científicos, así como en la actualización de y desarrollo en las áreas prioritarias y con y las instituciones que los abriguen esta-
maestros, profesionales e investigadores una visión a largo plazo. Asímismo, deben blezcan relaciones y alianzas que permitan
consolidados. Se deben crear, además, las diseñarse mecanismos de asignación, eva- colaboración en distintos tipos de actividad
condiciones para atraer y retener investi- luación y seguimiento, así como incentivos con contrapartes de otros países. Estas co-
gadores de primera calidad y, sobre todo, que, en conjunto, impongan exigencias sen- laboraciones deberán considerar también
instituir las condiciones que les permitan satas y objetivas a investigadores e institu- aspectos de formación que incluyan becas,
trabajar de forma productiva. En particular, ciones: den pie a una evaluación pertinente visitas, estancias, dirección compartida de
se requieren, tanto la apertura de plazas y oportuna y constituyan, en suma, instru- tesis doctorales, cursos y proyectos bina-
para los nuevos investigadores que se están mentos para hacer eficiente la inversión. Es cionales y multinacionales. Será necesario
formando, como la existencia de esquemas indispensable contar con mecanismos de eva- diseñar estrategias específicas para impul-
atractivos para promover la contratación de luación y estímulos adecuados al dinamis- sar las relaciones con los países con los que
investigadores consolidados con interés en mo y características particulares del área. hay una historia exitosa de colaboración o
instalarse en México. con los que es importante tenerla, para for-
5. Establecer una estrategia de articulación talecer los vínculos con los investigadores
3. Consolidar los grupos de investigación. nacional. Esta articulación debe realizarse mexicanos establecidos en el extranjero,
No basta con la existencia de numerosos in- en distintos ámbitos. Hay que prestar aten- así como con asociaciones profesionales y
vestigadores en el país, es necesario contar ción a la integración de la investigación en organismos de promoción y coordinación
con grupos suficientemente grandes, com- Ciencias de la Computación con la docencia internacionales.
puestos por investigadores y estudiantes de por un lado y con la transferencia de tecno-
posgrado, que colaboren durante un tiempo logía por el otro, además de la integración Como pueden ver tenemos muchas asigna-
razonable y con adecuada especialización de los investigadores en esta área como una turas pendientes, que no se van a resolver
para alcanzar niveles de continuidad, pro- comunidad y su coordinación con las otras de la noche a la mañana, pero que bueno
ducción y calidad comparables a los de los comunidades científicas. Es necesario forta- que ya se formularon y pueden servirnos de
mejores grupos del mundo. Estos grupos se lecer la intervención de estos investigadores orientación en los esfuerzos de cada quien.
deben formar, por lo general, dentro de las en los distintos órganos de evaluación de la Hay que tocar muchas puertas de gobier-
distintas instituciones pero deberá fomen- actividad científica del país (como el CONA- no, de industria; medios de comunicación
tarse también la formación y consolidación CYT y el SNI), así como en los de política y las propias instituciones de investigación
de grupos multinstitucionales y la incorpo- científica (Academia Mexicana de Ciencias y y educativas. Hay que difundir, evangelizar
ración a éstos de investigadores que se en- el Foro Consultivo). Se deben consolidar los y convencer de que la mejora de la investi-
cuentren aislados temática o institucional- mecanismos de transferencia de tecnología gación en computación tiene un impacto di-
mente. Sin grupos estables y productivos, y capital de riesgo que permitan transferir recto en la formación de recursos humanos,
las capacidades de formación y transferen- para potenciar el producto de la investiga- éstos en la innovación de la industria de
cia de tecnología son disfuncionales. ción y desarrollo en ciencias de la computa- software y, en general, de la Tecnología de
ción y Tecnologías de Información. Información. Finalmente, todo esto se tradu-
4. Reordenar los mecanismos de financia- ce en el mejor bienestar de la sociedad en
miento y estímulo a la investigación. Para 6. Establecer una estrategia de vinculación su conjunto. Otros países ya lo entendieron
lograr los objetivos anteriores es necesario internacional. Es necesario fomentar la par- perfectamente desde hace tiempo, ahora le
contar con recursos previsibles suficientes, ticipación en redes internacionales de las toca a México.
cuya obtención y gestión no supongan una distintas especialidades con la colaboración » Hanna Oktaba
carga excesiva ni para los grupos de inves- de científicos mexicanos en los comités edi-

www.sg.com.mx MAY-JUL 2008 09


// COLUMNA /*MEJORA CONTINUA*/

Calidad
El camino hacia la renovación

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.

E n el número pasado hablábamos de generar algunas ideas de


apoyo para crear y darle seguimiento a sus planes para 2008. En esta
Tautologías y palabras mágicas
Cuántas veces hemos escuchado cosas como “el entrenamiento no
ocasión continuaremos con la segunda y última parte del artículo. es suficiente, se requiere gente con experiencia”, “somos una com-
pañía que cree en la más alta calidad”. Muchas veces los intentos de
Donde manda capitán, no gobierna marinero mejorar procesos se detienen cuando se nos colocan palabras de-
Una iniciativa de mejora continua solamente se puede implementar cuan- masiado grandes para poder hacer algo con ellas. Esto es tan común
do es apoyada por la dirección de la organización, para todos aquellos que a veces, ni siquiera nos damos cuenta que lo estamos haciendo,
que no cuentan con esta ayuda, temo decirles que lo anterior es absolu- por lo que siempre tenemos que estar al tanto de dichas expresiones
tamente cierto y hasta ahora nunca he visto una excepción a la regla. Sin dentro de toda la conversación, buscando aclarar qué es exactamente
los directivos, solamente tenemos dos posibles estrategias: lo que se quiere decir. Lo importante es que quede claro qué es lo
que se esta buscando resolver antes de solucionarlo.
1) Identificar a la persona o personas que sí crean en la mejora con-
tinua, y apoyarse en ellos para implementaciones. A veces lo mejor es Demasiado trabajo para atenderte
reducir el alcance de lo que queremos hacer para acelerar la implemen- Las organizaciones que trabajan con pocos estándares de calidad
tación, es muy probable que cuando otras personas vean lo que se ha siempre están de prisa, atrasadas y nunca tienen tiempo para alguien
logrado, entiendan mucho mejor por qué ellos también deben hacerlo. fuera del proyecto que les diga cómo hacer las cosas. Normalmente
tienen la idea de que si no estas físicamente con ellos, no entende-
2) Muchas veces no es que las personas no quieran mejorar su tra- rás los problemas y sólo les quitarás el tiempo. Esta es otra situación
bajo, simplemente no entienden qué es lo que deben hacer o cómo difícil de resolver, muchas veces lo ideal es dejar a un lado nuestros
es qué mejorar les conviene, siempre se debe de vislumbrar el rol de planes de certificación y enfocarnos en resolver los problemas de los
un agente de cambio como un educador. El trabajo muchas veces no proyectos. Lograr masa crítica con otros y después regresar a nuestro
es sólo ayudar a mejorar, es enseñar cómo hacerlo. objetivo inicial. Debemos tener presente que si solo nos compromete-
mos a un proyecto, los demás quedan desatendidos; hay que buscar
Los Cañones de Navaron el balance. También debemos tener mucho cuidado de no absorber-
En los años setenta salió en los cines una película llamada Los Caño- nos por completo en las tareas diarias y perder el objetivo.
nes de Navaron, la cual habla de un equipo especial en la Segunda
Guerra Mundial con la misión de destruir una barrera de tanques Demasiado entrenamiento
estratégicamente colocados para que la marina no pudiera entrar y Al implementar un plan de calidad, la cantidad de entrenamiento
atacar. Cuando vi esta película me recordó otra historia: una orga- que se requiere, normalmente es el problema principal. Se espera
nización que trataba de hacer un cambio y los participantes, al ser que los ingenieros de software y lleguen entrenados para hacer lo
auditados, mencionaron que necesitaban capacitación para apren- que tienen que hacer. Se entrenen en ratos libres o al no estar asig-
der; durante el curso mencionaron que requerían de los templates nados en algún proyecto. Y el entrenamiento normalmente se enfoca
adecuados, después de eso solicitaron los checklists para llenar los en lenguajes de programación o técnicas de ingeniería de software.
templates, después requerían ejemplos de cómo llenar los templa- Al implementar una serie de procesos en una organización, es im-
tes, finalmente al terminarlos, había pasado tanto tiempo que los portante tomar en cuenta que para todo proceso se debe entrenar
ingenieros solicitaron que se les diera un curso para poder aprender. a todos los involucrados, cuando ingresan a la compañía o cuando
Suena divertido, ¿no? cambian su rol de trabajo. Se requiere tener un claro plan de en-
trenamiento por lo que es importante conocer sobre sus técnicas,
Pero este es un problema sumamente común, sobre todo cuando modelos y cualquier cosa que nos permite hacerlo más flexible y
no se incluye a las personas al definir los procesos, y es una trampa efectivo. Adicionalmente, la rotación es el enemigo número uno del
muy difícil de brincar sin ayuda de la dirección de la compañía. A entrenamiento. Es importante mantener la rotación al mínimo.
fin de cuentas a lo que se tiene que llegar es a un compromiso por
parte de los involucrados, es decir, tenemos que llegar a un punto en Espero que todo esto les ayude con su planeación y la ejecución de
donde se pueda decir: “yo me comprometo a darte esto, a cambio de sus planes, a trabajar. Hagamos de 2008 el año del cambio.
que tú te comprometas a hacerlo”.
» Luis R. Cuellar

10 MAY-JUL 2008 www.sg.com.mx


www.sg.com.mx MAY-JUL 2008
// PRODUCTOS /* LO QUE VIENE*/

Websphere sMash
IBM le entra a los mashups

JBuilder 2008
Llegan los Application Factories IBM anunció el lanzamiento de WebSphere sMash, una
plataforma para el desarrollo y ejecución de mashups.
sMash es la versión comercial del proyecto de incuba-
CodeGear anunció la disponibilidad de la versión 2008 de JBuil- ción denominado Project Zero, el cual seguirá disponible
der, la cual incorpora soporte para una estrategia de desarrollo de forma gratuita para desarrolladores.
denominada Application Factories. Este concepto es bastante in-
teresante. Básicamente, parte del entendimiento de que la ma- Junto con sMash también se lanzará el IBM Mashup Cen-
yoría de las aplicaciones que desarrollamos actualmente no se ter, que es un repositorio de mashups donde los usua-
hacen desde cero, sino que partimos de una base de aplicaciones rios no técnicos podrán fácilmente escoger y utilizar
existentes (ya sean internas, de software libre, o componentes widgets por medio de drag and drop para ensamblar sus
comerciales). Entonces, lo que se hace a través de los Applica- propios mashups.
tion Factories es capturar estas modificaciones o ajustes a códi-
go existente y describirlas como metadatos independientes de sMash estará disponible en junio de 2008, y se espera
un lenguaje de programación. Posteriormente se pueden tomar que en el segundo semestre del año, también se ofrezca
estos metadatos y aplicarlos a una base de código diferente, e un servicio de hosting donde se puedan ejecutar aplica-
incluso capturar cambios adicionales. En pocas palabras, lo que ciones de Project Zero. Otra innovación que se espera
se está haciendo es “civililizar” el proceso de tomar código que próximamente como parte de esta plataforma es un IDE
ya tenemos y ajustarlo a nuestras necesidades. 100% en web para desarrollo de mashups.

Desde su separación de Borland, CodeGear ha buscado distinguir- Más información en www.projectzero.org y


se como una empresa que conoce a los desarrolladores y les da www-306.ibm.com/software/webservers/smash
las herramientas que realmente necesitan. Tal parece que JBuilder
2008 con Application Factories es una excelente prueba de esto.

Más información en www.codegear.com Thought Works


Mingle

Mingle es una herramienta web para colaboración y


administración de proyectos. Mingle es un producto de
Quest Thoughtworks, una de las empresas más reconocidas in-
Nuevas Herramientas para Sharepoint ternacionalmente en el área de consultoría y desarrollo
con metodologías ágiles. Es así que Mingle está dise-
ñado para soportar las características de los proyectos
Sharepoint ha cobrado gran popularidad en los últimos de software modernos, tales como desarrollo iterativo e
años. De acuerdo con Gartner, el 80% de las organiza- incremental, y equipos con miembros distribuidos geo-
ciones utilizarán Sharepoint para el año 2010. Sin embar- gráficamente.
go, solo el 40% lo utilizarán efectivamente. Con esto en
mente, Quest Software ha desarrollado un conjunto de Recientemente fue liberada la versión 2.0 de Mingle, y
herramientas que facilitan y mejoran distintos aspectos entre sus capacidades más llamativas están el mane-
relacionados con Sharepoint, tales como la migración de jo de historias de usuarios, wikis para la colaboración
información, desarrollo e integración de aplicaciones, y entre desarrolladores, alertas por RSS y dashboards
gestión de la base de datos. para visualizar el estatus del proyecto. Pero lo mejor de
Mingle es que es gratis para equipos con 5 usuarios o
Entre los nuevos productos hay una herramienta para menos. Así que si tienes un proyecto de software donde
migración de Notes a Sharepoint, otra para desarrollo de el equipo está distribuido y andas buscando una herra-
aplicaciones Sharepoint, y otra para migración de archivos mienta para colaborar y organizar el proyecto, Mingle es
desde carpetas públicas. una excelente opción.

Más información en www.quest.com Más información en studios.thoughtworks.com

12 MAY-JUL 2008 www.sg.com.mx


www.sg.com.mx publicidad
MAY-JUL 2008
// PRODUCTOS /*HERRAMIENTAS*/

Análisis y Medición de Código Administrado


con Visual Studio® 2008
Caso Database Commander y SQL Buddy
Por Rigoberto Calleja Cervantes y Rajah James

nuevamente o probados con mayor profundidad. Asimismo, pueden


En este trabajo se presentan los resultados de una prueba rea- identificar riesgos, entender mejor el estado actual del proyecto y
lizada con las herramientas de análisis y medición de código dar seguimiento al progreso del mismo. Sin embargo, estas métricas
administrado de Visual Studio® 2008. El análisis se aplicó a no sirven a menos que tengan sentido para la persona que las está
dos piezas de código abierto: Database Commander y SQL usando, en este caso el desarrollador, por lo que a continuación se
Buddy, que están enfocadas a crear un entorno para acceder a presenta una breve descripción del significado de algunas de las cinco
diversos backends de bases de datos, y se describen los datos métricas ofrecidas por las herramientas.
cualitativos obtenidos acerca de qué tan fácil se instalan las
herramientas para analizar los proyectos designados y qué tan • Acoplamiento de clases. Indica el número total de dependencias
rápido se encuentran errores empleándolas. de otros tipos que un determinado nivel tiene. Este número no inclu-
ye tipos primitivos o incorporados, tales como int32, object o string,
y cuando es mayor, aumenta la probabilidad que los cambios reali-
Herramientas de análisis de código zados en otros tipos se propaguen al elemento que está siendo ana-
Las herramientas de análisis llevan a cabo diversas verificaciones lizado. Un valor más bajo de acoplamiento de clases generalmente
para determinar la presencia de defectos en el código, analizando indica un candidato para reutilización.
los ensamblados y reportando cierta información acerca de aqué-
llos, tal como violaciones de reglas de programación y diseño, es- • Complejidad ciclomática. Mide el número total de rutas individuales
tablecidas en los lineamientos de diseño del .NET Framework. Estas a lo largo del código en cada nivel, y se calcula contando el número ra-
herramientas representan las verificaciones que se llevan a cabo du- mas (tales como switch, foreach y ciclos for) más uno. Esta métrica ge-
rante el análisis como advertencias. Los mensajes de advertencias neralmente es una buena indicación del número de pruebas unitarias
identifican cualquier problema de diseño o programación relevante que se requerirán para obtener una completa cobertura del código.
y cuando es posible, dan información acerca de cómo corregirlo.
• Índice de facilidad de mantenimiento. Es un número que va de 0
Las advertencias antes mencionadas indican violaciones de reglas a 100, se calcula para cada miembro y nivel de tipo, e indica su faci-
en bibliotecas de código administrado y están organizadas en una lidad de mantenimiento en general. Se calcula en base a otras mé-
serie de áreas tales como diseño, desempeño, seguridad, etcétera. tricas incluyendo la complejidad ciclomática y el número de líneas
Este tipo de herramientas tienen la capacidad de permitir al usuario de código, e incluye un indicador icónico. Un número menor indica
indicar que una determinada advertencia no es aplicable, con lo cual que el código es complejo y difícil de darle mantenimiento. El rango
se informa a los desarrolladores, a quienes revisen el código poste- menor, 0-9, muestra un círculo rojo, mientras que el rango interme-
riormente que esa advertencia ya fue investigada. dio, 10-19, muestra un triángulo amarillo y por último, una caja verde
indica alta facilidad de mantenimiento con valores entre 20 y 100.
Finalmente, permiten que uno se asegure de que el código que esta
siendo protegido esté limpio, mediante el establecimiento de una Instalación de Visual Studio® 2008 Team Suite
política de protección que requiera que el análisis de código sea eje- Después de descargar la versión de evaluación por 90 días de la Visual
cutado; de esta manera solamente se podrá proteger una pieza de Studio® 2008 Team Suite, se inicia el proceso de instalación. En vir-
código. Si ésta pasó exitosamente aquél. tud de que se quiso hacer el proceso de instalación lo más ligero y
ágil posible, se seleccionaron solamente aquellas opciones que eran
Herramientas de medición de código absolutamente necesarias para que las herramientas de análisis y
Las herramientas de medición son empleadas para generar métri- medición de código funcionaran sobre proyectos de C#. Sin embar-
cas del código, referentes a su complejidad y la facilidad para darle go, el proceso de instalación tuvo problemas, la instalación del .NET
mantenimiento, que permiten a los programadores entender mejor Framework versión 3.5 falló. La bitácora de instalación no propor-
lo que están desarrollando. Al emplear las métricas, los desarrolla- cionó suficiente información para determinar cuál era el problema,
dores pueden entender qué tipos y/o métodos deben ser escritos probablemente hubo un conflicto entre el mencionado componente
y otro no identificado que ya estaba instalado en el equipo. La solu-

Rigoberto Calleja Cervantes (rcervant@andrew.cmu.edu) tiene cuatro años de experiencia como consultor en ingeniería de software, impartiendo cursos y
participando en proyectos de adopción de herramientas de gestión del ciclo de vida de desarrollo de software. Rigoberto tiene un posgrado en ingeniería de
software de la Universidad Carnegie Mellon.

14 MAY-JUL 2008 www.sg.com.mx


ción fue crear una máquina virtual desde cero instalando únicamente cuales era crítico. Por ejemplo: la imposibilidad de respaldar archi-
el sistema operativo y Visual Studio®. vos con extensión .MDX era un error trivial, ya que esta clase de ar-
chivos constituyen un tipo de base de datos.

Después de la conversión, intentamos compilar el proyecto, para lo cual


fue necesario compilar un proyecto dependiente (que estaba incluido
en el código fuente, pero no en la solución) que proveía un control para
la aplicación. Una vez que concluimos lo anterior, fuimos capaces de
compilar el código fuente en Visual Studio® 2008 por primera vez.

Ya con el proyecto cargado, intentamos invocar el análisis. En base a una


entrada de blog que identificamos, sabíamos que era necesario intentar
obtener primero las métricas de código. A pesar de que en un principio no
entendimos por completo el significado de las métricas, fue gratificante
observar que los resultados se produjeron muy fácil y rápidamente. El
hecho de que todos los proyectos se hayan mostrado en color verde nos
Figura 1. Opciones de instalación de la Visual Studio Team Suite. transmitió confianza acerca del estado del código fuente.

El proceso de instalación de la documentación fue sencillo, bastó


con invocar un asistente de instalación por separado.

Database Commander
Después de descargar el código fuente del DBCommander, en-
contramos varios problemas. En virtud de que el código fuente del
DBcommander no fue escrito originalmente con Visual Studio® 2008,
fue necesario invocar el asistente de conversión de soluciones que
viene incluido. Lo anterior produjo algunos errores, ninguno de los Figura 2. Métricas del código del Database Commander.

www.sg.com.mx MAY-JUL 2008


//PRODUCTOS /*HERRAMIENTAS*/

Cuando miramos las métricas en Visual Studio® 2008, se nos difi- La solución está compuesta de dos proyectos: el principal y el de
cultó un poco entender exactamente qué significaban, partiendo del instalación. Después de realizar la conversión de la solución elimina-
hecho de que se presentan como un árbol, en donde el nivel del pro- mos el proyecto de instalación ya que no era de interés. Una vez he-
yecto constituye la raíz, y cada nivel de éste puede representar un cho lo anterior fuimos capaces de compilar el código fuente en Visual
tipo diferente. Es decir, las métricas tienen un significado diferente Studio® 2008 por primera vez.
en función al tipo de un nivel en particular.
Para calcular las métricas de código simplemente accedimos al menú
Posteriormente probamos el análisis de código. Esta función está analizar y seleccionamos la opción “Calcular Métricas de Código para
disponible seleccionando el proyecto de inicio en el explorador de SQL Buddy”. La ventana de métricas de código muestra los datos
proyectos y la opción “Ejecutar Análisis de Código” del menú de que son generados por el análisis. Decidimos enfocarnos exclusiva-
análisis. De esta manera se ejecuta el análisis que verifica el código mente en el índice de facilidad de mantenimiento para el proyecto.
contra los lineamientos de diseño de Microsoft que mencionamos
anteriormente. ¡Este análisis generó 159 advertencias! Sólo toman- Recordemos qué, un icono verde indicia un grado relativamente
do en cuenta el proyecto de arranque. Sin embargo, nos tranquilizó alto de facilidad de mantenimiento, mientras un icono amarillo in-
el hecho de que no se encontraron errores. Después de ejecutar el dica un grado moderado de facilidad de mantenimiento, por último,
mismo análisis en cada uno de los otros dos proyectos, obtuvimos que un icono rojo indica baja facilidad de mantenimiento y un área
un total de 509 advertencias. potencialmente problemática. Los resultados del índice de facilidad
de mantenimiento indican que el código fuente del SQL Buddy tie-
La primera advertencia se debía a que el nombre de un ensambla- ne relativamente un alto grado de facilidad de mantenimiento y no
do estaba mal escrito. Al hacer clic derecho sobre el error se nos contiene áreas que puedan ser problemáticas. Antes de analizar el
permitió seleccionar la opción mostrar Ayuda del Error. Lo anterior código del proyecto decidimos activar únicamente la categoría de
nos proporcionó una descripción acerca de cómo corregir la adver- reglas de nomenclatura.
tencia, lo que involucró agregar la palabra mal escrita al diccionario
personalizado contra el cual se realizan las verificaciones. El diccio-
nario personalizado es un archivo llamado CustomDictionary.xml. En
el ejemplo de la ayuda, fue interesante ver que el archivo todavía
tiene referencias al sitio anterior de FXCop. Todo este proceso nos
pareció incómodo. Lo que esperábamos era encontrar una opción
que nos permitiera agregar una palabra directamente al diccionario
personalizado.

SQL Buddy
Tal y como ocurre en el caso del DBCommander, el código fuente
de SQL Buddy no fue escrito empleando Visual Studio® 2008, de
modo que fue necesario hacer una conversión. Afortunadamente, el
proceso de conversión se inició automáticamente cuando abrimos la Figura 4. Selección de categorías de reglas para el análisis de SQL Buddy.
solución de SQL Buddy la primera vez y concluyó sin errores.
La ejecución del análisis de código fue una operación muy intuitiva,
desde el menú analizar seleccionamos la opción “Ejecutar el Análisis
de Código en SQL Buddy”. Después de que el análisis fue concluido,
la ventana lista de errores fue desplegada mostrando todas las ad-
vertencias. Esa ventana incluye la descripción de la alerta, el archivo
y el número de línea donde está localizada.

Al dar doble clic sobre ésta, se mostró el archivo y la línea de código


que contiene el problema. El análisis produjo 297 advertencias. Con-
sideramos que este es un número alto de advertencias, tomando en
cuenta el hecho de que la cantidad de código fuente de SQL Buddy es
relativamente pequeña. A partir de estos resultados pudimos concluir
que el código fuente tiene un bajo nivel de apego a las reglas de no-
Figura 3. Reporte de conversión del código de SQL Buddy. menclatura de los lineamientos de diseño del .NET Framework.

Rajah James (rjames@andrew.cmu.edu) es ingeniero senior en Yellowstone Hotel Systems y está trabajando en la última versión de su software principal
OpenBook; antes trabajó durante seis años para Rockwell Software y Rockwell Automation, donde estuvo involucrado con sus soluciones de manufactura e
integración empresarial basadas en .NET. Rajah tiene un posgrado en ingeniería de software de la Universidad Carnegie Mellon.

16 MAY-JUL 2008 www.sg.com.mx


Las herramientas de análisis de código inclu-
yen información detallada acerca de cada ad- proyectos fue automática. Encontra-
vertencia incluyendo: el código específico que mos y corregimos advertencias sobre
provoca su generación, una descripción de reglas de nomenclatura en los espa-
los problemas detrás de la advertencia, una cios de nombres del código fuente de
explicación de cómo cambiar el código fuente SQL Buddy. Por último, éstas pueden
para satisfacer la regla y prevenir que se ge- hacer una excelente combinación con
nere además de, una descripción de cuándo las herramientas de pruebas unitarias,
es conveniente suprimir una advertencia. ya que soportan el establecimiento de
una política de protección de código.
Para mirar esta información hicimos clic de-
recho en una advertencia y seleccionamos Por otro lado, las herramientas de aná-
la opción “Mostrar Ayuda del Error”. Gracias lisis y medición de código únicamente
a esta información, la tarea de entender el pueden ser aplicadas a ensamblados
significado de las advertencias fue muy fácil. administrados, lo cual constituye una
Por otro lado notamos que un número peque- limitación importante ya que no pue-
ño de las primeras advertencias en la lista den procesar código producido en
tenían valores en blanco para el archivo y el otros lenguajes predominantes tales
número de línea. Al principio no entendimos como C++ o Java. Las herramientas de
porqué, sin embargo posteriormente descu- Visual Studio® 2008 están empotra-
brimos que el problema estaba relacionado das en el entorno de Visual Studio® la
con varios archivos. Las advertencias antes cual es un producto grande y comple-
mencionadas estaban relacionadas con el jo que en ocasiones puede ser difícil
uso de letras mayúsculas y minúsculas en el de instalar. Llevar a cabo la selección
nombre de algunos espacios de nombres. de un subconjunto de alertas relevan-
tes para un proyecto en particular no
Después de analizar las explicaciones deta- es una tarea trivial ya que requiere
lladas de estas advertencias y el código fuen- conocimiento de los lineamientos de
te, llegamos a la conclusión de que estas eran diseño de la compañía que los produ-
válidas y decidimos corregirlas, para hacerlo ce. Asimismo, no existe la noción de
empleamos la capacidad de refactorización severidad dentro de las advertencias
del entorno. Finalmente, ejecutamos el aná- obtenidas que pueda ayudar al desa-
lisis de código nuevamente y verificamos que rrollador a decidir por dónde comenzar
las advertencias ya no aparecieran. En este a corregir las advertencias.
caso encontramos que el proceso fue fácil y
las capacidades del entorno que empleamos Por último, las herramientas de aná-
resultaron ser muy intuitivas. lisis de Visual Studio® 2008 son por
mucho las más fáciles de instalar de
todas las que hemos usado hasta el
Conclusión momento. De modo que, en depen-
Estas herramientas son intuitivas y fá- dencia de cuáles atributos de calidad
ciles de usar. La realización de la ma- estés tratando de dar seguimiento y
yoría de las operaciones básicas tales mejorar en su proyecto, la suite puede
como iniciar un análisis, mirar sus re- ser de mucha utilidad.
sultados, encontrar el código que tie-
ne el problema y corregirlo, fue sen-
cilla. La documentación del producto Referencias:
es muy abundante lo cual facilita el [blogs.msdn.com/fxcop/archive/2007/10/03/
entendimiento de las advertencias. La new-for-visual-studio-2008-code-metrics.aspx]
funcionalidad de métricas de código
es muy poderosa, porque permitió te- [ dbcommander.sourceforge.net]
ner un panorama claro acerca del nivel
de facilidad de mantenimiento del códi- [msdn2.microsoft.com/en-us/library/
go fuente, a pesar de que no estábamos czefa0ke(VS.71).aspx]
familiarizados con él. Adicionalmente,
estas herramientas no requieren prác- [msdn2.microsoft.com/en-us/vstudio/
ticamente ningún tipo de configura- products/aa700831.aspx]
ción. Asimismo la conversión de los
[sqlbuddy.sourceforge.net]

www.sg.com.mx MAY-JUL 2008


Consideraciones Para Migrar un Modelo
de Data Warehouse Multidimensional
El Almacenamiento de Datos en las Empresas
Por Ernesto Ulianov Reyes Romero

E l presente artículo pretende guiar al lector en las consideraciones


que tiene que seguir para migrar de Data Warehouse como una so-
lución para el análisis de la información financiera, el ejemplo esta
referido para una empresa de Telecomunicaciones dedicada a ofre-
cer equipo y servicios de telefonía celular.
~: Antecedentes :~

18 MAY-JUL 2008 www.sg.com.mx


~: Antecedentes :~ Por los motivos anteriores, se deben plantear las siguientes interro-
gantes: ¿El modelo satisface la necesidad creciente del manejo de
Las empresas en el mercado de las Telecomunicaciones que información que se tiene actualmente? ¿Se tiene una plataforma acor-
actualmente es un medio muy dinámico y competitivo, deben de a las necesidades actuales del Data Warehouse? ¿Se tiene una efi-
considerar mejores estrategias comerciales que estén basa- ciente extracción de la información para el análisis financiero de forma
das en capturar y retener a los clientes más rentables, siendo que esté disponible para las diferentes áreas de la compañía?
ellos la mayoría de las veces los de mayor consumo. Las es-
trategias tradicionales de ventas y comercialización son desa- De estos tres cuestionamientos esenciales se determina que se
fiadas por estas características del mercado: necesita plantear una solución a las necesidades actuales del
Data Warehouse.
• La explosión de tecnología de comunicaciones ha cambiado
rápidamente los tipos de ofertas de servicio disponibles. Hoy ~: Propósito de Desarrollo de un Data Warehouse:~
se cuenta con tecnologías de comunicación inalámbricas que
ofrecen capacidades de transmisión suficiente como para El propósito en el desarrollo de este tipo de modelos es encontrar
ofrecer servicios tradicionales de voz, TV On Demand, trans- uno que represente una solución al problema y permita hacer la
misión de datos e Internet móvil en un mismo canal. migración del actual a un modelo multidimensional en una plata-
• La variedad en ofertas y precios ha llevado el poder de compra al forma tecnológica que soporte la estructura que se tiene actual-
consumidor que cada vez exige mayor valor a un menor precio. mente y que pueda crecer, ocupando herramientas orientadas a
• Las decisiones de lealtad, están volviéndose rápidamente a la consulta de grandes volúmenes de información histórica, pro-
ser manejadas por el valor. cesamiento masivo de información, con estructuras dinámicas y
• Las empresas están cada vez más enfocadas en la captura y abundantes cambios.
retención de clientes más rentables lo que implica detectar a
tiempo estas oportunidades. Se debe elaborar un modelo de Data Warehouse acorde al negocio
de las Telecomunicaciones, creando los métodos de carga de infor-
~: Descripción del problema :~ mación diaria así como su extracción para generar niveles de agre-
gación de la información financiera del comportamiento del negocio
Se deben exponer la problemática dadas las características que permita al equipo de analistas de la compañía, estudiar todo
actuales del Data Warehouse y algunas de las razones del por aquello que le permita conocer como están las ventas de sus pro-
qué se requiere hacer este proyecto (migración): ductos y servicios, a través del tiempo y visualizar que ocurre con los
movimientos de las terminales, estatus en cuanto a servicios, planes
1. Se debe visualizar si se requiere migrar tanto de modelo tarifarios, promociones, etcétera.
como la información para tener una mejor integridad de ésta
y que sea más ágil la carga diaria de la información. ~: Particulares del Proyecto de Data Warehouse :~
2. El modelo debe soportar la estructura actual del Data
Warehouse con la posibilidad de darle un crecimiento a Para tal fin se deben plantear los siguientes objetivos particulares:
nuevos nichos de información por la creación de nuevos • Implantar un modelo de datos conforme a los requerimientos de in-
servicios que ofrece la compañía. formación y análisis definidos por la empresa de la industria de teleco-
3. Hacer más eficiente y versátil la extracción de la informa- municaciones.
ción para su análisis. • Utilizar una herramienta de extracción y administración de datos,
4. Se requiere de mejores indicadores que le den infor- como puede ser la plataforma de Oracle Warehouse Builder para el
mación puntual a los directivos de cuáles son los productos y Proceso de Adquisición y Transformación de datos.
servicios que están funcionando. • Utilizar herramientas de explotación de datos, para ser empleadas
5. Este tipo de proyectos requiere de la experiencia de un Lí- por los ejecutivos de negocio de la compañía.
der de Proyecto que conozca de Bases de Datos y que tenga • Desarrollar los ambientes de datos significativos para realizar
conocmiento en la elaboración de procesos mediante Proce- pruebas de funcionalidad de los procesos de extracción de datos.
dimientos Almacenados (SP) y la Extracción Transformación y • Estudiar los patrones de ingreso por el tipo de tráfico, así como su com-
Carga (ETL). Además requiere de la experiencia en el negocio portamiento en cuanto a saldos y abonos de tiempo aire realizados.
de la telefonía celular y el análisis financiero que se hace
de los productos y servicios que ofrecen las compañías de ~: Justificación del Data Warehouse :~
Telecomunicaciones, así como la obtención de los indica-
dores que evalúan para el análisis financiero. Para cualquier compañía, la conveniencia de tener un gran depósito
6. Su crecimiento requiere de un modelo más acorde al vo- de información histórica es de suma importancia y sobre todo si esta
lumen de información que se está manejando, por lo que se información es la financiera, de donde pueden hacer un análisis del
cuestiona si el modelo actual y la plataforma actual sopor- comportamiento de ventas y costos de operación de sus productos
tarán el crecimiento de toda la información que proporcionan o servicios.Las compañías de Telecomunicaciones no son la excep-
las diferentes áreas de la compañía. ción, especialmente dada la feroz competencia que se está dando
en este segmento.

www.sg.com.mx MAY-JUL 2008 19


En primera instancia lo que se pretende es En la Base de Datos SQL Server por cada En la figura 1, se muestra un diagrama des-
mejorar el modelo del Data Warehouse para tipo de información se tiene una base de da- criptivo del modelo, en donde la zona mar-
migrar el contenido de la información utili- tos, de la cual no se tiene el control de los cada como la 2, es fundamentalmente la
zando uno nuevo que permita tener el cre- espacios ocupados en disco y no permitía Meta Data Técnica y la Meta Data Funcional
cimiento de los datos que requiere la com- su fácil acceso a pesar de estar partida en esta ligada a la zona 1 y 3 que conforman
pañía y acrecentar la información financiera entidades por mes de información. Además toda la estructura del modelo en términos
para saber cómo está operando día con día. no se contaba con niveles de agregación y del negocio.
siempre que se requería obtener informa-
Entre mejor y más oportuno sea el análisis ción se necesitaba obtener del detalle el El empleo de una plantilla para la implanta-
de la información se podrá encontrar de ma- nuevo consolidado, que por necesidades de ción a partir de un modelo que establece la
nera más oportuna los errores o fallas en los la empresa, se ocupan y se van almacenan- relación entre los clientes y el negocio y po-
que se está incurriendo con el fin de mejorar do en las diferentes bases de datos. der realizar el análisis del comportamiento,
el ofrecimiento de un bien o servicio que se permitirá representar y analizar de manera
le esta brindando al usuario por un costo Para poder instrumentar el modelo, se homogénea a los clientes, cuentas y las ter-
más competitivo de lo que ofrece el merca- plantea que la Meta Data (depósito de gran minales de la compañía, ya se traten de Cor-
do, redundado en mejoras tecnológicas de volumen de información) se basará en los si- poraciones, PyME’s o personas físicas.
comunicación para ofrecer mejores produc- guientes aspectos:
tos y servicios al alcance de otros sectores Aunque pueda definirse de manera concep-
de la población en general. • Metadata Funcional. Modelo de acceso tual la representación de los clientes de los
de datos, que traduce las definiciones de distintos tipos de servicios ofrecidos, la im-
Poder tener un mejor modelo para el Data la estructura física de la base de datos en plantación se debe acotar, por ejemplo a las
Warehouse resuelve en primera instancia términos del negocio que son entendidos y terminales del servicio de prepago, donde los
una problemática de la compañía que im- empleados fácilmente por los analistas de la aspectos que pueden ser estudiados son:
pacta de manera mas amplia a la operación compañía. - Ingresos por tráfico.
general de ésta y a los beneficios que se le - Activaciones de terminales.
puede ofrecer al usuario final. El modelo de • Metadata Técnica. Control y monitoreo de - Movimientos de terminales.
Data Warehouse que se vincula con las par- los procesos de Extracción, Transformación y - Abonos de tiempo aire.
ticularidades de la información financiera Carga (ETL) de la solución (desde el área tem- - Comportamiento del saldo de terminales.
que es utilizada por la compañía de Teleco- poral de archivos o fuentes de información - Política saldo cero (estatus de una terminal
municaciones, es la aportación tecnológica hasta las estructuras del Data Warehouse de después de sesenta días de tener saldo cero
que se ofrece para optimizar el análisis fi- la compañía), así como el manejo de errores. y no haber abonado tiempo aire).
nanciero de la compañía.

Se trabajó en un proyecto donde el Data


Warehouse de una compañía de telefonía
celular se encontraba en una Base de Datos
de SQL Server, donde no había propiamen-
te un modelo y no cumplía con una relación
entre sus entidades, es decir, no existía un
modelo entidad-relación. Aunque existían
algunos catálogos, no se ocupaban para di-
mensionar el detalle de toda la información
financiera que se tenía cargada.

Se pensó en considerar la plataforma tec-


nológica de Oracle 10g para almacenar la
información por tener un motor de bases
de datos más eficaz, su métodos de bús-
queda son más ágiles y por tener la capa-
cidad de hacer modificaciones cuando la
Base de Datos esta operando.
Figura 1. Diagrama descriptivo de un modelo de Data Warehouse.

Ernesto Ulianov Reyes Romero, es Maestro en Ciencias de la Computación egresado de la Fundación Arturo Rosenblueth. Profesor de Tiempo Completo de
la Universidad Politécnica de San Luís Potosí y Consultor de Grupo Bizcorp. Por la experiencia como Líder de Proyecto, DBA, Analista y Diseñador se elaboro un
Modelo de Migración de Información a un Data Warehouse Multidimensional para una empresa de Telecomunicaciones. Debido a la relevancia del Proyecto de DW
se desarrollaron habilidades directivas proporcionando información ejecutiva para análisis financieros del negocio, mediante BI.

20 MAY-JUL 2008 www.sg.com.mx


- Churn (estatus de una terminal que esta en • Metadata Técnica. Apoyará el control y El planteamiento de dicha arquitectura
política de saldo cero y que no tiene tráfico monitoreo de los procesos de Extracción, contempla en su proceso tres fases impor-
entrante, es decir, no recibe llamadas a su Transformación y Carga (ETL) de la solución tantes: la de Refinamiento, Reingeniería
teléfono del tipo el que llama paga). (desde el área temporal de archivos planos y después de obtener el modelo de Data
- ARPU (ingreso obtenido por el tráfico de lla- hasta las estructuras del Data Warehouse Warehouse otra fase de Refinamiento y Re-
mada entrante y/o saliente a una terminal). de la compañía), así como el manejo de ingeniería, lo que no permite que se haga
- Financieros. errores, será implantado una entidad que de un modelo en poco tiempo, ya que requie-
seguimiento de los procesos de carga. Ade- re de varias etapas y fases en cada una de
La solución debe contar con un conjunto más se implantarán reportes predefinidos las etapas, añadiéndole que propone otros
de programas y procesos de manejo de los que permitirán analizar la ejecución de los sistemas importantes dentro de la capa de
datos construidos y validados para altos vo- programas, con los siguientes datos: infraestructura como son: Administradores
lúmenes de información. Estos programas de Configuración, Administradores de Alma-
permitirán la validación, generación de re- Para Control y monitoreo de carga: cenamiento, Administradores de Seguridad,
súmenes e indicadores de gestión a partir - Identificador del proceso ejecutado. Administración de Distribución, Administra-
del área de interfaz. - Fecha, hora de inicio/ Fecha, hora de fin. ción de Licencias, Vigilantes de desempeño
- Cantidad de registros leídos. y Analizadores de la Capacidad.
~: Acceso a los datos - Cantidad de registros procesados.
(aplicación de análisis) ;~ - Cantidad de registros rechazados. Todo esto hace que construir el modelo a
Con el fin de satisfacer las necesidades de - Estatus final de ejecución. implantar se vuelva un proyecto complicado
análisis de la información almacenada en el y largo por lo que sólo se considera el dise-
Data Warehouse, la solución debe contem- Para el manejo de errores: ño del Data Warehouse y el de las Agrega-
plar la implantación de un portal de análisis - Identificador del proceso ejecutado. ciones, por tal razón y debido a que el pro-
que apoye en los siguientes niveles: - Fecha, hora de inicio. yecto tiene un tiempo programado de tres
- Descripción del error. meses se omite los puntos relacionados con
1. Análisis General. Esta área debe permitir - Cantidad de registros rechazados. la construcción.
a los analistas conocer la situación general
del negocio a través del empleo de indicado- La arquitectura de referencia se vuelve im-
res de gestión que les apoyará en responder portante porque aporta:
preguntas relacionadas a la situación actual, Conclusión
las tendencias, causas, entre otras. - Ofrece un diagrama de un anteproyecto común
- Crea una base duradera para implantar la Con lo antes propuesto para iniciar
2. Análisis Detallado. Esta área debe permi- visión de la empresa. cualquier proyecto de Data Ware-
tir a los analistas conocer la situación detalla- - Proporciona alternativas en la implantación house se debe tener bien definido la
da de cada uno de las terminales, así podrán - Permite ubicar las ofertas y distribuidores en problemática, objetivos y alcances del
identificarse patrones de comportamiento el diagrama de la arquitectura de referencia. proyecto, exponiendo los justificantes
de tráfico e ingresos, movimientos, saldos y - Destaca los componentes de una solución que lleven a emprender y satisfacer las
tiempo aire de las terminales, identificación que son valiosos para la producción. necesidades del proyecto con una me-
de perfiles de terminales según cierto com- todología. Se establecen los principios
portamiento, suscriptores a contactar en ini- La arquitectura de referencia describe prime- en los que se debe elaborar el diseño,
ciativas de mercadeo, entre otras. ro desde un punto de vista abstracto y simpli- presentando la propuesta a seguir.
ficado a alto nivel, del modo siguiente:
~: Manejo de Metadata :~
La implantación de la meta data de la solución - Un conjunto de datos extraídos de la base
se debe basar en los siguientes aspectos: de datos operacionales
- Un software que prepara los datos para Referencias
• Metadata Funcional. Consistirá en la de- que los usuarios accedan [ Berthold, M.; Hand, D.J. Intelligent Data Analysis, An In-
troduction. Springer 1999 ]
finición de un modelo de acceso a los datos - Un conjunto de aplicaciones y herramien-
de la Base de Datos del Data Warehouse que tas que ejecutan un conjunto de consultas y [ Corey, Michael J., Abbey, Michael. Oracle Data Ware-
traduzca las definiciones de las estructuras análisis complejos housing, Oracle Press. Osborne/Mc Graw-Hill. 1997 ]
físicas de la base de datos en términos del
negocio que puedan ser entendidos y em- Una arquitectura que propone Harjnder es [ Edwards, John. Building the Right Data Mart. Oracle Ma-
gazine. U.S. Marzo/Abril 1998 ]
pleados fácilmente por parte de los analis- descomponer sistemáticamente en detalles,
tas de la compañía. Además es el modelo de partiendo de la Infraestructura, Transporte, [ Harjner, S. Gil y Prakash C. Rao. La integración de la
acceso que será instrumentado empleando Administración de Meta datos, para ir su- información para la mejor toma de decisiones data ware-
las facilidades ofrecidas por una herramien- biendo de nivel, hacia la Fuente de Datos, housing. Prentice Hall Hispanoamérica, 1996, México ]
ta que permita tener el acceso más ágil y Construcción del Data Warehouse, Construc-
[ Inmon, W.H. et al. Managing the data warehouse, John
eficiente, donde se deberá proveer en forma ción de los niveles de agregación, Acceso de Wiley, 1997 ]
oportuna la semántica correspondiente. Datos y Administración de Datos.

www.sg.com.mx MAY-JUL 2008 21


MAY-JUL 2008 www.sg.com.mx
www.sg.com.mx MAY-JUL 2008
// ENTREVISTA

Conoce a los
Key Speakers de SG’08
John es CTO en JackBe Corporation, y es reconocido como una
de las mentes más influyentes en el área de cómputo empre-
sarial distribuido. Durante su carrera ha sido reconocido como
Sun Distinguished Engineer, y seleccionado como miembro del
“Dream Team” de desarrollo de software por la revista Soft-
ware Development. Es co-autor del afamado libro “Core J2EE
John Crupi

Patterns” y es un conferencista frecuente en congresos interna-


cionales tales como JavaOne, AjaxWorld y SOAWorld.

¿Donde se encuentra la industria en cuanto a estándares para


mashups?
El concepto de mashups empresariales todavía es nuevo, y no
hay estándares “oficiales” todavía. Ante esto, lo que nosotros
(JackBe) hemos hecho es crear tecnologías en base a estándares
existentes. Por ejemplo, creamos un metalenguaje para definir
mashups llamado Enterprise Mashup Markup Language (EMML)
el cual está basado en estándares como XML, Xpath y Xquery.

IBM recientemente formalizó su entrada al Los departamentos de TI se han enfocado en instalar algo simplemente para obtener nue-
espacio de enterprise mashups. ¿Qué sig- generar almacenes de datos y normalizar/ vos datos. Los lenguajes estáticos están en
nifica esto para ustedes? denormalizar grandes cantidades de infor- recesión, los dinámicos son el siguiente paso.
El hecho de que empresas como IBM entren mación. Pero esto no es lo que requieren los
en este segmento confirma su importancia y usuarios, ellos necesitan pequeñas rebanadas ¿Qué te gusta más, desarrollar tecnologías
validez. Si ellos están entrando, es porque de información combinada. Pero como cada o evangelizarlas?
ven que hay un valor para sus clientes. Ade- uno requiere un pequeño conjunto, TI no les Me apasiona evangelizar sobre lo que mis
más de JackBe, IBM es el único proveedor de hace caso porque son cosas muy pequeñas y colegas y yo desarrollamos. También disfru-
software que ha creado su tecnología para no pueden dedicarles tiempo. to mucho construir demos para demostrar
mashups desde cero. Pero el problema que posibilidades de solución a un problema.
enfrentan es lograr integrarlas exitosamente Java EE ya no suena tanto como antes. ¿Crees
en los universos de Websphere y Lotus, que que esté perdiendo importancia? ¿Qué crees ¿Qué se siente trabajar en una empresa
son grandes, complejos, y algo viejos. que suceda con Java EE en el futuro cercano? startup, sobre todo después de haber traba-
Yo creo que Java EE seguirá dominando el jado en una empresa tan grande como Sun?
¿Dónde nos encontramos en términos de segmento de aplicaciones web transaccio- Es muy divertido, pero debes tener nervios
una base de usuarios acostumbrada/dis- nales. Sin embargo, para web services y de acero. Existen muchos factores desco-
puesta a hacer mashups? mashups que no manejan estado (stateless), nocidos, pero tienes una visión que puede
Los usuarios de negocio han estado hacien- Java EE no tiene mucho sentido. De hecho, moldear el futuro. Da una enorme satisfac-
do mashups desde hace más de 15 años; lo con Tomcat tienes todo lo que necesitas. ción cuando funciona.
llaman Excel. El problema es que normal-
mente dedican la mayoría de su tiempo a ¿Crees que los lenguajes y frameworks ¿Algunas palabras de sabiduría para nues-
reunir, copiar, pegar y unir los datos que ne- como Ruby/Rails, Python/Django, Groovy/ tros lectores?
cesitan para poder tomar decisiones. ¿Por Grails penetrarán el mercado empresarial? Empiecen a considerar los enterprise mash-
qué realizan todo este esfuerzo? Porque no Creo que todos los lenguajes dinámicos ten- ups y widgets como la nueva generación de
tienen opción. Los datos se encuentran en- drán una penetración importante en el espacio micro-soluciones. Los mashups le quitan
cerrados en su ERP, aplicaciones internas y empresarial en los próximos años. Es de gran muchos dolores de cabeza a la integración
sistemas de información empresarial. utilidad no tener que compilar, empaquetar e y pueden traer grandes beneficios tanto a
desarrolladores como a usuarios.

24 MAY-JUL 2008 www.sg.com.mx


Terry Quatrani

Terry Quatrani es evangelista en jefe de UML en IBM Corporation.


Como tal, es responsable de entrenar y asistir a los principales
clientes de IBM para adoptar prácticas de modelado visual y
orientación a objetos. Terry es una conferencista frecuente
en eventos como el Rational User Conference, OOPSLA, y SD
West/East. Es autora de la serie de libros “Visual Modeling
with Rational Rose and UML”, y también es colaboradora fre-
cuente en la revista Dr. Dobbs Journal.

¿Qué disciplinas del desarrollo de software se benefician más


del uso de modelado visual?
Creo que el modelado visual trae beneficios a un proyecto de
software a lo largo de todo su ciclo de vida, para: administrar
complejidad, detectar errores y omisiones, comunicar a los in-
volucrados, entender requerimientos, dirigir la implementación,
entender el impacto del cambio, y asegurar que los recursos de
infraestructura sean utilizados adecuadamente.

Qué tanto modelado se haga, y durante qué actividades, ya depen- gación para un front end sencillo de una base de datos. Simplemente
derá del proceso, proyecto y experiencia de los modeladores. aplico la transformación, ¡y la aplicación se genera por completo!

UML 2 ya tiene varios años en el mercado, pero la mayoría de las Llevamos varios años sin llegar a un consenso sobre qué lenguaje/
organizaciones todavía utilizan UML 1.x ¿A qué se debe esto? notación usar para modelar procesos de negocio. ¿Cuál es tu opi-
El principal problema que retrasó la adopción de UML 2 en un nión al respecto?
principio fue la falta de soporte en las herramientas de modela- Creo que el estándar que prevalecerá es BPMN. Esta es la notación
do. De hecho, creo que a la fecha ninguna herramienta soporta con la que la gente de negocio se siente cómoda, ellos no quieren
UML 2 por completo. usar UML. Habiendo dicho eso, creo que aquí es donde MDA pue-
de ser de gran utilidad. Por ejemplo, actualmente existen herra-
Aun así, cada vez hay más organizaciones que utilizan UML 2 y le en- mientas que pueden leer un modelo creado por una herramienta
cuentran ventajas. Una de las fortalezas de UML 2 es el soporte para de modelado de negocios en BPMN, y hacer la transformación en
diagramas de secuencia, que me parece maravilloso. Otra fortaleza tiempo real hacia UML. De esta forma, se obtiene lo mejor de dos
de UML 2 son las clases estructuradas. Sin embargo, la adopción de mundos: BPMN para la gente de negocio y UML para la gente de
estas capacidades no es muy amplia, ya que solo tienen sentido para software y sistemas.
aquellos que están modelando arquitecturas orientadas a servicios,
o sistemas de tiempo real. Creo que conforme más organizaciones ¿Qué libros le recomiendas a los lectores de SG?
se muevan a SOA, aumentará significativamente el uso de UML 2. ¡Por supuesto que mi libro (Visual Modeling with Rational Rose)!
Jaja. Ya en serio, el libro que más recomiendo sobre UML es “UML
¿Qué está sucediendo en el área de MDA (Model Driven Architecture)? Distilled” de Martin Fowler.
Hace un par de años era un tema muy popular y hoy casi no se
escucha nada al respecto. ¿Has estado previamente en México?
La industria está adoptando MDA sin que se haga mucho ruido al res- No, esta será mi primera visita y estoy bastante emocionada por conocer
pecto. Tengo varios clientes que actualmente realizan transformacio- el país y ver qué están haciendo las organizaciones de software allá.
nes de MDA bastante sofisticadas. De hecho, en la arquitectura de Ra-
tional Software Architect hacemos uso extensivo de transformaciones. ¿Alguna recomendación final para los lectores?
Ya no “generamos” código, sino que lo “transformamos”. Yo tengo un Sigan modelando, pero solo utilicen lo que necesitan. No modelen
demo que doy en algunas pláticas, el cual tiene un modelo de nave- simplemente por modelar.

www.sg.com.mx MAY-JUL 2008 25


// ENTREVISTA

Jon “maddog” Hall es Director Ejecutivo de Linux Interna-


Jon “maddog” Hall

tional, una asociación dedicada a promover el software


libre, y CTO de Koolu, una empresa canadiense dedicada
a llevar cómputo verde a países en desarrollo. El señor
Hall es un conferencista altamente solicitado, y ha fungido
como asesor en el tema de uso y aprovechamiento de
software libre para los gobiernos de China, Malasia y
Brasil, así como para las Naciones Unidas.

Nos enteramos que estás involucrado con un programa


llamado Hackerteen. ¿Podrías decirnos de que se trata?
Hackerteen es un programa educativo creado por mi buen
amigo Marcelo Marques en Brasil. Lo que sucedió es que la
policia se dio cuenta que una buena parte de las personas que
“craqueaban” los sistemas en realidad eran niños que usaban
scripts de Internet para entrar a sistemas que no estaban de-
bidamente protegidos.

Ellos le pidieron a Marcelo que los ayudara a piloto de esto en Costa Rica, con un cliente La vida es un río. Hace 15 años, que es
resolver esto, así que creó Hackerteen, que llamado Datatell. cuando yo me involucré con Linux, el escri-
es un programa de educación virtual, don- torio era básicamente un servidor de X Win-
de enseña a los adolescentes a aplicar esa ¿Cómo aporta Linux al “cómputo verde”? dows y un administrador de ventanas. Ahora
curiosidad y tiempo en Internet hacia algo Linux tiene varias capacidades que contri- tenemos un desktop completo con muchas
de provecho. Se les enseña sobre seguridad buyen al cómputo verde, tales como apagar aplicaciones sofisticadas. En ese entonces,
computacional, ética de hacking, y cómo ser discos y bancos de memoria cuando no es- los vendedores de computadoras ni de locu-
emprendedores. Está diseñado de forma que tán en uso. Linux también es bastante fuer- ra hubieran vendido máquinas con Linux. En
es muy atractivo para los adolescentes, ya que te en el área de virtualización, y a través de cambio, hoy muchas empresas venden Linux
combina elementos de juegos de rol, anime, y ésta se puede lograr una mayor eficiencia. preinstalado. De hecho, en algunas compu-
un esquema de progresión como el del Karate tadoras como la Eee PC es el default.
donde los alumnos van subiendo de cinta. Por otro lado, el software libre es mucho
más que Linux, y aquí la comunidad puede Lo que quiero decir es que seguimos avan-
Yo he sido consultor para el programa desde tener una gran contribución, desarrollando zando, y aunque todavía estamos lejos de
hace varios años y he visto el cambio positivo software más eficiente, que haga mejor uso ser el sistema dominante en el desktop,
que genera en los jóvenes que participan, ade- de la energía. estamos muy cerca de ser un jugador im-
más de que les da una excelente base en caso de portante (que yo estimo que sería cuando
que quieran trabajar en el área de computación. ¿En qué áreas de TIC dirías que Linux está lleguemos a un 25% del mercado). Cuando
liderando el camino? esto suceda, muchas cosas cambiarán.
Sabemos que eres CTO en una empresa Creo que la pregunta adecuada sería ¿en qué
llamada Koolu, ¿puedes hablarnos un poco áreas no está liderando el camino? Y otra vez, ¿Alguna recomendación para los lectores
sobre ella? me gustaría puntualizar que no solo me refie- de SG?
El propósito de Koolu es llevar a los países ro a Linux, sino al software libre en general. Sí. Lleven a un usuario de Windows a su
en desarrollo sistemas de cómputo amiga- En el último par de años hemos atestiguado próximo evento de software libre. Mejor
bles con el ambiente y con el usuario. La tec- el surgimiento de tecnologías basadas en que sean dos. Muéstrenle software libre en
nología de Koolu utiliza clientes delgados software libre como Asterisk, MythTV, y Li- el desktop, servidores, etcétera y denles un
en conjunto con aplicaciones Web 2.0 para nuxMCE que están teniendo un gran impac- live-CD para que ellos mismos puedan pro-
que los usuarios puedan dedicar todo su to tanto en las empresas como los hogares. barlo en sus computadoras.
tiempo a hacer lo que quieren, y no pierdan
tiempo en cosas como instalar/actualizar A pesar de los avances de Linux en otras Únanse a SoftwareFreedomDay.org y prego-
programas, eliminar virus, etcétera. Parte áreas, en el desktop sigue con una parti- nen sobre el software libre. Recuerden de-
de la visión de Koolu es generar empleos de cipación pequeña. ¿Consideras que esto cirles que es “libre como en libertad”, y que
tecnología bien pagados en las economías cambiará pronto o seguiremos viendo un no deberían ser esclavos de los vendedores
locales. Actualmente estamos haciendo un avance lento de Linux en el desktop? de software propietario. Carpe Diem!.

26 MAY-JUL 2008 www.sg.com.mx


16
agamos un viaje en el tiempo hacia principios
de esta década …

Acabábamos de sobrevivir el año 2000 sin que se


cayera el mundo, y en el campo de la programación la palabra que
más sonaba tenía cuatro letras y su logo era una taza de café. Java
era EL lenguaje de programación y reunía lo mejor de lo mejor ya
que era orientado a objetos, multiplataforma, y abierto (todavía no
era libre, pero había acceso al código fuente). Además, con J2EE y
J2ME se cubría el espectro desde dispositivos móviles hasta sistemas
empresariales distribuidos. Todo parecía indicar que hacia el futuro
Java sería el lenguaje de programación que se utilizaría para todo, y
por lo tanto el único que sería necesario aprender.

Regresamos al presente, y si echamos un vistazo a las noticias, ar-


tículos y foros relacionados con desarrollo de software, nos encon-
tramos con cosas como Ruby (con su framework Rails), Python,
Erlang o Scala. En el frente de Microsoft, resulta que tienen una
plataforma llamada .NET sobre la cual se ejecutan una gran diver-
sidad de lenguajes, desde Cobol hasta algo llamado C#, y continua-
mente se agregan nuevos lenguajes (F#, IronPython) y capacidades
para los lenguajes (LINQ). En el frente de Java, encontramos que
hay un gran debate sobre las características que se deben incluir en
Java 7, y que por un lado hay quienes creen que este debería mante-
nerse como un lenguaje sólido, estable, con poca innovación, y por
otro lado quienes consideran que debe incorporar nuevas caracte-
rísticas que le permitan mantenerse a la vanguardia.

La conclusión es que de pronto los lenguajes de programación son


relevantes otra vez. No es que hubieran dejado de ser importantes,
sino que llegamos a pensar que ya eran un tema resuelto. Es así que
dedicamos las siguientes páginas a estudiar las tendencias que están
marcando este denominado...

28 MAY-JUL 2008 www.sg.com.mx


de
los

www.sg.com.mx MAY-JUL 2008 29


¿Hacia dónde van los lenguajes de programación?
Un Vistazo al Pasado, Presente y Futuro
Por Ariel Ortiz Ramírez

o aprendí a programar usando una micro- Las operaciones de cómputo en la programación mente incorporados en muchos otros lenguajes.
computadora Timex Sinclair 2068 a mediados funcional se llevan a cabo a través de la evaluación Uno de los más notables es el referente a la re-
de los años ochenta. Esta maquinita tenía 72 KB de expresiones que producen valores y que están colección de basura, en donde el ambiente de
de memoria, usaba una grabadora convencional libres de efectos secundarios. Por el contrario, ejecución, y no el programador, es responsable
como dispositivo de almacenamiento secunda- en el estilo de programación imperativa, al cual de determinar cuando cierto objeto de memoria
rio, y venía de fábrica con un intérprete de Sin- pertenecen la mayoría de los lenguajes conven- ya no es usado por el programa y por lo tanto
clair BASIC. Este dialecto de Basic usaba núme- cionales, el énfasis está en ejecutar enunciados puede ser reutilizado en alguna otra parte. Lisp
ros de línea frente a cada enunciado. Había que que precisamente producen efectos laterales. En fue el primer lenguaje que usó esta técnica, ocu-
usar la instrucción GOTO para realizar repeti- este caso, el principal efecto lateral es la mutación rriendo esto a finales de los años cincuenta. Sin
ciones, GOSUB para llamar subrutinas, y todas explícita de los valores contenidos en memoria. embargo, todavía a inicios de la década de los
las variables eran globales. Comparado con las años noventa había poco respeto por parte de
herramientas que tenemos disponibles hoy en Las variables en los lenguajes funcionales son la industria de software hacia los lenguajes que
día, este era un ambiente muy primitivo, pero parecidas a las variables de álgebra. Esto es, una hacían uso extensivo de recolección de basura,
aún así podía pasar largas horas programando variable representa un valor inicialmente des- debido principalmente al costo de ejecución en
felizmente ese aparatito. conocido, pero una vez que se conoce, este ya el que se incurre. Gracias a la atención que gene-
no cambia. En contraste, en los lenguajes impe- ró Java en la última década, hoy en día práctica-
Muchas cosas han cambiado en las últimas dos rativos una variable es simplemente el nombre mente todos los lenguajes considerados “moder-
décadas. Sin embargo, los avances en el campo de una localidad de memoria cuyo contenido nos” incorporan recolección de basura.
de los lenguajes de programación han sido más puede ser arbitrariamente leído y/o modificado.
una evolución que una revolución. Gracias a que las variables son asignables una Otros conceptos importantes en que los lengua-
sola vez, los programas funcionales cuentan con jes funcionales han sido pioneros incluyen: fun-
En las siguientes secciones describo brevemente una propiedad conocida como transparencia ciones como objetos de primera clase, cerraduras
las tendencias más importantes que, desde mi referencial. Se dice que una expresión es refe- léxicas, recursión, tipos dinámicos, inferencia de
punto de vista, marcarán las pautas en el diseño rencialmente transparente si puede ser rempla- tipos, y meta-programación.
de los lenguajes computacionales que estaremos zada por su valor, pero sin alterar los resultados
utilizando en los años por venir. producidos por el programa. La transparencia ~:Lenguajes dinámicos :~
referencial es importante porque permite al pro-
~:Programación funcional :~ gramador, o al traductor del lenguaje, razonar Un lenguaje de programación dinámico es un
sobre el comportamiento del programa. Este lenguaje de alto nivel que lleva a cabo en tiempo
La programación funcional es un estilo de pro- tipo de razonamiento es útil para probar que un de ejecución muchas acciones que otros lenguajes
gramación basado en la utilización de funciones programa es correcto, optimizar código a través típicamente llevan a cabo en tiempo de compila-
matemáticas. El cálculo lambda, desarrolla- de cachés, eliminar sub-expresiones comunes, ción. Estas acciones incluyen cosas como agregar
do por el matemático norteamericano Alonzo simplificar algoritmos, e incluso parelelizar la y evaluar código, modificar el sistema de tipo de
Church en la primera mitad del siglo veinte, es evaluación de sub-expresiones. datos, añadir propiedades a objetos, etcétera. En
la base teórica de este estilo de programación. esta categoría de lenguajes están Lisp, Smalltalk,
Lisp, Haskell, ML y Erlang son ejemplos de len- Los lenguajes funcionales han introducido im- Tcl, JavaScript, Python, Ruby, Perl, PHP y Gro-
guajes funcionales. portantes conceptos que han sido posterior- ovy. Dada su naturaleza, los lenguajes dinámicos

30 MAY-JUL 2008 www.sg.com.mx


son normalmente interpretados, aunque sí exis- Si mi programa hipotético sólo va a ser ejecutado del sistema operativo, o elementos de una in-
ten compiladores para algunos de ellos. una vez por semana, me conviene más usar un terfaz gráfica de usuario. El término script hace
lenguaje en donde pueda ser más productivo y alusión a los guiones que su usan en el cine o
Recientemente mucha gente ha tomado interés donde el tiempo de ejecución es prácticamente teatro. En el pasado, los lenguajes de script eran
en los lenguajes dinámicos. Una de las principa- insignificante. Por otro lado, si el programa lo van llamados batch languages (lenguajes de lotes) o
les razones es el incremento en la productividad a usar miles de usuarios varias veces por día, segu- job control languages (lenguajes de control de
que se logra al usarlos. Por ejemplo, es común ramente debo reconsiderar mis prioridades. trabajos), y probablemente los ejemplos más
que un programa escrito en Ruby o Python re- representativos de éstos eran JCL en los equi-
quiera entre 2 a 10 veces menos código que su Existen también ocasiones cuando hay factores pos mainframe, los shell scripts de Unix, y los
equivalente en lenguaje C o Java. Usualmente externos al programa mismo que constituyen archivos .BAT de DOS. Hoy en día,este tipo de
un programa que es más pequeño toma menos cuellos de botella que difícilmente se pueden lenguajes se usan extensivamente para realizar
tiempo en escribirse, es más fácil de comprender eliminar con la elección del lenguaje de progra- tareas de mantenimiento de un sistema, facili-
y modificar, y contiene menos errores que uno mación a usar. Por ejemplo, el desempeño de tar la adecuación de la funcionalidad de alguna
de mayor tamaño. Claro, esto no viene sin algu- una aplicación Web puede estar sujeto al ancho aplicación, enriquecer la interacción de usuario
nos inconvenientes. No es inusual que un pro- de banda de los clientes, el tiempo de respuesta desde un browser, o simplificar la programación
grama escrito en un lenguaje dinámico llegue del manejador de base de datos o los servicios de páginas con contenido dinámico generadas
a ser decenas o incluso hasta centenas de veces Web que se utilizan, etcétera. Si estos factores por un servidor de web.
más lento que un programa escrito en un len- corresponden a la mayor parte del tiempo de
guaje convencional compilado. Para cierto tipo ejecución de la aplicación, y a menudo así ocu- ~:Programación paralela :~
de aplicaciones esto puede ser irrelevante. rre, entonces el beneficio de usar un lenguaje
más rápido es prácticamente imperceptible. La comercialización masiva de los primeros
Por ejemplo, imaginemos que tengo un cierto chips con múltiples núcleos (multi-core) en el
problema que debo resolver escribiendo un pro- Otra desventaja que algunas personas han seña- año 2005 dio lugar a lo que se conoce como el
grama. Supongamos que si lo escribo en Python lado con los lenguajes dinámicos es el relativa- fin del almuerzo gratis. En el pasado no muy lejano,
me llevaría dos horas, pero si lo hago en lenguaje mente limitado soporte que existe para ellos en un desarrollador podía escribir un programa sin
C me llevaría diez. Por otro lado, supongamos las herramientas de desarrollo, particularmente preocuparse mucho sobre su desempeño, pues
que si ejecutara el programa en Python, éste tar- los IDEs. Esto se debe a que la mayoría de los sabía que en relativamente poco tiempo el nue-
daría cinco segundos mientras que el que está lenguajes dinámicos no usan declaraciones ex- vo hardware correría su programa, sin modifica-
escrito en C tardaría 0.01 segundos. Bajo estos plícitas de tipos, y esto complica significativa- ción alguna, de manera más rápida (por eso el
escenarios hipotéticos, tardaría cinco veces más mente cosas como la facilidad de autocompletar término almuerzo gratis). Sin embargo, las ve-
en escribir mi programa en C en lugar de Python, código y la refactorización. locidades de los microprocesadores ya no se han
pero al momento de ejecución el programa de estado incrementado como estábamos acostum-
C sería 500 veces más rápido. Entonces, ¿qué Muchos de los lenguajes dinámicos son con- brados. La Ley de Moore establece que el núme-
escenario me ofrece el mejor beneficio? Cuando siderados también como lenguajes de script, o ro de transistores que se pueden retacar en un
una computadora costaba millones de dólares, el guiones. Un lenguaje de script sirve como pe- solo chip se duplica aproximadamente cada 18
costo del tiempo de un programador era desde- gamento para combinar diversos componentes, meses. Esto típicamente se traducía en CPUs co-
ñable. Pero hoy en día es generalmente al revés. los cuales pueden ser otros programas, utilerías rriendo a más megahertz cada año. Sin embargo,

www.sg.com.mx MAY-JUL 2008 31


este aumento en velocidad de reloj ya no es sostenible rente de este modelo, diversos lenguajes han sido exten-
por cuestiones de calentamiento y consumo de energía. didos con bibliotecas y/o directivas especiales que simpli-
Esto no quiere decir que la Ley de Moore ya no se cum- fican la escritura de programas paralelos. OpenMP, por
pla, pero ahora lo que están haciendo los fabricantes de ejemplo, es un API para C++ y Fortran que permite de
microprocesadores es usar esos transistores adicionales manera relativamente sencilla paralelizar ciclos. El Task
para añadir más núcleos a los CPUs. Un núcleo es bási- Parallel Library (TPL), disponible para C# 3.5, ofrece
camente una unidad de procesamiento, que incluye re- facilidades similares.
gistros, unidades de ejecución y memoria caché. Hoy en
día, muchos servidores, equipos de escritorio y de cómputo El paso de mensajes, por otro lado, ofrece un mayor nivel
portátil cuentan con CPUs con 2, 4 o más núcleos. Incluso de abstracción ya que el programador no tiene que inte-
empresas como Intel, IBM y Sun Microsystems ya están ha- ractuar con las primitivas de bajo nivel asociadas normal-
blando de procesadores many-core, con decenas o centenas mente con los hilos. El lenguaje Erlang soporta este mode-
de núcleos para los años venideros. lo de programación y ha sido usado de manera extensiva
en el dominio de las telecomunicaciones para alcanzar un
Ahora bien, hay un problema muy grande: un programa alto grado de paralelismo. Un programa en Erlang que
no se beneficia del nuevo nivel de paralelismo inherente haga uso de cientos o hasta miles de procesos puede en
en los sistemas multi-core, a no ser que haya sido di- principio tener una excelente escalabilidad en cuanto se
señado explícitamente para ello. Lamentablemente, la ejecute en un sistema con un mayor número de núcleos.
mayoría de los programadores no saben cómo escribir
programas paralelos. Esto se debe probablemente a dos ~: Lenguajes multi-paradigmas :~
causas: 1) esta es una habilidad que sólo habían reque-
rido la gente de nichos muy específicos que utilizan su- En los años ochenta Smalltalk era el lenguaje más re-
percomputadoras, grids y clusters; 2) escribir programas presentativo de la programación orientada a objetos.
paralelos correctos es considerablemente más difícil que Pero para la mayoría de los programadores de esa época,
escribir programas secuenciales, al menos usando la ma- Smalltalk era simplemente muy diferente a lo que esta-
yoría de las herramientas disponibles en la actualidad. ban acostumbrados. La programación orientada a obje-
tos comenzó a tomarse en serio en la industria hasta que
Desde hace un par de décadas han existido dos modelos los lenguajes convencionales fueron modificados para so-
de programación concurrente: portar dicho estilo de programación. Así surgieron C++
y Object Pascal, sólo por nombrar los más populares.
* Hilos con estado compartido. Se tiene una región de
memoria compartida por dos o más hilos de ejecución. Este esquema de lenguajes que soportan más de un es-
Para evitar que dos hilos entren en una condición de ca- tilo o paradigma de programación sigue siendo la nor-
rrera (los hilos intentan modificar el mismo contenido ma hasta nuestros días. Ruby y Python son lenguajes
de memoria al mismo tiempo) se debe usar algún meca- dinámicos y orientados a objetos, pero también tienen
nismo de candados para garantizar una exclusión mutua. elementos que les permiten ser usados como lenguajes
Los candados pueden ser semáforos, monitores, etcétera. funcionales. Erlang es un lenguaje funcional, concurren-
Sin embargo, el uso de candados conlleva a otro tipo de te y distribuido. El lenguaje Oz soporta programación
problemas potenciales como son los candados mortales lógica, funcional, orientada a objetos, basada en restric-
(deadlocks) y la inanición. ciones, distribuida y concurrente.

* Paso de mensajes. Los procesos se comunican entre


sí a través del envío y recepción de mensajes asíncronos. ~: Plataformas de programación :~
No hay memoria compartida entre los procesos, por lo
tanto no se requieren candados. Hoy en día, el desarrollo de software tiende a ser algo
más enfocado a programar en una plataforma y no tan
Casi todos los lenguajes usados en la industria usan hilos solo en un lenguaje. Es decir, tenemos ahora programa-
con estado compartido. Debido a la complejidad inhe- dores y/o desarrolladores de web, de JEE y de .NET.

Ariel Ortiz Ramírez es profesor de planta del Departamento de Tecnologías de Información y Computación del Tecnológico de Monterrey, Campus Estado de
México. Desde 1988 ha estado impartiendo una gran variedad de cursos relacionados con programación en donde ha utilizado los lenguajes Basic, Pascal, C,
C++, C#, Java, JavaScript, Scheme, Prolog, Python, Ruby, Erlang y diversos ensambladores. Sus principales áreas de interés son los lenguajes de programa-
ción, la educación en ciencia de la computación y el software libre. www.arielortiz.com

32 MAY-JUL
MAY-JUL 2008
2008 www.sg.com.mx
www.sg.com.mx
Parece que la época del programador mono-lin- JRuby, Jython y Groovy son lenguajes dinámi-
güista está llegando a su fin. Por ejemplo, un de- cos diseñados también para simplificar y agilizar
sarrollador de web debe conocer varios lenguajes el desarrollo sobre la plataforma Java, sin perder
para hacer su trabajo, incluyendo HTML, CSS, la facilidad de operación con código de Java. Es
JavaScript, y algún framework para usar Ajax claro ahora más que nunca que lo valioso de la
como JQuery o Prototype, y todo esto sólo para tecnología Java es su plataforma (la máquina vir-
la programación del lado del cliente; del lado del tual y su extensa biblioteca) y no tanto el lengua-
servidor probablemente requiera saber SQL, un je de programación en sí. Algunos han afirmado
framework para algún lenguaje de programa- que Java se ha convertido en el nuevo Cobol. A
ción en particular, y un lenguaje de plantillas mi me parece mas bien que Java es el nuevo C.
para la generación de contenido dinámico. ¿Por Así como en Unix la infraestructura básica (nú-
qué se requieren tantos lenguajes para desarro- cleo, utilerías, bibliotecas) está escrita en lengua-
llar una aplicación de este tipo? Porque cada len- je C, y todo se une con scripts y aplicaciones es-
guaje tiene una función particular que los otros critas en lenguajes de más alto nivel (tales como
simplemente no pueden hacer, o sí lo pueden Perl, Tcl o Python), así también podría ocurrir
hacer pero de manera menos conveniente. con Java y los otros lenguajes ya mencionados.

En la actualidad, las plataformas Java y .NET Algo similar ocurre en la plataforma .NET. De
reflejan también la importancia de poder com- hecho, a diferencia de la máquina virtual de
binar lenguajes, y así ofrecer al desarrollador Java, que fue diseñada específicamente para ese
la opción de usar la mejor herramienta para el lenguaje de programación, la máquina virtual
problema en cuestión. Por ejemplo, Scala es un de .NET, conocida como el Common Language
lenguaje que corre en la plataforma Java, y que Infrastructure (CLI), fue diseñada desde el prin-
reúne lo mejor de muchos mundos. Es orien- cipio para soportar múltiples lenguajes y sus in-
tado a objetos y funcional, soporta el modelo teracciones. Aunque C# es el caballito de batalla
de concurrencia por paso de mensajes. Usa un del CLI, existen decenas de lenguajes diseñados
sistema de tipos estáticos pero con inferencia au- para esta plataforma. Por ejemplo, F# es un len-
tomática. Puede usarse como lenguaje de script guaje funcional y orientado a objetos, derivado
e interactuar con código de Java existente. principalmente del lenguaje ML. También hay
implementaciones de Python y Ruby para el CLI,
llamadas respectivamente IronPython e IronRuby.

Conclusión

En la actualidad hay muchas cosas interesantes ocurriendo en el área de lenguajes de progra-


mación. Después de años de estar estudiando diferentes lenguajes, me resulta claro que difí-
cilmente encontraremos un lenguaje único y perfecto. Lo mejor que podemos hacer es sacarle
el mayor provecho a lo que tenemos disponible hoy en día, y estar en la mejor disposición de
aprender las nuevas herramientas que vayan apareciendo.

Sólo hay dos tipos de lenguajes de programación:


los que son el objeto de las quejas de todo mundo
y los que nadie usa.
/ Bjarne Stroustrup, autor de C++

www.sg.com.mx
www.sg.com.mx MAY-JUL
MAY-JUL 2008
2008 33
Más allá de los Objetos programador dotándolo de diferentes armas para
resolver problemas de una manera más efectiva. Es-
C# Desde un Punto de Vista Funcional tos conceptos existen desde hace muchos años, pero
Por Miguel Ángel Morán actualmente toman gran importancia al reencarnar
en plataformas de programación comerciales.

urante muchos años los científicos de la ~: Programación funcional :~


computación han buscado diferentes paradig- Los lenguajes funcionales son aquellos en los
mas que permitan una mejor y más efectiva que en lugar de proporcionar instrucciones
comunicación entre el programador y la com- imperativas (diciendo como se deben hacer las
putadora. De hecho, los principios que rigen la cosas), se especifican condiciones y criterios que
programación actual fueron diseñados aún antes deben cumplirse para lograr un objetivo (otros
de que existieran físicamente las computadoras. ejemplos de lenguajes declarativos son HTML,
Por ejemplo, en la década de los treinta Alan Tu- Haciendo una analogía con los lenguajes huma- XML, ASP.NET, SQL etccétera).
ring formalizó matemáticamente el concepto de nos, sabemos que la lengua española tiene fuer-
algoritmo, que es la base de la resolución de pro- tes similitudes con aquellas de origen común al La programación funcional, propone que los
blemas mediante máquinas y antecedente directo latín. Algo similar sucede con los lenguajes de programas deben componerse exclusivamente
de la programación imperativa, y Alonzo Church programación, ya que 2 lenguajes provenientes de funciones, y este concepto va más allá de la
presentó el cálculo lambda que proporciona el de la misma familia comparten muchas caracterís- idea general que tenemos de un subconjunto de
fundamento de la programación funcional. ticas en común, mientras que lenguajes de distintas código (procedimiento o método.) Al referirnos
familias funcionan de forma muy diferente y por de que todo es una función debemos entender
El paradigma de la programación orientada a lo tanto es más difícil poder dominar ambos. que los lenguajes funcionales puros eliminan las
objetos (POO) básicamente consiste en que pri- asignaciones, y todos los valores y resultados se
mero se describe el mundo (dominio) mediante A pesar de esta gran diferencia, en los últimos años encuentran en función de otros. Es por esta ra-
la definición de ciertos tipos (clases), y luego se los lenguajes de una familia están incorporando ca- zón que cuando a una variable se le asigna un va-
resuelve el problema deseado mediante la in- pacidades de otra, generando lo que podríamos lla- lor, éste jamás se modifica, de forma que se pueda
teracción entre los objetos (que son instancias mar lenguajes híbridos (o multi-paradigma). Tal es asegurar la llamada transparencia referencial.
de las clases). Es evidente que la programación el caso de C#, el cual conforme su evolución, ha ido
POO se ha convertido en un estándar de facto incorporando capacidades de lenguajes funcionales. Uno de los lenguajes funcionales más conocidos
para muchas de las plataformas de programación es Haskell, y muchos de sus elementos han sido
comerciales y esto no es casualidad, debido a su Entonces, para contestar la pregunta original, al retomados en C#.
marcada analogía con el mundo real. Aun así, es parecer lo que está más allá de los objetos es la
necesario que nos hagamos la pregunta: programación multiparadigma, especialmente ~: Expresiones lambda :~
la incorporación de capacidades funcionales en En la programación funcional se hace uso ex-
… ¿y qué hay más allá de los objetos? lenguajes orientados a objetos. tensivo de las expresiones lambda, que no son
más que funciones declaradas anónimamente
La figura 1, muestra una clasificación de lengua- ¿Y a qué se debe tanto interés? El motivo prin- (es decir sin un nombre explícito) y cuyo uso
jes de programación, de acuerdo a su paradigma. cipal sin duda es aumentar la productividad del disminuye la verbosidad del lenguaje (menos
Figura 1. Clasificación de los lenguajes. líneas de código) y la potencia del mismo, al po-

Miguel Ángel Morán B. es Microsoft Most Valuable Professional (MVP) en C# y Microsoft Certified Trainer (MCT). Es Licenciado en Informática por la UNITEC y cuenta con 11 años
de experiencia desarrollando profesionalmente. Es socio fundador de DevWorx, empresa de alta innovación tecnológica, y participa en la comunidad DevelopersDotNet.com donde frecuente-
mente escribe y organiza eventos sobre tecnología. miguel.moran@devworx.com.mx

34
28 MAY-JUL 2008 www.sg.com.mx
www.sg.com.mx
der incrustar en cualquier parte del código una Haskell C# podemos usar evaluación perezosa mediante el
función que resuelva determinada tarea. :t “Hola” var lobjMsg= “Hola”; uso de listas, sin embargo el CLR por naturaleza
lobjMsg.GetType().ToString();
Ejemplo en Haskell Resultado: evalúa las expresiones al momento de asignarlas.
(\pintNum -> pintNum * pintNum) “Hola” :: String Resultado:
Ejemplo en C# System.String Por otro lado, tenemos el caso de la transparen-
Func<int,int> lintResultado = (pintNum) => { return cia referencial, la cual se refiere a que una fun-
pintNum * pintNum; };
Los lenguajes fuertemente tipificados son impor- ción dados determinados parámetros (firmas)
En ambos casos si invocamos la función nos tantes por la seguridad al disminuir errores en tiem- siempre regresará el mismo resultado. Esto no
regresará el cuadrado del parámetro invocado. po de ejecución. Así, la inferencia de tipos conserva se puede asegurar en C# toda vez que tenemos
En el caso de Haskell, la indicación de la expre- la fuerte tipificación del dato pero aumenta la flexi- operadores de asignación y manejo de estado,
sión lambda se obtiene mediante la partícula \ bilidad y capacidad para generar polimorfismo. por lo que un estado específico (en una variable
mientras que en C# se indica mediante => que o propiedad) podría modificar el resultado de
se puede leer como va a. ~:Recursión como manejador una función aun con la misma firma.
de control de flujo :~
~: Funciones de orden superior (FOS) :~ En los lenguajes imperativos tenemos instrucciones
Las funciones de orden superior básicamente se como if, for, while para manejar el control de flujo. Conclusión
refieren a aquellas funciones que reciben como En la programación funcional el control de flujo Los paradigmas alternos de programación
argumentos otras funciones, o bien regresan otra se da mediante el uso exhaustivo de listas, tuplas, representan una oportunidad para acercar-
función como resultado. etcétera y el manejo efectivo de la recursividad. nos a formas de trabajo que aumentarán
nuestra productividad. La tendencia va
En el siguiente listado podemos ver la definición El siguiente código Haskell devuelve la sumato- hacia los lenguajes híbridos que incorporen
de una FOS, donde la función ConvertirMone- ria de los números del 1 al 100. capacidades de distintos paradigmas. El
da regresará una función (específicamente un sum[1..100] objetivo debe ser lograr patrones y prácticas
delegado) que a su vez será invocada para calcu- que permitan un mejor software y un menor
lar el tipo de cambio. En C# podríamos implementar nuestro clási- tiempo de desarrollo mediante el uso orde-
public static Func<int,int> ConvertirMoneda(string co arreglo y/o contador, además de un ciclo de nado de las herramientas y tecnologías.
pstrMoneda) {
repetición para lograr lo mismo. Sin embargo,
return (int pintCantidad) => {
return pstrMoneda == “EURO” ? pintCantidad * 15 : usando las nuevas características del lenguaje Por ejemplo, en el caso de .NET, estas nue-
pintCantidad * 10;} podemos hacer esto: vas características del lenguaje son el meca-
}; Enumerable.Range(1, 100).Sum(); nismo habilitador de la tecnología LINQ.
Invocación En ambos casos obtengo 5050. Es necesario aprender a detalle lo que existe
var lobjConvertidor = ConvertirMoneda(“PESO”); detrás de esta implementación para poder
Console.WriteLine(lobjConvertidor(20));
~: Limitaciones de C# como explotar la plataforma de la mejor manera.
// Regresará 200
lenguaje funcional :~
var lobjConvertidor = ConvertirMoneda(“EURO”); Existen otros conceptos de la programación fun- Para los maestros y estudiantes de las ca-
Console.WriteLine(lobjConvertidor(20)); cional que no se cumplen al pie de la letra en C#, rreras de sistemas, la oportunidad que nos
//Regresará 300 dado que es un lenguaje híbrido. Sin embargo, brindan estos lenguajes es doble ya que es
hay soluciones funcionales por si se desea seguir posible cumplir con los objetivos académicos
~:Inferencia de tipos :~ estrictamente un paradigma. Un ejemplo de esto y además al aprender estas técnicas también
Como pudimos ver, en el listado anterior se hace es el de la evaluación perezosa. Ésta se refiere a la es posible salir preparado con un lenguaje
uso de la palabra clave var, esta palabra reservada capacidad de un lenguaje de programación en la extensivamente utilizado en el ámbito laboral.
no implica late binding sino inferencia. El com- cual las expresiones de determinada sentencia no
pilador asigna automáticamente el tipo de dato se evalúan hasta que es exclusivamente necesario.
correcto al resultado de una función sin necesi- En el caso de la programación funcional esto es Referencias
dad de que se especifique explícitamente. útil toda vez de que es posible asignar listas infi- [msdn2.microsoft.com/es-es/library/bb943915.aspx]
[haskell.org]
nitas sin provocar un desbordamiento. Con C# [squad.devworx.com.mx/blogs/miguel]

www.sg.com.mx MAY-JUL 2008 35


29
// COLUMNA /*PRUEBA DE SOFTWARE*/

La Calidad del Proceso de Prueba de Software


Los Modelos de Calidad especializados en Prueba de Software

Luis Vinicio León Carrillo es actualmente Director General de e-Quallity, empresa especializada en prueba de software, de la que es co-
fundador. Fue profesor-investigador en el ITESO durante varios años, que incluyeron una estancia de posgrado en prueba de software en
Alemania, en la que abordó aspectos formales de dicha disciplina. Fue co-fundador del Capítulo Jalisco de la AMCIS.

S e puede percibir que en los últimos años


la industria de software mexicana ha estado
invirtiendo en el trabajo de mejora de proce-
sos, en la mayoría de los casos con los mo-
delos de calidad CMMI y MoProSoft.

Podemos ver dos motivaciones importantes


para esa inversión: por un lado mejorar las
capacidades de la empresa, bajo el supues-
to implícito de que la calidad del proceso
determina en buena medida la calidad del
software que se construye con ese proceso
(supuesto un tanto débil, como lo comenta-
mos en otro número); y por otro, tener más
credenciales que faciliten el vender más.

De manera general, los modelos de calidad


(MC) deben proporcionar un marco de refe-
rencia para: Figura 1. Estructura de los modelos de calidad.
a) Medir las capacidades de una organización  y
b) Diseñar y llevar a cabo mejoras de esas Además, los MC debieran mostrar validez es- yectos de mejora de capacidades en los que
capacidades. tadística y proveer una manera rápida para ob- hemos participado en los últimos años.
tener una evaluación inicial de capacidades.
Los MC deben mostrar al menos las siguien- Algunos modelos de calidad
tes características: Una estructura común de los MC (ver figu- especializados en prueba
• Completitud: el MC incluye todos los as- ra 1) es la de una matriz que considera por Los MC que hemos utilizado en proyectos de
pectos relevantes al medir capacidades. una parte áreas a medir y por otra niveles mejora de capacidades de prueba (incluidas
de madurez para cada una, lo que en con- las nuestras) son: Test Process Improve-
• Consistencia: el MC no contiene contradic- junto debiera facilitar la mejora de capaci- ment (TPI), de la empresa holandesa Polteq;
ciones internas. dades con saltos manejables (retadores, Testing Maturity Model (TMM), del Illinois
pero alcanzables en un tiempo y con una Institute of Technology (EEUU); y Test Apti-
• Objetividad: el MC tiene la precisión necesa- inversión razonables). tude Model (TAM), de la empresa mexicana
ria para que cuando lo apliquen dos personas e-Quallity.
diferentes para medir las capacidades de una Aquí haremos un breve análisis de varios
misma organización en un mismo periodo, los MC especializados en prueba de software La tabla siguiente muestra algunas caracte-
resultados sean prácticamente los mismos. que han mostrado su utilidad en varios pro- rísticas relevantes de cada uno de ellos:

36 MAY-JUL 2008 www.sg.com.mx


“Los MC deben mostrar validez estadística y proveer
una manera rápida para obtener una evaluación
inicial de capacidades”.

TMM TPI TAM

Se ha constituido como un estándar Utilizado en la industria de prueba


Busca subsanar carencias de CMM en el internacional de facto mexicana
área de pruebas

Muy orientado a entidades de prueba den- Considera la entidad de pruebas, indepen- Como TPI, pero haciendo énfasis en los
tro de organizaciones desarrolladoras de dientemente de su inclusión o no dentro primeros pasos de mejora (usualmente
software de una organización desarrolladora los más difíciles)

Mediano: 13 metas, 5 niveles Pesado: 20 áreas, 4 niveles Ligero: 13 áreas, 3 niveles

Difícil de localizar proveedor Inversión considerable en euros Inversión razonable en pesos

Calificación de la organización evaluada Calificación de la organización evaluada Calificación entre 1 y 100 representando
en términos del nivel en cada meta en términos de (sub) nivel por cada área la cobertura en cada área y la global

En la siguiente tabla mostramos la relación aproximada entre


las distintas calificaciones que se emiten con estos MC. Cabe re-
Conclusión
saltar que no se trata de una equivalencia estricta, pero brinda Aunque nosotros vemos con claridad
una idea aproximada. que en el desarrollo de software la re-
lación entre la calidad del proceso y la
calidad de producto no es tan fuerte
como en la manufactura, también lo
estamos de que el trabajo en la mejo-
ra de los procesos de prueba es una
labor que no debe dejar de hacerse.
En nuestra experiencia, hemos visto
que resulta útil iniciar con un mo-
delo ligero como el TAM, que con
costos moderados permite mejorar
significativamente las capacidades y
luego, si lo que se busca es una cer-
tificación internacional, brincar a un
modelo como TPI, aprovechando los
ahorros económicos obtenidos de la
» Luis Vinicio León Carrillo / Elena Ruelas Minor mejora anterior.

Referencias:
Elena Ruelas Minor es consultora de e-Quallity en proyectos de mejora de organizaciones de prueba. En [ tmmifoundation.org ]
su trayectoria ha actuado como tester senior y administradora de proyectos de prueba; como consultora, [ e-quallity.net ]
ha aplicado el modelo de calidad TAM, y fue la champion del proyecto de certificación en los modelos de [ polteq.com ]
calidad TPI y TMM de e-Quallity.

www.sg.com.mx MAY-JUL 2008 37


// PRÁCTICAS /*ARQUITECTURA*/

Más Allá del Manual de Usuario


Parte 1. Documentando la Arquitectura de Software
Por Omar Gómez

Principios básicos
En la actualidad, uno de los temas candentes del que se habla den- creados por un desarrollador o un grupo de ellos, y se organizan en
tro de la comunidad de desarrollo de software es el referente a las una jerarquía de capas, cada una brinda una interfaz estrecha y bien
arquitecturas. Una arquitectura de software describe cómo un sis- definida hacia las capas superiores.
tema se desglosa en componentes, cómo son interconectados y la
manera en que se comunican e interactúan entre sí. Tras la defini- • Vista física. Se toma en cuenta los requisitos no funcionales del
ción anterior se pueden formular un par de preguntas: ¿en qué gra- sistema tales como: disponibilidad, confiabilidad y desempeño, en-
do cumplimos con ésta definición durante el rol que desempeñamos tre otras más; y es ejecutado sobre varios nodos de procesamiento
como arquitecto o diseñador?, o mejor dicho: ¿Qué tan bien docu- (hardware). Estos nodos son relacionados con los elementos identi-
mentamos una arquitectura de software? ficados de las vistas anteriores. Aquí se especifican varias configu-
raciones físicas, por ejemplo: una para el desarrollo y las pruebas, o
La finalidad de este artículo es contar con un punto de referencia para el despliegue del sistema en plataformas distintas.
sobre esta práctica, abordando dos de los enfoques más relevantes
que han sido usados para realizar la tarea; también se describe su Kruchten define una última vista en la que propone el uso de un pe-
tendencia actual, y por último se menciona una serie de considera- queño subconjunto de escenarios que son instancias de casos de
ciones que se deben tener en cuenta al momento de documentar. uso. Su función es relacionar las cuatro vistas entre sí, de esta forma
se cuenta con una perspectiva general del sistema, que ayuda a des-
Comúnmente una arquitectura de software se documenta a través cubrir nuevos elementos o validar la arquitectura.
de un conjunto de vistas, en donde cada una de ellas representa un
aspecto o comportamiento particular del sistema. Dos de los artícu- Por su parte, Nord y compañía realizaron un estudio para conocer
los de mayor relevancia que abordan el tema del uso de vistas son en una arquitectura las estructuras que son de mayor importancia,
los de Philippe B. Kruchten y el de Robert L. Nord y compañía. El pri- y el uso de éstas. El estudio se efectuó sobre varios sistemas de
mero es el más conocido porque la propuesta es parte fundamental software de ámbito industrial. Tras el estudio realizado propusieron
de la metodología del Proceso Unificado, que en la actualidad es una cuatro categorías o vistas para agrupar las estructuras principales
de las metodologías que goza de cierto grado de popularidad. de una arquitectura, estas son:

Kruchten propone el uso de cinco vistas: • Vista conceptual. Se describe el sistema en términos de sus ele-
• Vista lógica. Apoya principalmente los requisitos funcionales, es mentos principales de diseño y las relaciones entre ellos dentro de
decir, lo que el sistema debe brindar en términos de servicios a sus un dominio determinado. Esta vista es independiente de las decisio-
usuarios, desglozado en una serie de abstracciones primarias, toma- nes de implementación y enfatiza en los protocolos de interacción
das principalmente del dominio del problema en la forma de objetos entre los elementos de diseño.
o clases de objetos. Aquí se aplican los principios de abstracción,
encapsulación y herencia. Esta descomposición no sólo enfatiza el • Vista de módulos. El sistema se descompone lógicamente en sub-
análisis funcional, también sirve para identificar mecanismos y ele- sistemas, módulos, y unidades abstractas. Cada capa representa las
mentos de diseño comunes a diversas partes del sistema. distintas interfaces de comunicación permitidas entre los módulos.

• Vista de procesos. Trata los aspectos de concurrencia y distribu- • Vista de ejecución. Se describe la estructura dinámica del sistema
ción, integridad del sistema, y tolerancia a fallas. También especifica en términos de sus elementos en tiempo de ejecución. Por ejemplo,
en cuál hilo de control se ejecuta efectivamente una operación de se modela las tareas operativas del sistema, procesos, mecanismos
una clase identificada en la vista lógica. Esta vista puede ser descrita de comunicación y asignación de recursos. Algunos de los aspectos
como un conjunto de redes lógicas de procesos que son ejecutados que se consideran en esta vista son: el desempeño y el entorno de
de forma independiente, y distribuidos a lo largo de varios recursos ejecución.
de hardware conectados mediante un bus o a una red de datos.
• Vista de código. Se organiza el código fuente en directorios, archivos
• Vista de desarrollo. Se centra en la organización real de los módu- y bibliotecas. Algunos de los aspectos que se incluyen son: los lengua-
los de software en el ambiente de desarrollo. El software se empa- jes de programación a utilizar, herramientas de desarrollo, la adminis-
queta en partes pequeñas que pueden ser bibliotecas o subsistemas tración de la configuración y la estructura y organización del proyecto.

38 MAY-JUL 2008 www.sg.com.mx


“Comúnmente una arquitectura
de software se documenta a través
de un conjunto de vistas”.

Es común que en la actualidad se utilice alguno de los 2 enfoques enfoques analíticos que el arquitecto puede utilizar. Para la elabora-
antes descritos. Sin embargo, la forma de documentar una arquitec- ción de la guía de estilos se puede tomar como referencia el informe
tura ha evolucionado significativamente. Ahora la tendencia sobre técnico realizado por Mark Klein y Rick Kazman, en el que los autores
esta práctica se centra en dos aspectos principales: proponen un marco de trabajo para llevar acabo un razonamiento
cualitativo o cuantitativo de los atributos de calidad presentes en un
• Los arquitectos deben documentar las vistas que sean de mayor utili- estilo arquitectónico, a través de una serie de ejemplos que descri-
dad y no ajustarse a un número fijo como lo muestran las propuestas. ben el uso del marco de trabajo con los atributos de calidad: desem-
peño, facilidad de modificación y disponibilidad.
• Documentar la arquitectura tomando en cuenta los intereses y nece-
sidades de las personas involucradas en el proyecto, estos intereses se La documentación de las vistas se realiza a través de lo que se deno-
traducen como las cualidades que el sistema resultante debe poseer. mina paquetes de vista. Los paquetes de vista contienen un número
reducido de elementos, logrando así una mejor comprensión ya que
Esta nueva tendencia está respaldada por dos grandes institutos, sólo se muestra un fragmento particular del sistema. De esta mane-
uno de ellos es el Instituto de Ingeniería del Software (SEI) y el otro ra, una vista se descompone en uno o más paquetes de vista.
es el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) elabora-
do por el comité de estándares del IEEE Software. A continuación se Para seleccionar las vistas a documentar, se sigue un procedimiento
describen los dos enfoques. basado con respecto a las estructuras que se encuentran presen-
tes de manera inherente en el sistema a construir, y en los intereses
El SEI en su propuesta define tres categorías denominadas tipos de primarios del personal involucrado. El procedimiento consta de los
vista, en las que prácticamente cualquier vista, dependiendo del siguientes pasos:
tipo de información que contenga, puede pertenecer a una de estas
categorías. Los tipos de vista pueden ser: 1) Elaborar una lista de vistas candidatas. En este paso se elabora
una tabla con la siguiente información: en las columnas se enumera
• Vista de módulo. Describe cómo el sistema es estructurado en un el conjunto de posibles vistas a documentar, mientras que en las fi-
conjunto de unidades de código. las se hace con el personal involucrado. En cada una de las celdas se
especifica el grado de información que requiere cada una de los par-
• Vista de conectores y componentes. Describe cómo el sistema es ticipantes en el proyecto, los valores posibles para las celdas pueden
estructurado en un conjunto de elementos que están en tiempo de ser: requerido a detalle, de manera general o ninguno. Este paso con-
ejecución así como su interacción. cluye una vez que se han seleccionado las vistas de mayor interés.

• Vista de asignación. Describe la relación entre las unidades de 2) Combinar las vistas. Posiblemente las vistas elegidas en el paso
software y los elementos del entorno como hardware, sistemas de anterior sean imprácticas de documentar debido al número de vistas
archivos o la organización de los equipos de desarrollo de software. seleccionadas, en este paso se reduce la lista de vistas de una mane-
ra que pueda ser manejable por el arquitecto. La reducción se lleva
Es importante señalar que cada tipo de vista viene acompañado de un acabo combinando varias vistas, de este modo una vista combinada
conjunto predefinido de estilos, de así los arquitectos pueden hacer muestra la información nativa de dos o más vistas separadas.
uso de éstos para documentarlas. De acuerdo a Shaw y Garlan, un
estilo arquitectónico es una descripción de los elementos, conectores, 3) Priorizar las vistas. Aquí, el arquitecto debe tener el conjunto mí-
topología, y un conjunto de restricciones sobre la interacción de los nimo de vistas que satisfacen los intereses del personal involucrado.
elementos. El uso de estilos promueve la satisfacción de los intereses Después, en conjunto con el administrador del proyecto se procede
definidos por parte del personal involucrado en el proyecto. a priorizar cada una de las vistas resultantes.

El SEI recomienda contar con una guía de estilos que contenga entre Una vez que las vistas se han seleccionado y priorizado, se inicia su
otros aspectos: la descripción relevante del estilo, elementos, re- documentación. El SEI cuenta con una plantilla que se puede utilizar de
laciones, propiedades, situaciones en las que no es recomendable referencia para dicho propósito. De acuerdo al SEI, la documentación
aplicarlo, circunstancias en las que se recomienda usarlo, y posibles de una arquitectura debe contener los siguientes apartados:

www.sg.com.mx MAY-JUL 2008 39


// PRÁCTICAS /*ARQUITECTURA*/

Figura 1. Relación de conceptos de la propuesta “vistas y más allá de éstas” del SEI.

• Presentación primaria. Muestra los elementos y sus relaciones en-


tre sí, usualmente se representa de manera gráfica. En el siguiente número continuaremos con la propuesta del
IEEE, así como las propuestas a considerar en la documentación
• Catálogo de elementos. Contiene los detalles de éstos, sus propie- de arquitecturas.
dades e interfaces.

• Diagrama de contexto. Muestra la relación entre el sistema o por- Referencias:


ción de éste y su entorno. [ Philippe Kruchten. “The 4+1 View Model of Architecture”. IEEE Soft-
ware, Los Alamitos, CA, USA. Vol. 12, No. 6, págs. 42-50. IEEE Computer
• Guía de variabilidad. Muestra los posibles puntos de variación en Society Press. 1995. ]
caso de que las vistas sean modificadas.
[ Dilip Soni; Robert L. Nord & Christine Hofmeister. “Software Archi-
• Antecedentes de la arquitectura. Explica la justificación de la arquitec- tecture in Industrial Applications”. ICSE ‘95: Proceedings of the 17th
tura así como los supuestos, y los resultados de los análisis realizados. international conference on Software Engineering, New York, NY, USA.
págs. 196-207. ACM. 1995. ]
• Otra información. En esta sección se incluyen prácticas y políticas
de la organización. [ Paul Clements; Felix Bachmann; Len Bass; David Garlan; James Ivers; Reed
Little; Robert Nord & Judith Stafford. “Documenting Software Architectures:
• Paquetes de vista relacionados. Básicamente, en esta sección se Views and Beyond”. Addison Wesley Professional. 2002. ]
definen las relaciones entre los distintos paquetes de vista.
[ Software Engineering Institute, SEI. “Views and Beyond Architecture
Para concluir con la propuesta del SEI, en la figura 1 se muestra los Documentation Template”.Template 05 febrero 2006. ]
principales conceptos de este enfoque.
[ sei.cmu.edu/architecture/rcgh_doc.html ]

[ Omar Gómez. “Evaluando la Arquitectura de Software, Métodos de


Evaluación”. Revista Software Gurú. Año 03 No. 02. 2007. ]

Omar Salvador Gómez Gómez obtuvo el grado de Maestro en Ingeniería de Software, en el Centro de Investigación en Matemáticas (CIMAT). Actualmente se
encuentra trabajando como estudiante de postgrado en el área de Ingeniería del Software Empírica en la Facultad de Informática de la Universidad Politécnica
de Madrid. Es miembro del IEEE Computer Society. Puedes contactarlo en ogomez@ieee.org

40 MAY-JUL 2008 www.sg.com.mx


www.sg.com.mx MAY-JUL 2008 39
// PRÁCTICAS /*PROGRAMACIÓN*/

Aprendiendo Ruby y Rails


Parte 3. El Framework Rails
Por Carlos Ortega

En esta ocasión se hablará del framework Ruby on Rails. Recomen- intercalado con HTML, de tal manera que aun cuando las vistas con-
damos al lector revisar la siguiente referencia para que realice la tienen código híbrido (HTML y Ruby), ERb toma dicha combinación,
instalación adecuada a su plataforma favorita: rubyonrails.org. interpreta los resultados y valores del lenguaje generando al final
También, es importante señalar que se requiere de un RDBMS ins- sólo HTML, así, éste puede ser reenviado por el web server para su
talado, en este caso se utilizó MySQL, por lo tanto, la sintaxis refe- interpretación limpia dentro del browser.
rente a la Base de Datos es propia de esta última. Los comandos
que se indican toman como base el ambiente Windows; para Linux Arrancando con Rails
se sugiere observar el cambio de sintaxis en las líneas de comandos El procedimiento que se describire a continuación es el proceso simple
correspondientes y el web server a utilizar es WEBrick. recomendado para la creación de cualquier aplicación basada en Rails:

Arquitectura de Rails 1) Creación del modelo de datos. En esta etapa se generan las bases de
Como ya se mencionó, Rails es un framework para desarrollo web con datos de desarrollo, prueba y producción, adicionalmente se crean los
base en el patrón arquitectónico MVC 2, es decir, la capa del frente objetos de negocio que representan al dominio que estemos tratando.
(presentación) es totalmente independiente de la capa de lógica de
negocio, la cual es representada por un controlador que manipula al 2) Creación de la lógica de negocio. Aquí se desarrolla toda la lógica
modelo (capa de datos). Los elementos arquitectónicos más impor- de negocio de la aplicación.
tantes de una aplicación Rails se presentan en el siguiente esquema:
3) Creación de la presentación. En esta etapa se generarán todos los
elementos que permitirán interactuar al usuario con el sistema.

Es posible que uno pueda preguntarse que, no necesariamente to-


dos los actores de un sistema son humanos. En este caso Ruby y
Rails proporcionan una gran variedad de recursos y librerías que
permiten interactuar con otros elementos externos, tales como el
correo electrónico o el uso de web services. La forma de cómo se
puede interactuar con este tipo de elementos queda fuera del alcan-
ce de este artículo.

Asumiendo que Rails y el manejador relacional se han instalado


correctamente, iniciaremos la generación del modelo creando las
bases de datos correpondientes, siguiendo las convenciones que
los diseñadores de Rails pensaron al contemplar un ciclo de vida de
desarrollo completo (desarrollo, pruebas, distribución). Crearemos
La arquitectura funciona de la siguiente manera: se genera una pe- tres bases de datos con características y nombres similares que per-
tición desde el navegador, el web server al recibirla la redirecciona a mitirán realizar cada una de estas fases.
un recurso específico a traves de la librería CGI, posteriormente, éste
manda la petición a un controlador que vive dentro de la capa de Pasos
ActionPack; el controlador por su parte no conoce a la capa de pre- 1. Definimos un directorio de desarrollo llamado trabajo, dentro de
sentación, definida por las vistas/Action View, sin embargo puede él creamos la aplicación base en Rails (en nuestro caso la denomi-
manipular y administrar los objetos de negocio, los cuales a su vez son naremos railsass):
representados por objetos que derivan de la clase Active Record, que es >cd trabajo
>rails railsass
la capa que une los datos contenidos en el RDBMS.

Una vez que dichos objetos de negocio son manipulados por el con- Al ejecutar este comando se crea la infraestructura base de la apli-
trolador, pueden ser compartidos de manera automática con las vis- cación, que es la estándar para cualquier aplicación formada de la
tas. ERb es un paquete que permite la manipulación de código Ruby siguiente manera:

42 MAY-JUL 2008 www.sg.com.mx


“ERb es un paquete que permite
la manipulación de código Ruby
intercalado con HTML”.

2. Se crean en MySQL 3 bases de datos:

railsass_development,
railsass_test y
railsass_deployment

3 - Una vez creadas las bases, se genera el


modelo en Rails. En una sesión de consola
Ruby, nos cambiamos al directorio recien
creado railsass e invocamos el generador de
modelos estándar utilizando como nombre
del modelo Usuario:

path/trabajo>cd railsass
path/trabajo/railsass>ruby script/generate model Usuario

www.sg.com.mx MAY-JUL 2008


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

Una vez creado el modelo es necesario realizar su integración con Al inspeccionar 001_create_usuarios.rb podemos corroborar que contie-
la infrastructura de la base de datos. Para ello, Rails proporciona un ne la definición de una clase que sigue la siguiente convención:
mecanismo que permite definir las conexiones para dar persitencia a
los objetos del modelo. Este mecanismo es un archivo de tipo YAML class Create<NombreEnPluralDelModelo>
denominado database.yml, que reside en el subdirectorio config
dentro del directorio railsass. Normalmente esta clase posee 2 metodos: self.up y self.down. El obje-
tivo de self.up es realizar las acciones correspondientes al ejecutar
4. Editamos el archivo database.yml e incorporamos los parámetros del la migración. Por su parte self.down es un método pensado para realizar
nombre host, los nombres de las bases de datos, los usuarios y los ajustes de reversa, es decir, deshacer acciones sobre la tabla en
passwords de acceso. Para nuestro caso emplearemos los siguientes: cuestión, en caso de tener que regresar a esa versión en particular.

development: Editamos 001_create_usuarios.rb asegurando que tenga las siguientes


adapter: mysql
definiciones:
database: railsass_development
username: root
password: class CreateUsuarios < ActiveRecord::Migration
host: localhost def self.up
create_table :usuarios do |t|
test: t.column :nombre, :string
adapter: mysql t.column :apellido, :string
database: railsass_test t.column :tipo, :integer
username: root t.column :permisos, :string
password: end
host: localhost end

production:
adapter: mysql def self.down
database: railsass_production drop_table :usuarios
username: root end
password: end
host: localhost
6. Ejecutamos la migración a través del manejador de tareas rake:
5. El acoplamiento entre los objetos de negocio y la base de datos se
realiza a través de una migración, la cual se realiza por medio de un cd path/trabajo/railsass
path/trabajo/railsass>rake db:migrate
archivo con código Ruby (extensión .rb) que se encuentra localizado
dentro del subdirectorio db/migrate. Típicamente el nombre de este
archivo sigue la convención: Como parte de la comprobación del correcto funcionamiento de la
migración, generaremos un objeto de negocio de tipo Usuario, califi-
<numeroVersión>_create_<nombreEnPluralDelModelo>.rb
cando sus atributos, y guardando todo el objeto en la base de datos.
Esto lo realizaremos a través de una consola interactiva irb Ruby y el
Así entonces el nombre del archivo de migración es 001_create_usuarios.rb propio manejador MySQL.

Como este archivo contiene la sintaxis de Ruby que describe la es- 7. Arranquemos la consola interactiva irb Ruby para cargar el am-
tructura de la tabla asociada al modelo en la base de datos, permite biente y la base de datos en memoria:
manipular código SQL a través de Ruby, resultando más cómodo,
path/trabajo/railsass>ruby script/console
sencillo y elegante. Adicionalmente una migración permite modificar
la estructura de las tablas conforme evolucione el desarrollo, de ahí
el número de versión como parte del nombre del archivo. 8. Creamos un objeto Usuario y cambiamos el valor a sus atributos
(a continuación la sesión correspondiente).

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 México, 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).

44 MAY-JUL 2008 www.sg.com.mx


“A través de Ruby se puede manipular
código SQL resultando más cómodo,
sencillo y elegante”.

>> tipo_usuario = 0
=> 0
>>tipo_admin = 1 En este artículo exponemos brevemente la arquitectura gene-
=> 1 ral de Rails, además de explicar cómo generar el modelo de
>>tipo_auditor = 2 negocios aplicando el concepto de migraciones. En la próxima
=> 2
>>unUsuario = Usuario.new
de nuestras entregas terminaremos el tutorial con el uso de
=> #<Usuario:0x4932e94 @attributes={“permisos”=>nil, “apellido”=>nil, “nombre”=> nil, controladores y vistas.
“tipo”=>nil}, @new_record=true>
>>unUsuario.nombre = “David”
=> “David”
>>unUsuario.apellido = “HeineMeier”
Referencias
=> “HeineMeier” [ Thomas David, Fowler Chad, Hunt Andy. “Programming Ruby” 2nd
>>unUsuario.tipo = tipo_admin Edition. The Pragmatic Bookshelf. 2005. ]
=> 1 [ Thomas David, Heinemeier Hanson David, et al. “Agile Web Develop-
>>unUsuario.permisos = “rwx rwx rwx” ment with Rails”. 2nd Edition. The Pragmatic Bookshelf, 2006. ]
=> “rwx rwx rwx”
[ Black, David A. “Ruby for Rails”. Manning Publications Co. 2006 ]
>>unUsuario.save
=>true [ ruby-lang.org/en ]
[ rubyonrails.org ]
9. Podemos corroborar a través de MySQL que después del último [ mysql.com ]
comando, el objeto unUsuario ha quedado registrado en la base.

www.sg.com.mx MAY-JUL 2008


// PRÁCTICAS /*PROcesos*/

CMMI-SVC®
¿Qué hay de Nuevo Bajo el Sol de los Servicios?
Por Elizabeth Almeraz

La industria de servicios abarca una porción diendo acrecentar la inversión realizada en El modelo de CMMI-SVC, contiene prácticas
muy amplia del mercado mundial, sin embargo los proyectos de mejora de procesos, am- que cubren los procesos de: administración
el modelo de CMMI-DEV (Capability Maturity pliando su aplicación a otras áreas de la de proyectos, administración de procesos,
Model Integrated for Development), no pro- organización; de tal forma que permita que establecimiento de servicios, entrega de ser-
porciona un marco de referencia adecuado la operación de los diferentes modelos ope- vicios; así como otros procesos de soporte.
para aquellas compañías que han expandido ren de manera síncrona con otras iniciativas Todos estos procesos están representados
su visión más allá del desarrollo de sistemas y existentes. En pocas palabras, el modelo es en 22 PA’s (áreas de proceso) obligatorias
han incursionado en el mercado de los servicios. una nueva constelación dentro de la suite de más tres PA’s opcionales, las cuales están
CMMI que pretende cubrir las necesidades de conformadas de la siguiente manera:
Para ellas, así como para empresas enfo- la industria de servicios y reconoce que éstos
cadas principalmente al área de servicios, son un catalizador en el crecimiento econó- • Se utilizan 16 PA’s que están incluidas den-
cualquiera que éstos sean, el SEI (Software mico mundial, y la necesidad de establecer tro de las áreas de proceso base del modelo
Engineering Institute) se ha dado a la tarea un marco de referencia, que proporcione guía de CMMI (CMMI Model Foundation); las cua-
de formular un modelo de capacidad que para desarrollar y mejorar las prácticas de les se comparten por los modelos de CMMI-
ofrezca el marco de referencia adecuado provisión de servicios de las organizaciones DEV y CMMI-ACQ.
para administrar y entregar los servicios como un medio para mejorar la satisfacción • Se definieron cinco PA’s para servicios.
ofertados, al cual ha denominado: CMMI- del cliente, el desempeño y la rentabilidad de • Se tiene una PA compartida con el modelo
SVC (Capability Maturity Model Integrated las organizaciones que proveen servicios. de CMMI-DEV (que es el área de Administra-
for Services), actualmente éste se encuentra ción de Proveedores) y...
todavía en su etapa de pruebas piloto, el En el contexto de esta nueva constelación • Para la adición de servicios tres PA’s.
SEI espera liberar el nuevo modelo durante de CMMI, un servicio es simplemente un
la primera mitad de 2008. producto intangible, que no puede ser al- El modelo comprende cuatro categorías de
macenado, y por tanto, el modelo puede ser áreas de proceso:
Recientemente el grupo de trabajo había dete- aplicado a cualquier organización que ofrez-
nido su labor porque presentó un caso de es- ca servicios, lo cual incluye compañías de • Administración de Procesos. Incluye seis
tudio al comité que coordina la realización del los más diversos sectores, desde las entida- áreas de proceso, de las cuales sólo se adi-
modelo, como respuesta a varias inquietudes des militares, pasando por las de tecnología ciona Organizational Service Management
que fueron expresadas por el Departmento de de información, hasta las dedicadas al cui- (OSM) de las ya incluidas en esta categoría
Defensa de Estados Unidos a mitad de año, re- dado de la salud, finanzas y transportes. De para el CMMI-DEV; y la cual es una de las
solviéndose a través del voto por la inclusión ahí que, la aplicabilidad de este modelo, sea PA’s opcionales a ser aplicadas.
del modelo a la Suite de Productos de CMMI; un complemento más que una competencia
por lo que se está trabajando actualmente en para el ITIL, ya que resumen las mejores • Soporte de Servicio. Con seis áreas de proce-
incorporar los cambios sugeridos por la comu- prácticas de este último en un conjunto de so. Esta categoría incluye las áreas de proceso
nidad experta; así como las recomendaciones prácticas específicas; al mismo tiempo que de soporte dentro de CMMI-DEV, y adiciona
realizadas en respuesta a las inquietudes del reutiliza aproximadamente el 77% de las solamente el área de Problem Management.
Departamento de Defensa. tareas contenidas en los modelos CMMI li-
berados y en uso (CMMI-DEV y CMMI-ACQ); • Establecimiento y entrega de servicios.
Este modelo está pensado para ayudar a las y se planea que el mismo método de evalua- Con sólo cuatro áreas de proceso. Esta ca-
organizaciones —que usen o no actualmen- ción SCAMPI sea utilizado, lo que permitirá tegoría realmente representa el fundamento
te el marco de referencia de CMMI-DEV— a a las empresas trabajar con un método de del modelo; ya que todas las áreas de proceso
transformar el desempeño de sus servicios evaluación estándar, independientemente de la misma están enfocadas a los servicios.
en ofrecimientos maduros y exitosos. Preten- de las constelaciones de CMMI que cual- Dentro de esta categoría se incluyen las si-
quiera de ellas adopte. guientes áreas de proceso:

Elizabeth Almeraz cursó estudios de MBA en Theseus Institute en Francia, es Lic. en Ciencias de la Informática en el IPN. Pionera en temas de aseguramiento
de calidad y mejora continua, iniciando grupo de SQA de Tecnosys-IBM para alcanzar el nivel 3 de madurez de CMM. Ha realizado diagnósticos, planes de
mejora, revisiones, evaluaciones, capacitaciones, verificaciones y asesorías sobre la implantación del programa de mejora con clientes. Actualmente es socia y
se desempeña como Coordinadora Técnica de Consultoría en Avantare.

46 MAY-JUL 2008 www.sg.com.mx


- Incident and Request Management (IRM). El CMMI-SVC es un modelo que se distingue
- Service Delivery (SD). del CMMI-DEV debido a que permite direc- Conclusiones
- Service System Development (SSD) -opcional. cionar la administración de punta a punta en Como se ve, el CMMI-SVC es un mode-
- Service Transition (ST). servicios complejos o sistemas complejos lo que bien puede ser el complemento
de desarrollo; y en dónde el uso de los pro- perfecto para otras iniciativas de me-
• Administración de Proyectos. Abarca nue- cesos de ingeniería puede ser aplicable; por jora continua; sin importar que se ten-
ve áreas de proceso. Esta categoría incluye lo cual, el primero puede ser utilizado para ga ya en marcha una iniciativa basada
todas las áreas de proceso de administra- robustecer el uso de CMMI-DEV. en algún otro modelo de CMMI, ITIL u
ción dentro de CMMI-DEV, considernado otro modelo enfocado a la mejora de
la correspondiente a la Administración de Otras ventajas de CMMI-SVC es que el modelo servicios. Habrá que esperar a tener
Proveedores (SAM), así como la de Adminis- direcciona los problemas comunes en los ser- los resultados en el siguiente año. Por
tración de Requerimientos (REQM, la cual se vicios tales como la entrega repetible a través lo pronto, se ha mostrado un gran in-
encuentra modificada para la aplicación en del tiempo, y los cambios constantes de clien- terés por el nuevo concepto que aún
el área de servicios). Sin embargo, dentro tes y requerimientos. Adicionando mejores se encuentra en gestación; aunque
de esta categoría se incluyen dos áreas de prácticas enfocadas a servicios, con lo cual se sin duda se espera que será una op-
proceso específicas para servicios: pretende reducir el número de fallas en ellos, ción que puede romper algunos para-
mientras se mantiene la disponibilidad de los digmas ya establecidos… en fin, sólo
- Capacity and Availabiltiy Management mismos. Así como mejorar la continuidad del el tiempo lo dirá.
(CAM). servicio y reducir los costos e incidentes de
- Service Continuity (SCON), manera efectiva y eficiente; mientras se incre-
la cual es opcional. menta la consistencia y la calidad de los servi- Referencias
cios proporcionados. [ sei.cmu.edu/cmmi ]

www.sg.com.mx MAY-JUL 2008


// UML

Sysml
Modelando Sistemas y Sistemas de Sistemas
Por Charlie Macías

En esta ocasión hablaremos de un estándar regulado por la OMG, Mientras que UML es un lenguaje de modelado de propósito general
recién salido del horno (septiembre de 2007) que quizá por mi for- (GPML), SysML es un lenguaje de modelado de dominio específico
mación en ingeniería mecánica ha venido llamando de manera cre- (DSML) definido como un perfil (adaptación) de UML 2.0. Esto es
ciente mi atención y la de muchas empresas desde hace algunos una ventaja, ya que le permite reutilizar la notación y semántica re-
años: SysML (omgsysml.org). lativamente madura (diez años) de UML 2.0.

El mundo de los sistemas ¿No es suficiente con UML?


Día a día interactuamos con un sinnúmero de artefactos que están Si SysML está basado en UML, entonces, ¿para qué otro lenguaje? El
conformados por un conglomerado de sistemas compuestos por problema con UML es que está fuertemente enfocado al software y
otros sistemas. Nuestro automóvil por ejemplo: está compuesto los ingenieros de sistemas están buscando un lenguaje de modela-
por un motor que es un sistema complejo de piezas mecánicas, do que permita especificar sistemas complejos que incluyan no sólo
hidráulicas, electrónicas y de software, que hacen posible su fun- componentes de software (por ejemplo: hardware, información, pro-
cionamiento como unidad. Todas estas piezas obedecen a distintos cesos, personal e instalaciones). SysML reduce el tamaño e inclina-
modelos en el ámbito de la termodinámica, la mecánica de fluidos, ción hacia el software que caracteriza a UML al tiempo que amplía
la cinemática, la dinámica, la tecnología de materiales, etcéctera. Si su aplicación para modelar requerimientos y restricciones paramé-
ampliamos aún más la frontera de control, el automóvil puede ubi- tricas a fin de soportar la ingeniería de requerimientos y el análisis
carse dentro de otro sistema más grande conformado por las vías de de desempeño, que son esenciales en la ingeniería de sistemas. Un
comunicación sobre las que transita, lo cual impacta sobre el siste- ejemplo emblemático lo conforman los llamados sistemas embebi-
ma ambiental y sobre la sociedad. dos para los que desde 1998 existe una adaptación de UML conocida
como Real Time UML, la cual no ha sido suficiente.
La especialización de UML
SysML (System Modeling Language) es un lenguaje de modelado de Ventajas sobre UML
dominio específico para aplicaciones de sistemas de ingeniería. So- Entre las principales ventajas que SysML ofrece, sobre UML, a los
porta la especificación, análisis, diseño, verificación y validación de ingenieros de sistemas para especificar sistemas o sistemas de sis-
un amplio rango de sistemas y sistemas de sistemas. Estos sistemas temas se encuentran:
pueden incluir hardware, software, información, procesos, personal
e instalaciones. 1. SysML expresa mejor que UML la semántica de la ingeniería de sis-
temas. SysML reduce la predilección por el software propia de UML,
¿Qué es la ingeniería de sistemas? y agrega dos diagramas para la administración de requerimientos y
INCONSE (International Council on Systems Engineering) define a la análisis de desempeño: diagramas de Requerimientos y diagramas
ingeniería de sistemas como una rama de la ingeniería cuya respon- Paramétricos, respectivamente.
sabilidad es crear y ejecutar un proceso interdisciplinario que tiene
como objetivo asegurar que las necesidades de los clientes y grupos 2. SysML es más pequeño y sencillo de aprender que UML. SysML
de interés sean satisfechas con alta calidad, de manera confiable, remueve varias construcciones centradas en el software, si lo medi-
rentable y apegada a calendario a lo largo de todo el ciclo de vida mos en diagramas todo el lenguaje es más pequeño: nueve diagra-
del sistema, que va desde su desarrollo, pasando por su operación mas, de SysML vs. 13 diagramas de UML.
y hasta su eliminación. Este proceso está conformado normalmente
por las siguientes siete actividades: delimitar el problema, investi- 3. Las tablas de asignación de SysML soportan varios tipos de asig-
gar alternativas, modelar el sistema, integrar, implantar el sistema, naciones (por ejemplo: asignación de requerimientos, asignación
evaluar el desempeño y volver a evaluar. El proceso de ingeniería funcional, asignación estructural) facilitando, de esta manera, la ve-
de sistemas no es secuencial: las actividades son desarrolladas de rificación y validación (V&V) automatizada y el análisis GAP.
forma paralela e iterativa.

48 MAY-JUL 2008 www.sg.com.mx


“Los diagramas de estructura,
comportamiento, requerimientos y
parámetros son la base de la especificación”.

Figura 1. Estructura de SySML.

4. Las construcciones de administración del enfrentar: la superposición lingüística y la


modelo de SysML soportan la especificación divergencia lingüística. El primer problema
de modelos, vistas y puntos de vista; y es- se deriva de que varios diagramas de SysML
tán arquitectónicamente alineadas con las extienden el significado o se derivan de los
IEEE-Std-1471-2000 (Practicas Recomenda- definidos en UML (por ejemplo: los diagra-
das por el IEEE para la Descripción Arquitec- mas de Actividad o los de Bloques/Bloques
tónica de Sistemas Intensivos en Software). Internos en SysML vs. los de Clases/Estruc-
tura Compuesta/Componentes en UML). El
UML + SysML segundo es el cambio de enfoque necesario
En un proyecto grande, por supuesto se para adaptarse al ámbito de la ingeniería de
pueden utilizar ambos lenguajes, de hecho, sistemas, por ejemplo: los diagramas Pa-
esta fue la intención de los diseñadores del ramétricos inyectan un modelo restricción-
lenguaje SysML. Sin embargo, es importan- lógica en el modelo objeto-componente de
te señalar que en este ámbito se han iden- UML. Al final del día, como siempre, la prác-
tificado dos problemas típicos que hay que tica está en la experiencia.

Charlie Macías es consultor e instructor senior, especializado en temas relacionados con UML en
Milestone Consulting, empresa especializada en capacitación práctica-intensiva y consultoría en UML,
BPMN, SysML, Arquitectura de SW y PM. Milestone Consulting fue la primera empresa mexicana
miembro de la OMG, y actualmente es REP del PMI. info@milestone.com.mx
www.milestone.com.mx

www.sg.com.mx MAY-JUL 2008


// PM CORNER

EL VALOR DE LAS OFICINAS DE PROYECTOS


Apalancar la PMO para Consolidar el Estatus y las Métricas del Proyecto
Por Tom Mochal
Traducción y Adaptación: José Luis Flores

La PMO (Project Management Office) dentro puestas que se están buscando, entonces no •Explicar quién está solicitando la informa-
de la organización es la única capaz de vi- será necesario dar seguimiento adicional con ción y para qué será utilizada. Este es un
sualizar todos los proyectos en curso. Por lo el gerente del proyecto. aspecto clave para la presentación de reportes
tanto, es la entidad lógica para definir y reco- de estatus consolidado. A las personas no
lectar un conjunto de indicadores comunes: Problemas para la obtención del les gusta invertir tiempo para proporcionar
y es el lugar lógico para recolectar informa- estatus información, si no sienten que ésta será uti-
ción del estado de los proyectos para gene- La PMO necesita recolectar información del lizada. Si las personas entienden quién está
rar reportes consolidados. Esas actividades estatus de cada proyecto, desarrollar un re- solicitando la información, se puede convertir
pueden ser triviales si todos los proyectos porte consolidado y exponerlo. Sin embargo, en una alta prioridad para ellos.
recolectan indicadores e información de como todas las actividades que recaen en las
estatus con apego a los requerimientos. Lo personas, esto puede ser más fácil de decir •Ser claro cuando solicitemos información
cual provoca que estos valiosos servicios se que de lograrse. Su PMO probablemente se que necesitaremos y utilizaremos. Asegúrarse
conviertan en los que potencialmente con- encontrará con los siguientes retos: de no solicitar información que no sea necesaria
sumen mayor tiempo y sean los menos pre- para crear el reporte de estatus consolidado.
feridos de los que la PMO desempeña. •Puntualidad. Primero, la posibilidad de
que todos los gerentes de proyecto no envíen •Comunicar claramente cuándo deberán
Un servicio que típicamente está asociado la información del estatus dentro del tiempo entregarse o presentarse los reportes de
con una PMO en el mercado, es la presen- establecido que se necesita. estatus. La PMO tendrá dificultad en el le-
tación de reportes del estado de todos los vantamiento de información del estatus en
proyectos que se están ejecutando en la or- •Precisión. En muchos casos, la información algún porcentaje de los equipos de proyecto,
ganización. Dicho concepto puede extender- no será exacta. Por ejemplo: el gerente del por lo tanto, debemos asegurarnos de no propi-
se de tal forma que la PMO dé seguimiento proyecto puede hacer parecer que su trabajo ciar la excusa de que no saben cuándo era el com-
completo a una vista global del portafolio de se encuentra dentro del plan, aún cuando promiso de entrega de los reportes de estatus.
proyectos activos, así como a los pendientes no todas las actividades esquemadas están
de iniciar y a la historia de los terminados. concluidas. Esto se pude identificar si los •Dar seguimiento con los gerentes de pro-
logros a completar en el periodo previo, no yecto a los temas que necesitan mayor
Desde un punto de vista muy simple, esto reflejan la misma actividad que se suponía explicación o clarificación. Al recibir infor-
podría parecer un ejercicio superficial, pero debería estar terminada de acuerdo con el mación de estatus que no contenga el con-
puede consumir bastante tiempo. Primero, reporte de estatus anterior. tenido o el formato requerido, se le debe dar
la PMO debe trabajar con la gerencia que pa- seguimiento con el gerente del proyecto.
trocina el proyecto para definir qué es lo que •Compleción o completitud. En muchos ca- Este seguimiento está diseñado para asegu-
formará parte del reporte de estatus consoli- sos, la información en el reporte de estatus rar que los usuarios saben qué se requiere,
dado. Algunas organizaciones gustan de man- es precisa, y puede inclusive estar en tiempo. para evitar las reuniones continuas con ellos.
tener cada proyecto en una línea, con algún Sin embargo, puede encontrarse incompleta.
indicador tipo semáforo del estatus global, Por ejemplo: la información proporcionada •Usar el proceso de gobierno en caso de
por ejemplo: verde (O.K.), amarillo (precau- puede ser demasiado breve y no representar ser necesario. Si la PMO está invirtiendo
ción) o rojo (problemático). Si es necesaria el estatus real del proyecto. mucho tiempo para obtener la información
más información, se puede dar seguimiento cada mes, se tiene que solicitar ayuda al pa-
en conjunto con el gerente del proyecto. Otras Superar los problemas del reporte trocinador del programa, respaldándose en
organizaciones gustan más de ver un repor- de estatus el proceso de gobierno de la organización.
te completo con el estatus detallado de cada Desde luego, dichos problemas necesitan Las gerencia Senior debe mantener la res-
uno; si se presentan preguntas o inquietudes, superarse. La PMO puede atacar este tipo ponsabilidad en caso de que los gerentes
el reporte de estatus puede contener las res- de problemas crónicos a través de las si- de proyecto no puedan generar los reportes
guientes actividades: de estatus en tiempo y forma.

José Luis Flores es Director Editorial de TenStep Latinoamérica y tiene más de 25 años de experiencia en Dirección de Proyectos de TI, cuenta con una Maestría
en Desarrollo Organizacional y actualmente es Doctorando en Ciencias de la Administración. Puede ser contactado en: jflores@tenstep.com.mx

50 MAY-JUL 2008 www.sg.com.mx


Indicadores consolidados intenta cuantificar el valor, se encontrará rá- expectativas del cliente. Al realizar la práctica
Existen diferentes lugares donde las organiza- pidamente bloqueado. Es un poco parecido continua de entrevistar un subconjunto de
ciones obtienen valor con la implantación de a tomar una nube. Desde otra perspectiva, gerentes, se comienzan a ver algunas ten-
un proceso formal de Dirección de Proyectos. parece como si debiese existir algo sólido dencias que puede aplicarse al resto de los
Si no se intenta dar seguimiento y cuantificar que pudiera tomarse con las manos. Sin proyectos dentro de su organización.
algunos de esos beneficios, la organización no embargo, en cuanto más cerca o más de-
tendrá idea del valor que se le está proporcio- talle se consiga, todo se vuelve más vago Y como tercer tema, buscar la reutilización del
nando. Los indicadores asociados con el valor y confuso. Existen un par de enfoques para valor asociado haciendo uso de un proceso
de la dirección de proyectos, son también in- estos indicadores organizacionales. Uno es común de la gestión de proyectos. De nuevo,
dicadores indirectos del valor de la PMO. Por dejarlo a la investigación de la industria, y este enfoque requiere el solicitar a los geren-
ejemplo: si hay más proyectos que se finalizan buscar compañías y casos de estudio que tes de proyecto la estimación de los ahorros
dentro de las expectativas de la organización, son similares a los de su organización para asociados con el uso de procesos similares
esto sería un indicador del valor asociado con establecer comparativos adecuados. La idea en múltiples proyectos y obteniendo así los
la Dirección de Proyectos, y de la misma for- resultante de este proceso es que, si alguien beneficios estimados en tiempo y costo por la
ma, mostrarían el valor que ésta proporciona. más fue capaz de medir el valor y estamos reutilización continua de procesos comunes,
inmersos en un proceso similar de desplie- obtenidos en diferentes proyectos.
Indicadores organizacionales gue (ya sea de una PMO o de un proceso for-
Uno de los temas más difíciles a los que mal de Dirección de Proyectos), se tendría la Hay algunas áreas de servicio donde la PMO
se enfrenta la PMO, es el determinar el va- capacidad de obtener un valor similar. no tiene suficiente nivel de experiencia. Los
lor de la dirección de proyectos. Es una de indicadores podrían ser una de esas áreas.
las preguntas fundamentales que deben El segundo es intentar calcular el valor asocia- Muchas compañías no conocen lo suficien-
hacerse los patrocinadores y la alta direc- do con el uso de la metodología. Por ejemplo: te acerca de la definición y la captura de un
ción en la ejecución de los proyectos de la trabajar con los gerentes de proyecto en dife- buen conjunto de métricas. En este sentido,
organización, y es una de las más difíciles de rentes tipos de proyectos para determinar los algunas firmas de consultoría tienen una
contestar exitosamente. Esto parece ser un ahorros asociados al mantener buenos pro- gran experiencia en esta área con la cuál po-
valor intuitivo al implantar una metodología cedimientos de cambio de alcance, gestión drían apalancarse para asegurar un comien-
estándar de Dirección de Proyectos, pero se de riesgos proactivo y gestión efectiva de las zo con el pie derecho en este tema.

www.sg.com.mx MAY-JUL 2008


// PUBLIRREPORTAJE

IDS, Una Empresa Orientada a Procesos


Experiencia en Acreditación CMMI3
Por José de J. Hernández

Ser una empresa orientada a procesos, implica Elementos importantes neación detallada al inicio de cada una. Es
ser fieles creyentes del beneficio de los proce- Para establecer un programa de mejora con- importante resaltar que un programa de me-
sos, anticiparse en la calidad de los productos tinua y trabajar con orientación a procesos, jora continua debe ejecutarse con las buenas
que desarrolla y promover una filosofía de tra- primeramente debemos instaurar un en- prácticas de administración de proyectos.
bajo con prácticas estándar. IDS es una organi- foque de calidad que nos permita trabajar
zación que ha trabajado y trabajará fuertemente con una filosofía de desarrollo de productos •Definición. Su propósito fue desarrollar to-
en ello. Este ha sido el espíritu que lo llevó a libre de defectos; así como comprender el das y cada una de las prácticas que hacían
alcanzar su siguiente eslabón en la mejora de costo del re-trabajo asociado al no hacer- falta incorporar a la metodología de IDS, así
procesos: ser una empresa CMMI® nivel 3. lo de esta manera (costo de la no calidad). como las mejoras detectadas conforme a las
Posteriormente implantar procesos y técni- áreas de proceso de CMMI®. Las definiciones
Antecedentes cas definidas que nos guíen en la manera y mejoras realizadas fueron guiadas, revisadas,
IDS Comercial es una empresa 100% mexicana como desarrollaremos nuestros productos; retroalimentadas y validadas por un comité que
fundada en 1982 que ofrece servicios de y finalmente emplear herramientas de apo- para IDS es sumamente importante: el SEPG
consultoría, desarrollo y capacitación en Tec- yo a los procesos. (Software Engineering Process Group).
nologías de Información. Tiene participación
en un gran número de proyectos dentro de los No debemos olvidar que los elementos ver- •Implantación. Esta etapa comenzó con
sectores financiero, de seguros, comercial, manu- daderamente importantes para trabajar fuertes trenes de capacitación a los inte-
factura, telecomunicaciones, servicios y gobierno. con una orientación a procesos son: gente, grantes de los equipos de trabajo, conti-
procesos y tecnología. El proceso en sí, es nuando en forma permanente con un mode-
Uno de los principales factores que IDS ha consi- la mezcla de gente capacitada, procedimien- lo de mentoría hacia los proyectos, lo cual
derado como importante desde sus inicios para tos establecidos y herramientas de apoyo. tiene como objetivo apoyarlos en el correcto
lograr el éxito, es fomentar una cultura orienta- Solamente combinando estos elementos uso de los elementos metodológicos.
da a procesos para la ingeniería de software, podremos desarrollar productos de calidad.
apegados a las mejores prácticas, estándares •Mini Appraisal tipo B. Después de haber
internacionales y modelos de la industria. Estrategia para la Alineación al ejecutado durante cierto tiempo la nueva
modelo de referencia versión de nuestra metodología, realizamos
Después de alcanzar el nivel 3 de SW-CMM® Para describir las diferentes aristas en las una evaluación informal tipo B para deter-
en el año 2004, IDS comenzó un importante que debemos trabajar en un programa de minar qué tan lejos nos encontrábamos del
ciclo de mejora en el año 2006 para alinear mejora continua, expondremos brevemente cumplimiento de las prácticas que marca
su metodología de desarrollo de software al en qué consistió el proyecto que culminó CMMI® 1.2 para el nivel 3, y así observar nue-
modelo CMMI® versión 1.2 en su nivel 3. con la evaluación CMMI de IDS. vamente posibles oportunidades de mejora.

Como resultado de este esfuerzo, en marzo Las grandes etapas que consideró el proyecto •Ajustes y preparación para la evaluación.
de 2008 IDS realizó su evaluación formal, fueron: Su enfoque fue realizar ajustes a nuestra
obteniendo la acreditación como una em- • Mini Appraisal tipo C. Su objetivo fue eje- metodología de acuerdo a la etapa anterior,
presa CMMI® con nivel de madurez 3. cutar una evaluación informal tipo C que per- así como una fase de preparación para llevar
mitiera conocer la brecha entre la definición a cabo toda la logística que conlleva una
¿Cuál ha sido la experiencia de IDS al traba- vigente de la metodología alineada a SW- evaluación formal.
jar un programa de mejora continua? A conti- CMM® nivel 3 con respecto a CMMI® nivel 3;
nuación, describiremos a grandes rasgos algunos así como identificar oportunidades de mejora. •SCAMPI A. Finalmente, ejecutamos nuestra
de los factores, consideraciones importantes y evaluación formal, teniendo como objetivo
lecciones aprendidas que IDS ha obtenido al im- •Planeación. Con base en lo anterior, defi- evaluar nuestro nivel de madurez, detectar
plementar un programa de mejora continua. nimos la estrategia y las etapas en las que nuevas oportunidades de mejora, así como
se dividiría el proyecto, realizando una pla- obtener nuestra acreditación CMMI® nivel 3.

José de J. Hernández Suárez es Lic. en Informática por la UNAM y Maestro en Ingeniería de Software por el Centro de Investigación en Matemáticas (CIMAT).
Desde 1998 ha trabajado en el campo de la ingeniería de software asumiendo diferentes roles como: desarrollador, analista, líder de proyecto y gerencia de
proyectos, mismos que desempeñó en la Dirección General de Servicios de Cómputo Académico de la UNAM. En los últimos 2 años y medio desempeñó
el puesto de gerente de procesos y calidad de software, estando a cargo de la implementación de CMMI®3 en IDS. Actualmente es director de tecnología y
calidad de IDS Comercial. jjhernandez@ids.com.mx

52 MAY-JUL 2008 www.sg.com.mx


Cabe resaltar que como parte de la estrate- sensibilice y palpe la utilidad y beneficio de sumamente largo, el cambio y el esfuerzo se
gia, se definió el apoyo de entrenamiento in- un nuevo proceso; realizar workshops para abandonan, se pierde la motivación y falla
formal y formal en el modelo CMMI, evalua- reforzar el conocimiento; dividir el aprendi- el proceso de mejora. El secreto consiste en
ciones informales (mini appraisal), así como zaje en módulos, y reconocer a la gente ca- delimitar y administrar bien esa transición,
consultoría de un externo, que permitiera pacitada y acreditada en los procesos. buscando construir el compromiso de todos.
aportarnos enfoques, revisiones técnicas
a las definiciones (peer reviews), retroali- • Es necesario trabajar en una sólida estrategia El obtener una acreditación en el modelo,
mentación y soporte en la preparación de la de administración del cambio que considere: no significa haber finalizado y que podemos
logística de la evaluación formal con la in- una campaña de difusión que busque ge- bajar la guardia en los elementos que aquí
tención de que IDS no actuara como juez y nerar identidad con la metodología y sensi- exponemos. Tampoco es bueno pensar en pla-
parte en su implementación. Este apoyo fue bilización sobre la aplicación de la misma; near de inmediato la implantación del siguiente
dado por la empresa Innevo. distribuir estratégicamente en el tiempo la nivel. Primeramente debemos comprender las
comunicación; mantener informada a toda oportunidades de mejora detectadas, y planear
Consideraciones importantes y la organización sobre el trabajo del SEPG; un nuevo ciclo para atacarlas; trabajar en una
lecciones aprendidas comunicar cómo va el proyecto; medir y re- estabilización de la utilización de la metodo-
Resulta importante comprender que para munerar (no de manera monetaria); reforzar el logía, dando el tiempo adecuado para forta-
trabajar dentro de un programa de mejora reconocimiento a través de tips y elementos lecer el nivel de madurez. Una vez logrado
continua deben conocerse, contemplarse y adicionales para el uso de los procesos; hacer esto, será entonces cuando podremos vol-
trabajar los siguientes aspectos: el beneficio tangible, motivacional; evidenciar tear a un nuevo ciclo de mejora que tenga
el beneficio individual derivado del cambio. como meta el siguiente nivel del modelo.
• Definición e involucramiento correcto de
los roles participantes en el programa de • En la ejecución de los procesos en los pro- Basado en: Boria, Jorge, “Change does not Happen”, febrero, 2002.
1

mejora continua: sponsor, quien patrocina yectos, es importante considerar: un proceso


el proyecto. SEPG, quien analiza, propone, definido para el proyecto, que el equipo
define, implementa, revisa, retroalimenta y identifique los procesos que va a ejecutar; Conclusiones
valida las mejoras; mentores, quienes actúan asignar un mentor que apoye al proyecto en Implementar un programa de mejora
como coach de los equipos de trabajo en la todo momento; instaurar diferentes canales continua no depende del modelo de re-
implantación de las mejoras. QA, quienes para las propuestas de mejora de procesos; ferencia adoptado para desarrollar una
aseguran la calidad de los procesos y los reconocer a los proyectos que mantengan el pa- metodología de trabajo. Es importante
productos de trabajo; champion de la mejo- rámetro (umbral) más alto de apego a la meto- buscar y combinar de manera asertiva,
ra continua, quién tiene la visión de la mejo- dología; fomentar un espíritu de competencia; un enfoque de orientación a procesos.
ra, difunde la filosofía establecida y es res- e implementar un QA orientado a servicio.
ponsable del programa de mejora continua; Debemos planear ciclos de mejora
agentes de cambio, actores en la operación • Los proyectos deben contar con una infra- que nos permitan alcanzar a corto y
de los proyectos, convencidos de la mejora y estructura de procesos: repositorio de la defi- mediano plazo las metas propuestas,
que contribuyen a permear lo establecido. nición de procesos de donde puedan obtener al lado de una clara y robusta estrategia
los elementos metodológicos; mostrar ejem- de administración del cambio.
• En la definición de las mejoras es impor- plos de la elaboración de los artefactos; publi-
tante: involucrar a la gente con más expe- car material de capacitación; difundir leccio- Como su nombre lo indica, un programa
riencia en el campo; tratar de hacer lo más nes aprendidas; recolectar activos de proceso de mejora continua nunca termina, pues
sencillos y útiles los procesos; utilizar la tec- (artefactos reales de proyectos finalizados). siempre existen posibilidades de mejo-
nología disponible; hacer partícipes de la rar: alinearnos a un modelo, optimizar
definición a los integrantes de los equipos Con todos los elementos anteriores debemos algo, buscar un siguiente nivel, definir
de trabajo; realizar talleres para revisar, re- comprender que durante una transición nuevos productos o servicios para nues-
troalimentar y validar los procesos; conside- del cambio, lo viejo y lo nuevo coexiste y la tros clientes, etcétera. Lo importante es
rar en los procesos las bases de definición gente pasa por un momento complicado al saber qué queremos mejorar, por qué lo
de los siguientes niveles de madurez del tratar de atravesar del pasado al presente. queremos mejorar y entonces mejorar-
modelo; definir las políticas que regirán a Este conflicto puede producir baja producti- lo, utilizarlo, estabilizarlo y hacer de ello
los procesos de la organización acorde a la vidad, lo cual hasta cierto grado es normal, una filosofía de trabajo.
misma; capacitación constante en donde se sin embargo, si el período de transición es

www.sg.com.mx MAY-JUL 2008 53


// fundamentos

¿Cuál es mi Password?
La Epidemia de Cuentas
Por Karina Okón

¿Cuántos nombres de usuario manejas para


acceder a las distintas aplicaciones que uti-
lizas en tu trabajo diario? Dependiendo del
tamaño y características de tu empresa, la
respuesta puede variar, pero en general en
organizaciones medianas o grandes, el nú-
mero tiende a ser elevado; pero ¿alguna vez
has pensado en las aplicaciones que resi-
den fuera del área laboral, pero con las que
tienes una relación de negocio?

Casi todos nosotros hemos experimentado


la frustración que supone olvidar una de las
muchas contraseñas necesarias para acce-
der a una determinada aplicación web, y
la pérdida de tiempo (y dinero) mandando
correos electrónicos o hablando por teléfo-
no con el personal de soporte técnico para
cambiar la contraseña olvidada. Aunque los Figura 1. Arquitectura de autoridad única.
repositorios únicos de identidades han dado
a los propietarios y gestores de los recursos Los propietarios y gestores de los recursos, sistemas con una única acción de login, ali-
control sobre los mismos, han aparecido pro- se dan cuenta a menudo que el manteni- viando la carga que supone recordar un gran
blemas graves de seguridad y acceso, al cre- miento de las cuentas de los usuarios es un número de cuentas y contraseñas.
cer el número de aplicaciones y recursos tanto difícil desafío. La gente cambia regularmen-
dentro como fuera de las organizaciones. te de jefe y/o puesto de trabajo dentro de Pasos para el tratamiento
la organización, muy frecuentemente sus ¿Qué debemos hacer para llegar a la agru-
Los usuarios finales tienen demasiadas accesos a cuentas y aplicaciones no son pación de identidades?
cuentas y contraseñas para mantener ade- deshabilitados con los cambios de funcio-
cuadamente. Meta Group estima que duran- nes, creándose las llamadas cuentas fantas- Primero, examinar la cultura de la empresa.
te el tiempo de estancia en una empresa, a ma que pueden suponer un back door para Recordemos que hasta ahora los propieta-
un empleado se le asigna una media de 16 que ex-empleados, por ejemplo, accedan a rios y gestores de recursos se sienten bien
contraseñas para acceder a aplicaciones datos confidenciales de la compañía. Enton- con el control autónomo sobre los mismos.
críticas. Para ser capaces de recordar estas ces, ¿cuál es la solución? Ahora deben estar dispuestos a renunciar a
contraseñas, los usuarios las guardan en si- algún grado de autonomía para conseguir
tios poco seguros (como un archivo llamado La agrupación de identidades mejorar el servicio a los usuarios.
contraseñas en su PC, post-its debajo del La solución al problema de la epidemia de
teclado, etcétera), utilizan la misma clave cuentas viene de la mano de la agrupación Segundo, debe haber una confianza entre los
en varios sistemas o simplemente esperan de identidades, que es esencialmente la uni- propietarios de los recursos y los propietarios
hasta necesitar una determinada cuenta/ ficación de datos dispares de identidades o de los sistemas de identidades. Esta confian-
contraseña para llamar a soporte técnico. cuentas de usuario. Este modelo unificado za debe ser formalizada en acuerdos legales
Todo lo anterior supone una gran pérdida permite que los datos, a través de diferen- y de negocio, que marquen claramente las
de tiempo y dinero además de los evidentes tes aplicaciones, estén disponibles dónde y responsabilidades de cada uno a la hora de
riesgos en la seguridad de la organización. cuándo se necesiten. Para los usuarios, esto proporcionar, aceptar y gestionar la informa-
supone la capacidad de acceder a múltiples ción de identidades. Este paso es a menudo

Karina Okon. IdM Specialist en BMC Software de México. Especialista en seguridad, ha coordinado y desarrollado proyectos para el aprovisionamiento e integra-
ción de los recursos de seguridad de las corporaciones a las diferentes unidades del negocio; responsable de dar soporte e información al área comercial, socios
de negocio y área técnica acerca de la estrategia del área de seguridad en BMC Software. Ha apoyado al área de ventas a través de capacitación para asegurar
una penetración de mercado más rápida, manteniendo la calidad del servicio a clientes.

54 MAY-JUL 2008 www.sg.com.mx


el mayor reto. Evidentemente, las primeras Alliance, consorcio de la industria dedicado
relaciones de agrupación de identidades, se- a la gestión de entidades federadas.
rán más sencillas en aquellas organizaciones
con las que exista ya una buena relación. •Shibbolet, iniciativa de código abierto ba-
sada en SAML.
Tercero, son necesarios componentes tecno-
lógicos. Detrás de la agrupación está la ne- La implementación de la agrupación de iden-
cesidad básica de comunicación entre cada tidades no es trivial, pero el beneficio supera
sistema. Los sistemas están hechos por dis- con creces los desafíos que tendremos que
tintos fabricantes, utilizando diferentes herra- vencer. A las mejoras de la seguridad y los
mientas sobre plataformas heterogéneas, todo ahorros de costos citados anteriormente, se
lo cual conduce a barreras de comunicación al une la posibilidad de hacer nuevos negocios
implementar la agrupación de identidades. mediante el establecimiento de alianzas en-
tre empresas de distintos sectores. Cuanto
La buena noticia es que hay un número de antes se empiecen a examinar los procesos
estándares de la industria, que permiten in- de negocio, los procesos de TI asociados y
ter-operar a una gran variedad de productos la cultura interna de la compañía, estaremos
independientes. Estos estándares incluyen: en disposición de abordar nuevos retos y sa-
car partido de la agrupación de identidades
•SAML (Security Assertions Markup Lan- para servir mejor a nuestros usuarios, pro-
guage), estándar definido por OASIS ( Orga- veedores, socios y clientes.
nization for the Advancement of Structured
Information Standards). Ejemplos prácticos
En las gráficas podemos ver dos ejemplos
•WS-Federation, especificación promulga- de agrupación de identidades. En la figura 1
da por Microsoft, IBM y otros. se trata de diversas compañías públicas (un
organismo, una agencia, una delegación y
•ID-FF (Liberty Federated Identity Manage- un patronato) pertenecientes a una misma
ment Framework). Especificación de Liberty tarea. La arquitectura elegida (denominada
autoridad única de gestión de identidades)
está basada en un hub central que actúa
como proveedor de identidades, a excepción
del patronato, el resto de las organizaciones
actúan como proveedoras de datos.

Asimismo, el hub actúa como suministrador de


servicios para todas ellas, menos para el patro-
nato, mientras que las cuatro entidades actúan
como proveedores de servicios hacia el hub.

En la figura 2, podemos observar las distin-


tas identidades del usuario en los diferentes
puntos y las relaciones de confianza entre
ellas. Gracias a estas relaciones una perso-
na puede validarse en el organismo dónde
trabaja, y acceder a una aplicación web de la
agencia con la misma sesión. La arquitectura
en estrella hace posible que no se almace-
ne en ninguna entidad (solamente en el hub
central) las relaciones entre los identificado-
res de cuentas del usuario en las distintas
Figura 2. Arquitectura en estrella. entidades.

www.sg.com.mx MAY-JUL 2008


// TECNOLOGÍA /*INFRAESTRUCTURA*/

Software Appliances
Los Mejores Amigos de las Empresas en Crecimiento
Por Ariel García

Quienes hemos administrado sistemas co- Desafortunadamente, la implementación de Características principales de


nocemos la gran carga de trabajo que esto servicios de cómputo con un ASP tiene un un Software Appliance
conlleva. La administración de licencias, servi- inconveniente, este modelo obliga al cliente Compila, corre y ejecuta lo que tenía que ha-
dores y equipos; contratos de mantenimiento, a tener información crítica y/o confidencial cer a la primera. La instalación y configuración
control de cambios e incidentes y garantías, del negocio, socios de negocio y/o clientes de los componentes de la capa de software se
son actividades típicas del día a día. Adicional- fuera de la empresa en manos de compañías ejecutan sin errores en la primera y única co-
mente, cualquier actualización a la infraestruc- que posiblemente no cuenten con los recur- rrida. Esto se debe a que no sólo el sistema
tura puede implicar días o incluso semanas sos y/o políticas necesarias para la pro- operativo está parametrizado de forma es-
trabajando a marchas forzadas para dejar los tección y seguridad de dicha información. pecifica a la aplicación, también lo están el
sistemas trabajando adecuadamente. Negocios con altos requerimientos de segu- servidor web y las bases de datos. Además se
ridad y privacidad pueden implementar una utilizan servicios estándar web XML API para
Hace unos años surgió el modelo de Applica- solución basada en Software Appliance. la carga y descarga de datos. Esta caracterís-
tion Service Provider (ASP) como una opción tica elimina tareas típicas que complican la
para minimizar la carga de trabajo ligada con Software Appliance: servicios implementación de un esquema tradicional
la administración de TI. Aunque este modelo de cómputo a la medida como: configuraciones especiales para sis-
se mantiene válido, tiene sentido que veamos Una solución basada en Software Appliance tema operativo, configuración de seguridad
más allá, y es aquí donde nos encontramos combina lo mejor del modelo ASP con la ro- servidores de web, tunning de bases de datos,
con las software appliances. Veamos enton- bustez de una solución empresarial tradicional. compatibilidades entre versiones de software,
ces en que consiste esta tendencia y como se El modelo del Software Appliance sigue el instalación de parches, etcétera.
compara con el modelo de ASP. mismo principio de ofrecer módulos de fun-
cionalidad independiente, accesibles a través Lo sentimos mucho, no habrá capacitación
Application Service Provider: de un navegador de Internet, habilitados en este proyecto. Su operación y adminis-
la primera alternativa acorde a las necesidades del cliente final. tración se ejecuta en un único grupo de
Bajo el modelo de ASP, una empresa contrata un herramientas que eliminan la capa de admi-
servicio –como puede ser el correo electrónico, La principal característica del Software nistración del sistema operativo e integran
o el uso de alguna aplicación– a un tercero, Appliance que lo diferencia de un modelo la administración de la base de datos, ser-
el cual se encarga de toda la parte de ad- ASP es su diseño, el cual consiste en una vidor web y la aplicación. Un administrador
ministración del servicio de cómputo. Típica- capa de software proveedora de la aplica- de sistemas no necesitará capacitarse para
mente se paga una renta mensual, posiblemente ción para el usuario final, corriendo bajo un administrar un Software Appliance corriendo
ajustada al número de usuarios del servicio. sistema operativo modificado y configurado en una versión de Linux, con Apache y MySQL,
específicamente para esta aplicación. Este dado que las configuraciones del sistema ope-
Los distintos servicios ofertados por el diseño de alta integración permite que los rativo y demás aplicaciones, son realizadas a
proveedor típicamente son modulares, per- componentes de la capa de software y el través de las herramientas de administración
mitiéndole al cliente final contratar única- sistema operativo puedan configurarse con del Software Appliance.
mente la funcionalidad que necesita para mayor seguridad dado que soportan única-
su trabajo. Por ejemplo: el departamento de mente las funciones necesarias de la apli- Un solo culpable con habilidades de rege-
contabilidad podría adquirir un servicio de cación, eliminando servicios innecesarios. neración ... ¡Wow!. Existe una sola cara al
ERP únicamente con el módulo para la ad- No obstante, ambos componentes (capa de cliente en la detección y solución de pro-
ministración de activo. El resto de la funcio- software y sistema operativo) pueden correr blemas. El proveedor de servicio es el único
nalidad del ERP no es habilitada y el cliente en cualquier servidor estándar de la industria responsable de identificar, aislar y resol-
solamente pagará por el servicio que utiliza (Wintel, RISC, etcétera) o una maquina vir- ver cualquier problema dentro de algunos
y no por un producto completo. tual. (Un Software Appliance que se ejecuta de los módulos de la aplicación, la capa de
en una maquina virtual se le conoce como Vir- software o el sistema operativo (usualmente
La ventaja para el cliente es evidente: se tual Appliance). Empresas con altos reque- estas actualizaciones no requieren de una mo-
ahorra costos de administración en los rimientos de seguridad pueden utilizar este dificación en el hardware). Adicionalmente,
servicios de cómputo, invierte únicamente modelo para obtener los beneficios de una el appliance tiene la capacidad de detectar y
en la funcionalidad que necesita y tiene la baja administración y contar con la seguridad corregir problemas en su operación sin la in-
capacidad de activar nueva funcionalidad de tener la aplicación dentro de su infraes- tervención de un administrador. Debido a que
conforme la requiera. tructura de cómputo. los componentes de software están altamente

56 MAY-JUL 2008 www.sg.com.mx


integrados y son administrados de forma cen- miento al proveedor del Software Appliance
tralizada, permitiendo que tenga la capacidad con los beneficios ya mencionados.
de ser auto-administrable y auto-corregible.
Esto se traduce en la eliminación de las 3. Desempeño. Servicios con un alto grado
eternas batallas entre consultores de soft- de desempeño no son recomendables para
ware, administradores de bases de datos y una solución con Software Appliance. En tal
administradores de sistemas operativos. El caso es preferible un Hardware Appliance
cliente final sabe que la única persona con donde el proveedor entrega el servicio en
la que tendría que trabajar es el proveedor una caja negra que integra la capa de soft-
de servicio, esto en caso de que el Software ware, el sistema operativo y el hardware.
Appliance no haya podido corregir por sí
mismo un error en su operación. 4. Estrategia de compras. Para compañías
que acostumbran adquirir equipos con una
Ahora sí es en serio, habrá un control de expectativa de uso de largo plazo, una solu-
cambios documentado. La administración ción basada en Software Appliance es ideal,
de cambios se vuelve más sencilla. El pro- dado que es posible ubicar la aplicación en
veedor de servicios es el único responsable cualquier servidor estándar.
del mantenimiento, instalación y configura-
ción de parches, y la actualización a nuevas 5. Seguridad. Un software Appliance tiende
versiones en cualquiera de sus componen- a ser más seguro que su contraparte en un
tes del Software Appliance. De hecho, estas esquema tradicional ya que las capas de
tareas se ejecutarían de forma remota a tra- software y sistema operativo son protegidas
vés de las herramientas de administración. de forma más sencilla dado que cuenta con
menos servicios o elementos a ser atacados.
En resumen, los beneficios de una solu-
ción de servicios de cómputo basada en Una vez definiendo si nuestra empresa ca-
Software Appliance es clara. Es una solución lifica para el uso de soluciones basadas en
con un costo total de propiedad bajo, dado Software Appliance, podemos analizar las
los bajos costos de mantenimiento y admi- soluciones existentes en el mercado para
nistración. No obstante, esta solución tiene iniciar nuestro análisis y selección de pro-
un mercado específico. veedores. Hoy por hoy, podemos encontrar
servicios de Software Appliance con Google,
A continuación enumeramos algunos indi- Wikipedia, Zimbra, entre otros. SAP e IBM
cadores que nos permiten entender si una están trabajando conjuntamente en ser-
solución basada en Software Appliance es vicios que podrían ser accesibles en corto
adecuada para nuestro negocio. plazo. El mensaje clave de este artículo es
no perder de vista esta tecnología, que con
1. Infraestructura de sistemas. Es claro que sus múltiples beneficios, puede ser de gran
un software appliance es la solución perfec- valor para la pequeña o mediana empresa
ta para pequeñas empresas que carecen de que busca cumplir con el credo de todos los
un área de sistemas como tal. El mercado de días: la entrega de mayores y mejores resul-
estas soluciones está orientado típicamente tados con menos recursos.
a compañías de cinco a 500 empleados.
Referencias:
2. Política de compras de la empresa. Esta [en.wikipedia.org/wiki/Software_appliance ]
solución se comercializa ya sea a través de [networkworld.com/buzz/2005/092605-
una renta por uso o modo prepago. Es claro softapp.html ]
que el cliente delega el servicio y manteni- [files.zimbra.com/website/docs/Zimbra%
20rPath%20Installation.pdf ]

www.sg.com.mx MAY-JUL 2008


// TECNOLOGÍA /*gadgets*/

Van Der Led

WM2 Watchphone
Al parecer los diseñadores industriales quieren sorprender el mercado geek con sus
nuevas aportaciones. Remontándonos a la época de los ochenta con Michael Knight y
a la era de los noventa con Dick Tracy (la película). Y es que para usar este reloj, pare-
ciera que el atuendo adecuado es una chamarra de piel o una gabardina amarilla.

Y no es para menos si vemos sus características: GSM, 1.3 pulgadas de tamaño,


260k TFT touchscreen, radio FM, capacidad de almacenamiento de 1GB, Bluetooth
y si eso no es suficiente, un USB para la transmisión de datos. Además cuenta con
una cámara a 1.3 megapixeles y como plus se puede ver la hora.

Así que no hay que sorprenderse si un día con solo doblar la muñeca, llamamos a
Kitt para que nos recoja en la puerta de la oficina.

Solar Technology
Supercharger
De la mano con la ecología y para aprove-
char la energía solar, aparece este nuevo
cargador. Con celdas cristalinas de 1.5 watts
y un peso de 200 gramos se puede llevar en
la mochila, la bicicleta o cualquier otro lugar
porque sus bandas de velcro permiten ajus-
tarlo en algún soporte. Tampoco hay que
preocuparse por la lluvia, viene con una pro-
tección para todo tipo de clima, permitiéndo
su uso constante.

Olympus Sólo cuatro horas de exposición al sol, bas-


tan para tenerlo listo y darle vida extra al
Cámara Stylus 850 SW teléfono, iPod o cualquier otro dispositivo
que sabemos en algún momento necesitará
Para no perder detalle de los eventos, el equipo de SG tuvo la oportu- energía para seguir funcio-
nidad de realizar pruebas con esta nueva cámara de 8.0 megapixeles. nando.
Viene con cable USB, cable de audio/video, batería recargable de litio y
cargador a prueba de congelación. Cuenta con detección de rostros.
Ahora sí, no
Ya no tenemos pretexto de salir de vacaciones y perdernos todos esos hay excusa
paisajes que la naturaleza nos regala. Con este modelo, podremos sacar para no tener
fotografías debajo del agua hasta 3m, además es a prueba de golpes, energía.
caídas y otras eventualidades. Sin importar cuál sea tu estilo de vida,
esta cámara por su tamaño la puedes traer en cualquier momento.

58 MAY-JUL 2008 www.sg.com.mx


INDEX

DIRECTORIO Anunciante Páginas Sitio

Alpha 55 www.alpha-consultoria.com
Avantare 17 www.avantare.com
CA 7 www.ca.com/mx
Compusoluciones 57 www.compusoluciones.com
Cutter 59 www.cutter.com.mx
e-Quallity 27 www.e-quallity.net
Fone 45 www.juegodetalento.com
Gartner 11 www.gartner.com
IDC 51 www.idc-eventos.com
Information Secutity 47 www.informationsecurity.com.mx
Itera 15 www.itera.com.mx
Kernel 63 www.kernel.com.mx
Manpower 49 www.manpowerprofessional.com.mx
Microsoft 2F, 1 www.microsoft.com/mexico
Milestone Consulting 4F www.milestone.com.mx
Safe Net 3F www.safenet-inc.com
TENEMOS UN ESPACIO SIE Center 41 ciisa.gda.itesm.mx
RESERVADO PARA TI
Si deseas anunciarte contáctanos SG’08 22, 23 www.sg.com.mx/sg08
en el (55) 5239 5502 o en SUN 43 www.sun.com.mx
ventas@softwareguru.com.mx

www.sg.com.mx MAY-JUL 2008 31


59
// COLUMNA /*tendencias en SOFTWARE*/

¿Hacia Dónde Vamos?


Reflexiones de la Industria de Software en América Latina

Luis Daniel Soto es director regional de desarrolladores y difusión de pvlataforma 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

H ace doce meses acepté la oportunidad


de dirigir la cuarta área del mundo para Microsoft
cadotecnia de los exitosos es un ingrediente
que ha faltado en los esfuerzos recientes.
formación a una era de software como servi-
cios, pero sin duda la habilitación de la nueva
relacionada a construcción de software en Debemos incorporar mucho más educación mercadotecnia o mercadotecnia cercana a costo
América Latina. Por este conducto deseo resumir basada por proyecto desarrollado, siempre en cero, es un tema que tiene que ser digerido
y compartir con ustedes mis observaciones rela- equipo y olvidarnos de tantos exámenes. por las empresas de todo tipo.
cionadas al desarrollo de la industria de software.
Vinculación academia-industria. Es triste, Recursos humanos
Perfil pero el sector académico está convencido
Aun cuando América Latina cuenta con el de que está enseñando lo correcto cuando • Crear “iconos” para atraer talento
15% de estudiantes del mundo, representa más del 80% de egresados requieren entre- • Incorporar a las mujeres
el 7% de desarrolladores de software a nivel namiento para incorporarse a la realidad. • Educación por proyecto
mundial y el 1% en cuanto a empresas de El tiempo dedicado a decidir qué les ense- • La academia debe producir recursos útiles
software empaquetado. Nuestra actividad ñaré a los muchachos, ahoga realizar inter- y quitarse la falsa ilusión de que hoy lo hace
en la región de inicio usuario de integración cambios en los centros de oportunidades
de software internacional, desarrollo a la apoyados por el gobierno. La industria y la Industria
medida, educación y mínimamente software academia, requieren hablar mucho más para
empaquetado. identificar las grandes áreas de desarrollo. • Dejar de creer que el gobierno debe resolver todo
• Reforzar ventas y mercadotecnia
De acuerdo a Mauricio Santillán de Visionaria, El rol del gobierno. Éste, debe favorecer el de- • Eliminar la rivalidad entre los nacionales
la utilidad anual de estas empresas es del 10% sarrollo y exportación de software con un gran
en promedio (muestra de 200), los tres clien- enfoque en normatividad que realmente bene- Oportunidades a ganar
tes principales representan 64% del total de ficie a la mayoría. En mi opinión personal, debe
sus ventas y las áreas que requieren más for- alentar la neutralidad tecnológica, evitando te- • Infraestructura y capacidades para el
talecimiento son ventas (74%), mercadotecnia mas que reduzcan el ámbito de opciones. Software más servicios (TI)
(54%), servicio a cliente (32%), operaciones • Ser habilitadores de la “nueva mercadotecnia”
(27%) y perfeccionamiento directivo (17%). El rol de la mujer. Menos del 9% de desa-
Incluso cuando la parte técnica se considera rrolladores profesionales de software son
robusta y no aparece en la lista, el 85% aún no mujeres. Basta decir que estamos limitando Conclusión
incorpora elementos de calidad en construcción el 50% de los recursos humanos existentes. En México, el PROSOFT apunta en la
de software, ni el cliente final los demanda. Ellas continúan discriminadas sin ser con- dirección correcta, debemos permitirle
sideradas para su rápido desarrollo. Este avanzar rápido. Aunque cada región
Muy pocos países tienen programas reales tema ha cobrado auge mundial. El paradig- tenga vocaciones particulares, deben
de apoyo a la industria de software. Hay ma errado de muchos gobiernos es fomentar ser construidas sobre una base común.
diversas asociaciones regionales, por ejemplo que las mujeres hagan negocio en bisutería. El futuro de las tecnologías es muy
en Costa Rica existe un club de investigación brillante en cuanto a novedades, pero
tecnológica (desde hace 20 años). Los orga- Para la industria existente. Hay que tomar sobre todo en cuanto a aplicaciones
nismos internacionales se enfocan en empren- en serio el negocio. En Israel, las empresas para mejorar nuestras vidas diarias y
dedores (YABT) y nuevas empresas (RELAPI). más pequeñas de software con frecuencia la misión de nuestras empresas.
contratan a un doctor en mercadotecnia y ¡Participa como agente de cambio!
Las oportunidades cuentan con procesos formales de venta. En
Lo más importante es tener el recurso humano. este sentido, se están creando programas
Diversos estudios muestran que los me- apropiados para el perfeccionamiento di- » Luis Daniel Soto
jores desarrolladores inician a los 13 años. rectivo, hay que continuar a la búsqueda de
Los programas académicos deben interesar los recursos externos que puede darle alto Referencias:
desde esa edad a los jóvenes y llevarlos de valor a la empresa. [ visionaria.com ]
la mano desde ahí hasta la culminación de [ clubdeinvestigacion.com ]
la carrera. Se deben crear modelos a seguir Montar las grandes oleadas. El cambio más [ relapi.org ]
que impulsen a otros adolescentes. La mer- grande al que nos enfrentamos es a la trans- [ myybiz.net ]

60 MAY-JUL 2008 www.sg.com.mx


/*tierra libre*/ // columna

Software en la Comunidad
Simulación Participativa para la Sustentabilidad Ambiental

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

E n cuanto conocí el trabajo de simulación


participativa para enseñar sustentabilidad
Al cabo de décadas con el crecimiento de la
comunidad y los diversos apoyos guberna-
voluntario llamado Max Pimm; matemático
inglés, residente en Barcelona desde hace 5
ambiental del Dr. Luis García Barrios, inves- mentales para el campo, la mayoría de ellos años, quien se entera del proyecto MESMIS
tigador en El Colegio de la Frontera Sur en implementados sin tener en cuenta los prin- y viaja a México para trabajar como volunta-
San Cristóbal de las Casas, Chiapas; consi- cipios de sustentabilidad, las ahora 1000 fa- rio con el grupo de investigadores de GIRA.
deré imprescindible hablar de él. Luis y un milias deforestan 4000 hectáreas. El gobier- Posteriormente se entera del trabajo de Luis
equipo de voluntarios llevan varios años tra- no en respuesta, crea una área protegida y con la propuesta de generar modelos inte-
tando de resolver el problema ambiental de reduce la superficie para las familias, por lo ractivos de MESMIS . Inspirado por el poten-
raíz, capacitando, con ayuda de software, a que los campesinos ahora tendrán que recu- cial del proyecto trabajó por 3 meses en los
las personas de las comunidades más apar- rrir al uso de fertilizantes para poder sobrevi- cuales logró generar todo el sistema. Según
tadas de Chiapas para que utilicen los recursos vir con el terreno reducido. En el software, los sus propias palabras, lo mas importante fue
de sus tierras sin daño al ambiente. usuarios van viendo simulaciones a través de la posibilidad de ver su conocimiento aplicado
series de tiempo, dinámicas, puntos de equi- en un trabajo participativo con gran significado.
El ejemplo más interesante de estos trabajos, librios y diversos umbrales para ver de que
es el realizado con el Marco de Evaluación de forma este sistema simulado reacciona ante Actualmente, el equipo con nuevos volunta-
Sistemas de Manejo Incorporando Indicado- estas estrategias de explotación. rios trabaja en el futuro de MESMIS Interac-
res de Sustentabilidad (MESMIS). Este es un tivo. Las próximas versiones incorporarán
esfuerzo por crear una metodología de evalua- En el segundo acto, aparecen nuevos per- desde el diseño del sistema a todos los ac-
ción de prácticas de sustentabilidad para los sonajes, los pescadores del lago al final de tores sociales en una plataforma donde se
recursos naturales, que permita indicar qué la cuenca y los dueños comunitarios de una puedan modelar los problemas en un terri-
tan abastecidas o no son las prácticas de ex- villa eco turista. En esta etapa, se aprende torio específico, y la gente pueda explorar
plotación de los recursos naturales de un lugar que el uso de fertilizantes para lograr ma- las consecuencias y entender sus decisio-
determinado. Este trabajo ha sido reconocido yor productividad afecta de forma muy clara nes sobre sus ambientes a través de simu-
a nivel mundial y es producto de varios inves- la ecología del lago, que además es mucho laciones interconectadas en red. Se prevee
tigadores mexicanos agrupados en el Grupo mas difícil restaurar que un sistema terres- usen tecnología de vanguardia en la simu-
Interdisciplinario de Tecnología Rural Aplicada tre. Mostrando el escenario de la cuenca, lación de agentes autónomos y motores de
(GIRA). El trabajo de Luis en este equipo ha los participantes pronto descubren que es inferencia para las reglas del sistema.
sido introducir un elemento dinámico y sisté- imposible encontrar una combinación del
mico con la finalidad de enriquecer a MESMIS manejo de recursos que deje satisfechos a De mi parte, un agradecimiento sincero a
logrando extenderlo más allá de un marco de todos los actores. El drama de la utilización Luis García Barrios por su trabajo y ser fuen-
evaluación hacia una herramienta de educa- de los recursos naturales que tanto nos esta te de inspiración para quien escribe. Para
ción para la sustentabilidad rural. afectado de forma global se manifiesta. ustedes, amigos lectores, la invitación a co-
nocer, en sus entornos locales, qué trabajos
El MESMIS interactivo cuenta con 4 capítu- La resolución se obtiene en el tercer acto, de investigación se están haciendo, para
los de los cuales 2 son simuladores de sus- donde los participantes aprenden que los que además de que haya voluntarios que
tentabilidad. La idea es lograr que las perso- diferentes actores deben de ayudar a crear cruzan de otro continente a colaborar, existan
nas participen de una forma activa a través un sistema equilibrado. En el caso particu- también voluntarios mexicanos aportando
de un drama en tres actos que les muestre lar de la cuenca, la solución del problema en tan valiosos esfuerzos.
los problemas reales en la toma de decisio- proviene de apoyos que las comunidades
nes de sustentabilidad combinando simula- del lago y la villa eco turista proveen a los Si desean obtener datos de como contactar
ciones de software, elementos teatrales y productores del campo cuenca arriba, para al Dr. Luis Garcia Barrios o dejarnos sus co-
de juegos de rol. utilizar combinaciones de árboles que per- mentarios, pueden checar mas información y
miten reducir los fertilizantes. fotos del proyecto en tecnonirvana.org
En el primer acto, se muestra una cuenca don-
de todo era bosque, luego diez familias lle- Una de las historias más inspiradoras es la » Emilio Osorio
gan y desmontan 100 hectáreas con siembra. del programador que ayudó a realizarla, un

www.sg.com.mx MAY-JUL 2008 61


31
// columna INVITADA

Del Buzón de Sugerencias


a la Colaboración Empresarial
Enterprise 2.0
Por Tomás Helou

El término Web 2.0 cada día se encuentra más El uso de Web 1.0 a nivel empresarial, inició tal como la conocemos con la creación de páginas
arraigado en el vocabulario tecnológico de para las empresas, donde detallaban servicios y contenidos; esto lo realizaba un programador
nuestros días, pero ¿nos hemos cuestionado de la misma empresa, es decir, la generación de los contenidos recaía en unas cuantas manos
qué significa realmente? ¿Cuál es la diferen- y eran esas manos las que decidían lo que debía incluirse en sus sitios, ya sea empresariales o
cia entre Web 2.0 y Web 1.0? ¿Qué ventajas personales. Esto ha ido cambiando, y en la actualidad sitios como You Tube o MySpace, propi-
ofrece a nivel corporativo? La mayoría de los cian la colaboración de los usuarios comunes y corrientes.
CEOs de las grandes empresas han escucha-
do hablar sobre las tecnologías Web 2.0. ¿Qué es Web 2.0 y Enterprise 2.0?
Diferencias y similitudes
Hace algunos meses se dieron a conocer los
resultados de una investigación realizada
por Forrest Research, dicho sondeo se reali-
zó con 275 compradores de TI, de los cuales
16% de los encuestados dicen que han escu-
chado acerca del tema, ya que los fabrican-
tes hablan mucho sobre él. En ocasiones el
50% escucha hablar a los proveedores, 20%
esporádicamente o casi nulo ha sido su con-
tacto con la Web 2.0: y 11% restante jamás
ha recibido comentarios acerca de esta tec-
nología por parte de sus distribuidores.

Cuando lo social genera


ganancias
Antes de continuar, debemos de dar un vis-
tazo a lo que realmente significa Web 2.0, el
término se refiere a la segunda generación
de servicios de Internet, donde la colabo-
ración a los contenidos y las redes sociales
son la innovación fundamental. Las princi-
pales diferencias entre Web 1.0 y Web 2.0
las enmarcamos de la siguiente manera:

La Web Empresarial 2.0 se puede dividir en cliente, entre otras. Por lo que tiene un alto
dos, una cuya finalidad es el uso interno y impacto en la relación con clientes y socios es-
otra que va hacia el exterior. Ambas tienen tratégicos, pues dentro de las funciones que
mucho que ver con el aspecto comunicacio- se realizan en el área externa, se abarcan des-
nal de la empresa, ya que una se dirige a los de investigación de mercados, lanzamiento y
clientes y otra a los empleados. promoción de nuevos productos y la más im-
portante: la retroalimentación con los clientes,
Las características externas o de relaciones así como la visión y opinión corporativa ante
públicas de Enterprise 2.0 son aplicables a los temas que evitan información tergiversada
marketing, relaciones públicas, servicio al dentro de los medios de comunicación.

Tomás Helou es actualmente Director Regional BID de BEA Systems, graduado de la Universidad de Ciencias Empresariales y Sociales (UCES) de Buenos Aires,
Argentina con una maestría en Marketing. Anteriormente fue Vicepresidente Internacional de Operaciones de Fuego, Inc. Vicepresidente para Latinoamérica de
Business Objects SA, Vicepresidente para Latinoamérica de MRO Software Inc. entre algunos otros cargos, siempre destacando por sus conocimientos sobre
Business Process Management BPM, dictando conferencias y participando en diferentes eventos referentes a este tema.

62 MAY-JUL 2008 www.sg.com.mx


Las características internas se enfocan más a • Aceleración en el desarrollo del mercado
lo que se refiere a Gestión del Conocimiento, de las empresas que la implementan.
es decir, está enfocado a las comunicaciones • Reduce costos en infraestructura, ya que
dentro de la empresa, ya sea en toda ella o su arquitectura es escalable.
por células, donde pasan su prueba y pos- • Su intercambio de información es eficien-
teriormente son usadas en toda la organiza- te, lo que se traduce en un mejor enlace con
ción. Sus áreas de mayor uso son gestión y el cliente y mejor producción.
planificación estratégica, desarrollo e innova- • El ROI se consigue en menor tiempo.
ción tecnológica y gestión de proyectos.
No siempre es bueno cambiar
Para poder implementar los servicios de el papel por Bases de Datos
Web 2.0 y transformar nuestra compañía en Ya que se entendió qué es Enterprise 2.0,
una Enterprise 2.0, debemos tener conoci- debemos cuestionarnos y analizar si es apli-
miento de la manera en cómo se construyen cable para nuestra empresa o no, ya que hay
las aplicaciones, ya que usan códigos abier- ciertos factores antes, los cuales no es re-
tos a través de API’s (Interfase de Programa- comendable a migrar a este tipo de tipo de
ción de Aplicaciones) y servicios web. tecnologías:
•Cuando encontremos a los empleados rea-
No solamente la integración de clientes, so- cios al uso de estas innovaciones, ya que no
cios y empleados es una ventaja de este tipo se logrará sacarle jugo como es debido.
de herramientas, pues las aplicaciones son •Cuando se desconoce lo que es un email o
reutilizables y combinables. Las interfaces una página web.
usadas deben de funcionar como una apli- •Y quizás los factores más importantes:
cación tradicional que otorgue al usuario un cuando una sola persona se encarga de
manejo sencillo y por consecuencia otorgue tomar las decisiones, sin tomar en cuenta
mayor productividad, haciéndola rentable opiniones de gente de menor rango en la
para las empresas. La arquitectura de estas empresa y no acepta opiniones del personal
aplicaciones, debe permitir la utilización de a su cargo.
estándares que faciliten el manejo de datos
y la comunicación, para que permita la reuti- Cuando encontramos alguna de estas tra-
lización de módulos, por ejemplo: para la bas, debemos pensar mejor en seguir al-
creación de mashups. macenando nuestra información en papel, y
continuar con la estrategia de negocios que
Comunitario, pero no inseguro se tenía, sin buscar la innovación. Ya que si
La seguridad tiene un papel decisivo para no conocemos el uso de las nuevas herra-
que las empresas pasen a engrosar las filas mientas, éstas por sí solas no solucionarán
de Web 2.0 y sean Enterprise 2.0, ya que nada, y por el contrario, no sabemos qué
piensan que estas herramientas son vulne- consecuencias negativas puede tener su
rables y propician la propagación de virus y mal uso o desconocimiento.
troyanos; nada lejos de la realidad, estas son
igual de vulnerables que las usadas dentro
de la web tradicional, y la solución o pre- Conclusiones
vención para dichos ataques no es algo que Podríamos decir que las organizaciones
salga de lo convencional; un buen sistema que adoptan las tecnologías Web 2.0
preventivo soluciona en gran parte estos ata- fortalecen su red interna, de manera
ques, de tal manera que las empresas deben que la colaboración se hace similar a un
de implementar soluciones de productos de clúster (lugares físicos donde se concen-
seguridad tradicionales como anti-spyware, tran industrias que unen fuerzas para
anti-phishing, filtrado de URLs y contenido; colaborar entre sí). Así que cualquier
antivirus, anti-spam y políticas de limpieza empresa que adopte los principios de
centralizadas (para ayudar a reducir el daño). esta tecnología, da un peso específico
Seguir una protección de múltiples capas y a la relación que debe de tener con sus
múltiples vertientes permite la protección clientes, empleados, socios, etcétera.
total contra las amenazas virtuales. Ya que al permitirles colaborar, se des-
conocen jerarquías con el afán de seguir
Beneficios de Enterprise 2.0 todos una misma dirección que resulte
Ya que facilita la descentralización de tecno- benéfica para todos los involucrados en
logías, Enterprise 2.0 entrega beneficios a el proceso de negocio.
las empresas que la implantan, como:

www.sg.com.mx MAY-JUL 2008


// columna /*cátedra y más*/

Scheme
El Mundo entre Paréntesis

Dr. Raúl A. Trejo es profesor investigador del Instituto Tecnológico y de Estudios Superiores de Monterrey, campus Estado de México. Su
área de especialidad es la inteligencia artificial, con una particular pasión por la programación. Conoció el paradigma funcional con Basic
y Pascal, se graduó en objetos con Eiffel, Ada y Java, y probó la lógica de Prolog. Pero siempre admiró la elegancia de Scheme: (define
infinito (λ ( ) ((λ (f) (f f)) (λ (f) (f f))))). El significado de esta expresión se encuentra en: tech-o-potamus.blogspot.com

Imagina que no hay ciclos alumnos. Sin embargo, descubrí que, enun- ban la labor del programador. Por ejemplo,
en tu programación ciando las expresiones de manera funcional, los lenguajes funcionales ya incluían el uso
no existen for ni while la sintaxis resultaba intuitiva. Así, de algoritmos de recolección de basura y la
tan sólo recursión. pre-compilación de funciones (el antecedente
Imagina a la gente (raizCuadrada (+ (cuadrado a) (cuadrado b)))
de la máquina virtual) desde antes de que
entre paréntesis… se leía como “la raíz cuadrada de la suma del Java popularizara los conceptos. Además, es-
cuadrado de a con el cuadrado de b”, con taba la alta capacidad de abstracción de estos
Este es un fragmento de una canción que los paréntesis definiendo de manera exacta el lenguajes: aprendí, por ejemplo, que podía
me encontré en un foro de discusión para el significado de la expresión. El corazón del len- definir funciones que operaban sobre listas de
lenguaje Scheme (en Usenet), junto con la guaje era la definición de nuevas funciones por tamaño infinito, que las funciones mismas no
instrucción de que debía cantarse con la me- medio del operador lambda. De este modo, la eran diferentes de los tipos de datos básicos, y
lodía de la canción Imagine de John Lennon. función cuadrado se declaraba como: que podían utilizarse como entradas o salidas
Era mediados de los noventa. Me encontra- de otra función. De modo que lo utilicé en mis
(define cuadrado (λ(x) (* x x))) 1
ba aprendiendo y recolectando información proyectos durante mis estudios de doctorado,
sobre lenguajes funcionales en general, y creando soluciones elegantes que sorpren-
de Scheme en particular para un proyecto Fue aquí que decidí que me agradaba el len- dían a mis compañeros por su simplicidad y
educativo de mi campus en el Tec de Mon- guaje. No había tipos de datos (o más bien, corto tiempo de desarrollo. Esto era un triunfo
terrey. Esa canción, junto con el contenido para los puristas, sólo hay tipos débiles), lo pequeño dado que, mi uso del lenguaje había
exaltado y a veces autocomplaciente de al- que permitía escribir funciones interesantes regresado al ambiente académico.
gunas entradas en el foro, formó mi primera a tan solo horas de conocer el lenguaje. Los
impresión del lenguaje, la cual no difería números eran verdaderamente polimórficos, Diez años después, la industria de desarro-
mucho de la opinión de la mayoría de los permitiendo operaciones entre enteros y llo ha pasado por la programación orientada
programadores de los paradigmas clásicos: reales sin distinción, sin riesgo de overflow. a objetos, la programación por eventos y la
parecía un lenguaje académico, orientado Existía una única estructura de datos: la lis- programación orientada a servicios. ¿Cuál
a estudiantes de posgrado en inteligencia ta. Y como estructura de control, se utilizaba es el siguiente paso en la evolución de los
artificial. Sólo que en mi institución estába- la recursividad. Comenzamos a utilizar Scheme lenguajes? Al parecer, es la aparición de
mos pensando adoptarlo, no como un len- en los cursos de computación básica, y para lenguajes multi-paradigma, que incorporan
guaje para materias avanzadas, sino para mitad del semestre los alumnos podían re- finalmente el paradigma funcional, el orien-
los cursos de computación básica, en lugar solver problemas típicos de un curso de tado a objetos y el imperativo. Me parece in-
de C o el cada vez más popular Java. Las dis- estructuras de datos. Inventé ejercicios in- teresante que la comunidad en general esté
cusiones no se hicieron esperar. Recibimos teresantes para ellos, fascinado por la liber- adoptando estos lenguajes, y que finalmente
una gran cantidad de cejas levantadas, pero tad que el lenguaje me daba para enseñar el paradigma funcional pudiera salir del ámbito
en mi departamento éramos un pequeño algoritmos y lógica de programación. académico. Python es uno de estos lenguajes,
grupo con espíritu visionario y mucha cu- con una popularidad en aumento. La plata-
riosidad; de modo que le dimos luz verde al Sin embargo, resultó que estábamos adelan- forma .NET contará con F#, y para el desarrollo
proyecto. Scheme era un lenguaje definiti- tados a nuestro tiempo. Algoritmos elegantes web se tiene Perl 6. Todos estos lenguajes están
vamente extraño. Su estructura sintáctica se o no, los estudiantes extrañaban la deslum- basados en Haskell, un sucesor de Scheme.
basaba en expresiones funcionales escritas brante interfaz visual de Java. Se preguntaban
en notación prefija, rodeada por paréntesis. el por qué aprendían un lenguaje que no exis- Me siento optimista de que puedo volver a
De modo que para expresar, por ejemplo: la tía en la industria. Y definitivamente, odiaban programar en un lenguaje funcional. Y esta
suma entre dos números, se debía escribir los paréntesis. El escepticismo ganó, dimos vez, con una sintaxis menos extraña: Haskell
la siguiente sentencia: (+ 5 7) por terminado el proyecto y Java ocupó su no tiene paréntesis.
lugar como el lenguaje reinante en el aula. » Dr. Raúl A. Trejo
La construcción de expresiones más com-
plejas generaba entonces una cantidad de Para entonces yo estaba fascinado con el 1
Para el lector curioso, esta expresión se lee como “define
paréntesis que de inmediato se convirtió en lenguaje. La razón era que, desde su dise- cuadrado como la función que recibe el parámetro x, y
el blanco de las bromas entre profesores y ño, incorporaba características que facilita- regresa la multiplicación de x por x”.

64 MAY-JUL 2008 www.sg.com.mx


No. 20 www.sg.com.mx SG SOFTWARE GURU - CONOCIMIENTO EN PRÁCTICA Mayo-Julio 2008

You might also like