Vous êtes sur la page 1sur 68

Auditoría de
procesos
• Arquitectura de
software
• Requerimientos
con SysML
Software Guru CONOCIMIENTO EN PRÁCTICA
No.24 • Mayo-Julio 2009 • www.sg.com.mx

[ REPORTAJE ]
Software en
Nuevo León

[ ENTREVISTA ]
Jorge Zavala
Innovación y desarrollo
de negocios globales

México, $65.00

Desarrollo para smartphones


Noticias • Industria • Fundamentos • Carrera • Infraestructura • Gadgets
[ Tutorial ]
Azure
// CONTENIDO

directorio
Dirección Editorial
Pedro Galván

Dirección de Operaciones
Mara Ruvalcaba

Coordinación Editorial
Alejandro Escamilla

Editorial Arte y Diseño


Dafne Ortega, Oscar Samano

Consejo Editorial
Jorge Valdés - PMI; Luis Cuellar - Softtek;
Francisco Camargo, Luis D. Soto - Microsoft;
Hanna Oktaba - UNAM;
Ralf Eder, Raúl Trejo - ITESM;
Emilio Osorio - Sistemas Humanos;
Luis Vinicio León - e-Quallity.

Colaboradores
Benjamín Ruvalcaba, Miguel Angel Morán,
Misael Monterroca, Germán Dominguez,
Hace algunos años, en el número 5 de En esta edición incluimos un reportaje es- Héctor Obregón, Edgar Parada, José Karam,
SG (Septiembre-Octubre 2005) un autor pecial sobre la industria del software en Carlos Silva, Romeo Márquez, Gunnar Wolf
afirmó que “el software que hará realmente Nuevo León, presentando un panorama Yolanda Fernández, Leticia Arevalo,
útiles a los dispositivos móviles todavía no de lo que se está realizando en el estado, Jesús Soria, Edith Martínez
se ha desarrollado.” resultado de la exitosa colaboración entre Alejandro Bianchi, Gastón Milano,
Charlie Macías, Marco Dorantes,
academia, empresas y gobierno.
Consuelo Jiménez, Beatríz Ríos,
Cuatro años han pasado y ahora estamos
Luis Joyanes, Susana Tamayo,
listos para afrontar los retos y salir airo- Teniendo esto en cuenta, no es coinciden- Fernando García.
sos. Los lenguajes de programación han cia que Monterrey vaya a ser la sede de SG
madurado, el mercado está en el momen- ‘09 Conferencia y Expo, que se realizará los Ventas
to oportuno y el talento mexicano siempre días 27 al 30 de septiembre. Asegúrense de Claudia Perea
ha estado presente. Las cartas apuntan a marcar la fecha en sus planes de proyecto y
la gran oportunidad que se presenta para prepararse para una experiencia única. Marketing y RP
desarrollar aplicaciones para dispositivos Paulina Olivares
móviles, especialmente smartphones. Una excelente noticia es que estamos es-
trenando nuestro nuevo proyecto SG Guía. Circulación y Administración
Presentamos una entrevista muy intere- Esta es una herramienta a través de la cual Edgar Dorantes
sante con Jorge Zavala, quien actualmente podrán encontrar los productos y servicios
Desarrollo Web
dirige la oficina de TechBA en Silicon Valley. que necesitan para desarrollar software de
Nathanael Gutiérrez
Jorge nos proporciona una interesante vi- alta calidad. Los invitamos a que colabora-
sión de cómo convertir las ideas en gran- ren y evalúen las herramientas, servicios, Contacto
des empresas, y nos comparte su perspec- capacitación y aplicaciones contenidos en info@sg.com.mx
tiva sobre la vida en Silicon Valley. SG Guía. +52 55 5239 5502

SG Software Guru es una publicación trimestral


» Equipo Editorial editada por Brainworx S.A. de C.V., Malinche no. 6,
Col. El Parque, C.P. 53398, Naucalpan, México. Queda
prohibida la reproducción total o parcial del contenido
sin previo aviso por escrito de los editores. Todos
los artículos son responsabilidad de sus propios
autores y no necesariamente reflejan el punto de
vista de la editorial. Reserva de Derechos al Uso
Exclusivo: 04-2004-090212091400-102. Certificado
de licitud de título: 12999. Certificado de licitud de
contenido:10572. ISSN: 1870-0888. Registro Postal:
PP15-5106. Se imprimió en mayo de 2009 en Roma
Color, S.A. de C.V. Distribuido por Sepomex.

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


contenido
may - jul 2009

22 EN PORTADA
Desarrollo de aplicaciones
22

para smartphones

Productos
Lo QUE VIENE 12
RubyMine, CloudBurst, Dryad y Moblin

Herramientas 14
Web testing con Visual Studio

TUTORIAL 16
Aplicaciones en la Nube con Azure

Prácticas
CASO DE ESTUDIO 34
SG Guía
Columnas Compartimos algunas prácticas aplicadas durante
el desarrollo de este proyecto.
Tejiendo Nuestra Red 08 Prueba de Software 52
por Hanna Oktaba por Luis Vinicio León MEJORA DE PROCESOS 36
MoProSoft y la Auditoría de Procesos
Mejora Continua 10 Columna Invitada 54 Guía para la realización de una auditoría.
por Luis Cuellar por Marco Dorantes
ASEGURAMIENTO DE CALIDAD 38
Programar es un Modo 50 Tendencias en Software 56 Medición y Análisis
de Vida por Luis Daniel Soto Recomendaciones para obtener buenas métricas.
por Gunnar Wolf
ARQUITECTURA 40
El Valor de los Ciclos Guiados
En Cada Número por la Arquitectura del Software
Alejandro Bianchi comparte los beneficios de un
Noticias y Eventos 04 INFRAESTRUCTURA 60 ciclo de vida centrado en la arquitectura de software.

INDUSTRIA 06 GADGETS 62 PROGRAMACIÓN 44


Programación Declarativa
FUNDAMENTOS 58 CARRERA 64 Un vistazo a sus características y ventajas.

PM CORNER 46
Revisión de la 4ta edición de la
Guía PMBOK
Presentamos los principales cambios que sufrió

20
Entrevista la guía PMBOK en esta nueva versión.
Jorge Zavala
Innovación y desarrollo UML 48
de negocios globales Los requerimientos al estilo SysML
Aprenderemos los principales elementos para
hacer diagramas al estilo de SYSML.

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


// NOTICIAS

IBM Industry Forum 2009


Con el objetivo de apoyar a las empresas a innovar en su industria
y competir de manera más eficaz para responder a los desafíos
globales, IBM presentó el Industry Forum 2009, del pasado 9 al
11 de marzo en la Ciudad de México.

La estructura de la agenda fue muy buena y brindó contenido


para todo tipo de intereses, ya que el primer día consistió en
conferencias magistrales con enfoque de negocio, mientras que
el segundo día fue dominado por sesiones simultáneas orienta-
das a industrias específicas y el tercer día estuvo dirigido a los
temas técnicos: tecnologías y herramientas, mejores prácticas y
nuevas tendencias.

Tendencias 2009: Modelos de


competitividad con TIC en México
El pasado 18 de marzo, en la Ciudad de México, se realizó con éxi-
to el evento Tendencias 2009, evento que Select ha organizado
de forma consecutiva desde hace 16 años. El evento estuvo enfo-
cado en demostrar la contribución de las TICs y la competitividad
de las organizaciones a través de seis casos de éxito mexicanos,
así como de talleres de benchmarking.

La audiencia estuvo integrada por ejecutivos de alto nivel que cola-


boran tanto en organizaciones públicas y privadas, así como repre-
sentantes de la industria de TIC, todos ellos interesados en identifi-
car las estrategias para competir y aprovechar la tecnología.

MéxicoFIRST
Con la meta de incrementar la cantidad de personas certificadas
en nuestro país, la iniciativa de CANIETI “MéxicoFIRST” presentó
en conjunto con la empresa Sun Microsystems, el proyecto en-
focado en certificar en Java a 12mil estudiantes y profesionistas
de TI. Gracias a que MéxicoFIRST es apoyado por Secretaría de
Economía, quienes deseen certificarse por este medio podrán ob-
tener hasta un 80% de descuento.

Mayor información en www.certificatemexico.com

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


// EVENTOs

20 y 21 de mayo 2009 22 y 23 de junio 2009


5a. Conferencia Anual de TI 5a. Cumbre de Gobierno y Tecnología
Service Management IDC México
Pink Elephant Hacienda de los Morales, Ciudad de México
Hotel Maria Isabel Sheraton, Ciudad de México Info: www.idclatin.com/events
Info: www.pinkelephant.com Contacto: idc@simrel.com.mx
Contacto: info.mx@pinkelephant.com

10 a 12 de junio 2009 14 y 15 de Julio 2009


XVIII Reunión Nacional de Directores de X Encuentro Iberoamericano de
Escuelas y Facultades de Informática Ciudades Digitales
y Computación Gobierno del Estado de Veracruz
ANIEI World Trade Center, Veracruz.
Tepic, Nayarit Info: www.ciudades.gob.mx
Info: www.aniei.org.mx

14 al 16 de junio 2009 15 y 16 de julio 2009


GITMA - ITESM Congreso Mundial de TI Agile Project Management:
Tecnológico de Monterrey, Campus Santa Fe. Innovation in Action
Info: www.gitma-la.org Cutter Consortium
Contacto: gustavo.pares@itesm.mx Hotel Marriott, Ciudad de México
Info: www.cutter.com.mx
Contacto: agalindo@cutter.com.mx

Global Trends in Software Testing Eventos de software libre


El pasado mes de marzo la empresa e-Quallity invitó a Méxi- El mes de abril fue bastante agitado para los entusiastas
co al reconocido gurú del testing Martin Pol, fundador de Pol- del software libre, ya que en menos de dos semanas se
tec (empresa holandesa de consultoría y certificación) y co- realizaron cuatro eventos importantes.
autor del modelo europeo Test Process Improvement (TPI).
Martin Pol impartió la conferencia “Global Trends in Software Empezamos con el 4to Congreso de Software Libre or-
Testing” en Guadalajara, Monterrey y Ciudad de México, en- ganizado por los estudiantes del CCH Naucalpan el 13 y
focando su plática en la importancia que tiene el uso de las 14 de abril.
pruebas de software para incrementar las capacidades de
evitar los riesgos empresariales. Seguimos con la edición 2009 del Consol, que este año
se llevó a cabo en la UAM Azcapotzalco del 14 al 17 de
abril, con la participación de conferencistas como Fer-
nando Romo, Sandino Araico y Palmira Granados.
Information Management & BI 2.0
Posteriormente, del 21 al 23 tuvo lugar el 2do Coloquio
Conference 2009 Universitario de Software Libre PUMASOL organizado por
el Laboratorio de Investigación en Software Libre (LIDSoL)
Con una visión de BI mucho más predictiva, que no se limita en coordinación con la Facultad de Ingeniería de la UNAM.
en analizar el pasado, sino que ayuda a entender el futuro,
el pasado mes de febrero IDC presentó exitosamente el In- Por último, el 25 de abril fue el día del Festival Latino-
formation Management & BI 2.0 Conference, foro diseñado americano de Software Libre (FLISOL) 2009, el cual con-
considerando las principales industrias de crecimiento para el juntó sedes en más de 200 ciudades en 18 países.
2009 en el mercado de TI: Gobierno, Servicios y Manufactura,
enfocado en aterrizar los beneficios del Manejo Estratégico de
la Información y el BI para dichos sectores.

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


// INDUSTRIA

Software en Nuevo León

Nuevo León es un estado de gran importancia en términos de la in- Desarrollo de Capital Humano
dustria de software en nuestra región. Aquí residen algunas de las En términos de capital humano, Nuevo León enfrenta una proble-
empresas de servicios de TI más grandes, y se ha convertido en una mática similar a la de otros estados: la matrícula de estudiantes en
sede preferida para empresas que ofrecen servicios tipo Nearshore carreras relacionadas con TI ha disminuido en los últimos años, y
para el mercado norteamericano. En los últimos años, incluso gran- por otro lado los recién egresados no poseen las habilidades que
des empresas de la India como Infosys, Sasken y Wipro han estable- demandan las empresas. Sin embargo, en el caso de Nuevo León
cido centros de operación en esta entidad. esta situación se agudiza debido a que en los últimos años existió
un alto crecimiento de la industria en la región y se han estable-
Algunos números para comenzar cido aquí empresas internacionales, especialmente de India, que
La industria de software en Nuevo León está compuesta por más de demandan una gran cantidad de personal calificado en TI. Ante
300 empresas que emplean más de 7 mil personas y generan ingre- esta situación, el desarrollo de capital humano tiene un lugar pre-
sos por más de 300 millones de dólares anuales. ponderante en la agenda de CSOFTMTY y para ello ha establecido
diversas iniciativas.
La distribución de empresas en base a su cantidad de empleados es
la siguiente: Guillermo Safa, director del CSOFTMTY, nos comenta sobre el
• Micro (1 a 10) 43% factor de éxito más importante en esta iniciativa es el contar con
• Pequeña (11 a 50) 31% el Capital Humano en suficiencia y con las capacidades requeri-
• Mediana (50 a 100) 17% das por los mercados internacionales.
• Grande (más de 100) 9%
Es por esto que esta es la línea estratégica de mayor prioridad dentro
En Nuevo León existen 24 empresas certificadas en Moprosoft y 12 del plan de trabajo de CSOFTMTY; dentro de la cual hay dos iniciativas
en CMMI, es la segunda entidad con más empresas con certificacio- concretas en las que se está trabajando:
nes de calidad después del Distrito Federal. • Una campaña de promoción entre los jóvenes para que estudien
carreras relacionadas con las TIC’s
CSOFTMTY • La creación del Instituto de Desarrollo de Talento de TI, único en su
El Consejo de Software de Nuevo León (CSOFTMTY) es el organismo tipo en México
que coordina lo que se denomina la triple hélice: academia, empre-
sas y gobierno. Esta asociación civil es la responsable de desarrollar Instituto de Desarrollo de Talento de TI
y asegurar el cumplimiento de las estrategias para el fortalecimiento El Instituto de Desarrollo de Talento de TI (IDETI) tiene como finali-
de la industria de software en esta región. dad el incrementar, en el corto plazo, el capital intelectual disponible
para la industria de software con certificaciones internacionales. En
Para ello, CSOFTMTY se enfoca en siete líneas de acción: veintidós semanas se prepara para el trabajo a recién egresados de
1. Desarrollo de mercado las carreras de TI, actualiza a profesionistas y reconvierte a profe-
2. Desarrollo de profesionales de software sionistas de otras ingenierías para integrarlos a la fuerza laboral de
3. Desarrollo de empresas y empresarios la industria. Los cursos son tomados en una de las 5 universidades
4. Desarrollo de infraestructura vinculadas: ITESM, Tec Milenio, Universidad Regiomontana, Univer-
5. Sustentabilidad y alto valor agregado sidad Autónoma de Nuevo León y Universidad de Monterrey.
6. Accesibilidad a programas y fondos económicos
Los programas de estudio de este Instituto se refieren específicamente
Existen 22 miembros de los cuales 12 son empresas, 3 organismos a la certificación en:
empresariales (AETI, CANIETI y ORIGO), 5 universidades (ITESM, • Conceptos de hardware y software de sistemas
TEC Milenio, UANL, UDEM y UR), un representante del Gobierno • Fundamentos de programación
de Nuevo León y uno del Instituto de Innovación y Transferencia de • Bases de datos
Tecnología (I2T2). • Metodologías de desarrollo de software
• Análisis de algoritmos
Una característica fundamental de CSOFTMTY es que no es un or- • Conceptos de desarrollo orientado a objetos
ganismo gubernamental, sino que es un organismo independien- • Diseño de interfaces
te que vincula a la triple hélice: Empresas, Academia y Gobierno • Tecnologías Web
para lograr un propósito común. • Conceptos Cliente – Servidor

06
16 MAY-JUL 2009 www.sg.com.mx
Solo para TI midor de los productos y servicios de las empresas locales. Se pro-
“Solo para TI” es una campaña para fomentar que los jóvenes próxi- mueve la participación de pequeñas y medianas empresas locales
mos a entrar a la universidad elijan estudiar carreras relacionadas de TI en proyectos, a través de convenios de integración con grandes
a las tecnologías de información. Asimismo, se ha iniciado una es- proveedores y a través de la incorporación de la evaluación de pro-
trategia pre-universitaria en la que a través de centros de compu- veedores locales en la ley de adquisiciones.
tación aplicada y la capacitación de maestros de escuelas públicas
de primaria y secundaria se fomente el conocimiento y gusto por las Innovación
tecnologías de información y comunicaciones. Dentro del Consejo, entró en operación un nuevo comité de innovación
en el cual se busca desarrollar la alta especialización del sector basa-
Vinculación con universidades do en innovación y las mejores prácticas mundiales en este concepto.
Por su parte, las empresas y universidades también llevan a cabo Este nuevo comité llevará la tarea de homologar en la triple hélice el
actividades de vinculación que resulten en disponibilidad de más ca- concepto de innovación en TI ya que actualmente se tienen diferen-
pital humano y con mayor especialización y experiencia: tes definiciones del concepto. De igual manera, se buscará desarro-
• Las universidades ofrecen espacio de ubicación a nuevas empre- llar innovación en los productos y servicios para obtener márgenes
sas que llegan a la entidad, lo que les permite acceso directo a más grandes en la industria.
nuevo talento así como a infraestructura temporal para iniciar sus
operaciones (softlanding). Infraestructura
• Las empresas realizan convenios con las universidades para la ab- En Nuevo León existe el Parque de Investigación e Innovación Tec-
sorción directa de talento, así como para la realización de proyectos nológica (PIIT) el cual tiene una superficie total de 70 hectáreas
con clientes actuales en sus instalaciones. Esta práctica permite a disponibles para centros de investigación y desarrollo de empresas
la empresa reducir sus costos mientras prepara talento con conoci- en las áreas de salud, mecatrónica, tecnología de información, bio-
mientos de los actuales requerimientos de los usuarios de TIC. tecnología y nanotecnología.
• Las empresas de la India, que en años recientes han realizado
inversiones en la entidad, tienen convenios con las principales uni- Dentro del PITT esta por inaugurarse el Monterrey IT Cluster, un con-
versidades del estado para que estudiantes y profesores visiten sus junto de 42 empresas que compartirán un edificio e infraestructura
centros de capacitación en la India. Durante la visita se identifican desde el inicio de sus operaciones, para posteriormente trabajar en
las brechas existentes entre las necesidades actuales de la industria conjunto e incursionar a mercados internacionales.
y el sistema educativo de la entidad y se recibe un entrenamiento
en las capacidades que se necesitan desarrollar dentro del sistema
educativo estatal actual.

Desarrollo de mercado
El mercado local de software y servicios TI en Nuevo León se en-
cuentra bastante consolidado, siendo el segundo mercado local en
importancia en el país. Las grandes empresas usuarias enfrentan
una competencia globalizada y están conscientes de que para des-
tacar en este ámbito es crucial tener un buen aprovechamiento de
las TICs. Por otro lado, se están presentando nuevas oportunidades
de penetración en el mercado gracias a una dinámica de desarrollo
económico que ve al software como coadyuvante en la innovación
de productos y procesos. Para catalizar esto se realizan diferentes
acciones tales como:
• Planes para fomentar la transferencia de tecnología (productos y
servicios de las empresas de TI y de los centros de investigación y MIT Cluster en el PIIT
desarrollo) hacia los sectores más estratégicos de la entidad y hacia
los nuevos sectores que están siendo impulsados. Más información en:
• Promoción entre las empresas más grandes de la entidad para la [www.csoftmty.org]
contratación de servicios y productos de TI de empresas locales. [www.ti.org.mx]
• Se está persiguiendo que el gobierno local sea un potencial consu- [www.piit.com.mx]

www.sg.com.mx MAY-JUL 2009 17


07
// COLUMNA /*TEJIENDO NUESTRA RED*/

Picando piedra: Primera Parte


Recordando a las personas que aportaron su granito de arena para elevar la calidad del software mexicano

La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software,
Tecnología Orientada a Objetos, Modelos de Procesos de Software y Mejora de Procesos. Actualmente es miembro de International
Process Research Group (IPRC). También es Directora Técnica del proyecto COMPETISOFT.

E scribir la columna número 25 para Software Gurú me puso


nostálgica. A lo largo de casi veintiséis años de trabajo en
da Official SPICE Assessment Instrument. Según mi conocimien-
to fue el primer directivo de la industria y tal vez último hasta la
México he conocido mucha gente, que desde sus espacios, han fecha, quien se involucró personalmente en desarrollar un es-
impulsado la adopción de buenas prácticas en la industria de tándar internacional para poder tener una ventaja competitiva
software. Para hacer un pequeño reconocimiento de su labor, en el mercado nacional.
decidí hacer un recuento de sus aportaciones para que las nue-
vas generaciones no piensen que las cosas salen de la nada y • 1997, Gloria Quintanilla y Hanna Oktaba convocan a la primera
para que se animen a participar. reunión del Circulo de Calidad de Software en las instalaciones
de IBM-Technosys. La primer conferencia que se ofrece es de
• 1983, Lupita Ibargüengoitia consigue la primera edición del Francisco López Lira sobre SW-CMM. Asistieron 22 personas, lo
libro de Ingeniería de Software de Pressmann y aunque en la que nos obligó a continuar con reuniones mensuales, una de
especialización en Computación de la carrera de Matemáticas ellas en enero de 1998 en Guadalajara con apoyo de la empresa
de la UNAM no existía materia bajo este nombre, decide impar- mexicana Compac. Por la creciente asistencia las reuniones ha-
tirla. Tal vez este fue el primer curso de Ingeniería de Software bían cambiado de sede a un espacio de INEGI (apoyo de Pablo
en México. Noriega y Natalia Volkov) y luego a Infonavit (apoyo de Víctor
Baez). Los conferencistas fueron nuestros colegas académicos o
• 1983, su servidora llega a México y ofrece el curso sobre Simu- de la industria y los temas abarcados fueron SW-CMM, PMBoK,
la 67 en la Maestría en Ciencias de la Computación de la UNAM. ISO/IEC 15504 (SPICE), Function Points, PSP y muchos más. En-
Tal vez fue el primer curso de un lenguaje Orientado a Objetos. tre 1998 y 1999 organizamos cuatro seminarios de calidad de
software con el apoyo de AMITI y Soluciones Avanzadas, en los
• 1992, Carlos Vizcaíno inicia la publicación de la revista Solu- cuales contamos con la presencia de Watts Humphrey hablando
ciones Avanzadas, una revista semejante a lo que hoy es SG. de TSP, Suz García y Mark Paulk hablando de SW-CMM y William
Esta revista fue un excelente medio de transferencia de conoci- Hetzel de proceso de pruebas.
miento y comunicación entre la academia y la industria. Aquí se
publicaron los primeros artículos sobre diversos paradigmas de • 1997-1998, empezamos a tener las primeras empresas de la
lenguajes de programación, OO, UML, modelos, así como están- industria de software evaluadas en ISO 9000:1995, tales como
dares de procesos y muchos temas más. Desgraciadamente la Gedas, Certum, EDS, e IBM-Technosys y la primera en SW-CMM
revista dejo de existir en 1999. nivel 2 fue IBM-Technosys.

• 1992, su servidora empezó a dar las primeras conferencias so- • 1998, Luis Castro profesor de la UAM-I crea el primer Labora-
bre ¿Por qué está de moda OO? en los foros de Instituto Mexica- torio de Ingeniería de Software en la academia y se convierte
no de Petróleo, COMDEX y Día Borland, inventando el ejemplo pronto en uno de los primeros instructores PSP.
de ¿cómo se hacen chilaquiles al estilo OO?, para poder llamar
la atención del público. • 1998, Lupita Ibargüengoitia y Hanna Oktaba abren en la Maestría en
Ciencia e Ingeniería de Software de la UNAM un área de especialización
• 1994, Arnoldo Díaz de la empresa certum comienza a partici- en ingeniería de software con cursos de Tecnología Orientada a Objetos
par en un proyecto de la ISO llamado SPICE (Software Process y modelos de procesos de Ingeniería de Software (12207, 15504, SW-
Improvement and Capability dEtermination), hoy mejor conocido CMM, PSP, TSP). En los últimos años estos cursos fueron enriquecidos
como el estándar ISO/IEC 15504 Software Process Assessment. con la participación de las instructoras: Ana Briseño (consultora inde-
Llegó a fungir como Project Editor y Miembro del Consejo de Ad- pendiente), Cecilia Pérez (IBM de México) y Elsa Ramírez (Praxis). Hasta
ministración del proyecto SPICE. La herramienta de Evaluación la fecha Lupita y yo hemos dirigido 48 tesis de maestría relacionadas
de Procesos de Software desarrollada por certum fue denomina- con diversos temas de calidad en procesos de software.

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


• 1999, Gloria Quintanilla, Francisco López Lira, Lupita Ibargüengoitia de software basados en las tesis de maestría. En los últimos años
y su servidora fundan la Asociación Mexicana para la Calidad en In- de la actividad de la AMCIS se crearon sus capítulos en Jalisco (Luis
geniería de Software (AMCIS). A mitad de 1999 el Círculo de Calidad Vinicio León), Nuevo León (Héctor González), Veracruz (Agustín La-
de Software, tuvo tantos adeptos que se decidió formalizar su exis- gunes) y Chihuahua (Joaquín Gálvez).
tencia a través de la AMCIS. Durante sus 8 años de existencia varias
personas dedicaron su tiempo para que la asociación funcionara. • 1999, Carlos Montes de Oca llega al CIMAT, Guanajuato, y empieza a
Me llegan a la mente los nombres de: Ana Vázquez, Jorge Palacios, formar el grupo de investigación en Ingeniería de Software y Calidad más
Agustín Gutiérrez, Ana Briseño, Luis Castro, Mariana Pérez-Vargas, dinámico del país.
José Manuel Milanés, Carlos Pérez, Maria Julia Orozco, Claudia Al-
quicira, Angélica Sú, Héctor González y muchos más cuyos nombres Esta es la primera parte de mis recuerdos, que abarca principalmente los
se me escapan en este momento. Continuamos con las reuniones años noventas. Quiero subrayar que este recuento está basado solamen-
mensuales gracias al Grupo SETI, que nos ofreció el espacio, orga- te en mis recuerdos personales usando mi memoria de viejita. Invito a
nizamos cinco seminarios de calidad de software con invitados ex- todos mis colegas y a los lectores de SG para que complementen la infor-
tranjeros y nacionales. Armamos el primer Diplomado de Calidad de mación y que corrijan los datos erróneos.
Software que entre 2002 y 2006 fue ofrecido en el Distrito Federal
y en el interior del país. También, editamos cuadernos de calidad » Por Hanna Oktaba

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


// COLUMNA /*MEJORA CONTINUA*/

La Cultura de Calidad
Tomemos el reto

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.

L a semana pasada terminé un libro llama-


