Escolar Documentos
Profissional Documentos
Cultura Documentos
MoProSoft – modelo de
procesos para la industria
de software en México – en
vías de ser norma mexicana
Proceso de Software
Revisemos estos modelos para entender mejor su objetivo
y estructura.
ENE-FEB 2005 21
Modelos Genéricos En el año 2000, el SW-CMM fue reemplazado por CMMI. El SEI ya no mantiene
el modelo SW-CMM, sus métodos de evaluación asociados, ni el material
de entrenamiento.
CMM (Capability Maturity Model) -
Modelo de Madurez de Capacidades
Marco que describe elementos clave de procesos efectivos de software. Creado por
el Software Engineering Institute (SEI) en conjunto con Carnegie Mellon Univer- CMMI (Capability Maturity Model
sity. La primera versión se publicó en 1994. Integration) - Modelo de Madurez de
Capacidades Integrado
CMM describe un camino evolutivo en 5 niveles de mejora de procesos para lograr
su madurez. Cubre prácticas de planeación, ingeniería y administración del desarro- El proyecto de CMMI fue concebido como una iniciativa
llo y mantenimiento de software. para reunir los diferentes CMMs en un conjunto de mo-
delos integrados, más consistentes entre ellos. Los modelos
fuente que sirvieron como bases incluyen: CMM Software,
Niveles de Madurez CMM Ingeniería de Sistemas, y CMM Desarrollo Integra-
Nivel Áreas clave del proceso do de Producto .
1 – Inicial Ninguna
Proceso caótico, impredecible. CMMI proporciona una guía para desarrollar procesos,
El éxito depende del esfuerzo heroico que además ayuda a evaluar la madurez de la organización
de individuos.
o capacidad de un área de procesos. CMMI incluye los
2 – Repetible • Administración de Requerimientos. procesos de ingeniería de software e ingeniería de sistemas.
Institucionalizar procesos efectivos • Planeación de Proyecto de Software.
de administración de proyectos de • Seguimiento y Control del Proyecto
software, que permiten a las organi- de Software. El modelo está representado de forma continua y es-
zaciones repetir prácticas exitosas • Administración de Subcontratos
desarrolladas en proyectos previos. de Software. calonada. Contiene 22 áreas de procesos. Cada área de
• Aseguramiento de Calidad de Software. proceso está formada por: Objetivos específicos, Prácticas
• Administración de Configuración.
de Software. específicas, Objetivos genéricos, y Prácticas genéricas.
3 – Definido • Enfoque en Procesos de
El proceso estándar para desarrollar y la Organización. CMMI Modelo Continuo
mantener software en la organización • Definición de Procesos de Esta formado por 5 niveles de capacidad del proceso:
esta documentado, incluyendo pro- la Organización.
cesos de administración e ingeniería • Programa de Capacitación. 0. Incompleto
de software, y estos procesos están • Administración Integral de Software. 1. Desempeñado
integrados. • Ingeniería de Productos de Software. 2. Administrado
• Coordinación Intergrupal.
• Revisiones entre Colegas. 3. Definido
4 – Administrado • Administración cuantitativa
4. Administrado cuantitativamente
Se establece un conjunto de metas de procesos. 5. Optimizado
cuantitativas para medir el nivel de • Administración de la calidad del Y por cuatro categorías de áreas de procesos: Administra-
calidad y desempeño de los proyec- producto de software.
tos y del proceso organizacional. ción de Procesos, Administración de Proyectos, Ingeniería,
Soporte. Estas categorías agrupan a las diferentes áreas de
5 - Optimizado • Prevención de defectos.
No es simplemente detectar y resolver • Administración de cambio proceso, dividiéndolos en procesos básicos y avanzados.
defectos, sino prevenirlos y evitarlos de tecnología.
al implementar actividades proactivas. • Administración de cambio
Mejora continua de procesos. de procesos. CMMI Modelo Escalonado
El modelo escalonado, al igual que CMM, describe un ca-
mino evolutivo en 5 niveles de madurez de procesos, ade-
ISO 9001-2000 más integra nuevas áreas de proceso.
ISO (International Standards Organization) en 1987 crea la norma ISO 9000, con-
junto de estándares que establecen los requerimientos para la gestión de los sistemas La selección entre el modelo escalonado y el continuo
de calidad. ISO 9000:2000 está formado por: depende del objetivo de la organización, además de tener
• ISO 9000 Fundamentos y Vocabulario. que considerar la situación (si ya se tiene CMM, cultura
• ISO 9001 Requisitos. en procesos, etc.). Por ejemplo, si el objetivo es llevar a la
• ISO 9004 Recomendaciones. organización a cierto nivel de capacidad, deberá seleccio-
narse la forma escalonada; en cambio si el objetivo es me-
La parte de Requisitos - ISO 9001:2000, está estructurado en 8 secciones: jorar cierto proceso, será mejor seguir la forma continua.
1. Alcance.
2. Normas para la Consulta. Algunos Beneficios de CMMI vs. CMM
3. Términos y Definiciones. Algunos de los beneficios que han experimentado las organi-
4. Sistema de Gestión de la Calidad. zaciones que pasan de CMM a CMMI son los siguientes:
5. Responsabilidad de la Dirección. • Mejor alineación a objetivos de negocio.
6. Gestión de los Recursos. • Mejor visibilidad hacia las actividades de ingeniería, con
7. Realización del Producto. el objetivo de asegurar que el producto o servicio cumple
8. Medida, Análisis y Mejora. las expectativas del cliente.
• Aprovechamiento de mejores prácticas adicionales (e.j., me-
Aunque ISO 9001:2000 no otorga un estándar específico para sistemas de desarrollo de dición, riesgo, administración, y manejo de proveedores).
software, es decir, no abarca todos los procesos relacionados con el desarrollo de software, • Acoplamiento más estrecho con estándares de ISO.
muchas organizaciones de software han optado por gestionar su sistema de calidad en base a
este estándar, y obtener una certificación reconocida de manera internacional.
PSP puede ser aplicado en: RUP organiza los proyectos de software en dos dimensiones: la del
• Desarrollo de programas. tiempo y la de las actividades. En base al tiempo, los proyectos se
• Definición de requerimientos. dividen en cuatro fases secuenciales:
• Documentación. • Concepción – Definición de alcance, identificación de riesgos.
• Pruebas de sistemas. • Elaboración – Resolución de riesgos, establecimiento de arquitectura.
• Mantenimiento de sistemas. • Construcción – Generación del producto.
• Transición – Disponibilidad a la comunidad de usuarios finales.
Las actividades se organizan en nueve diferentes disciplinas que son eje-
cutadas durante las diferentes fases.
Evolución de PSP
Es recomendable considerar otros modelos que apoyen y complementen la correcta implantación • Lo importante es la gente, lo secundario los
procesos. Sin embargo, hay que considerar
del proceso de software. Como ISO/IEC 9126:2001 enfocado en modelar la calidad de productos que la gente no puede funcionar adecuada-
de software, o bien, modelos para implementar procesos de mejora como IDEAL. Otros mode- mente en un sistema caótico. “El sistema
siempre ganará” dice Rummler . Por ello, es
los especializados, que pueden ser de gran utilidad son PMBOK (Project Management Body of necesario contar con los procesos adecuados
Knowledge) y SWEBOK (SW Engineering Body of Knowledge). que posibiliten un sistema estable.
MoProSoft
MoProSoft® es un
posible medio para
en la Práctica
las organizaciones Recomendaciones para su Implantación
Por Ma. Julia Orozco y Claudia Alquicira
que deseen lograr
una evaluación Este artículo presenta la experiencia de la implantación de MoPro-
exitosa en un modelo Soft® en una empresa de desarrollo de software y resume un ciclo
internacional como de mejora considerando desde la planeación estratégica hasta su
SW-CMM® valoración. Se explica cómo se usó el modelo como marco de refe-
rencia para las partes de gestión y operación y cómo se utilizó el qué
y el cómo para la parte de Gestión de Negocio.
MoProSoft® es un modelo de procesos de En la planeación estratégica del 2003, la neación, mientras que el Grupo de Procesos se
reciente creación, para la industria de Organización decidió buscar una evaluación preocupaba por mejorar los procesos con base
software en México que fomenta la estan- en algún modelo reconocido en la industria. en los resultados de la evaluación anterior
darización de su operación a través de la Entre los modelos candidatos se encontraban (defectos fugados, defectos por caso de uso,
incorporación de las mejores prácticas en ISO 9000:2000, MoProSoft y SW-CMM®. En plataforma de trabajo, retrabajo, entre otros)
gestión e ingeniería de software. El objetivo ese momento MoProSoft® tenía la caracte- pero no se consideraban las expectativas de
de este modelo es mejorar la capacidad de rística de ser el documento base de la norma la alta dirección (utilidad esperada, retorno de
los procesos de las empresas. mexicana para la industria de software, pero inversión, valor presente neto, tasa interna de
por ser de reciente creación, no contaba con retorno, entre otros).
La estructura de MoProSoft® considera tres su método de evaluación, ni con un organis-
categorías: Alta Dirección, Gestión y Opera- mo que respaldara la aplicación del mismo. Experiencia en la Implantación
ción. Establece un mecanismo para alinear La decisión que se tomó para adoptar el mo- MoProSoft® se utilizó para alinear las estra-
las estrategias de las tres categorías. La delo orientado en la industria mexicana y lo- tegias de la parte operativa con las expec-
categoría de Alta Dirección contiene el pro- grar una evaluación reconocida, fue obtener tativas de la alta dirección. El proceso de
ceso de Gestión de Negocio. La categoría al menos un nivel 3 de SW-CMM® a través Gestión de Negocio se estableció formal-
de Gestión está integrada por los procesos de MoProSoft®. mente en la Organización. Una vez revisada
de Gestión de Procesos, Gestión de Proyec- la misión, visión y valores de la Organiza-
tos y Gestión de Recursos. Éste último está Problemática ción, se revisaron los objetivos estratégicos
constituido por los subprocesos de Recursos La Organización contaba con una serie de pro- y se definieron indicadores que permitieran
Humanos y Ambiente de Trabajo, Bienes, cesos para el desarrollo y mantenimiento de evaluar el cumplimiento.
Servicios e Infraestructura y Conocimiento software, administración de proyectos y para
de la Organización. La categoría de Opera- establecer la mejora continua de los mismos. <Categoría>
ción está integrada por los procesos de Ad- El desempeño de los procesos de desarrollo y Alta Dirección
ministración de Proyectos Específicos y de mantenimiento se medía a través de indicado-
Desarrollo y Mantenimiento de Software. res, lo que permitió robustecer estos procesos <<Dir>>
pero no proporcionaban el tipo de información + Gestión de Negocio
MoProSoft® está disponible en la página que necesitaba saber la alta dirección para
www.software.net.mx medir el cumplimiento de los objetivos estra-
tégicos. Durante varios años la Organización
Aborda las prácticas de Alta Dirección relacio-
Antecedentes establecía un Plan Estratégico para definir las nadas con la gestión del negocio. Proporciona
Desde hace varios años, ULTRASIST ha rea- metas, pero no con base en un proceso docu- los lineamientos a los procesos de la Categoría
de Gestión y se retroalimenta con la información
lizado un esfuerzo de mejora incremental al mentado. Existía una brecha entre las metas generada por ellos.
adoptar las mejores prácticas de diferentes de negocio y las de los procesos de desarrollo
modelos internacionales. Como resultado, de software por no contar con una retroalimen-
la Organización alcanzó el nivel de madurez tación bidireccional. Es decir, la dirección con- Los objetivos estratégicos se agruparon en
4 de SW-CMM®, utilizando a MoProSoft® sideraba los resultados de la valoración de los cuatro perspectivas como sugiere el Cuadro
como marco de referencia. procesos para realizar esta actividad de pla- de Mando Integral (Balanced ScoreCard).
Claudia Alquicira trabaja en Avantare Consutores como consultor en programas de mejora en organizaciones de desarrollo de software. Sus áreas de interés son la ingeniería
de software, calidad y tecnología orientada a objetos. Claudia cuenta con una Maestría en Ciencias de la Computación y participó como ponente en el SEPG LA 2004
El aspecto más importante para definir una Si bien la Organización contaba con una Base
métrica fue que el costo de producirla estuviera de Conocimiento con la información referente
a las Categorías de Gestión y de Operación,
balanceado con el beneficio potencial que será no consideraba la generada por la Alta Direc-
ganado en la organización ción. Hoy en día el repositorio considera toda
la información de la Empresa.
Categoría de Gestión y Operación Al finalizar cada incremento se evalúo el cum-
El Grupo de Procesos realizó un análisis de plimiento de los objetivos establecidos en el SW-CMM® a Través
brecha de las prácticas establecidas en la Plan Estratégico. Estas evaluaciones fueron de MoProSoft®
Organización con respecto a las estableci- más frecuentes que las establecidas en los Como resultado de este esfuerzo, la empresa
das en las otras categorías de MoProSoft®. años anteriores por ser un modelo de procesos pudo comprobar que es factible implantar Mo-
Como resultado se obtuvo que la Organiza- nuevo, que impactaba a toda la Organización. ProSoft® y que es un posible medio para las
ción contaba con procesos que cubrían gran Para este proyecto, se acordó contar con el organizaciones que deseen lograr una evalua-
parte de la categoría de Gestión y toda la apoyo de consultores internos y externos con ción exitosa en un modelo internacional como
categoría de Operación. conocimientos en CMM® y MoProSoft® para SW-CMM®. Para lograrlo es necesario cuidar
asegurar el apego a los modelos. Durante la las prácticas establecidas en CMM® y no con-
Con base en el análisis realizado, se prio- definición y el ajuste del proceso se estable- sideradas en MoProSoft®, por ejemplo:
rizaron los objetivos con la Dirección y se cieron las diferencias significativas entre los
elaboró el Plan de Procesos que contiene modelos MoProSoft® y SW-CMM®. Con res- • En el proceso de Gestión de Negocio, escri-
la estrategia para definir, implantar, medir y pecto al proceso de Gestión de Proyectos, se bir una política que contenga los lineamientos
evaluar los procesos. Las métricas que se es- dividió en dos procesos, Ventas y Oficina de que rijan los procesos definidos consideran-
<<Dir>>
+ Gestión de Negocio
<<Categoría>>
Gestión
<<Ges>>
Gestión de Procesos
<<Ges>>
Gestión de Proyectos
Categorías
<<Ges>>
Gestión de Recursos
Optimizado
Administrado <<Categoría>>
Operación
Definido
<<Oper>>
Administración de
Repetible Proyectos Específicos
Diagrama 1:
<<Oper>>
MoProSoft® como Inicial
Desarrollo y
marco de referencia. CMM Mantenimiento
de Software
do los compromisos establecidos en el nivel como un medio que facilite la transición a un objetivos, la descripción del proceso esta-
que se desea alcanzar de SW-CMM®. modelo internacional. blecidos por el modelo MoProSoft®. Como
• En el subproceso Recursos Humanos y Am- ejemplo, definir un proceso de Gestión de
biente de Trabajo del proceso de Gestión de Los modelos internacionales por lo general Recursos que incorpore los elementos de
Recursos, definir un mecanismo de renuncia consideraran una gran variedad de roles que los subprocesos de Recursos Humanos e
a la capacitación asignada. una micro y pequeña empresa mexicana no Infraestructura, Bienes, Servicios y hacer
• En el subproceso de Conocimiento de la Or- puede implantar. MoProSoft® no restringe a un proceso en Gestión de Conocimiento de
ganización del proceso de Gestión de Recur- ningún rol para que pueda ser realizado por la Organización.
sos, incluir las prácticas de administración una misma persona, o por diferentes personas
de configuración establecidas en CMM®. dentro del mismo proyecto y en la medida que La participación de consultores con expe-
• MoProSoft® no considera el Grupo de SQA la empresa crece, éstos pueden paulatinamen- riencia en el modelo que se desea implantar
que maneja CMM®, pero sí establece verifi- te ser asignados a personas diferentes. Se siempre es recomendable. En MoProSoft®
caciones y validaciones a productos y a pro- recomienda cuidar en la medida de lo posible por ser un modelo de reciente creación que
cesos, sin embargo, para cumplir con CMM® que una persona no sea juez y parte. Esto per- no cuenta con experiencia documentada, se
hay que conformar un Grupo de SQA que sea mite a la micro y pequeña empresa crear la cul- considera indispensable.
independiente al proyecto. tura de procesos y fomentar la disciplina.
• En cada uno de los procesos de MoProSoft in- Para las organizaciones que inician un pro-
cluir las verificaciones de las actividades por el Aunque MoProSoft® fue pensado principal- grama de mejora, el proceso de Gestión de
SQA de acuerdo a cada área clave de CMM®. mente para la pequeña y mediana empresa, Procesos podría ser el primero a definir e im-
• En las evaluaciones externas (proceso de ges- puede ser usado como marco de referencia para plantar puesto que con este proceso se ge-
tión de procesos) considerar un SQA externo. toda empresa que se inicia en un programa de nera el resto de los procesos. Se recomienda
mejora, para asegurar que las estrategias a lo una estrategia incremental de acuerdo a las
Ambos modelos llevan al mismo fin, pero largo de la organización están alineadas y para prioridades de la organización que permite
cada uno sigue un camino diferente. asegurar que los procesos ya establecidos, con- reducir los riesgos que conlleva la introduc-
templan las mejores prácticas. ción de muchos cambios y permita a la Direc-
Fortalezas de MoProSoft® ción observar resultados a corto plazo.
Gestión de Negocio, sirve como vínculo entre Recomendaciones Generales
la parte de operación, gestión y dirección para para Implantar MoProSoft® La responsabilidad de asignación de recur-
que los esfuerzos de la organización estén ali- Es importante conservar las mejores prác- sos humanos a los proyectos se puede atri-
neados para alcanzar la misión y visión. Para ticas con las que cuenta una organización buir al responsable de Gestión de Proyectos
empresas de reciente creación pueden utili- y, en caso de ser requerido, ajustarlas y la parte de registro de recursos humanos a
zar el qué y el cómo que define MoProSoft® para el cumplimiento con el propósito, los un área administrativa.
Ma. Julia Orozco ocupa la Dirección Técnica en la empresa Ultrasist. Es Matemática con estudios de Maestría en Ciencias de la Computación. Ha impartido cursos en
universidades, gobierno e iniciativa privada y ha sido ponente en diversos foros internacionales.
REQUERIMIENTOS
A
l desarrollar o construir algo, Captura y Organización Nombre: CRUD
como por ejemplo una casa o de Patrones Intento: este patrón se utiliza en los
una máquina, es muy útil apo- Para capturar y organizar los pa- casos donde se quiere realizar altas,
yarse en la experiencia anterior, ya trones de caso de uso, recomiendo bajas, cambios y consultas a alguna
sea de uno mismo o de otros. De esta ampliamente generar un reposi- entidad del sistema. Su nombre es un
manera sabremos que la solución va torio de patrones donde capturen acrónimo de las palabras en inglés
a funcionar, y tendremos identifica- al menos la siguiente información Create, Read, Update, Delete.
dos los problemas potenciales, así para cada patrón: Palabras clave: Creación, altas, bajas,
como soluciones para éstos. Estas cambios, catálogo
soluciones a problemas comunes se • Nombre: el nombre descriptivo
conocen como patrones, y se utilizan del patrón. Modelo 1: CRUD Completo
en diversos aspectos del desarrollo • Intento: captura cuál es el objeti-
de software. Ya en un artículo ante- vo de aplicar el patrón.
rior de SG se habló sobre patrones de • Características: estados de los
diseño, específicamente del patrón patrones, si son simples o comple-
Modelo-Vista-Controlador. En esta jos, comunes o infrecuentes.
ocasión, estudiaremos la aplicación • Palabras claves: palabras clave
de patrones al modelado de casos de que caractericen al patrón para fa-
uso, y en específico abordaremos el cilitar su búsqueda.
patrón CRUD. • Tipo: si el patrón afecta la estruc- Descripción: el patrón CRUD Comple-
tura del modelo o la descripción de to consiste en un caso de uso para
Contrario a lo que se pudiera pensar, un caso de uso. administrar la información (CRUD
un patrón de casos de uso no descri- • Modelo: un modelo de caso de Información), nos permite modelar
be un uso particular de un sistema. uso a aplicar. las diferentes operaciones para ad-
Más bien, captura técnicas para que • Descripción: la descripción del ministrar una entidad de información,
el modelo sea mantenible, reusable, modelo. tales como crear, leer, cambiar y dar
y entendible. Entonces, podemos de- • Aplicabilidad: cuándo y cómo de baja.
cir que los patrones de casos de uso aplicar el patrón. Aplicabilidad: este patrón deberá ser
capturan mejores prácticas para mo- • Discusión: completa discusión usado cuando todas las operaciones
delar casos de uso. sobre el patrón. contribuyen al mismo valor de nego-
• Ejemplo: un ejemplo donde uno cio y todas son cortas y simples.
La aplicación de patrones de casos de o más de los patrones se aplica.
uso nos trae los siguientes beneficios: • Modelo de análisis: diagrama con Modelo 2: CRUD parcial
• Aumentar la productividad. clases de análisis que proporciona
• Reutilizar elementos existentes (en una realización de los casos de uso.
este caso fragmentos de modelos).
• Evitar el retrabajo por errores. Una vez que hemos hablado sobre lo
• No invertir tiempo en resolver pro- que es un patrón de caso de uso, y
blemas ya resueltos. la forma de documentarlos, estudie-
• Aplicar la teoría al trabajo práctico. mos el patrón conocido como CRUD,
• Habilitar las herramientas de so- en sus variantes completa y parcial.
porte para modelar el desarrollo.
Saúl Cuesta Rodríguez es consultor de ITERA especializado en las prácticas de requerimientos y modelado de negocios. Es graduado de la Universidad Tecno-
lógica de Panamá como Ing. en Sistemas.
www.softwareguru.com.mx
PRÁCTICAS
REQUERIMIENTOS
E
l desarrollo guiado por pruebas (test-driven development), o Luego de esta breve explicación que sólo intenta inducir a los
TDD, es una de las principales prácticas de Extreme Program- desconocedores e introducir a los entendidos, se pueden vislum-
ming (XP), que propone una serie de pasos para probar antes brar cuáles podrían ser las ventajas y las desventajas de utilizar
de programar (test-first programming). dicha metodología.
Desventajas
• El éxito depende de los casos de prueba. Si se hizo una inter-
pretación incorrecta de un requerimiento, se escribirá un caso de
prueba que no satisfaga a los deseos del usuario, por lo tanto el
producto final será incorrecto.
Complementando la Metodología
Después de involucrarme un tiempo con la metodología de de-
sarrollo guiado por pruebas y de disfrutar sus virtudes y sufrir
sus defectos, he aprendido a resolver estas limitantes a través del
Ariel Súcari es consultor de It Era especializado en pruebas de software. Graduado de la Universidad CAECE en Buenos Aires, Argentina. Ha participado y coor-
dinado proyectos de la disciplina de pruebas en Inglaterra, Estados Unidos, Venezuela, Argentina y México durante los últimos 7 años.
DISEÑO
Patrones de Diseño
COMBINA Y GANA
Por Eduardo Noriega
E
n este artículo, mostramos la fortaleza de utilizar y combinar Según este problema, necesitamos verificar cuentas bancarias y es-
diversos patrones de diseño en la solución de un problema. tado crediticio para diferentes países. Para solucionarlo, podemos
Para lo que desarrollamos un ejemplo en cuya solución utili- utilizar el patrón Abstract Factory. Que nos permite crear una clase
zamos los patrones Abstract Factory, Facade y Observer. concreta para cada país, y trabajar con ellas de una manera total-
mente uniforme, logrando que nuestra aplicación cliente se abstrai-
Como sabemos, los patrones de diseño, describen un problema ga de las complejidades de trabajar con uno u otro país.
que ocurre repetidas veces en algún contexto determinado del
desarrollo de software y entregan una buena solución ya pro- La solución se modelaría utilizando el siguiente diagrama UML.
bada. Esto ayuda, a diseñar correctamente en menos tiempo, a
construir soluciones reutilizables y extensibles, y facilita la docu-
mentación. Los patrones nos dicen cómo aplicar de manera eficaz
la herencia, el polimorfismo y todas las ventajas que posee el pa-
radigma orientado a objetos.
Eduardo Noriega de Armas es Director General del proyecto AprendaMas.Net (www.aprendamas.net). Realizó sus estudios de Licenciatura y Maestría en la Universi-
dad Central de Las Villas, en Cuba. Ha sido profesor en las Universidades Central de Las Villas en Cuba, Universidad de Guadalajara e Instituto Tecnológico y de Es-
tudios Superiores de Occidente (ITESO). Ha sido consultor en varias empresas y forma parte del equipo de desarrollo de la compañía Grupo Flextronics S.A. de C.V.
DISEÑO
Esa clase, tratará toda la lógica del patrón Abstract Factory como un Por su parte, la interfaz IObserver ofrecerá ese método Update()
subsistema, encapsulando su complejidad, ofreciendo al cliente una que será invocado por el sujeto, a través del cual, el observador se
sencilla y única interfaz; permitiendo que el trabajo del cliente sea lo enterará del cambio de estado en el sujeto y realizado una acción
más sencillo posible. al respecto.
La implementación de lo que hemos dicho, nos la da el patrón Faca- La inclusión del patrón Observer en nuestra solución se refleja en el
de. Que nos sugiere la implementación de una Fachada que interac- siguiente diagrama:
túe con el subsistema, ofreciendo al cliente una interfaz sencilla.
6OB HSBO QBSUF EF OVFTUSP -PBOUFSJPSQBSFDFVOQPDPSFEVOEBOUF
QFSP &ORMAS )NCORRECTAS DE 3A
UJFNQPTFGSVTUSBDPOTJUJPTXFCEPOEFOP UJFOFWBSJPTQVOUPTBSFTBMUBS
ZTFEFCFOUP BER SI UN 3ISTEMA ES 5SABLE
FODPOUSBNPTMBJOGPSNBDJØORVFCVTDBNPT NBSFODVFOUBQBSBDSFBSTJTUFNBTVTBCMFT &OUSF MPT FSSPSFT NÈT DPNVOFT
FTUÈ
$POQSPDFTBEPSFTEFUFYUPRVFQJFSEFOIP -PTVTVBSJPTEFVOTJTUFNBTFFTQFDJGJDBO QFOTBS RVF DPO IBDFS VOB EFNPT
SBT EF USBCBKP TJ TF EB VO DMJD FRVJWPDBEP -PTVTVBSJPTUJFOFOVODPOKVOUPEFNFUBT USBDJØO EF VO TJTUFNB
P BQMJDBS VOB
EFMNPVTFDPODPOUSPMFTSFNPUPTDPONV 6OTJTUFNBEFCFQFSNJUJSBMPTVTVBSJPTMP FODVFTUBFOUSFMPTVTVBSJPT
ZBFTTVGJ
DIPNÈTCPUPOFTEFMPTRVFOFDFTJUBNPT HSBS EJDIBT NFUBT EF GPSNB FGJDJFOUF
DPO MP DJFOUF QBSB EFUFSNJOBS TV VTBCJMJEBE
DVBMRVFEBSÈOTBUJTGFDIPT "VORVF FTUBT UÏDOJDBT TPO ÞUJMFT QBSB
-B VTBCJMJEBE TF WF DPNP MB SFTQVFTUB B NV 6O TJTUFNB TF VUJMJ[B EFOUSP EF VO DPO PCUFOFSSFUSPBMJNFOUBDJØO
OPTPOTV
DIBT EF FTUBT GSVTUSBDJPOFT FO MB JOUFSBDDJØO UFYUP FO QBSUJDVMBS QPS FKFNQMP
CBKP VO GJDJFOUFTQBSBEFUFSNJOBSTJVOTJTUFNB
DPOUFDOPMPHÓB&TUFBSUÓDVMPQSFUFOEFEBSVO BNCJFOUFFTQFDÓGJDP
FT VTBCMF $POTVMUBS DPO FYQFSUPT FO
QBOPSBNBTPCSFMPRVFMBVTBCJMJEBEFT ZOP VTBCJMJEBEOPTQVFEFTFSWJSQBSBPCUF
FT
%F MB NJTNB NBOFSB
SFDPNJFOEB BMHV z#ØMO 3ABER SI UN 3ISTEMA OFSSFDPNFOEBDJPOFT4JOFNCBSHP
OP
OBTBDUJWJEBEFTRVFTFEFCFOMMFWBSBDBCPQBSB ES 5SABLE QPEFNPT DBMJGJDBS MB VTBCJMJEBE EF VO
DSFBSTJTUFNBTNÈTVTBCMFT
ZFYQMJDBDØNPTF -BÞOJDBGPSNBEFBWFSJHVBSMP
FTPCTFSWBOEP TJTUFNBFOCBTFBMBPQJOJØOEFVOFY
QVFEFO JODPSQPSBS EJDIBT BDUJWJEBEFT B MPT BTVTVTVBSJPTVUJMJ[BSMPQBSBMMFWBSBDBCPBD QFSUP
ZBRVFÏTUFOPFTSFQSFTFOUBUJWP
QSPZFDUPT UJWJEBEFTSFBMFT&TUPTFDPOPDFDPNPQSVFCBT EFMHSVQPEFVTVBSJPTSFBMFT
EFVTBCJMJEBE
z1UÏ ES 5SABILIDAD &OMBTQSVFCBTEFVTBCJMJEBE
MPTPCTFSWBEP ,A 5SABILIDAD COMO 0ROCESO
&M UÏSNJOP VTBCJMJEBE TF QVFEF SFGFSJS B SFT OP MF FOTF×BO B MPT QBSUJDJQBOUFT DØNP 1BSB DSFBS VO TJTUFNB VTBCMF
TF SFDP
EPTDPODFQUPT VUJMJ[BSFMTJTUFNB
ZUBNQPDPDPOUFTUBOQSF NJFOEBTFHVJSVOQSPDFTPEFEJTF×PDFO
-BVTBCJMJEBEDPNPBUSJCVUPEFDBMJEBEEF HVOUBT EFCF TFS DPNP TJ MPT QBSUJDJQBOUFT USBEPFOFMVTVBSJP
EPOEFTFJOWPMVDSBB
VOTJTUFNB1PSFKFNQMPi/FDFTJUBNPTEFTB FTUVWJFSBOTPMPT MPTVTVBSJPTEVSBOUFFMEFTBSSPMMPEFMTPGU
SSPMMBSVOBJOUSBOFUVTBCMFw )BZUSFTGBDUPSFTDMBWFQBSBSFBMJ[BSMBTQSVFCBT XBSF
ZTFSFBMJ[BOQSVFCBTEFVTBCJMJEBE
-B VTBCJMJEBE DPNP VO QSPDFTP RVF TF EFVTBCJMJEBE FOEJWFSTBTFUBQBTEFMQSPZFDUP&MEJTF×P
BQMJDB EVSBOUF VO QSPZFDUP &TUP UBNCJÏO TF t-PTQBSUJDJQBOUFTEFCFOTFSVTVBSJPTBD DFOUSBEPFOFMVTVBSJPFTVODPOKVOUPEF
DPOPDF DPNP iJOHFOJFSÓB EF VTPw
P iEJTF×P UVBMFTPGVUVSPTEFMTJTUFNB6OFSSPSDP BDUJWJEBEFT Z UÏDOJDBT
DVZP PCKFUJWP FT
DFOUSBEPFOFMVTVBSJPw NÞO
FTEFKBSRVFMPTHFSFOUFTQSVFCFOFM DSFBSVOTJTUFNBVTBCMF5BMFTBDUJWJEBEFT
TJTUFNB
FO MVHBS EF MPT PQFSBEPSFT
RVF TFQVFEFOJODMVJSBUSBWÏTEFMBTFUBQBTEF
5SABILIDAD COMO !TRIBUTO TPOMPTRVFSFBMNFOUFWBOBVUJMJ[BSFMTJT EFTBSSPMMPEFVOTPGUXBSF
EFTEFFMDPO
1BSB EFGJOJS VTBCJMJEBE DPNP BUSJCVUP EF DB UFNB
VOBWF[RVFFTUÏFOQSPEVDDJØO DFQUVBM
IBTUBMBTQSVFCBTGJOBMFT
ZBVOFO
MJEBE
FDIFNPTVOWJTUB[PBMBEFGJOJDJØORVF t-PTQBSUJDJQBOUFTEFCFOJOUFOUBSSFBMJ FMNBOUFOJNJFOUPZTPQPSUF/PFTVOB
VUJMJ[BMBOPSNB*40 [BS MBT UBSFBT RVF OPSNBMNFOUF SFBMJ[B SFDFUBQBTPBQBTP&TNÈTVOBGJMPTPGÓB
i-B NFEJEB FO RVF VOQSPEVDUPQVFEFTFS SÓBODPOFMTJTUFNB&TDSVDJBMRVFFTUBT RVFVOBNFUPEPMPHÓB4FUSBUBEF
HFOVJ
VUJMJ[BEP QPS VTVBSJPT FTQFDÓGJDPT
QBSB BM UBSFBTTFBOSFBMJTUBT OBNFOUFCVTDBSMBDSFBDJØOEFBMHPRVF
DBO[BSNFUBTFTQFDÓGJDBT
EFGPSNBFGFDUJWB
t&MDPOUFYUPCBKPFMRVFTFSFBMJ[BMBQSVF QVFEBVUJMJ[BSTFQPSVOBBVEJFODJBSFBMZ
FGJDJFOUF Z TBUJTGBDUPSJB
EFOUSP EF VO DPO CB
EFCFTFSMPNÈTDFSDBOPQPTJCMFBMDPO SFDPSEBSRVFFMTJTUFNBFTQBSBTVTVTVB
UFYUPEFVTPw UFYUPSFBMFORVFFMTJTUFNBTFVUJMJ[BSÈ SJPT
ZOPQBSBTVTEFTBSSPMMBEPSFT
$ONNA -AURERES CONSULTORA EN DISE×O DE INTERFACES Y ARQUITECTURA DE INFORMACIØN #ON MÉS DE A×OS DE EXPERIENCIA Y HA FACILITADO MÉS DE PRUEBAS DE USABI
LIDAD $ONNA CONTINUAMENTE SORPRENDE A SUS COLEGAS AL HABLAR CON GENTE EN VEZ DE HACERLO CON COMPUTADORAS Y DISE×AR A LA ANTIGàITA CON LÉPIZ MARCADORES Y HOJAS
DE COLORES MAADMOBCOMAUDONNABLOG
h!HORA MISMO
ERES UN PRISIONERO
DE CADA APLICACIØN
QUE USASv
4HEODOR
(OLM .ELSON
&MEJTF×PDFOUSBEPFOFMVTVBSJPJO t 1FSDFQDJØO -B QFSDFQDJØO TF SFGJFSF B DJFOEP NPEFMPT NFOUBMFT EF DØNP GVODJP
WPMVDSBUSFTBTQFDUPTQSJNPSEJBMFT MB NBOFSB FO RVF MBT QFSTPOBT DBQUBNPT Z OBOMBTDPTBT&OUFOEFSEJDIPTNPEFMPT
OPT
$POPDFSMBTIBCJMJEBEFTZMJNJUB PSHBOJ[BNPT JOGPSNBDJØO *OWPMVDSB MB BE QVFEFBZVEBSBEJTF×BSNFKPSFTTJTUFNBT
ZB
DJPOFTIVNBOBT RVJTJDJØOEFJOGPSNBDJØOBUSBWÏTEFMPTDJO RVFOPTEBOVOBHVÓBTPCSFiDØNPQJFOTBOw
%JTF×BSQBSBVOHSVQPQBSUJDVMBS DP TFOUJEPT DMÈTJDPT
NÈT MB QSPQJPDFQDJØO OVFTUSPTVTVBSJPT
EFQFSTPOBT DPODJFODJB EF OVFTUSPT NPWJNJFOUPT
Z FM
5SBCBKBSDPOEJDIBTQFSTPOBTBUSB CBMBODF-BWJTUBFTFMTFOUJEPNÈTSFMFWBOUF %JTF×BS QBSB MPT VTVBSJPT &M TFHVOEP
WÏTEFMQSPDFTP QBSBFMEJTF×PEFTJTUFNBTDPNQVUBDJPOBMFT QVOUP DSVDJBM TPCSF FM EJTF×P DFOUSBEP FO
FMVTVBSJP
FTUÈSFMBDJPOBEPDPOEJTF×BSBMHP
$POPDFSBMBTQFSTPOBT t5PNBEFEFDJTJPOFT&YJTUFMBDSFFODJBEFRVF QBSBVODPOKVOUPQBSUJDVMBSEFQFSTPOBT
FT
1BSB EJTF×BS TJTUFNBT VTBCMFT
MP QSJ MPTTFSFTIVNBOPTUPNBNPTEFDJTJPOFTEFGPSNB EFDJS
MPTGVUVSPTVTVBSJPTEFMTJTUFNB1BSB
NFSP RVF TF OFDFTJUB FT FOUFOEFS MBT MØHJDB&TUPFT
RVFBOBMJ[BNPTUPEBTMBTPQDJP EJTF×BSVOTJTUFNBVTBCMF
SFRVFSJNPTDPOP
IBCJMJEBEFTZMJNJUBDJPOFTEFMPTTFSFT OFTZFMFHJNPTMBRVFDPOTJEFSBNPTNÈTDPOWF DFSZFOUFOEFSBFTUBTQFSTPOBT
IVNBOPT"DPOUJOVBDJØOMJTUBNPTBM OJFOUF4JOFNCBSHP
MBNBZPSÓBEFMBTEFDJTJPOFT
HVOBT DBSBDUFSÓTUJDBT DMBWF Z EF TVNB OPTFUPNBOBTÓ&ODBNCJP
MPRVFUÓQJDBNFOUF t *EFOUJGJDBS B MPT VTVBSJPT &O NVDIPT
JNQPSUBODJB QBSB MB VTBCJMJEBE
QFSP TVDFEF
FTRVFOPTDPOGPSNBNPTDPOMBQSJNFSB TJTUFNBT
FT GÈDJM EFUFSNJOBS RVJÏOFT TPO MPT
IBZ NVDIBT PUSBT
EFQFOEJFOEP EF SFTQVFTUBSB[POBCMFRVFSFTVFMWFVOBTJUVBDJØO VTVBSJPT5BM FT FM DBTP EF MB NBZPSÓB EF MBT
DBEBBVEJFODJBZTJTUFNBFTQFDÓGJDP "TÓRVFEFCFNPTFTUBSDPOTDJFOUFTEFRVFOVFT BQMJDBDJPOFTEFOFHPDJP
RVFTFEFTBSSPMMBOB
USPTVTVBSJPT
NVZQSPCBCMFNFOUFOPMFBOUPEB MBNFEJEB
QBSBVOBBVEJFODJBMJNJUBEBZDP
t.FNPSJB-BNFNPSJBIVNBOBUJF MB JOGPSNBDJØO RVF MFT QSFTFOUBNPT
TJOP RVF OPDJEB4JOFNCBSHP
OPTJFNQSFMPTVTVBSJPT
OFNVDIBTMJNJUBDJPOFT&OUSFFMMBT
MB MMFHBSÈO IBTUB MB JOGPSNBDJØO RVF OFDFTJUBO P TPO UBO DPOPDJEPT
P UBO IPNPHÏOFPT 1PS
DBQBDJEBEEFNFNPSJBiFOUSBCBKPwZ DSFFORVFOFDFTJUBO
ZZBOPMFFSÈOFMSFTUP FKFNQMP
JNBHJOFNPTFMDBTPEFVOQPSUBMEF
QBSB QPEFS HVBSEBS BMHP FO NFNPSJB TFSWJDJPTQÞCMJDPT
EF MBSHP QMB[P
SFRVFSJNPT FTUVEJBS t #ÞTRVFEB EF JOGPSNBDJØO -BT QFSTPOBT
MP
PFOTBZBSMPDPODJFSUBEFEJDBDJØO SFBMJ[BNPT CÞTRVFEBT EF EPT NBOFSBT EJGF t $POPDFS B MPT VTVBSJPT 6OB WF[ RVF
-PT TJTUFNBT VTBCMFT NJOJNJ[BO MB SFOUFT-BQSJNFSB
FTDVBOEPTBCFNPTFYBD UFOFNPTJEFOUJGJDBEPTBOVFTUSPTVTVBSJPT
DBOUJEBEEFJOGPSNBDJØORVFTFEFCF UBNFOUFDVÈMFTMBJOGPSNBDJØORVFCVTDBNPT
EFCFNPT BQSFOEFS TPCSF FMMPT
Z FOUFO
NFNPSJ[BS &TUP QVFEF JOWPMVDSBS FM TBCFNPTRVFFYJTUF
ZQPEFNPTFYQMJDBSMPRVFEFSRVÏFTMPRVFOFDFTJUBOEFMTJTUFNBFO
EFTQMJFHVF EF JOGPSNBDJØO SFMFWBOUF CVTDBNPTBFTUFUJQPEFCÞTRVFEBTFMFDPOP DVFTUJØO -BT UÏDOJDBT NÈT ÞUJMFT
JOWPMV
SFDPSEBUPSJPT
FO QVOUPT BEFDVBEPT
DFDPNPiFMFNFOUPDPOPDJEPw&MPUSPUJQP
FT DSBO PCTFSWBS B MBT QFSTPOBT Z IBCMB DPO
PQPSFKFNQMP
QSPWFFSPQDJPOFTGMFYJ MBFYQMPSBUPSJB
FOMBDVBMOPFTUBNPTTFHVSPTFMMBT TPCSF MBT BDUJWJEBEFT RVF SFBMJ[BO
FO
CMFTQBSBFMNBOFKPEFDPOUSBTF×BT EFRVÏFTMPRVFCVTDBNPT
OJTBCFNPTDØNP MVHBS EF QSFHVOUBSMFT EJSFDUBNFOUF MP RVF
EFGJOJSMP QSFDJTBNFOUF &T JNQPSUBOUF DPOPOFDFTJUBOIBDFSMP
OPFTCVFOBQSÈDUJDB
ZB
t&SSPSFT1PEFNPTFTUBSTFHVSPTEFRVF DFSBNCPTDPNQPSUBNJFOUPTEFCÞTRVFEB
ZB RVFMBHFOUFUÓQJDBNFOUFTFCBTBFOMBTDB
MPTVTVBSJPTEFOVFTUSPTTJTUFNBT
UBSEFP RVF DJFSUPT NÏUPEPT GVODJPOBO NFKPS QBSB SBDUFSÓTUJDBT RVF ZB DPOPDF EF VO TJTUFNB
UFNQSBOPDPNFUFSÈOFSSPSFT
QPSRVFUP CÞTRVFEBT EF FMFNFOUP DPOPDJEP
Z PUSPT
F JHOPSB PUSBT QPTJCJMJEBEFT RVF QPESÓBO
EBTMBTQFSTPOBTFTUBNPTTVKFUBTBFRVJ QBSBCÞTRVFEBTFYQMPSBUPSJBT FYJTUJS 1BSB DPOPDFS NÈT TPCSF OVFTUSPT
WPDBSOPT6OTJTUFNBVTBCMF
EFCFFTUBS VTVBSJPT
QPEFNPT BQMJDBS EJTUJOUBT UÏDOJ
EJTF×BEP QBSB UPMFSBS FSSPSFT
P QPEFS t .PEFMPT NFOUBMFT 6OB NBOFSB FO RVF DBT
UBMFTDPNPFOUSFWJTUBT
FODVFTUBT
GPDVT
SFDVQFSBSTFGÈDJMNFOUFEFFMMPT MBT QFSTPOBT FOUFOEFNPT FM NVOEP
FT IB HSPVQT
ZPCTFSWBDJØO
"OUJQBUSPOFT
-B.FKPS'PSNBEF)BDFSVO1nTJNP4JTUFNBEF4PGUXBSF
1PS+BWJFS(PO[gMF[4gODIF[
4JMPTEFTBSSPMMBEPSFT
UJFOFOVOBDPMFDDJØO
EFNBMBTDPTUVNCSFT
EFDPEJmDBDJØO
BOUJQBUSPOFT
MPT
BSRVJUFDUPTOPOPT
RVFEBNPTBUSÈT
e
Villagr
d
o
el
o
Por Jo
l
De
e
sarro l
oj u e g
V i
¿Po
d
r D ó nde Empe
zar?
han
o los vid
cre
os, y siem
alme
eojueg ar uno. Fin spués de
; de
gustad roceso para esarrollarlos er proyecto é
bía
pre hante,
,
me el p rad prim enc
iño siempre de cómo eso de aprenderfecto como ntonces comscasa;
esde n curiosidad e era tiemp eojuego pe mpiezo?” E s era muy e guaje
D tenidoos, decidí qunutos un vidpor dónde euel entonce r: “¿Qué len ¿qué
añ mi ¿Y aq ui al?,
hace 6 ar por unos a realidad: “rnet, que en ar de disminor en especi n los jue-
idealiz ue volver a l ión en Inte taban en lugn compilad ómo se hace tenía.
tuve q ar informac das aumen ¿se usa algú render?, ¿c eguntas que
a busc a que mis duse utiliza?, é necesito aps muchas pr
parecí gramación juego?, ¿qu lgunas de la
de protura tiene unlas?” Eran a
estruc ra las conso
gos pa
Real-Time Rendering Tomas Akenine-Moller Las tarjetas gráficas con arquitectura pro-
y Eric Haines gramable tienen dos núcleos o procesadores
programables, uno se ejecuta a nivel de ob-
Desarrollo de Juegos Game Programming Gems. Mark DeLoura jetos y otro se ejecuta a nivel de pixeles. Los
(Serie de 6 libros hasta el momento). (Editor)
Shaders que se pueden ejecutar en ellos, se
Core Techniques and Algorithms in Daniel Sanchez-Crespo conocen como Vertex Shaders y Pixel Sha-
Game Programming ders respectivamente (los últimos también
se conocen como Fragment Shaders).
Inteligencia Artificial AI Game Programming Wisdom 3 Steve Rabin
Las tarjetas gráficas con arquitectura pro-
Modelado Modeling a Character in 3DS Max Paul Steed gramable, también tienen soporte para la ar-
quitectura fija, y es decisión de la aplicación,
utilizar una u otra arquitectura o incluso uti-
pios juegos de GBA en una PC, usando un gun libro que enseñe todo lo relacionado al lizar las dos. Es por eso que muchas veces,
emulador, así como información de cómo desarrollo de videojuegos, así que los cate- aunque tengamos un procesador avanzado,
correrlos en una consola GBAreal. goricé en 6 grupos principales, y por razones si no tenemos una tarjeta gráfica con arqui-
de espacio, sólo menciono unos cuantos de tectura programable como lo requieren algu-
Referencias en línea cada categoría. nos juegos, no podremos ejecutarlos.
Algunos links con mucha información son
los siguientes: ¿Qué tarjeta gráfica me puede Tips generales
www.opengl.org – El sitio oficial de OpenGL, servir para empezar? •Es más fácil empezar por 2D, y algunas co-
tiene documentación y foros de OpenGL para El mercado de las tarjetas gráficas es domina- sas de 2D se aplican a 3D también.
principiantes y avanzados. do por dos compañías, ATI y NVIDIA. Las dos •Es más sencillo aprender OpenGL que Di-
ofrecen tarjetas gráficas de muy buena calidad rectX (en mi opinión).
msdn.microsoft.com/library/en-us/directx9_ y de una gran variedad de precios, dependien- •Jugar muchos juegos. Es la mejor manera
c/directx_sdk.asp – Información de DirectX. do de la generación de la tarjeta. Muchas ve- de sacar ideas para juegos nuevos.
ces, al ver las cajas de las tarjetas pueden sur- •Ayudar a otros. También se aprende mucho
www.gamedev.net – Un sitio con mucha docu- gir más preguntas, ya que la información que cuando se enseña.
mentación de desarrollo de juegos en general y tienen, puede parecer extraña. Por ejemplo, es •Tratar de hacer un clon de algún juego 2D
foros para los diferentes aspectos del desarro- importante entender lo que son los Shaders. sencillo (Tetris, Pong) y después mejorarlo.
llo. •Para un juego 3D, es más rápido desarro-
Shaders: hasta hace algunos años, se decía llarlo en equipo.
www.gamasutra.com – Un sitio donde se pue- que las tarjetas gráficas tenían una arqui-
den encontrar las más recientes noticias de tectura fija (Fixed-Function Pipeline) ya que
la industria de los videojuegos, pero también la información enviada desde la aplicación,
cuenta con algo de información técnica. siempre pasaba por las mismas operaciones
dentro de la tarjeta gráfica. Esto ha cambia-
www.flipcode.com – Un sitio que ya no se man- do, y actualmente las tarjetas gráficas tienen
tiene por sus creadores, pero tiene una extensa una arquitectura programable. Conclusión
colección de artículos, todavía en línea, relacio- El tema de desarrollo de videojuegos
nados al desarrollo de videojuegos. Una arquitectura programable significa que es muy extenso, pero espero haber
desde la aplicación, se le puede indicar a la respondido las preguntas básicas
¿Qué libros me pueden servir? tarjeta gráfica que ejecute ciertos programas acerca de cómo empezar. El siguiente
La tabla en la parte superior de esta página pequeños (llamados Shaders) ella misma, li- artículo tiene información mas espe-
lista algunos libros que considero buenos berando al CPU completamente de ejecutar cífica en cuanto a la estructura de un
y que son útiles, independientemente del esas funciones. Es por esto que las tarjetas juego. Si dejé alguna pregunta sin
nivel de conocimiento de programación de gráficas actuales, cuentan con su propia responder, me pueden contactar en
videojuegos que se tenga. Como ya lo había memoria y procesador, conocido como GPU joel.villagrana@gmail.com y trataré
mencionado, hasta el momento, no sé de al- (Graphics Processing Unit). Muchos de los de responder lo más pronto posible.
Aunque la mayor parte de las herramientas ¿Cómo seleccionar las mejores herramientas
mencionadas son ampliamente utilizadas hoy para cada una de estas etapas? Las revisiones
en día, otras no cuentan con el mismo nivel de de producto son útiles, pero no son la última pa-
difusión y adopción. Sin embargo, la intención labra, porque cada situación es única (como los
es destacar el impacto que tienen todas ellas proyectos), y los procesos de adopción en cada
en relación con el desarrollo colaborativo. Vale organización son muy variados. Algunos de
la pena resaltar que, estas herramientas no los aspectos a considerar dentro de esta gama
sólo son exclusivas para el desarrollo de pro- son: metodología y procesos; presupuesto para
yectos open source, sino que se pueden utili- hardware-software, infraestructura actual; ta-
zar para cualquier tipo de proyecto. maño de proyectos y equipos de trabajo.
Francisco Castrillo es Director de Soluciones de Nexusware, empresa pionera en México en el desarrollo de soluciones corporativas basadas en Java. Como
expositor, ha impartido seminarios relativos a la tecnología Java EE en diversos foros a nivel nacional e internacional. Francisco es miembro del Consejo de la
Comunidad Java México (www.comunidadjava.org) y es egresado de Matemáticas Aplicadas del ITAM.
La solución parece suficiente. No obstante, nos damos cuenta que estamos en un gran
aprieto: Cantantes de Ópera que cantan como Mariachi… ¡Ah, y bailan!
Hasta ahora no hemos tenido éxito entre clases rígidas y malos diseños, lo que defini-
tivamente nos convierte en presa fácil de un exceso de presupuesto. Es entonces que
uno de los diseñadores sugiere: “intentémoslo con interfaces”.
Esta solución parece correcta. Incluso hasta el trompetista ha deja- de estrategias para cada método con alto potencial de cambio. Para
do de cantar, para dedicarse únicamente a tocar música y bailar. cada una de estas estrategias se construye una interfaz o clase
abstracta que define qué es lo que hacen cada uno de los conjun-
Sin embargo, este diseño tiene un problema muy grave: “reutili- tos de algoritmos, y aplicando el patrón de estrategias obtenemos
zación de código”. Cuando volteamos y vemos que los métodos el resultado en la figura 7.
bailar, tocar música y cantar tienen que ser implementados por
las clases concretas, estamos en aprietos.
Patrón de estrategia
Es en estos momentos, donde el patrón de diseño denominado
“Estrategia” llega a nuestro rescate. Este es uno de los patrones
descritos en el libro “Gang of Four”, que como sabemos, es la
biblia de los patrones de diseño orientado a objetos. De acuerdo
con esto, el patrón estrategia: “Define una familia de algoritmos
encapsulados y los hace intercambiables (…) permite al algorit-
mo cambiar, independientemente del cliente que lo utiliza”
Conclusión
Después de darle muchas vueltas a este problema,
llegamos a una solución que cumple los requerimientos, y
además explota las ventajas de la orientación a objetos.
Figura 6. Solución propuesta por el patrón de estrategia Esta solución es mejor, pues si se desea agregar un nuevo
músico, sólo es necesario heredar de músico y en el con-
Lo que tenemos que hacer entonces es encontrar cuáles son los po- structor, enviar como parámetro sus comportamientos. De
tenciales de cambio, es decir, cuáles clases y/o comportamientos esta forma, nuestro diseño queda abierto para extensión,
tienen una gran probabilidad de ser modificadas y aislar los cambios pero cerrado para modificación y lo mejor de todo, si en un
de las demás clases, y al mismo tiempo, explotar el polimorfismo momento dado, se requiere cambiar el comportamiento de
agregando una clase abstracta o una interfaz para cubrir las diferen- hacer Música, sólo creamos un nuevo comportamiento: Can-
tes estrategias. tar Como Gloria Trevi, y lo asignamos al músico en cuestión,
e incluso lo podemos hacer en tiempo de ejecución, y listo,
Siguiendo este consejo, se detecta que el comportamiento de los mú- ahora tenemos un Mariachi que canta de pelo suelto.
sicos es el que tiende a cambiar, entonces se decide crear un conjunto
Carlos “Fofo” Ordóñez es Ingeniero en Sistemas Computacionales por el ITESO. Actualmente labora como arquitecto de software en Vision Consulting
Occidente, ubicada en el Centro de Software de Guadalajara. Colabora como profesor de asignatura en el ITESO, donde imparte materias de Progra-
mación e Ingeniería de Software. La información en este artículo representa el punto de vista del autor y no necesariamente el de Vision Consulting o
ITESO. fofo@iteso.mx
Luis Vinicio León Carrillo es Director de e-Quallity S.A. de C.V., empresa especializada en prueba de software. Es profesor-investigador
del Departamento de Electrónica, Sistemas e Informática del ITESO. Es doctor por la Universidad Técnica de Clausthal, Alemania; su tesis
tiene que ver con aplicaciones de métodos y lenguajes formales que incrementan significativamente la eficiencia y la efectividad de la
prueba de software.
Me da mucho gusto retomar esta columna en la revista, después de un los defectos que aún se encuentran en el producto, así como del costo
receso de aproximadamente un año. Durante ese tiempo hemos visto de detectarlos.
cosas interesantes que buscaremos sistematizar y exponer aquí duran- 2. Dependiendo de los datos del diagnóstico, el interesado puede optar
te éste y los siguientes números. por contratar las pruebas profundas.
3. Si después de estas pruebas y luego de aplicar nuestro modelo de
En [1] describimos los problemas que pueden presentarse cuando el calidad de productos, el software muestra un excelente comportamien-
software no se prueba adecuadamente, analizándolos a la luz de dos to (después de las pruebas regresivas [3]), se hace acreedor a ostentar
proyectos extremos en los que participamos. nuestro sello de calidad. (Este modelo fue validado con apoyo del Con-
sejo Nacional de Ciencia y Tecnología, CONACYT.)
Aquí presentaremos los resultados de la evaluación de la calidad de una
muestra de productos mexicanos en el marco del Concurso e-Quallity Utilizando esta experiencia, a mediados del año pasado lanzamos este
2007, del cual hicimos la premiación en el pasado Congreso SG’07 Confe- concurso, en el que convocamos a la comunidad desarrolladora nacio-
rencia y Expo. No se trata de un estudio estadístico riguroso, pero vemos nal de software a enviarnos productos terminados pequeños (máximo
estos datos como una aportación inicial para llenar el enorme hueco de 30 meses-hombre de desarrollo) para encontrar el producto con la me-
información que tenemos respecto a métricas de calidad de los productos nor densidad de defectos (cantidad de defectos entre tamaño).
mexicanos y su repercusión en la industria.
Una cantidad considerable de productos fueron rechazados, ya fuera
El impacto de probar inadecuadamente el software porque se excedían en el tamaño o porque no estaban completamente
En los Estados Unidos, tan solo en 2003, las pérdidas en su industria por terminados. La muestra final sobre la que se generaron los datos que
la inexistencia o mala aplicación de pruebas a productos de software as- mostraremos consta de 24 productos. Su tamaño se midió utilizando
cendieron a casi $600 mil millones, que equivalen a aproximadamente una métrica interna semejante a los puntos de función.
el 1% de su producto interno bruto [2].
A los productos concursantes les aplicamos una variación del diagnós-
Dichas pérdidas consideran no solamente las del sector de Tecnologías tico descrito arriba y, a cada participante le enviamos la primera capa
de Información, sino de muchos otros sectores que utilizan el software de defectos que detectamos en su producto, la estimación de los que
en sus operaciones. Se trata de pérdidas que no son sólo cuantiosas, aún quedaban en su sistema, y la comparación de su producto frente a
sino que desgastan gran parte de su sector productivo. otros, en términos de densidad de defectos.
—Luis Vinicio
En Septiembre del 2007 Kernel Technologies Group S.A. de C.V. fue procesos como en los productos de trabajo. La capacitación en los
la primera empresa mexicana en alcanzar el nivel 2 de CMMi bajo la temas de aseguramiento de calidad se complementó internamente
nueva versión del modelo para desarrollo de software versión 1.2. explicando y revisando los checklists de cumplimiento de activida-
Pero más importante que esto es el hecho de que basaron su estra- des, así como los artefactos para verificación y validación.
tegia de implementación en el Modelo MoProSoft. En este artículo,
compartimos algunas de nuestras experiencias y opiniones relacio- Complementar actividades utilizando el análisis de brecha
nadas con este proceso de mejora, esperando que le sean de utili- Una presentación realizada por la AMCIS en marzo del 2005 para mos-
dad a los lectores de SG. trar los resultados de las Pruebas Controladas de MoProSoft contenía
un análisis de brecha entre el modelo MoProSoft vs. CMMI N2 en su
Para nosotros fue una gran ayuda contar con MoProSoft como refe- versión escalonada, indicando que el 67% de las prácticas se cubrían
rencia, ya que a diferencia de CMMi, MoProSoft sí cuenta con una en forma total, el 10% se cubrían en forma amplia, 17% en forma par-
secuencia y lista de actividades a realizar bajo un enfoque y lógica cial y el 6% no estaban cubiertas. Nosotros pusimos especial atención
de negocio. La documentación que proporciona MoProSoft fue de en esta información, ya que ese 67% significaba que solo tendríamos
gran ayuda en la implementación de CMMi ya que es muy clara en que completar el 33% restante en cuanto a definición de procesos,
las actividades que deben realizarse, las entradas y salidas de cada ahorrando así tiempo y esfuerzo en ésta fase del proyecto. Fue así que
proceso, así como la asignación específica de responsabilidades. conseguimos de parte de AMCIS el detalle de este análisis de brecha
realizado por Cecilia Montero (Lead Assesor) y Gisela Rivera, donde se
Factores críticos de éxito detalla la relación entre las prácticas de las Areas de Proceso de CMMI
A continuación explicamos los que consideramos fueron factores crí- y los procesos/actividades que las cubrían. Tomando como base éste
ticos de éxito para lograr el nivel 2 de CMMi. mapeo, iniciamos a analizar qué procedimientos, actividades y pro-
ductos tendríamos que agregarle al MoProSoft para que cumpliera
Capacitación totalmente con cada práctica. Así que para cada brecha definida, defi-
El proceso de mejora inició con una estrategia fuerte de capacita- nimos un plan de acción para cubrirla.
ción en CMMi para los responsables de definición de procesos. El
propósito fue que estas personas tuvieran en claro la razón de ser Métricas y revisión a nivel gerencial
del modelo y las exigencias que involucra. Igual de importante fue A fin de asegurar el buen desempeño de los proyectos y el apego a
la capacitación impartida al “sponsor” del proyecto, ya que ayudó a los procesos, se establecieron reuniones periódicas a nivel gerencial
que comprendiera la envergadura del proyecto que estaríamos reali- para revisar los indicadores de los proyectos. Los indicadores que
zando y que esto requería de su fuerte compromiso y participación. usamos son índice de cronograma, índice de esfuerzo, índice de cos-
Para esta capacitación nos apoyamos en la empresa Innevo. to, así como el uso de semáforos para mostrar cuando un indicador
estaba fuera del rango establecido por la dirección. La definición de
Apego a las actividades de MoProSoft indicadores se basó en las recomendaciones del PMBOK 3ª Edición.
Decidimos utilizar directamente las actividades de MoProSoft para Se agregó una actividad de revisión de los defectos encontrados en
hacer checklists de aseguramiento de calidad, revisando por ejem- procesos y productos, a fin de tomar acciones correctivas. Se utilizó
plo que se llevaran a cabo todas y cada una de las actividades de pla- una plantilla para llevar a cabo la reunión, donde ya se establecían
neación para generar el plan de proyecto y plan de desarrollo. Adicio- los puntos a revisar en la reunión y fue de gran utilidad para no dejar
nalmente se siguieron las verificaciones y validaciones tal como las pasar aspectos de monitoreo como son el manejo de datos, riesgos
propone MoProSoft. Esto nos permitió asegurar tanto calidad en los asociados a un defecto, y obtener compromiso de los involucrados.
Claudia N. Gonzalez es Licenciada en Sistemas Computacionales por el ITESM y cuenta con reconocimiento por la AMCIS como Practicante MoProSoft, Con-
sultor Profesional MoProSoft, y Evaluador Profesional MoProSoft. Desde 1985 ha trabajado en empresas de desarrollo de software asumiendo diferentes roles
principalmente en tareas de gerencia de proyectos de desarrollo de software y de capacitación y consultoría de procesos.
Eduardo Olivares es Ingeniero Administrador de Sistemas por la UANL y Maestro en Ciencias Computacionales por el ITESM. Cuenta con el certificado de PMP
y con el certificado como PSP Developer y PSP Instructor por el SEI. Desde 1989 ha trabajado como desarrollador, líder de proyectos y jefe de oficina de proyec-
tos en áreas de TI de diferentes grupos empresariales, así como docente del área de Tecnologías de Información del ITESM y de la UDEM.
Para todos los procesos se monitorearon las actividades planeadas ta que para asegurar la calidad de producto y proceso como requiere
y el esfuerzo estimado contra el real. CMMI tuvimos que detallar checklists que apoyaran ésta práctica.
3. MoProSoft define sus procesos por área de responsabilidad, sin
Asignación de esfuerzo para actividades del modelo embargo la secuencia de actividades se da naturalmente entre las
Quizá uno de los puntos más complejos, pero a la vez más impor- áreas. Por ejemplo, durante el proceso de venta, se requiere que se
tantes es estimar el esfuerzo en todas las actividades relaciona- realice un entendimiento de requerimientos y una planeación para
das con el modelo, tanto CMMI como MoProSoft, de manera que poder definir el alcance del proyecto que se está vendiendo. Para
debe quedar asentado y asignado el tiempo para: la persona que aclarar esta secuencia de actividades nos apoyamos en diagramas
define y establece los procesos, el encargado de las actividades de flujo inter-procesos, lo que ayudó a que se entendiera mejor la
de administración de configuración, aseguramiento de calidad de relación entre ellos.
procesos y productos, capacitación, administración de proyectos 4. MoProSoft define algunas actividades de manera muy general
y mantenimiento a la matriz de rastreo. Algunos roles pueden ser por lo que en algunas de ellas tuvimos que definir procedimientos
compartidos; por ejemplo la persona de calidad puede también más detallados y/o realizar minutas para asegurar que se cumpliera
dar capacitación o participar de la definición de procedimientos, completamente la práctica CMMI. Algunos de ellos son: la imple-
el configurador puede participar en actividades de desarrollo o mentación de un procedimiento de control de cambios para revi-
mantener la matriz de rastreo. En nuestra experiencia, el tiempo sar y autorizar cambios a requerimientos, actividades específicas
de todas las actividades de soporte al proyecto incluyendo tiempo de administración de configuración como lo es, establecer un plan
para medición y análisis, planeación, monitoreo de proyecto, ase- de administración de configuración que indica nombrado de ítems,
guramiento de calidad y administración de requerimientos; en un permisos, líneas base y niveles de autoridad para su promoción, au-
proyecto que anteriormente tomaba 1,000 horas llevando sólo Mo- ditorías físicas y funcionales a realizar. La mayoría de los requisitos
ProSoft, se incrementa en cerca del 20% del esfuerzo después de de CMMi estaban cubiertos en las prácticas de MoProSoft reforzán-
haber agregado las actividades del análisis de brecha hacia CMMi dolas con el uso de minutas para cada reunión y dando instruccio-
nivel 2. Lo anterior debe considerarse una inversión que paga en nes muy específicas, sobre los acuerdos y compromisos que deben
beneficios de calidad y confianza hacia los compromisos del pro- reflejarse en cada reunión, sin dejar margen a ambigüedades. En la
yecto con el cliente. versión de este artículo que se publicará en el sitio web de SG se
incluirá un anexo con un ejemplo de una actividad que fue detallada
Herramientas de esta forma.
Es de gran ayuda apoyarse en herramientas que faciliten la adopción 5. Implementar otros procesos MoProSoft como son la Planeación
y aplicación del proceso. Recomendamos considerar herramientas Estratégica y la Gestión de Procesos ayudaron a la implementación
de trabajo para administración del proceso de cambios en configu- del proceso y a que la organización lo apoyara, así como a la opera-
ración, manejo de la matriz de rastreo, levantamiento y seguimiento ción misma del negocio.
a incidencias, bases de datos con datos del proyecto (WBS, costos,
riesgos, cambios) o herramientas para registro y seguimiento a las
actividades, son importantes para reducir el tiempo de uso de hojas Conclusión
electrónicas más susceptibles a errores. CMMI está enfocado principalmente a organizaciones gran-
des. Sin embargo el enfoque que seguimos de utilizar como
Lecciones aprendidas marco de referencia MoProSoft fue un gran acierto que nos
1. Tal vez la lección aprendida más distintiva de nuestro proyecto, acercó muy rápidamente a nuestro objetivo de lograr el
fue el entender que para cubrir el 33% de actividades pendientes no nivel 2 de madurez en CMMI, apenas 8 meses después de
significaba invertir un 33% más de esfuerzo ya que las prácticas no tener implantado MoProSoft. Ahora vamos por el siguien-
cubiertas en MoProSoft se trataban de cuestiones un tánto comple- te nivel y además de seguir utilizando MoProSoft como un
jas de definir e implementar como lo son Administración de Configu- marco de referencia relevante nos apoyaremos en PSP/TSP
ración (CM) y Medición y Análisis (MA). para acelerar nuestro siguiente objetivo en madurez de pro-
2. Aunque iniciamos las actividades de verificación y validación utilizan- cesos mediante CMMI.
do como guía los criterios presentados en MoProSoft, nos dimos cuen-
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.
Como sabemos, los sistemas de software cada vez son más com- específicas de un segmento de mercado particular o misión y que
plejos, debido tanto a los pasos agigantados que da la tecnología, son desarrolladas de forma preescrita a partir de un conjunto común
como a la importancia que continuamente cobran los sistemas de de elementos clave”.
información en nuestras vidas. A lo largo de los años, nuevos mé-
todos, técnicas y herramientas han sido creados para mitigar esta Como lo indica la definición, una LPS consiste en un conjunto de
creciente complejidad de desarrollar software. elementos clave para producir sistemas de software que com-
parten características comunes (llamadas similitudes), pero al
Una de las técnicas que han surgido para mitigar dicha complejidad, mismo tiempo mantienen características propias (llamada varia-
es la reutilización, la cual consiste en desarrollar elementos de soft- bilidad). Para proporcionar estas características individuales a
ware que puedan utilizarse más de una vez con la mínima cantidad cada miembro de la familia, la adaptación masiva debe ser lo
de modificaciones, garantizando que al reutilizar un elemento de suficientemente flexible para satisfacer tal necesidad, pues ade-
software libre de defectos, implicará que el sistema que lo utilice no más el número distinto de miembros está limitado a una serie de
tendrá problema alguno en lo que respecta a dicho elemento. restricciones las cuales también deben satisfacerse; a esto se le
llama administración de la variabilidad.
Tal fue el éxito de aplicar la reutilización, que ésta evolucionó de al-
guna manera hasta generar el concepto de “Líneas de Productos de Fases o etapas para implementar una LPS
Software” (LPS) –conocido también como Familias de Sistemas de En una LPS se propicia una reutilización a alto nivel, desarrollando
Software– para el cual se conocen indicios desde los años 70 cuan- los elementos comunes que servirán como base para la generación
do Parnas mencionó los beneficios de tener una familia de sistemas de cada miembro de la familia. Las etapas esenciales a ejecutar
compartiendo características entre ellos[1]. son tres:
1. De ingeniería de dominios en la cual se desarrollan los elemen-
Adaptación de productos de forma masiva tos comunes.
Las LPS parten de las ideas de la producción en serie (como lo 2. De ingeniería de aplicaciones donde se generan los sistemas que
hizo Henry Ford), dando la capacidad a una organización de pro- son miembros de la familia. Dichos miembros se generan a partir
ducir o generar (nótese que no se usa el término desarrollar) de los elementos comunes, pero tomando en cuenta el modelo de
sistemas de software en forma masiva, satisfaciendo las deman- variabilidad definido.
das del mercado; entre otros beneficios significativos. La adap- 3. Un conjunto de actividades que orquestarán las dos etapas anteriores.
tación masiva consiste en la capacidad para generar productos Es decir, se necesita de un proceso para ejecutar de manera ordenada la
que comparten en gran parte características comunes, pero ingeniería de dominios y la ingeniería de aplicaciones.
también mantienen características propias de cada uno de ellos.
Tomando como ejemplo una línea de productos de automóviles, Las dos primeras etapas están compuestas por las fases tradicionales del
se puede ver que para un modelo específico de auto se pueden modelo de cascada (Requerimientos, Diseño, Implementación, Pruebas)
fabricar unidades con características propias tales como el co- pero con objetivos distintos como ya se mencionó.
lor, el número de puertas, transmisión automática o estándar,
eléctrico o no, etcétera. Manteniendo las características esen- Enfoques de adopción de una LPS
ciales del modelo. Se han planteado varios enfoques como estrategia para reali-
zar la adopción de una LPS, entre ellos algunos tienen nombre
Líneas de productos de software distinto de acuerdo al “framework” o metodología en la que es-
Según el Instituto de Ingeniería de Software (SEI) una LPS se define de la tán contenidos, pero consisten en la misma estrategia. Básica-
siguiente manera: mente, existen tres enfoques de adopción los cuales han sido
“Una LPS es un conjunto de sistemas de software compartiendo ca- reportados bajo otros nombres, sin embargo, en esencia son lo
racterísticas comunes y administradas que satisface las necesidades mismo. Dischos enfoques son:
Gilberto Grajales obtuvo el grado de Maestro en Ingeniería de Software en el Centro de Investigación en Matemáticas (CIMAT) realizando investigación sobre Líneas
de Productos de Software aplicado al área de Ingeniería de Requerimientos. Ha jugado distintos roles en proyectos de desarrollo de software. Actualmente labora en
JPE Consultores donde se dedica a la consultoría, capacitación y mejora de procesos en Ingeniería de Software. Tiene un especial interés en las áreas de Ingeniería
de Requerimientos y Calidad de Software. Puede ser contactado en gilberto@jpeconsultores.com
• Reducción de costos de desarrollo. Con una LPS los costos cación de características relevantes de sistemas de software que
de desarrollo de los sistemas miembros de la familia, están muy pertenecen a un dominio. Se dice que estas características son
por debajo de los costos de desarrollo de sistemas individuales. aspectos del dominio visibles al usuario final.
Al igual que en el “time-to-market”, al inicio el desarrollo de los
elementos comunes tiene mayor costo que desarrollar un sistema A pesar de que el método FODA está compuesto de tres fases,
individualmente. No obstante, una vez obtenidos, el costo dismi- para las cuales hay una serie de actividades individuales [6], la
nuye. Se puede decir que la tasa de incremento en el costo acumu- más relevante es la del modelado de características, pues es la
lado es mucho menor en una LPS que en sistemas individuales. que definirá las similitudes y variabilidades implícitas en el do-
minio. Dicho modelo de características se define por medio de
• Mejora de la calidad de los productos. Desde que el desarrollo un árbol donde quedarán especificados los elementos comunes y
de los elementos comunes es similar al desarrollo de los artefactos variables del dominio.
para un sistema individual, dichos elementos son probados cons-
tantemente por cada producto generado, y por formar parte de to- Por ejemplo, en la figura 2 se muestra un árbol de características
dos los productos de la familia se puede decir que la calidad es más para una línea de automóviles donde se pueden ver las caracte-
fácil y fielmente asegurada en todos ellos. rísticas comunes (como la transmisión y el caballaje) y las carac-
terísticas variables. Las variables pueden ser opcionales y estar
• Logro de las metas de reutilización de la organización. Dado contenidas o no en un sistema particular del dominio (como es el
que las LPS se basan en la reutilización de artefactos para un con- caso del aire acondicionado). También puede haber características
junto de sistemas, la reutilización planeada se obtiene al desarrollar alternativas de las cuales sólo una se puede implementar en un
la plataforma de elementos comunes. sistema particular del dominio (por ejemplo: la transmisión pue-
de ser manual o automática,pero no ambas). Además, dentro de
• Reducción de la necesidad de contratar nuevo personal. Des- un modelo de características se pueden incluir algunas reglas de
de que el proceso de generación de los productos de software se au- composición las cuales definen algunas relaciones entre caracte-
tomatiza cada vez más, la necesidad de contratar gente disminuye rísticas opcionales y/o alternativas.
debido a que dichos productos son generados cada vez con menos
ingenieros de software, lo cual de alguna manera ayuda a disminuir Existen principalmente dos tipos de ellas: la primera es donde la
los costos a la organización. existencia de una implica o requiere la existencia de la otra; y la
segunda es donde la existencia de una implica o requiere que no
• Incremento de la satisfacción del cliente. Por varios de los be- exista la otra (que sean mutuamente exclusivas). Para nuestro mo-
neficios mencionados anteriormente, los clientes y usuarios de los
sistemas generados con la LPS obtienen productos de software de
mucha mayor calidad a precios mucho más bajos que los que obten-
drían con un proveedor que no cuenta con una LPS.
El método FODA
Desde antes de existir el concepto de LPS existía la herramienta de
análisis de dominio (AD), que se enfoca en analizar los aspectos
comunes de un dominio particular que podíría consistir de un con-
junto de sistemas relacionados. A partir de esto, surgieron muchos
métodos de AD, siendo el método FODA (Feature-Oriented Domain
Analysis) el que marcó una pauta en el desarrollo del AD, pues ha
sido ampliamente utilizado para extraer las similitudes y variabili-
dades de un dominio. El principal objetivo de FODA es la identifi- Figura 2. Árbol de características para una línea de automóviles.