Académique Documents
Professionnel Documents
Culture Documents
Peer Reviews
• Documentación
de Arquitecturas
• Seguridad en
Aplicaciones Web
[ ENTREVISTA ]
Christian Lemaître
Guru fundador de las
Ciencias de la Computación
en México
9 771870 088009
[ Tutorial ]
Noticias • Eventos • Fundamentos • UML • PM Corner • Tecnología • Biblioteca Silverlight
// CONTENIDO
directorio
Dirección Editorial
Pedro Galván
Dirección de Operaciones
Mara Ruvalcaba
Coordinación Editorial
Sonia Sánchez
Fotografía
Gabriel González
Consejo Editorial
Jorge Valdés - PMI; Luis Cuellar - Softtek;
Francisco Camargo, Luis D. Soto - Microsoft;
Hanna Oktaba - UNAM; Ralf Eder, Raúl Trejo,
Guillermo Rodríguez - ITESM CEM;
Emilio Osorio - Sistemas Humanos;
Luis Vinicio León - e-Quallity.
Colaboradores
Christian Lemaître, Alejandra Herrera,
Martín Álvarez, Luis García, Carlos Ortega,
Omar Gómez, Erick Frausto, Rafael Bernal,
Gunnar Wolf, Germán Domínguez,
Marco Dorantes, Guillermo Morales,
Edith Martínez, Beatriz Velázquez,
Andrés Simón Bujaidar, Miguel Armas,
Héctor Obregón, Germán Domínguez.
Ventas
Sí, aun seguimos ¡vivos!. Después de SG, y a todos ustedes porque además de Claudia Perea, Natalia Sánchez
meses habitando la oficina, comiendo asistir, nos han hecho un elemento más en
pizza y bebiendo agua (¡somos muy salu- sus preferencias. Marketing y RP
dables!), los días 21 a 24 de junio se reali- Dafne Vidal
zó el congreso SG’08 Conferencia y Expo, Retomando nuestras actividades cotidianas,
en esta ocasión en conjunto con PMTOUR ahora toca el turno a este número 21, en el Circulación y Suscripciones
México 2008. Estamos muy contentos que encontrarán los comentarios de los ex- Daniel Velázquez, Edgar Dorantes
de que hubo personas que asistieron por pertos en el desarrollo de la Industria de
tercera ocasión, nos da mucho gusto sa- Software en nuestro país. Es interesante sa- Administración
ber que gente nueva asistió al congreso y ber cómo vamos creciendo en este aspecto y Araceli Torres
quedó muy satisfecha con lo ahí mostrado. lo que podemos hacer para mejorarlo. Ade-
Contacto
Aunque cambiaron algunas cosas (como el más encontrarán la última parte del tutorial
info@softwareguru.com.mx
tiempo de duración de los tutoriales), todo de Ruby on Rails y la continuación del artículo
+52 55 5239 5502
salió muy bien. ¿Quieren saber más?, en el sobre documentación de sistemas, así como
interior de la revista encontrarán la reseña cada una de las columnas que ya conocen.
más completa. SG Software Guru es una publicación trimestral
editada por Brainworx S.A. de C.V., Malinche no. 6,
Gracias todos por su preferencia y por Col. El Parque, C.P. 53398, Naucalpan, México. Queda
Nada de esto hubiera sido posible sin el hacer que SG’08 Conferencia y Expo haya prohibida la reproducción total o parcial del contenido
esfuerzo y trabajo del equipo que forma a sido un éxito. 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
» Equipo Editorial 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 julio de 2008 en Roma
Color, S.A. de C.V. Distribuido por Sepomex.
20 EN PORTADA
Industria del Software en México
Presentamos un compendio de diferen-
tes perspectivas sobre nuestra industria.
Especial 16
Reseña de SG’08.
Productos
LO QUE VIENE 10
JBoss en EC2, Probe 8.0,
ADO.NET Entity Framework y TBB 2.1.
TUTORIAL 12
Silverligth.
Herramientas 14
Control de acceso basado en roles.
Prácticas
Columnas
ASEGURAMIENTO DE CALIDAD 38
Tejiendo Nuestra Red 06 Prueba de Software 54 Revisiones entre colegas
por Hanna Oktaba por Luis Vinicio León Un vistazo a los roles, tipos y fases de las revisiones
entre colegas, así como sus beneficios.
Mejora Continua 08
por Luis Cuellar Tendencias en Software 56 PROGRAMACIÓN 40
por Luis Daniel Soto Ruby y Rails
Columna Invitada 34 Última parte de este tutorial introductorio al lenguaje
por Héctor Obregón de Programación Ruby y el framework Rails.
ARQUITECTURA 44
En Cada Número Más allá del manual de usuario
Segunda parte sobre la documentación que
Noticias y Eventos 04 GADGETS 60 debe considerar el arquitecto de software.
UML 48
18
Reconociendo los Diagramas
Mostramos las reglas básicas para reconocer
un buen diagrama de secuencia.
Entrevista PM CORNER 50
Christian Lemaître Mejores estimaciones para el
desarrollo de software
Conozcamos la técnica llamada Poker de Planeación.
3 al 5 de Septiembre 2008
CIISA 2008 1 al 3 de Octubre 2008
Hotel Hilton, Guadalajara, Jalisco Cutter Summit América Latina
Info: www.ciisa.gda.itesm.mx Hotel JW Marriott, Cd. de México
Info: www.cutter.com.mx
8 de Septiembre 2008
IDC 4ª Cumbre de Gobierno y Tecnología 9 al 11 de Octubre 2008
Centro Banamex, Cd. de México Creanimax 2008
Info: www.idc-eventos.com/cumbregobierno08.html Expo Guadalajara, Guadalajara, Jalisco
Info: www.creanimax.com
23 al 26 de Septiembre 2008
XXXII Reunión Nacional del CIAPEM 29 al 31 de Octubre 2008
Mundo Imperial, Acapulco, Guerrero Gartner Future of IT
Info: www.guerrero.gob.mx/ciapem2008 Centro Banamex, Cd. de México
Info: www.gartner.com/it/summits/mex30ls
La Dra. Hanna Oktaba es profesora de la UNAM a nivel licenciatura y posgrado. Sus áreas de interés son Ingeniería de Software, Tec-
nología Orientada a Objetos, Modelos de Procesos de Software y Mejora de Procesos. Actualmente es miembro de International Process
Research Group (IPRC). También es Directora Técnica del proyecto COMPETISOFT.
Logrando Metas
La Importancia de Identificar los Problemas
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.
Cientos de veces grupos de personas se unen a discutir la forma de so- Adicionalmente en el punto anterior existe otra complejidad, qué su-
lucionar algún problema, sólo para que la mayoría termine frustrado, cede si yo ya revisé todos los elementos para hacer más eficiente la
con la sensación de que no fue escuchado o que la decisión final no administración de los requerimientos y ya concluí que la única forma de
arreglará nada. Terminan discutiendo lo que cada quien cree que es la arreglar ese punto es a través de digitalizar el proceso. ¿No sería enton-
respuesta para lo que cada quien cree que es un problema y como es ces válido decir que el problema es digitalizar el proceso e iniciar desde
de imaginarse, los resultados no siempre son los más adecuados. ahí en lugar de volver a analizar esa parte? La respuesta es un definitivo
“Sí”. Pero las confusiones surgen cuando el grupo no concuerda con el
¿Cómo hacemos más eficiente una reunión de resolución de pro- problema o no entiende las causas que los llevaron a donde se encuen-
blemas? y ¿cómo aseguramos que aplicamos nuestros recursos al tran. Por lo tanto es imprescindible que al presentar la propuesta sea
problema adecuado? como la solución a un análisis previo y el grupo este de acuerdo con
esta premisa. De esta manera no puede haber malos entendidos.
¿Cuál es nuestro problema?
Según Wikipedia se define como problema: “Un obstáculo el cual El problema es la mitad de la solución
hace difícil lograr una meta, objetivo deseado o propósito. Se refiere En conclusión encontrarse en una reunión donde se discute un pro-
a una situación, condición o asunto que no se ha resuelto. En un sen- blema deben de considerarse los siguientes puntos.
tido amplio un problema existe cuando un individuo se da cuenta de 1. Al inicio de toda junta de resolución de problemas debe de quedar muy
una diferencia significativa entre lo que actualmente es y lo que es claro qué es lo que se pretende resolver y por qué se pretende resolver.
deseado”. La parte clave desde mi punto de vista en esta definición 2. Cada vez que escuchemos una frase planteada como un problema
es: una meta, objetivo o propósito. nos debemos de preguntar ¿por qué? Es importante hacer esta pre-
gunta por lo menos hasta llegar al punto que realmente represente
Dependiendo del contexto de la reunión, la frase: “el cliente no sabe una diferencia entre una situación real y una meta deseada.
lo que quiere y cambia mucho los requerimientos”, no es un problema, 3. Finalmente a la presentación de un problema siempre utiliza las
dado que normalmente no tenemos un objetivo sobre el número de palabras mágicas: ¿cuál es el problema?, ¿qué lo provoca?, ¿dón-
requerimientos máximos que puede tener un cliente, sólo lo sería si en de está?, ¿quién lo genera?, ¿cuándo surge?; estas preguntas darán
nuestro proceso establecemos un número máximo de requerimientos mucho mejor idea de lo que se quiere resolver.
que estamos dispuestos a aceptar y el cliente está de acuerdo con esa
definición o si el objetivo de la reunión es: ¿Cómo controlamos las po- Como responsable de cambiar a la organización a ser mejor, es su-
sibilidades que tiene el cliente de atrasar el proyecto?. Esta diferencia mamente importante tener claro el problema a resolver. De tomar
entre cual es el objetivo de la reunión y algunas veces el objetivo de una acción, normalmente los recursos son limitados y el avance es
cada individuo dentro de la reunión, es uno de los elementos que ha- mayor cuando está claro hacia donde se va.
cen verdaderamente complejo el definir claramente un problema. » Luis R. Cuellar
JProbe 8.0 permite a los usuarios de Eclipse rápidamente TBB 2.1 es software libre licenciado como GPLv2 y
identificar y resolver problemas de memoria y cobertura está disponible para plataformas Windows, Linux,
de código en sus aplicaciones Java, fomentando así el de- Solaris y Mac OS X. En el caso de los desarrolladores
sarrollo de aplicaciones de alta calidad. En los próximos de .NET, también pueden aprovechar el nuevo plug in
meses, Quest le agregará a este plug-in capacidades de de TBB para Visual Studio.
análisis de desempeño, para que los usuarios puedan in-
vestigar cuellos de botella en sus aplicaciones desde el
mismo ambiente de Eclipse.
Guillermo Morales colabora actualmente en InterSoftware, empresa dedicada a la capacitación especializada en desarrollo de software. Con un perfil técnico,
se ha desenvuelto en varias áreas del proceso de desarrollo de aplicaciones, desde la implementación, hasta la administración de proyectos. Es cofundador de la
comunidad de desarrollo en México www.developersdotnet.com en donde, frecuentemente se reúne con otros expertos de desarrollo de aplicaciones para la
difusión de tecnologías nuevas.
El color del fondo del plugin debe ser el in- ¡Perfecto! Has creado tu primera aplicación
dicado de acuerdo a los parámetros que di- Silverlight. En la siguiente entrega de esta
mos en nuestra función. Ahora crearemos el serie estaremos viendo como poder res-
contenido visual de nuestra aplicación. ponder a eventos del mouse y lanzar algu-
na animación.
Modificando el archivo XAML
Como ya vimos, nuestro archivo mixaml.xml
contiene el XAML para definir el contenido Conclusión
visual. Todo se pinta dentro de un lienzo El desarrollo con Silverlight está basa-
sobre el cual se puede pintar y posicionar do en una serie de archivos que con-
elementos. De esta manera, si modificamos tienen indicaciones para:
nuestro archivo mixaml.xaml para que que-
de como el listado 4, obtendremos un des- • Creación del Plugin de Silverlight (ar-
pliegue como el de la figura 2. chivo crearSilverlight.js)
<Ellipse
Canvas.Top=”130” Canvas.Left=”130” Fill=”Green” Referencias
Height=”100” Width=”100” /> [developersdotnet.com]
</Canvas>
Prácticamente todas las aplicaciones em- roles y permisos. Debe ser sencilla de usar, • Granularidad. La forma más básica de
presariales requieren contar con capacida- de forma que gente no técnica pueda reali- control de acceso consiste en restringir el
des de control de acceso. Es decir, restringir zar estas tareas. acceso a pantallas o menús. Sin embargo,
las operaciones que puede realizar un usua- frecuentemente se requiere de una mayor
rio. Uno de los esquemas más comunes es • Documentación. Un elemento comúnmente granularidad, como podría ser tener control
el control de acceso basado en roles, tam- olvidado, que sin embargo es necesario para a nivel de cada campo de información, o que
bién conocido como RBAC por sus siglas en tener un proceso de seguridad confiable y un listado contenga datos diferentes para
inglés (Role Based Access Control). que no dependa de personas específicas. usuarios dependiendo del rol que tengan, o
que un proceso de negocio tenga diferentes
Es muy común que en nuestras aplicaciones Es altamente recomendable que los detalles pasos dependiendo del perfil del usuario.
implementemos nosotros mismos el control para el control de acceso a aplicación no es-
de acceso como parte de su desarrollo. Sin tén definidos dentro del código de la aplica- Opciones en el Mercado
embargo, también existen productos listos ción misma, sino que se realicen a través de La mayoría de las organizaciones optan por
para usarse que resuelven este problema. un componente externo que interactúe con desarrollar su propia solución para control
En este artículo explicamos las principales un repositorio de permisos, tal como se in- de acceso. Sin embargo, difícilmente toman
características que debe cumplir un buen sis- dica aquí. Esto permite tener independencia en cuenta todos los aspectos que hemos
tema de control de acceso basado en roles. entre el código de la aplicación y el control de mencionado en este artículo y por lo tanto
acceso, lo cual es deseable ya que así no ne- terminan con soluciones que no resuelven
Funcionalidad cesitamos modificar la aplicación y lanzar una todas las necesidades y que además son di-
Un sistema RBAC debe proveer como míni- nueva versión cada que tengamos que hacer fíciles de mantener.
mo tres diferentes grupos de funcionalidad: un cambio en la política de accesos. Otra ven-
autenticación, autorización y auditoria. taja es que no necesitamos a personas que En el otro extremo se encuentran las plata-
entiendan el código de la aplicación, para po- formas empresariales para manejo de iden-
• Autenticación. Capacidad de validar la der hacer ajustes en el control de acceso. tidades y acceso. Gartner identifica como lí-
identidad de un usuario. Típicamente se deres en esta categoría a proveedores como
realiza por medio de nombres de usuario y Factores a considerar al diseñar IBM, CA, Oracle y Sun. Estas plataformas
contraseña. un sistema RBAC brindan poder y flexibilidad, pero a costa
Estos son algunos de los principales fac- de complejidad y en la mayoría de los casos
• Autorización. Es la definición de qué es lo tores a considerar al diseñar o escoger un requieren in
que un usuario específico puede hacer den- sistema RBAC.
tro de una aplicación, es decir a qué infor- Como un punto medio entre las soluciones
mación y operaciones tiene acceso. • Repositorio centralizado. Considera si es desarrolladas internamente, y las platafor-
que necesitas centralizar el manejo de permi- mas empresariales, tenemos herramientas
• Auditoría. Se refiere a la capacidad de man- sos de varias aplicaciones en un solo reposi- comerciales dirigidas a asegurar aplica-
tener un registro de las transacciones sensi- torio. Incluso podrías requerir que los roles se ciones individuales, de forma sencilla y no
tivas de una aplicación. La auditoria permite puedan compartir entre varias aplicaciones. intrusiva. Entre las opciones más notables
saber quién hizo qué, cuando lo hizo, y quién de este segmento está Visual Guard, de la
le dio los permisos necesarios a ese usuario. • Single sign-on. Single sign-on se refiere a empresa francesa Novalys. Esta herramienta
la capacidad de que los usuarios se auten- ofrece un muy buen balance entre el poder
Componentes tiquen una sola vez al inicio de una sesión de sus capacidades, y su facilidad de imple-
• Repositorio. Se requiere de un lugar se- y posteriormente puedan utilizar varias apli- mentación. La limitante es que solo está dis-
guro para almacenar los usuarios, contrase- caciones sin necesidad de estarse autenti- ponible para plataformas .Net y PowerBuil-
ñas, roles y permisos. cando para cada una. der, pero si desarrollas aplicaciones sobre
estas tecnologías, bien vale la pena echarle
• Interfaz entre aplicación y repositorio. • Soporte a diversas tecnologías. La mayo- un vistazo.
Este es el componente intermedio que sirve ría de los ambientes corporativos cuentan
de interfaz entre una aplicación y el reposi- con múltiples plataformas aplicativas, así Referencias:
torio de seguridad. como tipos de cliente (desktop, web, móvil). [ Gartner Magic Quadrant for Web Access
Desarrolla o escoge un sistema RBAC que Management, 2H07 ]
• Consola de administración. La consola que funcione adecuadamente con las diferentes [ Novalys Whitepaper: Role Based Access
permite administrar las cuentas de usuario, plataformas tecnológicas que se utilizan en Control for .NET applications ]
tu organización. [ visual-guard.com ]
ee o
îîttrr
xic
Mé
maa
en
ión
eem
tac
pu
om
nn LL
aC
el
sd
ttiiaa
cia
en
Ci
rriiss
as
el
rd
do
CChh
da
fun
ru
Gu
e
e ttooss dddeeelllaa In
RR etos s e están
R anos
qu e
e Bas
e
l o s Mexic conomía d
n
u i d a do co a c í a una E
¡C n do H
n i z a
Orga
n o l ó gica!
Tec
Estos resultados pueden ser por ejemplo, el lograr Ahora en términos de industria, veamos que en nues-
que alguna empresa mexicana sea considerada por tro país hay avances destacados en materia de calidad
primera vez como un proveedor para contratos ma- –definitivamente un bloque básico para el triunfo- y
yores a los mil millones de dólares, tal como los más recientemente en materia de especialización que ha
de 20 que han firmado en los últimos 3 años empresas impulsado México con programas como MoProsoft
como: Cognizant, HCL Technologies, Infosys, Patni, y ahora Mexico First, ambos parte de la heróica Se-
Satyam, Tata Consultancy Services (TCS), Wipro, cretaría de Economía.
CPM, EPAM, Luxoft, y por supuesto las empresas de
costumbre como son IBM, EDS, Perot Systems, CSC Ahora bien, además del fondo Prosoft y las diferentes
y Accenture entre otras. Un contrato de ese tamaño estrategias que ha lanzado, existen apoyos menos
es capaz de dar trabajo a 2,000 personas durante promocionados, también en Secretará de Economía
cinco años, por ello lo estratégico de los mismos. existen los fondos PyMes, recursos que quisieran mu-
chos países del mundo ya que los famosos grants o
Un paso será saltear los retos que se enfrentan en prestamos a fondo perdido son una cosa del pasado.
nuestra industria, que han impedido que las em-
presas mexicanas crezcan más allá de los 5,000 em- Después tendríamos que preguntarnos si la tarea
pleados, ya sea por dificultad de localizar suficiente esta hecha en cuanto a los medios para llegar hacia
talento o por la curva de aprendizaje ante de pro- los mercados globales, para estos también están las
moción y capitalización de las oportunidades en los bases sentadas, existen programas de promoción de
mercados globales. Una característica de nuestro la imagen, como MexicoIT, que claramente debe me-
país es también la disparidad de demanda y oferta jorar y cumplir las expectativas que se tienen del mis-
entre las regiones y estados, esto hablando del mer- mo y programas de aceleración hacia Estados Unidos
cado interno que es la principal fuente de ingresos como TechBa.
de nuestro sector.
Vale la pena mencionar las acciones orquestadas du-
Por ejemplo, ante demanda estadounidense, una rante ya más de 4 años por la Secretaría de Economía,
de las estrategias que han seguido empresas mexi- en particular por el Prosoft, donde se distingue el es-
canas es la de proveer a través de sub-contratación. fuerzo contínuo de Rocío Ruíz, Sergio Carrera, Ivette
Una estrategia razonable dados nuestros niveles de García y muchas otras personas que han dejado su
penetración a los mercados globales y de competi- huella en los esfuerzos de ese grupo como Jesús Orta
tividad en aspectos no-tecnológicos. y muchas otras personas en la República Mexicana.
.BZPS
.nYJDP)BDJBPSHBOJ[BDJPOFT5*EFDMBTFNVOEJBM /FDFTJEBE » Los pasos para integrar las
capacidades de clase mundial
1SgDUJDBTZ $POPDFSFM "QSPWFDIBS $BQJUBMJ[BS
El primer paso es realizar un diagnóstico de
PQPSUVOJEBEFT NFSDBEP
FMFHJS WFOUBKBT 'VODJPOBSFOFM SFDVSTPTZ su empresa que le permita medir sus com-
FOUPSOP
EFOFHPDJP FMDBNJOP EJTQPOJCMFT PQPSUVOJEBEFT petencias a nivel persona, departamento
ÇSFBTEFFOGPRVFEF.nYJDP
28
22 AGO-OCT 2008 www.sg.com.mx
presentación ante ejecutivos de alto nivel y Esto en cuanto a las capacidades de co-
echar todo por la borda, más allá de la ima- municación y usos y costumbres del mer-
gen de su empresa también la de la industria cado meta, las capacidades estratégicas Conclusión orno global para
nacional, por ello debemos creer en el entre- de una empresa incluyen el saber elegir La oportunidad en el ent
s continúa presen-
namiento, la preparación y la práctica, y no los mercados de oportunidad, por ejem- las empresas mexicana
bargo difícilmente
lo hacemos. plo, abrir una oficina en Houston, en lugar te, y es enorme, sin em
s, el mu ndo se esta trans-
nos esperará má
de Silicon Valley o el precio en el que debe as de base tecno-
formando hacia economí
Nuestros ejecutivos deben aprender, y prac- colocar sus servicios. Más de una empresa ún ico país compi-
ticar sus habilidades mediáticas, desde las mexicana realiza sus primeros esfuerzos lógica y México no es el
r su pe rfil.
formas de presentarse en una reunión, hasta sin conocer cuales son los mayores merca- tiendo por cambia
la ejecución de presentaciones ejecutivas. En dos para su oferta comercial, solo porque, logías de informa-
Las empresas de tecno
estos tres años en promoción de la industria tal y como el inmigrante ilegal, conocemos de sus líderes, tal vez
ción son un reflejo
mexicana, solamente he visto cuatro presen- a alguien en tal o cual ciudad. dad es y for mación orienta-
por las capaci
tadores aptos de más de 30 presentaciones ctas, no importa,
das hacia las ciencias exa
y por otro lado he presenciado ejecutivos Un error común de la empresa mexicana es qu e la receta para
lo que es relevante
mexicanos echar por la borda esfuerzos de que incursiona hacia mercados globales es mpos no es sufi-
triunfar en los viejos tie
meses para ponerlos a ellos ante un foro de el ignorar los diferentes recursos que existen y el futuro.
ciente para el presente
clase mundial. Lo más lamentable es que tanto en México como en el caso de Estados
esto es fácil de arreglar. Unidos especialmente diseñados para ayu- egar capacidades
Los retos requieren el agr
darles a triunfar y vender más. Igual de co- ras empresas, habi-
que completarán a nuest
A continuación vienen áreas de usos y cos- mún y grave es la carencia de presupuestos y rategia de merca-
lidades de planeación, est
tumbres durante la promoción de servicios, el compromiso de permanencia necesario. organizac iones y ejecuti-
dos, comunicación
tumbres, estamos
son actitudes sencillas para los mexicanos con va, y dominio de usos y cos
evos bloques bási-
nuestra cercanía cultural y nuestra distinguida Pocas empresas diseñan un plan de entra- obligados a incorporar nu
aptitud de calidad humana pronto podemos da al mercado estadounidense coordinado, nuest ras empresas.
cos para el triunfo en
adoptarlas y dominarlas. Por ejemplo manejo fondeando, sustentado y que conozca y ca-
las empresas glo-
del tiempo durante las reuniones, tiempos de pitalice los apoyos ya mencionados. Pocas El premio, es sumarse a
wt h tigers” por ello
respuesta para regresar con una propuesta, empresas siguen los pasos para establecerse bales llamadas “fast gro
documentación de las propuestas. En lo posi- como entidades legales en el mercado meta y al - ¿Cu ál es el nivel de fie-
una pregunta fin
organización?
tivo nuestra manera de formar lazos persona- mucho menos aprovechar las bondades pro- reza competitiva de su
les y de calidez son ventajas refrescantes para pias para las nuevas empresas.
la cultura de negocios Estadounidense.
Luis García, es Director de Competive Latinoamérica. Trabajó para empresas como IDC y Softtek, y ha dirigido proyectos de estrategia a nivel nacional, ha
sido orador en eventos en México, Colombia, Brasil y en United Nations Plaza, presentando el caso de México como Nación. Exprtador de Tecnologías de
Información. Puede contactarlo en lgarcia@competive.com
s aass M
M
M eeexxxiic Ale ja n d r
e s s
ppprrreesa a M eeedddiid a
iddaa
LLaasssEEEm
mm aarree aaa lall a MM
Lea tww re
ddeeSSSooffttwa
o f
t i v idad
d p
ome t i
e l o d eC
od
Un M
30
24 AGO-OCT 2008 www.sg.com.mx
En las últimas décadas, la industria de desarrollo de software a la
medida en el mercado nacional y en el internacional, se ha movido
dentro de un esquema perverso de precios bajos en el que las em-
presas con menor poder de negociación tienden a ser las más casti-
gadas, hasta el grado de desaparecer. Es por ello que como parte del Programa de Doctorado en Ciencias
de la Administración de la Facultad de Contaduría de la UNAM, se
Los retos que enfrentan los empresarios mexicanos en esta industria realizó el proyecto de investigación “Las fuentes de competitividad
son variados y atienden a diferentes factores, entre otros: de las empresas mexicanas de desarrollo de software a la medida”,
con el objetivo de encontrar todos aquellos elementos que pueden
• El crecimiento de soluciones estandarizadas o empaquetadas cuyos incrementar la competitividad de estas empresas con las capacida-
principales iconos son las empresas transnacionales. des propias del entorno mexicano.
• Los altos costos que implica el desarrollo de soluciones de software Así, para estructurar el modelo de calidad, reunimos a más de 25
para industrias o negocios en los que hay poca o nula experiencia. expertos, entre empresarios, consultores de empresa, académicos,
representantes del sector gobierno y clientes. La estrategia de inves-
• La escasez de recursos humanos especializados o con un perfil mul- tigación se conformó de técnicas de entrevistas, aplicación de cues-
ticultural, para el caso de las empresas exportadoras. tionarios y grupos de discusión. Además, los resultados obtenidos se
presentaron en distintos foros nacionales e internacionales en donde
Los criterios para el acceso a créditos tanto en la banca comercial como fueron evaluados por expertos de diversos países.
en la banca de desarrollo, al no contar con activos tangibles que repre-
senten una garantía ya que su principal activo es capital intelectual Después de obtener el modelo final y como resultado de todo el
proceso de investigación, fue posible diseñar una herramienta de
Por otro lado, según el Sector Competitiveness Analysis of the diagnóstico y un índice de competitividad que permitiría visualizar
Software and Computer Services Industry realizado por el Departa- el nivel de apego de las empresas al modelo mismo. La herramienta
mento de Industria y Comercio de Gran Bretaña (2004), el 25.1% del de diagnóstico fue probada a nivel exploratorio con cinco empresas
mercado mundial se encuentra repartido entre doce grandes firmas mexicanas: una de las más exitosas del país y otras cuatro con menor
estadounidenses que han extendido sus operaciones y oficinas en nivel de desarrollo.
diversos países de manera estratégica, en donde el capital humano
es abundante y de bajo costo, la infraestructura y normativa en el uso
de telecomunicaciones se adecúa a sus procesos de servicio, existe » Empresa competidora vs. empresa competitiva
un mercado en donde la demanda es atractiva o las políticas públicas Durante el proceso de investigación identificamos que era necesario defi-
para la atracción de inversión extranjera son flexibles. nir lo que significa una empresa competitiva y los elementos que la hacen
diferente de una empresa competidora, ya que ambos conceptos son bá-
En la actualidad, Prosoft se ha ocupado de facilitar el camino para com- sicos para entender la competitividad de las empresas del estudio.
petir a partir de la intensa participación del sector empresarial. Sin em-
bargo, entre las tareas pendientes se encontraba la identificación de Entonces, después de recopilar información de otras investigaciones y
las fuentes de competitividad propias de las empresas mexicanas de artículos y contando con la colaboración del grupo de expertos que par-
desarrollo de software a la medida que permitieran visualizar las bre- ticiparon en este proyecto, obtuvimos los siguientes elementos que de-
chas que existen entre las empresas más exitosas y las que no lo son. finen a una empresa mexicana de desarrollo de software competitiva:
· No maneja la diferenciación
· Basa su oferta en costos y precios bajos · Es incapaz de identificar áreas de oportunidad y corregirlas
· No cuenta con las características enunciadas para una · Establece su éxito solo con el número de contratos ganados
empresa competitiva
· Compite y no crece Una vez definidos estos conceptos, entonces nos enfocamos en iden-
· Es una empresa más tificar todos los elementos que componen la competitividad de este
· No tiene plan de negocio tipo de empresas hasta llegar a conformar el modelo que presenta-
· No tiene estrategia de calidad mos a continuación.
· No tiene estrategia de crecimiento
· Su único interés es vender » El modelo
· Quizá no permanezca mucho tiempo en el mercado El modelo de competitividad se presenta en la figura 1, el cual que-
· No tiene calidad dó integrado por el sector externo que está conformado por grupos
· Sobre vende, esto es que realiza ventas de servicios que exceden de influencia en la toma de decisiones de las empresas y el sector
su capacidad instalada interno, representado por todas las fuentes de competitividad que
· Sus clientes no están satisfechos con sus servicios puede desarrollar la empresa con sus propios recursos. Los grupos
· No tiene control de sus operaciones o su administración con un de influencia tienen relación directa con la definición de la estrategia
pobre seguimiento de resultados corporativa y colaboran en el diseño de estrategias, políticas públicas
32
26 AGO-OCT 2008 www.sg.com.mx
$MJFOUFT 1SPWFFEPSFT
4FDUPSFYUFSOP
(PCJFSOP $PNQFUJEPSFT
&TUSBUFHJB$PSQPSBUJWB 1SPEVDDJwOEF
4PGUXBSF
.FSDBEPUFDOJB
7FOUBTZ4FSWJDJPB$MJFOUFT
"ENJOJTUSBDJwOZ0SHBOJ[BDJwO$PSQPSBUJWB
1SPZFDUPT
*%*OHFOJFSrBZ%JTFvP
&TUSBUFHJBEF/FHPDJPT
(FTUJwO5FDOPMwHJDB
3FDVSTPT)VNBOPT
"ERVJTJDJPOFT
'JOBO[BT
'PSUBMF[BT
$BMJEBEFOFM $PNQFUJUJWBT
TFSWJDJP
$BMJEBEEFMPT
QSPEVDUPT
Con base en el perfil de los clientes locales La estrategia corporativa comprende la es-
*OGSBFTUSVDUVSB y extranjeros se diseña el portafolio de ser- trategia de negocios, lo relacionado con los
4JTUFNBTJOUFSOPTBVUPNBUJ[BEPTZBENwOEFMBJOGPSNBDJwO vicios y los niveles de exigencia para su ne- recursos humanos, la administración y la
gociación; la satisfacción de estos clientes organización corporativa, la estrategia de
'VFOUFTEF$PNQFUJUJWJEBE
representa el reto permanente de cada una mercadotecnia, ventas y servicio a clientes,
3FMBDJwOEF*OGMVFODJB $PNQPOFOUFTEFM.PEFMP de las áreas operativas de la organización. investigación y desarrollo, ingeniería y dise-
Los competidores estimulan el ritmo de creci- ño, además de la gestión tecnológica, adqui-
Figura 1. Modelo de competitividad miento de la empresa y la renovación de nue- siciones y finanzas.
vas formas de trabajo, nuevos productos y
y la conformación de la visión empresarial, lo servicios y nuevas estrategias para sobresalir La infraestructura está definida por la arqui-
que se explica de la siguiente manera: en la competencia nacional e internacional. tectura tecnológica interna de las empresas
que permite la administración y el manejo de
El gobierno participa en el desarrollo de las Los proveedores por su parte, abren oportu- la información operativa de manera automati-
empresas a través de lineamientos de polí- nidades de financiamiento y de alianzas para zada y sistemática para la toma de decisiones.
tica industrial, fiscal, económica, comercial, complementar competencias e infraestructura;
etcétera, que determinan esquemas de apo- en este grupo participan las instituciones de La producción de software se conforma por
yo en las diferentes etapas de madurez de educación superior, la industria de la electrónica, las funciones relacionadas con la ejecución
las organizaciones o bien, si son ineficientes, telecomunicaciones, consumibles, entre otras. de proyectos y las acciones y elementos que
implican un esfuerzo mayor de la empresa permiten evaluar la calidad del servicio y el
por mantenerse en la competencia. Incluso El sector interno quedó estructurado en un producto. La producción de software basa
los gobiernos extranjeros juegan un papel primer nivel por la estrategia corporativa, la in- su operación no solo en la elaboración de
importante en la definición de barreras para fraestructura con la que cuenta para la admi- programas para computadoras, sino que su
la entrada a sus mercados o bien, en la de- nistración de su información y lo relacionado desempeño depende en gran medida de la
finición de esquemas para el intercambio directamente con la producción de software; armonía de todos los elementos del sector
tecnológico o la búsqueda de bajos costos al siguiente nivel le denominamos subestrate- interno de la empresa.
provenientes de otras naciones. gias y al tercero, fuentes de competitividad
Alejandra Herrara, es Maestra y Doctora en Administración por la Universidad Nacional Autónoma de México y cursó la Maestría en Economía Internacional por
el Instituto Politécnico Nacional. Es consultora e investigadora en temas de gestión tecnológica y de negocios. Ha sido ponente en diversos foros nacionales
e internacionales relacionados con nuevas tecnologías. Se desempeña como académica en la Maestría en Negocios Internacionales de la misma Universidad
en el programa sobre competitividad e innovación tecnológica.
nn ll
aaal T
TTS
SS P
N
N a
a cc
ciio
ioo n
ivvaa a
IInniicicciiaiaatttiiva N z
In adurela M
oa
El Camin competitivo que permita acelerar la incor-
poración del uso de TSP/PSP en México.
Méxi o F I R
no
Clasificando el talento mexica
Business Service
“Multiswitching”
Management
#10 *5
Rafael Bernal, se dedica desde 1997 a promover una industria mexicana de software competitiva. Su experiencia de 35 años en software incluye CIO en
Procter & Gamble México, fundador de Heurística en 1982, entrepreneur en Silicon Valley y actualmente Presidente de Prosoftware, A. C., desarrolladora
del clúster de empresas de software del Distrito Federal. Rafael considera que la riqueza de un país está en su gente.
» Parques tecnológicos
Los parques tecnológicos, en particular los
de software, pueden permitir que varias em-
presas pequeñas se conozcan y promover
el que existan motivadores para que logren
juntarse en una empresa mayor que tenga
la capacidad de atraer clientes e inversionis-
tas. Una empresa de veinte personas apenas
podrá llevar alguna metodología de calidad
y no logrará tomar clientes interesantes ni
mantener al día a su gente o contratar a la
gente más capaz a causa su tamaño. Pero
si se juntan varias empresas, logrando unos
200 – 250 empleados, esta nueva empresa
ya estará en capacidad de buscar mercados
más interesantes, de tener capacidad para
dar el entrenamiento continuo indispensa-
ble a todos sus empleados y de crecer. Todo
esto además la puede hacer interesante a los
ojos de inversionistas que puedan aportar el
capital necesario para un crecimiento mucho
más rápido. Recordemos que la demanda
por servicios de software es tal que toda la
industria India sigue creciendo a más del
20% anual y su tasa promedio anual durante
los últimos 20 años es cercana al 30%.
Ante esto, lo primero que nos preguntamos es cuántos egresados estamos generan-
do. De acuerdo con datos del Anuario Prosoft 2007, anualmente se gradúan 60 mil
profesionistas de carreras relacionadas a TI. Esa es una cantidad alentadora, el proble-
ma está en que el porcentaje de graduados que cuenta con los conocimientos necesa-
rios para desempeñarse profesionalmente como desarrollador de software es de entre
un 10% y 15%. Eso significa que en el mejor de los casos estamos generando 10 mil
profesionistas de software al año, lo cual no es suficiente.
Un factor que agudiza el problema es que la mayoría de las empresas de nuestra indus-
tria son pequeñas y no tienen capacidad para desarrollar personal, ellos necesitan gente
que pueda rendir inmediatamente. Y por otro lado, aquellas que tienen capacidad para
desarrollar a la gente no están muy dispuestas a hacerlo por el alto porcentaje de
rotación de personal (pirateo).
Pocas cosas son más difíciles que enfrentar- Superar el vacío fuerte y creo que me hubiera hecho perder
se a dificultades de flujo de efectivo de corto Ahora, varios años después, no puedo más más tiempo y dedicarle energía a persecu-
plazo en la operación del negocio. Rápida- que sentirme afortunado de haber superado ciones sin sentido.
mente nuestras líneas de financiamiento ese momento extraordinariamente doloroso
estaban saturadas y nos enfrentamos a pro- y difícil. Hay una serie de elementos que En la medida de lo posible, busque enfren-
blemas para solventar los costos de opera- fueron clave para poder salir adelante. tar la situación con la máxima franqueza
ción más indispensables como la nómina de posible con los distintos afectados por el
nuestro personal. Simultáneamente la “luna Sin duda lo más importante fue el que, aún cierre de la empresa. Había que darle malas
de miel” con los inversionistas instituciona- durante el punto más álgido, conté con el noticias a muchas personas. A los colabo-
les terminaba y nos enfrascamos en discu- apoyo de varias personas que siguieron radores, socios, acreedores, clientes y pro-
siones sobre cómo solucionar el problema creyendo en mí. Esta confianza fue el sal- veedores. Todos se vieron afectados negati-
sin llegar a acuerdos a la velocidad que la vavidas que en ese momento me permitió vamente por los errores que cometimos. En
situación demandaba. Los clientes se per- no ahogarme. Puedo mencionar a Mauricio la gran mayoría de los casos, el trato franco
cataron de nuestros problemas y, natural- Mingramm, mi actual socio en emlink, a con ellos evitó problemas muchos mayores.
mente, perdieron la confianza en nosotros Marcos Achar, Director General de Comex Los casos donde no me fue posible hacerlo
como proveedores lo que aceleró nuestra (que continúa siendo nuestro cliente) , a mi o no dediqué el tiempo necesario fueron los
caída. Provocando que los inversionistas tío Raúl Obregón, y a un compacto equipo que se complicaron después convirtiéndo-
institucionales perdieran la posibilidad de de colaboradores que continuaron creyendo se, por ejemplo, en serios dolores de cabeza
creer en mí y se negaran a proporcionar en mí a pesar de todos los errores que co- legales. Sin embargo, creo que no es posi-
fondos adicionales para “darle la vuelta” al metí. A todos ellos les estaré agradecido el ble satisfacer a todos los afectados. Hay que
problema. Aún cuando nuestros colabora- resto de mi vida por su apoyo y confianza. entender esto y prepararse para asumir las
dores hicieron un importante esfuerzo por consecuencias.
seguir operando, aun ante la falta de pago, Durante este trance descubrí el significado
naturalmente esto nos llevó a un desgaste de la fe. No soy un hombre religioso. Sin em- 10 lecciones aprendidas
finalmente insalvable. bargo, jamás había estado en una situación Las siguientes lecciones de aprendizaje per-
donde tuviera que simplemente creer que sonal no pretenden ser una receta general
Para fines del 2001, la única opción que me iba a salir adelante sin tener la más remota para quien se encuentre en una situación
quedaba para evitar el cierre inmediato de idea de cómo lo lograría ni ningún funda- similar. No son resultado de un amplio es-
la empresa era aceptar mi remoción como mento lógico para creer que fuera posible. tudio de casos. Simplemente son un breve
Director General para tomar las funciones de Creer genuinamente en algo sin ningún fun- resumen de lo más significativo de lo vivido
ventas. Fue muy poco y demasiado tarde. damento racional es para mí el significado personalmente a lo largo de la experiencia
más claro de la fe. relatada y de la posterior búsqueda de cons-
Consideraba, y sigo considerando, a mis truir una nueva empresa, emLink.
principales colaboradores como mis amigos. Fue necesario procesar emocionalmente el
El afecto hacia y desde ellos dificultó enor- fracaso y asumirlo. Esto no me fue posible 1. La gente vale la pena
memente contar con la claridad suficiente hacerlo rápidamente. Se requiere un espa- Mencioné que el afecto con y desde mis cola-
para tomar las decisiones adecuadas. cio de tiempo para poder procesar el duelo. boradores dificultó la toma de algunas deci-
Sin temor a exagerar, me parece que el dolor siones importantes. Sin embargo, no me ima-
En cuestión de meses pasé de una posición de ese momento haya sido similar al de la gino ni me interesa la construcción de una
de orgullo desmedido al otro extremo emo- pérdida de un ser querido. No es posible sa- relación de trabajo sin afecto. Estoy absolu-
cional. Me sentí la persona más incompeten- lir adelante de un dolor de este tipo sin darle tamente convencido de que la construcción
te y estúpida del mundo. Las malas noticias oportunidad de seguir su curso. de un afecto es indispensable para lograr una
adicionales, por pequeñas que fueran, me motivación de conjunto y un liderazgo efecti-
provocaban crisis de pánico. Resultaba casi Necesité aprender a mirar siempre hacia el vo. Así que, en lugar de renunciar a este me
imposible levantarse a trabajar todos los días futuro y rápidamente dar vuelta a las pági- parece que lo mejor es incorporarlo dentro de
y la magnitud del problema me sobrepasó nas del fracaso. La tentación del enojo y de una ética de trabajo y claridad en la defini-
tanto personal como profesionalmente. aferrarse al éxito anteriormente logrado era ción y evaluación de objetivos profesionales.
Esto permite a las dos partes involucradas en ciplina en este aspecto. Es necesaria para 8. 1% inspiración, 99% ejecución
una relación de trabajo contar con un marco el bien de todas las entidades relacionadas El mundo está lleno de grandes ideas.
de evaluación objetivo sobre los resultados con una empresa: socios, colaboradores, ¿Cuánta gente no conocemos que celebra
del trabajo conjunto. clientes, proveedores y acreedores. Una em- que “se le ocurrió primero” o “ya lo veía
presa que no es rentable acaba fallando con venir”? La diferencia entre un espectador y
2.Ten un sueño la comunidad con que se relaciona. un protagonista en mi opinión, no son las
Después del fracaso vivido, pasé una tem- ideas, es la capacidad de ejecutar sobre sus
porada abandonando mis sueños, enfocado 5. Que mantener el foco sea la doctrina ideas y llevarlas al resultado final deseado.
exclusivamente a la rentabilidad de corto Siempre que emprendamos una nueva ini- Los planes en nuestra mente siempre serán
plazo y la estabilidad del nuevo negocio ciativa hay que evaluar con honestidad si posibles. La realidad es otra cosa.
para evitar a toda costa una repetición de la realmente tendremos la capacidad de ejecu-
experiencia anterior. Ahora me parece que tarla y llevarla a término. Es fácil caer en la 9. Para emprender hay que ser un poco
sin un sueño no es posible construir una mi- tentación de hacer más de lo que realmente bipolar
sión efectiva, atraer y retener a los colabo- tenemos capacidad de ejecutar. Una cosa a Es necesario mantener un optimismo (casi)
radores talentosos que cualquier empresa la vez. O, cuando mucho, tantas como poda- irracional sobre el futuro. Mantener el entu-
que desee ser exitosa requiere. mos ejecutar efectivamente. siasmo y la convicción de que el sueño que
hemos trazado como objetivo es en verdad
3. Busca socios que compartan tus valores 6. Ten paciencia alcanzable en todo momento. Transmitir ese
Los conflictos que con mayor facilidad pue- La velocidad de ejecución siempre es menor entusiasmo a todo nuestro entorno. Al mis-
den destruir a una empresa, son entre los a la velocidad de la imaginación. Es nece- mo tiempo, se necesita un pesimismo (un
socios de esta. Entrar en una sociedad de sario tener paciencia para ver que aquello tanto) irracional para la toma de decisiones
negocios implica evaluar claramente nues- que imaginamos se convierta en realidad. financieras. ¿Realmente es necesario este
tro entendimiento. Vale la pena incorporar Hay que ser enconadamente persistentes y gasto?, ¿podríamos vivir sin él?, ¿podemos
desde un inicio la posibilidad de la sepa- entender que cualquier proceso de cambio ejecutar esta inversión? Planea para el me-
ración. Como en un matrimonio dónde la que involucre la participación de un equipo jor escenario, ejecuta previendo siempre el
posibilidad real del divorcio nos motiva a de trabajo llevará tiempo. Los sueños si son peor escenario. Recuerda que siempre se
construir la relación todos los días. Un socio alcanzables, más no sin esfuerzo, tenacidad puede poner peor.
debe compartir valores e idealmente com- y paciencia.
plementarnos en habilidades, capacidades 10. No se te olvide por qué estás aquí
y puntos de vista. Debemos respetar a cual- 7. Sin riesgo no hay (casi) crecimiento Más allá de cualquier consejo práctico de
quier potencial socio de tal manera que sus Toda empresa implica un riesgo. Sin impor- negocios, evalúa contantemente por qué
aportaciones sean genuinamente efectivas tar cuantas lecciones creamos haber apren- haces lo que haces. ¿Contribuye el ser em-
para el desarrollo del negocio. dido, si queremos crecer y alcanzar nuestro presario a tu felicidad? Es fácil perderse en
sueño como organización, habremos de el día a día y un día darse cuenta de que el
4. Se un Nazi con tu disciplina financiera asumir riesgos que nos pueden llevar al sueño se ha ido o de que la rutina nos ha
Para las empresas generar utilidades es fracaso. Es inevitable esta relación. Sin em- absorbido. De vez en cuando vale la pena
equivalente a comer para el ser humano. Si bargo, podemos buscar calcular el riesgo de hacer una pausa en el camino para evaluar
un negocio no es rentable tendremos asegu- tal forma que nos podamos permitir siempre por qué somos empresarios. Cada uno ten-
rada la imposibilidad de alcanzar los sueños la posibilidad de fallar en alguna iniciativa drá que encontrar su propia respuesta.
y la visión que hemos trazado para este. Por individual sin que esto conduzca al fracaso
lo tanto, vale la pena ejercer una férrea dis- total de la empresa.
Héctor Obregón (http://msdnfan.blogspot.com) es Director General de emLink desde 2002 (www.emlink.com.mx), Microsoft MSDN Regional Director y
Microsoft MVP para Windows Embedded. De 1996 a 2002 fue Director General de Air-Go Technologies (antes InterSoftware).
Las revisiones entre colegas (peer reviews) están descritas dentro Roles participantes
del proceso de verificación de CMMI, y tienen como objetivo ase- Estos son los roles que típicamente participan en la revisión:
gurar que los productos de trabajo seleccionados cumplan con los • Moderador. Es quien se asegura que se envíen los productos a los
requerimientos especificados. Estas revisiones son un mecanismo involucrados, que la revisión se conduzca correctamente, se revise
de verificación eficaz para prevenir y eliminar defectos, además de al producto y no a la persona, se compartan las observaciones y se
identificar oportunidades de mejora. hagan las modificaciones pertinentes.
• Autor. Elabora o desarrolla el producto que se revisará. Durante
Estas revisiones típicamente son aplicadas por compañeros de traba- las revisiones provee las explicaciones necesarias sobre el producto
jo, muchas veces integrantes del proyecto que tienen un interés en el en revisión.
artefacto bajo revisión. Los revisores son conocidos como colegas, ya • Revisores. Son los expertos o colegas que se preparan para la revisión,
que tienen roles o actividades similares a los del autor del producto. encuentran defectos y retroalimentan acerca de las observaciones.
• Tomador de notas. Es quien completa las formas con los hallazgos
La aplicación de las revisiones entre colegas tiene diversos beneficios: encontrados, observaciones realizadas, registra los tiempos y clasi-
• Promueve la generación de productos completos y correctos. fica los hallazgos.
• Ayuda a establecer un estándar de excelencia. • Lector. Participa realizando lecturas relacionadas al producto revi-
• Promueve el seguimiento del estilo y reglas de construcción en los sado, en caso de ser requerido.
proyectos.
• Provee múltiples vistas en las revisiones. Es importante hacer notar que no es requerida una persona para
• Permite obtener mediciones para mejorar el proceso y administrar ejecutar cada rol, por el contrario una persona puede realizar dos
la calidad de los productos. o más roles de acuerdo a las necesidades, cuidando que nadie sea
juez y parte para asegurar la objetividad.
Algunas definiciones
Formalmente, una revisión es una técnica para encontrar y eliminar Durante la revisión es importante enfocar las observaciones solo ha-
defectos de productos de trabajo, tan temprano como sea posible y cia el producto y no al autor, así como asegurarse que se levanten
de manera efectiva. defectos y no soluciones, pues las últimas pueden tomar más tiem-
po del esperado y afectar en el lapso de las revisiones.
Un defecto es:
• Cualquier ocurrencia en un producto de trabajo que determine que Tipos de revisiones
esté incompleto, incorrecto o con faltantes. Existe variedad en los tipos de revisiones, cada uno con característi-
• Cuando no se satisface un requerimiento. cas diferentes y con diferentes propósitos. Algunos de estos tipos se
• Una inconsistencia o violación a estándares. describen a continuación:
Se recomienda el uso de listas de verificación, o checklists, que fun- Inspecciones de software
gen como base para la revisión de artefactos. • Es la forma de revisión más estricta.
• Revisiones a profundidad.
Un checklist es: • Criterio de salida para cada fase.
• Una lista de elementos en forma de preguntas y/o características. • Dirigida por el líder revisor y asistida por participantes.
• Resume los problemas técnicos potenciales para una revisión. • Se obtienen métricas (Producto y proceso).
• Son utilizados durante la etapa de preparación y de ejecución de
revisiones. Walkthroughs
• Medio para llegar a consenso.
Hay diferentes tipos de checklists o bien se pueden revisar diferen- • Útiles para aprendizaje informal.
tes características como: que el producto esté correcto o completo, • Dirigidas por el autor.
que siga reglas de estilo, construcción, etcétera. • No hay métricas.
Edith Alhelí Martínez Mata es Consultor especializado en Aseguramiento de la Calidad, en Avantare Consultores. Sus áreas de especialidad son las Inspecciones
de Software y Procesos de Soporte basados en CMMI y SW-CMM. Edith es Licenciada en Informática por el Instituto Tecnológico de Aguascalientes (ITA), y ha
participado como consultora en varios proyectos para la implementación de CMMI así como en evaluaciones SCAMPI.
El presente artículo es el cuarto y último de la serie que tiene la in- Ahora bien, los constructores de Rails han diseñado el framework de
tensión de introducir al lector los principales elementos del lenguaje tal manera que los métodos que se definan dentro de esta clase coin-
de programación Ruby y del framework Ruby on Rails. En esta oca- cidan con las acciones que se generen en las vistas, es decir, si se de-
sión se tratarán los temas del controlador y las vistas. sea que se realice un evento específico dentro de las vistas, el código
que representa ese evento podrá estar contenido dentro del nombre
El Controlador del método o función que definamos dentro del controlador.
Contrario a lo que podría indicar el nombre del patrón: MVC, en Rails
se aconseja desarrollar primero el controlador antes que la vista. Por ejemplo, supongamos que dentro la vista new.rhtml invocamos al
Para lograr esto, Rails echa mano de una clase especial llamada evento agregrar un nuevo Usuario esto, mediante la liga
ApplicationController, a través de los siguientes pasos: <%= link_to “Agregar un nuevo Usuario”, {:action => ‘new’}%>
a) generar una clase derivada de ApplicationController y Entonces si deseáramos que al activar esta liga se ejecute un código
b) manipular con esta clase, a nuestra clase que representa el mode- determinado X, tendremos que definirlo dentro un método o función
lo para lograr el acceso a la base de datos. del controlador cuyo nombre coincida con el nombre de la acción, en
este caso new.
Manteniendo la misma filosofía de generación automática de capas,
el comado generate permite uitlizar el parametro controller para acce- El siguiente diagrama intenta ilustrar mejor este mecanismo.
der a la clase ApplicationController, para invocarlo abriremos una sesión
class UsuarioController < ApplicationController
en linea de comandos, nos posicionaremos en el directorio railsass e <h1> Agregar un Nuevo Usuario </h1>
def metodo1
...
introduciremos: </br>
....
end
new.rhtml usuario_controller.rb
Un comentario al margen es que existe un mecanismo llamado Finalmente reinicializaremos nuestro webserver WEBRick (si es que
scaffolding que permite la generación automática de todas las vistas y este se encuentra apagado).
un formato homogéneo de las mismas. Sin embargo en esta ocasión
no explicaremos este mecanismo con el fin de que el lector conozca ruby script/server webrick
y maneje los elementos básicos para manipular vistas. Y arrancaremos el web browser de nuestra preferencia apuntándolo
a la siguiente dirección:
A continuación se muestra un ejemplo del código de las vistas, en
este caso sería de la vista list.rhtml. http://localhost:3000/usuario/list
Recordemos la arquitectura de Rails: La parte de las vistas esta con- Y demos click en el boton “Create” al final de la introducción de los
tenida en archivos .rhtml que son interpetados por el programa ERb, datos de cada usuario
el cual a su vez intepreta, ejecuta y substituye las instrucciones de
Ruby y convierte su salida en HTML la cual es entregada al webserver Podemos percatarnos que una vez que finalizamos la introducción
que finalmente devuelve al browser para su interpretación. de cada usuario mediante el botón “Create” la aplicación nos regre-
sa a la página donde se enlistan todos los usuarios. Esto se debe
Observemos también que en la vistas, se puede llamar directamente justamente al código que incrustamos dentro del controlador:
a los objetos de negocio que representan el modelo, esto, sin nece-
sidad de incluir ninguna librería, mas importante aún es recordar if @usuario.save
redirect_to :action => ‘list’
que el controlador el responsable de crear este tipo de objetos. Para
nuestro caso: @usuario.
El cual le indica a Rails que en caso de haber guardado exitosamente
Otro punto interesante es el código inmerso dentro de las etiquetas al usuario, el control se redireccione a la acción list.
<%= start_form_tag %> … <%= end_form_tag%>, este es una instrucción pre-
construida en Ruby que es interpretada por ERb la cual permite el de- Probemos ahora la liga “Back”; la página desplegada deberá ser si-
sarrollo de formas complejas en HTML de una forma rápida y sencilla. milar a la siguiente:
Carlos Ortega es consultor en metodologías y prácticas ágiles (XP, TDD, Refactoring, Pair Programming), cuenta con certificaciones en RUP,
OOAD, UML, etcétera. Es Certified ATAM Evaluator y Certified Professional Software Architect ambos avalados por el SEI. Ha colaborado en numerosos
proyectos para diversas organizaciones como Banco de México, Elektra, Banco Azteca, Fandelli, Oracle, IMSS, Heinson, Accenture, EDS. Actualmente
colabora con Software Ágil, empresa dedicada al tutelaje e implementación de metodologías ágiles (SCRUM, XP, Crystal).
En el número anterior vimos la propuesta de SEI que define tres cate- Si se desea que la documentación de la arquitectura cumpla con el
gorías denomidas tipos de vista. Para concluir con esta propuesta en la estándar, se deben seguir las siguientes prácticas:
figura 1 se muestran los principales conceptos de este enfoque.
• Identificación e información general. En esta práctica se lleva lo
1FSTPOB 5JQPEFWJTUB 4JTUFNB4PGUXBSF
relacionado al control de versiones del documento, fecha, histórico
*OWPMVDSBEBFO de revisiones, estado, contexto del sistema, declaración del alcance,
FM1SPZFDUP
entre otros más.
1..x 1 1
satisface los tiene tiene • Identificación del personal involucrado y sus intereses. Se descri-
intereses
1.. x
1.. x
1 ben los diversos tipos de personas involucradas en el proyecto. Ta-
7JTUB "SRVJUFDUVSB
&TUJMP les como, administradores, diseñadores, desarrolladores, usuarios,
"SRVJUFDUwOJDP cumple
1..x 1 patrocinadores. A su vez, se incluye la diversidad de intereses que la
arquitectura debe satisfacer.
1 1 1
se obtiene es descrita
1
1..x
1..x
• Puntos de vista. Cada de uno de estos debe contener un nombre,
1BRVFUFEF7JTUB
(VrBEF&TUJMPT %PDVNFOUPEF personal involucrado, intereses que satisface, lenguaje o técnicas de
1..x 1 MB"SRVJUFDUVSB modelado utilizados durante la construcción de la vista, algún método
4FDDJwO
1..x 1
analítico para analizar de manera cualitativa o cuantitativa los atribu-
tos de calidad que satisface el punto de vista, y su justificación.
Figura 1. Relación de conceptos de la propuesta “vistas y más allá de éstas” del SEI. • Vistas. Cada vista debe tener un identificador, una breve introduc-
ción y la representación del sistema con respecto a un punto de vista
Por su parte, el IEEE Software propone el estándar IEEE 1471 que en particular.
define un conjunto de recomendaciones centradas básicamente
en 2 ideas, un marco conceptual para describir arquitecturas, y un • Consistencia entre vistas. Registra las inconsistencias entre las
conjunto de prácticas a seguir. La descripción de la arquitectura se vistas, así como algún tipo de procedimiento que indique la consis-
organiza en un conjunto de vistas, cada vista modela una parte del tencia entre ellas.
sistema y satisface uno o más intereses de las personas involucra-
das. Los distintos intereses se deben considerar durante la cons- • Justificación. Se debe incluir la justificación del tipo de arquitectu-
trucción del sistema; si alguno de ellos no es considerado en al ra seleccionada, y de los puntos de vista utilizados.
menos una de las vistas se dice que la descripción de la arquitectu-
ra está incompleta. Actualmente, el IEEE e ISO están revisando en conjunto este están-
dar con el objetivo de tener una versión actualizada en el siguiente
Cada vista se documenta de acuerdo a un punto de vista (elemento año para someterla a votación.
que pude ser reutilizado) determinado, definiendo las notaciones,
técnicas y reglas para construir e interpretarla, a su vez, este deter- Estos dos últimos enfoques tienen varias similitudes entre sí. Por
mina cómo el contenido de una vista satisface uno o más intereses ejemplo, ambos se centran en las personas involucradas y en sus di-
de las personas involucradas. En este marco conceptual, una vista versos intereses, ninguno de estos prescribe un número fijo de vistas,
es la instancia de un punto de vista dado. Un conjunto (biblioteca) los dos enfoques hacen uso de la reutilización de artefactos; uno atra-
de puntos de vista es análogo a la guía de estilos que propone el vés de la guía de estilos y el otro por medio de una biblioteca de pun-
SEI. En la figura 2 se muestra un extracto del marco conceptual del tos de vista, en ambos la arquitectura debe estar justificada y los dos
estándar IEEE 1471. enfoques recomiendan el uso de análisis cualitativos o cuantitativos.
Omar Salvador Gómez Gómez obtuvo el grado de Maestro en Ingeniería de Software, en el Centro de Investigación en Matemáticas (CIMAT). Actualmente se
encuentra trabajando como estudiante de postgrado en el área de Ingeniería del Software Empírica en la Facultad de Informática de la Universidad Politécnica
de Madrid. Es miembro del IEEE Computer Society. Puedes contactarlo en ogomez@ieee.org
tiene 1
1FSTPOB %FTDSJQDJwOEF
JOWPMVDSBEBFO MB"SRVJUFDUVSB
FMQSPZFDUP
identifica 1..x
1..x es está
importante organizada por
para es considerado 1..x 1..x selecciona 1..x
#JCMJPUFDBEF
1VOUPTEF7JTUB
La seguridad en las aplicaciones Web de las todos ellos descuidan la seguridad en las • Ataques en la parte cliente, resultan de la
organizaciones es, hoy en día, una priori- aplicaciones y la información que en ella se relación de confianza que existe por parte
dad importante. Y es que éstas aplicaciones contienen, de tal manera que la seguridad se del usuario final en el sitio Web, en esta re-
contienen y manejan información invaluable deja única y exclusivamente a la programa- lación el usuario confía que la información
para la operación y el comercio de las em- ción realizada. Sin embargo aquellas fallas proporcionada por el sitio Web será verda-
presas, por lo mismo, la seguridad se vuel- de seguridad no contempladas o conocidas, dera y espera no recibir ningún tipo de ata-
ve imprescindible, ya que muchas de estas quedan vulnerables a usuarios malintencio- que por parte de la aplicación.
aplicaciones manejan números de tarjetas nados, empleados enojados o en el peor de • Ejecución de comandos, en esta catego-
de crédito, listas de clientes de las empre- los casos, a un hacker. ría caen las vulnerabilidades que permiten al
sas, inventarios físicos, documentos de pro- usuario ejecutar comandos remotos en el sitio.
piedad intelectual, etcétera; bienes por los Los ataques a las aplicaciones no siempre • Revelación de información como objetivo
que un hacker estaría dispuesto a hacer lo son malintencionados, un usuario por error obtener información específica del sitio, ta-
posible para obtenerlos. puede lograr tener acceso a información a les como el sistema operativo del servidor,
segmentos del aplicativo que no estaban la marca y versión del servidor de aplicacio-
La mayor parte de los presupuestos de se- destinados para su perfil de usuario. Adi- nes web, etcétera. Y con esta información
guridad en las compañías están dedicados cional a esto, ha habido un incremento de poder utilizar o explotar vulnerabilidades
a la infraestructura de la red y de acuerdo sitios que proporcionan herramientas para conocidas de dichos productos.
con estudios realizados, más del 60% de los la exploración y explotación de vulnerabi- • Ataques lógicos, son aquellos que burlan
ataques en seguridad de la información no lidades en sitios Web, lo que ha permitido la lógica programada de las aplicaciones y
están dirigidos ahí, sino a la capa de apli- el crecimiento de la población de usuarios perjudican la aplicación, los usuarios o la
caciones Web; otro estudio demuestra que malintencionados. Una de las mejores prác- información contenida.
más del 70% de estas aplicaciones, son ticas para mantener seguras las aplicacio-
vulnerables a ataques informáticos y para nes es “nunca asumir que la información in- Estas grandes categorías nos permiten tener
el 2010 el 80% de las organizaciones experi- gresada por el usuario será confiable”, esto una idea del universo de posibilidades para
mentará un incidente de seguridad. evita que la aplicación acepte información un ataque a un sitio Web. En este artículo
o datos que no están permitidos y que po- nos enfocaremos en los que se ubican como
A pesar de esto y de las inversiones en ma- drían convertirse en datos potencialmente los primeros lugares, según la clasificación
teria de seguridad, seguimos leyendo no- peligrosos para la seguridad de la misma. hecha por el Open Web Application Security
ticias que sitios de empresas, medios de Project (OWASP), una de las organizaciones
comunicación, entidades gubernamenta- La realidad de la seguridad independientes más importantes en Seguri-
les, organizaciones políticas y civiles, entre Tipos de vulnerabilidades dad de la Información:
otras, son presas de ataques a la seguridad Según la organización Web Application 1. Cross Site Scripting se refiere a aquellos
de sus sitios web. Security Consortium (WASC), las aplica- ataques que permiten al hacker obtener in-
ciones son vulnerables a diferentes tipos formación confidencial del usuario (como
Las organizaciones invierten recursos, prin- y categorías de ataques y los clasifica en 6 cuentas y contraseñas), llevar a cabo ata-
cipalmente, en la seguridad informática, en grandes rubros: ques de phishing y hasta llegar a tomar el
seguridad perimetral con la instalación de • Autenticación, el objetivo de estos ata- control del navegador del usuario final. Está
Firewalls, en Sistemas de Detección de In- ques es la validación de la identidad de los es la vulnerabilidad más común y agresiva
trusos (IDP), Sistemas de Prevención de In- usuarios con la intención de engañar al pro- de las aplicaciones web; en las clasificacio-
trusiones (IPS) y Firewalls de Aplicaciones, ceso de autenticación del sitio web. nes antes mencionadas pertenece a ataques
todo apoyado en Sistemas de Administra- • Autorización, este tipo de ataques buscan en la parte del cliente y autenticación.
ción de Eventos e Incidentes (SIEM). Todos obtener acceso a recursos o información a
estos controles de seguridad bloquean ata- los que el usuario no tiene derecho o permi- Esta vulnerabilidad es exitosa mediante la
ques muy bien identificados, sin embargo, so de utilización. inserción de código HMTL o JavaScript en el
navegador del usuario, usualmente estos
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 ne-
gocio 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
Una de las principales preguntas al anali- teractúa el actor y qué objetos de negocio sentido modelar una y otra vez en cada caso
zar y diseñar software con UML es ¿cómo se ven involucrados para atender los even- de uso cuáles son los objetos involucrados
se hace o reconoce un buen diagrama? tos generados, todo esto apegado al guión en las tareas repetitivas como esta, pueden
Conocer la notación es apenas el inicio del especificado en el texto del análisis. omitirse por un sentido práctico.
camino, la mejor analogía la encontramos
en la literatura, saber leer y escribir no ga- Este tipo de diagrama puede verse como Una parte importante de la identificación de
rantiza que podamos escribir obras como una traducción del texto del análisis en tér- los objetos consiste en nombrarlos y asig-
Shakespeare o Quevedo, de la misma forma minos de objetos y métodos con todas las narlos a la clase a la que pertenecen, esto
el conocer UML no garantiza que tengamos consideraciones técnicas de la arquitectura. evita que los programadores dupliquen ob-
la capacidad de hacer un buen análisis o di- Hacer un buen diseño no es cuestión de com- jetos y clases que ya existen.
seño. En otros artículos se han mostrado las plejidad, es decir, el mejor diagrama de secuen-
reglas básicas para elaborar un diagrama de cia no es el que tenga más objetos y mensajes, La identificación de los objetos involucrados
secuencia, en esta ocasión nos ocuparemos pero hay tres principios básicos que debe cum- usualmente se hace en paralelo con la asig-
de los principios mínimos para hacer el di- plir un buen diagrama de secuencia: nación de responsabilidades de cada obje-
seño de un caso de uso en un diagrama de to, el cual es el siguiente punto.
secuencia de UML. 1. Identificar a los objetos involucrados
2. Definir la responsabilidad de cada objeto Definir la responsabilidad de
Intención del diagrama de 3. Mostrar el ciclo de vida de cada objeto cada objeto
secuencia Este es el aspecto más importante de un
El diagrama de secuencia nos permite dise- El diagrama de secuencia modela el compor- diagrama de secuencia, la mejor forma de
ñar el comportamiento del software. Sirve, tamiento de un caso de uso desde la perspec- asignarle responsabilidad a un objeto es
entre otras cosas, para diseñar casos de tiva del diseño, por lo que el comportamiento usando los Patrones de Diseño y los Patro-
uso, generalmente se hace al menos uno de una aplicación de escritorio para 25 usua- nes Generales de Asignación de Responsa-
por cada caso de uso, se diseña tomando en rios es distinto al de una aplicación web para bilidades (GRASP por sus siglas en inglés).
cuenta los resultados del análisis, por lo que 700 usuarios, esta particular interacción en- Pero, otro aspecto importante que no abar-
los artefactos que se necesitan para elabo- tre los objetos de la aplicación debe quedar can los sistemas de patrones anteriores,
rarlo son los mostrados en la figura 1. plasmada en el diagrama aplicando los prin- es lo que tiene que ver con el negocio del
cipios mencionados. sistema que se diseña. En el caso de uso
Prestar Libro, ¿qué objetos de negocio están
&TQFDJGJDBDJwOB
EFUBMMFEFM$6 Identificar a los objetos involucrados?, ¿cuántas ventanas se necesi-
%JBHSBNBEF involucrados tan?, ¿cuáles son los objetos de persistencia
TFDVFODJBT
1SPUPUJQPEF
%JTFvBSVO$6
La primera parte de traducir el texto del aná- necesarios?, ¿qué objeto lleva el control del
JOUFSGB[HSgGJDB
%JBHSBNBEF
lisis a objetos y métodos consiste en identifi- CU? Estas preguntas se deben resolver al di-
DMBTFT car qué objetos están involucrados, el texto señar cada caso de uso.
.PEFMP
DPODFQUVBM
del análisis menciona normalmente sólo a
los objetos de negocio; mismos que posible- Una de las técnicas más utilizadas para de-
mente tengamos ya incluidos en el modelo finir las responsabilidades de los objetos es
Figura 1. Entradas y salidas del diseño de un caso conceptual. Es responsabilidad del diseña- clasificar cada objeto de acuerdo al patrón
de uso. dor identificar e incluir el resto de los objetos Modelo-Vista-Control (MVC) como frontera,
que participan en el caso de uso y que no son control o entidad.
El diagrama de secuencia es un diagrama de negocio, como ventanas, formas, servicios
de comportamiento y modela lo que suce- web, persistencia, seguridad, etcétera. Los objetos de frontera son los que interac-
de internamente en el software cuando, por túan con el actor, mostrando información o
ejemplo, los usuarios aprietan botones y Tampoco se trata de modelar todos y cada recibiendo peticiones. Estos objetos repre-
teclas, ahí debemos definir con qué objetos uno de los objetos, solo los más importantes sentan ventanas, páginas web y servicios
de frontera (GUI, servicios web, etcétera) in- para la ejecución del caso de uso, no tiene web entre otros.
atender la petición del usuario. En una de las de uso Pagar Multa y nos demos cuenta de que
variantes del patrón MVC se modela un obje- OVN$SFE7BMJEPWBMJEBS OVN$SFE
CPPM
el objeto credencial se comporta similar en el
to de control para cada caso de uso, el cual DSFE7JHFOUFWJHFOUF
CPPM
caso de uso Prestar Libro, tengamos que hacer
tiene los pasos necesarios para ejecutarlo. MFDUPS&MFHJCMF1SFTUBNPFMFHJCMF1SFTUBNP OVN$SFE
CPPM refactoring sobre el código de ambos casos
HFU%BUPT
HFU%BUPT
Mike Armas es consultor e instructor senior certificado por la OMG en Milestone Consulting.
En la actualidad la teoría y la práctica del ño de software ofrezca mejores resultados la perspectiva del cálculo de proyectos de
diseño de software es todavía una mezcla cuando se realiza en un ambiente cooperati- desarrollo— sólo dos de las conclusiones
sui géneris entre arte-artesanía y ciencia- vo donde los diseñadores emplean todo tipo de DeMarco y Lister: El planteamiento en
ingeniería donde la precisión matemática es de lenguaje y sus formas de expresión habla- producción o manufactura tiende a evitar
tan relevante como el atractivo emocional. da o escrita para crear software de calidad. que los individuos se pongan a pensar en el
El lado técnico del diseño de software se asi- La importancia de la comunicación efectiva trabajo, a su vez, se inclina por empujar el
mila mejor familiarizándose con el proceso es imponente en diseño de software tan sólo esfuerzo hacia un enfoque ciento por ciento
creativo de obras que provienen exclusiva- seguida de la importancia de inventiva. Sin dedicado a la ejecución y a la conclusión de
mente de la lógica y cuyas propiedades por embargo, es paradójico descubrir que existe tareas bajo la excusa de que hay poco tiem-
ende no están definidas en el campo de la una imposibilidad intrínseca en la comunica- po, como si hubiese alguna vez trabajo por
física (con excepción quizá de la medida del ción humana que nos libera de intentar una hacer sin la presión del tiempo.
desorden observado en las dependencias comunicación perfecta. Así, el desarrollo de
en, desde y hacia dicho software). software se convierte en un juego cooperati- Un planteamiento que considera la natura-
vo de comunicación e invención con el cual leza del desarrollo de software incluye tiem-
El diseñador de software desarrolla y ejerce cada proyecto no intentará lograr comuni- po suficiente para pensar en, por ejemplo,
su talento desde su fuero interno en don- cación perfecta sino administrar la falta de ¿debiéramos siquiera realizar esta tarea? y
de encuentra la materia prima del software completez en nuestra comunicación. pensarlo en repetidas ocasiones. Un proyec-
mismo sujeto de diseño: la lógica, como to o un ambiente donde la reflexión —acer-
los principios de la inferencia lícita y los Calculando un proyecto de ca del contexto y rumbo del esfuerzo— es
criterios de la demostración válida que in- desarrollo de software alentada tienen mayor oportunidad de ofre-
vestigan y clasifican la estructura de las de- La responsabilidad del cálculo de las varia- cer predicciones más confiables. Después
claraciones y de los argumentos. Las propie- bles económicas típicas de un esfuerzo se- de todo ¿qué es un estimado?. Desde un
dades de la materia prima de un producto rio para llevar a cabo X está en función del punto de vista formal un estimado es una
cualquiera moldean las posibilidades de lo conocimiento y experiencia de quienes ha- predicción basada en una valoración pro-
que puede llegar a convertirse y la manera cen dicho cálculo. Ese conocimiento incluye babilística siempre sujeta a ser ajustada. El
en que alcanza su función. Por lo tanto, el no solamente las expectativas sobre X sino proyecto de alta prioridad que debe ofrecer
conocimiento detallado de las propiedades también sus propiedades intrínsecas, es de- los mejores beneficios económicos a todas
de la materia prima y de los bloques prefa- cir su naturaleza. las partes es precisamente el proyecto que
bricados es esencial para un buen diseño; no puede darse el lujo de privarse de dicho
donde los bloques prefabricados aquí son Tom DeMarco y Timothy Lister nos explican ambiente donde los individuos son estimu-
el software previamente escrito y disponible cómo la actividad del desarrollo de software lados a realizar reflexiones frecuentes.
para ser reutilizado. es inherentemente diferente a la actividad
de producción o manufactura. Ellos men- El trabajo intelectual es diferente al trabajo
Siendo la lógica —la lógica simbólica en par- cionan algunos efectos fatales que causa mecánico y los errores provisionales —no
ticular— parte de la materia prima en diseño la mentalidad de producción o manufactura permanentes— son una parte natural y sana
de software entonces para un empleo ade- cuando se aplica al desarrollo de software de este tipo de trabajo. Los errores de esta
cuado de la misma es ineludible el dominio y, sin embargo, cuán frecuente es el caso clase proveen más oportunidades para el
del lenguaje, sea este natural como el espa- de grupos gerenciales que permiten mol- aprendizaje y mantener un ambiente donde
ñol o el inglés o sea artificial como Microsoft dear su pensamiento por una filosofía de no se permiten dichos errores sólo provoca
Visual C#, para lograr consistencia, validez y administración enteramente derivada de que la gente adopte una actitud defensiva
completitud en el software diseñado. No es los ambientes de producción o manufactu- y de no intentar nada nuevo que tenga una
sorpresa entonces que la actividad de dise- ra. Por brevedad, aquí presentaré —desde ligera probabilidad de resultar mal. Dicho
Marco Dorantes es consultor en el diseño y formulación de software desde 1987. Ha realizado diversas contribuciones públicas en la comunidad mundial de pro-
gramación, tanto en foros técnicos como en software disponibles en www.xprogramming.com Publica un diario electrónico en blogs.msdn.com/marcod
Quizás están esperando leer algo sobre requerir mantenimiento, y por lo tanto, de- solo un usuario a la vez podría estar hacien-
threads al comenzar a revisar este artículo, bería un técnico estar al tanto de las repara- do uso de la caseta telefónica y también es
pero les propongo que recorran esta lectura ciones y mantenimiento de ésta, momento un hecho que diversos usuarios a la vez po-
de una forma diferente, qué les parece si co- en el cual el siguiente usuario de la caseta drían necesitar hacer uso de ella, por lo que
menzamos hablando sobre las casetas tele- deberá esperar fuera de esta si llegara algu- para resolver este problema necesitaremos
fónicas. Se preguntarán ¿cuál es la relación no en el momento de una reparación o hacer sincronizar el uso de la caseta y de esta for-
de los threads con estas?, descubramos mas fila si algún usuario ya se encontrara espe- ma asegurarnos que solo un usuario a la vez
adelante la analogía. rando para entrar (¡incluido Superman!) y la utiliza, por otra parte, el técnico encarga-
con esto permitir el trabajo del técnico quien do del mantenimiento también deberá ser el
En la ciudad de México no me ha tocado ver también tuvo que esperar a que terminara la único que podría estar dentro de la caseta ya
en las esquinas de las calles casetas telefóni- llamada de algún usuario si es que alguno que mientras el mantenimiento se realiza, la
cas con cabina, pero creo que todos hemos se encontrara usando la caseta en el mo- caseta estaría temporalmente fuera de servi-
visto una en las películas, como aquellas mento de su arribo. Una vez que el técnico cio y no podría ser usada ni por otro técnico
donde Superman entraba a cambiarse para termine con el mantenimiento y/o repara- ni por cualquier otro tipo de usuario. Con
ponerse su disfraz. Ahora que menciono esto, ciones, dará el aviso a los usuarios para que esto, nuestra clase que representa la caseta
Superman tendría que asegurarse de que continúen con el uso de la caseta. telefónica quedaría de la siguiente manera:
nadie mas utilizará la caseta telefónica don-
package undosthreads;
de se cambiaba para que nadie descubriera Llegando a este punto, seguro que las perso- public class CasetaTelefonica {
private String numeroMarcado;
quién era realmente, y debido a que las case- nas que planificaron la forma en como funcio- private boolean enUso;
private boolean enMantenimiento;
tas telefónicas que ocupaba eran públicas y narían las casetas telefónicas de uso público public synchronized void usarCaseta(String numeroTel) throws
por lo tanto accesible para cualquier usuario, consideraron las siguientes situaciones: Exception {
if(enMantenimiento) {
wait(); // El usuario esperara a que el mantenimiento se
Superman tendría que tener cuidado. termine
}
• Las casetas telefónicas serán de uso com-
enUso = true;
Sabemos que estas casetas al tratarse de partido numeroMarcado = numeroTel;
if(!numeroMarcado.equals(“”)) {
un recurso compartido, su uso está sincro- • Los usuarios podrán llegar de forma con- System.out.println(“Se esta haciendo una llamada al
numero: “ + numeroMarcado);
nizado para atender a un usuario a la vez, currente a la caseta, por lo que el uso de la }
else {
así que por este lado Superman podría estar misma deberá sincronizarse System.out.println(“El usuario no específico un número
para hacer la llamada.”);
System.out.println(“Tal vez entro superman para cambiar-
tranquilo, y los usuarios que desean hacer • Un técnico se encargará de forma periódica se y salir al rescate...”);
}
una llamada también lo estarán ya que na- de visitar la caseta telefónica para realizar el
long duracionLlamada = Math.round(Math.random() *
die mas interrumpirá su conversación mien- mantenimiento y/o hacer las reparaciones 10000);
Thread.sleep(duracionLlamada); // Llamando...
tras usa la caseta telefónica. De lo contrario, correspondientes si estas fueran necesa- System.out.println(“Duración de la llamada: “ + duracionLla-
mada/1000 + “seg.”);
¡imagínense lo que pasaría si el uso de la ca- rias. En este momento, la caseta no podría numeroMarcado = null; // El usuario colgo el telefono
enUso = false;
seta telefónica no estuviera sincronizado!. ser utilizada por ningún otro usuario }
public synchronized void darMantenimiento() throws Excep-
Cualquier persona entraría a la caseta mien- tion {
enMantenimiento = true;
tras alguien más la está utilizando, colgaría Bien, ahora será momento de hacer la ana- while(enUso) { }
System.out.println(“Caseta Telefónica en mantenimiento...”);
su llamada y marcaría el nuevo número para logía de la caseta telefónica con los threads long duracionMantenimiento = Math.round(Math.random()
* 10000);
comunicarse con alguien más, además de y de plasmarla en código para poder echar a Thread.sleep(duracionMantenimiento); // En mantenimiento...
System.out.println(“Duración del mantenimiento: “ + dura-
que la cabina se saturaría después de unos andar nuestro ejemplo de manera práctica. cionMantenimiento/1000 + “seg.”);
cuantos usuarios, seguro que habría bas- Para esto, primero pensemos en el diseño enMantenimiento = false;
notifyAll(); // El tecnico avisa a los usuarios que pueden
tantes problemas entre los usuarios además de nuestra caseta y las diferentes formas continuar con el uso de la caseta
}
de que todos sabrían quién es Superman y en que podrá ser utilizada por sus usuarios, }
se enterarían de todo lo que dice la persona la primera sería su uso para realizar una lla-
que esté hablando. mada y dirigida a cualquier tipo de usuario; Como podemos darnos cuenta, tanto el mé-
otra sería darle mantenimiento, enfocada todo usarCaseta() y el método darMantenimiento()
También deberíamos considerar que la case- a los técnicos encargados de que la caseta se encuentran sincronizados (synchronized),
ta telefónica podría sufrir descomposturas o funcione correctamente. Es un hecho que con esto aseguramos que los usuarios se-
Erick Frausto es egresado de la carrera de Ing. en Informática en UPIICSA-IPN. Además de desempeñarse como Arquitecto JEE, organiza cursos sobre tecno-
logía Java. Lo puedes contactar al siguiente e-mail: erick_frausto10@yahoo.com.mx. Erick dedica este artículo a su hermosa novia Irma.
tre los usuarios normales y el técnico, esto Con la ejecución de la clase de prueba, po-
En el caso del técnico, la implementación
lo logramos mediante los métodos wait() y quedará de la siguiente manera: dremos ver algo como esto:
notifyAll(), el método wait() le dice al thread
que se este ejecutando que deberá suspen- package undosthreads; Se esta haciendo una llamada al numero: 98776655
der momentáneamente su ejecución has- public
class Tecnico extends Thread { Duración de la llamada: 2seg.
Se esta haciendo una llamada al numero: 99887654
ta que otro thread le notifique que puede private CasetaTelefonica ct;
public Tecnico(CasetaTelefonica ct) { Duración de la llamada: 3seg.
continuar, el método wait() será llamado por this.ct = ct; Caseta Telefónica en mantenimiento...
} Duración del mantenimiento: 4seg.
el thread que representa a un usuario normal public void run() { El usuario no específico un número para hacer la llamada.
cuando detecte que la caseta telefónica se try {
ct.darMantenimiento();
Tal vez entro superman para cambiarse y salir al rescate...
Duración de la llamada: 9seg.
encuentra en mantenimiento, y el método } Se esta haciendo una llamada al numero: 81909090
catch(Exception e) { Duración de la llamada: 1seg.
notifyAll() será llamado por el thread que repre- System.out.println(e);
}
senta al técnico, este método lo que hace es }
avisar a los threads que están en espera que }
pueden continuar con su ejecución, es decir, Conclusión
le dirá a los usuarios que la caseta telefónica Finalmente nos queda crear una clase de prue- Es claro que lo que vimos fue una in-
esta lista para ser usada nuevamente. ba donde echaremos a volar nuestra pequeña troducción al tema de threads y a sus
aplicación, esta luce de la siguiente manera: conceptos básicos, estos dan lugar a
Una vez lista nuestra caseta telefónica, pa- tantas opciones dentro de la creación
semos a la creación de nuestros usuarios. package undosthreads; de aplicaciones en Java, desde las que
Como mencionamos antes, tanto la imple- public
class Test { solo requieran levantar un thread en
mentación de los usuarios normales como la public static void main(String[] args) throws Exception {
CasetaTelefonica ct = new CasetaTelefonica();
paralelo al thread principal para que
implementación del técnico, deberán estar Usuario1 a = new Usuario1(ct, “98776655”); borre archivos temporales hasta apli-
basados en threads. Existen dos formas en a.start(); caciones complejas que requieran toda
Usuario2 b = new Usuario2(ct, “99887654”);
Java mediante las cuales indicamos que una Thread hilo = new Thread(b); una administración de threads, como
clase será un thread, esto es extendiendo de hilo.start(); una aplicación de scheduling donde
Tecnico tecnico = new Tecnico(ct);
la clase Thread o implementando la interfaz tecnico.start(); se podrían tener diversos threads
Runneable, en ambos casos debemos de Usuario1 superman = new Usuario1(ct, “”);
ejecutándose en paralelo y accedien-
superman.start();
implementar el método run() cuyo conteni- Usuario1 c = new Usuario1(ct, “81909090”); do a recursos compartidos, donde la
do será la actividad que el thread llevará a c.start();
} implementación de una aplicación de
cabo. Veamos ambos casos: }
este tipo requerirá de toda la dedica-
ción y atención posibles tanto en su
package undosthreads;
public class Usuario1 extends Thread {
diseño como en su desarrollo.
private CasetaTelefonica ct; Aquí tenemos la creación del objeto caseta
private String numTelefono; telefónica que será compartido entre los dis- El desarrollo de aplicaciones basa-
public Usuario1(CasetaTelefonica ct, String numTelefono)
{ tintos usuarios. Después tenemos la creación das en threads es un tema complejo
this.ct = ct;
this.numTelefono = numTelefono; de diversos objetos que representan a los y para el cual existen libros completos
} usuarios, lo interesante a mencionar en esta tratando el tema, sin embargo, espero
public void run() {
try { parte es la diferencia cuando creamos un que esta pequeña introducción sea un
ct.usarCaseta(numTelefono);
} thread cuya clase que representa su función primer buen paso para los que se ini-
catch(Exception e) {
System.out.println(e);
hereda de la clase Thread o implementa la cian en el tema de threads y sus con-
}
}
interfaz Runnable, en el primer caso solo es ceptos básicos.
} necesario crear el objeto de la clase que here-
Luis Vinicio León Carrillo es actualmente Director General de e-Quallity, empresa especializada en prueba de software, de la que es co-
fundador. Fue profesor-investigador en el ITESO durante varios años, que incluyeron una estancia de posgrado en prueba de software en
Alemania, en la que abordó aspectos formales de dicha disciplina. Es autor de varias publicaciones nacionales e internacionales. Fue co-
fundador del Capítulo Jalisco de la AMCIS.
al aplicar nuestro Modelo de Calidad de Pro- (Esto es un tema en sí mismo, que buscare-
ducto, otorgamos nuestro Sello de Calidad mos abordar en otro número.) Por tanto, la en nuestro país que reportan lograr
e-Quality Approved, mismo que fue validado hipótesis no es concluyente. densidades semejantes… lo curioso
con apoyo del Consejo Nacional de Ciencia y es que son los mismos programado-
Tecnología (CONACyT). Por otra parte, este año recabamos la mé- res los que realizan las pruebas, no un
trica de los Defectos por KLOC (D/KLOC). equipo de testers (interno o externo)
Para la ejecución del Concurso aplicamos un En el marco del Encuentro Prosoft llevado a debidamente entrenado, al que se le
proceso que representa un downsizing del cabo recientemente, se anunció el impulso pague por detectar defectos (a los de-
Diagnóstico mencionado arriba (fase 1). que se le brindará en nuestro país al mode- sarrolladores no se les entrena para
lo Team Software Process (TSP); ahí mismo eso, ni se les paga por ello).
Este año redujimos el número máximo de Watts Humphrey (autor de ese modelo y
concursantes a 20. Una cantidad considera- de CMMI) declaró que con TSP se pueden Para poder demostrar que con TSP
ble de productos fueron rechazados, ya fuera alcanzar densidades de defectos de hasta verdaderamente se pueden alcanzar
porque se excedían en el tamaño, o porque 0.06 D/KLOC, contra los 7.50 para el Nivel 1 esas densidades de defectos, sería
no estaban completamente terminados. de CMMI-1, los 6.24 para el 2, los 4.73 para interesante ver resultados de pruebas
el 3, los 2.28 para el 4, y los 1.50 para el 5. realizadas por un tercero, no por los
La muestra final constó de 15 productos, mismos desarrolladores de la empresa.
provenientes de varios dominios de aplica- Los resultados obtenidos en este Concurso
ción. Su tamaño (entre 20 y 30 meses hom- muestran que el 1º, 2º y 3er lugar tendrían Habrá que esperar además, más pre-
bre) se midió utilizando una métrica interna densidades de defectos correspondientes cisión de TSP, pues no es lo mismo ha-
semejante a los puntos de función. al Nivel 4, 4 y 5 de CMMI respectivamente… blar de esas densidades de defectos
lo curioso es que esas empresas no tienen para productos de 100 KLOC, que para
Resultados y Análisis tales acreditaciones. productos de 1,000 KLOC.
En la tabla que se muestra a continuación
presenta datos sobre la calidad de los pro- Aquí también hay que considerar la salve- Surge también la duda: ¿cuántas KLOC
ductos concursantes (KLOC = miles de lí- dad del tamaño (size matters). suelen tener los compiladores comer-
neas de código). ciales?, ¿con qué densidad de defec-
tos? Si fuera superior a 0.06 D/KLOC,
En un primer acercamiento, si comparamos Conclusión entonces los productos generados por
directamente la segunda columna contra los Un asunto pendiente que abordaremos ellos tendrían dificultad para alcanzar
resultados del Concurso pasado, podríamos en otro número es cómo los ganadores ese número.
pensar que estos productos son más esta- de los primeros lugares en el concurso
bles que aquellos. Sin embargo, estos fue- lograron esos niveles de calidad.
ron más pequeños, y como dijera un autor Referencias
“Size matters”: un producto de 100 KLOC Por otro lado: se asevera que con TSP [ León-Carrillo, L.: Columna “Prueba de
con 300 defectos en realidad tiene constitu- se puede obtener densidades de de- Software”, Software Gurú, Feb-Abr 2008 ]
yentes más confiables que un producto de fectos de hasta 0.06 D/KLOC; sin em- [ León-Carrillo, L.: The Impact of Software
10 KLOC con 30 defectos… siempre y cuando bargo, hemos encontrado empresas Testing in small Settings, en Oktaba, H.
tengan complejidad estructural semejante. and Piatini, M. et.al. Software Processes in
small Enterprises. IGI Global. 2008 ]
[ The Project Management Institute: A
1SPEVDUP %FGFDUPT$BTPTEF %FGFDUPT,-0$
Guide to the Project Management Body of
1SVFCB
Knowledge. USA, 2000 ]
NgTNBEVSP [ e-quallity.net/definiciones.php ]
QSPNFEJP [ e-quallity.net ]
NFOPTNBEVSP
» Luis Vinicio León Carrillo
Tabla-1: Densidad de Defectos en Productos mexicanos pequeños
Luis Daniel Soto es director regional de desarrolladores y difusión de plataforma en Microsoft para América Latina. Es miembro de la
orden nacional al mérito de México (ministro de educación). Luis Daniel obtuvo el primer lugar en el Concurso Nacional para Software de
Exportación en 1989. blogs.msdn.com/luisdans
Presente
¿Repetir el Proceso?
10 recomendaciones para una migración P2V exitosa
Traducido por Martín Álvarez
Cuando se trata de migrar servidores físicos sión. La mayoría de las organizaciones tie- necesidades. Ahora es tiempo de empa-
a máquinas virtuales, muchos profesionales nen una fecha límite para su conversión de tarlas a las soluciones disponibles. Existen
de TI han descubierto que llegar ahí no es físico a virtual y tienen tiempo extra limitado cuatro enfoques básicos de la conversión
la mitad de la diversión. Muy a menudo, el para completarlo. Por lo tanto, el tiempo de P2V. Cada uno de ellos es efectivo en casos
proceso de conversión es más frustrante, conversión total y la capacidad de conver- de uso específicos y cada uno tiene sus li-
confuso y tardado de lo que necesita ser. El sión simultánea de cada enfoque son con- mitaciones. Primero elija el enfoque general
tiempo y recursos requeridos para la con- sideraciones importantes. Decida si puede y luego comience por evaluar opciones de
versión son variables importantes en el va- desconectar servidores para realizar la con- una solución específica. Éstas son cápsulas
lor global y el costo total de propiedad que versión durante o después de horas de tra- resumidas de enfoques de conversión P2V:
le brindarán sus sistemas virtualizados. Es bajo y determine de cuánto tiempo con los
fundamental seleccionar el enfoque correc- servidores desconectados dispone en total • CDs de arranque más utilidades genera-
to en la migración de servidores físicos a antes de la fecha límite del proyecto. A con- les de clonación y copia. Las organizaciones
virtuales (P2V) para minimizar riesgos, man- tinuación, divida el tiempo disponible entre a menudo utilizan software de clonación he-
tener su proyecto dentro del presupuesto y el número de servidores que virtualizará a redado y lo complementan con una utilidad
en continuidad, y sus datos intactos. fin de determinar su requisito de tiempo de de conversión de máquina virtual y CDs de
conversión total del que puede disponer por arranque para capturar, convertir y transferir
Presentamos las siguientes recomendacio- servidor. Aquí el presupuesto es también un archivos. Éste es el enfoque de conversión
nes para el manejo del proceso y la selec- factor (¿se necesitará tiempo extra o perso- original y puede ser difícil de usar, en espe-
ción de la solución que mejor satisfaga sus nal adicional para completar el proyecto?). cial si se le compara con alternativas más
necesidades. recientes. Es el mejor para proyectos de
3. Evalúe sus facultades conversión pequeños o únicos.
1. Evalúe las necesidades Las preguntas acerca del personal y del pre-
inmediatas y futuras supuesto no se pueden responder hasta que • Herramientas de conversión gratuitas
La conversión P2V se ha llevado a cabo de determine si su personal tiene las facultades de proveedores de plataformas de virtua-
muchas maneras, pero sólo unos cuantos y el tiempo para llevar a cabo la conversión. lización. Para los usuarios con un entorno
enfoques han funcionado bien en las migra- Evalúe sus conocimientos de TI internas y su virtual homogéneo, las herramientas gratui-
ciones a gran escala. La escalabilidad y la disponibilidad para determinar qué opcio- tas que ofrecen los fabricantes representan
velocidad son dos de los mayores diferen- nes tiene a disposición su organización. un paso adelante del enfoque de copiar e
ciadores entre las soluciones de conversión; iniciar. Como las herramientas gratuitas se
de modo que es importante que entienda 4. Fije una meta de nivel de éxito centran en el aspecto de la conversión y no
sus necesidades actuales y futuras. Las fallas en la conversión de servidores P2V intentan automatizar mucho del proceso
no son raras. Pueden ocurrir fallas con má- global, el tiempo total que se requiere para
Considere no sólo cuántos servidores se quinas virtuales de mayor tamaño por arri- preparar, convertir y solucionar problemas
necesitan convertir en el proyecto en curso, ba del rango de los 50 gigabytes, y también de los servidores puede ser muy largo, en
sino también si se pueden convertir otros cuando las herramientas P2V no cuentan especial en el caso de servidores grandes.
servidores de forma periódica o en masa con el soporte para ciertos entornos, con- Conclusión: son buenas para conversiones
(como volver otro departamento virtual troladores o servicios implícitos. Utilizando únicas y ocasionales.
después de que se completen los proyectos el tiempo y el personal disponibles como
actuales). También es importante tomar en guías, determine cuántas conversiones falli- • Herramientas y soluciones de conversión
cuenta si todos los servidores físicos serán das puede soportar, fije una meta de nivel comerciales. Las soluciones comerciales au-
convertidos a la misma plataforma virtual de éxito y úsela para ayudarse en la evalua- tomatizan muchas tareas relacionadas con la
o si se pudieran utilizar múltiples entornos ción de opciones. Debe poder encontrar una preparación, conversión y procesamiento pos-
virtuales. Algunas soluciones de conversión solución que le proporcione un nivel de éxi- terior, y a menudo proporcionan una interfaz
sólo admiten un entorno virtual. to de al menos 95%. de usuario única para estas etapas. Ofrecen el
tiempo total de migración más corto y pueden
2. Establezca escalas de tiempo, 5. Conozca las opciones (y sus incluir programación de actividades y funcio-
fechas límite y presupuestos limitaciones) nes avanzadas de conversión simultáneas;
A menudo el mejor enfoque depende del Si sigue las primeras cuatro recomendacio- de modo que a menudo son más adecuadas
tiempo disponible para completar la conver- nes tendrá un buen entendimiento de sus para proyectos de mediana y gran escala.
Martín Álvarez realizó la traducción del documento original que pueden consultar en: http://www.vizioncore.com/articles/positiondoc/p2v.pdf
Connect-A-Desk
¿Cuántas veces has caminado con la lap-top encendida y escribiendo con una sola
mano? Suena extraño, pero ¡es cierto!. En ocasiones, tenemos la necesidad de estar con
la computadora portátil funcionando al mismo tiempo que caminamos o estamos para-
dos, es un poco incómodo no solamente teclear con una sola mano, sino estar cargando
con la otra la máquina con el riesgo de sufrir algún incidente (por ejemplo tirarla... bueno,
tal vez este ejemplo sea un poco exagerado). Para evitar cualquier tipo de percance y para
evitarnos la incomodidad de cargar con una mano y escribir con la otra, llega para complacer
a todo tipo de usuario el Connect-A-Desk, un soporte para cargar la computadora portátil.
Compuesto por una base y un par de soportes que van al hombro, este producto llega para
alivianar la carga de una herramienta de trabajo, que se ha vuelto popular en este tiempo:
la laptop.
Sony VAIO
Mouse Talk
SE2 Labs
ITC One
Para los amantes de la tecnología, ha lle-
gado la navaja suiza de los gadgets. Así
es, SE2 Labs ha hecho posible el sueño
Los diseñadores industriales e ingenieros muestran su talento a través electrónico de muchos y saca el ITC One,
de este diseño compacto de mouse óptico de doble funcionalidad, es que ensambla lo más solicitado en el
además un teléfono vía Internet. Como mouse, ofrece una resolución de mercado del consumidor de tecnología.
800 dpi y con un peso de 67 gramos, además de ser un teléfono para
VOIP que puede ser utilizado con Skype; tiene un led indicador que se Con un procesador de sonido THX y 125
enciende, a manera de alerta, cuando entra una llamada. Con tan sólo watts, un controlador Netlinx todo puede
presionar un botón, el mouse se abre para ponerlo en modo teléfono. ejecutarse sin dificultades desde un con-
trol remoto. Bajo el concepto de Hi-Def,
Es ideal para laptop y ahorra espacio en la oficina, el hogar o mientras se está elaborado con DVR y una pantalla
está en los ahora restaurantes y cafeterías con servicio de WiFi. ¡Ah! y tam- touchscreen en el frente. ¿Complicado?, no,
bién está disponible en color blanco. incluye un Apple iPod y un Xbox 360 (con
sus respectivos puertos de control) que lo
hace estándar, si eso no es suficiente se
puede escoger opcionalmente un player
Blu-ray, una AppleTV o un Nintendo Wii.
60 AGO-OCT 2008 www.sg.com.mx
INDEX
TENEMOS UN ESPACIO
RESERVADO PARA TI
Si deseas anunciarte contáctanos
en el (55) 5239 5502 o en
ventas@softwareguru.com.mx
Acercarse a comprender el funcionamiento y la organización de las para cada fallo, si cae en el ámbito de la consistencia del sistema
tareas dentro de las comunidades de desarrollo de software libre Debian (y por tanto debe ser corregido directamente por ellos) o si
es una tarea bastante complicada ante quien se acerca con curiosi- es relativo a la lógica de uno de los paquetes (en cuyo caso debe ser
dad, proveniente del mundo del software propietario, desarrollado corregido en coordinación con el autor de dicho programa, para que
e integrado centralmente y dentro de compañías que operan como la corrección “fluya” hacia las otras distribuciones que lo integran y,
“cajas negras”. Sin exponer sus procesos, sin ofrecer a los clientes en general, hacia todos sus usuarios).
una ventana a cada uno de los momentos de su proceso de desarro-
llo. Comprender cómo funcionan las comunidades de Software Libre Hasta hace unos cuatro años, la norma en Debian era que cada mante-
es una gran oportunidad para entender las distintas metodologías nedor fuera responsable exclusivo de los paquetes que le interesaran.
de ingeniería de procesos, en entornos donde todas las metodolo-
gías formales simplemente no tienen cómo ser aplicadas. En 2003 nació el sistema Alioth, basado en GForge, y ofreciendo de
una manera centralizada las herramientas necesarias para un ver-
El ejemplo que aquí se muestra se centra en el trabajo que realizo en dadero desarrollo colaborativo, se comenzaron a configurar grupos
el grupo de empaquetamiento de módulos de Perl (pkg-perl) para la amplios de mantenimiento de infraestructura. Uno de los primeros
distribución Debian GNU/Linux. en aparecer, ante la iniciativa de Joachim Breitner, fue pkg-perl. El eje
fundamental en torno al cual gira el trabajo del grupo es el depósito
Retomando el concepto de que Perl es un lenguaje de programación Subversion, donde mantenemos sobre un esquema de manejo de ver-
muy popular, especialmente para las tareas de administración de siones todos nuestros paquetes, programas y documentos, así como
sistemas y de desarrollo de sitios Web, y uno de sus más importan- los cambios independientes que vamos realizando sobre de ellos.
tes recursos es el CPAN (Comprehensive Perl Archive Network), una
enorme biblioteca de módulos nacida en octubre de 1996, y que a fe- Los módulos del CPAN ofrecen varias ventajas para su mantenimiento
brero del 2008 cuenta con más de 13,000 módulos independientes. masivo colaborativo. A diferencia de lo que ocurre en muchos lengua-
jes, casi la totalidad de los módulos están basados en una estruc-
CPAN ofrece a sus usuarios, además, herramientas para el desarro- tura de compilación ampliamente conocida (ExtUtils::MakeMaker o
llo y seguimiento colaborativo, un sistema de seguimiento de fallos Module::Build). Esto permitió la creación de dh-make-perl, un script
y un sistema de organización, búsqueda y consulta de la documen- bastante genérico cuyo objetivo original era simplificar la creación de
tación de dichos módulos. paquetes Debian directamente a partir del CPAN para ser instalados
localmente por los administradores, pero que fue extendido por el
El proyecto Debian, por su parte, es la distribución de software libre, grupo pkg-perl para automatizar la creación de paquetes.
hoy por hoy, más grande del mundo, con más de 15,000 paquetes
fuente independientes. Su propósito es presentar una colección co- Si bien formalmente el grupo pkg-perl cuenta con 70 miembros, en
herente, consistente y con un elevado nivel de control de calidad. todo momento hay aproximadamente 15 miembros activos. Actual-
mente, el grupo es responsable por 660 paquetes en las siguientes
El reto del grupo pkg-perl es empaquetar (de una manera consisten- actividades:
te con las políticas de Debian) y dar seguimiento a los fallos que va-
yan apareciendo en dichos paquetes. Debian ofrece a sus usuarios • Responsable el dar seguimiento a los fallos reportados
un sistema de seguimiento de fallos centralizado a través del cual • Mantenerlos al día (tanto respecto a nuevas versiones producidas
pueden comunicarse directamente con los “mantenedores” de cada por sus autores como respecto a las políticas en Debian, que van
uno de los programas. Son ellos los responsables de determinar, cambiando poco a poco reflejando la evolución del proyecto)
Gunnar Wolf ha sido usuario y promotor de Software Libre en México por más de diez años. Es fundador del Congreso Nacional de Software Libre (CONSOL)
y miembro externo del Departamento de Seguridad de Cómputo en la UNAM. Participa como desarrollador en el proyecto Debian desde el 2003. Trabaja como
administrador de red y en el desarrollo de sistemas para el Instituto de Investigaciones Económicas de la UNAM.
Para simplificar la coordinación de todas estas tareas, los integrantes del grupo (especialmen-
te Martín Ferrari, de Argentina, Gregor Hermann, de Austria, y Damyan Ivanov, de Bulgaria)
hemos creado un script que tiene las siguientes funciones:
Hoy en día, este script es nuestra principal herramienta, brindándonos un reporte de estado
condensado y adecuado específicamente a nuestro flujo de trabajo. Y tan útil resulta este
resumen que actualmente estamos adecuando este script para que lo utilicen también otros
grupos con un enfoque similar; probablemente para cuando este artículo esté impreso, lo
están utilizando ya los grupos de empaquetamiento de Python y Java, habiendo varios más
en el horizonte.
Conclusión
El ejemplo que aquí se presenta es sólo uno de tantos, pero es ilustrativo. Bajo el mo-
delo del software libre, las barreras entre desarrollo e integración se desvanecen, y el
contacto directo entre usuario final y los desarrolladores deja de ser una rara ocurren-
cia, y se vuelve la norma, algo que damos por supuesto en todo momento de nuestros
desarrollos.
Referencias
[ debian.org ]
[ perl.com ]
[ cpan.org ]
[ rt.cpan.org ]
[ search.cpan.org ]
[ pkg-perl.alioth.debian.org ]
[ bugs.debian.org ]
[ alioth.debian.org ]
[ svn.debian.org/wsvn/pkg-perl ]
[ pkg-perl.alioth.debian.org/cgi-bin/qareport.cgi ]
Ajax on Rails
Scott Raymond
O’Reilly, 2007
01
Las nuevas tendencias del desarrollo para web nos invitan Es importante mencionar que el
al aprendizaje de herramientas de vanguardia, pero cuan- autor no olvidó hablar de pun-
do un par de estas se combinan para trabajar, entonces se tos importantes para el desa-
crea la mancuerna perfecta. Como ejemplo tenemos este libro. rrollo de una aplicación como
son las pruebas, detección de
El lector aprenderá a construir aplicaciones web dinámicas utilizan- errores, seguridad y tiempo
do dos de las herramientas más importantes de desarrollo actual: de ejecución. Dedicando por
Ajax y Ruby on Rails. A través de sus páginas, conocerá cómo combi- separado un espacio para
nar ambas tecnologías para construir rápidamente aplicaciones con cada uno de ellos, el autor
alto tiempo de procesamiento y escalabilidad. habla sobre los principios
de seguridad de las apli-
Los capítulos del libro no solamente incluyen una introducción a los caciones web, así como
conceptos de Ajax y Rails, además incluye la explicación y uso de las estrategias de estudio
Prototype, framework de JavaScript que permite el fácil desarrollo del “performance”.
de aplicaciones web dinámicas.
En la sección de tiempo de ejecución incluye temas como: optimi-
Para hacer una mejor mancuerna con Prototype, incluye un capítulo zación de sesiones, tiempo de respuesta en las peticiones a Rails,
dedicado a uno de los add-on’s de este framework: script.aculo.us, reducción en la comunicación entre JavaScript, CSS y Ajax y la utili-
en el que se enseña el uso de las características de la biblioteca que zación de Ajax para mostrar el progreso de una tarea del usuario.
corresponden a la plataforma Rails.
02
Para los interesados en WCF con conoci- A través de sus 10 capítulos
mientos previos en el mismo, llega este el lector puede apreciar el
libro para profundizar más en el tema. Con por qué y el cómo de WCF,
la finalidad de dejarle los mejores conceptos al lector, ya que el libro muestra el
el autor trata en la primera parte una introducción para balance entre la cobertura
enseñar el por qué del concepto además de mostrar las del modelo y los concep-
metas del mismo. tos que deben ser con-
siderados dentro de las
En la segunda parte del libro, podemos encontrar con- aplicaciones de WCF.
ceptos más propios de Windows Communication Founda-
tion como los mensajes, los canales y los administrado- Este libro brinda al lector, un vistazo dentro de Windows
res de canales para terminar con una tercera parte que Communication Foundation para facilitar el diseño, construcción,
trata sobre la capa del ServiceModel. pruebas y mantenimiento de las aplicaciones.