do The Culture Code (El Código de la Cultu-
cia del diseño y cómo lograr, en grupo, cero
defectos. Yo creo que esto se ve claramente
ve, cero defectos implica ser perfecto. Así en
las culturas occidentales no podemos hablar
ra). El libro está enfocado principalmente en ejemplificado con los problemas que el día de de cero defectos sino de mejora continua. No
el área de mercadeo y desarrollo de nuevos hoy enfrenta la industria automotriz america- podemos aspirar a ser perfectos, pero sí a
productos. Expone el hecho de que para ha- na. En Detroit la preocupación siempre ha sido mejorar continuamente.
cer un buen trabajo no es suficiente hacer entregar automóviles que funcionen, desde
entrevistas enfocadas para averiguar los los tiempos de Henry Ford y su famosa frase 2) Si el occidental valora que las cosas fun-
gustos específicos de un grupo de personas, “Te lo podemos dar de cualquier color siem- cionen entonces existe un gran valor en las
pues el entrevistado al tratar de explicar se pre y cuando sea negro”. El enfoque siempre áreas de soporte y de servicio. Si se descom-
ve rodeado de prejuicios e ideas sociales ha sido una máquina que te lleve de un lado pone mi coche lo que quiero es que lo repa-
que se interponen en su definición. Si por a otro. Al mismo tiempo la industria automo- ren inmediatamente aunque no tenga ningún
ejemplo preguntamos ¿qué quieres ver en un triz japonesa está en pleno auge liderado por plan de salir en él. Si mi programa de soft-
automóvil? las respuestas se enfocan en su Toyota. Los japoneses no sólo se preocupan ware falla no hay nada más importante que
velocidad, bajo consumo de gasolina, poco porque el automovil funcione, sino cómo per- el hecho de que funcione nuevamente. Estas
mantenimiento y demás elementos que defi- feccionar todo proceso que involucre al auto. son áreas que normalmente relegamos pero
nen a los automóviles actuales. Pero, si pre- Hace poco escuché una historia de como la deberían ser parte de los procesos básicos
guntamos más a nivel subconsciente a través persona encargada de diseñar la Sienna se de nuestra compañía.
de dinámicas de roles, manejo de recuerdos pasó viajando por minivan en Estados Unidos
y demás, las respuestas son totalmente dife- durante un año para identificar qué debería 3) Aunque para el occidental la calidad se
rentes. Un ejemplo de dinámica sería el aden- y qué no debería contener la camioneta. Es ve en el hecho de que algo funcione correc-
trarse a preguntar tus primeros recuerdos de interesante como nunca se me hubiera ocurri- tamente, esto lo podríamos ver como un
un automóvil y las emociones que estos re- do decir que lo que quería de mi auto es una algo que simplifica nuestro trabajo pero es
cuerdos te traen, al hacer esto se descubre buena área de mantenimiento y servicio que un arma de dos filos, ya que esto se vuelve
que en realidad lo que buscamos de un auto me entregue el coche cuando se me dijo y me una característica dada en el producto. Si de
es la libertad e identidad que nos proporcio- costara la tercera parte. Nunca pensé que fue- veras quiero maravillar a mi cliente requiero
na, cómo el automóvil nos hace únicos. ra posible. Ahora después de dos años con mi que mi diseño me haga impresionante.
Toyota es lo mínimo que espero.
El libro da un compendio de lo que el autor ha 4) La mejora continua requiere de un trabajo
encontrado en sus estudios y resume esta in- ¿Y esto a mí qué? arduo que toma tiempo, constancia y discipli-
formación tratando de encontrar una palabra Bueno, ¿por qué es importante hablar de esto na, pero estas características son tan raras en
que define en la mente de los americanos si- ahora? Yo creo que este pasaje tiene muchos una organización que podemos contar con el
tuaciones como: sexo, trabajo, salud, etc. Lo puntos de valor para el área de cambio de hecho que de ese trabajo nos diferencia de
que se me hizo realmente fascinante es que una organización. Si suponemos que por ser nuestros competidores, muchos hablan de
entre sus estudios se encuentran las defini- la nuestra una cultura occidental hay alguna calidad pero no todos tienen el temperamen-
ciones de términos como “calidad” y “cero posibilidad de parentesco en el ámbito de ca- to para lograrlo.
defectos” y cómo se compara con la calidad lidad con la cultura japonesa, analicemos los
en la cultura japonesa. De acuerdo al autor los siguientes puntos: Es interesante entender estos rasgos culturales
norteamericanos ligan la palabra calidad con para así vender mejor nuestras ideas, y hacer de
el hecho de que un producto haga lo que fue 1) El trabajo de un área de cambio es 30% nuestras organizaciones la fuerza competidora
diseñado para hacer sin problemas. En otras crear y 70% vender. Por lo que para un vende- que logrará en forma consistente los resultados
palabras, en norteamérica calidad significa: dor esta es información muy importante. Un que nuestros clientes están buscando.
“¡FUNCIONA!”. Esto contrasta con la cultura punto que no mencioné es que el americano
japonesa en donde la calidad es mucho más. valora mucho el movimiento, por lo que no Tomemos el reto, es hora de crear nuestra
En esta cultura la calidad está ligada con el he- puede asimilar la idea de la perfección, sólo propia cultura de calidad.
cho de que el producto funcione, pero adicio- Dios es perfecto. Ser perfecto implica ya no
nalmente tiene que ver con la pureza y eficien- moverse, y solamente lo muerto no se mue- » Por Luis Cuellar

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


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

RubyMine
Por fin un IDE para Ruby
Moblin
Linux atómico
Como evidencia de la popularidad que está cobrando el len-
guaje Ruby, la empresa JetBrains lanzó RubyMine 1.0, un am-
biente de desarrollo para Ruby y Rails. Moblin es una edición de Linux optimizada para eje-
cutarse en sistemas basados en la tecnología Atom
RubyMine mantiene el alto estándar de calidad de los productos de Intel. La visión es proveer una plataforma comple-
de Jetbrains. Entre sus características destacan: ta para aplicaciones enriquecidas que aprovechen las
• Editor inteligente que analiza el código e infiere los tipo de capacidades de dispositivos tales como NetBooks,
datos conforme escribes. MIDs (mobile internet devices), sistemas de informa-
• Capacidades integradas para aplicar el framework Rails. ción/entretenimiento para vehículos, y otros disposi-
• Pruebas unitarias con TestUnit y Rspec. tivos embebidos.

Más información en: www.jetbrains.com/ruby El proyecto se encuentra en etapas tempranas y to-


davía no está listo para producción, pero puede ser
una opción atractiva para quienes estén conside-
rando iniciarse en el desarrollo de aplicaciones para
este segmento.

Más información en moblin.org

IBM WebSphere CloudBurst Appliance


Habilitación de nubes privadas
Dryad y DryadLINQ
Procesamiento de datos en cluster
IBM dio a conocer su estrategia de cómputo en la nube, haciendo
ver que su estrategia no está orientada a la nube pública (como
Amazon o Google), sino a nubes privadas para corporativos. Las nu- Dryad y DryadLINQ son dos proyectos de Microsoft Re-
bes privadas consisten en proveer recursos de cómputo y datos vir- search orientados a facilitar el procesamiento de gran-
tualizados para ambientes corporativos controlados por el personal des cantidades de datos en clusters de alto desempeño
de TI de la organización. (high performance clusters).

Como parte de esta estrategia, IBM lanzó WebSphere CloudBurst El primer elemento, Dryad, es una infraestructura que
Appliance, un hardware appliance que integra imágenes virtualiza- habilita programas secuenciales y los optimiza para
das de aplicaciones sobre servidores xSeries. Cuando los clientes que puedan ser ejecutados de forma paralela en clus-
están listos, las aplicaciones se habilitan en las nubes privadas para ters distribuidos.
que puedan atender peticiones bajo demanda.
Por su parte, DryadLINQ es un compilador que traduce
Con CloudBurst, los equipos de desarrollo pueden tener a su entera programas LINQ a instrucciones de cómputo distribuido
disposición los recursos de cómputo del appliance durante el ciclo que se pueden ejecutar en un cluster. Para lograr esto,
de desarrollo, y una vez que todo esté listo y probado se configura DryadLINQ particiona de forma distribuida los objetos
para que los recursos formen parte de la nube privada, administra- de datos de LINQ y convierte las sentencias de LINQ y
dos por el departamento de TI de la organización. métodos de C# en tareas distribuidas de Dryad.

CloudBurst se integra con el nuevo Rational Automation Framework DryadLINQ soporta todas las librerías de .Net y se inte-
for WebSphere para automáticamente optimizar la configuración y gra con Visual Studio para facilitar el desarrollo.
habilitación de aplicaciones. La administración de recursos también
se facilita significativamente por medio de la integración con el Tivo- Más información en:
li Service Automation Manager. research.microsoft.com/en-us/projects/dryad
research.microsoft.com/en-us/projects/dryadlinq

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


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

Web Testing Utilizando


Visual Studio Team Edition for Software Testers
Creando Web Tests de manera rápida, sencilla y eficiente
Por Benjamín Ruvalcaba

Con la llegada de Visual Studio 2005 Team System, Microsoft intentó


crear un ambiente integrado de desarrollo de software en el cual todas
las actividades del ciclo pudieran tomar lugar. Para satisfacer las necesi-
dades de pruebas del desarrollo de software, Microsoft creó Visual Stu-
dio 2005 Team Edition for Software Testers. Desde aquel lanzamiento,
Microsoft ha puesto en el mercado la versión 2008 de su Team System
suite. Además, existen planes para lanzar la versión 2010 en un futuro
cercano. Esta versión tendrá un énfasis en las actividades e integración
de testing. A diferencia de la mayoría de los productos comerciales, el
objetivo de Test Edition no es la captura de las actividades del teclado o
mouse. La herramienta se enfoca en la captura de las interacciones http
y https entre el cliente y los servidores web. Este enfoque alivia en algo
la frustración que viene con el uso de las herramientas basadas en la
grabación de eventos en la interface gráfica del usuario.

Este artículo proporciona información acerca de conceptos básicos de la


herramienta. El objetivo es dar a los lectores una idea de cómo implemen-
tar la herramienta en poco tiempo y sin los dolores de cabeza comúnmen- Captura1. Creación de nuevo proyecto
te asociados con el comienzo de la automatización de pruebas.
Mientras estoy grabando actividad, entro a mi cuenta en el sitio utilizan-
Creando web tests do el link ‘Actualizar Datos’ y reviso información personal. Para finalizar
Ya que los web test solamente están disponibles en Proyectos Test, la grabación oprimo el botón Stop en los controles correspondientes. Al
el primer paso hacia la creación de un web test es la creación del hacer esto, la herramienta comienza la detección automática de pará-
proyecto. Nótese que el tipo de proyecto Test solo existe como com- metros dinámicos. Los parámetros dinámicos son aquellos que se utili-
ponente del Test Edition de Team System. Puedes agregar el proyec- zan de manera subsecuente al primer uso en la grabación. Una vez iden-
to a una solución existente o crear una nueva. Selecciona New > tificados los parámetros dinámicos, el sistema ofrece la oportunidad de
Project desde el menú File para aparecer el dialogo de New Project. promoverlos para que sean utilizados en corridas posteriores.
Selecciona el tipo de proyecto Test, su nombre, .Net Framework que
deseas, y la solución que de deseas utilizar.

Una vez creado el proyecto, debes agregar el web test. Para agregar el
web test puedes oprimir el ícono de New Test o seleccionar New Test
desde el menú de Test. Los diferentes tipos de prueba aparecen en el
dialogo de Add New Test. Los tipos de pruebas que existen incluye: Ge-
neric, Web, Load, Manual, Ordered, y Unit. Selecciona Web Test y captu-
ra el nombre para la prueba y el proyecto que vas a comenzar. Una vez
que hayas presionado OK aparecerá una sesión en blanco de Internet
Explorer lista para iniciar la grabación de actividad del navegador. Los
controles de grabación te permiten comenzar, detener, parar, comentar
o borrar la grabación. Estoy utilizando www.sg.com.mx como dirección
para este ejemplo. Nótese que en cuanto comienza la actividad http se
empieza a grabar. Esto se puede ver en el árbol jerárquico de las requi-
siciones http que aparece bajo los controles de grabación. Captura 2. Despliegue de la prueba y el árbol

Benjamín Ruvalcaba Alonso tiene más de 18 años de experiencia en proyectos de informática. Ha trabajado en Microsoft, GE y otras empresas públicas y
privadas. Ha dedicado los últimos seis años al testing de diversas aplicaciones web.

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


Al completar el paso anterior, el sistema despliega la prueba y el Con la integración de Team Foundation Server, podrías tomar los
árbol de llamadas http(s). Este es el resultado de la grabación con resultados y publicarlos para tener control de todas las pruebas
los parámetros utilizados para mi acceso al sitio. Advertencia: La ejecutadas. También es posible la creación de bugs mediante la
herramienta no utiliza encriptado. Por lo tanto, todo el tráfico es utilización de estos resultados.
visible. Yo oculte mi clave para este ejercicio.

Como buena práctica, corre el web test para asegurarte que fun-
ciona adecuadamente. Al terminar la prueba, el sistema te desple-
gará un panel de resultados. Para verificar las razones de fallas
puedes oprimir el link de ‘Test run completed’. Esto mostrará una
lista detallada de la corrida de la prueba. Procedamos a agregar
validaciones propias.

Agregando validaciones propias


La herramienta agrega muchas validaciones propias. Asegura que
la página se muestre, verifica que las redirecciones http que ocu-
rrieron durante la grabación sean válidas al momento de ejecu-
ción, etc. Sin embargo, el usuario aún querrá agregar validaciones
propias. Para esto es necesario identificar la llamada http que se
desea validar. Para agregar validaciones a la página de Actualizar
Datos solo hay que dar click derecho en la validación y seleccionar
‘Add Validation Rule’ del menú. Un caja de diálogo aparece con las
validaciones suministradas por la herramienta. Los tipos de valida-
ciones posibles incluyen: Form Field, Find Text, Maximum Request
Time, Required Attribute Value, Required Tag, y Response URL. Captura 3. Prueba con validaciones

La validación de Form Field verifica que un campo en la página ten- Es posible tener mayor control sobre la creación de Web Tests
ga el valor esperado. Un buen uso par esta validación se presenta mediante la utilización de Coded Web Tests. Estos son Web Tests
en los campos defaults. La validación de Find Text verifica la exis- que se crean y existen en código. Para crearlos se puede utilizar
tencia o inexistencia de determinado texto en la página. Yo lo utili- del botón designado o comenzando en blanco, haciendo uso
zo buscando con la opción “fallar si encuentra el texto”, para bus- de las programación utilizando las librerías de WebTesting que
car mensajes de texto comunes en errores de programación. Hay vienen con el paquete. También es posible programar extensio-
que recordar que la búsqueda solamente se hace a nivel HTML, así nes al producto, tales como reglas propias para la extracción y
que puede haber texto embebido en la página sin ser visible. validación del sistema.

La última validación nos permite fijar estándares de desempeño.


Puedes definir cuánto es el tiempo máximo permisible para que Conclusión
cargue una página de tu aplicación. ‘Level’ es una propiedad co- La creación de Web Tests utilizando Microsoft Test Edition es
mún entre todas las reglas de validación. Cualquier web test puede rápida, sencilla y eficiente. Debido a su dependencia en lla-
utilizarse durante pruebas de carga (load testing). Esta propiedad madas http e información HTML, es posible obtener resulta-
determina cuando se incluirán en un escenario de pruebas de car- dos consistentes al ejecutar las pruebas minimizando así el
ga. Como un bono, la herramienta de pruebas de carga (Load Tes- tiempo dedicado a la modificación de pruebas existentes.
ting) es incluida como parte del paquete de Test Edition.
La herramienta también proporciona la capacidad de ejecutar
Ejecutando la prueba con validaciones pruebas de carga y performance sin ningún costo adicional.
Para ejecutar la prueba con validaciones, selecciona el botón de Además de tener tremenda sinergia al utilizarse con Team Foun-
ejecutar para que la prueba corra. El sistema proporciona informa- dation Server. Al utilizarse apropiadamente, los beneficios que
ción para saber si la prueba pasa o falla. Para obtener un reporte se pueden obtener con esta herramienta son muchos.
detallado de los resultados hay que seleccionar el link de ‘Test
run pass / fail’. Al hacer esto, el sistema proporciona el detalle Espero la oportunidad de escribir más acerca de esto en
de todas las llamadas http con información acerca del estado del artículos futuros.
navegador, datos de la requisición, respuesta obtenida, contexto
y detalles. Los detalles de nuestras validaciones se encuentran Si tienes alguna duda o sugerencia puedes comunicarte
en la tableta de detalles. En la muestra, una de las validaciones conmigo en el correo benalonso@computer.org
falló. El sistema suministra el detalle de la falla. La presencia de
una sola falla de validación marcará toda la prueba como fallida.

www.sg.com.mx MAY-JUL 2009 15


// PRODUCTOS /*tutorial*/

Aplicaciones en la Nube con Azure


Comprendiendo como funciona este nuevo esquema
Por Miguel Angel Morán y Misael Monterroca

El cómputo en la nube o cloud computing es una de las tendencias • Uso de estándares. Los estándares son importantes para lograr un
que mayor impacto están teniendo en nuestra industria actualmente ecosistema eficiente en la nube y una interoperabilidad maximizada.
y hacia el futuro próximo. A pesar de que en el número 22 de SG XML, SOAP y últimamente REST son hasta el momento los estánda-
ya se habló bastante sobre este tema, consideramos pertinente re- res preferidos.
pasar algunos puntos, y aprovechar para familiarizarnos con Azure,
que es la propuesta de Microsoft para una plataforma y sistema ope- • Esquemas de pago basados en el consumo. Generalmente el soft-
rativo para la nube. ware se adquiere mediante licenciamiento al hacer un pago, usemos
o no usemos el software, el desembolso de dinero debe hacerse de
Entendiendo la nube cualquier manera. En el modelo de precios de la nube se propone
Desde hace mucho tiempo, en la iconografía utilizada dentro de los que los pagos deben estar basados en datos del consumo real, por
diagramas de topologías de redes, los trayectos donde viajan datos ejemplo: porcentaje de utilización de los procesadores, accesos a la
a través de internet se representan como nubes para enmascarar la base de datos, cantidad de hits por tiempo etc.
complejidad del viaje a través de la red de redes. Derivado de esto,
la nube es una alegoría de internet y representa precisamente toda Como podemos apreciar, el objetivo del cómputo en la nube es dis-
la infraestructura que requiere internet para operar. minuir la complejidad y los costos asociados al generar aplicaciones
en Internet. Este concepto, a su vez hace uso de diferentes términos
Cuando abstraemos este concepto e imaginamos la nube como una ya utilizados en la industria. (Figura 1)
unidad y no como cada una de sus piezas (protocolos, conexiones,
software, servidores, switches y un largo etcétera) tenemos el concep-
to al que actualmente se refiere la industria: Ver a internet como un
todo, donde dejan de ser importantes los detalles exactos para que
se logre echar a andar un aplicativo en internet, y conceptualizar a la
nube como una constante, como una infraestructura de facto con la
que podemos contar para utilizarla como plataforma de cómputo.

Por lo tanto, podemos definir el cómputo en la nube como la utili-


zación de internet (como un todo y no por piezas) para almacenar,
ofrecer y consumir servicios tanto de hardware como de software a
quien lo requiera.

El cómputo en la nube cuenta con varias características comúnmen-


te aceptadas: Figura 1. Conceptos que retoma el cómputo en la nube.
• Tanto el hardware como el software son servicios. En los esque-
mas tradicionales es necesario hacer grandes inversiones para tener Clientes. Son los dispositivos que consumen los servicios de la
un servidor en internet. En el esquema basado en la nube se renta nube. Generalmente acceden a ellos mediante smart clients o pá-
el hardware y el software donde se aloja nuestra aplicación, lo que ginas web.
evita desembolsos iniciales.
Software como servicio. Se refiere a las aplicaciones de negocio
• Infraestructura dinámica y autoadministrable. Del mismo modo, en sí. Son las aplicaciones que los desarrollares crean y exponen
en una plataforma no orientada a la nube, es necesario realizar la ad- a través de la nube. Es decir, cuando desarrollamos para la nube,
ministración de toda la infraestructura, desde el hardware, sistema debemos exponer nuestro software como servicio (comúnmente
operativo, base de datos. Si se desea escalar la aplicación es nece- mediante web services y estándares web).
sario hacer nuevas inversiones para ampliar o actualizar el hardware
para que soporte nuevas cargas además de tener que monitorear el Plataforma como servicio: Se refiere a todo el software y herramien-
funcionamiento del hardware y de la red, actividades que usualmen- tas de administración que otorga el proveedor de servicios en la
te requieren de personal especializado, lo cual representa un costo. nube para desarrollar y administrar las aplicaciones. Esto incluye los
En contraste, en la nube todo esto se ofrece como servicio y el pro- SDKs, las consolas web para la administración de los recursos, y las
veedor se encarga de hacer todo esto de una manera automatizada, APIs (que a su vez, también son servicios) para comunicarse con la
utilizando generalmente tecnologías de virtualización. infraestructura etc.

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


Infraestructura como servicio: Es como tal el hardware que el pro- Framework, sólo que expuesta en la nube. Proporciona servicios como
veedor de servicios en la nube administra y facilita para el procesa- control de acceso, bus de servicios, flujos de trabajo entre otros.
miento y hospedaje de nuestra aplicación.
• SQL Services: Proporciona una base de datos relacional consumi-
La plataforma de Servicios Azure: Una solución ble vía REST o SOAP expuesta en la nube.
completa para la nube:
La plataforma de Servicios Azure representa una propuesta integral para • SharePoint Services: Otorga servicios de colaboración y persona-
resolver los retos que conlleva la implementación del cómputo en la nube. lización para ser usados en la nube.
La figura 2 representa los mismos conceptos que la figura 1, pero en base
al stack de tecnologías que conforman a Azure. • Dynamics CRM: Da acceso por medio de la nube a los servicios de
Microsoft Dynamics.

Windows Azure
Windows Azure es el sistema operativo para la nube que se ejecuta
exclusivamente en los Dataservers de Microsoft. No es posible des-
cargarlo ni instalarlo en un servidor local. Windows Azure proporcio-
na abstracción de hardware, almacenamiento, monitoreo y actuali-
zación de los servicios, interoperabilidad de plataformas (.NET, Java,
Ruby, PHP, COM etc.) y representa la infraestructura como servicio
(IaaS) de Microsoft. Windows Azure asegura una disponibilidad
24/7 y se basa en reglas. La plataforma se encarga de la inmensa
mayoría de las tareas de mantenimiento y administración.

Windows Azure encapsula la plataforma con la cual se ejecuta, la


cual consiste de servidores virtualizados que ejecutan .Net 3.5 SP1,
IIS 7 y Windows Server 2008 64 bits en full trust. Es decir, los usua-
Figura 2. El stack de tecnologías que ofrece Azure rios de Azure no tienen acceso directo al core de las máquinas vir-
tuales sino que acceden al sistema operativo mediante los servicios
Las aplicaciones de negocio conforman el software como servi- expuestos por Windows Azure, mientras que Azure administra auto-
cio (SaaS) que creamos específicamente para la plataforma Azu- máticamente todo el hardware (redes, DNS, almacenamiento, balan-
re. Microsoft provee SDKs para diversas plataformas, como .NET, ceo de carga, etcétera). Windows Azure además provee un servicio
Java o Ruby que contienen ejemplos y todo lo necesario para de- básico de almacenamiento basado en blobs, tablas y colas hospe-
sarrollar en la Azure, lo que permite utilizar todo el conocimiento dadas en la nube. Podríamos decir que es el “sistema de archivos”
de los desarrolladores al utilizar lenguajes y sintaxis familiares. de Windows Azure.
Además existen herramientas para Visual Studio que permiten
integrar completamente la experiencia de programación al IDE de La tecnología de Windows Azure ha sido probada ya en diferentes
Microsoft, que permite emular el ambiente de la nube, trabajando servicios que ofrece Microsoft como Live Hotmail, es una plata-
de forma local. Al terminar el desarrollo el programador accede al forma madura que ha sido ahora expuesta a los desarrolladores
portal de administración de Azure y actualiza el proyecto para que para su explotación.
quede publicado.
Creando un “Hola SG”
Los servicios de Azure corresponden a la plataforma como servicio Para empezar a trabajar de inmediato con Azure sólo es necesario
(PaaS) lista para ser consumida que ofrece Microsoft para facilitar obtener e instalar las herramientas de Visual Studio para Azure. No
enormemente las tareas comunes para desarrollar en la nube. Esta hay necesidad de registro en el sitio de Azure a menos de que se
plataforma ofrece los siguientes servicios: desee publicar el servicio.

• Live Services: Expone los servicios de Microsoft Live tales como En este breve ejemplo crearemos un web cloud service básico.
identidad, comunicación, presencia, búsqueda, sincronización, ubi- 1. Iniciemos Visual Studio 2008 (si se desarrolla en Windows Vista o
cación geoespacial, etcétera. Windows 7, entonces es necesario ejecutarlo en modo administrador)
2. Dentro de Visual Studio 2008 seleccionar File -> New -> Project
• .NET Services: Proporciona bloques de código hospedados en la 3. En Project Types seleccionar “Cloud Service” y en los templates
nube listos para usarse. Es como tener la biblioteca de clases del .NET seleccionar “Web Cloud Service”.

www.sg.com.mx MAY-JUL 2009 17


// PRODUCTOS /*tutorial*/

protected void Page_Load (object sender, EventArgs e) {


lblMensaje.Text = “Hola lectores de Software Guru”;
}

7. Antes de realizar la depuración de nuestro sitio, es necesario


establecer como proyecto de inicio el proyecto web (SGServicio-
EnLaNube_WebRole ). Finalmente realizamos la depuración de
nuestro proyecto, presionando F5 nuestro sitio web será desple-
gado en nuestro navegador predeterminado, como cualquier otra
aplicación ASP.NET

Figura 1. Creación de un nuevo proyecto para Azure en Visual Studio.

4. El template seleccionado, creará dos proyectos: SGServicioEnLa-


Nube que básicamente contiene los archivos de configuración de la
aplicación (las reglas que seguirá Azure para entregar el servicio)
y SGServicioEnLaNube_WebRole que simplemente es un proyecto Figura 3. Creación de un nuevo proyecto para Azure en Visual Studio.
web tradicional (Asp.Net Web Project)
8. Mientras la aplicación se ejecuta, el systray muestra un ícono que
representa al programa “Development Fabric” que es un emulador
que simula el ambiente de hospedaje real de Azure, aunque lo hace
de manera local.

9. Para hospedar el servicio en Azure, debemos publicar el


proyecto y posteriormente seleccionar con el menú contextual
“Browse to Portal”.

10. Esto nos llevará al portal de Azure en internet (es necesario regis-
trarse previamente, y para poder publicar aplicaciones primero hay
que obtener un token). Seleccionamos New Project y posteriormen-
te Hosted Services

