Professional Documents
Culture Documents
Data Warehouse
Multidimensional
• Ruby on Rails
• Documentación
de Arquitecturas
[ ENTREVISTAS ]
Terry Quatrani
Jon "maddog" Hall
John Crupi
Key speakers SG'08
[ 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
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.
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.
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.
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.
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.
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
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.
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-
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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!.
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
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
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.
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]
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.
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)
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
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.
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.
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:
Figura 1. Relación de conceptos de la propuesta “vistas y más allá de éstas” del SEI.
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
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.
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:
railsass_development,
railsass_test y
railsass_deployment
path/trabajo>cd railsass
path/trabajo/railsass>ruby script/generate model Usuario
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.
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).
>> 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.
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.
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.
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
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
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
¿Cuál es mi Password?
La Epidemia de Cuentas
Por Karina Okón
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.
Software Appliances
Los Mejores Amigos de las Empresas en Crecimiento
Por Ariel García
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.
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.
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
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
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
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.
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.
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”.