Figura 2. Arbol de elementos del proyecto.

5. El siguiente paso será abrir la página asp.net creada por default


y crear un control tipo “Label” al cual le agregaremos un mensaje
desde el code-behind:

<form id=“form1” runat=“server”>


<div>
<asp:Label runat=“server” id=“lblMensaje”></asp:Label>
</div>
</form>
Figura 4. Publicando la aplicación en Azure.
6. Abrimos el code-behind y en el evento Page_Load agregaremos un
mensaje a nuestro Label: 11. El portal de Azure posteriormente solicitará un nombre único
para la aplicación (único a nivel mundial).

Miguel Angel Morán (Twitter: @SrBichi) y Misael Monterroca (Twitter: @mmonterroca) son Microsoft Most Valuable Professionals (MVP) en C#. Cuentan con
13 años de experiencia desarrollando y lidereando soluciones de software de misión crítica en las más diversas industrias. Participan activamente en conferencias,
comunidades de desarrollo y divulgación tecnológica. Actualmente son consultores en emLink, empresa especializada en soluciones de software en las áreas de
movilidad, comercio electrónico y colaboración.

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


Conclusiones:
La plataforma de servicios Azure provee una poderosa y
efectiva solución para desarrollar, administrar y hospedar
aplicaciones basadas en la nube, en cualquiera de sus capas
(software, plataforma e infraestructura), es una alternativa
real para generar aplicaciones escalables, interoperables
y con alta disponibilidad reduciendo significativamente la
inversión de tiempo y los costos. Proporciona además un
ambiente amigable para los desarrolladores, aumentando
Figura 5. Escogiendo el ambiente correspondiente. su productividad derivado de los servicios “out of the box”
que la plataforma ofrece.
12. Como podemos ver, Azure muestra los servidores de staging
(preproducción) y Producción. Al oprimir el botón Deploy el sis-
tema nos preguntará la ruta en el disco duro local en la cual se
encuentran los archivos generados en el paso 9 (con extensión . Referencias:
cscfg y .cspkg) Al terminar de subirse dichos archivos, el sistema SDKs [microsoft.com/azure/sdk.mspx]
publicará el proyecto y mostrará la ruta para acceder a la aplica- Services [microsoft.com/azure/services.mspx]
ción en la nube. Herramientas de Azure para VS http:[is.gd/p3GV]
FAQs de Azure [microsoft.com/azure/faq.mspx]
13. Posteriormente dentro del portal es posible promover el sitio de Documentación para el desarrollo con Azure:
staging a producción. [msdn.microsoft.com/azure]

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


// ENTREVISTA

Jorge Zavala es un viejo lobo de mar en la creación y desarrollo de empresas de tecnología. Fue por ello que en el 2004 la Fundación
México Estados Unidos para la Ciencia (FUMEC) lo invitó para dirigir la oficina de TechBA en Silicon Valley, donde se dedica a apo-
yar a empresas mexicanas de tecnología que buscan penetrar el mercado global. Recientemente tuvimos oportunidad de platicar
con él para tratar de entender en qué consiste el DNA de Silicon Valley, y qué es lo que necesitan los empresarios mexicanos para
competir y trascender en este contexto.

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


¿En qué consisten tus actividades en TechBA? a llevar hasta donde llegan mis capacidades y personas identifican problemas cotidianos y
Básicamente tenemos tres actividades. La esas capacidades van a tener que ser releva- platican al respecto con otras personas, ge-
primera es estar en contacto con la indus- das por alguien mas”. Pretender mantenerse nerando nuevas ideas. Este componente de
tria y los medios para identificar problemas como fundador, dueño y director es un error la discusión es muy importante y debemos
que pueden significar oportunidades de común en México. Por ejemplo en el caso de fomentar este tipo de interacción.
negocio. En base a eso, buscamos empre- Yahoo! los dos fundadores hoy tienen uno
sas mexicanas que potencialmente puedan el 3% y otro el 6% de la empresa, pero ese En TechBA llevamos a cabo “espacios de in-
proveer soluciones para esos problemas y pequeño porcentaje representa miles de mi- novación”, que son sesiones en las que nos
hacer negocio. Por último, buscamos los re- llones de dólares. Pocas personas son un Bill juntamos con 20 ó 30 empresas y discutimos
cursos de inversión para habilitar el negocio Gates que tiene la capacidad de tener una sobre algún tema para generar alternativas
en cuestión. Estos recursos pueden consistir buena idea, desarrollarla, llevarla al mercado de solución y oportunidades de negocio.
en fondos de los distintos programas de go- y administrarla por 30 años.
bierno, o también capital de riesgo. Otro ejemplo son los eventos como los Super
¿Cómo hacemos que las empresas en Méxi- Happy Dev Houses que ya se están haciendo
¿Cómo ha sido la experiencia de estar en co sean atractivas para capital de riesgo? en México, donde un grupo de programado-
Silicon Valley? Justamente esa es la razón por la que empe- res se juntan y aprenden a hacer algo, pero
Es un ambiente con características fabulo- zó TechBA. La conclusión a la que hemos lle- también discuten sobre cómo mejorarlo. De
sas. Todos están buscando hacer el próximo gado es que la razón por la que no tenemos un evento de estos salió la idea para el pro-
Google y las cosas suceden a una velocidad esas inversiones en México es porque no nos yecto Twirex (www.twirex.com), de una dis-
impresionante. La gente quiere salir lo antes ponemos metas tan grandes y no buscamos cusión sobre la dificultad en twitter para dar
posible con un producto en donde no nece- esas grandes oportunidades. seguimiento a temas específicos. Este tipo
sariamente está 100% terminado, pero tiene de proyectos no necesariamente requiere de
una primera etapa que es suficientemente Creo que hay tres elementos a considerar. gigantescos recursos tecnológicos, sino de
útil y con perspectivas para desarrollarlo de El primero es tener una visión global. Tene- la habilidad de comunicación, de síntesis y
una manera efectiva. Aquí la gente no tiene mos que salir a vender no lo que se vende en de crear nuevos conceptos.
miedo a fracasar. Se utiliza un concepto que México, sino lo que el mundo necesita en to-
me fascina denominado “fail fast” (falla rápi- dos lados. El segundo punto es que debemos En México todavía creemos que cuando te-
do). Es decir que si tienes una idea, la prue- aprender a hacer un posicionamiento y dife- nemos una nueva idea o producto, la forma
bes en el mercado lo antes posible; si la idea renciación, encontrar nichos. Lo importante de mantener la ventaja competitiva es es-
es valiosa, corre a lograr el siguiente paso; no es hacer el producto más avanzado, sino conderlo de los demás. Esto es una pérdida
si la idea es mala o tiene que ser mejorada, satisfacer una necesidad no resuelta. El tercer porque al esconderlo le quitamos la posibi-
falla rápidamente y aprende de los errores. punto es aprender a integrarse a una cadena lidad de probarlo y fallar rápido. He tenido
de valor. Hay que estar conscientes de que difí- discusiones con empresarios mexicanos que
¿Es viable replicar este modelo en otro lugar? cilmente nosotros solos podemos llevar nues- han venido a verme y me dicen “es que no te
Muchos ya lo han intentado. Yo creo que a tro producto a todo el mercado. puedo decir la idea que traigo, porque no sé
final de cuentas el concepto sí es replicable. si me la vas a copiar”. La verdad es que si en
Sin embargo, lo primero que necesitas es la Por otro lado, debemos romper el paradigma una plática de diez minutos alguien puede
gente. Un error que se ha cometido en varios de querer ser un país barato. Si volteamos copiar tu idea y hacerla mejor, entonces tu
países es que ponen los recursos financieros a ver, los iPod y los iPhones no son los más idea no vale nada, y lo mejor es que te ente-
por delante de la gente. Primero necesitas baratos y aun así están causando estragos en res antes de dedicarle muchos recursos.
a la gente con mentes frescas que genere el mercado. Hay que buscar cómo posicionar
ideas y eso atraerá recursos. nuestros productos en un mercado donde ge- ¿Qué mensaje le dejas a los lectores de SG?
neremos suficiente utilidad, y esa utilidad va a Lo que más deseo ver en los lectores de SG
¿Alguna decepción de Silicon Valley? atraer inversionistas. Si buscamos solamente es un abierto interés por conquistar nuevos
Pues no es una decepción de Silicon Valley quedarnos con empresas de outsourcing de mundos y demostrar la gran capacidad que
como tal, pero aquí me he dado cuenta que TI que compitan por precio con las empresas hay en los emprendedores mexicanos para
en México perdí grandes oportunidades por de India y China, pues vamos a tener un pro- conquistar nuevos mercados. México está
aferrarme a ideas por más tiempo del que blema muy serio, porque somos más caros lleno de problemas que se pueden convertir
debía o por no tener una visión más am- (el costo de vida en México es más alto) y la en grandes oportunidades para satisfacer
plia. Me he dado cuenta que es importante capacidad de generar utilidad va a ser menor, necesidades que atañen no solo a los mexi-
ver las cosas en grande, y que los negocios y por lo tanto la inversión para empresas de canos sino a personas de todo el mundo.
son para venderse, no para quedarse toda la este tipo seguirá yéndose a otros países.
vida con ellos. Es hora de alimentar nuestras propias moti-
¿Cómo podemos fomentar la innovación? vaciones y transformar las inquietudes que
¿A qué te refieres con que los negocios son Primero debemos entender que la innova- todos tenemos dentro y que al liberarlas se
para venderse? ción no solamente se da en condiciones conviertan en oportunidades invaluables
Como empresarios debemos tener la actitud científicas complejas, sino que se da en la donde podemos dejar nuestra huella y lograr
de decir: “yo voy a arrancar esta idea, la voy vida diaria. La innovación inicia cuando las nuestra realización personal.

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


22 MAY-JUL 2009 www.sg.com.mx
Si eres uno de tantos desarrolla-
dores que lleva años queriendo
aprender a hacer aplicaciones
para teléfonos móviles pero no
ha tenido oportunidad de hacerlo, más
vale que no dejes pasar más tiempo.
En los últimos meses se han conjuntado distintos
factores que han detonando la importancia (y por lo
tanto la rentabilidad) de las aplicaciones de software
en dispositivos móviles, especialmente el segmento
de smartphones. Algunos factores tienen que ver con
avances tecnológicos, otros con estandarización, y
otros más con nuevos modelos de negocio.

Es así que en esta época de conectividad de banda an-


cha, servicios de localización, plataformas multi-dis-
positivo y tiendas de aplicaciones en línea, el momen-
to ha llegado para desarrollar aplicaciones para estos
dispositivos y debes aprovechar la oportunidad.

En las siguientes páginas te presentamos distintos


artículos que van desde un repaso histórico de las
tecnologías, a artículos técnicos para plataformas
específicas y análisis de oportunidades de negocio.

www.sg.com.mx MAY-JUL 2009 23


Un vistazo al pasado y presente del smartphone
por Germán Domínguez
Aunque los smartphones parezcan un ícono Por otro lado, desde 1987 las comunicaciones
de apenas los últimos años, en realidad estos celulares se activaron en México. En esos mo-
dispositivos tienen ya bastante camino recorri- mentos teléfonos como el Motorola DynaTac de
do. Conozcamos un poco sobre su evolución y dimensiones similares a un ladrillo y pantalla de
cómo hemos llegado a lo que tenemos ahora. una línea abrían el camino en esta industria.
Referencias:
www.wikipedia.com En 1983 Casio lanzó el PF-3000, que fue el pri- En el 1992, IBM presentó el primer smar-
www.palmsource.com mer “diario digital”. Esta era una calculadora tphone, conocido como IBM Simon Personal
www.byte.com digital que incluía capacidades para agenda Communicator; vendido en Estados Unidos
telefónica, calendario y memo (notas). por BellSouth. Este dispositivo ya incluía ca-
pacidades de agenda, calendario, calculado-
ra, correo electrónico, envío/recepción de fax,
pantalla táctil y escritura predictiva. Era un
dispositivo muy avanzado para su época.

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


El Apple Newton, lanzado en 1992, es conside- En el 2002 Research in Motion introduce al mer- importantes del iPhone es su sistema operativo
rado como el primer PDA (Personal Digital Assi- cado los primeros dispositivos BlackBerry que propietario con una interfaz de usuario única y
tant). De hecho, fue Apple quien acuñó este tér- incorporaban correo electrónico y telefonía ce- un acelerómetro integrado, que permite cam-
mino para referirse al Newton. Este dispositivo lular. Esta capacidad integrada de correo elec- biar la posición de la imagen en la pantalla de
contaba con un sistema operativo desarrollado trónico y telefonía móvil, hizo del BlackBerry el acuerdo con la posición física del teléfono.
en C++ e integraba funciones para envío e im- primer dispositivo completamente integrado y Adicionalmente, el teléfono reconoce “gestos”
presión de documentos, procesador de pala- optimizado para comunicaciones inalámbricas. realizados con los dedos sobre la pantalla, para
bras, agenda, calendario y calculadora. Adicio- ejecutar acciones.
nalmente, permitía el desarrollo de aplicaciones Como consecuencia del incremento de pla-
personalizadas mediante un lenguaje de pro- taformas y funcionalidades, durante este En 2008 en México los principales proveedores
gramación propietario llamado NewtonScript. periodo los lenguajes de programación y de telefonía celular habilitan su red para sopor-
El ambiente de desarrollo para aplicaciones en ambientes de desarrollo para smartpho- tar GSM / 3G lo cual abre el camino para nuevos
Newton tenía un costo inicial de $1,000 dólares nes aumentaron significativamente. Surgen dispositivos y servicios.
y sólo era soportado en sistemas Macintosh, lo RADs (Rapid Application Development) para
cual limitó su popularidad. Eventualmente fue dispositivos móviles, el más destacado: Sa- Apple libera el iPhone SDK, a través del cual se
licenciado como shareware y finalmente sin tellite Forms que permite el diseño visual de pueden desarrollar aplicaciones para el iPhone
costo, soportando adicionalmente Windows. formas y pantallas para PalmOS y Windows usando el ambiente de desarrollo XCode. Asi-
Mobile. Los lenguajes tradicionales de desa- mismo, Apple abre su “App Store”, una tienda de
En 1996 Palm Computing lanza su línea Pilot. rrollo para dispositivos móviles se consoli- aplicaciones en línea donde los desarrolladores
Éstos eran dispositivos monocromáticos, al- dan, pero también los lenguajes modernos pueden ofrecer sus aplicaciones para que sean
gunos sin iluminación en la pantalla ni puerto comienzan a permear: Java 2 Micro Edition, compradas y descargadas por los usuarios. En
de comunicaciones infrarrojo, con capacidad .Net Compact Framework, Python. Esto trae poco más de 9 meses de existencia, el iPhone
de almacenamiento que fluctuaba desde los como consecuencia que el universo de desa- App Store acumula más de 35,000 aplicaciones
128kb hasta 1Mb de memoria. Las “Pilot” rá- rrolladores para dispositivos móviles crezca y ha superado el billón (mil millones) de descar-
pidamente se hicieron populares por su precio significativamente, y con ello la cantidad de gas. Queda claro que el impacto de este modelo
y el sistema de reconocimiento de escritura aplicaciones disponibles. para ofertar aplicaciones. Tanto así que el resto
conocido como Graffitti. Las funcionalidades de los proveedores, desde Microsoft hasta Re-
esenciales de los PDAs empezaban a estan- Durante los años 2003-2007, los fabricantes search in Motion, ya han anunciado sus propios
dardizarse: todos deberían de incluir cuando tradicionales de PDAs pasaron por momentos “app stores”.
menos agenda, calendario, bloc de notas y cal- de silencio, seguían produciendo dispositivos
culadora. Durante estos tiempos, el desarrollo con las mismas características, aunque incre- También en el 2008 se libera Android, una
de aplicaciones estaba basado en C; el IDE mentaban las capacidades de procesamiento plataforma “open source” para smartphones.
preferido para Palm era CodeWarrior de Me- y almacenaje. Palm produce nuevas versiones Detrás de éste lanzamiento están Google, In-
trowerks, un ambiente de desarrollo original- de Treo, algunas con el sistema operativo Pal- tel, eBay y otros que forman el Open Headset
mente creado para Macintosh que fue portado mOS y otras con Windows Mobile. HP tampoco Alliance. Android está basado en el sistema
posteriormente a Windows. incorpora grandes innovaciones, más allá de operativo Linux y las aplicaciones se progra-
incorporar lectores de huella digital. BlackBe- man en Java, lo que lo hace atractivo a una
En 1998 se acelera la carrera de los PDAs con rry se consolida en el mundo corporativo con gran cantidad de desarrolladores.
la incursión en el mercado de HP y su línea Jor- su integración segura con el correo corporativo
nada. Estos dispositivos estaban basados en el mediante su BlackBerry Enterprise Server. Por En el 2009, el ritmo se ha acelerado aun más.
sistema operativo Windows CE y tenían capa- el lado de los fabricantes de teléfonos, Nokia Apple ya liberó el beta del iPhone SDK 3.0,
cidades iniciales de 16MB de RAM, pantalla a incursiona en el sector de smartphones con Android ya se encuentra en versión 1.5, y para
color VGA y modem integrado. Las aplicaciones la serie N iniciada con el modelo N70, basado cuando leas estas líneas Microsoft ya habrá
se desarrollaban en lenguajes de programa- en el sistema operativo Symbian, incorporaba liberado la versión 6.5 de Windows Mobile, la
ción como Embedded Visual Basic (eVB) y Em- pantalla a color, cámara fotográfica, soporte de cual incorpora capacidades de cómputo en la
bedded Visual C++ (eVC) usando un ambiente aplicaciones Java, mensajes multimedia, nave- nube. Antes de que termine el verano Palm lan-
basado en Visual Studio conocido como Micro- gador Opera, radio y tonos polifónicos. Con esto zará el Palm Pre con el nuevo sistema operativo
soft Embedded Tools. se inicia una carrera entre los fabricantes de te- WebOS, en el cual las aplicaciones se desarro-
léfonos celulares para brindar cada vez mayor llan usando tecnologías sencillas y conocidas
Los primeros esfuerzos para integrar comuni- convergencia en sus dispositivos. Por su parte, como HTML, Javascript y CSS.
caciones inalámbricas en los PDAs se dieron a durante esta etapa los proveedores de redes ce-
principios de esta década. En 2001, el Hands- lulares se dedicaron a madurar sus tecnologías Aún hay mucho material adicional que cubrir,
pring Visor ya soportaba un módulo de ex- y prepararse para la migración hacia GSM y 3G. tecnologías, productos y nuevos lanzamien-
tensión llamado VisorPhone que lo habilitaba tos. Pero al final nuestra labor como desa-
como teléfono usando la red GSM. En el 2002 El letargo se rompe en 2007 cuando Apple rrolladores es mantenernos actualizados. El
Handspring lanzó el Treo 180, que ya integraba lanza al mercado el iPhone, el cual asombró al reto es encontrar la aplicación del billón de
capacidades de teléfono celular sin necesidad vender más de 270,000 dispositivos en las pri- dólares que por más de 10 años se ha busca-
de dispositivos externos. meras 30 horas. Una de las características mas do para esta industria.

Germán Domínguez es Licenciado en Informática Administrativa de UNITEC con más de 13 años de experiencia en el desarrollo de aplicaciones de
negocio y aplicaciones Web. Ahora pertenece al equipo de IT de IBM de México, especialista para la marca de software Rational, y puede ser contactado
en germand@mx1.ibm.com

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


Un modelo con alto potencial en aplicaciones móviles
por Héctor Obregón

Hace varios años el concepto de aplicacio- llamada todos los datos de esta se inter- El escenario móvil
nes peer to peer en Internet se popularizó cambian mediante una conexión directa Hoy existen pocas aplicaciones móviles con
y dio origen a una amplia variedad de solu- entre mi PC y la del contacto con el que un modelo de este tipo que verdaderamente
ciones que ya forman parte de nuestra vida estoy hablando. Los datos de la llamada aprovechen los diferenciadores de un dispo-
diaria, tales como Messenger, Windows Live ya no fluyen a través del servidor central. sitivo móvil. Es cierto que hay versiones móvi-
Sync, Skype y BitTorrent entre otras. Este esquema se conoce como peer-to- les de Skype o Messenger, pero en mi opinión
peer “suave”. hay un amplio terreno sin explotar en aplica-
¿Qué es peer to peer? ciones móviles peer to peer.
En un modelo peer to peer necesariamente En un modelo peer to peer puro o completo,
participan dos o más colegas (peers) co- no hay distinción entre cliente y servidor y Cuando hablamos de soluciones para movili-
rriendo en dispositivos –la mayor parte de todas las funciones de indexación y localiza- dad, tenemos que ir más allá de hacer lo mismo
las veces una PC– que se comunican direc- ción están a cargo de los mismos clientes. que hacíamos en la PC pero ahora en pequeño.
tamente entre si en un modelo uno a uno o Las principales ventajas de este modelo son El diferenciador obvio de un dispositivo móvil
muchos a muchos, sin pasar a través de un su escalabilidad y resistencia a fallas. Dado es….. ¡que se mueve! La ubicación se vuelve
servidor central para la parte medular de la que cada peer funge tanto como cliente relevante para que pensemos en aplicaciones
interacción entre ellos. como servidor, agregar nodos a la red impli- móviles peer to peer que verdaderamente ha-
ca incrementar casi linealmente los recursos gan sentido.
En la mayoría de las aplicaciones peer to disponibles de cómputo y comunicaciones.
peer un servidor central actúa únicamen- Adicionalmente, como ningún nodo juega un La ubicación tiene dos connotaciones:
te como un directorio que le permite a los rol especial, la pérdida o falla de uno normal- 1. ¿Dónde estamos ubicados en el planeta? De-
diferentes peers encontrarse entre sí. Por mente no afecta el funcionamiento de la red finido por nuestras coordenadas – latitud, longi-
ejemplo, cuando quiero llamar a alguien global que sostiene a la aplicación. BitTorrent tud y altura – obtenidas mediante alguna forma
a través de Skype, mi PC obtiene las di- es un excelente ejemplo de un protocolo peer de posicionamiento – GPS, trangulación, etc. –
recciones de mis contactos de un servidor to peer que es altamente escalable, resisten- 2. ¿Quién está cerca de mi? En este caso no es
central que conoce las ubicaciones de te y prácticamente imposible de controlar por necesario conocer nuestra posición absoluta,
todos. Sin embargo, una vez que inicio la una autoridad central. el simple hecho de poder identificar qué es lo

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


que está cerca de mí puede proveerme con funciones sociales del Microsoft Zune. Para Plataformas cerradas. Cuando hablamos de
información interesante. poder realmente aprovecharlo tengo que dispositivos móviles más allá del celular, por
encontrarme con usuarios de Zune segui- ejemplo el automóvil, no hay mucho que ha-
Es en la convergencia del modelo peer to peer do y en muchos lados. Si queremos crear cer mientras las plataformas de los dispositi-
con la información de nuestra ubicación absolu- una aplicación peer to peer de alto impac- vos de a bordo continúen estando cerradas.
ta y relativa donde está el verdadero potencial to seguramente tendremos que soportar a Hay una oportunidad para los fabricantes de
de innovación en aplicaciones móviles. Pense- todas las principales plataformas móviles autos para ofrecer un “sandbox” dentro de
mos en algunos ejemplos ... y este es un esfuerzo no trivial. El proble- la computadora de a bordo donde desarro-
ma además se incrementa si consideramos lladores independientes pudieran agregar
Un automóvil podría comunicar a cualquier que hay tremenda variabilidad entre las sus aplicaciones. Mientras tanto el ritmo de
otro cercano que ha sufrido un accidente. Es- capacidades de los diferentes modelos de innovación dependerá de lo que cada fabri-
tos a su vez podrían retransmitir esta informa- dispositivos móviles. Hay mucho menos cante pueda hacer por su cuenta.
ción a otros de tal forma que conductores que diferencia de capacidades entre una Mac y
se acercan al punto del problema sean adver- una PC de la que existe entre un teléfono Servicios estándar de descubrimiento geográ-
tidos. Podría funcionar incluso para compartir básico y un smartphone avanzado. Para mi- fico. Necesitamos un DNS de descubrimiento
información de las condiciones de tráfico que tigar este problema podemos dirigir nues- geográfico. Un servicio totalmente estandariza-
nos ayuden a elegir mejores rutas. tra aplicación a las necesidades de un nicho do y abierto que me permita descubrir con faci-
de mercado específico que tienda a utilizar lidad cualquier tipo de objetos y servicios que
Cuando llego a un concierto o una fiesta con predominantemente un sistema operativo estén disponibles en una cierta zona geográfica
intención de conocer a alguien, mi celular po- móvil o bien podemos simplificar nuestra o en mi vecindad próxima para poder iniciar una
dría establecer contacto con la gente que está aplicación al mínimo común denominador. interacción con ellos. En Internet el DNS hace la
a mi alrededor comunicándole mis intencio- función indispensable de un directorio de nom-
nes y preferencias. Lo mismo si quiero jugar Configuración compleja de redes locales. Los bres y es la base de mucho de lo que hacemos
a algo con alguien que se encuentre cerca. sistemas operativos móviles deben evolucio- en la red. Un servicio similar que incorporara
La función social de compartir música de la nar de tal forma que sea más sencillo estable- información geográfica, potenciaría de manera
Microsoft Zune a través de Wi-Fi es una idea cer una conexión local entre dispositivos. Las fundamental la innovación en el espacio móvil.
adelantada a su tiempo que no ha funcionado modalidades existentes a través de Bluetooth El reto no es nada trivial ya que la información
mejor simplemente por la falta de una masa o Wi-Fi no son suficientemente sencillas aún. geográfica cambia mucho más rápido que la de
crítica de dispositivos. Ambas plataformas inalámbricas son sufi- nombres en Internet, además de que hay mu-
cientemente buenas en términos de ancho cho más dispositivos móviles que computado-
En un parque de diversiones podría calificar en de banda y alcance para muchos usos, pero ras en el mundo.
mi celular las diferentes atracciones que visito hay que simplificar la experiencia de usuario
y consultar en tiempo real lo que piensan otros para establecer una conexión. Todos los de- Por dónde empezar
visitantes al parque sobre ellas. Si les gustaron talles del protocolo deben esconderse de tal Aún cuando los retos que hemos mencionado
o no y además como están los tiempos de espe- forma que para el usuario sea tan fácil como arriba son significativos, las herramientas ne-
ra en las colas. Esto último podría resolverse sin responder a una pregunta como “Juan desea cesarias para crear la primera generación de
mayor interacción humana si los dispositivos establecer una conexión contigo para jugar aplicaciones móviles peer to peer realmente
simplemente analizan su densidad relativa en Scrabble. ¿Estás de acuerdo?” Con respon- innovadoras ya existen. No hay que perder
un área determinada. der a esa pregunta mi dispositivo debiera de de vista que el mercado para este tipo de
hacer todo lo necesario para establecer una aplicaciones es más grande que el que exis-
Retos a resolver conexión segura, instalar el scrabble si no lo te hoy para computadoras personales. Las
Hay varios obstáculos que dificultan el desarro- tengo e iniciar el juego. principales plataformas móviles (Symbian,
llo de este tipo de aplicaciones en este momen- Windows Mobile, Blackberry e iPhone OS) to-
to y que nos tocará ir resolviendo. Protección de la privacidad. Muy relacionado das cuentan con herramientas de desarrollo
con el punto anterior, necesitamos tener con- poderosas y gratuitas que podemos utilizar
Diversidad de plataformas móviles. El mer- trol absoluto de con quién queremos compar- para empezar a construir estas aplicaciones
cado de dispositivos móviles es altamente tir nuestra información. Resulta particular- hoy. Es muy probable que el primer gran éxito
competitivo y ningún jugador tiene una pe- mente sensible la información sobre nuestra de este modelo no se trate de una aplicación
netración suficientemente dominante como ubicación absoluta. Hay muchos escenarios compleja. Sucedió de forma similar en las PCs
para ser un estándar generalizado. El valor done el usuario puede no querer ser ubicado. con ICQ y Napster en su momento. No sé cual
de uso de una aplicación peer to peer (como Las plataformas móviles nos deben dar con- será la primera aplicación ni en que momento
el de cualquier otra red) se incrementa con- trol total sobre nuestra información al mismo estará disponible, pero estoy absolutamente
forme agregamos más participantes a ésta. tiempo que nos permitan compartirla de ma- seguro de que llegará y cambiará nuestra for-
Es el problema que mencionaba sobre las nera simple con quien o quienes deseemos. ma de vivir para siempre.

Héctor Obregón es fundador y Director General de emLink. Héctor se especializa en el desarrollo de soluciones móviles y para dispositvos embebidos.
Adicionalmente, es Microsoft MSDN Regional Director, Microsoft MVP para Windows Embedded y miembro del comité de dirección de la Comunidad
.NET de México D.F.

www.sg.com.mx MAY-JUL 2009 27


Una interesante oferta para desarrollo móvil
por Edgar Parada

Hace tiempo que observamos un fenómeno Tecnologías para RIAs móviles éste país y rápidamente otros operadores
que consiste en una evolución de las aplica- Existe un buen número de tecnologías dispo- y dispositivos soportaron esta tecnología.
ciones web tradicionales hacia un entorno nibles para desarrollar aplicaciones móviles. Sin embargo, en el resto del mundo Flash
de aplicaciones que se apoyan de un cliente Las que tienen mayor tiempo y posiblemen- Lite tardó en penetrar. Tal vez Macromedia
enriquecido vía plug-in o stand-alone para te más adeptos son Java Micro Edition y C++ (quien en ese entonces era dueño de Flash)
entregar una experiencia similar a la de una (BREW/Symbian). equivocó su estrategia al tratar de impul-
aplicación de escritorio pero con la ventaja sar Flash Lite por medio de los operadores
de estar conectadas al Internet e interactuar Por otro lado, está surgiendo una nueva (carriers). Macromedia se encontró con el
con los datos en la nube de forma transpa- generación de tecnologías para RIAs mó- fenómeno denominado “Walled Garden”,
rente. Este tipo de aplicaciones se conocen viles. Entre estas destacan Flash Lite, el el cual implica que los operadores con el
como RIAs (Rich Internet Appications), y este iPhone SDK y la plataforma Android. Per- fin de proteger un mercado que parecie-
modelo ha sido liderado por tecnologías sonalmente, la que más me convence de ra seguro impiden el rápido avance de
como Java, Flash y últimamente Silverlight. éstas y que les puedo recomendar es Flash las tecnologías emergentes. Una vez
Lite. En el resto de este artículo ahondaré que Adobe adquirió Macromedia en el
Dadas las capacidades de conectividad y sobre esta tecnología. 2005 cambiaron la estrategia, buscan-
procesamiento de los smartphones moder- do empujar Flash Lite por medio de
nos, son un tipo de cliente muy atractivo Antes de entrar de lleno a Flash Lite, quie- los fabricantes de teléfonos móviles
para RIAs móviles, y las diferentes piezas se ro hacer mención de un par de tecnologías y encontrando una buena respues-
están acomodando para lograr esto: para RIAs móviles que pudieran ser una ta por parte de Nokia, Samsung,
buena opción una vez que sean liberadas. Sony Ericsson y Motorola entre
Los operadores (carriers) están empujando La primera es Palm WebOS que será libera- otros. Fue así que a finales del
agresivamente nuevos modelos con mayor da este verano, y la segunda es Silverlight 2006 se hicieron disponibles en
funcionalidad y mejores planes de datos. for Mobile que se espera esté disponible nuestro lado del mundo los pri-
con Windows Mobile 7 el próximo año. meros dispositivos con sopor-
Los fabricantes están facilitando la interac- te a Flash Lite, y actualmente
ción con sus dispositivos mediante la dispo- Conociendo Flash Lite ya existe una gran oferta de
nibilidad de APIs y SDKs. Flash Lite consiste en una versión reducida de dispositivos que soportan
la plataforma Flash, diseñada para dispositi- esta tecnología.
Las principales plataformas tecnológicas vos móviles. Dadas sus capacidades y su ubi-
para desarrollar software cuentan con edi- cuidad, ésta puede ser una plataforma muy
ciones y componentes específicos para dis- atractiva para quienes busquen desarrollar
positivos móviles. Asimismo, los ambientes aplicaciones para dispositivos móviles. Adi-
de desarrollo modernos como NetBeans, cionalmente, gracias al “Open Screen Project”
Flash IDE y Visual Studio entre otros, ya Flash pronto estará disponible en televisores
cuentan con herramientas orientadas a fa- y otros dispositivos de consumo, lo cual lo Más información:
cilitar el desarrollo en smartphones, tales hace aun más atractivo para desarrolladores Project Capuchin
como emuladores y perfiladores (profilers) tratando de entrar a nuevos nichos. tinyurl.com/5jypyc
de memoria. Kuneri Lite
Flash Lite ya tiene bastante camino recorri- www.kunerilite.net
En resumen, las aplicaciones móviles enri- do. La versión 1.0 fue lanzada en el 2003 con Blocket PC Open Source:
quecidas son un segmento que representa el aparato 505i de NTT DoCoMo en Japón. opensource.blocketpc.com
una gran oportunidad. La adopción de Flash Lite tuvo gran éxito en SWX Format
swxformat.org

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


Flash Lite actualmente se encuentra dis- Proyectos complementarios a BlocketPC. El grupo de usuarios hispano de
ponible en su versión 3.0. Su arquitectura Flash Lite Adobe Mobile ofrece un par de proyectos
consta de varios componentes que permi- En base a las fortalezas y debilidades de open source denominados Layout Manager
ten a las aplicaciones y al contenido Flash Flash Lite han surgido diversos proyectos y Feather Framework que sirven para adap-
interactuar con el ambiente local. El motor complementarios. Listo a continuación los tar contenidos a los diversos tamaños de
de rendereo de gráficas es capaz de in- que considero más significativos: pantallas e incluso cambios de orientación.
terpretar imágenes en diversos formatos
bitmap y vectoriales. También hay compo- Proyecto “Capuchin” de SonyEricsson. Per- SWX. El formato de datos más simple para
nentes específicos para el procesamiento mite manejar la interfaz de usuario en Flash trabajar con Flash.
de ciertos tipos de datos, imágenes, vi- Lite mientras que la lógica de datos se pro-
deo, señales de la red celular y la batería. grama con Java ME. Los datos se pueden Adobe mismo tiene proyectos para pro-
El comportamiento de las aplicaciones y el transmitir bidireccionalmente entre Java ME mover el uso de esta tecnología. Entre
manejo de eventos se programa por medio y Flash Lite por medio de APIs especiales. los más destacados están: Photoshop.
del lenguaje ActionScript. com para dispositivos móviles, Adobe
Kuneri Lite. Es una herramienta RAD para ex- Mobile Packager para facilitar el empa-
tender las capacidades de Flash Lite, propor- quetamiento de las aplicaciones, y Adobe
cionando acceso a protección de software, AppZone que es una plataforma similar
timers, acceso al sistema de archivos, Blue- a la AppStore de Apple para que los de-
tooth, Cámara, GPS y tonos DTMF. sarrolladores puedan comercializar sus
aplicaciones.

Soporte a Flash Lite en


nuestra región
En México y otros países de América Latina ya
existe una buena oferta de smartphones con un
buen soporte de Flash Lite. Mención especial
merece el modelo N5800 recientemente libera-
do por Nokia, que es el primero que provee API
de servicios Flash Lite de localización, acceso a
contactos, calendario y mensajería entre otras
funciones que elevan al máximo las posibilida-
des de desarrollo con esta tecnología.

Vale la pena mencionar que Flash Lite no solo


es soportado en smartphones, sino también
en otros dispositivos como el Nintendo Wii y
el Playstation 3.

Para una lista completa de dispositivos que


soportan Flash Lite les recomiendo revisar
www.adobe.com/mobile/supported_devices

Conclusiones
Después de conocer todos los proyectos y
características de esta tecnología es relati-
vamente más sencillo identificar oportuni-
dades de negocio para llevar la experiencia
móvil al siguiente nivel.

Espero que el público lector sea sensible a


toda esta revolución y descubra una oportu-
nidad más en el desarrollo para móviles. Es
muy buen momento para experimentar con
tecnologías RIA para smartphones.

Edgar Parada es Director de Activ (www.activ.com.mx), un Adobe Authorized Training Center especializado en tecnologías como Flex, Flash Lite y Flash
Media Server. Es manager de Riactive (www.riactive.com.mx), el grupo de usuarios oficial en México para Flex. edgarparada@activ.com.mx

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


¿Por dónde empezar?
Por Juan José Karam

Cumpliendo casi un año en nuestro País, Objective-C Arquitectura


el teléfono producido por la empresa de Objective C es el lenguaje de programa- Para entender
la manzana ha empezado a tomar fuerza ción utilizado para programar aplicacio- a grandes rasgos
a través de sus aplicaciones, tanto en el nes para iPhone. Es un lenguaje orientado el funcionamiento
aspecto casual en el cual podemos en- a objetos creado en los años ochenta por del dispositivo, y más
contrar aplicaciones para consultar la la empresa Stepstone y posteriormente importante, cómo es que
cartelera del cine, video juegos e incluso licenciado por NeXT Computer. Estos últi- nuestra aplicación convive con
revistas digitales, hasta el entorno em- mos extendieron el lenguaje de varias ma- el mismo, debemos conocer como
presarial con lectores de noticias, mane- neras, por ejemplo creando los NeXTStep funciona la plataforma y qué partes la com-
jo de finanzas, entre muchos otros. Esto frameworks que preceden a Cocoa. Pode- ponen. Similar al Mach Kernel encontrado
ha generado una oferta de trabajo nueva mos entender a Objective-C como una ex- en Mac OS X, se encuentra el componente
para el mercado mexicano: ingenieros de tensión del ANSI C, lo cual nos permitirá más importante: el Kernel de iPhone OS. En-
software con perfil para desarrollar tanto utilizar todos los beneficios de C. Gracias cima de éste se encuentran diversas capas
para Mac OS X como para iPhone OS. a esto podemos implementar clases en un las cuales nos proporcionan los servicios
paradigma orientado a objetos o también que darán vida a nuestra aplicación.
Aprender a desarrollar para iPhone puede te- hacerlo de manera estructurada.
ner muchas oportunidades, la más tentadora Cocoa Touch
por supuesto es vender nuestras aplicaciones Aunque podemos definir que C# o Java tie-
en la App Store aunque también la necesidad nen sus orígenes en C o C++, la sintaxis de
de software a la medida empresarial comien- Objective-C puede causarnos confusión en Media
za a crecer. Cualquiera que sea tu motivación, un principio, como ejemplo podemos anali-
esto puede traerte una gran retribución. zar las siguientes líneas de código:
Core Services
¿Qué necesito? Sintaxis Objective-C
Una computadora Apple con procesador Intel. (NSEvent *)nextEventMatchingMask:
(unsigned int)mask untilDate:(NSDate *) Core OS
El iPhone SDK que es la plataforma de desa- expirationDate inMode:(NSString *)mode
rrollo para iPhone OS. Esta es gratuita y se dequeue:(BOOL)dequeue Figura 1. Arquitectura del iPhone SDK
puede descargar desde el sitio de Apple De-
veloper Connection (developer.apple.com). Representación en C# Core OS. Rodeando al Kernel, los drivers
nextMatchingEvent(int mask, y las interfaces del sistema operativo,
Aunque la plataforma de desarrollo nos pro- NSDate expiration, String mode, boolean flag); ésta capa nos ofrece la oportunidad de
porciona un simulador de iPhone bastante acceder a las características de bajo nivel
confiable, es recomendable tener ya sea un A pesar de que son expresiones que en el como pueden ser las más importantes: hi-
iPod Touch o un iPhone. fondo pueden interpretarse como la mis- los, uso de la red, acceso al sistema de
ma, las sintaxis son totalmente distintas. archivos, I/O y asignación de memoria .
Estar inscrito en el iPhone Developer Pro- Por lo tanto nuestra primera recomenda- Algo importante a tener en cuenta es que
gram Standard el cual nos permitirá instalar ción es estudiar bien el lenguaje, esto ésta capa y sus interfaces están construi-
la aplicación en nuestros dispositivos, como debido a que puede agregarnos un grado das en C, por lo que usarlas nos puede
también permite el acceso a la App Store mayor de complejidad durante el proceso agregar complejidad extra.
como medio de distribución. de aprendizaje.
Core Services. Ofrece los principales ser-
Conociendo la plataforma Una referencia útil es el tutorial “Object- vicios que todas las aplicaciones utilizan
Es importante conocer primeramente cuales Oriented Programming with Objective-C” de manera directa o indirecta. Esta capa
son las características de la plataforma, desde el disponible en developer.apple.com/iphone es muy importante debido a que en ella
lenguaje de programación hasta los frameworks donde se explican a detalle las particularida- encontramos los servicios de Acceso a
que se utilizan en el desarrollo de iPhone. des del lenguaje. Datos con SQLite, Seguridad, conexiones

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


HTTP-FTP y soporte XML. Los frameworks más te interesa. Permite crear aplicaciones ware del dispositivo. Seguramente tu mejor
mas importantes que la componen son visualmente atractivas con pintado en 2D o opción al construir un video juego o gráficas
los siguientes: 3D, animaciones, audio y video. Todo esto a vistosas para el análisis de datos.
través de los siguientes frameworks:
Core Foundation. Brinda soporte para colec- Core Audio. Entre sus funciones princi-
ciones de datos, cadenas, bundles, manipu- Core Graphics. Contiene las interfaces de dibujo pales se encuentran el grabado, mezcla y
lación de URL y streams, soporte multi hilos de Quartz 2D. Este motor de dibujo en vectores reproducción de archivos de audio. En él
y conexiones por puerto y socket. que también podemos encontrar en Mac OS también se exponen las interfaces de vi-
X provee soporte para degradados, colores y bración del dispositivo.
CFNetwork. Construido en C, nos provee de ma- transformaciones de coordenadas. Sin embar-
nera simplificada el uso de conexiones HTTP- go, una de sus características más atractivas es Media Player. Presenta el soporte para visua-
FTP, además de la resolución de Host DNS. la creación y visualización de documentos PDF. lización de videos a pantalla completa. Entre
los formatos soportados están mov y mp4.
Core Location. Una de las principales carac- Quartz Core. También conocido como Core
terísticas de iPhone es la capacidad de saber Animation. Como su nombre lo dice, expone Cocoa Touch
en qué longitud y latitud del mundo nos en- las interfaces necesarias para el manejo de Es la principal capa para la construcción
contramos. A través de este framework po- animaciones dentro de la aplicación. de aplicaciones, ya que provee la infraes-
demos averiguar esta información. tructura necesaria para manejar desde la
Open GL ES. Framework con interfaces en interacción del usuario y las vistas, hasta
Media C. Provee todo lo necesario para trabajar la internacionalización de nuestra aplica-
Si tienes en mente un video juego o una apli- objetos en 2D y 3D con alto desempeño ya ción. Principalmente se compone de dos
cación con contenidos, ésta es la capa que que tiene una fuerte integración con el hard- frameworks:

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


UIKit Framework. Principalmente utilizado del Apple Developer Connection (developer. memoria, uso de disco, conexión a la red y el
para el manejo de la aplicación, ventanas y apple.com/tools/xcode). Ahí encontrarás rendimiento del motor gráfico.
eventos del usuario. También a través de él desde cómo realizar la depuración hasta la
se interactúa con el acelerómetro y la cáma- automatización de tareas de desarrollo. Recabando los datos ya sea del dispositivo o
ra. Este framework es el más utilizado por del simulador nos presentará una serie de lí-
todas las aplicaciones de iPhone. neas de tiempo donde podremos agregar los
Interface Builder (IB) medidores que hagan sentido para evaluar
Foundation Framework. Encapsulando la Interface Builder nos permite diseñar la inter- todos los aspectos del comportamiento de
funcionalidad expuesta por el Core Fra- faz gráfica de nuestra aplicación partiendo la aplicación y a su vez nos facilitará la com-
mework del cual hablábamos anteriormen- de componentes precompilados (controles), paración y análisis entre ellos. Una de sus
te, nos brinda de una manera más sencilla manejar sus configuraciones particulares y principales características será la capacidad
de manejar arreglos, cadenas, fechas, e in- la manera en que interactúan con nuestro de grabar lo ejecutado en nuestra interfaz
ternacionalización entre otras. código. Es de suma importancia documen- gráfica, permitiendo reproducirlo las veces
tarnos correctamente acerca de un control a que sea necesario para analizar los distintos
Las Herramientas ser utilizado, debido a que algunos de ellos resultados arrojados.
El iPhone SDK nos provee de distintas aplica- pueden requerir una implementación espe-
ciones para llevar a cabo nuestra construcción. cial, como por ejemplo responder llamadas Como se podrán imaginar, la guía de usuario
Cada una tiene su funcionalidad específica y de algún delegado. de Instruments también se encuentra dispo-
por lo tanto una curva de aprendizaje propia. Al nible en el Apple Developer Connection.
migrar de otros IDEs como Visual Studio donde Al referirnos a Interfaz Gráfica, por ejemplo
toda la funcionalidad está integrada bajo una en Visual Studio con los Windows Forms po-
misma interfaz de usuario, podemos sentirnos demos encontrar que son archivos de código ¿Donde empiezo?
incómodos por utilizar varias herramientas a la donde se declaran todos los controles que la A mi punto de vista uno de los mejores lugares
vez, pero posteriormente con el trabajo conti- componen, así como otras propiedades de la para empezar es el iPhone Development Quick
nuo apreciaremos esta segmentación. misma. Sin embargo al hacer la misma refe- Start (tinyurl.com/dm4hrc). Éste es un tutorial
rencia cuando desarrollamos en iPhone en- muy completo y fácil de seguir donde paso a
Xcode contramos un grupo de archivos de extensión paso irás construyendo aplicaciones en base a
Amigable y poderoso, este IDE nos permite “xib”, los cuales son archivos de recursos en lo que hemos leído en este artículo.
administrar nuestro proyecto y los archivos formato XML generados por una herramienta
que lo componen, compilarlos para ejecu- de diseño de interfaces, Interface Builder. Consejos Finales
ción y depurarlos ya sea en el simulador o en Identifica cual dispositivo es tu objetivo, ya
un dispositivo. Un buen lugar para empezar es la Guia de que en base a eso deberás basar tus caracte-
Usuario de Interface Builder, disponible rísticas. Como un buen ejemplo, el uso de la
Xcode cuenta con un editor de texto con “code también en el sitio web de Apple Developer cámara únicamente será posible en un iPho-
completion” el cual ofrece una funcionalidad Connection. En ella se explican a detalle las ne y no en un iPod Touch.
similar al Intelisense de Visual Studio. Por otro tareas más comunes cuando construimos in-
lado, la capacidad de “code folding” nos per- terfaces y las conectamos a nuestro código. Respeta el manejo de la memoria del dispo-
mite ocultar lineas de código, por ejemplo mé- sitivo, así evitaras que tu aplicación se cierre
todos terminados o que no serán trabajados en la visualización de un documento impor-
en ese momento. Esto además de las carac- tante o justo en el momento en el que tienes
terísticas usuales como son “sintax coloring” toda la atención del usuario.
y la visualización de errores o alertas dentro
de nuestro código. Sin embargo también nos Toma en cuenta siempre la experiencia del
ofrece la oportunidad de trabajar con nuestro usuario por que ellos sí lo toman en cuenta.
editor de texto preferido al integrarse de una
manera bastante funcional. Usa los recursos del dispositivo de forma
conservadora. A ningún usuario le gustará
Cuanto trabajamos en equipo también es im- Figura. 2. El Interface Builder que la batería del dispositivo se agote rápi-
portante contar con un control de versiones. damente al utilizar tu aplicación.
Entre los soportados por Xcode se encuen- Instruments
tran Subversion y CVS. Pero si eres fanático Partiendo del punto en el que nuestra apli- La documentación que acompaña al
de Git encontraras varios Scripts y recetas cación se ejecutara en un dispositivo móvil iPhone SDK es tu mejor aliada en
creadas por la comunidad para poder traba- con recursos limitados, ésta deberá estar este proceso ya que es fácil de
jar con este repositorio de código fuente. construida para optimizar recursos, sobre entender y muy completa.
todo en la asignación de memoria. Aquí es
Para aprender a utilizar Xcode a profundi- donde entra Instruments. Esta herramienta
dad, te recomiendo visitar su sitio dentro nos permitirá medir a detalle el manejo de

Juan José Karam es un ingeniero de software multidiciplinario enfocado en la arquitectura y


desarrollo de alta tecnología para emLink. Es expositor en la comunidad CocoaHeads México
(cocoaheads.org.mx) y devoto practicante de Scrum. juan.karam@thesharpcode.com

32 MAY-JUL 2009 www.sg.com.mx


Tomando ventaja de la transformación del mercado
por Carlos Silva

Las empresas en México han encontrado en caciones de automatización para la peque- De nuevo, esta estrategia ha sido la correcta,
los desarrolladores de software locales solu- ña y mediana empresa está concentrado pero la apertura de las tiendas de aplicacio-
ciones de calidad mundial. El desarrollo de en dos empresas (Aspel y Contpaq), es de nes de los principales fabricantes de telé-
aplicativos hechos a la medida de las empre- esperarse que en el largo plazo algo simi- fonos inteligentes, de la mano de las estra-
sas ha sido un mercado de alta rentabilidad lar ocurra en el mercado móvil. tegias ya desplegadas por los operadores,
y crecimiento para los desarrolladores que representarán una gran oportunidad para
han incursionado en este segmento. ¿Qué estrategias seguir ante esta expectati- acceder a un mercado enorme.
va? Yo sugiero dos alternativas:
Sin embargo, los éxitos en esta primera ola Recomiendo revisar estas consideracio-
de adopción de la movilidad no deben ser 1. Enfocar los esfuerzos en desarrollar pro- nes a toda empresa de desarrollo que
motivo para olvidar que este mercado apenas ductos terminados. Muchas empresas en el esté planeando una estrategia de pene-
está naciendo, lo que significa que aún hay mercado cuentan con algún motor básico de tración del mercado de consumo:
segmentos de clientes por atender y la forma conectividad móvil y GPS que permite ofre-
como las empresas entren a nuevos merca- cer “al cliente lo que pida”. Si bien esta es la 1. El operador celular manda. Puede no gus-
dos puede alterar su posición de liderazgo estrategia correcta en un mercado inmadu- tar y sonar políticamente incorrecto, pero es
o relativo retraso en la industria. Por ello, es ro, no es una forma escalable de sobrevivir una realidad que en la comercialización de
necesario atender dos puntos críticos que me en un mercado que tenderá a consolidarse. todo bien o servicio de consumo, el control
parece influirán de forma contundente en la Generar productos con funcionalidades que lo tiene el detallista. En este caso es el ope-
definición del futuro mercado móvil. resuelvan las necesidades de la gran mayo- rador celular (incluso tienen control sobre
ría de los clientes con alto grado de confi- las iniciativas de tiendas de aplicaciones de
La necesidad de diferenciarse guración y ciclos cortos de implementación los fabricantes de dispositivos). Se puede
Puedo citar al menos cuatro estudios de permitirá generar las economías de escala discutir sobre si los márgenes que para sí
prestigiadas casas de investigación de mer- en la comercialización y despliegue que de- demandan los operadores celulares mexi-
cados IT que citan que después del correo berán tener las empresas líderes. canos son excesivos respecto a prácticas de
electrónico y las listas de contactos, las otras regiones del mundo, pero la realidad
aplicaciones móviles más demandadas son 2. Enfocarse en segmentos verticales que no es que la manera más fácil de que una em-
aquellas que automatizan la labor del perso- han sido atendidos. Las necesidades de las presa de desarrollo lleve su producto a una
nal de campo de ventas y servicio. industrias de construcción, manufactura es- audiencia masiva es hacerlo de la mano del
pecializada, extracción y servicios profesio- operador celular.
Estas aplicaciones para ventas y servicio (llá- nales, entre muchas otras, siempre ofrecerán
menle Mobile CRM, Sales Force Automation oportunidades para la especialización a las 2. El mercado de consumo es de alto volu-
o Field Service Automation) o supervisión que difícilmente podrán acceder los provee- men y bajos márgenes. Tanto en la definición
(merchandising, cobranza) han constituido dores que ofrecen aplicaciones genéricas. de precios como en el cálculo de puntos de
la oportunidad más inmediata y rentable equilibrio se debe tener en mente vender
para las empresas dedicadas a la movilidad. La masificación de las la mayor cantidad posible que genere una
aplicaciones móviles utilidad total neta aceptable aún cuando el
Desafortunadamente, el mercado para El consumo hecho por individuos constitu- margen unitario sea relativamente pequeño.
esas aplicaciones ya comienza a mostrar ye dos terceras partes de la economía; más
signos de saturación. Prácticamente toda del 95% de las más de 80 millones de líneas No hay una sola estrategia exitosa para el
empresa establecida o que inicia su estra- telefónicas móviles del país son contratadas mercado de aplicaciones móviles, pero es un
tegia de penetrar el mercado móvil tiene por personas (no empresas). Con todo y lo hecho que las empresas que incorporen en
alguna variante de alguna aplicación de anterior, los desarrolladores mexicanos ma- sus planes de negocio los cambios inevita-
“toma de pedidos” o “supervisión”. De la yoritariamente se han enfocado exclusiva- bles que experimenta la industria, tendrán
misma forma como en el mercado de apli- mente al segmento de negocios. más posibilidades de éxito.

Carlos Silva es Gerente de Alianzas de Research In Motion, fabricante de los dispositivos BlackBerry. Puede ser contactado en csilva@rim.com y vía su
blog personal www.csilva.net. Las opiniones expresada son suyas y no necesariamente reflejan las de RIM.

www.sg.com.mx MAY-JUL 2009 33


// PRÁCTICAS /*CASO DE ESTUDIO*/

Diseño de la Interfaz de SG Guía


Detrás de las cámaras:
Por Romeo Márquez

A inicios del 2009 el staff de SG nos presentó la posibilidad de realizar 2. Arquitectura de información
el diseño de interfaz para su nuevo proyecto: SG Guía, una herramien- Durante esta etapa, el arquitecto de información clasifica el contenido
ta para ayudar a los profesionistas de TI a encontrar los productos y y busca crear un menú de navegación optimizado. El resultado que se
servicios relacionados con el desarrollo de software. El proyecto nos obtiene es el mapa del sitio que será clave para la etapa de diseño.
pareció muy interesante y a la vez vimos una buena oportunidad de
documentar el proceso para compartirlo con los lectores de SG. En esta etapa es bueno realizar un benchmark entre proyectos
similares para aprender e identificar los elementos que mejor
Nuestra colaboración en este proyecto consistió en desarrollar la puedan servirnos.
arquitectura de información así como el diseño gráfico de la inter-
faz, mientras que la implementación en la herramienta de admi- Un menú de navegación bien planeado es crítico para lograr una
nistración de contenido fue realizadas por el equipo de SG. Dicho buena usabilidad ya que el usuario final no debe pensar demasiado
sea de paso, las oficinas de SG se encuentran en la Ciudad de México para identificar donde podría estar la información que busca.
y gelattina está basada en Monterrey, por lo que trabajar a distancia
solamente hizo el proyecto aun más atractivo! La SGuía originalmente contemplaba que las 4 categorías principales fue-
ran parte de la opción del menú “Categorías”. En el interés de facilitar la
SG Guía ya se encuentra disponible en www.sg.com.mx/guia por si quie- navegación al usuario, se optó por desplegarlas como parte del menú
res echarle un vistazo para que puedas entender mejor este artículo. principal. Además del menú de navegación principal, se plantearon una
serie de elementos que no son propiamente parte de la navegación pero
La pre-producción que sirven como ayuda al usuario, por ejemplo, el listado alfabético de
Notamos una gran ventaja de trabajar con el equipo de SG puesto todas las empresas registradas ubicado en la columna derecha.
que tienen muy buenas prácticas de documentación de requerimien-
tos. Para el análisis inicial SG nos proporcionó documentación con Finalmente el arquitecto de información realiza los wireframes (represen-
su visión del proyecto, un modelo de dominio, detalle de actores y tación sin elementos gráficos que muestran contenido y comportamiento
casos de uso del sitio. de las páginas) de la portada e interiores ya que sirven como herramien-
ta de discusión entre él y los programadores, diseñadores y cliente. Los
Toda esa información es muy valiosa pues en todo proyecto de di- wireframes son particularmente útiles durante la etapa de planeación ya
seño de interfaz, es sumamente importante entender quien será el que dejarán claro qué elementos se planean incluir en la interfaz.
usuario final de la aplicación, para así, poder lograr satisfacer sus
necesidades en términos de usabilidad. 3. Diseño gráfico
Las dos etapas anteriores nos dan la suficiente información para que
Para este proyecto, los dos públicos principales son: el diseñador realice la mejor interfaz posible totalmente orientada al
1) Profesionales de IT en busca de servicios público del sitio. En esta etapa el diseñador realiza también su pro-
2) Proveedores buscando promover sus productos pio benchmarking enfocado en buscar las soluciones gráficas que
sirvan mejor al sitio.
Otro aspecto clave tiene que ver con el conocimiento del sistema de
administración de contenido. Es importante tomar en cuenta la plata- Con un mapa de sitio claro, wireframes bien definidos, conocimiento
forma de desarrollo para diseñar la interfaz de acuerdo a los reque- del perfil del usuario final y una idea clara del contenido, el diseñador
rimientos técnicos. Para este proyecto se seleccionó Drupal (www. tiene todo lo que necesita para crear la interfaz. Como verás, ¡no es
drupal.org) y es parte de nuestra responsabilidad conocer las mejores sólo cuestión de sentarse a diseñar si no existe todo un proceso de
prácticas de diseño para dicha plataforma. planeación detrás!

Para crear una interfaz de usuario eficiente Para poder replicar la experiencia del usuario común de la SG
1. Brief Creativo Guía, el equipo gráfico de gelattina diseñó 9 pantallas que mos-
Este documento nos ayuda a definir las necesidades del negocio y los traban el recorrido de un usuario desde la portada del sitio hasta
resultados deseados del diseño. El brief también ayuda a recabar la que encontrara la información de un producto en particular, ya
información relacionada con la identidad corporativa de la compañía, sea por navegación directa o haciendo uso del buscador.
tecnologías a utilizar en el proyecto, listar requerimientos estéticos,
proyectos competidores y dar un panorama general de los contenidos a Durante la sesión de revisión con SG validamos que todos los ele-
publicar. SG fue muy específico en sus requerimientos por lo que desde mentos propuestos fueran viables técnicamente y que no hubiera
un inicio, quedó muy clara la expectativa que teníamos que cumplir. alguna restricción técnica de Drupal para poder implementarlos.

34 MAY-JUL 2009 www.sg.com.mx


4. Maquetación La prueba de la cajuela
Una vez aprobado el diseño, el equipo de desarrollo pudo entrar en Durante las etapas de diseño y QA tomamos en cuenta la “prueba de
acción para maquetar las plantillas de acuerdo a los estándares web, la cajuela”. Lo que sucede es que solemos pensar que la navegación
es decir, con XHTML, CSS. Adicionalmente, se integró jQuery al código, de un sitio empieza desde la página principal. Sin embargo, la mayoría
un framework de JavaScript que en este proyecto se utilizó entre otras de las veces los buscadores dirigen a los usuarios a partes específicas
cosas, para darle un movimiento específico a los íconos de portada. en el interior del sitio, por lo que es importante asegurarnos de que el
visitante podrá ubicarse al llegar a cualquiera de nuestras paginas.
5. Integración con Administrador de Contenido
La integración del diseño con Drupal, fue ejecutada por el equipo de La prueba de la cajuela (trunk test) fue creada por Steve Krug y con-
desarrollo de SG y gelattina apoyó proporcionando las plantillas y los siste en una evaluación sencilla para determinar si un sitio tiene una
elementos complementarios que la aplicación fue requiriendo. buena interfaz sin importar en que pagina se encuentre el usuario.
La idea es esta: imagina que te meten a la cajuela de un carro y te
6. QA & Testing dan muchas vueltas para desubicarte y al final eres liberado en una
La fase final previa a la publicación incluye la revisión del diseño buscan- página interior del sitio web a evaluar.
do asegurar que haya sido integrado correctamente con el administrador
de contenido y que el concepto original se haya respetado al máximo. Si la página está bien diseñada deberías ser capaz de responder a estas
preguntas sin dudarlo: 
Una parte fundamental antes de publicar cualquier sitio es el beta tes- • ¿Qué sitio es este?
ting no sólo de la interfaz, sino del proyecto completo para asegurarse • ¿En que página estoy?
de que no haya enlaces rotos, imágenes y textos fuera de lugar, etc. • ¿Cuáles son las secciones principales de este sitio?
Dependiendo del tiempo y el presupuesto, es recomendable hacer usa- • ¿Cuáles son mis opciones en este nivel?
bility testing para refinar la interfaz con la retroalimentación de usuarios • ¿Dónde estoy?
reales, además de hacer una optimización del sitio para buscadores, • ¿Cómo puedo realizar una búsqueda?
aunque ambos temas los dejaremos para futuros artículos.
Esta prueba sencilla nos ayuda a mantener en mente conceptos esencia-
les para facilitar no solo la navegación si no la interacción del usuario con
nuestro sitio.

Conclusión
La creación de un proyecto web, cualquiera que sea su tama-
ño, que busque ser exitoso requerirá de un buen trabajo de
integración tanto en la parte tecnológica como en la interfaz
del usuario. Para eso se requiere de un equipo multidiscipli-
nario con experiencia en las áreas de usabilidad, arquitectura
de información, diseño gráfico y desarrollo de aplicaciones.
Mientras más se utilice la empatía con el usuario y se combi-
ne el conocimiento de sus hábitos, mayor probabilidad ten-
drá de éxito el proyecto. SG Guía fue creada para cumplir con
las necesidades de los lectores de esta revista, por lo que te
invito a conocer el sitio y utilizarlo. Si tienes algún comen-
tario que pueda mejorarla, lo recibiremos con gusto.

Romeo Márquez es fundador de gelattina, una agencia especializada en Web 2.0, diseño de interfaces, Marketing Digital, Social Media, Widgets y Video para Web.
Adicionalmente es miembro de la Usability Professionals Association. Para gelattina, ha dirigido proyectos de diseños de interfaces para The Home Depot, Coca-
cola, Banorte, Banregio, JackBe, Hoteles Marriott, ABA Seguros entre otros. Puedes seguirme en Twitter en @RomeoMarquez y @gelattina www.gelattina.com
romeo@gelattina.com +52.81.8115.6150

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


// PRÁCTICAS /*MEJORA DE PROCESOS*/

MoProSoft y la Auditoría
a Procesos de Software
El Sistema MADAM Asociado a MoProSoft
Por Yolanda Fernández, Leticia Arévalo, Jesús Soria

Una auditoría de calidad a cualquier tipo de


procesos de una organización se orienta a veri-
ficar cómo se desarrolla una cierta actividad de
acuerdo a una norma establecida. La auditoría
se apoya en una serie de documentos que defi-
nen todos los aspectos a cubrir: qué se requiere
revisar y qué se persigue al hacerlo, quiénes y
de qué manera están involucrados, qué y cómo
se reportan los resultados.

Una auditoría típicamente se organiza en cua-


tro fases, cada una con productos a obtener:
preparación, ejecución, informe y cierre. La
preparación establece los grandes rubros a
auditar; los productos son el plan de auditoría
y el programa. La ejecución realiza la revisión
detallada especificada en el plan, comparan-
do requisitos contra evidencias. Los productos
de esta fase son los datos que sustentarán lo
observado, mismos que se analizarán y cate-
gorizarán en desviaciones de la norma o ha-
llazgos, y eventualmente en buenas prácticas.
El informe de auditoría organiza y documenta
las conclusiones a enviar al auditado. El cierre Figura 1. Fases de Auditoría (adaptada de Arter, 1994)
da por concluida la auditoría con acciones de
recomendación y seguimiento. Ver Figura 1. de acuerdo a cómo se han implantado los La metodología para
procesos. Una consecuencia de la evalua- auditorías de MoProSoft
La auditoría a la calidad ción es sugerir mejoras que permitan al- MoProSoft define documentos que des-
de procesos de software canzar el siguiente nivel de madurez. Hay criben lo que se debe auditar para cada
Si los procesos de interés son los de la ge- una retroalimentación explícita de resulta- uno de los procesos en las tres catego-
neración y mantenimiento de software, la dos en este sentido. rías: Alta Dirección, Gerencia y Opera-
auditoría de calidad se orienta a verificar ción. En cada documento aparece la serie
si la organización cumple con los linea- Por otro lado, la auditoría es una revisión ordenada de acciones y procedimientos
mientos establecidos en un modelo de ca- detallada de cómo se están realizando las para revisar y calificar actividades en
lidad de software específico. cosas y si están cumpliéndose o no los re- cada etapa del proceso. La estructura de
quisitos prescritos en una norma o mode- los documentos puede adaptarse a los li-
Una auditoría es similar a una evaluación, lo, apelando a observaciones directas de neamientos de implantación del modelo
aunque con algunas diferencias. En una agentes externos. El dictamen puede ser de en una organización en particular. En la
evaluación el objetivo primordial es de- cumplimiento de lo establecido en la norma Tabla 1 se resumen los nombres y conte-
terminar un nivel de madurez especificado o de efectividad en el alcance de metas de nidos de los documentos para cada fase
en el modelo de software que se establece calidad determinadas. de la auditoría.

Yolanda M. Fernández Ordóñez profesora investigadora titular del Colegio de Postgraduados, Campus Montecillo. Es Matemática egresada de la Facultad de
Ciencias de la UNAM y Doctora en Informática por el Instituto Nacional Politécnico de Grenoble, Francia. Sus áreas de interés son la ingeniería de software y la
geomática aplicada a las ciencias agrícolas y los recursos naturales. Formó parte del Grupo Editorial que elaboró el MoProSoft. Es miembro del Sistema Nacional
de Investigadores. yfernand@colpos.mx

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


FASE NOMBRE DOCUMENTO CONTENIDO

Propósito de auditoría Qué se persigue y qué debe calificarse para el


proceso.
Alcance de auditoría Identificar la profundidad de la revisión
Plan de auditoría Actividades específicas que se revisarán
Documentos Aplicables: qué documentos de
la organización se anticipa que contienen la
información a revisar.
Equipo auditor: nombres y firmas de responsa-
Preparación
bles de la ejecución de la auditoría.
Participantes: grupo de la organización
auditada responsable de actividades a revisar.
Firma autorizada de aprobación
Listas de verificación (checklists) del auditor.
Programa de auditoría Calendarización detallada de actividades

Métodos de Cuestionarios
recolección de datos Plantillas de entrevistas
Ejecución Especificación de la revisión documental Figura 2. Carátula Documento Cierre de Auditoría.
Definición de encuestas
Técnicas de muestreo
Matriz de doble entrada Requisitos/Evidencias
Informe de Auditoría Narrativa detallada de hallazgos y ubicación Conclusión
del hallazgo (en qué parte del proceso) La metodología resulta de la aplicación de los principios de
Informe Buenas prácticas* auditoría a la norma MoProSoft. Se siguen las fases prevale-
Resumen General de Narrativa resumida de hallazgos y logros
cientes en las auditorías para revisar los procesos consideran-
Auditoría significativos y métodos utilizados.
Cierre de Auditoría Dictamen formal de la auditoría. do el nivel 1 de capacidades: Proceso Realizado de MoProSoft.
Como anexos: Plan de Auditoría, Listas de Se proponen documentos de apoyo al auditor que identifican
Cierre Verificación llenas, Informe de Auditoría y los aspectos relevantes, como el propósito de la auditoría, su
Plan de Acciones Correctivas*
alcance, los puntos auditables y el informe de cierre. Se men-
Informe de situaciones relevantes*
Plan de Acciones
cionó el sistema asociado MADAM que maneja documentos
Correctivas* adaptables para auditar a una organización.

* Opcional, en su caso.
Tabla 1. Documentos y su contenido por fases de la auditoría Referencias
[Arevalo-Cedillo, Leticia. “Auditoría y Evaluación de Calidad de Pro-
El Sistema MADAM cesos de Software usando la norma NMX-059/01-NYCE-2005 Mo-
Para facilitar esta metodología hemos creado el sistema MADAM (Ma- ProSoft”. Tesis de maestría en ciencias, Colegio de Postgraduados,
nejo de Documentos para Auditoría MoProSoft) a través del cual se ma- Montecillo, Texcoco, Edo. De México. 2006.]
nejan y adaptan los documentos para auditar distintas organizaciones. [Arter, Dennis. “Quality Audits for Improved Performance.” 2nd Ed.
Los rubros del contenido en las carátulas de los documentos MADAM 1994. ASQ Quality Press]
son enlaces a los documentos relacionados correspondientes. [Oktaba, H.;M. Piattini. “Software Process Improvement for Small
and Medium Enterprises: Techniques and Case Studies.” IGI Global,
En la Figura 2 se muestra la carátula del documento Cierre de Au- Hershey PA. 2008.]
ditoría para el proceso DIR. 1. Gestión de Negocios, donde el audi- [normalizacion-nyce.org.mx/doc/NMX-I-006/04-NYCE-2004.pdf> ]
tor debe llenar lo indicado en el Contenido para dar por concluida [software.net.mx/Evento2008/presentaciones/Mixteca%201/Mo-
la auditoría. ProSoft_sin_fronteras_mayo_2008_evento.pdf]

Leticia Arevalo Cedillo profesora de asignatura y actual Presidenta de Academia del Área de Docencia de Cómputo en la Universidad Autónoma del Estado de México.
Licenciada en Informática Administrativa egresada de la UAEMex y Maestra en Ciencias en Cómputo Aplicado del Colegio de Postgraduados. letyac@colpos.mx

Jesús Soria Ruiz investigador del Instituto Nacional de Investigaciones Forestales, Agrícolas y Pecuarias, encargado del Laboratorio de Geomática del INIFAP
en Toluca. Doctor en Ciencias por el Colegio de Postgraduados. soria.jesus@inifap.gob.mx

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


// PRÁCTICAS /*ASEGURAMIENTO DE CALIDAD*/

Medición y Análisis
¿Qué, Cómo, Cuándo?
Por Edith Alhelí Martínez

A lo largo de la definición e implantación de un programa de mejora, me Estas otras empresas seguramente serán diferentes a la nuestra en
he encontrado con temas que nos pueden “parar en seco” al momento de cuanto a su:
la ejecución. Uno de eso temas es el de Medición y Análisis cuyo objetivo, • Tamaño
de acuerdo a CMMI es: “Desarrollar y sostener una capacidad de medida • Cultura
que es usada para apoyar necesidades de información de dirección”. • Productos o Tecnología
• Giro
En general, cuando se llega al punto de definición de este proceso, no • Objetivos
podemos avanzar o empezar a definir sin involucrar a más personal de
la organización. Partiendo de eso, entonces no hay mejor punto de comparación que
nuestro propio antes, ahora y después. Es bueno tomar el resto de los
Lo que sucede frecuentemente es que el Responsable de Proce- datos como puntos a revisar y comparar contra ellos, pero es importante
sos (por llamarlo de alguna forma), puede conocer el modelo de saber de antemano que quizá no podremos ni tendremos que llegar a ser
calidad y conocer a la organización, sin embargo en este caso se idénticos a ellos.
necesita considerar más aspectos. Entre estos aspectos están el
de conocer las metas y objetivos de la organización y sus distintas Algunos puntos a considerar son:
gerencias, sus prioridades y asegurarse de validar con ellos esta 1. Alinear las mediciones a los objetivos de la Organización para
definición de proceso. lograr consistencia.

A partir de ahí, ya estamos del otro lado por decirlo de alguna mane- 2. Empezar con pocas medidas, pero asegurar su practicidad,
ra, ahora solo resta identificar qué es más importante, imprescindi- bajo coste y alto beneficio.
ble, necesario, o simplemente es un “nice to have”…
3. Hacer una buena y clara definición de métricas, contestando a
Yo empezaría por pensar primero qué nada en: ¿Por qué medir? ¿Para las preguntas de ¿qué? ¿cómo? ¿cuándo? ¿dónde? y ¿por qué?
qué me serviría? ¿Qué quiero medir?, ¿Por qué eso y no algo más? ¿Cuál
es su criticidad? 4. Automatizar lo más posible la obtención y análisis de datos y
realizar análisis concretos de los datos.
¿Por qué medir?
Para comprender la situación actual de alguna actividad, para esta- 5. Difundir los resultados de manera simple y entendible, así
blecer una línea base inicial, para poder predecir, para mejorar, para como utilizar la medición y sus resultados a favor y no en contra.
ser eficiente, o para saber cuánto…
6. Recordar la ya sonada frase que dice “lo que no se mide, no se
Existen indicadores de empresas nacionales e internacionales que puede mejorar”.
se encuentran difundidos en el mundo, los cuales nos pueden ser-
vir de punto de partida o comparación (benchmarking), sin em- 7. Elegir los modelos y técnicas de medición. ¿Cómo elegir? ¿Peor,
bargo es importante tener en mente que son eso, indicadores de mejor? ¿Pros y contras?… Hay que ajustarse a las necesidades,
otras empresas. características, objetivos y presupuestos de cada empresa.

Edith Alhelí Martínez Mata es Consultor especializado en temas de CMMI. Sus áreas de especialidad son el Aseguramiento de la Calidad, las Inspecciones
de Software, los Procesos de Administración de Proyectos y Soporte. Ha participado como consultora en varios proyectos para implementación de CMMI a
diferentes niveles, así como en evaluaciones SCAMPI. Alhelí estudió en el Instituto Tecnológico de Aguascalientes (ITA).

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


“No hay mejor punto de comparación que
nuestro propio antes, ahora y después”.

8. Comprender que adoptar la práctica de La figura 1 muestra un ejemplo de una grá-


medición implica un cambio de cultura que fica para el seguimiento de defectos en una
requiere esfuerzo, proactividad, adopción, aplicación de software. Como pueden ver,
seguimiento y actualización. A fin de cuen- en una sola gráfica podemos presentar in-
tas, la medición es una tarea de todos y es un formación de gran utilidad.
beneficio y logro de muchos.
Para cerrar este artículo les comparto una
9. Continuar con el proceso de medición y frase que se atribuye a W. Edwards De-
mejora. Una vez mejorado x, mejorar y, z y ming, considerado el padre de la revolu-
así sucesivamente. ción de la calidad:

10. Por último, tener presente lo siguiente “In God we trust, all others bring Good data” (En
sobre la medición: Dios confiamos, los demás traigan Buenos datos).
• La medición no solo debe dar respuesta a
bien o mal, sino indicar qué tanto. Referencias
• Medir cuesta, por supuesto. Por ello es crucial [ sei.cmu.edu/sema ]
determinar qué es lo que se va a medir y enfo- [ Mary Beth, Mike Konrad. “CMMI(R)
carse en eso. Second Edition, Guidelines for Process
• Las mediciones ayudan a tomar decisiones Integration and Product Improvement.” ]
acertadas y precisas. [ Khaled Emam. “Process Improvement in
• La mejora de calidad, tiempos o esfuerzos a Small Company” ]
no se logra de un día a otro. Es como todo… [ David Card. “Measurement Makes Impro-
toma tiempo. vement Meaningful” ]

Figura 1. Gráfica de seguimiento a defectos

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


// PRÁCTICAS /*aRQUITECTURA DE SOFTWARE*/

El Valor de los Ciclos Guiados


por la Arquitectura del Software
Poniendo el enfoque en los objetivos de negocios y los atributos de calidad del producto
Por Alejandro Bianchi

Si tuviésemos que precisar un atributo que defina al software en Una definición de arquitectura de software
estos tiempos, seguramente muchos coincidirían en que la comple- La arquitectura de un producto complejo de software es uno de
jidad es algo destacable. Esto se manifiesta en el volumen de los los artefactos más importante del ciclo de desarrollo. Si bien sus
productos, utilización de productos COTS (Comercial off the self ), principios y resultados han sido analizados, definidos y divulga-
la integración a través de diferentes tipos de interfaces, la intero- dos por un periodo de diez años, su práctica formal por parte de la
perabilidad entre diferentes plataformas y la conjunción de más comunidad profesional, es todavía vaga e imprecisa. Existen mu-
de una tecnología para el desarrollo de un mismo producto. Dicha chas definiciones de arquitectura de software, nosotros creemos
complejidad también se manifiesta a través de los requerimientos, que una que sintetiza la esencia de la misma es la elaborada por
tanto en cantidad como en los diferentes tipos y prioridades de las Clemens, Bass y Kazman[1]: “La arquitectura de un programa o sis-
necesidades expresadas por las distintas personas interesadas por tema es la estructura o las estructuras del sistema que contienen a
el producto bajo desarrollo. los componentes, las propiedades visibles de estos componentes
y las relaciones entre ellas.”
Muchos de estos requerimientos están expresando atributos que el
software debe satisfacer para asegurar una adecuada calidad: desem- De esta definición podemos deducir:
peño, seguridad, mantenibilidad, etcétera. Estos atributos, reconoci- 1. La arquitectura es una solución de alto nivel que muestra de qué
dos como “requerimientos no funcionales” o “atributos de calidad” manera serán resueltos los objetivos de negocio que dan origen al
son a veces la causa de importantes desvíos en el desarrollo o de se- producto. En este sentido podemos decir que la arquitectura del soft-
rios problemas en la operación del producto, provocando insatisfac- ware es “un puente” entre las necesidades de los usuarios y los equi-
ción de los usuarios y frustración de los equipos de desarrollo. pos técnicos que serán responsables del desarrollo.
2. La arquitectura solo se ocupa de mostrar y resolver las propiedades
Por otro lado si analizamos el problema desde la óptica de gestión visibles de los elementos, (mencionados como atributos de calidad).
de proyectos, la situación nos presenta un escenario también com- No interesan los detalles internos de cada uno de ellos.
plejo: múltiples equipos trabajando en diferentes lugares con dife- 3. La arquitectura muestra las grandes decisiones de diseño y su jus-
rentes culturas, así como diferentes proveedores interactuando con tificación, facilitando de esta manera la comprensión por parte de
complejas relaciones de trabajo y fuertes restricciones de tiempo y los grupos técnicos.
presupuesto. Si bien es cierto que la utilización de modelos de cali- 4. La arquitectura facilita la comunicación entre los diferentes involu-
dad ha contribuido en gran medida a mejorar la capacidad de produ- crados (stakeholders) en el desarrollo del producto.
cir software en las organizaciones, esas mejoras en la práctica se han 5. La arquitectura es la base para facilitar el reuso a diferentes nive-
concentrado en aspectos vinculados con la gestión de los proyectos les de abstracción.
y con menor énfasis en la mejora de la ingeniería de los productos, 6. Las revisiones de arquitectura son, junto con la validación de los
aun en niveles avanzados de madurez. requerimientos, la primera actividad proactiva de calidad, la cual
permite detectar conflictos técnicos y/o defectos en la estructura del
Esta falta de foco en la ingeniería podría atribuirse a una mala in- producto, reduciendo de esta manera el retrabajo en etapas poste-
terpretación de los modelos o a la minimización del impacto de los riores del desarrollo.
métodos en la calidad del producto. Dado el escenario que hemos
planteado al inicio, se hace imprescindible que los procesos de de- Por último, la documentación de la arquitectura de software es
sarrollo comiencen a enfocarse en las prácticas que mejor resuelvan el artefacto más importante que sintetiza el conocimiento acer-
la complejidad de los productos para asegurar que, además de la ca del producto. Ésta no solo contribuye significativamente en
funcionalidad, se satisfacen adecuadamente los atributos de calidad el diseño de la estrategia del proyecto (ciclo de vida) sino que
que el software debe proveer. también será esencial en el periodo de evolución del producto, y
será de gran utilidad como medio de aprendizaje para el equipo
Estas prácticas de ingeniería adecuadamente integradas con las de desarrollo.
prácticas de gestión conforman procesos eficientes, eficaces y por
sobre todo proactivos. En este artículo presentamos una visión que Sin entrar en detalles, términos como arquitectura de referencia,
apunta a proveer una solución centrada en el diseño de la arquitec- patrones de diseño, frameworks de arquitectura, le dan cuerpo a la
tura como conductor del proceso de desarrollo, garantizando la ca- definición que hemos dado. En los ciclos de vida clásicos el diseño
lidad del producto y proactividad en todas y cada una de las etapas de arquitectura, por lo general, no está adecuadamente formaliza-
de fabricación e implantación. do. Muchas veces resulta común confundir diseño de detalle con

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


“La arquitectura de un producto complejo
de software es uno de los artefactos más
importantes del ciclo de desarrollo”.

arquitectura. Los requerimientos no funcionales son poco conside- Lo más destacable de esta figura se puede sintetizar en los si-
rados en los requerimientos del producto y por consecuencia no guientes puntos:
incluidos en la definición de la solución, lo que repercute en las
tareas de construcción y testing incrementando los defectos y el re 1. Los requerimientos analizan la funcionalidad y también defi-
trabajo. En el resto de este trabajo presentamos algunas ideas para nen, en base a los objetivos de negocios los atributos de calidad
utilizar de manera eficiente los conceptos de arquitectura de soft- que el producto debe satisfacer.
ware a partir de incorporar el proceso de diseño como componente 2. Un análisis global toma los requerimientos y las restricciones del
esencial del ciclo de desarrollo. proyecto e identifica los factores que dirigen el desarrollo (drivers),
que sirve de entrada al diseño de arquitectura.
Qué es un ciclo de vida guiado por la arquitectura 3. El diseño de la arquitectura utiliza estos factores identifica-
Si bien no hay una definición consensada sobre lo que es un ciclo dos y aplicando patrones y tácticas elabora la solución técnica
de vida guiado por la arquitectura, podemos decir que es un ciclo del producto, la cual se sintetiza en un documento de arquitec-
en donde los objetivos de negocios y los atributos de calidad del tura, que contiene n vistas en donde cada una de ellas refleja
producto conducen el diseño de la arquitectura, y ésta es la base los intereses de cada uno de los stakeholders del producto. Por
para la definición del resto del ciclo de producción y evolución a ejemplo, vista funcional, de información, de desarrollo, de des-
partir de: pliegue y de operación. Otro ejemplo se puede encontrar en el
• Definir la estructura del proyecto (ciclos de vida, estimaciones, con- modelo 4+1 elaborado por Phillip Kruchten[3] .
formación de equipos, plan de comunicación, estrategia de configu- 4. El producto del diseño de arquitectura es revisado para detectar
ration management, plan de pruebas, estrategia de integración e im- conflictos entre atributos de calidad, aspectos no cubiertos por el
plantación del producto). diseño, riegos técnicos y decisiones no formalizadas que puedan
• Definir la estrategia de integración entre proveedores. atentar contra la comprensión del producto.
• Definir los mecanismos de coordinación entre grupos ubicados en 5. El diseño de arquitectura ajustado es utilizado para definir la
diferentes locaciones. estrategia de fabricación e implantación del producto. Esta estra-
• Definir la estrategia de transferencia de conocimiento a grupos de tegia se plasmará en un ciclo de vida o una combinación de ciclos,
mantenimiento. la cual se ve en el Plan de proyecto que gestionará la producción
del producto.
La figura 1, adaptada de Paulish[2], muestra un modelo de ciclo de vida 6. Todo este marco de trabajo está soportado por un proceso integral
guiado por arquitecturas: de gestión de la configuración y de aseguramiento de la calidad.

Desde el punto de vista de los modelos de calidad, específicamente


el CMMI-DEV, el diseño de arquitectura es una entrada importante
al procedimiento de configuración que exige IPM, (Integrated Pro-
ject Management). Por lo general, IPM es vista como la “tijera” que
permite eliminar “lo que se necesita del proceso”. Pero si interpre-
tamos esta práctica vamos a concluir que es mucho más que eso:
esta área facilita la definición del mejor proceso que el proyecto
necesita a partir de contar con una estrategia adecuada al mismo.
Cuando tenemos esta interpretación clara le sacaremos más valor
a IPM. El diseño de arquitectura ayuda a definir esta estrategia y
plasmarla en el proceso definido para el proyecto.

Métodos prácticos para aplicar a un ciclo


guiado por arquitecturas.
El Software Engineering Institute (SEI) viene trabajando desde hace
más de diez años en la definición de métodos para soportar los ci-
clos de vida guiados por la arquitectura. Son métodos prácticos que
se sustentan en el uso de escenarios. Un escenario es una instancia
Figura 1. Modelo de ciclo de vida guiado por arquitecturas concreta del uso del sistema y se compone de estimulo, elemento

www.sg.com.mx MAY-JUL 2009 41


// PRÁCTICAS /*aRQUITECTURA DE SOFTWARE*/

estimulado, resultado esperado en base a mediciones y el ambiente La documentación mediante vistas es una forma de documentar el
en donde el escenario se produce. diseño de arquitectura considerando los intereses de los interesados
en el producto. Existen variadas maneras de expresar las vistas y sus
La tabla 1 muestra los métodos, los roles involucrados y qué etapa interrelaciones. Esta es una lista de las potenciales vistas.
del ciclo de vida soportan:
• Funcional. Describe los elementos funcionales del producto, sus
responsabilidades, interfaces e interacciones primarias. Esta vista es
la que conduce al resto.

• Información. Describe la manera en que la arquitectura alma-


cena, manipula, maneja y distribuye información. Describe una
visión estática y dinámica de la infromación dentro del producto.

• Concurrencia. Describe las estructuras de concurrencia del sis-


tema y mapas funcionales para identificar unidades de concurren-
cia que puedan ser ejecutadas en forma simultanea y la manera en
como estas son coordinadas y controladas.

• Desarrollo. Describe la arquitectura que soporta el desarrollo del


producto. Representa cuestiones de interés para las personas involu-
cradas en construir, probar, mantener y evolucionar el producto.

• Deployment. Describe el ambiente en el cual el sistema será implan-


tado, incluyendo las dependencias que el sistema tiene en tiempos de
ejecución. Mapea cada elemento de software a otros componentes ne-
cesarios para que la ejecución esté de acuerdo a los requerimientos.
Tabla 1. Métodos, roles involucrados y etapa del ciclo de vida
• Operación. Describe la manera en cómo el sistema será operado,
QAW es un taller (workshop) en donde se integran los diferentes in- administrado y soportado en tiempo de operación productiva.
volucrados para identificar los atributos de calidad que serán drivers
del diseño de arquitectura del producto. QAW facilita la resolución Los métodos se potencian utilizando herramientas de modelado y de
temprana de conflictos, obtiene consensos entre los stakeholders y soporte a la documentación de la arquitectura tales como Enterprise
ayuda a mejorar los requerimientos a todos los niveles. Architect, o Rational Architect o por ejemplo. Incluso un wiki puede
integrar un repositorio integral de la arquitectura.
ADD es un método iterativo para diseñar la arquitectura del producto
en base a los drivers definidos en el QAW. ADD aplica patrones y tác- Referencias
ticas de diseño que apuntan a asegurar que los atributos de calidad [1. Bass; Clements & Kazman. “Software Architecture in Practice”.
estarán presentes en el producto. 1998]
[2. Paulish, Danie. “Architecture-Centric Software Project Management”.
ATAM es un método altamente estructurado para evaluar un diseño 2002]
de arquitectura. ATAM permite detectar, de manera temprana, ries- [3. Krutchen, P. “The 4+1 View Model of Architecture”.IEEE Soft-
gos técnicos, conflictos entre atributos, puntos sensitivos del diseño ware, Vol 12, nro. 6, 1995]
y soluciones. [sei.cmu.edu/architecture/index.html]

Alejandro Bianchi es analista de sistemas, con un curso de postgrado en Sistemas Expertos de la Universidad Católica de La Plata y un diploma en Gerencia
Estratégica de la Universidad Argentina de la Empresa. Socio y presidente de LIVEWARE Ingeniería de Software. Consultor internacional, con más de veintiséis
años de experiencia en desarrollo de software, consultoría y administración de tecnología informática.

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


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

Programación Declarativa
Conociéndola y entendiendo su aplicación real
Por Gastón Milano

Si al escribir un programa de cómputo lo que hacemos es explicarle a “qué” tarea es la que tiene que hacer, en lugar de “cómo” hacerla
la computadora por medio de instrucciones detalladas “cómo hay que nos protege de cambios en el contexto tecnológico. En ese senti-
realizar una tarea”, entonces estamos programando en forma impera- do, el qué perdura mucho más que el cómo.
tiva. Es decir, estamos alimentando los pasos o conjunto de instruc-
ciones necesarias para resolver un problema. Por otro lado, si al escri- Un primer ejemplo
bir un programa estamos describiendo “qué hay que hacer”, entonces Veamos un ejemplo de cómo nos puede ayudar la programación
estamos programando en forma declarativa. Es decir, describimos el declarativa. Supongamos un caso sencillo de un programa que
problema que queremos solucionar, pero no las instrucciones necesa- suma los números del 1 al 100. Una posible solución procedural
rias para resolverlo. La programación declarativa es tan solo eso. podría ser un programa similar al siguiente:
int suma = 0;
for (int i = 1 to 100)
En realidad, la programación declarativa es un término que agru-
suma += i;
pa los siguientes paradigmas de programación: return suma;

Programación lógica. Los problemas se representan por medio de


lógica matemática. Una solución declarativa podría ser simplemente:
suma = Sum(1, 100)
Programación funcional. Todo se resuelve por medio de la evalua-
ción de funciones matemáticas. Dado este ejemplo sencillo, lo primero que uno advierte es que
se necesita un lenguaje de más alto nivel que dé soporte a las co-
Lenguajes de dominio específico (DSLs). Lenguajes descriptivos sas que declaramos: en este caso alguien tiene que implementar
para un propósito específico, tales como HTML, CSS y SQL. el Sum, y el programador no tiene idea cómo se está resolviendo
el proceso de la suma.
Lenguajes híbridos. Un ejemplo son los archivos “make” que com-
binan la descripción de dependencias entre componentes, con ins- Hoy, luego de mucho tiempo, estamos frente al fenómeno de que
trucciones imperativas para compilar o instalar una aplicación. la mejora en desempeño para una máquina no se da simplemente
cambiando el procesador, sino que necesitamos sumar más pro-
Ventajas de la programación declarativa cesadores. Ya muchas computadoras están equipadas con tecno-
Cuando pensamos en los beneficios de programar en forma de- logía de cuádruple núcleo.
clarativa, en general se empieza pensando en las ventajas pro-
pias del lenguaje a utilizar. Por ejemplo, si se está usando un Aquellos programas como el que hace la suma imperativamen-
lenguaje funcional, la principal ventaja es que al lidiar puramente te, deberá decir explícitamente (por ejemplo mediante el uso de
con funciones, no necesitamos preocuparnos por el estado de la threads) que necesita hacer uso de los nuevos procesadores. Sin
información, ya que los datos sean inmutables. Por otro lado, en embargo, el programa declarativo no cambia, será exactamente
el caso de los lenguajes basado en reglas, los programas son más igual y la implementación de cómo se hace la suma es un tema
claros y entendibles incluso por los usuarios. de capas tecnológicas de más bajo nivel. Como desarrollador de
aplicaciones de negocio, no quiero perder el foco de lo que quiero
A pesar de todo esto, la ventaja más importante de la progra- hacer y perderme en temas tales como threading, serialización y
mación declarativa consiste en que el indicar a la computadora sincronización.

Gastón Milano es un ingeniero uruguayo quien ha trabajado durante muchos años en el desarrollo de software utilizando lenguajes declarativos. Actualmente
es Arquitecto de Software de Genexus una herramienta de generación de aplicaciones partiendo de conocimiento declarado.

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


“... indicar qué es lo que se debe hacer en lugar
de cómo hacerlo nos protege de cambios en el
contexto tecnológico”.

Lenguajes declarativos
Existen una gran cantidad de lenguajes declarativos. En el caso Conclusión
de los funcionales, entre los más populares están Scheme, Er- Ahora, después de 20 años, los grandes de la industria
lang, y otros más nuevos como F#. para cierto dominio específico. comienzan a darse cuenta de los beneficios de programar
Los lenguajes de dominio específico comunmente son utilizados en forma declarativa. Antes de su retiro de Microsoft, el
para declarar formulario, por ejemplo HTML, XAML, XUL e incluso propio Bill Gates aconsejó que “deberíamos estar hacien-
las hojas de cálculo. do las cosas en forma declarativa (…) no deberíamos estar
escribiendo tanto código procedural”. Si queremos lograr
En Artech, la empresa donde laboro, tenemos un producto llamado un verdadero incremento de productividad, es importante
GeneXus que permite crear aplicaciones de negocio utilizando progra- que todos dentro de la comunidad del desarrollo de soft-
mación declarativa. La herramienta utiliza lenguajes declarativos para ware nos demos cuenta que claramente debe existir un
el modelado de las entidades de negocio, la declaración de reglas de cambio de paradigma a la hora de programar.
negocio, la especificación de formularios, y la exposición de datos.

www.sg.com.mx MAY-JUL 2009 45


// PM CORNER

Revisión de la 4ta edición de la Guía PMBOK


Cambios Importantes
Por Jorge Valdés

El pasado 31 de diciembre de 2008, el Project Management Insti- como un marco de referencia y establece un lenguaje común para
tute (PMI), publicó de manera simultánea la actualización de cua- los practicantes de esta disciplina alrededor del mundo.
tro de sus estándares fundamentales. De ellos, el más importante
y difundido es por mucho La Guía PMBOK. 1. Redacción mejorada
En general, la 4ta. edición refleja un enfoque centrado en me-
La actualización de los estándares del PMI jorar la consistencia y claridad de sus contenidos. Los equipos
Los estándares reflejan prácticas comunes y un lenguaje univer- que participaron en el proceso de actualización tomaron muy en
sal para la profesión. Esto resulta en una mejor entrega de pro- cuenta la eliminación de información redundante y agregaron al-
yectos, incrementos en el retorno de la inversión y por supuesto, gunos párrafos explicativos para clarificar conceptos complejos.
cuando son adoptados correctamente, una empresa más compe-
titiva por el incremento en su productividad. Esto implicó una nueva redacción en todos los procesos, usando el
formato de verbo en infinitivo más sustantivo. El uso estándar de
El pasado 31 de diciembre el PMI liberó actualizaciones a sus cuatro verbos fue incorporado a todo el documento al describir conceptos
estándares fundamentales. Estos estándares representan las cuatro recurrentes para facilitar el entendimiento.
disciplinas clave en la profesión de dirección de proyectos:
Las descripciones de los procesos, que por cierto se repiten en cuatro
• A Guide to the Project Management Body of Knowledge lugares distintos, fueron re-escritos de manera más consistente a lo
• The Standard for Program Management largo del documento. Los sitios donde podemos encontrarlos son:
• The Standard for Portfolio Management
• Organizational Project Management Maturity Model (OPM3) • Capítulo 3
• Al inicio de los capítulos de cada área de conocimiento
Con la liberación simultánea de las nuevas versiones, el PMI bus- • En la primera oración de la descripción de procesos aplicables
ca alinear estos estándares fundamentales. Esto ayuda a asegu- • En el glosario.
rar que los profesionales de esta disciplina hablen el mismo idio-
ma, incrementando el entendimiento. 2. Factores ambientales y activos de los procesos
de la organización
Con ello, el PMI inició el proceso de armonización, incluyendo la eva- Se usó un enfoque estándar para discutir los factores ambientales
luación de inconsistencias a lo largo de los cuatro estándares. Al final y los activos de los procesos de la organización; es decir, mientras
de lo que fue un largo y complicado proceso de revisión, los equipos que en la versión 3 estos conceptos sólo se describían una sola
participantes lograron estándares que no sólo están alineados sino vez, en la versión 4 se listaron en las entradas y salidas de cada
que presentan la información de una forma clara y consistente. proceso y se incluyeron descripciones específicas de cómo estos
conceptos deben ser entendidos en cada proceso en particular.
Los cambios en la 4ta. edición de la Guía PMBOK
La Guía PMBOK 4ta. edición se enfoca en la ejecución de un solo 3. Estandarización del concepto Solicitud de
proyecto a través de los distintos grupos de procesos y establece Cambios
una relación cruzada con las áreas de conocimiento. Otra área en la que se incluyeron algunas clarificaciones fue todo lo
relativo a las solicitudes de cambio. En la 4ta. edición se incluye un
Esta guía refleja la evolución del conocimiento dentro de la profe- enfoque estándar para discutir los cambios solicitados, las acciones
sión de dirección de proyectos; la guía también refleja las prácti- preventivas, las acciones correctivas y la corrección de defectos. To-
cas comúnmente aceptadas para dirigir proyectos. PMBOK sirve dos estos conceptos se engloban ahora bajo el término: “solicitud de

Jorge Valdés Garciatorres (PMP, ITIL, CC) Es socio Director de la firma global de consultoría y educación en procesos de negocio y dirección de proyectos
TenStep Latinoamerica. Participa como vicepresidente de Desarrollo Profesional en el PMI capitulo México en donde además es miembro del consejo editorial.
Es miembro del consejo editorial de SG y es miembro activo de Toastmasters International. jvaldex@tenstep.com.mx

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


cambios”. Esta revisión ayuda a racionalizar las entradas y salidas de 6. Reemplazo de diagramas de flujo de procesos
gran cantidad de procesos, mientras que a la vez provee visibilidad de por diagramas de flujo de datos
los distintos tipos de solicitud de cambios que pueden existir. Los diagramas de flujo de procesos de cada capítulo fueron reempla-
zados con diagramas de flujo de datos que muestran de dónde viene
4. Procesos eliminados, nuevos y combinados la información y hacia dónde va. Esto se hizo buscando mejorar el
Procesos eliminados entendimiento en cuanto a la fuente de la información y su destino
En la 4ta. edición de La Guía PMBOK se borraron dos procesos: para cada proceso.
Desarrollo de la Declaración Preliminar del Alcance y Planea-
ción del Alcance. En el primer caso, a decir del PMI, se tomó la 7. Complemento a la triple restricción
decisión de eliminarlo debido a que ésta es sólo una forma de La triple restricción, que había venido sobreviviendo a las distintas
elaboración progresiva del acta de constitución del proyecto a versiones y que era mencionada en la introducción de la tercera
la declaración de alcance. edición, ha sido extendida para incluir otras restricciones poten-
ciales: calidad, recursos y riesgo. Sin embargo, dado que cada pro-
La Planeación del Alcance fue borrada debido a que la salida de yecto es único, es probable que no todos los proyectos se vean
este proceso es el plan de administración del alcance, el cual afectados por todas las restricciones potenciales.
es parte del plan de administración del proyecto así que no era
necesario tener un proceso separado para tal efecto. 8. Reconocimiento de la importancia de las
habilidades interpersonales del gerente de proyecto
Procesos nuevos Los gerentes de proyectos llevan a cabo el trabajo requerido a
A esta versión se incorporan 2 nuevos procesos: Identificar través del equipo del proyecto y otros interesados. Los gerentes
Interesados y Recopilar Requisitos. Identificar Interesados se de proyecto efectivos desarrollan un balance entre habilidades
mencionaba previamente en la declaración del alcance. Sin em- técnicas, conceptuales e interpersonales que les ayudan a anali-
bargo, debido a la importancia crítica que tiene esta actividad zar las situaciones y a interactuar de manera apropiada.
para el éxito del proyecto, se agregó un proceso con múltiples
salidas. La incorporación del proceso Recopilar los Requisitos En la cuarta edición se agregó un nuevo anexo que describe las habili-
representa una evolución en la profesión. Al igual que el caso dades interpersonales más importantes para un gerente de proyecto:
anterior, esto se mencionaba previamente en la declaración del • Liderazgo
alcance, sin embargo, la disciplina ha evolucionado de tal ma- • Integración de equipos
nera que una gran cantidad de proyectos inician con un tipo de • Motivación
recopilación de requisitos. Este proceso se añadió para recono- • Comunicación
cer esta situación. • Influencia
• Toma de decisiones
Procesos Combinados • Conciencia cultural y política
Planeación de Compras y Adquisiciones y Planeación de los Con- • Negociación
tratos se combinaron en Planear las Compras. Solicitud de Res-
puestas de los Proveedores y Selección de Proveedores, fueron Aunque no es una lista exhaustiva de las habilidades interperso-
combinados en un proceso que se denominó Planear las Compras. nales que deben usar los gerentes de proyecto, este anexo busca
destacar las habilidades que, usadas apropiadamente, ayudan al
5. Distinción entre plan para la dirección de proyectos gerente de proyecto a obtener los resultados más favorables.
y documentos usados para dirigir el proyecto.
El plan para la dirección del proyecto y los documentos del pro-
yecto han sido diferenciados con mayor claridad. Esto se hizo Conclusión
con el propósito de destacar los planes subsidiarios y las distin- La Guía PMBOK es uno de los libros técnicos más vendidos
tas líneas base como los componentes principales de este plan; en el mundo. Supongo que tiene varios méritos para ello. La
mientras que los documentos del proyecto son usados para actualización constante es uno, el otro es quizás que estas
ayudar al gerente de proyecto a dirigir el proyecto, por lo tanto actualizaciones provienen de personas como tú y como yo,
estos no son parte del plan. que han encontrado alguna forma de “más o menos hacer
bien algo” en un proyecto y quieren compartirlo.
Asimismo, se incluyó una distinción entre el acta del proyecto y la
declaración de alcance del proyecto. En la tercera edición existía un El mérito del PMI es, además de la visión que ha tenido para
nivel de redundancia con relación a los componentes de estos dos conjuntar estas prácticas, haber establecido los procesos
elementos. La intención del PMI fue dejar establecido el hecho de que permiten que el documento evolucione y refleje las cosas
que existe una elaboración progresiva entre ambos elementos, a la que la comunidad de profesionales en esta disciplina, hemos
vez que se buscó establecer con claridad los elementos que se incor- ido aprendiendo a base de muchas cicatrices de guerra.
poran en cada documento para reducir la repetición.

www.sg.com.mx MAY-JUL 2009 47


// UML

Los requerimientos al estilo SysML


Estándar Mundial
Por Charlie Macías

Como ingenieros sabemos que cualquier con un conjunto de requerimientos conteni- ser asequible y atractivo para un mercado per-
producto derivado del proceso de diseño en dos más simples. Los requerimientos más teneciente a la clase media en México.
ingeniería inicia de una declaración, por par- simples son el producto de la descomposición
te de un cliente, para resolver ya sea un pro- del requerimiento complejo. Los requerimientos y la
blema o una necesidad. También sabemos relación de contención:
que existen varias formas de documentar los Dependencia derivada. Esta relación sirve Dividiendo para vencer
requisitos que se tienen que satisfacer y/o para relacionar a los requerimientos deriva- A continuación se presenta la descompo-
que limitan el número de soluciones posibles dos con los requerimientos originales. Los sición del requerimiento original en sus re-
para la problemática declarada, las cuales requerimientos derivados, normalmente, son querimientos contenidos.
van desde las maneras totalmente informa- el resultado de aplicar un esfuerzo de análi-
les y orientadas a la documentación hasta los sis sobre los requerimientos originales.
lenguajes y métodos formales que pueden
representar los requisitos de forma gráfica. La declaración original del
El diagrama de requerimientos definido en problema: ¿así o más claro?
SysML (Systems Modeling Language) tiene la Lo primero que podemos observar es la repre-
ventaja de haber sido creado ex profesamen- sentación gráfica de los requerimientos. Estos
te para documentar los requerimientos y sus muestran los atributos estándar para el iden-
relaciones en un formato gráfico, sin estar tificador único (id#) y para la descripción tex-
vinculado a una metodología en particular. tual (txt). Por cuestiones de espacio se ha omi-
tido la descripción textual del requerimiento
En este artículo veremos los principales ele- original provisto por nuestro stakeholder. En
mentos que conforman al diagrama de requi- el diagrama también se puede observar el uso
sitos definidos en la especificación de SysML e de la relación de contención para relacionar el
ilustraremos la aplicación de los mismos usan- requerimiento complejo S0.0 con sus requeri-
do un ejemplo sencillo. Así mismo hablaremos mientos contenidos S1.0, S2.0 y S3.0.
de las distintas representaciones alternativas
y aceptadas por la especificación. Los requisitos y la dependencia
derivada: soy, luego existo
El siguiente diagrama ejemplifica el uso de la
El diagrama de requerimientos de dependencia derivada. Supongamos que for-
SysML: principales elementos mamos parte del equipo de diseño al que se le
Requisito. Por supuesto el primer elemento ha encomendado la tarea de desarrollar un ca-
que describiremos es el requisito. Un re- lentador de agua para uso residencial. Nuestro
quisito está definido como un estereotipo proveedor de requerimientos nos ha indicado
de una clase UML sujeta a una serie de res- que nuestro calentador debe ofrecer las pres-
tricciones. Los requisitos estándar incluyen taciones de un calentador a gas LP estándar,
propiedades para especificar un identifica- para uso doméstico, que da servicio a una fa-
dor único y la descripción textual del reque- milia integrada por 5 personas, pero no debe
rimiento, sin embargo, el modelador puede usar combustibles fósiles para calentar el agua
agregar propiedades para definir, por ejem- y debe minimizar al máximo las emisiones de
plo, la prioridad del requerimiento. CO2 al medio ambiente. Así mismo, nos ha in-
Relación de contención. La relación de con- dicado que se debe favorecer el uso de fuentes
tención vincula a un requerimiento complejo de energía renovables y que el producto debe Diagrama1. Descomposición del requerimiento original

Charlie Macías es arquitecto en jefe e instructor senior en Milestone Consulting. Primer empresa mexicana miembro de la OMG, especializada en la capacitación
práctica y consultoría en modelado de sistemas y negocios con UML, BPMN y SysML. Puedes contactarnos en info@milestone.com.mx www.milestone.com.mx

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


hemos descrito y ejemplificado en este
artículo, SysML ofrece elementos adicio-
nales para expresar ideas tales como las
justificaciones de las deducciones (deri-
vaciones) o el conflicto potencial entre los
requerimientos, por mencionar algunos.
Así también soporta representaciones en
formato tabular de los requerimientos, te-
mas que abordaremos en el futuro.

Conclusión:
El diagrama de requerimientos
definido en SysML tiene la ventaja
de haber sido creado ex profesa-
mente para documentar los reque-
rimientos y sus relaciones en un
formato gráfico, sin estar vincu-
lado a una metodología en parti-
cular. Los requerimientos poseen
dos atributos estándar: el iden-
tificador único y la descripción
textual. La relación de contención
sirve para descomponer requeri-
mientos complejos.

La dependencia derivada se emplea


para incorporar requerimientos que
se deducen a partir de los origina-
les. Si bien en el presente artículo
Diagrama 2. Requerimientos derivados se ha empleado el diagrama de re-
querimientos de SysML para plas-
Tras una breve investigación descubriremos mar los requisitos de un producto
que un calentador de gas LP estándar recibe de ingeniería que cae en los domi-
agua a una temperatura de 10°C y la entrega nios de la ingeniería mecánica, su
a una temperatura que oscila entre los 50°C y uso puede aplicarse a los dominios
70°C. La dependencia derivada es la relación del desarrollo de productos de in-
que se puede observar entre los requisitos S1.1 geniería de software. Recordemos
(que surge al seguir descomponiendo el reque- que, finalmente, SysML está orien-
rimiento S1.0) y D1.1. Si bien el requerimiento tado al dominio de la ingeniería de
D1.1 no forma parte de los requerimientos origi- sistemas en donde, normalmente,
nales, se puede derivar a partir de ellos. los componentes que conforman
a sus productos derivados, son el
Otros elementos para resultado del proceso de diseño de
especificar requerimientos: múltiples ingenierías, entre ellas,
Pero aún hay más la ingeniería de software.
Además de los conceptos elementales que

www.sg.com.mx MAY-JUL 2009 49


// COLUMNA /*PROGRAMAR ES UN MODO DE VIDA*/

Evitando las Inyecciones de SQL


Asegurando la validación de tus entradas

Gunnar Wolf es administrador de sistemas para el Instituto de Investigaciones Económicas de la UNAM; entusiasta y promotor del
Software Libre, desarrollador del proyecto Debian GNU/Linux desde el 2003, miembro externo del Departamento de Seguridad en Cómputo
de DGSCA-UNAM desde 1999.

E n la edición anterior de SG prometí que en esta columna trataría


temas relativos a la seguridad en cómputo y cómo escribir código
cuentra –utilizando mod_rewrite, indicado por el archivo htaccess– que
el contenido indicado por la ruta /content/view/* debe ser procesado
por el archivo index.php, que a su vez es manejado por el lenguaje
más confiable y más robusto. PHP. El archivo index.php corresponde en este caso al sistema Joomla,
que reconoce la ruta, convierte al ID en su representación numérica y
Las vulnerabilidades más comunes son también las más fáciles de lo utiliza para pedir a la base de datos le entregue los datos relaciona-
explotar para un atacante (y utilizando algunas prácticas base, son dos con determinado artículo. Entonces, aquí podemos reconocer los
las más fáciles de evitar o corregir). Casi todas las vulnerabilidades siguientes puntos principales de manipulación de la solicitud:
se originan por falta de validación (o exceso de confianza) en los
datos proporcionados por el usuario. 1. Apache recibe una solicitud HTTP, y la reescribe (via mod_rewrite),
indicando «content», «view» y «825» como parámetros a index.php.
Prácticamente, la totalidad de los sistemas web que desarrollemos 2. PHP analiza, separa y estructura los parámetros recibidos para ser
procesarán datos provenientes de terceros: ya sea mostrando o gra- utilizados por Joomla.
bando lo expresado en formas HTML;determinando el flujo de nuestra 3. Joomla solicita el artículo 825 a la base de datos.
aplicación a través de rutas y parámetros ; «galletas» HTTP o incluso
-considerando la tendencia de migración hacia un esquema de «clo- La variabilidad de los primeros pasos es en realidad menor, pero al
ud computing»- tomando resultados de procedimientos remotos en solicitar a la base de datos el artículo «825» (y este es el caso más sen-
sistemas no controlados por nosotros. A cada paso debemos emplear cillo de todos) deben pasar muchas cosas. Primero que nada, «825»
datos en los que no confiamos. Esta puerta de entrada permite a un es una cadena de caracteres. PHP es un lenguaje débilmente tipificado
atacante una amplia variedad de modalidades de intrusión. En gene- (los números se convierten en cadenas y viceversa automáticamente
ral, podemos hablar de ellas como inyección de código interpretado, y según sea requerido), pero una base de datos maneja tipos estricta-
en esta ocasión hablaremos específicamente de inyección de SQL. mente. Como atacante, puedo buscar qué pasa si le pido al sistema
algo que no se espere, por ejemplo «825aaa». En este caso (¡felicida-
En el desarrollo de sistemas debemos partir siempre del principio de des!), el código PHP que invoca a la base de datos sí verifica que el tipo
mínima confianza: No se debe confiar en ningún dato proveniente de datos sea correcto: Hace una conversión a entero, y descarta lo que
de fuera de nuestro sistema, independientemente de quién sea el sobra. Sin embargo (y no doy URLs por razones obvias), en muchas
usuario. Esto es especialmente importante cuando requerimos que ocasiones esto me llevaría a recibir un mensaje como el siguiente:
un elemento cruce entre las principales barreras de las diversas ca-
Warning: pg_execute() [ function.pg-execute]: Query failed: ERROR: invalid input syntax
pas de nuestro sistema.
for integer: “825aaa” in /home/(...)/index.php on line 192

Tomemos como primer ejemplo al sistema de gestión de contenido


que usa SG. Si quisieran leer la edición anterior de esta columna, a la Esto indicaría que uno de los parámetros fue pasado sin verificación de
que hice referencia hace algunas líneas, pueden encontrarla en: PHP al motor de base de datos, y fue éste el que reconoció al error.

http://www.sg.com.mx/content/view/825 Ahora, esto no califica aún como inyección de SQL (dado que el mo-
tor de bases de datos supo reaccionar ante esta situación), pero es-
Todos hemos analizado URLs, y resultará obvio que «825» corres- tamos prácticamente a las puertas. Podemos generalizar que cuan-
ponda al ID de la nota en la base de datos, y que los componentes do un desarrollador no validó la entrada en un punto, habrá muchos
«content» y «view» indican la operación que el sistema debe realizar otros en que no lo haya hecho. Este error en particular nos indica que
ante una solicitud. Ahora bien, ¿a qué me refiero con que cruzamos el código contiene alguna construcción parecida a la siguiente:
las barreras entre las capas?
SELECT * FROM articulo WHERE id = $id_art
Enfoquémonos en el ID. Al analizar el URL, el ID es un pedazo de texto
(formalmente es una cadena que es recibida como parte del método La vulnerabilidad aquí consiste en que el programador no tomó en cuen-
GET, uno de los métodos definidos para el protocolo HTTP). El servidor ta que $id_art puede contener cualquier cosa enviada por el usuario.
web Apache que recibe mi solicitud interpreta este método GET y en- ¿Cómo puede un atacante aprovecharse de esto?

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


Presentaré a continuación algunos ejemplos, Podemos ver un ejemplo similar en la famo-
evitando enfocarme a ningún lenguaje en es- sa tira cómica de Bobby Tables (http://imgs.
pecífico. Lo importante es cómo tratamos al xkcd.com/comics/exploits_of_a_mom.png).
SQL generado. Para estos ejemplos, cambie-
mos un poco el caso de uso: En vez de ubicar ¿Y qué podemos hacer? Protegerse de inyec-
recursos, hablemos acerca de una de las ope- ción de SQL es sencillo, pero hay que hacerlo
raciones más comunes: La identificación de en prácticamente todas nuestras consultas,
un usuario vía login y contraseña. Suponga- y convertir nuestra manera natural de escri-
mos que el mismo sistema del código recién bir código en una segura.
mencionado utiliza la siguiente función para
validar a sus usuarios: La regla de oro es nunca cruzar fronteras in-
corporando datos no confiables, y esto no
$data = $db->fetch(“SELECT id FROM usuarios
sólo es muy sencillo sino que muchas veces
WHERE login = ‘$login’ AND passwd = ‘$passwd’”);
if ($data) { $uid = $data[0]; (específicamente cuando iteramos sobre un
} else { print “<h1>Usuario inválido!</h1>”; conjunto de valores efectuando la misma
} consulta para cada uno de ellos) hará los
tiempos de respuesta de nuestro sistema
Aquí pueden apreciar la práctica muy cómo- sensiblemente mejores. La respuesta es se-
da y común de “interpolar” variables dentro parar la preparación de la ejecución de las
de una cadena. Muchos lenguajes permiten consultas. Al preparar una consulta, nuestro
construir cadenas donde se expande el con- motor de bases de datos la compila y prepara
tenido de determinadas variables. En caso las estructuras necesarias para recibir los pa-
de que su lenguaje favorito no maneje esta rámetros a través de «placeholders», marca-
característica, concatenar las sub-cadenas y dores que serán substituídos por los valores
las variables nos lleva al mismo efecto. que indiquemos en una solicitud posterior.
Volvamos al ejemplo del login/contraseña:
Imaginemos ahora que el usuario ingresara el
login «fulano’;--». La clave de este ataque es $query = $db->prepare(‘SELECT id FROM usuarios
WHERE login = ? AND PASSWD = ?’);
confundir a la base de datos para aceptar co-
$data = $query->execute($login, $passwd);
mandos generados por el usuario. El ataque
completo se limita a cuatro caracteres: «‘;--».
Al cerrar la comilla e indicar (con el punto y Los símbolos de interrogación son enviados
coma) que termina el comando, la base de como literales a nuestra base de datos, que
datos entiende que la solicitud se da por ter- sabe ya qué le pediremos y prepara los ín-
minada y lo que sigue es otro comando. La dices para respondernos. Podemos enviar
sentencia quedaría de la siguiente forma: contenido arbitrario como login y password,
ya sin preocuparnos de si el motor lo inten-
SELECT id FROM usuarios WHERE login = ‘fulano’;--’ tará interpretar.
AND PASSWD = ‘’

Revisar todas las cadenas que enviamos a


Podríamos enviarle más de un comando conse- nuestra base de datos puede parecer una ta-
cutivo que concluyera de forma coherente, pero rea tediosa, pero ante la facilidad de encon-
lo más sencillo es utilizar el doble guión indi- trar y explotar este tipo de vulnerabilidades,
cando que inicia un comentario. De este modo, bien vale la pena. En las referencias a conti-
logramos vulnerar la seguridad del sistema, en- nuación podrán leer mucho más acerca de la
trando como un usuario cuyo login conocemos, anatomía de las inyecciones SQL, y diversas
aún desconociendo su contraseña. maneras de explotarlas incluso cuando exis-
te cierto grado de validación.
Siguiendo con ejemplos similar y considerando
que típicamente el ID del administrador de un » Por Gunnar Wolf
sistema es el más bajo (ID=1), entonces imagi-
nemos el resultado de los siguientes nombres Referencias:
de usuario falsos: [en.wikipedia.org/wiki/SQL_injection]
[ ferruh.mavituna.com/sql-injection-
ninguno’ OR id = 1;-- cheatsheet-oku/]
‘; INSERT INTO usuarios (login, passwd) VALUES [msdn.microsoft.com/en-us/library/
(‘fulano’, ‘de tal’); --
‘; DROP TABLE usuarios; --
ms161953.aspx]
[unixwiz.net/techtips/sql-injection.html]

www.sg.com.mx MAY-JUL 2009 51


// COLUMNA /*PRUEBA DE SOFTWARE*/

El Modelo de Calidad Europeo TPI


Aplicación en México de TPI, un Modelo de Calidad Especializado en Prueba de Software

Luis Vinicio León Carrillo es actualmente Director General de e-Quallity, empresa especializada en prueba de software, de la que es co-
fundador. Fue profesor-investigador en el ITESO durante varios lustros, que incluyeron una estancia de posgrado en prueba de software en
Alemania, en la que abordó aspectos formales de esa disciplina. Es autor de varias publicaciones nacionales e internacionales, e invitado
frecuente en eventos relacionados con la prueba de software.

R ecientemente invitamos a México a Martin


Pol, reconocido gurú en Prueba de Software,
elementos clave a ser evaluados para me-
dir la madurez en el proceso de pruebas
En otro de los comentarios destacados
de su charla, hizo referencia al hecho de
fundador de Poltec (empresa holandesa de de una organización. convertir la Prueba de Software en una
consultoría y certificación) y co-autor del mo- profesión dedicada, mas que seguirla
delo europeo Test Process Improvement (TPI), Martin ofreció la conferencia magistral concibiendo como parte de una activi-
del cual plasmaremos aquí un breve análisis. “Global Trends in Software Testing”en Gua- dad secundaria y “opcional”, que todos
dalajara, Monterrey y el Distrito Federal. y nadie realizan dentro de un proyecto de
En la edición Agosto-Octubre 2008 rea- desarrollo e implementación de sistemas
lizábamos un comparativo general de En esta ponencia Martin comentó que pro- de información.
algunos modelos de calidad, entre los bar un sistema de información no excluye al
cuales se encuentra TPI. Este Modelo de resto de los elementos acompañantes del Basándose precisamente en tal primicia,
Calidad Especializado en Pruebas (MCEP) software, como son el hardware, la docu- organizaciones en México han estado
tiene una estructura matricial, tal como mentación, los procedimientos, el material analizando sistemáticamente la mejora
lo mencionamos también en un número para el entrenamiento y la implementación, de sus procesos de prueba, buscando
previo de Software Guru, contemplando a sino que éstos deberían ser probados tam- entrenamiento para poner en producción
través de sus veinte áreas (ver Fig. 1), los bién como parte de un todo. software con un mayor nivel de calidad.

Un ejemplo es la empresa Test Sourcing,


quien alcanzó el nivel 3 en TMM (Testing
Maturity Model) y el nivel “Eficiente” en TPI
en el assessment, cabe mencionar que la
evaluación estuvo a cargo de Martin Pol.

En la figura 2 se muestran los resultados ob-


tenidos marcados en rojo, esto nos permite
asomarnos a lo que en México se está logran-
do dentro del área de Prueba de Software.

Atendiendo los conceptos manejados en


TPI, podemos ver a éste como un mode-
lo especializado en prueba que distingue
ciertas áreas clave (veinte), evaluadas con
calificaciones desde la ‘A’ hasta la ‘D’ a lo
largo de distintos niveles (catorce: del 0 al
13); niveles que a su vez, si los compara-
mos contra otros modelos de calidad gené-
ricos como CMMI, podrían ser categoriza-
dos como: Controlado (del 1 al 5), Eficiente
(del 6 al 10) y Optimizado (del 11 al 13).

Para medir cada área clave, TPI contempla


una serie de check points sobre los elemen-
Figura 1. Categorías de madurez en TPI tos que deben ser cubiertos; de acuerdo a

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


clave, se asocian check points a cada una de
dichas áreas, las interdependencias existen-
tes entre ellas son indispensables para alcan-
zar cada nivel, es importante tomar en cunta
las sugerencias de mejora para el logro de los
objetivos de dichos niveles.

Este modelo europeo ha comenzado a ser exi-


tosamente implementado en organizaciones
mexicanas, contribuyendo con ello a una ma-
yor competitividad de la industria mexicana del
software. La madurez del proceso de la organi-
zación que aplica las pruebas, es un factor im-
portante en la madurez del producto que sale
a un ambiente de producción y puede evitar
importantes pérdidas ocasionadas por la libe-
ración de software inmaduro.

Felicitación
Figura 2. Resultados en TPI de la empresa Test Sourcing Antes de despedirnos: en la edición anterior
decíamos que en marzo tendríamos como in-
la cobertura de los mismos es la calificación recomienda obtener calificaciones tales que vitado en e-Quallity a un experto internacional,
(A,B,C,D) obtenida. Por ejemplo: para el área nos permitan ubicarnos verticalmente en un con quien ofreceríamos pláticas sobre temas
clave “Estimating and Planning”, se obten- nivel similar en todas las áreas, en lugar de relacionados con los Modelos de Calidad Espe-
drá una calificación A si las estimaciones enfocar todo el esfuerzo en intentar obtener cializados en Prueba de Software en distintas
se obtienen utilizando argumentos sólidos; un nivel máximo en una sola de ellas. ciudades; nos referíamos a las pláticas de Mar-
una calificación B si además de ello, las es- tin Pol que ya mencionamos. Queremos enviar
timaciones se obtienen utilizando argumen- Con respecto a los resultados de la Figura un saludo a quienes con su entusiasta parti-
tos estadísticos, modelos matemáticos, au- 2 obtenidos por la empresa mexicana Test cipación demostraron su interés en el área de
tomatizados. Como puede verse en la Fig. 1, Sourcing, podemos observar que sus cali- Prueba de Software y felicitar a los ganadores
B es la calificación máxima para dicha área ficaciones caen dentro del niveles 8 al 10, de los obsequios que se rifaron en cada ciudad
clave, la cual a su vez habrá de posicionar- posicionándola detrás de organizaciones sede. ¡En horabuena!
nos en el nivel 10 para dicha área.Como po- cuyo ramo es de alto riesgo (donde si el
demos observar, para cada área clave hay sistema falla, alguien muere: industria ae- ¡Estén pendientes de nuestra próxima “Plá-
una calificación máxima a obtener, la cual a ronáutica, farmacéutica, etc.) tica con Expertos”!
su vez podrá lograrse en interdependencia TPI es un modelo en el que, además de dejar
con los niveles obtenidos en otras áreas. Se en claro el alcance de cada una de sus áreas » Por Luis Vinicio León / Berenice Ruíz

Berenice Ruíz Eguino es consultora de e-Quallity en proyectos de mejora de organizaciones de prueba. A lo largo de su trayectoria profesional ha actuado
también como tester senior, administradora de proyectos de prueba nacionales e internacionales, y directora de operaciones. Ha sido profesora de la Universidad
Autónoma de Guadalajara, institución en la que realizó sus estudios de Maestría en Ciencias Computacionales.

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


// COLUMNA INVITADA

Programación Orientada a Negocios


El Paradigma de la Conciencia Financiera
Por Marco Dorantes

¿ Cuál es la última moda en tecnología?,


¿qué nuevo estilo dictan las corrientes co-
involucra ejercer el sentido del deber con
base en un sistema de valores determinado
cativa para acceso a datos?, ¿a eso se de-
dica?, ¿debería ser el foco de sus esfuerzos
merciales de nuestra distinguida y glamo- (por eso la tendencia propuesta cae en la desarrollar este tipo de piezas? ¿ese es su
rosa tecnología de software?, ¿recuerdas el categoría de las personas). La razón prácti- negocio? ¿o tal vez debería mejor enfocarse
revuelo que había por incorporar las ideas ca es que si el diseñador de software sólo en desarrollar, de la mejor manera posible,
de análisis y diseño estructurado?, ¿y más valora los aspectos técnicos y primorosos la lógica de soporte a su negocio?
tarde el apuro por presentar en términos de de la tecnología, tendrá resultados signifi-
or ientación a objetos todo lo que se mo- cativamente diferentes a si valora también Hay muchas piezas de software cuyo diseño
viera en software? La lista de tendencias ha los aspectos financieros en sus decisiones y desarrollo es algo muy interesante para un
incluido categorías tanto de diseño y arqui- de diseño. programador, pues permiten experimentar
tectura como de procesos y productos.Lo in- con técnicas y conceptos novedosos. El pro-
teresante es indagar, con una visión crítica, Para presentar evidencia de soporte para tal gramador puede realmente disfrutar pasar
los costos y beneficios de cada tendencia. razón, déjame comenzar poniendo un ejem- una noche o un fin de semana programando
plo simple: Un requerimiento de negocio en y avanzando en su oficio, pero cabe la pre-
Un nuevo paradigma un banco implica conectarse a una base de gunta ¿es justificable hacer eso a cuenta del
¿Qué tal nos caería ahora una tendencia en la datos para obtener información de la línea negocio del cliente o empleador?
categoría de las personas? Una que podría- de crédito de un cliente determinado. El di-
mos nombrar como: “Programación orienta- señador de software, —muy entusiasta de Valor de negocio
da a finanzas” o “Programación orientada a la última moda tecnológica— determina: En el nuevo paradigma propuesto, la pre-
valor de negocio”. Una tendencia que derive gunta básica que el diseñador de software
en un nuevo paradigma, en uno que res- “...lo que el banco necesita desarrollar es se debe hacer en cada decisión significativa
ponda a necesidades en nuestro contexto un ‘framework’ de acceso para conectarse a de diseño es: ¿cómo aporta esta decisión al
actual. Después de todo, los paradigmas o dicha base de datos pues éste le va a apor- valor de negocio tanto en forma cualitativa
esquemas mentales que organizan nuestra tar un sinfín de beneficios gracias a su gran como cuantitativa?
concepción del mundo, como los plantea flexibilidad proyectada y poder de extensibi-
Thomas S. Kuhn , se forman precisamente lidad que le permitirá acomodar una plétora Pero, ¿qué es el valor de negocio? Aquí
en respuesta al contexto. de requerimientos futuros fácilmente, sin empezamos a notar uno de los rasgos que
preocuparse más por volver a considerar di- hace diferente a este paradigma, pues si
Hoy en día, un programador de computado- ferencia alguna con respecto al acceso a esa bien en otros esquemas no se espera que
ras junto con cualquiera que decida aspec- base de datos en particular o a cualquier el diseñador de software tenga alguna no-
tos de diseño y arquitectura durante la crea- otra, aun si fuera de otro proveedor. Por ción del significado del concepto de valor
ción de software —dentro de un contexto de tanto, no invertir en el desarrollo de esta in- de negocio, en este se asume que posee un
negocio— necesita contar con, al menos, el fraestructura aplicativa sería un grave error entendimiento básico de términos como:
entendimiento básico de los términos finan- por parte del banco, una falta de visión en la valor presente neto de una inversión, tasa
cieros relacionados con dichas decisiones. evolución y la modernidad de la tecnología interna de retorno, periodo de reembolso,
Esta es mi tesis en este artículo. de software...” retorno o rentabilidad de inversión, punto
de equilibrio y otros indicadores clave de
La razón filosófica de fondo detrás de dicha ¿En realidad este banco necesitaría invertir un negocio o de una propuesta de valor
tesis es una de tipo ético, es decir, una que en el desarrollo de tal infraestructura apli- de negocio.

Marco A. Dorantes es un consultor en el diseño y formulación de software desde 1987, oficio que lo llevó a la investigación aplicada en el campo de los métodos siste-
máticos para diseño de software. Ha realizado diversas contribuciones públicas en la comunidad mundial de programación, tanto en foros técnicos como en software,
por ejemplo AutoTest for .Net y CppUnit for C++Builder disponibles desde www.xprogramming.com. Publica un diario electrónico en blogs.msdn.com/marcod

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


“Un programador de computadoras junto con
cualquiera que decida aspectos de diseño y
arquitectura necesita el entendimiento
básico de los términos financieros relacionados
con sus decisiones”.

El valor de negocio es por lo que existen La razón es que el negocio puede tener una La capacidad de entrega de valor de nego-
las asociaciones, lucrativas o no. Está com- idea de lo que quiere, pero existen un cierto cio implica tanto la capacidad del personal
puesto por los beneficios de acuerdo a la número de factores externos reales que no de negocio para escoger prioridades, es-
misión establecida para la organización en le van a pedir permiso para cambiar, al con- pecificar funcionalidad, definir criterios de
cuestión, ya sean ganancias económicas y trario, el negocio tiene que adaptarse o mo- aceptación, verificar funcionalidad, como la
de otro tipo (servicios públicos, responsa- rir. Por otro lado, hay factores internos; por capacidad del personal técnico para crear
bilidad ambiental, productividad, etcétera). ejemplo, la sola presencia de una solución el software que satisface lo prioritario a la
Cualquier cosa puede representar valor de tecnológica para un problema X, provoca fecha, sin derrochar tiempo o dilatar la en-
negocio, la clave es que esté debidamen- que se redefina dicho problema y sufra una trega por estar construyendo cosas que no
te formulado como parte de un esquema especie de mutación tal que ahora tenemos entregan valor de negocio hoy.
cuantitativo con el cual se proyecta la sos- un problema Y para el cual se requiere una
tenibilidad de dicho negocio. nueva solución. Es el modelo de co-evolu- Una manera para construir dicha confian-
ción solución/problema planteado ya por za en el proyecto es por medio de lograr
En el ejemplo, si el banco aceptara la su- Frederick P. Brooks, Jr. (autor del clásico libro y mantener un ritmo periódico de entrega
puesta necesidad de desarrollar él mismo The Mythical Man-Month: Essays on Soft- de valor de negocio, el cual represente la
sus propias piezas de infraestructura apli- ware Engineering) desde hace décadas. serie de pasos con los cuales se aborda
cativa para acceso a datos, tendría enton- una aproximación sucesiva a lo que el ne-
ces que (1) esperar a que tal cosa estuviera El negocio necesita un proceso de desarrollo gocio se va dando cuenta de lo que real-
lista para entonces empezar a contar los de software que sea capaz de seguirle el rit- mente quiere.
supuestos beneficios, (2) asignar el tiempo mo, no al revés, el negocio ajustándose a los
y esfuerzo de su gente para el desarrollo dictados de un proceso rígido. Un proceso Conclusión:
correspondiente, tiempo y esfuerzo que no de desarrollo adaptativo, que mantenga una Las conclusiones, junto con un planteamien-
estarán dedicados a atender el desarrollo proporción razonable entre flexibilidad y dis- to más extenso de esta idea de programación
de piezas con una autentica prioridad de ciplina y que principalmente esté enfocado orientada a valor de negocio, son desarrolla-
negocio, (3) aumentar su nivel de inventario en atesorar los aprendizajes sobre la mar- dos en el texto de un servidor: “Beneficios
con piezas que deben mantenerse correctas cha. Aprendizajes tanto del lado tecnológico sostenibles y desarrollo de software. ¿Cómo
durante todo el tiempo que duren hasta ser como del lado del negocio. Uno que desde obtener beneficios sostenibles por los ser-
retiradas, cada línea de código nueva en el inicio contemple que el negocio diga: “sí, vicios que incluyen desarrollo de software?
la organización es una línea de código que eso es lo que pedimos, pero ahora queremos Parte I. El modelo adaptativo de desarrollo”,
debe ser mantenida correcta con cargo a la otra cosa y es esta...” y al mismo tiempo el el cual está publicado en forma electrónica
propia organización (está bien documenta- grupo de desarrollo domine las técnicas de en la sección de artículos en línea del sitio
do el efecto que tiene el nivel de inventario diseño para mantener una estructura limpia, web de SG. Los invito a que lo revisen y me
sobre el valor de negocio), (4) correr el ries- estable y flexible para el software, cuyo cos- hagan saber sus comentarios.
go de que todo ese tiempo y esfuerzo se de- to de cambio no crezca exponencialmente.
rroche si al paso del tiempo no se entregan Referencias
los beneficios esperados por causa de una Construyendo confianza [Kuhn, Thomas S. “La estructura
deficiente administración de la complejidad Un paradigma de programación orientada a va- de la revoluciones científicas” ISBN
en el desarrollo de ese tipo de componentes lor de negocio tiene también como premisa que 9681675991]
de infraestructura aplicativa. el proceso de desarrollo de software consiste [Denne, Mark.; Cleland-Huang, Jane.
en un proceso de construcción de confianza, no “Software by Numbers: Low-Risk, High-
Un objetivo móvil directamente en los individuos sino en que el Return Development” ISBN 0131407287]
Lo único constante es el cambio. El valor proyecto de desarrollo en su conjunto —la co- [Poppendieck, Mary; Poppendieck, Tom.
de negocio entregado a través de software laboración y conjunción de personal de negocio “Implementing Lean Software Deve-
usualmente posee el peculiar rasgo de ser y personal técnico— será capaz de entregar el lopment: From Concept to Cash” ISBN
susceptible de indefinición y ambigüedad. valor de negocio en los términos requeridos. 0321437381]

www.sg.com.mx MAY-JUL 2009 55


// COLUMNA /*tendencias en SOFTWARE*/

El Fin de la Plataforma Tecnológica


Rumbo a la masificación de aplicaciones
Luis Daniel Soto Director de Divulgación Tecnológica para Microsoft. Responsable de la cuarta área de trece a nivel mundial en atención a
desarrolladores de software. Coordina el esfuerzo de un grupo de 100 personas encargadas de Divulgación Tecnológica en América Latina.
Ingeniero en computación por la Fundación Arturo Rosenblueth, especialista en el tema de liberación al mercado de nuevas tecnologías y
toma electrónica de decisiones. luisdans@microsoft.com luisdans.com\Twitter

C on el título no me refiero a la desaparición del software, sino al


enfoque más allá de la infraestructura. Hoy se han acuñado nuevos
El cambio de ingeniería se está dando, con frecuencia es necesario obser-
var la evolución del “cómputo en la nube”, Geo-hosting, administración
términos para nombrar polos de desarrollo de tecnología: Barcamp, de múltiples versiones, automatización total, etc. El cambio cultural es el
Twestival, Palermo Valley, Tequila Valley, Santiago Valley, Unacamp, más importante y el que menos se ha entendido. Esto incluye:
Super Happy Dev House… Todos ellos se refieren a un renovado espí-
ritu emprendedor, buscando adaptar ideologías culturales y sociales • Operaciones ya no es solo una parte del equipo, ahora se transforma en
en economías emergentes. una nueva área de ingeniería.
•El modelo mental de compensación debe pasar del “lanzamiento” al
El futuro de la tecnología “mantener en operación”
La tecnología es una actividad humana que satisface las necesidades de • La disponibilidad del sitio es siempre la mayor prioridad del equipo
los usuarios. Las tareas para resolver estas necesidades pueden ser muy • En un servicio mundial, no existen “horas no pico”
simples o bastantes complejas. Los avances tecnológicos permiten satis- • El desarrollo del servicio nunca terminará.
facer necesidades de mayor nivel en la Pirámide de Maslow. Esto crea una •La selección de servicios a ofrecer en la nube es distinta al modelo tra-
espiral; al avanzar la tecnología, nuevos escenarios de necesidades sur- dicional, tiene que ver con cuales servicios son más fáciles de consumir a
gen para ser satisfechos. El ciclo terminará con la personalización masiva corto plazo
de soluciones para el consumidor. Es imposible hacer esto sin la “nube”.La
creación de una nueva dimensión de técnica requiere involucramiento de La sociedad de la información
consumidores para la confección de diversas especificaciones, para cu- En abril del 2008 hice algunas observaciones en mi blog sobre “Innova-
brir eficientemente sus necesidades. Es indispensable un nuevo ecosiste- ción social” (sn.im/enfbh ). Hoy se han materializado estos pronósti-
ma interactivo, donde el producto-servicio sea mejorado. La masificación cos en ciudades de América Latina; En Venezuela, el proyecto UnaCamp
significa que las empresas proveedoras no solo desarrollarán soluciones (www.unasurs.com) se enfoca en 3 partes fundamentales:
individuales como anteriormente lo hacían. El número de combinaciones
que las aplicaciones ofrecerán difícilmente será predecible. 1.Tecnología: Nuevas capacidades para aplicaciones web en estadios
tempranos, tecnologías de código abierto, protocolos sociales, etc.
Cambio de mentalidad en la audiencia con rela-
ción al uso de tecnología 2. Soluciones locales para mejorar la calidad de vida: educación, sa-
En los últimos treinta años hemos cambiado la forma de ver los datos lud, seguridad,etc.
y la información, ahora es usada como commodity. La tecnología está
entrelazada en las actividades de la vida diaria. La transformación que 3. Integración latinoamericana: ¿Cómo nosotros, los ciudadanos, po-
estamos viviendo cruza las barreras socio-psicológicas y socio-cultu- demos unir América Latina?
rales. Es interesante mencionar que quienes experimentan el cambio,
desean mucho más de él. La PC permitió experiencias “personales” Estas iniciativas están apoyadas por herramientas como Twitter, que jue-
de cómputo. Hemos evolucionamos a servicios ligeros en dispositivos gan un papel protagónico en crear un “web de tiempo real” dando mayor
sencillos. Saltamos del P2P (peer to peer) al F2F (friend to friend). Es- dinamismo a los denominados “grupos de usuarios”.
tos productos y servicios presentan algunos factores en común:

• Crecimiento en la adquisición de PCs y dispositivos portátiles. Conclusión:


• Crecimiento en la industria de desarrollo de software. El discurso tecnológico ha cambiado en la última década, no
• Aumento en la confianza al acceso de aplicaciones vía Web. solo después de la re calibración económica o de los temas de
• Mayor nivel de confiabilidad tecnológica. ahorro de energía. Hay que entender el mundo actual y apostar a
• Altas inversiones en el área de infraestructura básica. ser líderes de “la siguiente generación” de soluciones. La inercia
“pesa”: El Web 2.0 ya tiene 5 años y continua siendo objetivo de
El panorama empresarial cambió completamente con la tecnología, des- muchos grupos emergentes. Usemos la tecnología para coordi-
de su estructura hasta el control de “indicadores de un negocio sano”. narnos mejor y alinear el impacto total hacia América Latina.
Incluyendo modelos basados en publicidad muy dirigida, pago mediante
suscripciones y la venta de bienes digitales.
» Por Luis Daniel Soto

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


www.sg.com.mx MAY-JUL 2009 57
// fundamentos

Personal Software Process (PSP)


Reducción de defectos y estimaciones más exactas
Por Consuelo Jiménez

PSP representa una metodología o un marco de trabajo desarrollado neas pueden servir como base, que tanto código podemos reutilizar
en 1993 por Watts S. Humphrey. Lo importante al construir software e incluso cuantas líneas modificarás o borrarás del código base que
es tener un proceso disciplinado para llevar a cabo el desarrollo e se usará. Lo importante es que toda esta información se registra y
implementar mejoras para lograr resultados de calidad. Enfocada uno puede planear con más exactitud tamaños y tiempo relaciona-
principalmente en el rol del programador, ayuda a que este ponga dos al desarrollo de su programa.
atención en aspectos de planeación, diseño, estándares y revisiones
al detalle de lo que va realizando, registrando todo aquello en for- Cuando codificamos directamente utilizando un IDE (Medio ambien-
mas o plantillas que han sido diseñadas por Humphrey. te de desarrollo integrado) estamos de una u otra forma tratando de
quitar errores de sintaxis a través de la compilación, sin considerar
La metodología maneja un conjunto de scripts que especifican los que la mayor cantidad de errores serán por lógica y que muchas de
requerimientos de entrada, el proceso que debe de seguirse y los las veces estamos depurándolos hasta la fase de prueba, cuando es-
resultados esperados, todo esto enfocado a cada fase de la metodo- tos errores deberían de ser descubiertos si revisáramos a conscien-
logía (ver figura 1). cia el diseño realizado. Lo que realmente se espera es que el tiempo
en hacer las pruebas sea solo el tiempo que le tome en capturar los
datos para cada caso de prueba y que los resultados esperados sean
realmente igual a los resultados obtenidos. Quizás en muy pocas
ocasiones esto no suceda.

La revisión incorporada en la metodología implica la realización de


un documento completo del diseño definiendo la parte operacional,
lógica, de estados y funcional; asimismo será importante checar el
cumplimiento de estándares tanto en el diseño como en la construc-
ción y revisar este código generado no usando el compilador, sino de
forma manual para encontrar la mayor cantidad de errores antes de
la primera compilación, siendo los errores de lógica verificados con
tablas de rastreo o tablas de ejecución, entre otras.

Tu productividad mejorará, los defectos antes cometidos serán mi-


nimizados o eliminados esto debido a su registro constante, tus
estimaciones serán más certeras pudiendo cumplir con las fechas
Figura 1. Flujo de Procesos PSP
prometidas al líder de proyecto.

Esta metodología esta apoyada por una herramienta computacional de- No está por demás mencionar que es importante que quien esté de-
sarrollada por el Instituto de Carnegie Mellon, que genera una serie de sarrollando y vaya a aplicar la metodología debe dominar el lengua-
registros con información valiosa para llevar a cabo la siguiente planea- je de programación. Creo que esta es un área de oportunidad para
ción y para actualizar el plan al terminar cada programa de software. aquellos que enseñamos a programar pues el inculcar desde los
primeros semestres aspectos valiosos de esta metodología es fun-
Cuando se termina el curso de PSP y se empieza a realizar su primer damental para que al llegar al final de una carrera se evite programar
proyecto siguiendo la nueva metodología, uno mismo se da cuenta con vicios o errores graves.
del tiempo que a veces invierte incorrectamente cuando quiere diri-
girse directamente a codificar el programa, en lugar de haber realiza- Referencias:
do un análisis y un diseño general de la solución. Al ir avanzando en
el desarrollo de los diferentes proyectos uno se acostumbra a definir [Humphrey, Watts. “PSP,A Self Improvement Process For Software
cuántas líneas de código se programan, esto basado en un diseño Engineers”]
conceptual y en aquel código que uno ha desarrollado, cuántas lí- [sei.cmu.edu/certification/psp.html]

Ing. Ma. del Consuelo Jiménez Fernández, profesor asociado de la Universidad de Monterrey en el Departamento de Ciencias Computacionales desde hace 22
años, certificada en PSP developer y PSP Instructor por el SEI of Carnegie Mellon University, con maestria en informática administrativa, especialista en desarrollo
de software educativo, calidad de software y metodologías de desarrollo de software.

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


www.sg.com.mx MAY-JUL 2009
// TECNOLOGÍA /*INFRAESTRUCTURA*/

Grid Computing
La unión hace la fuerza
Por Beatríz Ríos y Luis Joyanes

Mientras que la programación paralela se basa en el concepto de “di- Funcionamiento


vide y vencerás”, la tecnología grid computing (cómputo en malla) El funcionamiento de un grid requiere de un middleware que asegure
trata de integrar ésta filosofía bajo la estrategia de “la unión hace la comunicación transparente entre diferentes ordenadores reparti-
la fuerza”. De esta forma, se busca aprovechar recursos de cómputo dos en distintos lugares geográficos.
geográficamente distribuidos en un gran número de computadoras
en el mundo para conformar grandes “ordenadores virtuales” capa- El segundo elemento es un motor de búsqueda que no sólo en-
ces de procesar cantidades de información inimaginable en una sola contrará los datos que el usuario necesite, sino también las herra-
computadora, o incluso en un solo centro de datos. mientas para analizarlos y la potencia de cálculo necesaria para
realizar las operaciones.
Antecedentes
Los primeros conceptos de grid computing se exploraron en 1995 con Por último, las tareas de procesamiento son distribuidos entre los
el experimento “I-WAY2”, en el que se usaron redes de alta velocidad nodos donde hay capacidad disponible, regresando los resultados
para conectar 17 sitios en Norteamérica y habilitar una infraestructu- integrados al usuario.
ra para soporte de los laboratorios virtuales.
Beneficios
Por otro lado, Seti@Home es uno de los proyectos más conocidos en Como se podrán imaginar, algunos beneficios de este esquema son:
los que se aplica este concepto. Éste cuenta con miles de ordenado- • Alquiler de recursos
res repartidos en todo el mundo que ceden tiempo de sus procesa- • Amortización de recursos propios
dores, ciclos de proceso desocupados, para analizar señales buscan- • Gran potencia de cálculo a precio bajo sin adquirir equipamiento
do patrones inteligentes extraterrestres. • Mayor colaboración y compartir recursos entre varios centros
• Creación de organizaciones virtuales
Características • Negocios basados en proveer recursos
Un sistema de grid computing se refiere a aquel que:
1. Coordina recursos distribuidos que no están sujetos a un control Las organizaciones virtuales habilitadas por grids
centralizado. Foster, Kesselman y Tuecke, precursores del cómputo en grid, plan-
2. Usa protocolos e interfaces estándar. tean la existencia de organizaciones virtuales (OV) como puntos de
3. Proporciona calidad de servicio no trivial. partida de este enfoque. Una organización virtual es un conjunto de
individuos, instituciones o empresas, definida por reglas que contro-
Grid y P2P lan el modo en que comparten sus recursos.
La unión de ordenadores que comparten ciclos de procesamiento no usa-
dos, cada vez aparece más claramente como una futura aplicación de In- Algunos ejemplos de organizaciones virtuales son:
ternet. Los conceptos de grid y peer to peer se basan en la idea básica de • Los proveedores de servicios de aplicaciones o almacenamiento.
compartir recursos, sin embargo existen algunas diferencias. La principal • Equipos de trabajo empresarial realizando análisis y planeación
diferencia es que P2P es un esquema descentralizado donde todos los estratégica.
nodos son cumplen el mismo rol, mientras que grid nace de una estructu- • Miembros de una planta de energía evaluando trabajo de campo.
ra de nodos más controlada y jerarquizada en centros científicos. • Universidades involucradas en un proyecto de investigación conjunto.

BeatrÍz Ríos Velázquez Catedrática del Instituto Tecnológico de San Luis Potosí, México. Maestra en Ciencias de la computación, Diplomada de Estudios Avanza-
dos en Informática por la Universidad Pontifica de Salamanca en Madrid. Ha trabajado en la Banca, en el sector de telecomunicaciones, en el desarrollo de sistemas
para la empresa y en la docencia. Actualmente se encuentra realizando investigación para el desarrollo de su tesis doctoral en Tecnologías de la Información, Web
2.0, redes sociales, usabilidad y empresas 2.0.

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


“Foster, Kesselman y Tuecke, precursores de
la computación “Grid”, plantean la
existencia de organizaciones virtuales (OV)
como puntos de partida de este enfoque”.

Usos de la tecnología Grid


• En Gobiernos y Organizaciones Internacionales: En respuesta clientes o en el servidor, en un contexto aislado y con un
ante desastres como: inundaciones, incendios, terrorismo, en plani- mínimo impacto en las infraestructuras existentes. La tec-
ficación urbana, modelos económicos, etc. nología de virtualización de varios proveedores permite
minimizar los costos de compatibilidad de programas, mi-
• En el mundo de la Medicina: La unión de recursos tales como ba- graciones a nuevos entornos, distribución de aplicaciones
ses de datos administrativas, archivos de historias clínicas e imáge- al equipo cliente hasta la terminación del ciclo de vida del
nes médicas de instrumentos especializados abre la puerta a una software . El resultado es una infraestructura más optimiza-
gran variedad de nuevos procedimientos de diagnóstico mejorados da, ciclos reducidos de puesta en marcha de aplicaciones y
gracias a la ayuda de computadoras, en base a un análisis rápido por lo tanto, menores costos de gestión en la infraestructu-
de imágenes médicas complejas y la comparación automática con ra. El cómputo en malla requiere de nuevos modelos de pro-
archivos distribuidos para encontrar casos similares. gramación ya que introduce grandes retos: heterogeneidad
y rendimiento que no se encuentran en computadoras en
• En la Educación: Las bibliotecas electrónicas y los centros de e- paralelas, pero el problema básico de programación es el
educación se beneficiarán de las herramientas basadas en “Grid” mismo. Se pueden usar técnicas clásicas de programación
para el acceso a datos dispersos y la creación de aulas virtuales con de abstracción, encapsulamiento por objetos, así como
estudiantes, recursos y profesores distribuidos. otros modelos que puedan surgir. Al final de este camino,
los servicios informáticos serán entendidos con la misma
• Empresas y Grandes Corporaciones: Las grandes empresas tienen filosofía que los servicios de gas, de electricidad o de agua.
delegaciones, datos, personal y recursos distribuidos por todo el Estas tecnologías nos convertirán en meros consumidores
mundo. Un enfoque basado en grid permitirá la creación de medios que no tienen por qué conocer el origen, distribución, loca-
para realizar aplicaciones a gran escala tales como el diseño asis- lización y mantenimiento de los mismos.
tido por computadora utilizando simultáneamente recursos situa-
dos en muchos lugares. Otra consecuencia de la tecnología grid es
la creación de organizaciones virtuales: individuos, instituciones y Referencias
organizaciones que comparten un objetivo común y que para lograr [Eiguren, I. “Los pioneros del Grid” .(2008) ]
alcanzarlo, eligen compartir sus recursos, lo que se traduce en un [Fernandez, S. “El Grid al servicio de la e-ciencia”.CESGA 2007.]
acceso directo a ordenadores, programas, ficheros, datos, sensores [Fox, G.; Thomas, M.“Grid Computing Environments “, Community
y redes. Grids Lab, Indiana: Indiana University, Austin: TACC, University of
Texas, Feb 2003.]
[Joyanes, Luis. “CIENCIA 2.0: Hacia la Ciencia Web con la Web 2.0
Conclusiones y Web Semántica (nuevo paradigma en la I+D+i)” en Semana de la
La virtualización es una respuesta a la problemática de la Ciencia de Castilla y León. Salamanca: Universidad Pontificia de Sa-
optimización de las infraestructuras. En concreto, la virtua- lamanca: 13 de noviembre, 2008. ]
lización de las aplicaciones permite convertir software en [astic.es]
servicios, que se ejecutan sin instalación en los equipos [setiathome.ssl.berkeley.edu/]
[super.unam.mx/]

Luis Joyanes Aguilar Dr. Ingeniería Informática, Dr. Sociología, Lic. Ciencias físicas, Lic. Enseñanza superior militar y Dr. Honoris y causa por la Universidad
Antenor Orrego de Trujillo (Perú). Catedrático, Ex-Decano de la facultad de Informática y Director del departamento de posgrado de la Universidad Pontificia de
Salamanca en Madrid. Profesor del posgrado de sociología en Guatemala, Universidad de Oviedo, Complutense y Politécnica, en España. Ha publicado más de
40 libros y 80 artículos sobre tecnologías de la Información, metodologías y diversos lenguajes de programación.

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


// tecnología /*gadgets*/

Esta sección es presentada por Geek


www.geek.com.mx

Amazon
Alienware Kindle DX
M17 Después del lanzamiento
de Kindle de 6.5” el año
Las portátiles de Alienware siempre se han caracterizado no sólo por pasado, ahora Amazon de-
sus vistosos diseños, sino también por su poder. La M17 es el nuevo cidió crecerlo tanto en ta-
modelo y la primera en incorporar la tarjeta ATI CrossFireX y el procesa- maño como en capacidad y
dor Quad-Core Intel móvil. La llaman “la solución que la industria nece- características.
sita”, debido a su agresivo desempeño. Una de sus ventajas es que no
sólo va dirigida a entusiastas videojugadores, sino también a aquellos El Kindle DX ofrece una pantalla en escala de 16 grises
amantes de las laptops con diseños innovadores, un tanto toscos. de 9.7 pulgadas. Cuenta con soporte para archivos PDF
utilizando Adobe Reader Mobile, de tal manera que pue-
La M17 cuenta con Procesador Intel Core 2 Extreme QX9300, el pri- des enviar por correo o vía USB hacia tu Kindle cualquier
mer Quad-Core móvil, que ofrece desempeño y eficiencia con capaci- tipo de documento en PDF y lo podrás leer, no importa si
dades multitarea con una velocidad de más del 50% que las genera- tiene gráficos, tablas, notas, etcétera.
ciones anteriores de procesadores; y de ahí saltamos al GPU armado
con una ATI Mobility Radeon HD3870 para video HD, DirectX 10.1 La pantalla utiliza tinta real y no requiere luz, evitando así
para juegos de nueva generación que corren a más de 80% que las el malestar en los ojos después de estar mucho tiempo
soluciones tradicionales de GPUs. Memoria de 4GB de DDR3. Disco expuesto, como pasa con otros dispositivos; también po-
duro de 500GB ligado a una configuración RAID 0 para almacena- see capacidad rotatoria, por tanto te permite leer en hori-
miento masivo de 1TB; que equivale más o menos a 160 juegos, 250 zontal o vertical, sólo es cuestión de moverlo y la pantalla
películas o alrededor de 250 mil canciones, ufff. No podemos pasar se ajustará de inmediato (sí como un iPhone). Su memo-
por alto su pantalla de 17 pulgadas de “alta definición extrema” con ria de 3.3GB permite almacenar más de 3 mil 500 libros
resolución de 1920 X 1200 que exalta la reproducción de discos Blu- que se pueden descargar desde Amazon sin necesidad
ray y videos HD. En cuestión de seguridad su panel de control te da de buscar hot spots ni utilizar una computadora. Hoy en
acceso a programas exclusivos como AlienFusion para administrar día existen alrededor de 275 mil libros disponibles para
el sistema, AlienSense un software de reconocimiento facial y Alien- descarga en Kindle que incluyen 107 de los 112 New York
Touch; no hay manera de que algún intruso se meta con ella. Times Best Sellers disponibles hasta el momento.

Firebox
R2-D2 Projection Alarm Clock
Si para estas fechas, después de las crisis y las contingencias sanitarias no hay poder humano que te obligue o te
haga levantarte de la cama. Incluso luego de haber intentado con la alarma de tu celular, la del despertador que te
regaló tu mamá y una llamada de despertador... podrías intentar algo nuevo, más divertido, como por ejemplo el
R2-D2. Como uno de los personajes favoritos de Star Wars y uno de los mejores androides de la galaxia, esta versión
licenciada de 16 centímetros de altura, proyecta la hora sobre la pared o techo, en caso de que te de pereza mover
la cabeza, sus patas se ajustan para que la proyección quede exactamente en el punto que deseas, pero eso no
esto, en caso de que tu habitación se de esas que se iluminan con el primer rayo del sol, nuestro querido R2 lleva
consigo un display LCD para no fallarte nunca. Quizá una de sus mejores características es que emite una alarma de
60 segundos seguidos con sus tradicionales sonidos y chirridos para que lo que escuches sea como música para tus
oídos. (Cuidado fanáticos de Star Wars). Utiliza dos baterías AAA y una de botón G13. Cuenta con un panel de control
desde el cual se selecciona el modo de despliegue de la hora, fecha o segundos; puede ser de 12 o 24 horas.

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


INDEX

DIRECTORIO Anunciante Página Sitio

Alpha Consultoría 39 www.alpha-consultoria.com


Ciudades Digitales 59 www.ciudades.gob.mx
e-Quallity 51 www.e-quallity.net
gelattina 43 www.gelattina.com
IDC 63 www.idclatin.com/mexico
Itera 19 www.iteraprocess.com
JPE Consultores 45 www.jpeconsultores.com
Matersys 2F,1 www.matersys.com.mx
Milestone Consulting 4F www.milestone.com.mx
NYCE 3F www.nyce.org.mx
Praxis 9 www.praxis.com.mx
SG 09 Conferencia y Expo 11 www.sg.com.mx/sg09
SG Campus 57 www.sgcampus.com.mx

TENEMOS UN ESPACIO
RESERVADO PARA TI
Si deseas anunciarte contáctanos
en el (55) 5239 5502 o en
publicidad@sg.com.mx

www.sg.com.mx MAY-JUL 2009 63


// CARRERA /*REPUTACION DIGITAL*/

Reputación Digital
Cuidado con lo que subes a la Web
Por Fernando García

Hoy día, cuando necesitas buscar información, referencias o · ¿Qué quiero que las personas digan de mi?
simplemente localizar personas lo primero que haces es tratar · ¿Cómo quiero ser visto profesionalmente?
de encontrar esa información en algún “Buscador” de internet · ¿Qué tipo de información quiero que encuentren sobre mi?
como Live o cualquier otro de los existentes. Esto ya es una prác- · ¿Cómo quiero que encuentren mi información?
tica normal, es muy común que la gente busque información de
la pareja sentimental por este medio y es también común que Una vez contestadas estas preguntas el siguiente
los interesados en tus servicios profesionales lo hagan. paso es determinar tu “Estrategia”
Actualmente es casi imposible no dejar huella en internet, por su- · ¿Cuál es mi estatus hoy día en mi reputación?
puesto algunos dejan más huellas que otros. Desde el momento · ¿Donde quiero llegar?
en que te registras para obtener un correo electrónico gratuito o · ¿Qué herramientas y/o medios existen acordes a mis necesida-
para los más entendidos, crear algún blog, microblog, perfil en des y preferencias?
alguna red social, etc. Con esto ya estas dejando algo de tu infor- · ¿En qué tiempo quiero lograr mis objetivos? (corto, mediano o
mación en internet, lo cual puede ser un arma de doble filo desde largo plazo)
el punto de vista profesional, una vez indexado por el buscador tu · ¿Qué tipo de entrenamiento, capacitación, mejora profesional
información ya quedo almacenada para la posteridad. y/o de conocimientos necesito?
· ¿Cómo puedo medir mi éxito o fracaso? (Métricas, herramien-
Cuántos de ustedes se han buscado y lo primero que ven es una tas, etc…)
foto que algún amigo o que ustedes mismos subieron donde · ¿Mi modelo escala en caso de ser necesario?
apareces en estado inconveniente, comentarios que escribie- · ¿Quién o quienes ya lo están haciendo y cómo lo hacen?
ron en algún blog que pudieran ser mal interpretados o fuera de
contexto. Esto podría ser usado en tu contra. En mi experiencia he visto que siguiendo estas
reglas los resultados pueden ser exponenciales
Hay ejemplos muy claros donde personas han perdido su em-
pleo debido a comentarios que hicieron en sus blogs sobre su · Ser reconocido como experto.
trabajo, su jefe o su empresa. · Ser un líder de opinión.
· Registrar todas las actividades.
Con esto no intento decir que está mal subir fotos o expresarte · Concentrar toda la evidencia en un solo lugar.
libremente. Mi propuesta va más allá. Consiste en dejar “Huella · Incrementar tu network.
Digital” de forma inteligente y que aporte valor a tu reputación
profesional o como lo llamo yo “Reputación Digital”. La pregun- Estos cinco puntos no son la panacea, claro está, pero es un
ta obligada es: ¿Cómo dejar esa huella? excelente inicio, está claro que hay dos cosas que resultan fun-
damentales “Ser constante” y sobre todo “Disfrutar al hacerlo”
Afortunadamente hay numerosas formas de hacerlo, varias técni- sin estas dos variables nada de lo anterior será posible.
cas y muchos mecanismos que se pueden acoplar perfectamente
a todos los estilos y preferencias para implementar una estrategia Cada uno de los puntos anteriores por si solos requieren un tra-
de este tipo, es por eso que en lugar de darles “un paso a paso” to a mayor profundidad y para cada uno hay técnicas, métodos,
mejor les planteo las inquietudes a resolver y ustedes podrán ele- herramientas y prácticas que ayudan a conseguirlos. En colabo-
gir libremente la metodología que mejor les parezca. raciones posteriores los trataré por separado.

Fernando García Loera actualmente trabaja en Microsoft como MVP Lead para Latinoamérica, es experto en tecnología, Social Media y Web 2.0. Ha impar-
tido varias conferencias en México y el extranjero, juez en varios concursos de desarrollo, y prolífico blogger. Puedes seguirlo en blogs.msdn.com/mvplead,
www.ferglo.com y @ferglo

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


www.sg.com.mx MAY-JUL 2009 57
No. 24 www.softwareguru.com.mx SOFTWARE GURU CONOCIMIENTO EN PRÁCTICA Mayo-Julio 2009

Vous aimerez peut-être aussi