Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelando Una Solución de Software
Modelando Una Solución de Software
Estimado lector:
Hemos visto cmo este libro agrega valor para la humanidad a travs del
conocimiento que aporta, por lo tanto, con mucho agrado empleo tambin
este medio digital.
Esta es una versin completa y actualizada del libro en 2009, sin costo du-
rante este ao como forma de contribuir en la solucin de la crisis que nos
afecta a nivel mundial.
La serie de libros aporta motivacin, conceptos, tcnicas y herramientas que
han probado ser efectivas en cientos de casos narrados en los mismos textos.
Observar que grandes avances fueron logrados justamente en alguna otra
crisis. Esas soluciones tuvieron siempre, al menos, algo de conocimiento y
una dosis de esfuerzo personal sereno, responsable y con fe.
Le saluda cordialmente,
Juan Bravo C.
Doctor por la Universidad de Lleida
Presidente Evolucin Centro de Estudios Avanzados
www.evolucion.cl
PD1. Pueden bajar presentaciones de apoyo en Modelos de la Gestin de
Procesos y la revista RS, sin costo ni claves.
MODELANDO UNA SOLUCIN DE SOFTWARE 3
Modelando
una Solucin
de Software
Santiago de Chile
MODELANDO UNA SOLUCIN DE SOFTWARE 5
CONTENIDO
CONTENIDO ............................................................................................................................... 6
TABLA DE ILUSTRACIONES ...................................................................................................... 12
PRLOGO ................................................................................................................................. 14
AGRADECIMIENTOS ................................................................................................................. 22
INTRODUCCIN ........................................................................................................................ 24
Contenido del libro .......................................................................................................... 25
Sntesis de modelos de una solucin de software ............................................................ 26
CAPTULO 1. MTODO PARA LA GESTIN DE PROYECTOS............................... 34
1.1. TRABAJAR METODOLGICAMENTE................................................................................... 36
1. Qu es mtodo?.......................................................................................................... 36
2. Las mejores prcticas .................................................................................................. 37
3. Fundamento conceptual: la visin sistmica ............................................................... 37
4. Mtodo GSP ................................................................................................................. 39
1.2. CLAVES DE LA IMPLANTACIN DE MTODO....................................................................... 41
Clave 1. Cinco mapas globales para la visin de conjunto ............................................. 41
Clave 2. Mnimo indispensable ........................................................................................ 47
Clave 3. Participacin de todos los actores .................................................................... 47
Clave 4. Circularidad ...................................................................................................... 48
1.3. ADAPTACIN Y PROFESIONALISMO ................................................................................... 49
1. Adhesin a estndares y normas de calidad ................................................................ 49
2. Actualizacin y adaptabilidad del mtodo................................................................... 50
3. Estructura para la gestin de proyectos ...................................................................... 53
4. Aportes del PMI ........................................................................................................... 55
5. tica y visin global del profesional ........................................................................... 56
1.4. ETAPAS GENRICAS .......................................................................................................... 58
1. Concepcin .................................................................................................................. 60
2. Factibilidad ................................................................................................................. 62
3. Anlisis ........................................................................................................................ 65
4. Diseo .......................................................................................................................... 71
5. Implementacin............................................................................................................ 73
6. Despliegue ................................................................................................................... 76
7. Operacin .................................................................................................................... 78
1.5. PRCTICAS TRANSVERSALES ............................................................................................ 82
1. Direccin del proyecto................................................................................................. 84
2. Plan de la etapa ........................................................................................................... 86
3. Exposicin de los planes .............................................................................................. 87
4. Retroalimentacin........................................................................................................ 87
5. El equipo de trabajo .................................................................................................... 87
6. Entrevistas ................................................................................................................... 88
7. Comunicacin .............................................................................................................. 89
8. Informes ....................................................................................................................... 89
9. Tcnicas ....................................................................................................................... 89
MODELANDO UNA SOLUCIN DE SOFTWARE 7
1. BI ............................................................................................................................... 321
2. Data Warehouse ........................................................................................................ 322
3. ERP ............................................................................................................................ 322
4. CRM ........................................................................................................................... 322
5. SRM ........................................................................................................................... 323
6. Motor de base de datos .............................................................................................. 323
7.4. HERRAMIENTAS DE APOYO PARA LA PRODUCCIN DE SOFTWARE ................................. 324
1. Herramientas tipo UPPER CASE .................................................................................. 326
2. Herramientas tipo LOWER CASE .................................................................................. 326
3. Herramientas de productividad en ambiente cliente servidor ................................... 329
CONCLUSIONES, ANEXOS Y BIBLIOGRAFA ......................................................... 331
CONCLUSIONES...................................................................................................................... 332
ANEXO 1. INTRODUCCIN A LA PLANIFICACIN ESTRATGICA.............................................. 333
Definicin del negocio ................................................................................................... 334
Destino de la organizacin ............................................................................................ 337
Factores crticos del xito .............................................................................................. 338
Mediciones ..................................................................................................................... 339
Sistemas de informacin gerenciales ............................................................................. 339
ANEXO 2. ALINEAR INTERESES .............................................................................................. 341
ANEXO 3. DESARROLLO EN ESPIRAL DEL PROYECTO ............................................................ 344
ANEXO 4. RELACIN CAUSAL................................................................................................ 346
ANEXO 5. MTODO DE ACCIN RPIDA (MAR) .................................................................... 348
ANEXO 6. AD/CYCLE Y RUP................................................................................................. 349
AD/Cycle ........................................................................................................................ 349
RUP ............................................................................................................................... 350
ANEXO 7. CASO COMPRAS CON UML ................................................................................... 351
BIBLIOGRAFA........................................................................................................................ 371
12 JUAN BRAVO C.
TABLA DE ILUSTRACIONES
PRLOGO
1
Entre otras personalidades, el libro es presentado por los Premios Nobel de Economa Jo-
seph Stiglitz y Amartya Sen.
MODELANDO UNA SOLUCIN DE SOFTWARE 15
Libros de apoyo
Complementando este texto y para efectos de que el lector pueda profundizar
en ideas especficas (sin ser indispensable porque el modelamiento se trata
aqu como una totalidad), hago referencia dentro de la lectura a mis libros
relacionados con el tema2:
2
Para las citas en el pie de pgina indicar slo su ttulo. Los libros estn editados en Santiago
de Chile por Editorial Evolucin S.A.
16 JUAN BRAVO C.
Christian Andrews3
Todo libro conlleva un gran esfuerzo del parte del autor, por la bsqueda de
conceptos e ideas nuevas que se desarrollan y plasman alrededor de una idea
maestra, donde convergen todas las otras ideas menores, como afluentes a un
ro mayor. Mi amigo Juan Bravo, autor de un gran nmero de libros del rea de
la Tecnologa de la Informacin (TI) aplicada a los negocios, a quien conozco
por muchos aos, nuevamente ha realizado otro gran esfuerzo, para entregar
estos nuevos conocimientos, ideas y conceptos actualizados al da de hoy. En su
particular manera de escribir, nos ofrece esta nueva entrega literaria: un libro
que versa alrededor de una idea: el modelar soluciones de software.
Dnde radica la importancia de este libro para los profesionales de TI? A mi
juicio, esta entrega orienta y prepara a las pequeas y medianas empresas, en
concebir los sistemas computacionales como un commodity, es decir, sistemas
que son construidos con mtodos estndares de construccin y calidad. Con
metodologas que aseguran un resultado predecible en las operaciones diarias de
los diferentes procesos comerciales. Ratificando una vez ms, que el tener sis-
temas computacionales no constituye ninguna ventaja sobre la competencia,
3
Gerente de Sistemas en Empresas Hites S. A.
MODELANDO UNA SOLUCIN DE SOFTWARE 17
muy por el contrario, el no tener estos sistemas constituye una clara desventaja
competitiva, sin importar en cual industria participe y compita. Desventaja que
erosiona gravemente los mrgenes de ingreso, da tras da, en todas estas empre-
sas sin los sistemas computacionales.
La tierra es plana postula Thomas Friedman, destacado periodista americano,
como un eslogan que interpreta el impacto de la globalizacin en el mundo mo-
derno, botando muros polticos, tendiendo expeditos puentes comerciales
sobre los diferentes ocanos, derribando montaas y cordilleras que separan a
los pases y finalmente conectando con unas extraordinarias autopistas de fibra
ptica todos los continentes de este planeta Tierra, que permiten acercar y hacer
local casi cualquier bien o servicio. Un hecho impactante es la cercana de los
productos de origen chino en casi todo el diario vivir o la oferta increble de
servicios computacionales y tecnolgicos de grandes compaas de origen indio.
Hoy por hoy, la gran fbrica de software del mundo est en India, ms que en
otro lugar de este mundo, miles de ingenieros de software con conocimientos
actualizados y metodologas, estn dispuestos a desarrollar productos de softwa-
re por una fraccin del ingreso medio de un pas medianamente desarrollado.
Entonces, cmo competir en este mundo ms bien adverso? Pues actualizndo-
se permanentemente en los diferentes avances que se van liberando en el mundo
desarrollado.
De ah, la importancia de este libro de Juan Bravo, quien nuevamente se esfuer-
za en descubrir, rescatar lo medular de cada nuevo conocimiento del ltimo
tiempo, lo encapsula, lo simplifica y lo entrega como un mtodo simple a seguir
por sus alumnos y profesionales que siguen sus libros.
Quizs hoy ms que nunca es relevante actualizar los conocimientos con la
mayor prontitud posible. En su libro, Thomas Friedman cuenta una historia
que es atingente: En el frica, cada maana el len hambriento piensa que
debe correr ms rpido que la gacela ms lenta para poder alimentarse y so-
brevivir. Cada maana la gacela piensa que debe correr ms rpido que el len
ms rpido para poder sobrevivir. Para nosotros, que no estamos en el frica,
slo podemos pensar que, no importa si somos len o gacela, cada maana
debemos comenzar a correr rpido si queremos sobrevivir.
18 JUAN BRAVO C.
Rodrigo Collado4
Conozco a Juan desde hace muchos aos, conozco de su trabajo, de sus ante-
riores libros y, sobre todo, de su cario por la Ingeniera de Software; especia-
lidad cuya formalizacin le ha tenido de cabezas por un par de dcadas.
He ledo su nuevo libro Modelando una solucin de software, una obra que
sirve a los especialistas en construccin de software, pero tambin a los que
estn ms lejos del diseo de software. Para los iniciados, el mensaje es
claro: abandonemos la artesana y hagamos ingeniera. Para los legos, es la
oportunidad de conocer la complejidad de una disciplina que an no alcanza
la formalidad de otras especialidades. Para ambos, tomar conciencia de la ne-
cesidad y prisa de trabajar conforme a los postulados de la Ingeniera de Soft-
ware, la cual est apoyando el desarrollo y desempeo de casi todas las reas
en el mundo del siglo XXI. Y es clave en muchos casos.
Siendo tan relevantes y amplios estos mensajes, debemos buscar la forma que
el libro se desmaterialice y llegue a las salas de clases y a las empresas. Juan
tiene la ventaja de conocer el medio local, de haber enseado en l, de haber
trabajado en muchas empresas chilenas, de haber intercambiado sus puntos de
vista y sus sueos con tantos, entre los que me cuento. Deseo firmemente que
su libro no sea uno ms, que compita o se compare con cualquier otro editado
en Estados Unidos o en otro pas.
Agradezco el empeo de Juan, el cario por su profesin, su amor por el estu-
dio de esta especialidad y su coraje en la bsqueda de la impecabilidad en el
modelamiento de buenas soluciones de software.
4
Gerente de Desarrollo en BancoEstado.
5
Directora de Sistemas en la Municipalidad de Melipilla.
MODELANDO UNA SOLUCIN DE SOFTWARE 19
6
Se refiere a cinco elementos que se representan con la metfora de una mesa (la cubierta es
la estrategia y las 4 patas son: personas, procesos, estructura y tecnologa), la cual se describe
brevemente en la introduccin y se detalla en la etapa de anlisis (seccin 1.4).
20 JUAN BRAVO C.
Carlos Toloza 7
Cuando Juan me pidi revisar el material de este libro y escribir unas lneas al
respecto acept sin ningn problema, pero al sumergirme en el tema especfi-
co del UML (ISO 19501:2005) debo reconocer que vi la oportunidad que se
me brindaba de poder llegar a una lectora o lector y compartir mi opinin con
la esperanza de que en el momento de estar leyendo estas lneas aportar un
mensaje simple y claro.
Yo pienso que lo que estamos hablando en este libro es de tener y sentir la
misma responsabilidad profesional frente al desarrollo de un sistema inform-
tico que frente a la construccin de una catedral. El pecado original en in-
formtica es comenzar a desarrollar sin tener los planos, ac es lo mismo, no
podemos comenzar a construir el sacro edificio si no tengo planos arquitect-
nicos hechos y bien hechos.
Tengo la suerte de trabajar en una empresa constructora y sera un suicidio
comenzar un proyecto sin tener los planos, bueno, en informtica los planos
del sistema podemos dibujarlos con alguna nomenclatura estndar como UML
o alguna propia, pero ese es el punto, por favor no comience la construccin
sin los planos!!!
La verdad es que prefiero dejar un mensaje simple y fuerte en la mente del
lector que participa en un proyecto informtico, no comience el desarrollo sin
planos, no olvide que hay personas que van a vivir dentro de ese sistema y va
a ser su casa en forma permanente.
De pronto me siento repitiendo algo que escuch por primera vez en mis ini-
cios, cuando programaba mi primer software, pero la realidad de las empresas
es muy exigente y a veces la presin por resultados nos hace improvisar o
simplificar el tema en las etapas iniciales de los proyectos, les tengo malas
noticias, es verdad que los costos de improvisar son muy altos y pueden dupli-
car fcilmente cualquier presupuesto de tiempo y costo con el consiguiente
impacto negativo en el negocio.
Juan dice en el prlogo de este libro que lo que buscamos finalmente es una
mayor productividad de nuestras empresas, o sea que con los mismos recursos
seamos capaces de entregar ms productos o si lo profieren que con menos
recursos podamos entregar los mismos productos. Un sistema informtico
bien hecho (partiendo de su modelacin) debe bajar los costos del rea en la
7
Gerente de Informtica del Grupo Constructor Besalco.
MODELANDO UNA SOLUCIN DE SOFTWARE 21
AGRADECIMIENTOS
INTRODUCCIN
Modelar una solucin de software es una labor bella y creativa. Por esta razn,
frecuentemente se obtienen muy buenos productos que son verdaderas obras
de arte, tal como si a un artista le encargaran una obra (requerimientos) y l,
utilizando sus propios mtodos y herramientas de trabajo, diera vida a una
creacin nica e irrepetible.
Ser posible profesionalizar conservando la creatividad? S! y de esta for-
ma los mtodos y herramientas van a recibir el aporte de muchas personas.
Modelar soluciones de software puede ser arte y tecnologa a la vez.
Este es el desafo, modelar soluciones de software con tcnicas normalizadas,
buscando simplicidad, eficiencia y adaptabilidad al cambio, en el contexto de un
proceso general de desarrollo que permita trazabilidad y productos repetibles.
Por qu modelar? Porque es necesario representar formalmente una realidad
deseada, que de otra forma resultara muy difcil de transmitir, en este caso una
solucin de software. Lo ms probable es que la realidad deseada se encuentre
vagamente escrita y que principalmente est en la mente de las personas, ms
como un deseo difuso que como un requerimiento. La funcin del modelamien-
to es hacer tangible y aclarar esa realidad para que luego se pueda implementar.
Si esa realidad deseada da respuesta a una necesidad por una parte y por otra los
modelos de esa realidad son factibles de implementar, entonces la probabilidad
de xito es alta. Eso es lo que quiere mostrar la siguiente figura.
Problema Solucin Implementacin
6. El estndar UML.
7. Las herramientas de la tecnologa de informacin.
Cada captulo, en el mismo orden, profundiza en la competencia correspon-
diente, producindose un avance que parece una pirmide, tal como se aprecia
en la siguiente figura.
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
Anlisis Diseo
8
En el captulo 1 veremos el mtodo completo.
MODELANDO UNA SOLUCIN DE SOFTWARE 27
Bienestar
Soluciones propuestas: Mapa de
1. Alinear con la estrategia
2. Incluir como plan de proyectos
Productividad Costo accin de RS 10p
Responsabilidad
Calidad Social
2p
Tiempo
Problemas detectados: 1p 7p
1. Pago tardo a
Proveedores
2. Trabajadores fuman en = Libera
sector atencin clientes = Neutro
= Requiere
Mapa de necesidades
Procesos Estratgicos Gestin de Personas
Analizar
Planificacin Gestin de Gestin de Gestin de Control de Gestin de Reclutar Inducir
cargos
Mapa de Desarrollo
Estratgica
RS
Procesos Proyectos Calidad Gestin Contratos
Procesos de Apoyo
Servicios Remuneraciones Tecnologa y
Adquisiciones Finanzas Contabilidad Legal Transporte
Bsicos y bienestar Mantencin
Meditacin
Cobranzas
Buen trabajo Devolucin
en equipo Liderazgo
sistmico Ventas
Alcance
poco claro
Retroalimentacin de Demora Facturacin
eventos destacados en entrega
final
Compras Bodega
Dificultades para Entrega
coordinar entrevistas
con usuarios
Estos mapas son modelos que ayudan a lograr la visin de conjunto para luego
formalizar en el anlisis y diseo la solucin de software. El detalle de cada
uno se puede apreciar en el captulo 1.
La visin de conjunto es vital en la visin sistmica, cosmovisin que gua
todo el trabajo de este libro, tanto en los mapas como en los siguientes
modelos, los cuales tienen la caractersticas de contextualidad, es decir,
dependen del mtodo y nivel de madurez de cada organizacin.
Los modelos que se presentan a continuacin para anlisis y diseo son slo
una muestra de las posibilidades del modelamiento. Cada empresa debe tener
su propia ruta metodolgica e incluso adaptada segn tipos de proyectos.
Se presentan los modelos ordenados segn las etapas de anlisis y diseo. En
la siguiente figura se aprecia el objetivo y actores de cada una. Todo el
modelamiento est orientado al cliente (externo, quien paga), la etapa de
anlisis se orienta a definir el qu y la de diseo el cmo, en ambas participan
analistas y usuarios. Una vez que el diseo est completo, se enva al
constructor (aunque sea el mismo analista en otro rol).
Qu Cmo
Anlisis Diseo
Constructor
Cliente
Usuarios y Analistas
En este caso, los modelos siguen la lgica del mtodo GSP, en la empresa
corresponden a los contenidos del proceso de desarrollo de software que sta
se haya dado.
En esta etapa todo el trabajo se centra en el modelo de negocios de la solu-
cin, con cinco elementos que se representan con la metfora de una mesa, la
cubierta es la estrategia (alineando la de la empresa y la de del proyecto, in-
cluye responsabilidad social) y las 4 patas son: personas (incluyendo ambien-
te), procesos, estructura (organizacional y fsica) y tecnologa (de todo tipo).
En esencia: corresponde decidir Qu hacer, comenzando por la cubierta de la
mesa (detalle de la figura en el captulo 1).
Estrategia
Personas Tecnologa
Procesos Estructura
Vender al detalle
PROCESO DESPACHO INMEDIATO
CLIENTE BODEGA FINANZAS
ADMINISTRATIVO DE BODEGA DESPACHADOR
OE
Rebajar
A Crdito A domicilio saldo
Cliente
recibe
y firma
recepcin
Programar Entregar
GD3
GD2 PROCESO
Desde aqu surgirn definiciones para las otras patas de la mesa: personas,
estructura y tecnologa. Lo cual est descrito en el captulo 1.
Para definir el alcance de la solucin de software en la etapa de anlisis, se
puede emplear esta serie de modelos (una buena tcnica es por borradores
sucesivos, comenzando por cualquiera de ellos). El objetivo es decidir qu
incluye el modelo de negocios (detalle en los captulos 1, 2 y 3).
Pedidos y Costos Compras Ventas
Clientes devoluciones Gerencia
Devoluciones Entradas Control Salidas Devoluciones
Artculos y factura Niveles Traspasos
del stock Traspasos
Control
de stock
Artculos y gua Despacho de artculos
Artculos Ventas
Cotizar
Jefe de
Aprobar Adquisiciones
Administrativo de cotizacin
Adquisiciones
Ingresar
O/C
Aprobar
O/C
Enviar
O/C = Orden
O/C
de Compra
Una vez lograda la decisin respecto a los qu, es necesario profundizar en los
requerimientos principales de la solucin de software, en tal caso, la recomen-
dacin es trabajar con estos nuevos modelos (detalle en los captulos 5 y 6).
MODELANDO UNA SOLUCIN DE SOFTWARE 31
Administrativo de
Adquisiciones Ingresar O/C Resumen: (el mismo del caso de uso de alto nivel).
Funciones relacionadas:
Curso Normal de los eventos
Accin del actor Respuesta del sistema
1. Tomar la O/C desde el archivador
2. Ingresar N O/C en (A) 3. Verifica correlativo y enva respuesta
Ingresa la Orden de Compra en (B)
a partir de los documentos de 4. Ingresar Rut en (D) 5. Verifica que proveedor exista, obtiene
cotizacin a proveedores. y despliega nombre y fono en (E) y (F)
6.
Para cada lnea: Para cada lnea:
La O/C queda disponible 7. Ingresar el cdigo de
producto en (H)
8. Verifica existencia del producto,
obtiene y despliega la descripcin
para ser enviada al proveedor y el precio en (I) y (J)
luego de la aprobacin 9. Ingresar las unidades en (K) 10. Calcula el subtotal y despliega en
(L)
electrnica por el jefe de 10. Dar OK a la lnea 11.
adquisiciones
Excepciones:
1. Si el nmero de O/C ya existe, vea caso de uso Corregir Correlativo. 2
Incluye interfaces detalladas de E/S
Interfaz de Entrada
Gua Interna de Recepcin por Compra A C/E Ingresar
D
N Gua Recepcin Encabezado
Cdigo Enc. Recepcin C Encargado Recepcin de transaccin transaccin Personas
Fecha Recepcin B Mensaje 1
Razn Social Proveedor
RUT Proveedor E - F
Direccin Proveedor G e-Mail H
Comuna I Ciudad J Fono K Fax L Detalle de C/E
Gua de Despacho de Proveedor N M Fecha G/ D. Proveedor N N de O/C. O transaccin Productos
Mensajes 4 y 5
L. Cdigo Descripcin Precio Cantidad Valor Neto
LL P Q R S T
se asocia a 1..*
Diagrama de colaboracin
34 JUAN BRAVO C.
CAPTULO 1.
MTODO PARA LA GESTIN
DE PROYECTOS
Captulo 1. Mtodo para la gestin de proyectos
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
anlisis y diseo.
9
Por habilidad organizacional entendemos una competencia que adquiere la empresa me-
diante una solucin de software, por ejemplo, ahora puede vender a travs de Internet o tener
su contabilidad al da.
36 JUAN BRAVO C.
1. Qu es mtodo?
Antes de continuar, aclaremos qu es mtodo? Consideramos que es una
competencia bsica para todo profesional que le permite guiar su trabajo de
acuerdo con normas y procedimientos definidos, visualizar el inicio y el fin de
los procesos en que participa, ubicar su aporte en el contexto del proceso
completo y trabajar en equipo con los dems participantes del proceso.
MODELANDO UNA SOLUCIN DE SOFTWARE 37
10
El libro Anlisis de sistemas se refiere en su totalidad a visin sistmica.
38 JUAN BRAVO C.
Qu es un sistema?
No existe una definicin generalmente aceptada para un sistema. Tradicio-
nalmente se lo entiende en dos aspectos: orientado al exterior en cuanto se
encuentra situado en un medio donde interacta con otros sistemas de su nivel
y con sistemas mayores de los que forma parte, y orientado a su interior, en
este caso el sistema es energa que toma la forma de interacciones y crea los
elementos que sean necesarios para su evolucin.
MODELANDO UNA SOLUCIN DE SOFTWARE 39
4. Mtodo GSP
El Mtodo GSP (Gestin Sistmica de Proyectos) es una gua para el desarro-
llo completo de un proyecto, pasando por todas las etapas de su ciclo de vida:
concepcin, factibilidad, anlisis, diseo, implementacin, despliegue y ope-
racin. Es un mtodo abierto, con etapas genricas, amplio uso de tcnicas del
medio, apoyo de herramientas existentes y aplicacin de las mejores prcticas.
El Mtodo GSP es parte de un modelo integral para la gestin de la innova-
cin en la organizacin que contempla las definiciones estratgicas, formacin
de las personas, mtodo, creacin de estructura organizacional y apoyo tec-
nolgico (todos los elementos de la mesa sealados en la introduccin y que
se estudian en detalle en la etapa de anlisis de la seccin 1.4).
El plan de proyecto es una totalidad con contenidos mucho ms all de la carta
Gantt, incluye tambin la historia del proyecto, clculos financieros, justifica-
cin de la necesidad y mucho ms segn veremos en la etapa de factibilidad
en la seccin 1.4.
Adems, el plan de proyecto contempla dos lneas de trabajo paralelas, como
las vas del ferrocarril:
Etapas del proyecto
Prcticas transversales
Shari Pfleeger seala (2002, p. 135): Para comunicar a los clientes el anlisis
y la gestin del riesgo, el cronograma y la organizacin, usualmente se escribe
un documento denominado plan de proyecto. El plan deja por escrito las nece-
sidades del cliente, as como lo que se espera hacer para satisfacerlas. El clien-
te puede remitirse al plan para tener informacin sobre las actividades del pro-
ceso de desarrollo, siendo fcil seguir el avance del proyecto durante el desa-
rrollo Un buen plan incluye los siguientes items: alcance del proyecto, cro-
40 JUAN BRAVO C.
Mtodo GSP
Estos mapas deberan crearse como parte de la implantacin del mtodo, aun-
que adaptando segn la cultura y el nivel de avance previo de la organizacin.
a) Mapa de Necesidades
Seala las necesidades genricas de la organizacin que se estn estudiando y
resolviendo. Cada vez que se detecta una necesidad genrica se incluyen cau-
sas y soluciones. En la figura 1-2 se muestra, como ejemplo, dos estudios para
responsabilidad social.
Soluciones propuestas:
Bienestar 1. Alinear con la estrategia
2. Incluir como plan de
Productividad Costo accin de RS
Responsabilidad
Calidad Social
Tiempo
Problemas detectados:
1. Pago tardo a
Proveedores
2. Trabajadores fuman en
sector atencin clientes
b) Mapa de Proyectos
Muestra todos los proyectos que se estn realizando en la empresa y permite
establecer relaciones entre ellos. En el mapa de la figura 1-3 se usa para esta-
blecer un sistema de vasos comunicantes entre proyectos, uno que libera per-
sonas y otras que las requieren11.
10p
2p
1p 7p
= Libera
= Neutro
= Requiere
11
Hemos visto que ms o menos un tercio de los proyectos libera personas y recursos, el otro
tercio requiere y el ltimo es neutro.
44 JUAN BRAVO C.
c) Mapa de Procesos
Quedan reflejados todos los procesos de la organizacin, ya sean estratgicos,
del negocio o de apoyo. Ntese en la figura 1-4 que la prctica es ubicar arriba
los procesos estratgicos, al centro los del negocio y abajo los de apoyo. En
este caso se muestra para la empresa comercial e industrial Linhogar (nombre
ficticio por supuesto).
Ana lizar
Planificacin Gestin de Gestin de Gestin de Control de Gestin de Recluta r Inducir
Desarrollo RS cargos
Estratgica Procesos Proyectos Calidad Gestin Contratos
Disear
Evaluar Formar
ca rrera
Procesos de Apoyo
Servicios Remuneraciones Tecnologa y
Adquisiciones Finanzas Contabilidad Legal Transporte
Bsicos y bienestar Mantencin
12
Ver libro del mismo nombre.
MODELANDO UNA SOLUCIN DE SOFTWARE 45
d) Mapa de Retroalimentacin
Lleva registros de eventos enriquecedores al finalizar los proyectos. Conviene
conocerlos ya sea porque son experiencias que es bueno replicar o porque
hubo sucesos que queremos evitar. En la figura 1-5 se us la forma de un ma-
pa mental. Ntese que se evit la distincin positiva o negativa de expe-
riencias porque todas las vivencias sirven en la medida que haya una buena
retroalimentacin y que efectivamente se use en proyectos futuros.
Meditacin
Buen trabajo
en equipo Liderazgo
sistmico
Alcance
poco claro
Retroalimentacin de Demora
eventos destacados en entrega
final
Dificultades para
coordinar entrevistas
con usuarios
Cobranzas
Devolucin
Ventas
Facturacin
Recepcin
Clave 4. Circularidad
Implantar un mtodo puede seguir la forma de desarrollo en espiral. As, en un
par de meses la organizacin ya podra estar usando un proceso documentado
y disfrutando de los beneficios de proyectos realizados con efectividad.
Con el desarrollo en cascada la implantacin puede ser larga, muy larga, dos
aos? Demasiado! podra decir la comunidad.
La gradualidad es el concepto de fondo, es decir, implantar sobre la base de
avances sucesivos, a partir de negociaciones respecto a lo que realmente las
personas quieren y pueden hacer. Justamente una de las ideas centrales de este
mtodo es el buen manejo del cambio, donde se plantea que un sistema en
buen funcionamiento es una joya que debe tratarse con mucho cario. Debe-
mos asegurarnos que lo nuevo es efectivamente mejor, sin el encandilamiento
transitorio que tanto dao provoca.
MODELANDO UNA SOLUCIN DE SOFTWARE 49
Informacin de calidad
El ideal es que todo el manejo de la informacin sea en lnea y que los datos
sean capturados en la punta del proceso, evitando digitaciones. Adems, trabajar
todo lo posible en formato digital. Una buena idea es un programa del tipo pa-
perless (sin papel) que estn impulsando muchas organizaciones.
50 JUAN BRAVO C.
13
Un dato puede ser confiable pero no creble. Es que la confiabilidad pertenece al sistema y
la credibilidad al usuario, por eso decan: la mujer del Csar no slo debe ser virtuosa, sino
adems parecerlo.
MODELANDO UNA SOLUCIN DE SOFTWARE 51
Pragmatismo
Pragmatismo es hacer lo mejor que se pueda hacer para lograr los objetivos de
un proyecto, es lo opuesto al fundamentalismo, ms bien sera el complemen-
to, como en el yin y yang (la armona de los opuestos, el justo medio que pro-
clama Confucio).
No es sinnimo de improvisacin ni de liviandad en seguir un mtodo. Es
darse cuenta que en un momento del tiempo hay una bifurcacin mejor a la
establecida.
A propsito, Jeff Davidson, en su libro La Gestin de Proyectos (2001, pp.
2123), ofrece siete sugerencias para triunfar en la gestin de proyectos:
Aprender a utilizar eficazmente las herramientas de gestin
Saber hacer y recibir crticas
Ser receptivo a los nuevos procedimientos
Gestionar adecuadamente el tiempo
Ser eficaz al organizar reuniones
Perfeccionar la capacidad de tomar decisiones
Conservar el sentido del humor
En cada etapa se puede volver a una anterior para efectuar cambios o cancelar
el proyecto. No hay problema en la medida que sea por adaptacin a nuevas
circunstancias. Hay problema cuando el motivo es porque la etapa anterior no
se hizo correctamente.
Mtodo de la
Organizacin
Adaptacin
Aplicacin a un
tipo de proyecto
Por ejemplo, la prioridad, puede llevar a tener una especie de Fast Track (va
rpida) en el caso de proyectos prioritarios por alguna contingencia o por ne-
cesidades estratgicas.
En el caso del tamao del proyecto lo primero es definir que se entiende por
tamao, por ejemplo, una posibilidad es trabajar con distinciones simples,
como estas, aumentando un orden de magnitud cada vez (aceptando que los
lmites entre tramos son difusos):
Proyecto pequeo: hasta US$ 100.000
Proyecto mediano: ms de US $ 100.000 y hasta US$ 1.000.000
Proyecto grande: ms de US$ 1.000.000 y hasta unos US$ 10.000.000
Ms all son proyectos muy grandes para la realidad de Latinoamrica y ms
bien escasos. Debera hacerse un esfuerzo metodolgico especial.
El mtodo debe adaptarse a cada realidad porque no es lo mismo un proyecto
pequeo que uno grande en trminos de cantidad de actividades, controles y
cantidad de participantes. Desde la gestin de procesos sabemos que el tama-
o determina nuevas formas de hacer las cosas.
MODELANDO UNA SOLUCIN DE SOFTWARE 53
14
Es la primera clave de la implantacin de mtodo de la seccin 1.2.
54 JUAN BRAVO C.
b) rea de estudios
El rea de estudios se dedica a procesar propuestas para necesidades y solu-
ciones. Se centra en las etapas de concepcin y factibilidad del mtodo GSP.
Es un rea que ayuda a generar mucha rentabilidad a la organizacin, porque
deja en evidencia la gran cantidad de proyectos que se pueden realizar. En el
fondo, ayuda a aprovechar el gran potencial que existe en la mente de todos
los integrantes de la empresa y que generalmente se pierde.
Uno de los principales entregables de esta rea son los planes de proyectos
cuando ya se cuenta con la autorizacin de desarrollo.
c) rea de desarrollo
Aqu se modelan e implementan los proyectos interna o externamente.
El rea de desarrollo se hace cargo de los proyectos aprobados y listos para
concretarse, cada uno cuenta con un plan de proyecto.
Se centra en las etapas de anlisis, diseo, implementacin y despliegue del
mtodo GSP.
Una exigencia es que el rea de desarrollo se coordine con un rea de asegu-
ramiento de calidad.
d) Comit de Proyectos15
Considerando que los proyectos sirven a procesos estratgicos, del negocio y
de apoyo en la organizacin, la figura del Comit de Proyectos (CP) introduce
una mirada sistmica y de negocios.
El CP gua el proceso de deteccin de necesidades y formulacin de proyectos
(etapas de concepcin y factibilidad del mtodo).
Tambin recibe la retroalimentacin de los proyectos en desarrollo.
Por supuesto, el CP requiere una frmula simple para administrar los com-
promisos vigentes e histricos, as como definir la forma de toma de decisio-
nes en casos de emergencia.
Al finalizar el proyecto, el CP cierra la carpeta del proyecto con un informe
que seale cmo fueron resueltas las necesidades originales (y actualizadas) y
15
Es cierto que al menos en Chile la figura del Comit est un poco desprestigiada. Con
este u otro nombre, el desafo es organizar un equipo de personas que acten con efectividad y
mstica en la toma de decisiones.
MODELANDO UNA SOLUCIN DE SOFTWARE 55
e) reas relacionadas
En la gestin de proyectos se trabaja con reas cercanas, tales como gestin de
procesos, gestin de la calidad y sistemas.
16
As como deben ser conocidas las normas CMM, ISO 9000, Tick IT y otras. Adems de
estndares formales o de hecho tales como ITIL, Corba y MDA. Todos ellos los veremos en
el captulo segundo.
56 JUAN BRAVO C.
Comportamiento tico
Respecto a la tica de los profesionales, Ian Sommerville seala (2005, pp.
12-13): Deben comportarse de una forma tica y moral responsable si es que
desean ser respetados como profesionales. No basta con decir que usted debe
poseer estndares normales de honestidad e integridad. No debera utilizar su
capacidad y sus habilidades para comportarse de forma deshonesta o de forma
que deshonre la profesin de la ingeniera del software. Sin embargo, existen
reas donde los estndares de comportamiento aceptable no estn acotados por
las leyes, sino por las ms tenue nocin de responsabilidad profesional. Algu-
MODELANDO UNA SOLUCIN DE SOFTWARE 57
17
Ver libro Anlisis de Sistemas.
58 JUAN BRAVO C.
Ya vimos que las etapas son las distinciones principales del trabajo en el pro-
yecto. Hemos identificado siete: Concepcin, Factibilidad, Anlisis, Diseo,
Implementacin, Despliegue y Operacin. El acrstico es CFADIDO.
En la figura 1-8 (como una punta de flecha) se aprecia el esfuerzo promedio
estimado de cada una18. Ntese que a partir de la etapa de diseo se expande
el trabajo incorporando la especializacin de otros actores.
Estudio Desarrollo MC
C F A D I D O
Se aprecia tambin que las etapas estn agrupadas en tres grandes fases:
Estudio: donde se detectan necesidades y se proponen soluciones, el entre-
gable es un plan de proyecto, adems de los informes para trazabilidad. In-
cluye las etapas de concepcin y factibilidad.
Desarrollo: donde el plan se materializa. El entregable es la solucin com-
pleta y en explotacin. Incluye las etapas de anlisis, diseo, implementa-
cin y despliegue.
Mejora continua: donde la solucin ya en operacin se mantiene y perfec-
ciona. Contiene solamente la etapa de operacin, la ms extensa y que exis-
te mientras dura la vida til de la solucin, lo cual tambin debera estar es-
timado en el plan de proyecto.
Lo habitual es que cada fase sea realizada por equipos y reas diferentes.
18
Este promedio es parte del mtodo GSP, obtenido desde la duracin estimada de las etapas
en proyectos exitosos. Como todo promedio, es solamente un punto de referencia y no aplica
a casos particulares.
MODELANDO UNA SOLUCIN DE SOFTWARE 59
1. Concepcin
Lo que da origen al trabajo en la etapa es un sntoma o una serie de sntomas
que producen molestias (tal como prdidas y atrasos). Decimos que es una
confusin porque no sabemos realmente cul es el problema de fondo.
El objetivo de esta etapa es concebir una necesidad, o un problema, definido
como una distancia, entre donde estamos y donde queremos estar. El proble-
ma de fondo nace desde la causa raz de la confusin. Es necesario aclarar la
confusin para obtener un enunciado validado, a eso le llamamos Problema.
La confusin es un conjunto de sntomas que toman forma de inquietud, dolor
o dificultad. Por supuesto, la confusin lleva implcita una oportunidad.
Concepcin
Entrada: sntomas o definiciones estratgicas
Entregable: una necesidad validada, cuantificada y en su contexto
Se da inicio a esta etapa porque hay algo que se quiere solucionar o una meta
que se desea alcanzar, hablamos genricamente de Problema, puesto entre
comillas porque al comienzo resulta pretencioso llamarle as, hay muchos
sntomas difciles de interpretar, ms bien lo que se tiene es una confusin o
una sensacin de molestia indefinida.
Entonces, la solucin de la confusin es el problema.
MODELANDO UNA SOLUCIN DE SOFTWARE 61
19
Adems, nunca la decisin es obligada, por ejemplo, una opcin es que el dueo de la
empresa decida cerrarla. Suena utpico, sin embargo, tomemos una situacin real: la obligato-
riedad de la incorporacin de una norma de calidad a todas las empresas de capacitacin de
Chile en el 2006. Resultado? sobre el 70% de las empresas prefiri cerrar.
20
En el libro Anlisis de Sistemas, tercera y cuarta parte, se pueden encontrar mayores alcan-
ces acerca de la importancia de la participacin y de su impacto positivo en los resultados.
62 JUAN BRAVO C.
2. Factibilidad
Lo que da origen al trabajo en la etapa es una necesidad de la organizacin,
viene dada desde la etapa de concepcin. El objetivo es obtener el plan de
proyecto de la solucin despus de un barrido creativo de muchas soluciones y
de un estudio comparativo de algunas de ellas.
Factibilidad
Entrada: una necesidad bien estudiada
Entregable final: el plan de proyecto
Entregables intermedios: La investigacin de soluciones y la evaluacin
comparativa de alternativas de solucin seleccionadas
21
En el libro Anlisis de Sistemas se trata extensamente acerca del nfasis en el problema.
22
Un buen apoyo es el libro Desarrollo de sistemas de informacin, una visin prctica,
pginas 50 a 58. Tambin el libro Anlisis de Sistemas, Quinta parte.
MODELANDO UNA SOLUCIN DE SOFTWARE 63
Creatividad aplicada
En esta etapa es vital la creatividad e inventiva aplicada en la bsqueda de
soluciones.
Se exploran amplias posibilidades de solucin al problema hasta decidir por la
frmula que se considere ms apropiada.
As evitamos la rigidez paradigmtica que se produce cuando desde el princi-
pio alguien cree que tiene la solucin.
Qu tcnica es buena para la invencin? Adems de las tcnicas indicadas en
la etapa de concepcin, se puede mencionar: tormenta de ideas, seis sombre-
ros para pensar, comparacin con otras organizaciones, bsqueda bibliogrfica
y consultora. Tambin la integralidad en el conocimiento es importante, tal
como sealan Getz y Robinson (2005, p. 32 ): Deducimos que es la diversi-
dad de conocimientos suficientes en una multitud de campos, y no el conoci-
miento excepcional en un solo campo lo que contribuye al surgimiento de
grandes ideas, y esto a travs de asociaciones inesperadas.
64 JUAN BRAVO C.
Por otra parte, existe un amplio abanico de tcnicas23 que pueden ayudar a
generar soluciones, por ejemplo: cadena de valor, just-in-time, flujos tensados,
Kanban, produccin flexible, costo objetivo, nuevas reglas del juego, salir del
pensamiento dicotmico, armonizar las economas de escala con otras opcio-
nes, logstica, un sistema de gestin de iniciativas y muchas otras.
Getz y Robinson agregan (2005, p. 53): Un sistema de gestin de ideas trans-
forma el potencial creativo en accin creativa y despierta esa fuerza formida-
ble que frecuentemente est dormida y desaprovechada en la empresa.
Algunas actividades de esta etapa son:
Conformar el equipo de trabajo
Revisar el problema
Describir el mbito de trabajo
Plantear un ideal de solucin
Plantear alternativas con amplia libertad
Definir un gran desafo
Identificar restricciones de la solucin
Seleccionar alternativas y objetivos generales
Evaluar cada alternativa
Evaluar las alternativas en forma comparativa
Decidir la opcin y los objetivos especficos
Elaborar el plan de proyecto
Algunas tcnicas en la etapa de factibilidad:
Evaluacin financiera
Tcnicas de evaluacin de programas y proyectos
Anlisis costo-beneficio para la evaluacin social de proyectos24
Idealizacin y creatividad
Planificacin de proyectos
Tambin se debe revisar cada prctica transversal para incluir en el plan de
proyecto. Recurdese que cada una aborda aspectos fundamentales de los pro-
yectos: incorporacin del cliente y de los proveedores, costos, plazos, comuni-
cacin, riesgos, completitud, son 28 en total.
23
Detalladas en el libro Gestin de Procesos.
24
En el libro Responsabilidad Social se profundiza en este tipo de anlisis.
MODELANDO UNA SOLUCIN DE SOFTWARE 65
3. Anlisis
Lo que da origen a esta etapa es el plan de proyecto aprobado. Es el inicio de
la ejecucin del proyecto.
El objetivo es plantear el modelo de negocios de la solucin y los requeri-
mientos correspondientes. El Qu.
Anlisis
Entrada: el plan de proyecto aprobado
Entregable: el modelo de negocios de la solucin con los requerimientos
principales
Estrategia
Personas Tecnologa
Procesos Estructura
a) Estrategia
Es la estrategia del proyecto, con algunos contenidos como estos:
Misin, visin, valores, imagen y dems definiciones que se presentan
en el anexo 1, esta vez aplicadas al proyecto.
Un concepto o idea fuerza que gue la solucin. Tal como la integrali-
dad en el caso de la solucin Vendedor Integral de grandes tiendas, la
transparencia en una solucin arquitectnica o personificar con humor,
como en la campaa para ofrecer crditos de un banco en Chile, decan
Se te apareci marzo? Cuando alguien estaba tranquilamente en un
bote terminando sus vacaciones y se le apareca una persona (marzo).
Es importante destacar que la estrategia del proyecto debe estar sustentada y
alineada con el plan estratgico formal de la compaa, el cual fue vital en la
etapa anterior para darle el pase al proyecto.
b) Personas
Qu sucede con las personas en el modelo de negocios para este proyecto?
Cmo aportan? Cmo se capacitan? Cul es la gestin del cambio?
Hablamos de generar los requerimientos macro de la solucin respecto a: sen-
sibilizacin, capacitacin, empoderamiento, participacin, anticipacin, am-
biente de trabajo, forma de interaccin y otros.
Se requieren planes orientados al equipo de trabajo, por ejemplo: seleccin,
formacin, informacin, participacin, ambiente de trabajo, forma de interac-
cin. Tambin orientados a los usuarios de la solucin, incluso de los clientes
si es necesario (por ejemplo, cuando se introduce un tipo de apoyo automtico
para clientes de las sucursales de un banco y es necesario elaborar planes para
ensear su uso).
El trabajo con las personas considera dos aspectos vitales:
MODELANDO UNA SOLUCIN DE SOFTWARE 67
c) Gestin de Procesos
Se requiere la descripcin del nuevo flujo de trabajo y de los procesos relacio-
nados, ya sean del negocio o de apoyo, involucrados en el mbito de trabajo
del proyecto.
Las tcnicas principales que se emplean son el mapa de procesos y el flujo-
grama de informacin.
Por ejemplo, para una empresa comercial, el mapa de procesos del mbito
venta al detalle se vera como en la figura 1-10, un zoom de una parte del ma-
pa de procesos global (ver figura 1-4).
Vender al detalle
Al Contado Inmediato
A Crdito A domicilio
Programar Entregar
25
Ms detalle en el libro Gestin de Procesos, captulo 11 (si usted saba acerca de procesos
pero no ha renovado su conocimiento, digamos desde el ao 2000, es conveniente una nueva
inmersin, el cambio ha sido grande en esta materia).
MODELANDO UNA SOLUCIN DE SOFTWARE 69
Vender
Aprobar
en SC
CC
Formalizar
CC
Emitir OE CC
OE PROCESOS
DESPACHAR
SC: Sistema de Crditos, CC: Comprobante del Crdito, OE: Orden de Entrega
d) Estructura organizacional
Se refiere a la definicin de la nueva estructura organizacional desde la mirada
que aporta el modelamiento de los procesos.
Los cambios van ms all de slo crear o eliminar cargos (agregar, mover o
sacar cajas del organigrama), alcanzan tambin a: planes y propuestas de ex-
ternalizacin, delegacin, trabajo en equipo, empoderamiento, ms o menos
supervisin, JIT, Kanban y SCM26, entre otros.
Hemos acuado el dicho: un pterodctilo no es una mariposa grande, en el
sentido que tienen una estructura muy diferente y apropiada a su tamao, asi-
mismo debe ocurrir con la organizacin, su estructura depende del tamao, del
rubro y de otros factores.
e) Tecnologa
En cuanto a la tecnologa, se requieren planes para incorporar o adaptar tecno-
logas consideradas en el proyecto: comunicacin, transporte, movimiento
automatizado de carga, despacho, almacenamiento, construccin, automatiza-
cin de oficinas, telefona interna y mucho ms. Debiera incluir precisiones de
propuestas, contratos, capacitacin y en general, formas de implementacin.
Luego, en la medida que se requiera una aplicacin computacional, se procede
a la ingeniera de requerimientos tecnolgicos, los cuales pueden ser plantea-
dos mediante la tcnica UML (la conoceremos en el captulo 6).
Un aspecto importante que debe quedar planteado en la etapa de anlisis es el
diseo general de la interfaz visual, tal como se observa en el ejemplo de la
figura 1-12, donde lo relevante es el esquema general de diseo de la interfaz,
el que luego se aplicar a cada pantalla particular.
26
Supply Chain Management, establece una cadena de valor con el medio llevando la visin
de procesos ms all de los lmites de la organizacin, hasta la cadena que llega al cliente
final, tal como el flujo interorganizacional que se forma para producir y llegar con la fruta
hasta la seora que compra una manzana en un supermercado europeo.
MODELANDO UNA SOLUCIN DE SOFTWARE 71
4. Diseo
Lo que da origen a esta etapa es el modelo de negocios de la solucin con los
requerimientos principales.
El objetivo es obtener el detalle de la solucin que propone el modelo de ne-
gocios, especialmente personas, procesos, estructura organizacional y tecno-
loga. Es el Cmo. Tambin se denomina Ingeniera de Detalle a esta etapa.
Diseo
Entrada: el modelo de negocios con los requerimientos principales
Entregable: el modelo de negocios con el detalle de requerimientos y la for-
ma de implementar
5. Implementacin
Esta etapa nace desde el diseo de la solucin.
El objetivo es llevar a la prctica (tambin construir o realizar) la solucin
detallada que propone el modelo de negocios, armonizando todas sus partes
(estrategia, personas, procesos, estructura y tecnologa). Se trata de imple-
mentar el diseo en una aplicacin real, aunque en carcter piloto.
Implementacin
Entrada: el modelo de negocios con el detalle de requerimientos y la forma
de implementar
Entregable: el piloto de la solucin en buen funcionamiento y el informe
correspondiente
c) Instalar el piloto
Una actividad vital de esta etapa es comenzar a operar la solucin en carcter
piloto, considerando un perodo de prueba integral con datos reales y en la
prctica.
27
El libro Anlisis de Sistemas aborda el tema de la complejidad de los sistemas.
28
El autor tuvo el privilegio de asesorar en una conocida empresa minera en un proyecto de
renovacin tecnolgica. Ocurri que justo en el momento de la implementacin el lder del
proyecto se fue de vacaciones fuera del pas El fracaso estuvo cercano y slo la excelente
disposicin de los usuarios y del resto del equipo lograron salvar la situacin.
76 JUAN BRAVO C.
6. Despliegue
La etapa de despliegue nace desde la implementacin piloto de la solucin.
El objetivo es expandir la solucin generada hasta ser bien utilizada por todos
los usuarios previstos en el plan de proyecto.
Despliegue
Entrada: el piloto de la solucin en buen funcionamiento
Entregable: la solucin completa en buen funcionamiento y el informe co-
rrespondiente
29
De acuerdo lo indicado en el libro Gestin de Procesos, se hace una distincin entre capaci-
tacin y entrenamiento. La capacitacin se orienta al desarrollo de competencias generales. El
entrenamiento (el training de F. W. Taylor) se refiere a la formacin en los procesos especfi-
cos en que trabaja la persona.
MODELANDO UNA SOLUCIN DE SOFTWARE 77
7. Operacin
La etapa de operacin nace cuando la solucin generada est siendo bien utili-
zada por todos los usuarios previstos en el plan de proyecto. Requiere de la
documentacin generada en todas las etapas.
Operacin
Entrada: la solucin completa en buen funcionamiento
Entregable: mantener la solucin en buen funcionamiento hasta que cumpla
con su vida til. La mejora continua es una actividad central.
30
En el libro Desarrollo de sistemas de informacin, una visin prctica hay alcances adicio-
nales bajo el ttulo Sistemas en Actividad.
31
Se presentan aqu solamente como una muestra de la profundidad de la mejora continua,
estn detalladas en el libro Gestin de Procesos, captulo 15.
80 JUAN BRAVO C.
Control de cambios
Se trata de establecer un procedimiento de aceptacin de requerimientos me-
nores en el mbito de la TI. Ya sea obtencin de nuevos informes o consultas,
es indispensable seguir el procedimiento general del rea de sistemas en cuan-
to a requerimientos menores. Un ejemplo de procedimiento se presenta en la
figura 1-13 y a continuacin como texto.
PROCESO: EMITIR UNA SOLICITUD DE CAMBIO MENOR EN APLICACIONES COMPUTACIONALES
USUARIO AUTORIZADO DEPARTAMENTO DE INFORMTICA REA DESARROLLO
JEFE INFORMTICA ANALISTA SUBCOMIT CAMBIOS
Asignar
SC Analista
Estudiar
impacto
Casos de
uso
Emitir
Abreviaturas: informe
SC: Solicitud de Cambio II
PROCESO PD
IMPLEMENTAR
32
Cada uno de nosotros es contratado en la organizacin por el valor que agrega respecto a
cumplir sus fines. Este valor, conservadoramente, es unas 5 veces la renta lquida. En todo
caso, la recomendacin del mtodo es multiplicar slo por 2 para efectos de obtener un costeo
conservador.
84 JUAN BRAVO C.
11. Trazabilidad
12. Quick Wins
13. Costos y duracin
14. Gestin de riesgos
15. Gestin de la calidad
16. Responsabilidad social
17. Insercin
18. Orientacin al cliente
19. Sensibilizacin
20. Capacitacin
21. Seguimiento
22. Cuidar la solucin anterior
23. Continuidad operacional
24. Plan de recursos fsicos del proyecto
25. Kill time
26. Control de cambios
27. Gestin del cambio
28. Gestin de proveedores
2. Plan de la etapa
Una vez que est decidido realizar una etapa, es necesario revisar y detallar el
plan de la misma (duracin, encargado, costo, documentos de licitacin que
ser necesario construir, entre otros). Incluso, tal vez sea necesario replantear
el plan general del resto del proyecto Son reestimaciones a la luz del avance.
Se hace una programacin detallada de la etapa, con fechas precisas e inclu-
so horarios en algunos casos. El plan de la etapa puede ser el nico que existe,
como en la concepcin y factibilidad, porque todava no hay proyecto.
Es conveniente considerar que en cualquier etapa se puede cancelar el proyec-
to o volver a una etapa anterior, por ejemplo, si se detect algo no considerado
o si hubo un cambio relevante en el entorno para el par problema-solucin.
Una recomendacin, asegrese que lo definido en la etapa anterior sigue sien-
do vlido, especialmente si pas mucho hasta la siguiente.
Por supuesto, el plan de la etapa debe ser aprobado por autoridad.
MODELANDO UNA SOLUCIN DE SOFTWARE 87
4. Retroalimentacin
Se trata de revisar el resultado logrado respecto a lo planeado para la etapa. Se
comunican los resultados al resto del equipo y las conclusiones quedan dispo-
nibles para toda la organizacin.
Practicar la retroalimentacin es un proceso continuo de preguntarnos: Qu
aprendimos? Qu aprend? Si tuviramos que hacer nuevamente el mismo
trabajo de la etapa, cmo lo haramos? Qu cambios introduciramos? Tam-
bin contempla preguntarnos si se estn resolviendo las necesidades originales
actualizadas.
Retroalimentar es una prctica que debe incluirse tanto al trmino de cada
etapa como al completar el proyecto.
El espritu de este punto es detenernos, reflexionar, aprender y seguir.
5. El equipo de trabajo
La prctica ms habitual es formar un equipo de trabajo en cada etapa, mante-
niendo un ncleo de participantes permanentes durante el proyecto.
88 JUAN BRAVO C.
6. Entrevistas
Una prctica frecuente en los proyectos es la realizacin de entrevistas a usua-
rios, ejecutivos y personas de fuera de la organizacin. La finalidad principal
es levantar informacin til al proyecto y se complementa con otras tcnicas
(encuestas, informes de consultora o de auditora).
Al comenzar la etapa debe elaborar el plan de entrevistas. Luego debe prepa-
rar cada entrevista, anticipando lo que se pueda utilizar. Vital es la buena eje-
cucin y el anlisis posterior para incorporar las conclusiones al proyecto y
cumplir los compromisos adquiridos.
Durante la entrevista lo principal es crear ambiente, es decir, un clima de con-
fianza con una actitud serena que surge de la puntualidad, preparacin y pre-
sentacin (las tres P de las entrevistas).
Kendall y Kendall agregan (2005, p. 66): Necesita pensar detalladamente en
las entrevistas antes de hacerlas. Visualice por qu las va a hacer, qu va a
preguntar y qu es lo que a su juicio har que esta entrevista tenga xito. Asi-
mismo, debe pensar cmo lograr que la entrevista sea satisfactoria para el
individuo al que entreviste.
MODELANDO UNA SOLUCIN DE SOFTWARE 89
7. Comunicacin
Se trata de comunicar el proyecto al interior y exterior de la empresa, con
mensajes adaptados segn el tipo de interlocutor (no es lo mismo comunicar a
la direccin que a los funcionarios administrativos o a los clientes). Es conve-
niente comunicar mucho.
Esta sola actividad implica disponer de horas de especialistas en comunica-
cin, con dedicacin parcial o total segn la envergadura del proyecto.
Incluye la formacin de diferentes tipos de mesas de ayuda segn la etapa del
proyecto.
Se puede comunicar en el mbito de problema o de la solucin, es una activi-
dad completamente transversal.
8. Informes
Cada etapa tiene uno o ms entregables que deben quedar registrados en in-
formes. En el plan detallado de cada etapa deben quedar resueltos aspectos
tales como: quin redacta qu informe? A quin se le entrega?
La prctica genrica es documentar e implica el desarrollo de las competen-
cias mnimas en el equipo de trabajo (que es preferible no dar por adquiridas),
por ejemplo: redaccin, ortografa y capacidad de sntesis. Al menos, la habi-
lidad de leer.
Por supuesto, debiera documentarse al mismo tiempo que se avanza en la eta-
pa, evitando postergar.
Es necesario establecer un modelo de documentacin de las aplicaciones.
9. Tcnicas
Se trata de seleccionar las tcnicas a emplear en cada etapa del proyecto, por
ejemplo, para efectos del anlisis, realizar la ingeniera de requerimientos con
UML, utilizar mapas de procesos globales o flujogramas de informacin con
el curso normal de los eventos.
Hoy ya sabemos que tcnicas emplear en cada etapa de un proyecto, sin em-
bargo, la variedad es tan amplia que la organizacin debe definir algunas.
90 JUAN BRAVO C.
11. Trazabilidad
Trazabilidad se entiende en dos sentidos:
a) Trazabilidad de las transacciones, donde se sigue la pista a la actualizacin
de los datos. Se usan transacciones formales y presentes desde la creacin
de un dato, por ejemplo, como se ha movido el saldo de la cuenta corriente
de un cliente.
b) Trazabilidad del desarrollo, donde se sigue la pista a cada requerimiento
implementado, como fue diseado, el anlisis que le dio forma, la evalua-
cin que lo aprob, quien lo gest y por qu.
Es como la trazabilidad de la fruta, donde el cliente de un supermercado en
Europa puede saber que el durazno que adquiri viene de Chile (importador,
exportador o puerto) y de un lote especfico con detalle del packing, fertilizan-
tes y suelos.
33
MS Project y Visio de Microsoft, Aris de SAP, Corporate Modeler de Case Wise, M1 y
Rational de IBM, Z4 de Tuxpan, ERWIN Data Modeler de Computer Associates.
MODELANDO UNA SOLUCIN DE SOFTWARE 91
34
En el libro Gestin de Procesos hay un anlisis de la gestin de riesgos.
35
Quality Assurance, traducida como aseguramiento de la calidad.
MODELANDO UNA SOLUCIN DE SOFTWARE 93
17. Insercin
El problema y la solucin deben insertarse en un todo mayor rea, empresa
o industria para comprender y alinear los intereses.
Insertar es observar cmo se relaciona el problema o la solucin con otros
problemas o soluciones dentro y fuera de la organizacin y as transferir recur-
sos, alinear intereses, optimizar adquisiciones y manejar el aspecto poltico en
cuanto al mejor momento de plantear el cambio.
Se debe monitorear la contribucin actualizada de la finalidad del proyecto a
la estrategia de la organizacin.
19. Sensibilizacin
Es el manejo del cambio en relacin a la emocin. El objetivo es encantar a
los afectados.
La idea es aplicar lo aprendido acerca de encantar a todas las personas de de-
ntro y fuera de la organizacin que tienen relacin con el proyecto.
Es diferente a comunicar y capacitar, aunque se complementa con esas prcti-
cas. Se aplica mediante anticipacin, participacin, talleres ver prctica
Quick Winsy otras formas creativas (poleras, lpices, etc.)
20. Capacitacin
La capacitacin del equipo de proyecto debiera ser continua durante todo el
proyecto. Adems, es una excelente oportunidad para lograr acuerdos en los
mltiples detalles de la necesidad y del proyecto.
El diseo de la actividad es muy importante: lugar, objetivos, duracin, rela-
tor, extensin y muchos otros aspectos deben estar bien pensados.
La capacitacin de los usuarios es vital en el proyecto. Por supuesto, es dife-
rente segn tipos de usuarios y puede tomar variadas formas (la recomenda-
cin es una combinacin de posibilidades):
Puede ser realizada por relatores profesionales, por siclogos preparados
en los mensajes del proyecto, por el equipo de proyecto, por usuarios que
actan como monitores, por ejecutivos, etc
Puede emplear variados medios creativas: Intranet, e-learning, Internet,
clases presenciales, videos, teleconferencia, etc...
Puede comenzar en etapas tempranas del proyecto, se programa en detalle
en cada etapa.
No tiene que ser extensa, aunque s bien realizada, con preparacin en peda-
goga de quienes van a capacitar. En especial, lo que ya sabemos de armonizar
las variadas dimensiones del ser humano: espiritual, intelectual, emocional y
corporal.
21. Seguimiento
Realizar seguimiento es llevar control del avance del proyecto completo y en
cada etapa. Se monitorean variables crticas del proyecto (costos, plazos,
hitos, satisfaccin de usuarios, calidad) Desde este punto de vista tiene rela-
cin con el diseo de indicadores.
MODELANDO UNA SOLUCIN DE SOFTWARE 95
36
En la etapa de operacin descrita en la seccin 1.4 se present un proceso de control de
cambios.
MODELANDO UNA SOLUCIN DE SOFTWARE 97
CAPTULO 2.
INGENIERA DE SOFTWARE
MODELANDO UNA SOLUCIN DE SOFTWARE 99
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
3. Esfuerzo de educacin
La ingeniera de software es una materia especializada y no es habitual que se
hable de educacin en este contexto. Sin embargo, es indispensable hacerlo si
queremos producir software efectivo y de calidad.
Si un ejecutivo destina a su labor especializada varios miles de horas de per-
feccionamiento, debiera destinar una cantidad equivalente de horas a los te-
mas de su entorno, uno de los cuales es la tecnologa de informacin. Este es
un principio sistmico, el equilibrio entre especializacin y generalizacin.
Es sorprendente la mayor productividad que se logra cuando los ejecutivos se
educan en el anlisis de problemas y los especialistas se capacitan sistemti-
camente en tcnicas y herramientas uniformes para el desarrollo de sistemas.
Adicionalmente, se incrementa la capacidad individual, mejora el funciona-
miento de equipos de trabajo y se refuerza la motivacin.
Este tema es de tal trascendencia que, refirindose al control total de calidad,
el Dr. Kaoru Ishikawa, ganador del premio Deming a la calidad, dice: la ca-
lidad comienza con educacin y termina con educacin.
Utilizamos la palabra educacin porque ella es consecuencia del proceso de
aprendizaje y reflejo de ser una persona culta. Se refiere a una conducta edu-
cada y no a una acumulacin de ttulos. Est relacionada con una sistemati-
zacin del conocimiento, un aprender a pensar y luego cambiar la forma de
pensar. La educacin implica una mentalidad abierta, menos prejuicios, dar
mejores respuestas a los desafos del medio y atreverse a hacer cambios.
Una faceta de la educacin es la capacitacin, la cual se refiere a dominar una
materia o a lograr una destreza especfica. Siendo la actividad de capacitacin
de fundamental importancia en la empresa, ella est indudablemente supedita-
da a los mayores intereses de la educacin.
Otra faceta es el Training (traducido como entrenamiento) destinado a formar
a las personas en los procesos especficos en que participa.
Cmo se aplica el esfuerzo de educacin en la organizacin?
A travs de establecer planes de perfeccionamiento dirigidos a todas las per-
sonas, comenzando por los ejecutivos de mayor nivel. Para disear el progra-
ma de enseanza, se pueden extraer algunos temas de la clasificacin de mate-
rias presentada en la figura 2-1, la cual es solamente un ejemplo del tipo de
materias en cada categora.
MODELANDO UNA SOLUCIN DE SOFTWARE 105
La empresa en la comunidad
Planificacin estratgica
Adaptacin al cambio
Liderazgo, organizacin y administracin
Reingeniera y benchmarking
Ambiente
Mejoramiento continuo
de
Visin sistmica
Calidad Gestin de procesos
Mapas de procesos
Flujograma de Informacin
Gestin de proyectos
Orientacin al cliente
Diseo de sistemas
Sistema de productividad
Orientacin a objetos y UML
Tecnologa
Modelamiento de datos
De Mtodos de desarrollo de software
Informacin Herramientas CASE
Bases de datos simple
Automatizacin de oficinas
4. Tecnologa de informacin
La Tecnologa de Informacin (TI) est revolucionando nuestra sociedad ms
rpidamente que cualquier otra disciplina, penetr profundamente en la em-
presa moderna, est entrando en el colegio y en el hogar.
Qu es la tecnologa de informacin? La palabra tecnologa ya nos dice mu-
cho, ella proviene de la raz latina techne = arte y logy = organizacin, es de-
cir, arte organizado, susceptible de ser compartido, estudiado y completado,
en contraposicin al simple chispazo de la techne; en resumen, tecnologa
sera un cuerpo de conocimientos organizado que consta de mtodos y herra-
mientas en rpido progreso. Sobre la informacin, hay cientos de libros que la
tratan desde todo punto de vista. Podramos agregar que los datos se encuen-
tran hoy en computadores que los procesan para obtener, gota a gota, esa in-
formacin que a su vez es la base del conocimiento.
Por supuesto, ese procesamiento involucra muchos recursos de hardware,
software y sobre todo, personas altamente capacitadas.
La formacin de un conocimiento objetivo, a partir de la informacin, la ob-
servacin y la experiencia, es lo que produce tecnologa. Es un tipo de cono-
cimiento medible, de rpida formacin, traspasable, actualizado y perfeccio-
nado, con redes internacionales de especialistas que comparten su saber. Esto
ha sido en gran medida lo que origin la revolucin industrial y ahora la revo-
lucin del conocimiento.
Aunque no basta con el conocimiento, tambin es indispensable el entendi-
miento37. Con la comprensin que nos provee podremos darnos cuenta que la
aplicacin de un determinado conocimiento puede ser daino para el conjunto
y para nosotros mismos en el mediano y largo plazo. Tal vez resulte ms con-
veniente no extraer aquel petrleo desde el fondo del lago, porque el costo de
la contaminacin y de la prdida de agua potable sean mayores que el eventual
beneficio. Sabemos cmo hacerlo, pero decidimos no hacerlo.
Si el conocimiento es fruto de la informacin, observacin y experiencia, el
entendimiento es hijo de la reflexin y de la verdadera educacin, aqulla que
nos hace cambiar y pensar por nosotros mismos.
37
Es el entendimiento el que nos lleva al desarrollo, directamente relacionado con el aumento
de la calidad de vida. La nueva visin de la organizacin es la de un sistema social caracteri-
zado por la interdependencia, esto es comprender que cualquier problema que alguien tenga,
nos afectar a nosotros de una u otra forma. Y lo que a l le beneficie, nos ayudar tambin a
nosotros. Esta visin de sistema social es la base de una habilidad fundamental en nuestros
das, la adaptacin al cambio, sustento de las nuevas definiciones de inteligencia.
MODELANDO UNA SOLUCIN DE SOFTWARE 107
38
Stan Shih, fundador y presidente de Acer, en un viaje a Chile realizado para sostener con-
versaciones con la subsidiara local, expone (El Mercurio, 30 de julio de 1995) algunas de las
causas del xito de Acer, compaa que en slo un ao salt del nmero 14 al 7 de entre los
mayores fabricantes de PCs a nivel mundial. Opina que la computacin recin comienza y
que a principio de los 90s se produjo un cambio radical en el mercado que llamaron desinte-
gracin de la industria. Para adaptarse, emprendieron el proceso de la reingeniera de acuer-
do con tres grandes estrategias:
El modelo de comida rpida. La idea es ensamblar el PC en el punto de ventas y fabricar las
piezas en otra parte.
La estructura organizativa de clienteservidor. Cada empresa del grupo es independiente y
cada una est enfocada a una lnea de productos La relacin de la red les permite mejorar la
calidad y reducir costos. Esta clase de estructura maneja mejor los cambios y en esta industria
el cambio es constante.
La idea de marca global, toque local. As, por ejemplo, en Chile se ve qu clase de produc-
tos gustan y a esos se les da prioridad Queremos tener socios en cada pas a travs de so-
ciedades annimas abiertas.
Dice: los gerentes son tambin inversionistas hacemos mucha capacitacin las unidades
toman sus propias decisiones no buscamos tamao, tenemos que buscar el retorno y cmo
podemos construir competitividad innovacin no slo en el producto, tambin en la admi-
nistracin.
110 JUAN BRAVO C.
2. Reconversin de la informtica
La tecnologa de informacin, junto con la masiva incorporacin del usuario,
las revoluciones del hardware, software, mtodos y esquemas organizaciona-
les, estn provocando profundos cambios en el perfil de los especialistas en
computacin, slo comparables a las enormes reconversiones que significaron
112 JUAN BRAVO C.
el cambio del ferrocarril a vapor por la locomotora elctrica y del carbn por
otras fuentes de energa.
Una de las consecuencias ms inmediatas es el cambio en las funciones de los
diferentes especialistas:
Digitadores y operadores prcticamente no se requieren en el centro de
informtica, pero pueden pasar a desempearse como apoyo en departa-
mentos usuarios, trabajando en pequeas unidades de informtica descen-
tralizadas o directamente en funciones propias del quehacer de otras reas,
aprovechando su conocimiento sobre la organizacin.
Los programadores pasarn a ser analistas-programadores, ellos deben
proveer de soluciones informticas completas, a partir del diseo de la
aplicacin. Tanto en el diseo como en la construccin de sistemas deben
apoyarse en las herramientas de productividad.
Los analistas de sistemas pasarn a desempearse como consultores inter-
nos, especialmente en innovaciones, informacin y adaptacin al cambio.
El nuevo rol del analista ya es solucionar problemas, en lugar de desarro-
llar sistemas computacionales; en consecuencia, su preparacin debe in-
cluir conocimientos sobre todas las nuevas herramientas de apoyo integral
a la organizacin: estrategia, gestin de procesos, benchmarking, liderazgo
o inteligencia competitiva.
El jefe de informtica ser un lder y trabajar con sus colaboradores en el
marco de una relacin ms profesional que jerrquica. Su misin principal
ser la interaccin con el medio: clientes, proveedores o competencia, para
aumentar permanentemente la productividad, la calidad y el servicio al clien-
te no slo de su rea, sino de toda la empresa. Tambin el cambio se aprecia
en la evolucin del nombre del cargo, el nuevo nombre que usamos es Ge-
rente de Sistemas.
Observando la realidad actual de muchas organizaciones, se llega a concluir
que la reconversin de programadores sigue los mismos patrones que en otras
reas con cambios drsticos, tal como se muestra en la figura 2-2. Ms o me-
nos el 25% de los actuales programadores no requiere entrenamiento especial,
pues ya tiene conocimientos actualizados y aplica las nuevas tecnologas. El
50% deber ser reentrenado y puede seguir desempendose sin mayores difi-
cultades. El 25% restante tiene poca tolerancia al cambio, aunque la mayora de
ellos puede subirse a este nuevo mundo con perfeccionamiento en la medida
que su predisposicin personal sea positiva.
MODELANDO UNA SOLUCIN DE SOFTWARE 113
25% 25%
Ya poseen No tienen
los nuevos tolerancia
conocimientos al cambio
50%
Pueden ser
reentrenados
Externalizacin (outsourcing)
Significa contratar externamente el servicio de informtica, teniendo el cuida-
do de mantener internamente algn interlocutor con amplios conocimientos de
informtica y de administracin, un especialista en informacin. Desde los
puntos de vista econmico, sistmico y humano esta opcin aparece como la
ms apropiada en la mayora de las organizaciones cuya misin no tiene rela-
cin con la informtica:
Es ms econmico, porque generalmente resulta de ms bajo costo subcon-
tratar que proporcionarse uno mismo el servicio, incluyendo en el costo in-
terno las rentas de las personas, infraestructura fsica y uso de otros recur-
sos generales: contabilidad, servicios bsicos, etc. Esto agrega el gran be-
neficio del ahorro de tiempo en interacciones innecesarias al interior de la
empresa, el cual probablemente es mayor al costo directo.
Es ms natural, porque, segn el enfoque sistmico, la mxima potencia de
una organizacin se logra cuando est totalmente concentrada en su mi-
sin, la cual desatiende al destinar tiempo y recursos en atender a la auto-
generacin de servicios que puede tomar del medio. En otras palabras, aun
cuando el servicio interno resulte ms econmico que ser contratado exter-
namente, lo cual ya es poco probable, esa diferencia a su favor es nfima
comparada con el costo de oportunidad o el mayor rendimiento potencial
de los mismos recursos destinados a apoyar la misin de la organizacin.
MODELANDO UNA SOLUCIN DE SOFTWARE 115
empresa de 30 ex-empleados que, a poco andar, tuvo que hacer muchas con-
trataciones adicionales.
Planificacin Estratgica
Evaluacin
Estrategia Informtica
Prioridades de desarrollo, modelo de datos, definiciones estratgicas
y plan de implementacin
39
Se refiere al ranking de la revista homnima con respecto a las 500 empresas de mayores
ingresos y rentabilidad.
MODELANDO UNA SOLUCIN DE SOFTWARE 121
cirn cambios y realizarn las adaptaciones necesarias para atender cada situa-
cin particular.
Definiciones estratgicas del rea informtica
Organizacin de la funcin informtica
Plan de equipamiento
Administrador de las bases de datos de la empresa
Mtodos de la tecnologa de informacin
Herramientas de productividad para usuarios y especialistas
Acuerdos de normalizacin en mltiples aspectos
Grado de participacin de los usuarios
Identificacin de los procesos del negocio de la organizacin, principales y
secundarios
Conjuntos de datos que se manejan en cada proceso
Matriz con todos los procesos y conjuntos de datos
Modelo de datos conceptual de la organizacin
Realidad actual
De las definiciones estratgicas
Aplicaciones en funcionamiento
Conjuntos de datos ya formados
Proyectos en desarrollo
Evaluacin
Participacin de los usuarios
Factores (negociaciones)
Importancia del proceso
Grado de desarrollo previo
Tamao
Dimensionamiento
Requerimientos de personas
Capacitacin
Hardware
Software
Infraestructura
Comunicaciones
Estrategia informtica
Prioridades de desarrollo
Modelo de los conjuntos de datos y sus relaciones
Definiciones estratgicas reformuladas
122 JUAN BRAVO C.
Plan de implementacin
Perfeccionamiento
En conclusin
La TI por si sola no aporta valor, est al servicio del propsito de la organi-
zacin. La proporcin en que se aplica ser mayor si se acerca al corazn
del negocio
La buena comunicacin con los socios tecnolgicos es central
La TI pasa a travs de integrantes de la organizacin quienes deben querer
usarla y estar capacitados para ello
La secuencia Fortalezas (FO), Factores de diferenciacin (FD) y Ventajas
competitivas (VC) es importante.
FO FD VC
40
Ver libro Gestin de procesos.
MODELANDO UNA SOLUCIN DE SOFTWARE 123
41
Productividad, en simple, es producir ms con menos recursos. Es la base de la creacin de
riqueza, en el libro Gestin de procesos se profundiza en este concepto.
42
Se refiere especficamente al desarrollo de software, este sistema de productividad se puede
ver como un subconjunto del mtodo GSP presentado en el captulo 1. Por lo mismo, no se
incluy aqu la vital orientacin al cliente.
124 JUAN BRAVO C.
1. Mtodo
Se requiere mtodo para toda la organizacin y que aborde el ciclo de vida
completo de cualquier proyecto, no slo su parte tecnolgica. Por supuesto, el
MODELANDO UNA SOLUCIN DE SOFTWARE 125
2. Tcnicas
Las tcnicas debieran ser modernas, simples, fciles de aprender y conocidas
por todos, tanto para el ciclo completo de desarrollo como al interior de cada
etapa. Por ejemplo, orientacin a objetos y UML.
Las tcnicas tienen que llevar a una amplia portabilidad del software produci-
do. Este concepto se aplica generalmente a implementar la aplicacin en dife-
rentes plataformas, aunque tambin se refiere a la portabilidad del diseo.
Las tcnicas tambin deben ayudar a facilitar el perfeccionamiento de las apli-
caciones, para que:
Puedan utilizarse en otras unidades de la misma organizacin.
Puedan utilizarse como parte de otra aplicacin.
Sean independientes de sus desarrolladores.
Sean fcil de ampliar, explicar y de utilizar por otras personas.
En otras palabras, incorporando un amplia portabilidad, en la forma de com-
ponentes, como en la tcnica de orientacin a objetos.
Directamente relacionados con las tcnicas se encuentran los procedimientos,
indispensables para enlazar diferentes tcnicas en distintas etapas del ciclo de
vida de un sistema de informacin, regular la participacin de especialistas y
usuarios o normar el uso de una u otra herramienta segn el tipo de problema.
Por ejemplo, como el enlace que veremos en el captulo 6 entre las actividades
del flujograma de informacin y los casos de uso de UML.
3. Herramientas de software
Los mtodos y tcnicas tienen que estar apoyados por buenas herramientas,
con especial nfasis en la amistosidad. Por supuesto, la incorporacin de este
tipo de software debiera ir acompaada del correspondiente entrenamiento, no
slo en el uso del producto sino tambin en la tcnica que le acompaa, esa
tecnologa que viene junto con la herramienta.
Es indispensable el alineamiento entre los mtodos adoptados por la organiza-
cin y las herramientas de apoyo al desarrollo de software (CASE).
126 JUAN BRAVO C.
4. Hardware
Mucho se habla sobre el extraordinario avance en el rendimiento de los com-
putadores y el acierto de Gordon E. Moore con la conocida ley que lleva su
apellido, dice que cada 18 meses se duplica la capacidad de los computadores,
originalmente aplicada a los grandes equipos, se populariz para los PCs43.
Es innecesario profundizar en este aspecto, aunque s puntualizar la imperiosa
necesidad de aprovechar este potencial para aumentar la productividad.
Especial mencin requiere la revolucin provocada con la introduccin de los
PCs, cada vez ms poderosos, al punto de hacerse comparables con el rendi-
miento de los mainframes (equipos grandes).
Incluso surgi una tendencia, llamada Downsizing44, orientada a la reduccin
de tamao del equipamiento computacional y en general de toda la infraes-
tructura. En el caso de los equipos, tpicamente se pasa desde mainframes a
microcomputadores que tienen el rol de servidores en una red.
En todo caso, se aprecia que en las grandes instalaciones predominan los
equipos tipo mainframes, especializados en el manejo de alto volumen de
transacciones.
Una solucin que est siendo cada vez ms utilizada es disponer de estacio-
nes de trabajo con PCs poderosos donde los especialistas puedan desarrollar
y luego llevar el producto de software al computador central.
Es destacable que los avances del hardware han permitido el uso masivo de
software ms poderoso. Y viceversa, porque nuevo software, como los juegos
para nios, requieren hardware cada vez ms poderoso.
El respaldo y la solidez del proveedor fueron y siguen siendo fundamentales.
43
Sorprende al autor el rpido avance, en 1980 estaba a cargo de una instalacin con equipa-
miento por valor de ms de un milln de dlares. Hoy, a fines de la primera dcada del nuevo
milenio, esa misma instalacin (512 KB de memoria, 200 MB en disco, 6 terminales), costara
alrededor de una milsima parte y tendra 100 veces ms capacidad.
44
En el punto 3, Nuevas formas de las organizacin informtica, de la seccin 2.2, Planifica-
cin en Informtica, se describi este concepto.
MODELANDO UNA SOLUCIN DE SOFTWARE 127
45
Se presenta ante un Juez el infractor de una norma de trnsito, le dice: seor Juez, es la
primera vez que tengo una infraccin, puede anularla? El Juez seala el computador que
tiene en su escritorio (recin instalado, todava sin funcionar) y le dice: Si ingreso su identifi-
cacin, el sistema me dir si usted dice la verdad, lo hago? El infractor contesta: Prefiero
pagar. El Juez tiene clara su necesidad.
128 JUAN BRAVO C.
En el caso del desarrollo de software, hoy todos los elementos son ms amis-
tosos (hardware, muchas herramientas y mtodos), existe una importante in-
fraestructura de apoyo (departamentos de sistemas, consultores, proveedores)
y los usuarios estn aprendiendo.
Sin que el usuario afecte su especializacin dentro de la organizacin, debera
destinar unas 100 200 horas al perfeccionamiento inicial en tecnologa de
informacin y luego unas 40 horas anuales, en el marco de un equilibrio entre
especializacin y generalizacin. Naturalmente, la cantidad precisa de horas
para perfeccionamiento estar dada por la definicin de capacidades que se
deseen obtener y la preparacin previa del usuario.
Cmo influye la amistosidad de las herramientas en el aumento de la produc-
tividad? Se entiende la caracterstica de amistosidad en un sentido amplio, de
integracin del usuario e incluyendo el concepto de interfaz intuitiva, en el
cual se trata de dar al software el mximo de naturalidad a travs del uso de
imgenes, voz e conos.
Desde este punto de vista, se considera la caracterstica de amistosidad como
parte de la productividad, porque sta puede aumentar casi al doble si los
usuarios comienzan a resolver una porcin de sus propias necesidades, es-
timndose que ellos puedan absorber sin problemas casi la mitad del desarro-
llo lo cual significa que se libera la mitad del trabajo de los especialistas
particularmente la de aquellas aplicaciones que demoran ms en explicarse
que en hacerse. Esto es hoy una realidad para aplicaciones muy simples que se
pueden resolver, por ejemplo, con una planilla electrnica o con la contrata-
cin del servicio externo directamente por el usuario.
Hay que ser cuidadoso con no abusar de esta descentralizacin porque la au-
tonoma del usuario podra interferir con la necesidad de tener sistemas cen-
tralizados e integrados. La solucin del conflicto es materia de un proceso de
negociacin interna.
Cuando el usuario soluciona sus propias necesidades menores, se obtiene un
subproducto que aumenta en mucho la productividad: la reduccin de las in-
teracciones innecesarias con otras personas. Se le llama tambin costo de
transaccin o de administracin. Es el tiempo invertido en la definicin y con-
trol del acuerdo. Desde un punto de vista tcnico, se gana tiempo disminuyen-
do el overhead administrativo, el cual se podra definir como el tiempo im-
productivo destinado a una labor productiva. Este overhead46 tambin se
46
Se podra definir el overhead como el tiempo que ocupa el sistema en su organizacin
interna para dar respuesta al requerimiento. Por ejemplo, desde el punto de vista de la rapidez,
MODELANDO UNA SOLUCIN DE SOFTWARE 129
e informtica, entre otros temas que le permitan comunicarse bien con usua-
rios y especialistas en informtica.
Especializacin 10
100% de potencialidad
(mxima productividad)
0
0 10 Comunicacin Interpersonal
7. Normalizacin externa
Es indispensable realizar un sostenido, coherente y planificado esfuerzo de
normalizacin al interior de toda la organizacin y con el exterior. As, cada
una de las etapas del desarrollo de software se realizar uniformemente, sin
las grandes variaciones entre los esquemas particulares de cada especialista.
Este esfuerzo debera estar considerado en el plan informtico, ser ejecutado
por el responsable de informtica y supervisado por el comit de informtica.
Qu debe normalizarse? Todo: el hardware, los mtodos de desarrollo, las
herramientas de software, el entrenamiento, la documentacin. Por qu es
necesaria la normalizacin? Porque la organizacin tiene que centrarse en su
negocio y tomar del medio lo que necesite para cumplir con su misin.
132 JUAN BRAVO C.
8. Factores de contexto
Hay otra serie de factores que tambin debemos tomar en cuenta. Si son posi-
tivos pueden ayudar a aumentar la productividad ms all de las 10 veces sea-
ladas al comienzo de esta seccin acerca del Sistema de productividad en el
desarrollo de software.
Algunos factores de contexto son:
Calidad de la planificacin, en el sentido de su reformulacin permanente
y conocimiento de ella por parte de todos los integrantes de la empresa.
Alineamiento del plan TI con el plan de negocios de la organizacin.
Motivacin de las personas. Con amplia participacin, cumplimiento de
los acuerdos y un ambiente de colaboracin. Ya vimos en el captulo 1 la
especial relevancia que tienen el liderazgo y el trabajo en equipo.
Ambiente fsico: temperatura, ventilacin, comodidad, tranquilidad, silen-
cio y otros elementos ambientales tienen un importante rol que jugar en la
productividad de los profesionales de sistemas y de toda la organizacin.
Permeabilidad de la empresa a la innovacin tecnolgica.
Respuesta a la competencia y permanente conocimiento de lo que el mer-
cado ofrece.
Capacidad de la gerencia, particularmente en la lnea de ser ms
empresario que administrador.
Conocimiento del problema: es vital la participacin del usuario y decisivo
para el xito del proyecto de software.
Participantes experimentados: as aumenta la eficiencia y la probabilidad
de xito del proyecto.
Conocimiento del entorno donde se insertar el producto desarrollado.
Esta serie de factores de contexto podran resumirse en la bsqueda de la ex-
celencia en la gestin.
MODELANDO UNA SOLUCIN DE SOFTWARE 135
En gran medida, la idea de publicar esta obra nace del gran cambio producido
en la forma de enfrentar el diseo de una aplicacin computacional, antes
orientado a la optimizacin en el uso de recursos computacionales y ahora con
nfasis en la simplicidad y la calidad del diseo, independiente de la imple-
mentacin tecnolgica.
Con esa filosofa se presentan a continuacin antiguos criterios, nuevos mitos
y algunos principios para un nuevo esquema de desarrollo de software.
Veremos:
1. Criterios anticuados de desarrollo de software
2. Mitos del desarrollo de software
3. Nuevos principios para el desarrollo de software
4. Construir sistemas computacionales sin programar?
5. Pruebas del software por el programador
6. Mantenimiento de la solucin de software
racin y ms bien est construido con una desagregacin muy poco funcio-
nal.
Definicin de rutinas complejas. Nada hay que complique ms la manten-
cin que la incorporacin de rutinas complejas dentro de un programa.
Siempre es posible simplificar y modularizar las rutinas. Es ms, en la ma-
yora de los casos el problema que da origen a la rutina compleja podra
haberse enfrentado de otra manera en el diseo. Tambin podran utilizarse
rutinas prehechas o generadas con herramientas de cuarta generacin.
Construir rutinas complejas para resolver problemas del mismo tipo no es
como reinventar frecuentemente la rueda?
Utilizacin de matrices en programas. Es tpico de programas muy com-
plejos hacer uso indiscriminado de vectores o matrices, los cuales represen-
tan una excelente instancia de optimizacin, pero no deberan utilizarse a
menos que sea realmente indispensable porque el contenido del vector o
matriz queda invisible para la organizacin, la informacin pasa a ser parte
del cdigo, con enormes dificultades para su actualizacin (hoy con la in-
troduccin masiva de las bases de datos es menos frecuente en nuevos sis-
temas, sin embargo, todava hay mucha mantencin de sistemas antiguos).
Por ejemplo, en el cambio de milenio (pasar desde 1999 al ao 2000) el
problema era que en las aplicaciones antiguas los programadores haban
asignado solamente dos dgitos al campo ao para ocupar menos espacio.
De esta forma el computador entenda que pasaba desde 99 a 00 y enton-
ces bajaba de ao en vez de subir. Una complicacin adicional fue que los
datos estaban dentro del programa (por ejemplo, que hacer al llegar cierta
fecha) y no como parmetros. Adems, el 00 y el 99 se usaban como ban-
deras o condiciones de diferente tipo.
Con el abaratamiento de los medios de almacenamiento y la mayor velocidad
de los procesadores, el criterio de optimizacin qued obsoleto. Como mues-
tra, vase el siguiente ejercicio:
Un usuario de un PC necesita mejorar el tiempo de respuesta de su aplicacin,
la cual funciona bien, pero cada consulta demora hasta 10 segundos y l re-
quiere la respuesta en un mximo de 3 segundos.
Se plantean dos alternativas de solucin:
Adquirir un equipo ms poderoso, de mayor rapidez y capacidad de alma-
cenamiento. El costo de esta solucin es US$ 500, considerando lograr
algn ingreso con la venta del PC antiguo.
MODELANDO UNA SOLUCIN DE SOFTWARE 137
Ampliar Optimizar
Factor de comparacin hardware cdigo
Costo inicial US$ 500 US$ 400
Costo de mantencin US$ 100 US$ 600
Tiempo de implementacin 2 das 1 mes
Tiempo del usuario 1 da 1 semana
Utilizacin en otras aplicaciones alta nula
47
A tanto lleg este criterio que en una oportunidad un programador se molest con el autor
de este libro porque le pidi que le entregara probada la rutina que el mismo acababa de cons-
truir. Explic, exaltado, que su funcin era codificar, no probar el resultado de las rutinas, esa
actividad, seal, era para alguien de inferior categora
142 JUAN BRAVO C.
48
Cuando comenz la computacin este replanteamiento no era tan indispensable, porque las
variables ambientales se movan ms lentamente. Hoy, aparecen productos diferentes, nuevos
mtodos y herramientas con una velocidad sorprendente. La creciente competencia obliga a
mantener un muy alto nivel de flexibilidad y de adaptacin a todo tipo de cambios. Este es el
contexto de la teora del caos, la cual postula que una prediccin puede tener una alta proba-
bilidad de certeza solamente en el corto plazo, mientras que en el mediano y largo plazo la
prediccin no tiene ninguna validez y se obtendr un comportamiento errtico, de ah la pala-
bra caos. En el ambiente organizacional, esa alta probabilidad de ocurrencia significa slo
algunas semanas. Cualquiera estimacin de aos, es prcticamente intil, porque depende de
pequeos cambios en las condiciones iniciales que hoy da nos parecen insospechadas por
ejemplo: se fue un empleado clave, Estados Unidos aument su tasa de inters, se enferm el
gerente de finanzas, el dueo de la empresa tuvo un conflicto matrimonial, lanzamos un pro-
ducto menor con un xito sin precedentes... Esto significa que la planificacin debe agregar
la condicin de reformulacin permanente.
MODELANDO UNA SOLUCIN DE SOFTWARE 143
cin y aun dentro del perodo de garanta que todo sistema computacional debe
tener, al igual que un edificio o un nuevo artculo.
El perodo de garanta es el equivalente a la marcha blanca del desarrollo tradi-
cional de sistemas. Es un tiempo convenido, en el cual, adems de conservarse
la posibilidad de desarrollo continuo de la aplicacin, se busca disponer de los
mismos especialistas que participaron en el desarrollo. Tambin debiera dispo-
nerse de apropiados recursos de hardware y software, ojal los mismos que se
emplearon durante la construccin. Sabemos que este perodo es de alto nivel de
cambios, por lo tanto, es de simple responsabilidad estar preparados
Hablar sobre desarrollo continuo de un sistema computacional significa, entre
otras cosas:
Disponer de documentacin actualizada en todo momento, ojal con el
apoyo de alguna herramienta de productividad.
Un alto grado de participacin y compromiso del usuario.
Ir probando cada estructura o funcin que se construye, evitando juntar
todas las pruebas para el final.
Resolver en forma automtica los problemas de consistencia, de regenera-
cin de estructuras frente a cambios, de integracin del proyecto.
Generar automticamente o usar cdigo reutilizable en un alto porcentaje de
la aplicacin.
En esto puede ayudar la tcnica de desarrollo en espiral que se presenta en el
anexo 3.
En una instalacin tradicional, los principales esfuerzos de mantenimiento se
destinan a:
Modificacin o reconstruccin de programas.
Actualizacin de documentacin.
Bsqueda de programas, bibliotecas y documentacin.
Ordenamiento de manuales, versiones de programas y cambios en reposito-
rios de datos.
Pruebas.
Reentrenamiento.
Aqu hay una diferencia notable respecto al mtodo tradicional. Ahora el man-
tenimiento del sistema significa realizar cambios sobre el diseo, la especifica-
cin o las reglas del negocio y rehacer parte de la aplicacin con la ayuda de
alguna herramienta de desarrollo.
144 JUAN BRAVO C.
Se estima que este solo concepto permite elevar la productividad de los especia-
listas en un departamento de sistemas al menos en 100 %, porque unos dos ter-
cios de las actividades regulares de los centros de computacin estn destinadas
a mantenimiento.
Junto con el mantenimiento de un sistema computacional se realiza su explota-
cin, esto es, la operacin regular de la aplicacin destinada a satisfacer el
requerimiento para el cual fue construida. Sin pretender profundizar en esta
materia, conviene sealar algunas labores clave:
Mantencin de una bitcora de procesos
Control de funcionamiento correcto
Optimizacin de recursos
Reconstruccin de bases de datos
Seguridad e integridad de la informacin
Recuperacin de la informacin
Auditora computacional
MODELANDO UNA SOLUCIN DE SOFTWARE 145
49
En el libro Desarrollo de sistemas de informacin, una visin prctica, se analiza este
mtodo en todo detalle.
146 JUAN BRAVO C.
2. Tcnica de prototipos
La idea del prototipo de un sistema computacional es la misma que el prototi-
po de un avin o de un automvil: a partir de una idea original, se construye
un producto concreto que se perfecciona mediante aproximaciones sucesivas
realizadas en mltiples contactos de prueba con la realidad.
La tcnica de prototipos es una ayuda en cualquier etapa del ciclo de desarro-
llo, porque permite aclarar un problema o visualizar una solucin. Tambin
complementa algunos mtodos de diseo con excelentes resultados.
148 JUAN BRAVO C.
50
(Esperemos que seamos capaces de detener el calentamiento global para que los osos de
este ejemplo conserven su habitat y puedan sobrevivir, al igual que muchas otras especies).
MODELANDO UNA SOLUCIN DE SOFTWARE 149
3. Diseo estructurado
El diseo estructurado responde a una visin funcional del sistema. Naci en
los aos 60, en un contexto tecnolgico totalmente distinto al que conocemos
hoy. En aquellos das era fundamental la economa de espacio en disco y de
memoria. Tampoco estaba bien desarrollado el concepto de modelo de datos,
apenas comenzaba a considerarse en grandes instalaciones.
Algunos conceptos asociados al diseo estructurado son:
Estructura jerrquica: significa modelar el sistema desde arriba hacia aba-
jo, tipo top down, comenzando por una visin de alto nivel que se va deta-
llando en niveles cada vez ms profundos.
Concurrencia: significa que existen varios procesos que pueden ser activa-
dos en forma simultnea; se aplica en contraposicin al sistema secuencial.
Modularidad: significa identificar mdulos completos, bien definidos y
con las interfaces entre ellos. Cada mdulo tiene una funcin precisa sobre
una estructura de datos. Una caracterstica deseable es que un mdulo pue-
de servir a otra aplicacin. Se aplican aqu los siguientes criterios:
o Acoplamiento, equivalente a traspasar informacin entre rutinas. Se su-
giere que sea lo ms dbil posible.
o Cohesin interna del mdulo; lo ms fuerte posible.
Descomposicin funcional: es el concepto detrs de la modularidad, signi-
fica tener funciones atmicas, que resuelvan solamente una necesidad, con
la mayor independencia entre s.
Antes, junto con el diseo estructurado se ocupaba la programacin estructu-
rada, con la idea de que los mdulos definidos a nivel del diseo pudieran ser
parte de un programa, ms precisamente, de un gran programa. Porque el ob-
jetivo de la modularidad era incluir una gran cantidad de mdulos en cada
programa. Supuestamente, eso simplificara la construccin y la mantencin.
Estudios sicolgicos demostraron que eso es prcticamente imposible, porque
aun cuando un programa estuviera bien estructurado y documentado, lo cual
152 JUAN BRAVO C.
En la figura 2-7 el crculo seala el sistema y los rectngulos indican las enti-
dades con las cuales se relaciona. Los flujos de informacin se muestran con
51
Una experiencia interesante ha sido que el diseo estructurado no obliga a tener programa-
cin estructurada, as como la orientacin a objetos no obliga a emplear programacin orien-
tada al objeto.
MODELANDO UNA SOLUCIN DE SOFTWARE 153
lneas rectas continuas terminadas con una cabeza de flecha, la que seala la
direccin del flujo.
D.F.D. nivelado
El diagrama de flujo de datos nivelado permite describir un sistema en sus
componentes y en su flujo; se relacionan procesos, datos y repositorios de
datos. Posee la estructura general que se muestra en la figura 2-8.
Datos
Archivo
1 2 Ventas, traspasos y
Compras, traspasos
Recibir Despachar devoluciones
y devoluciones
Unidades y Unidades
costo
Artculos
Los procesos indican una transformacin de los datos para lograr un prop-
sito bien definido; por ejemplo, ingresar o despachar. Generalmente, el
nombre del proceso es un verbo en modo infinitivo.
Los datos fluyen dentro de un Flujo de Datos (F.D.), es una lnea con di-
reccin en la cual se seala un paquete de informacin conocida, en un
mismo instante del tiempo (si diferentes datos van en momentos distintos,
sera necesario agregar otra lnea).
El DFD comienza con un primer grado de abstraccin, generalmente represen-
tado con un dgito, como los procesos 1 y 2 de la figura 2-9. Cada proceso
puede generar otros DFD en forma jerrquica, respetando la numeracin co-
rrespondiente segn cada estrato de profundidad; por ejemplo, el proceso re-
cibir de la figura 2-9 incluira tres subprocesos en el siguiente nivel: 1.1 com-
prar, 1.2 recibir devolucin, 1.3 recibir traspaso. Si fuera necesario un mayor
nivel de detalle, el prximo nivel tendra la numeracin: 1.1.1, 1.1.2, 1.1.3,
..... y as sucesivamente. Se les llama niveles elementales a los ltimos niveles
de descomposicin.
Cada proceso tiene asociado un diccionario de datos (DD) y una mini especi-
ficacin en pseudolenguaje.
Diccionario de datos
El diccionario de datos es el apoyo detallado de los DFD, incluye:
Descripcin y componentes del flujo de datos.
Descripcin de repositorios de datos.
Descripcin de las primitivas funcionales (ver mini especificacin).
Cualquier otra definicin; por ejemplo: frecuencia de un proceso, tamao
de repositorios de datos, prioridades y tipo de procesamiento, periodicidad,
caractersticas y estructura de datos.
Mini especificacin
La mini especificacin consiste en detallar lo ms fielmente posible la funcio-
nalidad del proceso. Para esto se usa pseudolenguaje, el cual es equivalente a
espaol estructurado. Veamos algunas de sus caractersticas:
MODELANDO UNA SOLUCIN DE SOFTWARE 155
Explican Kendall y Kendall (2005, p. 68): Las cuatro variables que un des-
arrollador de sistemas puede controlar son el tiempo, el costo, la calidad y el
alcance. Cuando estas cuatro variables de control se incluyen de manera apro-
piada en la planificacin, se genera un estado de equilibrio entre los recursos y
las actividades que se requieren para terminar el proyecto Las actividades
de XP consisten en codificar, probar, escuchar y disear. Por supuesto, la co-
dificacin es esencial en cualquier proyecto de software. Las pruebas de fun-
cionalidad, desempeo y conformidad son obligatorias. La actividad de escu-
char al cliente y otros programadores y analistas es fundamental.
En el fondo, programacin extrema es hacer bien las cosas, lo cual es lo que
mejor permitir un desarrollo gil, ese es uno de los mensajes de este libro.
Para evitar caer en la tentacin de considerarla una panacea (o bala de plata)
veamos lo que dice Steve McConnell (1997, pp. 4-5): Si trabaja en una orga-
nizacin normal y sigue los mtodos descritos en este libro. Podr reducir
significativamente su tiempo de desarrollo, puede que hasta la mitad, e incre-
mentar tambin su productividad. Adems, podr hacerlo sin alterar la cali-
dad, el coste, el rendimiento o la facilidad de mantenimiento. Sin embargo, la
mejora no ser instantnea, no la obtendr a partir de una nica y nueva
herramienta o mtodo, y no la alcanzar cogiendo simplemente el paquete de
la estantera. Requerir tiempo y esfuerzo. Hubiera deseado tener una solucin
sencilla para el problema de la velocidad del desarrollo. Tambin me gustara
tener cinco millones de dlares. Pero las soluciones simples tienden a funcio-
nar slo con problemas sencillos, y el desarrollo de software no lo es. El desa-
rrollo rpido de software es an menos simple.
McConnell tambin se refiere a que hay variados modelos para el desarrollo
rpido y que esto depende del tipo de proyectos (1997, p. 122): Diferentes
proyectos tienen diferentes necesidades de desarrollo rpido, aunque todos
necesiten ser desarrollados tan rpido como sea posible.
En fin, hay consenso en que la receta es trabajar duro y con mtodo.
MODELANDO UNA SOLUCIN DE SOFTWARE 157
procesos, para equilibrar la carga del computador, cumplir con entregas de ti-
po peridico y por seguridad.
Control de funcionamiento correcto: para asegurar el buen funcionamiento de
un sistema en cada ejecucin (o en puntos intermedios dentro de la misma)
debera verificarse que los totales de control sean coincidentes entre las dife-
rentes partes del proceso (por ejemplo, nmero de registros ledos igual a la
cantidad de artculos impresos) y que estn de acuerdo con promedios histri-
cos. La mayora de las verificaciones de este tipo podran haber sido conside-
radas en el diseo e informadas en forma automtica al presentarse diferencias
(o un simple trmino normal si todo est bien).
Uso de recursos: una importante tarea que tambin podra estar parcialmen-
te incorporada en el diseo, es buscar permanentemente minimizar el uso de
recursos. Esto significa:
Estudiar el tamao de bases de datos para dimensionar dispositivos.
Borrar los archivos temporales o tablas intermedias
Dosificar el procesamiento del sistema para evitar las fluctuaciones
innecesarias en el uso de procesador, las que podran disminuir el
rendimiento.
Estudiar las secuencias de control para evitar duplicidades en proce-
sos u ordenamientos.
Organizar el uso de la impresora para economizar papel, obtener los
informes en el mnimo de tiempo, etc
Evitar la impresin automtica de informes, mejor dejar disponible
en el sistema para que el usuario lo vea y decida si lo imprime o no
(con cargo a su centro de costo por supuesto).
Este tipo de tareas no implica particularizar el diseo ni romper la uni-
formidad, son parte del conjunto de normas del rea de informtica.
Reconstruccin de bases de datos: dependiendo del sistema operativo del
computador, en algunos casos ser necesario reconstruir peridicamente la ba-
se de datos, con el fin de reorganizar las claves y recuperar el espacio ocupado
por registros eliminados.
Qu pasa si?... significa preguntarse cmo apoyar la operacin, cuando, por
ejemplo, se corte la luz, se saturen las lneas o una tabla se dae. Una causa de
las serias dificultades en que caen algunos sistemas es porque no se hicieron
estas preguntas a nivel del diseo.
Desde el punto de vista del mtodo presentado en el captulo 1, ms all de
los planes de contingencia, el concepto es la continuidad operacional.
MODELANDO UNA SOLUCIN DE SOFTWARE 159
2. Auditora computacional
Dado el carcter contralor de la auditora, sta tiene tuicin sobre todas las reas
de la empresa. Una de ellas es el rea computacional, donde, debido a su alto
grado de especializacin, fue necesario crear una nueva rama: la auditora com-
putacional.
En un esquema de organizacin centralizada, la auditora computacional con-
trola toda la gestin del centro de computacin, incluyendo la parte administra-
tiva de los sistemas de informacin que de all se generan y ms en particular, se
encarga del control sobre la proteccin de informacin.
En un esquema de organizacin descentralizada, adicionalmente la auditora
computacional apunta a realizar controles sobre cada rea computacional de
los departamentos usuarios, en especial, asegurando y capacitando en el uso
de la normativa interna.
A propsito, las principales reas usuarias debieran tener la libertad de des-
arrollar en forma interna o externa, respetando la normalizacin y uniformidad
que se haya dado la organizacin y lo ms importante, ocupando su propio
presupuesto.
Adems del logro de la normalizacin, una administracin eficiente tambin
significa resolver el problema de la adaptacin al cambio. Esto implica dejar
espacios para la innovacin y para probar otros esquemas, sin que resulte
crtico para la instalacin. Es ms, todos los interesados de la empresa deber-
an aprender y beneficiarse con las pruebas, lo cual se podra conseguir con
una apropiada difusin de los resultados. En esos espacios de libertad la
auditora computacional tendr que ser muy flexible para no ahogar la creati-
vidad.
Para cumplir con su labor contralora, el auditor computacional debe ubicarse
fuera del departamento de sistemas, normalmente en un departamento de audi-
tora computacional, a cuya jefatura debe hacer llegar los informes de sus audi-
toras, generados en forma independiente de cualquier otro emitido por el rea
de computacin.
Generalmente el departamento de auditora computacional es parte de contra-
lora o auditora interna, rea que su vez depende directamente del directorio
de la compaa.
En general, las reas de control de la organizacin debieran ser pequeas, por-
que el nfasis debiera ser puesto en el desarrollo de las personas, en autonom-
a, colaboracin y relaciones basadas en confianza.
160 JUAN BRAVO C.
4. Seguridad de la informacin
El concepto de seguridad incluye variados tpicos:
Instalaciones fsicas: control de acceso de las personas o riesgo de incen-
dios, a modo de ejemplo.
Procedimientos administrativos: fugas por errores en el diseo lgico, do-
cumentos faltantes, descuadraturas, etc.
Privacidad de la informacin: consultar o alterar informacin privada.
La seguridad de la informacin en el computador se puede perder en forma ac-
cidental o deliberada. Las causas ms comunes de destruccin accidental de la
informacin corresponden a fallas en el hardware, fenmenos externos como un
corte de energa elctrica o errores en la estructuracin de lgica. Los dos prime-
ros problemas pueden ser enfrentados con el apoyo de los proveedores y el ter-
cero con la ayuda de herramientas de productividad y mucho, mucho orden.
Respecto de los intentos de infiltracin deliberada, la principal forma de evitar-
los es mediante mecanismos de identificacin, autentificacin y de control de
acceso, como los que se describen a continuacin:
Mecanismos de identificacin y autentificacin: la idea es que cualquier
usuario que intente entrar al sistema debe identificarse y eventualmente dar
su ubicacin (por ejemplo, nmero del terminal). Slo entonces se procede a
autentificar su identificacin, lo cual significa demostrar que el usuario es
quien dice ser. Para esta identificacin existen, por ejemplo, mquinas lecto-
ras de tarjetas preimpresas que ayudan a resolver el problema. El proceso de
autentificacin puede ser usado en el otro sentido: para que el usuario se
asegure de estar conversando con su computador y no con otro infiltrado.
Estos mecanismos permiten resolver situaciones como la de aquel banco
donde la cajera pidi autorizacin al ejecutivo de cuentas corrientes para el
pago de un cheque de alto valor. La primera vez qued en espera y al se-
gundo intento el ejecutivo dijo s a un cheque robado y con orden de no pa-
go. La investigacin subsiguiente demostr que la autorizacin no la dio l,
sino otro funcionario infiltrado en el sistema, quien conoca la clave del
ejecutivo.
Mecanismos de control de acceso a la informacin: en este caso los dere-
chos de los usuarios deben quedar explcitamente establecidos, toda vez
que existan datos reservados. Los mecanismos de mayor uso son:
164 JUAN BRAVO C.
5. Integridad de la informacin
El problema de integridad es asegurarse que los datos de las tablas en el com-
putador sean exactos en todo momento, es decir, protegerlos contra invalida-
ciones accidentales o deliberadas.
Para hacer ms comprensible esta descripcin, es necesario definir los trminos
fallas, errores y cadas del sistema.
Fallas: se presentan por un mal funcionamiento en el hardware o en el
software o por una mala operacin de las personas. Una falla podra gene-
rar errores.
Errores: son registros de datos o partes de programas, almacenados o
transmitidos en forma incorrecta.
Tambin es un error la prdida de informacin.
Cada del sistema: es una detencin inesperada de la normal operacin del
sistema o la ejecucin de operaciones incorrectas en el computador. Tanto
una falla como un error podran provocar esta cada.
Algunas medidas que se podran tomar para asegurar la integridad de los datos
en las bases de datos son:
Prevenir el ingreso de errores a travs de exhaustivas validaciones; por
ejemplo, de rango de valores, tipo de datos, dgito verificador y compara-
cin entre campos.
Verificaciones de consistencia a travs de revalidar la informacin en
maestros.
Verificacin de claves.
MODELANDO UNA SOLUCIN DE SOFTWARE 165
Verificacin de reiniciacin.
El conjunto de medidas de prevencin de integridad tiene que establecerse a
nivel del diseo y de acuerdo con la naturaleza de los datos a proteger, sin olvi-
dar que este tema es inseparable de los conceptos de seguridad, recuperacin y
de las facilidades de las herramientas de apoyo.
6. Recuperacin de la informacin
La recuperacin de la informacin est muy influida por el diseo del sistema.
Podra existir recuperacin automtica en cada funcin computacional, aunque
esta posibilidad se encuentra directamente relacionada con el sistema de res-
paldos utilizado.
La alternativa ms habitual de recuperacin de informacin es la reconstruc-
cin total, la que se utiliza cuando las tablas maestras deben ser totalmente
reconstruidas. Esta forma de reconstruccin opera trayendo el respaldo de las
bases de datos ms recientes y actualizando sobre ellas los movimientos no
incorporados a la fecha.
Para realizar la reconstruccin, el sistema de respaldos consiste en copiar y ar-
chivar fuera del equipo toda la informacin del sistema en forma peridica,
habitualmente una vez por semana y respaldar los movimientos ingresados al
sistema en forma diaria, o cada ciertas horas si la frecuencia de fallas es alta.
Desde un punto de vista prctico, es la frmula ms sencilla y simple de operar.
Es aconsejable mantener un mnimo de 3 juegos de respaldos completos (Abue-
lo-Padre-Hijo) y uno de ellos fuera de la instalacin, para prevenir riesgos de
incendio, inundacin u otros. Los respaldos de transacciones diarias debieran
mantenerse, al menos, desde la misma fecha del respaldo completo ms antiguo.
La reconstruccin total es vlida no slo para sistemas batch, sino tambin para
sistemas en lnea, donde se debera tener preparado un programa actualizador,
tipo batch, para incorporar a los maestros las transacciones realizadas desde la
fecha del ltimo respaldo.
Algunas tcnicas de respaldo ms sofisticadas llegan hasta mantener duplicados
del computador original, todos ejecutando en paralelo los mismos procesos. En
otros casos, se trata de asegurar el respaldo con una revisin diaria automtica,
previa al funcionamiento normal.
Todo esto sin contar las facilidades que hoy proveen los sistemas administra-
dores de bases de datos y la externalizacin del servicio.
166 JUAN BRAVO C.
52
Si todava hubiera usuarios con temor a usar el computador, un amigo Rolf Achterberg,
Gerente de sistemas, les pide jugar al buscaminas para aprender a posicionar el mouse en
un punto y luego al solitario, para aprender a tomar, mover y soltar. Ambos juegos vienen
incluidos en el sistema operativo Windows.
168 JUAN BRAVO C.
Men
Conjuntos
de datos
Funciones
generalizadas
Cada clase tendra tambin objetos mens, denominados agentes, los cual
aportaran inteligencia, por ejemplo, para presentar una ruta de acceso ex-
pedita cuando hay un requerimiento frecuente.
Una promesa que puede ayudar ms adelante sern las pantallas con visin
tridimensional, lpices con microprocesador que reemplazaran al teclado, uso
masivo de la voz e interfaces inteligentes que pueden anticiparse a algunos
requerimientos del usuario, tal como avisar las actividades del da. Todo esto
incrementar la tendencia hacia el perfeccionamiento de la interfaz humana.
53
En OECD (2000, p. 140) se aprecia el impacto de tecnologas como CMM en la India, donde
hasta 1998 se haban certificado 89 de las 250 compaas top en la produccin de software ,
otras 136 estaban en proceso de certificarse y slo 25 compaas, el 10%, no tena planes al
respecto. Luego (ibid, p. 139) se precisa que la certificacin es segn normas reconocidas inter-
nacionalmente, tales como: CMM del SEI, ISO 9000 y/o Tick IT.
MODELANDO UNA SOLUCIN DE SOFTWARE 171
1. Corba
CORBA (Common Object Request Broker Architecture, en espaol, arquitec-
tura comn de intermediarios en requerimientos a objetos), es un estndar
basado en la orientacin a objetos el cual crea una base para el desarrollo de
sistemas distribuidos de acuerdo con el esquema de componentes remotos a
los cuales se accede mediante mensajes.
CORBA empaqueta la aplicacin en un componente que conoce las funcio-
nes que puede utilizar y cmo se accede a ellas, permitiendo su uso mediante
el protocolo de comunicacin.
CORBA es otro producto del Object Management Group (OMG)54. Se esta-
blecen las APIs55 y las comunicaciones que permitan interactuar a varias apli-
caciones (consideradas como componentes, los cuales pueden haber sido
construidos en plataformas distintas). Tambin permite agregar funcionalidad
para seguridad, bitcora de uso y otras.
2. MDA
MDA (Model-Driven Architecture, en espaol, arquitectura guiada por mode-
los) es una propuesta de la OMG que proporciona un conjunto de guas para
crear especificaciones en la forma de modelos. En la misma lnea del mode-
lamiento visual del software (UML, lo veremos en el captulo 6).
La idea con MDA es que los modelos que representan la funcionalidad del
sistema sean independientes de la plataforma en que se implementar.
Luego, se definen nuevos modelos que se acercan cada vez ms a la imple-
mentacin en la plataforma correspondiente. El aporte del concepto MDA es
que el traspaso entre modelos conceptuales y fsicos se pueda llevar a cabo
utilizando herramientas automatizadas, siguiendo a su vez otros estndares de
la OMG.
54
OMG, en espaol es el grupo de administracin de objetos, comentaremos acerca de esta
organizacin en el captulo 5 (orientacin a objetos).
55
API (del ingls Application Programming Interface, en espaol, Interfaz de Programacin
de Aplicaciones) se refiere a las clases de una biblioteca (funciones y procedimientos) segn
el concepto de orientacin a objetos que veremos en el captulo 5.
172 JUAN BRAVO C.
3. CMM
CMM (Capabilitiy Maturity Model), traducido como Modelo de Madurez de
Capacidades, es la norma preferida en el desarrollo de software. Tiene nive-
les cada vez ms exigentes que la organizacin candidata debe ir certificando.
CMM provee un detalle exhaustivo de cada nivel de madurez y no es difcil
de interpretar. Incorpora todo un sistema de mediciones a la madurez de la
organizacin respecto de las capacidades del desarrollo de software, lo cual
facilita los procesos de evaluacin.
Los niveles de madurez que seala CMM son cinco:
1. Nivel Inicial (Initial): por omisin todas las empresas estn en esta categor-
a. Aqu se describe la pseudoanarqua presente en el desarrollo. El proceso
de desarrollo es prcticamente inexistente. Se trabaja apagando incendios
con esfuerzos heroicos. Existe inmadurez en el desarrollo. No existe visibi-
lidad acerca del proceso de desarrollo ni de los resultados del producto de
software (tiempos, costos o errores).
2. Nivel Repetible (Repeatable): en este nivel el proceso se puede repetir,
existen tcnicas y normas comunes, hay seguimiento de costos, plazos y
funcionalidad en los procesos.
3. Nivel Definido (Defined): el proceso de desarrollo de software est docu-
mentado, estandarizado e integrado.
4. Nivel Gestionado (Managed): los procesos estn bajo un nivel de control
donde la prediccin de plazos y costos es posible.
5. Nivel de optimizacin (Optimizing): se incorpora el mejoramiento continuo
de los procesos.
CMM surgi en 1993 de una iniciativa del Software Engineering Institute
(SEI)56, con toda una historia anterior que incluy estudiar una amplia canti-
dad de compaas de xito en el desarrollo de software.
56
El Software Engineering Institute (SEI) es un Centro de investigacin y desarrollo
financiado con fondos federales patrocinado por el Departamento de Defensa de Esta-
dos Unidos, por intermedio de la Oficina del Subsecretario de Defensa para la Adquisi-
cin, Tecnologa y Logstica. El contrato del SEI para la investigacin aplicada en el
tema de la metodologa de software, fue adjudicado por licitacin pblica a la Universi-
dad Carnegie Mellon en Diciembre de 1984. La misin del SEI es: Promover y avanzar
en la prctica de la Ingeniera de Software, porque el software de calidad, producido
conforme a plazos y dentro de un presupuesto, es un componente crtico para los siste-
mas de defensa de Estados Unidos. Cumple esta misin promoviendo la evolucin de la
MODELANDO UNA SOLUCIN DE SOFTWARE 173
4. ISO 9000
ISO corresponde a la Organizacin Internacional de Estandarizacin. La serie
de normas ISO 9000 son bastante conocidas. Destaca que el sector informti-
co fue uno de los ms reacios en adherirse a ellas.
Un punto de encuentro se est produciendo con la masiva incorporacin de la
gestin de procesos al desarrollo de software. Esta es una ventaja de la aplica-
cin de las normas, su amplitud.
Incluso la gestin de procesos fue considerada en la nueva redaccin de nor-
mas ISO, en las denominadas normas ISO 9001:2000. De hecho, la principal
diferencia con las normas de la versin 1994 es la introduccin del concepto
de gestin por procesos interrelacionados. En estas nuevas normas la gestin
de calidad tiene un enfoque ms integral y sistmico y se incorpora la mejora
continua. Dice la nueva Norma ISO 9001:2000 (p. vi): Para que una organi-
zacin funcione de manera eficaz, tiene que identificar y gestionar numerosas
actividades relacionadas entre s Frecuentemente el resultado de un proceso
constituye directamente el elemento de entrada del siguiente proceso La
aplicacin de un sistema de procesos dentro de la organizacin, junto con la
identificacin e interacciones de estos procesos, as como su gestin, puede
denominarse como enfoque basado en procesos.
5. Tick IT
Surgi en Gran Bretaa por las carencias que se detectaron en las normas ISO
9000 orientadas a la industria del software, tales como difcil interpretacin y
aplicacin, inexistencia de aspectos crticos del desarrollo y de implementar
en la forma de un proceso evolutivo. El encargado de realizar los estudios y
patrocinar la nueva norma fue el Departamento de Industria y Comercio (DTI:
Departament of Trade and Industry). Actualmente el encargado de Tick IT es
el DISC, oficina dependiente del British Standards Institution (BSI) Standards
Division.
Tpicamente, un sistema de calidad Tick IT sigue pautas como las enumeradas
a continuacin (las cuales seran sujetos de revisin en una auditora):
1. Elaboracin de propuestas y revisin de contratos asegurando que todos
los requerimientos estn bien especificados y que la organizacin tiene la
capacidad para cumplirlos.
Ingeniera de Software desde ser una actividad ad-hoc de alto contenido de trabajo
de personas hacia ser una disciplina bien gestionada y apoyada por tecnologa.
174 JUAN BRAVO C.
6. ITIL
ITIL (Information Technology Infrastructure Library) se traduce como Bi-
blioteca de Infraestructura de Tecnologas de Informacin. Una traduccin no
literal es Cumplimiento de niveles de servicios en TI con base en una serie de
libros (unos 60 a fines de los ochenta) con las mejores prcticas.
Todo surge de los bajos estndares de servicios TI en el Reino Unido (simila-
res a los de otras latitudes), principalmente los que se refieren a los servicios a
usuarios durante la etapa de operacin (ms del 80% del total). As es que se
encarg al CCTA (Central Comunications and Telecom Agency) una propues-
ta. La respuesta fue ITIL, la cual poco a poco ha ido ganando terreno como
referente en el campo de los servicios TI.
El objetivo es la mejora en la atencin de los clientes y usuarios y la reduccin
de costos y riesgos.
ITIL documenta buenas prcticas para lo que denomina los 6 componentes del
Soporte del Servicio:
Gestin de Configuracin
Mesa de Servicios
Gestin de Incidencias
Gestin de Problemas
Gestin de Cambios
Gestin de Difusin
Tiene cierto parecido con CMM en los niveles de madurez respecto a la cali-
dad de los servicios TI: existencia de pre-requisitos mnimos, intento de ges-
tin, capacidad de proceso, integracin interna, productos, control de calidad,
informacin de gestin, integracin interna e interfaz.
MODELANDO UNA SOLUCIN DE SOFTWARE 175
Son propuestas de amplio sentido comn, tal como la de administrar una base
de datos de elementos de configuracin: software, hardware y documentacin,
incluyendo su estado y relaciones, base a su vez del anlisis de incidencias y
problemas.
7. SOA
SOA (Service Oriented Architecture, en espaol, arquitectura orientada a los
servicios) es ms un concepto que una herramienta porque su objetivo princi-
pal es aprovechar las funcionalidades de aplicaciones computacionales anti-
guas sin necesidad de intervenirlas. Se logra empaquetndolas y relacionn-
dose con ellas en trminos de entradas y salidas, tal como en la orientacin a
objetos.
Es una mirada amplia desde los procesos de negocios que facilitan esas apli-
caciones. Al conocer y dejar disponibles los servicios que otorgan, es posible
aprovecharlos en el diseo de nuevos procesos de negocios, principalmente en
el mundo virtual (webservices).
Est de lleno en dos aspectos esenciales de los nuevos modelos: la integracin
y la modularidad en la forma de componentes.
La aplicacin de SOA permite recuperar para su uso global sistemas creados
con cualquier lenguaje y tecnologa, en cualquier lugar. Quedan disponibles
para ser usados por otras sistemas o por los usuarios de la misma forma que
los servicios de una clase (lo veremos en el captulo 5, orientacin a objetos).
Adems, se facilita el intercambio de informacin y se hace ms factible la
externalizacin.
Al evitar construir de nuevo los servicios, se economiza tiempo y dinero. So-
bre todo, se reducen errores al evitar reinventar innecesariamente la rueda.
Al igual que la orientacin a objetos, es posible aplicar SOA mediante cual-
quier tecnologa basada en servicios. Tambin se enfatiza la reusabilidad y
que los equipos de trabajo se mentalicen en esta lnea de compartir.
Por supuesto, requiere las mismas formalidades que el desarrollo tradicional
en cuanto a planificacin, calidad y uso de mtodo.
176 JUAN BRAVO C.
CAPTULO 3.
TEORA DE MODELOS
APLICADA
MODELANDO UNA SOLUCIN DE SOFTWARE 177
La nueva teora de modelos aporta avances vitales que deben ser conocidos
para enriquecer la creacin de modelos de una solucin de software.
Esta es la tercera competencia considerada para apoyar la elaboracin de
modelos de una solucin de software, tal como se aprecia en la siguiente fi-
gura (en la introduccin se incluy la visin global de las competencias). En
este caso, el analista debe conocer acerca de la teora de modelos como una
simple responsabilidad profesional que deriva de su misin de modelador de
una realidad deseada.
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
Se presenta este breve anlisis sobre teora de los modelos, utilizando dos
conceptos tomados de la teora de sistemas: caja negra y homomorfismo. Con
ellos se pretende obtener un mnimo de base conceptual para el desarrollador.
Veremos:
1. Concepto de caja negra
2. Concepto de homomorfismo
2. Concepto de homomorfismo
Un homomorfismo es una representacin simplificada del objeto real. Un mo-
delo de sistemas es una de las visiones que tienen diferentes personas respecto
a un mismo objeto. Tambin corresponde a los diferentes puntos de vista
con que una persona intenta reconocer ese objeto; por ejemplo, cmo se pue-
de superar la complejidad para estudiar un automvil? Un mal mtodo sera
intentar reconocerlo todo de una vez, porque los diferentes componentes difi-
cultaran una correcta apreciacin, entonces, lo mejor es enfrentar el estudio
construyendo diferentes modelos; por ejemplo, sobre:
La apariencia externa, tal vez una fotografa?
La carrocera.
El sistema elctrico.
El sistema de frenos.
Por supuesto, deberamos preguntarnos acerca de la finalidad que perseguimos
con este estudio. Tal vez sea realizar un estudio sobre las caractersticas aero-
dinmicas del automvil, por lo tanto, los modelos que se construyan deben
ayudar a ese objetivo, por ejemplo, diagramas detallados sobre:
La carrocera, desde diversos ngulos.
El impacto del roce a diferentes velocidades.
En resumen, los modelos deben construirse de acuerdo con los fines que per-
sigue el diseador. En los sistemas de informacin, los modelos se construyen
para comprender la realidad y efectuar un diseo correcto. Por ejemplo, las
siguientes cuatro perspectivas de un sistema de inventarios.
Primera, segn el objetivo principal: por ejemplo, el control del stock, tal
como se aprecia en la figura 3-2. Las transacciones actan sobre actualizar el
stock de los productos en el inventario. Este modelo obliga a plantearse cul
es el objetivo vital del sistema. Incluso, podra construirse rpidamente un
prototipo para observar la operacin del sistema en funcin del cumplimiento
de ese objetivo.
Compras Ventas
Devoluciones Entradas Control Salidas Devoluciones
Traspasos
del stock Traspasos
Proveedores
Compras Clientes
Artculos Ventas
Funcin
Compras Artculos
Ingreso de datos Funcin
Actualizacin de compras
Reglas
Mover ltimo costo
Sumar las unidades adquiridas al stock
Flujo de transacciones
57
Abriendo levemente la puerta de la filosofa, hay quienes plantean que no existe una reali-
dad objetiva, sino que hay solamente visiones subjetivas, avalando la afirmacin con estudios
sicolgicos que demuestran que la percepcin del entorno es siempre personalizada, porque
tiene que atravesar el filtro de las abstracciones personales obtenidas de nuestras experiencias
particulares.
182 JUAN BRAVO C.
Funciones
Tiempo de respuesta
1. Batch-Interactivo
2. En lnea
3. En tiempo real
1. Batch-Interactivo
En este caso los datos se ingresan en forma diferida respecto a su generacin,
ya sea en el departamento de sistemas o en el punto de generacin del dato. La
actualizacin de la informacin es diferida respecto al ingreso.
Por punto de generacin del dato entendemos el lugar donde se origina la in-
formacin: el escritorio de la vendedora que atiende a un cliente, el rea de
despacho de una bodega, la caja de un banco, etc
En general se modela segn la siguiente secuencia de funciones:
Ingreso: se ingresan los datos de un perodo determinado a la entidad de
transaccin. Habitualmente los movimientos de un da.
Informe: se imprimen todos los datos de la entidad de transaccin. El obje-
tivo de este informe es revisar manualmente los datos del ltimo perodo de
ingreso.
Actualizacin: con las transacciones del ltimo perodo de ingreso se ac-
tualizan una o varias tablas para agregar, modificar o totalizar datos.
Inicializacin: despus que los datos del ltimo perodo de ingreso fueron
efectivamente actualizados, se elimina la tabla de transacciones del perodo
actualizado (ms bien se respalda fuera de lnea).
En este ltimo tiempo se ha producido una revalorizacin del procesamiento
batch, es como volver a la sencillez original. Podra ser un buen comienzo
para usuarios y especialistas principiantes. Adems, representa un punto de
partida fcil, rpido y seguro para el primer prototipo de una aplicacin.
A muchos usuarios se les vendi el procesamiento en tiempo real sin haber
sido una necesidad para ellos, podran haber resuelto su problema con infor-
macin diferida algunas horas e incluso das. Esto trajo como consecuencia un
nivel de complejidad y costos innecesariamente altos.
2. En lnea
Se ingresan los datos en forma diferida respecto a su generacin, ya sea en el
departamento de sistemas o en el punto de generacin del dato. La actualiza-
cin de la informacin es simultnea al ingreso.
184 JUAN BRAVO C.
3. En tiempo real
Se ingresan los datos en el punto de generacin del dato y la actualizacin de
la informacin es inmediata. Este es un mtodo de procesamiento relativa-
mente nuevo y trascendental, porque implica ingresar y actualizar la informa-
cin en el momento y desde el lugar donde se genera la transaccin, por lo
tanto, es necesario cuantificar los recursos de software, hardware y de comu-
nicacin que se requieren.
Este es el esquema predilecto en Internet.
MODELANDO UNA SOLUCIN DE SOFTWARE 185
1. Fluidez
El modelamiento del sistema debe mantener abiertos los cauces por donde
fluyen libremente los datos de la organizacin, de la misma manera como las
aguas de un ro buscan su cauce natural.
En la organizacin, a veces el flujo de datos queda atrapado en una reglamen-
tacin obsoleta, pero la naturaleza viene en ayuda de la organizacin! Y ese
flujo se desborda y busca sus caminos naturales: cuntos manuales de proce-
dimientos reflejan la realidad?
Es fundamental que el diseador no pretenda forzar la realidad, sino que la
capture lo ms fielmente posible en pocos modelos dinmicos.
186 JUAN BRAVO C.
2. Intuicin
El modelamiento es una tarea eminentemente creativa, por lo tanto, la intui-
cin juega un rol preponderante. Esto se puede interpretar como de acuerdo
con el sentido comn o percepcin.
Qu es la intuicin? Hay quienes dicen que es una de las voces de la con-
ciencia. Es esa sensacin de incomodidad, de que algo sobra o algo falta en el
modelo, tal vez percibimos que no deberamos hacer el sistema computacio-
nal porque hay una solucin mejor y no nos atrevemos a comunicarla? podra
afectar nuestros intereses?
Es un buen momento para reiterar algo que qued esbozado en el captulo
primero: un verdadero profesional es aquel que soluciona el problema del
cliente de la mejor forma. No es quien aplica la tcnica ms moderna o usa los
productos ms sofisticados, esas son solamente herramientas que aplican los
especialistas. Un especialista puede ser un profesional en la medida que ponga
el problema del cliente por sobre su especialidad e incluso por sobre su inters
comercial.
Si un modelo cumple con todas las reglas, pero a usted algo le incomoda,
hgale caso a su intuicin! Probablemente descubrir que su percepcin era
correcta, tal vez algo cambi en la realidad o existe un problema de enfoque
que es mejor atender.
No estamos hablando de algo mstico, sino de procesos biolgicos que recin
se comienzan a estudiar cientficamente. Lo explica bien Malcolm Gladwell
en su documentado libro Inteligencia Intuitiva (2006, pp 51-52): La capaci-
dad para extraer conclusiones a partir de una pequea seleccin de datos signi-
ficativos no es un don extico. Es una parte central de lo que significa ser
humano. Lo hacemos siempre que conocemos a una persona o tenemos que
entender algo con rapidez o nos encontramos ante una situacin nueva. Lo
hacemos porque tenemos que hacerlo y llegamos a depender de esa capaci-
dad en muchas situaciones en las que prestar una atencin minuciosa a unos
pocos datos reveladores, aunque no sea ms que durante uno o dos segundos,
puede darnos muchsima informacin.
Es simple, el subconsciente es bastante ms rpido que la reflexin por una
cuestin de sobrevivencia, utiliza pocos datos relevantes (como en la teora de
los pocos crticos de Pareto) y ayuda a tomar decisiones en poco tiempo. Lo
que plantea Gladwell es que esos pocos datos relevantes son simples observa-
ciones de la realidad detectadas con mayor rapidez.
MODELANDO UNA SOLUCIN DE SOFTWARE 187
Entonces, sin ser toda la fuente para una toma de decisin consciente, la intui-
cin tiene un rol que jugar en la validacin de los modelos, sobre todo si se
trata de personas preparadas que han educado su intuicin con informacin
cada vez ms relevante.
3. Simplicidad
Habitualmente, la elegancia va de la mano con la simplicidad. Es ms, se
podra plantear la siguiente regla: si el modelo se ve complicado, hgalo otra
vez. Slo hay que darse por satisfecho cuando el modelo es y se ve fcil de
entender, lo cual puede llevar esfuerzo, pero es una excelente inversin.
Existe simplicidad en el modelo cuando lo entienden los dems, especialmen-
te el usuario y cuando se siente que es simple.
La simplicidad tambin se refleja en mantener una solucin limpia, sin parti-
cularizaciones para efectos de la implementacin tecnolgica.
Simple como un anillo, dice Pablo Neruda en su famoso Poema 15.
4. Orientacin al cliente
Desde el punto de vista de proyectos de negocios, todos en la organizacin de-
ben estar orientados al cliente (las personas que pagan nuestro sueldo, no el
cliente interno, metfora que slo agrega confusin cuando algunas personas
creen que es suficiente con realizar bien su funcin).
Tambin se le llama Visin de procesos, porque siempre existe una doble
responsabilidad, la funcin individual y asegurarse que funcione el proceso
completo del cual nuestra funcin es parte.
Cul es el cliente del rea de RRHH? El Cliente.
Cul es el cliente del rea de informtica? El Cliente.
En ambos casos y en muchos otros, es circunstancial otorgar un servicio interno,
lo ms importante es cmo ese servicio impactar en el cliente (el negocio de la
organizacin).
El usuario del sistema es un cliente interno con quien hay que negociar para
satisfacer de la mejor forma los requisitos de los clientes (finales, aunque sea
redundante).
Es tan natural la aplicacin de la orientacin al cliente porque proviene de una
de las caractersticas ms intrnsecamente humanas: el deseo de servir. Por
188 JUAN BRAVO C.
6. Iteracin
El modelamiento final se obtiene despus de varias iteraciones, buscando en
cada nueva versin perfeccionar la anterior.
Las iteraciones no son infinitas, porque podemos apreciar que generalmente
las primeras versiones resuelven los aspectos de mayor importancia y las si-
guientes son perfeccionamientos cada vez menores; tal como se muestra en la
figura 3-8.
Se puede realizar iteracin de varias formas, para construir prototipos, aplicar
desarrollo incremental por mdulos o desarrollo en espiral (ver anexo 3).
MODELANDO UNA SOLUCIN DE SOFTWARE 189
7. Totalidad
El modelamiento de la aplicacin debe considerar todos los elementos, aunque
algunas partes sean incorporadas slo para conservar la visin de conjunto, sin
llegar a un nivel de detalle.
La totalidad responde a la necesidad de una visin holstica del problema. Lo
importante es captar completamente la realidad y llevarla al modelo.
Desde el punto de vista de la ingeniera de requerimientos, el uso del diagrama
de casos de uso es un buen ejemplo.
Tener a la vista la totalidad ayuda a comparar y priorizar.
8. Generalizacin
Cada problema, apropiadamente planteado, no es ms que un caso particular
de un problema general ms fcil de resolver. As se hace inversin en inteli-
gencia, porque los nuevos problemas particulares que se vislumbran ya es-
tarn resueltos.
Es un signo de inteligencia no resolver siempre los mismos problemas. Esto
significa buscar el metaproblema, aqul que representa a todos los proble-
mas del mismo tipo. Una aplicacin es el mapa de necesidades que vimos en
el captulo 1.
190 JUAN BRAVO C.
9. Desarrollo incremental
Consiste en dar una solucin simple, general y de la mayor relevancia respecto
al problema, es una plataforma que funciona bien. Luego, por agregacin de
mdulos se va gestando un sistema final personalizado.
Generalmente, el desarrollo incremental lo aplican empresas que poseen un
sistema base y ofrecen el incremento como una adaptacin a las necesidades
especficas del cliente.
Por supuesto, el desarrollo incremental es esencialmente iterativo.
Como en el criterio normal de los eventos, no cerramos los ojos a los eventos
indeseados, estos son escritos y analizados en los talleres de formacin en el
proceso. Aunque no le damos el mismo espacio visual que lo deseado58.
Una experiencia del autor. En cursos a profesionales en una reconocida uni-
versidad, ocurra que al momento de la evaluacin siempre faltaba uno o dos
alumnos de un grupo de 25. As es que antes de conocer esta clave, dibuj un
diagrama de flujo, con rombos, para explicar al curso las acciones en caso que
alguien no se presentara a la evaluacin. El resultado fue que las ausencias
llegaron a un 40% al momento de la prueba. Al conocer este efecto, todo se
aclar, los alumnos interpretaron la bifurcacin de no presentarse a la eva-
luacin como una opcin vlida. Por supuesto, en los siguientes cursos se
aplic armonizar el modelo con la realidad y las ausencias para la evaluacin
volvieron al nivel anterior.
58
A propsito, el modelo que ofrece la TV es muy fuerte en este sentido. Por ejemplo, en
Chile se ha hecho costumbre fomentar el uso de lenguaje grosero en la TV. En una entrevista
a la conocida humorista chilena Gloria Benavides (2006), La cuatro, dice: Me llama la aten-
cin el lenguaje que ocupa la gente [en la TV]. Supuestamente la televisin siempre ha ense-
ado. En Estados Unidos, de hecho, estamos bajo la fuerte presin de la FCC que se preocupa
de que no digas ni siquiera una mala palabra ac hubo como un destape.
MODELANDO UNA SOLUCIN DE SOFTWARE 193
1. Descomposicin funcional
El objetivo es identificar funciones computacionales atmicas que actan so-
bre una o dos entidades. Por ejemplo, en funciones asociadas a una entidad
tenemos ingreso, informe y clculo. En dos entidades: actualizacin, seleccin
y extraccin.
La funcin computacional es la mnima unidad que se obtiene al dividir un
sistema computacional. En ese sentido es atmica. En el contexto del mode-
lamiento tradicional, es cuando ya no se obtiene beneficio al seguir fraccio-
nando; lo cual, incluso, puede llegar a ser inconveniente o absurdo. Esta situa-
cin se da, por ejemplo, al construir dos programas de ingreso de datos para la
misma entidad o al construir tres programas para hacer la actualizacin entre
ventas y artculos: uno para restar el stock, otro para calcular la valorizacin y
el tercero para acumular el total de unidades vendidas en el da.
194 JUAN BRAVO C.
0 20 40
En la figura 3-9 queda de manifiesto que cada pas es la unidad atmica del
mapa, definido siguiendo el orden natural de las cosas. Con las aplicaciones
MODELANDO UNA SOLUCIN DE SOFTWARE 195
1 3
Ventas Artculos Mermas
Actualizar Actualizar
stock stock
Actualizar saldo de
2 crdito del cliente
Clientes
Una relacin funcional puede corresponder a cualquier funcin entre dos enti-
dades, con la caracterstica de que una de ellas, o ambas, sean alteradas. Es el
caso de la actualizacin, extraccin o seleccin de informacin.
En la figura 3-10 se puede apreciar una secuencia de procesamiento de varias
funciones:
1.- Actualizar stock de artculos desde ventas
2.- Actualizar saldo de crdito disponible del cliente
3.- Actualizar stock de artculos desde mermas
Veremos a continuacin algunos tipos de funciones atmicas sobre una y en-
tre dos entidades.
A B
Datos solicitados
Seleccin
Esta funcin permite seleccionar informacin desde una entidad ORIGEN para
llevarla a una entidad DESTINO. El traspaso se realiza aplicando condiciones de
seleccin fijas o variables, de forma similar a trabajar con herramientas tipo
QUERY (en relacin a consultas no estructuradas sobre la base de datos), tal
como se observa en la figura 3-13.
Origen Destino
Operaciones de mover,
con o sin condiciones
59
Dijkstra (1930 2002), fue fsico terico y trabaj para Burroughs Corporation en los aos
70. Realiz reconocidos aportes a la naciente ciencia de la computacin y recibi el Premio
Turing en 1972. Promova utilizar estructuras de control en los programas de computador y
fue firme partidario de evitar en ellos la instruccin GO TO.
Sus aportes son tan relevantes, que se han formado grupos formados por discpulos y colegas
suyos de la Universidad de Texas donde ense el ltimo cuarto del siglo 20 para recu-
perar y disponer de su obra en Internet.
MODELANDO UNA SOLUCIN DE SOFTWARE 203
des cada uno con muchos mdulos, administraremos las funciones computa-
cionales atmicas que componen una aplicacin en la forma de componentes.
Entonces, obtendramos lo siguiente:
Una funcin computacional atmica tiene slo una entrada y una salida, lo
cual no tiene que ver con su tamao, porque lo importante es el cdigo apor-
tado para responder a las reglas del negocio. Por ejemplo, podemos tener un
programa de ingreso de datos de 1000 instrucciones y solamente 100 de ellas
corresponder a lgica del negocio propiamente tal, el resto es estructuracin
tpica de cdigo manejar pantallas, aceptar y validar datos que puede ser
aportado con herramientas de productividad o mediante cdigo reutilizable.
Podemos concluir que la funcin computacional se compone de una gran can-
tidad de cdigo generalizado y de alguna porcin de reglas del negocio.
A propsito, si estamos trabajando para una organizacin cuya misin no es la
informtica, sera de gran eficiencia ocupar el cdigo generalizado que ya
existe en el mercado en lugar de reinventarlo.
La implementacin de este concepto se cumple a cabalidad cuando un pro-
grama responde solamente a una funcin atmica, lo cual funciona bien bajo
el esquema tradicional de programacin y mejor aun si se cuenta con alguna
herramienta de apoyo para la produccin de software.
Algunos beneficios de este enfoque:
Permite reducir el tamao y la complejidad de los programas. Est sufi-
cientemente demostrado que el nivel de complejidad de un programa au-
menta geomtricamente respecto a su tamao. Bajo estos conceptos la ni-
ca preocupacin en cuanto a cdigo seran las reglas del negocio, las cuales
pueden ser administradas por alguna herramienta apropiada, hoy de bajo
costo en el mercado.
Las interacciones entre las funciones computacionales atmicas son total-
mente conocidas y estructuradas; por lo mismo, fciles de automatizar y
mejorar. Adems, es posible reemplazar una funcin computacional atmi-
ca por otra sin afectar al resto del sistema, si es que se mantienen intactas
las interacciones.
204 JUAN BRAVO C.
As, el flujograma de informacin deja espacios para que las personas apli-
quen criterio, dejando de lado el absurdo intento de preparar flujos a prueba
de tontos. Lo nuevo es el principio SPPP (Simplificar Procesos y Potenciar
Personas), lo cual se logra aplicando por un lado el criterio curso normal de
los eventos y por otro a travs de capacitacin, sensibilizacin y empodera-
miento, entre otras acciones dirigidas a las personas.
Veamos este FI retomando el ejemplo del mapa de procesos del captulo 1. En
este flujograma de informacin los nmeros en recuadros con lnea punteada
son tiempos en minutos: duracin de cada actividad cuando estn dentro del
recuadro y tiempos de reposo de la transaccin cuando estn fuera. Los smbo-
los de uso ms habitual se describen en las siguientes pginas.
PROCESO DESPACHO INMEDIATO
CLIENTE BODEGA FINANZAS
ADMINISTRATIVO DE BODEGA DESPACHADOR
OE
Reservar y
PROCESOS emitir GD GD3
VENDER GD2 GDs
GD4 GD1
Buscar
producto
GD4
OE
Rebajar
saldo
Cliente
recibe
y firma
recepcin
GD3
GD2 PROCESO
GD1 CUADRAR
Excepciones:
Cuando consulta el administrativo de bodega, si no hay stock del producto
derivar al vendedor o al jefe de local, porque al efectuar la venta debiera
haberse hecho una reserva provisoria del producto.
Si el cliente no est conforme con el producto, entonces derivar al vende-
dor o jefe de local.
Si el despachador no encuentra el producto podra intentar en otra tienda,
buscar producto similar y otras posibilidades que se estudian durante el en-
trenamiento en el proceso. En cualquier caso, est empoderado para tomar
esas decisiones y para compensar al cliente por los retrasos o cambios hasta
un cierto monto.
Por qu? Porque estamos describiendo actividades que realizan seres huma-
nos, con una variedad y riqueza infinitas, as es que en cada paso hay que de-
jar la posibilidad de que las personas decidan variantes que no consider el
analista que dibuj el flujo (si utiliz rombos, entonces deja generalmente dos
salidas y en la vida real hay muchas ms). Adems, los smbolos y condicio-
nes computacionales tienden a alejar a los potenciales usuarios.
Por otro lado, as como el flujograma de informacin est dirigido a personas,
el diagrama de flujo est destinado a la lgica del computador, un flujo digital
estricto, tal como se aprecia en la figura 3-16.
60
Es lo habitual, sin embargo, depende de la convencin que se use en la empresa, ocasio-
nalmente la temporalidad se aplica hacia la derecha (como escribimos). Est bien, es una u
otra forma, nunca ambas a la vez en la misma organizacin.
210 JUAN BRAVO C.
CAPTULO 4.
MODELAMIENTO DE DATOS
MODELANDO UNA SOLUCIN DE SOFTWARE 215
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
En la figura 4-2 se puede apreciar que su clave es el RUT, que tiene una rela-
cin propia por nombre del cliente y que el resto de los campos son fecha de
incorporacin y lnea de crdito.
RUT
Nombre del cliente
Fecha de incorporacin
Lnea de crdito
Las caractersticas estticas son atributos fijos del campo, por ejemplo: nom-
bre del campo, descripcin, comentario, largo, tipo, signo, formato de desplie-
gue, dgitos parte entera y decimales.
Las caractersticas funcionales son atributos dinmicos del campo, los cuales
pueden ser implementados con estructuracin de lgica en la forma de cdigo
reutilizable. Generalmente, son pequeas funciones computacionales tambin
denominadas triggers o reglas del negocio.
Algunos ejemplos de caractersticas funcionales son:
Condiciones de validacin, para verificar rangos (desde-hasta), secuencias
de valores fijos o condiciones entre campos.
Condiciones de existencia, para verificar la existencia de un registro en otra
entidad. Por ejemplo: cuando en la entidad ventas se ingresa el cdigo de
producto hay que asegurarse que exista en el maestro de artculos. Al mis-
mo tiempo debiera ser posible ver otros datos en la entidad de verificacin,
por ejemplo, desplegar la descripcin del artculo.
Esto es parte de la llamada integridad referencial.
Conjunto de valores posibles, para despliegue en una ventana al momento
del ingreso de datos y como apoyo en mltiples formas de consulta y mani-
pulacin de datos.
La lista de valores posibles es una caracterstica del campo y no es necesa-
rio definir una funcin. En la prctica, la mayora de las bases de datos mo-
dernas lo proveen como un parmetro ms.
Rutinas de clculos especiales, como clculo de dgito verificador y trans-
formacin de cantidades a letras.
Procesos de actualizacin, se refiere a procedimientos que van a modificar
el contenido de un campo al cumplirse alguna condicin; por ejemplo, re-
bajar el stock del producto cuando se produce una salida por ventas.
Tipos de campo
Prcticamente todas las herramientas proveen tipos de campo, a cada uno de
ellos se asocian caractersticas estticas y funcionales que pueden ser modifi-
cadas; por ejemplo, algunos tipos de campo son:
Numrico: largo 9, sin signo.
Alfanumrico: largo 45.
Fecha: largo de 8 dgitos: 2 para da, 2 para mes y 4 para ao; con msca-
ras a eleccin: dd/mm/aaaa o mm/dd/aaaa; realizar aritmtica de fechas:
responder a cuntos das hbiles del mes llevamos? sumar o restar un
220 JUAN BRAVO C.
4. Tipos de entidades
Prcticamente en todos los casos del procesamiento de datos, es posible iden-
tificar los siguientes tipos de entidades:
Maestro: contiene la informacin permanente del sistema. Los datos de la
entidad de maestro slo deberan modificarse a travs de transacciones. Al-
gunos ejemplos de entidades de este tipo son: proveedores, clientes, artcu-
los o empleados.
Transacciones: son los conjuntos de datos que transitan por la organiza-
cin y que afectarn las tablas maestras. Por ejemplo: ventas del da, com-
pras del da y descuentos en sueldos.
Temporales: se trata de una o varias tablas donde se guardan datos transito-
rios extrados de maestros, transacciones o de ambos. Puede ser directa-
mente una copia de algunos de ellos. La entidad temporal se utiliza para or-
denar y seleccionar datos o realizar clculos. Generalmente se elimina des-
pus de ser utilizada. Tambin puede ser una vista parcial.
La relacin entre maestros y transacciones da origen a una referencia cruzada,
tal como vimos en el modelo orientado al flujo de transacciones de la seccin
anterior. Formalmente, la relacin sera de este tipo:
MODELANDO UNA SOLUCIN DE SOFTWARE 221
M1 M2 M3
T1
T2
Mi = Maestro; Ti = Transaccin
Se puede apreciar que los maestros son los pilares que dan el soporte a la es-
tructura y las transacciones la atraviesan horizontalmente, modificando los
datos de cada maestro asociado a esas transacciones. Por ejemplo, la entidad
de transaccin 1 afecta a los maestros 1 y 2, la entidad de transaccin 2 afecta
a los maestros 1 y 3.
En cada nodo o punto de encuentro entre una entidad de transaccin y una de
maestro, es necesario realizar un proceso de actualizacin, generalmente a
travs de construir una funcin computacional atmica (tal como vimos en el
captulo 3).
Origen de las entidades
Se incluye la siguiente tipologa como una forma de ayudar al diseador en la
identificacin de entidades, por ejemplo:
Elementos fsicos: automviles, fbricas, libros, edificios, lnea blanca,
vestuario, medios de transporte.
Elementos lgicos: cuentas contables, venta histrica, cuentas corrientes.
Roles de personas: doctores, ingenieros, profesores, empleados, abogados,
dueas de casa, siclogos.
Roles de instituciones: clnicas, AFPs, isapres, farmacias, casas de reposo,
empresas de diferente tipo.
Roles mixtos, personas u organizaciones: contribuyentes, clientes, provee-
dores, asociados.
Transacciones: eventos que provocan cambios en otros objetos, compras,
ventas, accidentes, vuelos, depsitos, giros, ajustes.
Interacciones: generalmente dan origen a una entidad asociativa: costos
entre proveedores y artculos, licencias entre drogas y laboratorios, ventas
entre vendedores y clientes.
No son distinciones rgidas, porque pueden haber mltiples situaciones inter-
medias y otras clasificaciones.
Una caracterstica comn es que aparecen ms de una vez en la situacin que
se est estudiando para modelar.
222 JUAN BRAVO C.
1) Relacin 1:1
0,1 1
Clientes Crdito
2) Relacin 1:N
0,m 1
Clientes Facturas Facturas
Relacin de pertenencia
Un caso especial de la relacin uno a muchos es la relacin de pertenencia.
Aqu la entidad dominante es llamada Padre y la entidad dependiente se de-
nomina Hijo. En este tipo de jerarqua deberan considerarse especialmente
estas restricciones:
No se puede eliminar un registro padre si existen registros hijo.
No se puede agregar un registro hijo si no existe el registro padre.
La clave de la entidad hijo es la clave de la entidad padre ms otro, u otros
campos, identificadores de la entidad hijo. Sera el caso de la relacin
PROVEEDORES FACTURAS, donde necesariamente la entidad hijo debe tener
como clave el RUT del proveedor y el nmero de factura, para evitar confun-
dir las facturas de diferentes proveedores.
3) Relacin N:M
Tambin llamada tipo red (muchos a muchos).
Las formas ms habituales de representacin grfica de una red se muestran
en la siguiente figura. Como ejemplo, se utiliz la relacin existente entre las
entidades proveedores y artculos. En este caso, un proveedor abastece mu-
chos artculos y un artculo es provisto por muchos proveedores.
Proveedores Artculos
0,m 0,m
Proveedores Artculos
Proveedores Proveedores
Artculos Artculos
A A B
=
B ndice A/B ndice B/A
Personas Parentesco
Relaciones de uso
Las relaciones de uso son independientes de las entidades, porque no es nece-
sario que su estructura contenga la relacin, como en la pertenencia. A veces,
para efectos de implementacin, es necesario crear entidades asociativas, co-
mo en el caso del NUB natural o artificial.
226 JUAN BRAVO C.
Por qu normalizar?
Porque presenta variados beneficios, por ejemplo:
Lograr definir entidades atmicas, tiene la ventaja de trabajar con un con-
junto de datos uniforme, sujetos a la misma clave, esto simplifica el mode-
lo y da la posibilidad de aplicar funciones normalizadas.
Evitar la redundancia de datos, lo cual, adems de ordenar y economizar
recursos, ayuda a mantener la integridad, porque cada dato existe slo una
vez en el sistema, si no fuera as? A cules de las versiones de un dato le
cree el usuario?
Normalizar el almacenamiento de datos, no slo al interior de la organiza-
cin, sino tambin al exterior. De esta manera se economiza en preparacin
de especialistas y es posible aplicar herramientas uniformes, como los sis-
temas administradores de bases de datos relacionales y las diferentes
herramientas de productividad, para automatizar mltiples funciones: con-
sulta de informacin, integridad, privacidad, recuperacin, ingreso de da-
tos, informes y muchas otras.
Aplicar herramientas de apoyo en el modelamiento, todas las cuales ayu-
dan y hacen exigible la normalizacin de los datos. Por ejemplo, algunas
herramientas de apoyo en el modelamiento de datos son: ERWIN y System
Architect.
228 JUAN BRAVO C.
A Entidad no normalizada
Entidades normalizadas
B Encabezado C detalle
Clave Rut Clave
Fecha del Cdigo Cantidad Precio
N factura cliente N factura N tem
En este caso:
MODELANDO UNA SOLUCIN DE SOFTWARE 229
Entidades normalizadas
B Encabezado C detalle
Clave Rut Clave
Fecha del Cantidad Precio
N factura cliente N factura Cdigo
A Entidad no normalizada
Clave Cdigo Descripcin Nombre
Cdigo de Stock de del estado de
Sucursal producto estado producto
Entidades normalizadas
B Entidad original normalizada Tabla de Traduccin (T/T)
Clave T/T 18 T/T 18
Stock Cdigo de Descripcin
Sucursal Cdigo
producto
de
estado del estado
C/E
C Nueva entidad
Clave Nombre
Cdigo de de
producto producto
En la figura 4-5 se aprecia que la entidad A tiene dos campos que no son de-
pendientes de toda la clave:
Descripcin del estado: es la traduccin del cdigo de estado en la sucur-
sal, un campo no clave. La forma que toma la descripcin es, por ejemplo:
1=terminado, 2=semiterminado.
La tabla de traduccin que da respuesta a esta dependencia parcial podra
haberse reemplazado por una lista de valores posibles, como la que aparece
en el ambiente Windows cuando se requiere buscar dentro de una gama de
posibilidades. Este tema se trata extensamente en el siguiente punto, sobre
tabla de traduccin.
Nombre del artculo: dependiente del cdigo del producto, un campo clave.
Cmo se resuelven estas dos dependencias parciales de la entidad A?
En el primer caso, como se trata simplemente de la traduccin de un cdigo
(cdigo de estado versus descripcin de estado), se le asigna una tabla de tra-
duccin identificada con el nmero 18 en el ejemplo. Tambin estara correcto
definir una nueva entidad, la cual nacera con el cdigo y la descripcin del
232 JUAN BRAVO C.
61
De aqu surge la necesidad de tener agrupadas en un slo lugar todas las traducciones sim-
ples, papel que cumple la tabla de traduccin. sta representa una forma de simplificar el
modelo porque tan slo se asigna un nmero para luego hacer una traduccin automtica con
apoyo de una herramienta, la mayora de las cuales provee esta facilidad. En el siguiente pun-
to tratamos este tema.
MODELANDO UNA SOLUCIN DE SOFTWARE 233
3. Tabla de traduccin
La tabla de traduccin (T/T) se aplica sobre un campo que requiere traduccin
automtica de un cdigo a un texto. Por ejemplo, el campo cdigo de comuna
tiene asociada una tabla de traduccin con el siguiente contenido:
1 = Santiago Centro
2 = Las Condes
3 = Pudahuel
La tabla de traduccin es una tabla ms en el modelo de datos, el cual contiene
todas las traducciones de cdigos.
Tambin se define el atributo traduccin de cdigo, el cual, dentro de una
entidad desnormalizada, recibe una traduccin de cdigo desde una tabla de
traduccin. Por ejemplo: el nombre traducido de comunas: Santiago Centro,
Las Condes, Pudahuel, La Florida.
El uso de la tabla de traduccin lleva implcita una validacin de existencia y
para efectos de implementacin, es deseable que se presente una ventana con
efecto scrolling62 para buscar y seleccionar con un click el elemento deseado.
El uso eficiente de la T/T est llevando a eliminar las codificaciones simples
en algunas instalaciones, a travs de tomar directamente desde una ventana el
texto correspondiente; por ejemplo: Santiago Centro, Las Condes. Esta natura-
lidad y simplicidad es de mucho mayor beneficio que el eventual costo de usar
un poco ms de espacio en disco.
La base de la tabla de traduccin63 lo constituye una tabla de cdigos (A) con
la siguiente estructura:
A (nmero de tabla, cdigo de tem, texto a traducir, otros campos).
Por ejemplo, con el contenido de la siguiente tabla.
El cdigo 99 se usa aqu para los ttulos de las mismas tablas.
62
El efecto scrolling permite moverse en una tabla desde una ventana en la pantalla del equi-
po. Hacia adelante, atrs, por bloques de registros, etc. A veces se presenta un problema
cuando la tabla de valores es larga, en este caso el scrolling se hace cansador mientras se
busca el valor deseado. Una solucin es que el software provea tambin bsqueda por diferen-
tes conceptos: ndices, palabras claves, fontica, etc
63
Algunos programadores preguntan: cmo se construye manualmente una tabla de traduc-
cin? Respondiendo a su pregunta es que se incluye la tcnica. Adems, le puede ser til a
otras personas. El autor us este esquema desde fines de los setenta con bastante xito.
234 JUAN BRAVO C.
Se incluye esta seccin debido a las referencias que se hacen en el texto a ma-
terias propias del enfoque de bases de datos, un tema ms especializado y di-
rectamente relacionado con el modelamiento de datos.
Veremos:
1. Arquitectura de sistemas de bases de datos
2. Estructura relacional
3. Visin de bases de datos
4. Elementos del enfoque de bases de datos
Visin de
Mtodos de Modelo de datos Usuario A
acceso a los completo de la
archivos fsicos base de datos Visin de
Usuario B
Figura 4-6. Arquitectura de bases de datos
2. Estructura relacional
Las estructuras jerrquicas y redes permiten resolver los problemas ms im-
portantes de las bases de datos: redundancia, integracin de datos e indepen-
dencia de los datos versus las aplicaciones; sin embargo, queda un sabor algo
amargo cuando se aplican estas estructuras no lineales, porque se extraan las
simples tablas planas, aquellas entidades individuales, aisladas, sin normaliza-
cin y en muchos casos redundantes. Tal vez el ideal sera tener las posibili-
dades de las bases de datos no relacionales pero con la simplicidad de los ar-
chivos lineales. Esto es lo que se trata de lograr con la estructura relacional.
MODELANDO UNA SOLUCIN DE SOFTWARE 237
DBA
Lenguajes
DDL
DML DBMS DD
SQL
DB DB DB
Lenguajes. Son los lenguajes del SABD que permiten al usuario interactuar
con la base de datos o el diccionario de datos.
Algunos SABD poseen un lenguaje que cumple con todas las funciones; en
otros, existen explcitamente estos tres:
Lenguaje de definicin de datos: Data Definition Language (DDL),
permite mantener las definiciones y estructuras de datos almacena-
das en el diccionario de datos.
Lenguaje de manipulacin de datos: Data Manipulation Language
(DML), utilizado para actualizar los datos de la base: agregando, mo-
dificando o eliminando registros.
Lenguaje de consulta: Query Language, permite realizar consultas
sobre la base de datos, por ejemplo, las ventas del cliente Juan
Prez o los artculos ms vendidos en el ltimo mes. A travs de es-
te lenguaje se puede hacer un recorrido o una navegacin autom-
tica dentro de la base de datos, siguiendo camino de las relaciones
predefinidas para dar respuesta al requerimiento. Cuando se trabaja
con bases de datos relacionales, se usa el principalmente el lenguaje
SQL Structured Query Languaje basado en el lgebra y clculo
relacional propuestos por el doctor Codd.
Es importante la armona entre buenas herramientas por ejemplo, para ad-
ministrar bases de datos, desarrollar sistemas computacionales o consultar
datos y todos los dems factores de productividad: mtodo, incorporacin
del usuario, excelente preparacin del profesional de informtica, mtodos de
trabajo normalizados, hardware adecuado, normalizacin externa y los facto-
res de contexto: colaboracin o ambiente fsico.
Slo el desarrollo equilibrado del conjunto de factores ms que el avance
espectacular en alguno de ellos permitir lograr los objetivos de productivi-
dad que las organizaciones requieren.
MODELANDO UNA SOLUCIN DE SOFTWARE 243
CAPTULO 5.
ORIENTACIN A OBJETOS
244 JUAN BRAVO C.
La orientacin a objetos (OO) provee una forma simple y natural para crear
los modelos de la solucin de software. Los objetivos que se pretenden lograr
son ambiciosos: aumentar la productividad, mejorar la calidad, facilitar la
mantencin, incorporar al usuario, reducir los riesgos y reutilizar el trabajo
previo, entre otros. Cabe destacar dos caractersticas: la mayor naturalidad y el
aporte a los contenidos a travs de una biblioteca de clases que se va perfec-
cionando en el tiempo.
Esta es la quinta competencia considerada para apoyar la elaboracin de
modelos de una solucin de software, tal como se aprecia en la siguiente fi-
gura (en la introduccin se incluy la visin global de las competencias). Es
necesario que el analista sea muy hbil en la orientacin a objetos como par-
te de su responsabilidad profesional, porque es una competencia central de su
labor que tiene un impacto mucho ms all de las etapas de anlisis y diseo,
tiene que ver con la visin de trabajar con integracin y componentes.
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
1. Mayor eficiencia
Una fuerte justificacin de la orientacin a objetos es su mayor eficiencia. De
hecho, la cantidad potencial de funciones es n en el esquema estructurado y n
en la orientacin a objetos, tal como vemos en la figura 5-1.
M1 Operacin 10
M1
T1 M2 Operacin 11
Mensaje 10
Operacin 10
M3 Operacin 12
M1 Operacin 10
M2
T2 M2 Operacin 11
Mensaje 11
Operacin 11
M3 Operacin 12
M1 Operacin 10
M3
T3 M2 Operacin 11
Mensaje 12
Operacin 12
M3 Operacin 12
Mi = Maestro; Ti = Transaccin
Ventas Artculos
Actualizacin Cuentas
Compras
diaria contables
Mermas Totales
64
Se conserv la palabra archivo que se usaba en este esquema para referirse a los conjun-
tos de datos.
250 JUAN BRAVO C.
Descomposicin funcional
Luego, aprendimos a hacer descomposicin funcional. En muchos casos, a
travs del modelamiento de funciones que se investigaba por esos das. En
otros, de la mano del diseo estructurado.
La idea de la descomposicin funcional es ubicar las funciones computaciona-
les atmicas sin mezclarlas dentro de un programa. Por ejemplo, el programa
de actualizacin de la figura 5-2 quedara como el esquema estructurado de la
figura 5-1, convertido en 9 funciones similares entre s, de tal forma que cons-
truyendo la primera, las siguientes se copian y adaptan. Bajo este esquema, el
tiempo de construccin de los pequeos programas de la figura 5-2 probable-
mente no exceda de dos das y la mantencin se simplifique tanto que tal vez
quede tiempo para nuevos desarrollos.
Sin embargo, hay algunos inconvenientes. Por ejemplo, cuando se modifica
un campo de una entidad, hay que buscar en muchas funciones para corregir
todas las rutinas que afectan a ese campo. Otro problema es la serie de incon-
sistencias que se generan cuando no se modifican todas las funciones debidas.
Adems, cuesta manejar un exceso de pequeas funciones a veces muy pare-
cidas entre ellas, tal como vemos en la figura 5-3.
65
El autor trabaj en instalaciones donde la programacin estructurada estaba vedada, porque
haban tenido muchas malas experiencias de programas innecesariamente extensos y en ex-
tremo complejos. El argumento en defensa de la programacin estructurada era que no haba
sido comprendida por el programador y estaba mal aplicada en el programa.
La recomendacin en esos das (y todava en ciertos mbitos) es que era preferible tener mu-
chos programas pequeos y si eso no era posible, usar la programacin estructurada aplicn-
dola correctamente. Lo cual no era tan fcil porque era bastante difcil de aprender.
En el libro Desarrollo de sistemas de informacin, una visin prctica se describen los prin-
cipios de la programacin estructurada.
MODELANDO UNA SOLUCIN DE SOFTWARE 251
1 3
Ventas Artculos Mermas
Actualizar Actualizar
stock stock
4. La orientacin a objetos
Con la orientacin a objetos se evita repetir cdigo, porque la funcin restar
stock se define una sola vez y pasa a ser parte del objeto artculos. De esta
manera, cuando se requiera ocuparla, ya sea por ventas, mermas, ajustes de
salida o devolucin de compras, se activa con un mensaje, el cual tiene como
parmetros el cdigo del producto y la cantidad que se restar.
Entonces, el ejemplo de la figura anterior quedara como se muestra en la fi-
gura 5-4. En este caso, la funcin puede ser activada desde los objetos ventas
y mermas a travs del mensaje 1 (su estructura es: cdigo, cantidad).
Artculos
Cdigo
Ventas Descripcin Mermas
Mensaje 1 Stock Mensaje 1
DE
Tiempo
Fundacin de la OMG
Es tan amplia la OO que unas 200 compaas del rea TI formaron en los aos
80 el grupo de administracin de objetos ms conocido por sus siglas en
ingls: OMG (Object Management Group). Integran este grupo las princi-
pales empresas de computacin a nivel mundial: IBM, Unisys, NCR y otras.
En forma resumida, el OMG tiene por misin:
Maximizar la portabilidad y la reutilizacin del software.
Crear una arquitectura de referencia, con trminos y definiciones en los
cuales basar todas las especificaciones.
Ofrecer un foro abierto para el anlisis, la educacin y la promocin de la
tecnologa de orientacin a objetos.
En 1994, la OMG encarg el desarrollo de un lenguaje de modelamiento ba-
sado en la orientacin a objetos, as surgi UML en 1997.
66
Hacia fines de la dcada de los 80 el autor se encontraba trabajando en el modelamiento de
datos y funciones, donde reuna en un solo todo la estructura y la funcionalidad asociada a una
entidad, trabajaba en reutilizacin de cdigo y experimentaba con herramientas CASE como
una forma de agilizar el desarrollo de sistemas computacionales. Una vez que supo de la exis-
tencia de la tecnologa de objetos, adapt toda su investigacin a ella.
254 JUAN BRAVO C.
Hacia el 2008, la OMG tiene varios cientos de miembros y sus productos son
estndares de hecho, tal como CORBA, MDA, UML, APIs y otros.
1. Definiciones preliminares
El juego de denominaciones tiene como base la figura 5-6, donde se aprecia
que las clases y objetos se componen de atributos y funciones. Tambin se
observa que las ocurrencias de una clase son los objetos y que las ocurren-
cias de un objeto son las instancias. Son conceptos recursivos y que dependen
del contexto. En cierto contexto un objeto puede ser visto como una clase y en
otro como un objeto.
Clase Objetos
Personas Avales
Rut Objeto
Nombre Ventas
Direccin N documento
Ingresar Clientes C/E
Rut
Eliminar
Imprimir Ingresar
eliminar
Instancias de clientes:
Juan Prez, Alberto Torres
Ntese en la figura 5-6 que la representacin grfica de los objetos es con una
doble lnea y la de las clases es con una sola lnea, tal como lo propone Ed-
ward Yourdon. Veremos que en los diagramas finales de diseo hay solamen-
te clases, por lo tanto, se justifica una representacin ms simple para ellas. El
punto () seala que el campo es llave principal. El campo Rut es un nmero
identificador de personas y empresas en Chile.
256 JUAN BRAVO C.
Definiciones de la OO:
Atributo: es equivalente a campo. Por ejemplo: el campo fecha con sus
procedimientos de cambio de da, mes y ao, traduccin del nombre del da
y del mes, diferentes formatos (AAAA/MM/DD o DD/MM/AAAA), etc Un
atributo posee caractersticas estticas y funcionales, tal como vimos en el
captulo anterior.
Atributo identificatorio: es parte de la clave del objeto.
Atributo referencial: es un atributo que a su vez es llave o parte de la clave
de otro objeto. Tambin se le llama llave externa o llave fornea. Por
ejemplo, el RUT del cliente en el objeto ventas de la figura 5-6.
Clase: es una abstraccin que no tiene una implementacin tecnolgica. Se
aplica a nivel del modelamiento y sirve para identificar y darle sus elemen-
tos a los objetos que de ella derivan; por ejemplo, en la figura 5-6 se apre-
cia que los objetos clientes y avales se derivan de la clase personas y here-
dan de ella sus elementos comunes.
Veremos ms sobre clases en el resto del captulo.
Funcin: es un procedimiento que permite cumplir alguna accin, en la
forma de un programa de computador. Consta en su mayor parte de lgica
generalizada, comn a todas las funciones del mismo tipo y en menor me-
dida, de las reglas de negocio, o lgica que realmente tiene que ver con las
necesidades particulares de la aplicacin. Las funciones permiten dar vi-
da a una estructura esttica. Por ejemplo, actualizar el saldo de un inventa-
rio o imprimir una cartola.
Instancia: es una ocurrencia de los datos reales de cada objeto, equivalente
al registro del diseo tradicional o a la tupla del esquema relacional.
Por ejemplo, cada cliente individual del objeto CLIENTES de la figura 5-6,
los seores Juan Prez y Alberto Torres.
Objeto: Es algo concreto del mundo real que tiene una representacin fsica
en la construccin del sistema. Cada objeto viene a ser una instancia de su
clase. Se define como un conjunto de atributos con funciones indisoluble-
mente asociadas, equivalente a la entidad ms su funcionalidad. A nivel del
diseo, algunos ejemplos de objetos seran: clientes, avales, proveedores,
facturas de venta, notas de devolucin de compras, artculos, etc
Objeto asociativo: generalmente resulta de una relacin tipo red entre dos
objetos, especialmente cuando se agregan atributos propios de la relacin;
MODELANDO UNA SOLUCIN DE SOFTWARE 257
por ejemplo, el costo de cada artculo por proveedor en una relacin mu-
chos a muchos entre artculos y proveedores. El objeto asociativo tambin
puede estar asociado a un solo objeto; por ejemplo, parentescos del objeto
personas.
Variable de resultado: puede ser fsica, como un atributo del objeto donde
se guarda el resultado actualizado de alguna operacin, como la valoriza-
cin del saldo segn la frmula saldo x costo de un producto del in-
ventario. Tambin puede ser lgica, como cuando se usa una variable glo-
bal y el clculo se efecta cada vez que se requiera la variable de resultado.
La variable no puede ser parte de la clave cuando es un atributo del objeto.
Variable global: es una variable que no pertenece a ningn objeto, permite
efectuar operaciones aritmticas, pasar parmetros a travs de mensajes,
identificar el estado de los objetos, etc A veces se la identifica con sub-
rayado.
Recursividad: significa que tanto los datos como las funciones son a su vez
clases y objetos en otro nivel de profundidad. Asimismo, lo que declaramos
como clase en un nivel podra ser objeto en otro, esto porque las observa-
ciones se realizan de acuerdo al fin particular de la aplicacin.
Los nombres de clases, objetos y funciones son vitales para lograr claridad en
modelos complejos. Algunas convenciones recomendables son usar sustanti-
vos para clases y objetos, tales como personas, artculos y documentos; y ver-
bos en infinitivo para funciones, tales como restar, sumar e ingresar. Tambin
se sugiere evitar el uso de prefijos y sufijos, con el fin de obtener nombres
fcilmente entendibles y que proporcionen el mximo de informacin.
2. Convenciones de diseo
Algunas convenciones para el diseo pueden ser, por ejemplo:
Validar el dgito verificador de campos que son llave de la entidad cuando
el dato entra por primera vez al sistema. Por ejemplo, al ingresar el RUT al
objeto CLIENTES. Si el campo con dgito verificador se utiliza en otra enti-
dad, por ejemplo, VENTAS, se aplica una condicin de existencia respecto a
la entidad a la cual ingres la primera vez (CLIENTES en el ejemplo) y no se
vuelve a validar el dgito verificador.
Suponer los siguientes largos de campos, salvo indicacin diferente:
258 JUAN BRAVO C.
3. Relacin de pertenencia
Una relacin de pertenencia surge de una estructura jerrquica como la que se
muestra en la figura 5-7, en la cual se aprecia la pertenencia de entidades.
Donde B pertenece a A, lo
Entidad A cual da origen a la notacin:
A
Entidad B
Forma lineal
Forma tabular
4. Condicin de existencia
La condicin de existencia (C/E) es una relacin funcional entre objetos, la
cual permite asegurarse de que uno o ms atributos referenciales de un objeto
260 JUAN BRAVO C.
origen, con los cuales se forma la clave de un objeto destino, existan en ste.
Por ejemplo, en la figura 5-6 el objeto origen es Ventas, el destino es Clientes
y el atributo referencial es el RUT, el cual es la clave del objeto destino.
La condicin de existencia es una validacin que sigue, ms o menos, la si-
guiente lgica:
Existe la instancia en el objeto destino? (por ejemplo, un cliente)
SI. Accin de desplegar algo y aviso OK.
NO. Ofrecer tres alternativas a eleccin del usuario:
1. Buscar en una ventana la instancia deseada.
2. Crear la instancia en el objeto destino desde una ventana en el
objeto origen.
3. Rechazar el campo en el objeto origen.
Generalmente este tipo de lgica viene provista en forma automtica por sis-
temas administradores de bases de datos y herramientas de productividad. Es
tambin una posibilidad mantenerla como una clase o rutina reutilizable.
MODELANDO UNA SOLUCIN DE SOFTWARE 261
1. Encapsulamiento
El encapsulamiento significa incluir en un solo todo, llamado objeto, los datos
y las funciones que afectan esos datos; por ejemplo, una tabla de artculos con
todas las funciones necesarias para extraer y actualizar sus datos. De esta for-
ma, si otro objeto requiere algo, por ejemplo, el historial de un artculo, se lo
pide al objeto artculos, el cual responder de acuerdo con sus funciones in-
corporadas. Se parece al funcionamiento de una clula, la cual recibe mensa-
jes del exterior y reacciona proporcionando los productos correspondientes,
cmo lo hace? Eso es parte de sus funciones incorporadas67.
67
Alfred Gilman, ganador junto con Martin Rodbell del Premio Nobel de Medicina 1994
nos dice que la clula es una verdadera maravilla en miniatura: contiene en su ncleo toda la
informacin gentica y vive, por as decirlo, su propia vida: recibe sustancias desde el exte-
rior, las transforma para conseguir energa, arroja fuera los desechos, fabrica los componentes
que el organismo necesita y los exporta al lugar apropiado. Ella necesita saber qu tipos de
molculas se encuentran a su alrededor para dejarlas entrar o cerrarles el paso. Necesita sa-
ber qu hacer con el material que entra. Tambin necesita conocer el estado del organismo,
para actuar en consecuencia. Se trata de todo un mundo fascinante que funciona a base de
informacin. Y ah desempean un papel importante las protenas G. Con el tiempo, se
sabr cmo se relacionan entre s las docenas de receptores, protenas G y electores diversos.
Y podr predecirse cmo reaccionarn las clulas en respuesta a cualquier combinacin de
seales.
262 JUAN BRAVO C.
2. Clase
La clase68, es una abstraccin de la realidad y vendra a ser la forma comn de
describir objetos similares. Gracias a ella es posible reconocer rpidamente
otros objetos del mismo tipo, asocindolos a ella y dndoles los elementos
comunes, los cuales pueden ser alterados en un objeto determinado.
Qu diferencia hay entre una clase y un objeto? La clase es una generaliza-
cin que no llega a transformarse en tablas, por ejemplo: personas. El objeto
representa algo del mundo real que tendr una representacin fsica, por ejem-
plo, las tablas de clientes y proveedores.
A partir de experiencias concretas vamos formando y perfeccionando cada
abstraccin. Por ejemplo, la idea de mesa la representamos como una cubierta
68
El concepto de clase es tan importante porque tiene una fuerte sustentacin natural; de
muestra, revisemos esta cita extrada del libro Mustrame tu rostro, de Ignacio Larraaga,
sobre el proceso cognitivo en el ser humano: Por el viaducto de los sentidos entran en la
mente humana las impresiones y sensaciones de los diferentes objetos. En realidad, la mente
es eso: una red filtradora o una fbrica de elaboracin. Efectivamente, de cada objeto detec-
tado por los diferentes sentidos, la mente aparta lo que el objeto tiene de propio o individual
y extrae y retiene lo que tiene de comn con todos los dems objetos de su especie. Esto es,
deduce una idea comn a todos los objetos y por consiguiente, universal. Es un trabajo de
universalizacin. Vamos a un ejemplo concreto.
Aqu veo una silla. All lejos veo otra silla, pero qu diferente a sta! En ese rincn hay otra
silla que no se parece nada a estas dos ni en tamao ni en diseo. Y as, entraron en mi men-
te, supongamos, cincuenta sillas de cincuenta formas diferentes. Ahora comienza el trabajo
elaborador de la mente. De todas las sillas, mejor, de las imgenes concretas de cada silla,
la mente, dejando aparte aquello que le es propio a cada una, saca y se queda con lo que es
comn a todas: una idea universal de silla.
Una vez terminado este trabajo de elaboracin, pueden presentar ante mis ojos mil sillas en
medio de diez mil otros objetos. Mi mente toma, como un candil, aquella idea universal y con
su luz, voy distinguiendo, reconociendo e identificando las mil sillas entre los diez mil obje-
tos, sin equivocarme.
Lo mismo sucede en otras reas. Si me ponen delante otros cinco mil objetos, sabr decir con
precisin cules son fros, cules calientes o tibios. O, en otro orden, cules son duros o
blandos; cules verdes, rojos o amarillos.
As funciona y sta es la gnesis del pensamiento humano.
MODELANDO UNA SOLUCIN DE SOFTWARE 263
3. Objeto
Es una unidad monoltica de atributos con sus funciones que tiene su propia
identificacin, tal como se aprecia en la figura 5-8, donde se muestra una for-
ma de representacin para un ejemplo de clientes. La identificacin del objeto
contiene un nombre corto, un nmero y un nemotcnico; en el ejemplo: Clien-
tes, 08, CL. Los atributos corresponden a la definicin de los datos (RUT,
nombre y direccin) y las funciones realizan operaciones sobre los atributos
(ingresar, obtener informe y consultar).
El objeto se comunica con el mundo exterior a travs de mensajes, de aqu el
concepto de encapsulamiento de datos y procesos. Las funciones manipulan
los datos y solamente se activan a travs de mensajes. Un usuario u otro obje-
to no pueden aplicar procedimientos externos para actuar directamente sobre
los datos, por esta razn se habla de ocultamiento de datos (data hiding).
69
A propsito, es curioso que algunas abstracciones las tenemos inconscientemente en perfec-
cionamiento continuo y otras se nos quedan rgidamente ancladas en alguna parte del pasado,
sin verse afectadas por las nuevas experiencias que vivimos, hasta cuando viene una crisis y
hacemos una actualizacin rpida y agotadora.
264 JUAN BRAVO C.
Clientes 08 CL Identificacin
RUT
Nombre
Atributos
Direccin
1. Ingresar datos
2. Obtener informe Funciones
3. Consulta
Para efectos del diseo, cada entidad se transforma en un objeto; por lo tanto,
el nombre del objeto debera ser el mismo que el de la entidad.
4. Funcin
Por funcin entendemos funcin computacional, de la misma forma como fue
presentada en el captulo anterior y con la misma distincin entre parte pblica
y reglas del negocio.
Orientacin a objetos no implica programacin orientada al objeto, porque son
niveles diferentes. Por lo tanto, la funcin puede construirse de diferentes ma-
neras; por ejemplo:
Con cdigo reutilizable.
Utilizando facilidades de sistemas administradores de bases de datos.
A travs de alguna herramienta de productividad.
Programando en algn lenguaje de alto nivel: Cobol, Clipper, C u otro.
En la orientacin a objetos, la funcin computacional debe poseer la carac-
terstica de atomicidad (o descomposicin funcional) porque:
Cumple un objetivo preciso y bien acotado; por ejemplo: agregar un clien-
te, eliminar un cliente, obtener un informe o verificar el nivel de crdito.
Esto trae como consecuencia que en general las rutinas tengan pocas lneas
de cdigo.
Slo se relaciona con los atributos del objeto y con ningn otro conjunto
de datos, porque todo lo que necesita viene dado como parmetro en la es-
tructura del mensaje. Es equivalente a que toda funcin acte nicamente
sobre una entidad; de esta manera, desaparecen las relaciones funcionales
entre entidades, las cuales son reemplazadas por el protocolo de un objeto.
6. Mensaje
Es una forma lgica de representar la comunicacin entre objetos. Los com-
ponentes mnimos de un mensaje son: objeto destino, funcin que activa y
parmetros. Los parmetros son los valores y condiciones de entrada que re-
quiere la funcin seleccionada. Por ejemplo, en la figura 5-9 podemos apreciar
la estructura del mensaje 1 al objeto artculos, el cual activa la funcin 1 y
lleva los parmetros: cdigo del artculo y cantidad a restar.
Artculos
Mensaje 1 Cdigo
Ventas Descripcin
Stock
1.Restar stock
7. Independencia
Cada objeto es independiente, est identificado individualmente y no puede
ser alterado desde otros objetos o programas. Puede realizar diferentes funcio-
nes y tiene conexiones fcilmente reconocibles.
La independencia es una consecuencia del encapsulamiento, porque los datos
de un objeto no pueden ser alterados en forma directa. Slo se puede llegar a
ellos a travs de mensajes que activan funciones propias del objeto.
Se pueden cambiar libremente las funciones de un objeto sin afectar a otros,
siempre que no cambie la estructura del mensaje. No obstante, si fuera necesa-
rio afectar los mensajes producto de cambios mayores, el esfuerzo se vera
notablemente simplificado, porque las interacciones con otros objetos estn
definidas y acotadas.
Esto permite una forma simple, prctica y natural de abordar los problemas de
procesamiento de datos, porque se espera llegar a tener objetos intercambia-
bles. Es decir, se podra cambiar un objeto por otro ms poderoso sin afectar
al resto del sistema, en la medida que el protocolo se mantenga intacto.
La independencia de los objetos tiene efecto inmediato sobre el grado de co-
municacin entre ellos. Significa que disminuyen las interacciones innecesa-
rias o de dependencia y se incrementan las relaciones importantes, aqullas
que se refieren a qu es lo que quiero.
Es un tipo de comunicacin estructurada donde se pueden identificar puestos
intercambiables de objetos, como stos:
Cliente, solicita la accin.
Servidor, da respuesta al pedido.
Esta distincin es dinmica, porque puede variar rpidamente. Haciendo una
similitud con el esquema cliente-servidor en las redes, se puede apreciar que
el servidor toma el puesto de cliente cuando requiere datos desde un servidor
de mayor nivel.
Modularidad
En la orientacin a objetos, el mismo esquema de definicin de objetos permi-
te una modularizacin natural a travs de la definicin de clases.
268 JUAN BRAVO C.
Por otro lado, las interfaces entre clases son muy claras y precisas.
Debe entenderse que la simplicidad de los elementos modulares involucra
mayor complejidad en su comunicacin, pero como sta es estructurada, pue-
de ser automatizada.
8. Enfoque sistmico
El enfoque sistmico se caracteriza por proporcionar una visin de conjunto
sobre el sistema en estudio, reflejada en identificar los objetos y las interac-
ciones entre ellos (los mensajes). En este enfoque, cada interaccin tiene el
status de un componente ms70.
Cul es el nmero potencial de interacciones entre los objetos? Considere-
mos que si hay 2 objetos, la interaccin es 1. Si hay 3, las interacciones son 3.
Si hay 4, el nmero de interacciones puede llegar a 6 y as sigue aumentando
exponencialmente.
Las interacciones entre los objetos tienen que ser tan bien estudiadas como los
objetos mismos, porque cada una es individual y afecta de diferente manera al
objeto y tal como en las interacciones personales, la calidad de la relacin se
traspasar al conjunto.
70
Como analoga, si aplicamos este enfoque a una familia con tres miembros (pap, mam,
hijo), identificaremos inmediatamente tres relaciones principales: pap-mam, pap-hijo,
mam-hijo. Cada una con su propia identidad y peculiaridades. Somos dependientes de nues-
tras relaciones y cada una nos estremece de diferente manera, a veces, hasta hacernos entrar
en resonancia. Una mala relacin afecta a toda la familia, incluso cuando no haya algo es-
pecialmente conflictivo en las respectivas personas. Del mismo modo, la sanacin de una
relacin enferma repercutir favorablemente en cada integrante y en el conjunto.
MODELANDO UNA SOLUCIN DE SOFTWARE 269
1. Obtencin de clases
La generalizacin significa ir poco a poco formando clases de objetos que
nacen como consecuencia de muchas experiencias con objetos. Hasta cierto
punto capitalizan la inteligencia de una instalacin y sirven para derivar obje-
tos, como si fuera una herencia. Por ejemplo, si las transacciones del inventa-
rio son rdenes de entrada y rdenes de salida, dos objetos, podramos definir
una clase transacciones de inventario que contenga los elementos comunes de
las dos experiencias. Es como funciona el proceso cognitivo en el ser humano.
Nosotros aprendemos formando y perfeccionando mltiples abstracciones y
luego aplicamos la abstraccin para reconocer experiencias y tomar decisio-
nes. El concepto de generalizacin de la orientacin a objetos permite acer-
carnos un poco a la tan buscada inteligencia artificial.
Entonces, en el proceso de generalizacin formamos clases a partir de objetos
o de otras clases. Aclaremos:
Una clase nace del primer objeto que no encaja en ninguna clase existente.
Un objeto siempre pertenece a alguna clase de donde hereda sus
Un
elementos.
objeto hereda siempre todas las caractersticas de la clase. Si hay ele-
mentos que debe eliminar significa que deberamos crear una subclase o
modificar la clase para que sea representativa.
Profundizando ms en la concepcin de clases, no es imprescindible la expe-
riencia para formar una abstraccin. Considerando que la clase es algo abs-
tracto, es posible crear clases de objetos que no existen todava como es el
caso de las clases de partculas subatmicas enunciadas en la teora de Eins-
tein y en la fsica cuntica que luego se fueron descubriendo.
270 JUAN BRAVO C.
Descuento
de Anticipos
Transacciones Empleados
de sueldos
Rut
N documento Monto
Rut C/E Total haber
Monto Total descuento
Rebaja de Mensaje
Ingresar datos prstamos 19
Obtener 18. Sumar haber
informe N cuota 19. Sumar descto
Sin embargo, justo cuando tenemos listo nuestro modelo, nos damos cuenta
que no consideramos las bonificaciones. No hay problema, pues, como es
tambin una transaccin de sueldos, la hacemos nacer con los elementos de la
clase. Sin embargo, la bonificacin se suma al total haber del objeto personal
y es necesario activar la funcin 18 de personal, en lugar de la 19, como en el
caso de las otras transacciones.
Cmo reflejamos lo particular de cada objeto respecto a su clase? Sera ex-
tenso indicar en el diagrama de clases ese nivel de detalle, as es que usamos
una tabla de objetos asociada a cada clase. Por lo tanto, el modelo final corre-
gido quedara solamente con las clases y la tabla de objetos, tal como se mues-
tra en la figura 5-12.
Transacciones Empleados
de sueldos
Rut
N documento C/E Monto
Rut Total haber
Monto Mensaje Total descuento
18/19
Ingresar datos 18. Sumar haber
Obtener informe 19. Sumar descto
2. Herencia
El concepto de herencia es similar a la herencia gentica en el ser humano;
heredar significa recibir nuestras caractersticas a travs de los genes y as
partimos con lo que nuestros padres nos transmitieron71, sin posibilidad de
modificarlo color de ojos, estatura o ancho de los dedos aunque incorpo-
rando nuestra particular forma de ser obtenida de la experiencia y la reflexin.
En la figura 5-13 se aprecia el nacimiento y aplicacin de la clase ventas, la
cual fue definida a partir de los elementos comunes de los objetos ventas con-
tado y ventas crdito. Si fuera necesario definir un nuevo objeto, por ejemplo
ventas por mayor, ste nacera con los datos y funciones de la clase ventas,
adems, puede tener particularidades tales como el atributo descuento y la
funcin emitir factura.
Ventas contado
Ventas
N documento
Emitir boleta Fecha Ventas por mayor
Cliente
Precio Descuento
Ventas crdito Cantidad
Emitir factura
Ingresar datos
Obtener informe
Emitir pagar
En otro nivel de abstraccin, las funciones tambin pueden ser clases; por
ejemplo, el documento de crdito en la figura 5-13 podra ser genrico y
representar todos los casos del mismo tipo: letras, pagars, o cheques a fecha.
En la herencia, los objetos heredan sin discusin los elementos de la clase y
pueden agregar otros atributos y funciones.
El concepto de herencia entrega una forma muy clara de apoyar el diseo de
aplicaciones administrativas, particularmente en la definicin de transaccio-
nes, donde existen muchas similitudes entre un tipo de transaccin y otra.
Herencia mltiple
71
Y lo que no nos transmitieron por error gentico y que la naturaleza invent, pero eso es
otro tema.
MODELANDO UNA SOLUCIN DE SOFTWARE 273
Clase Clase
Nuevo atributo o
Objeto Objeto
funcin
1. Modelamiento de la informacin
Antes de comenzar con la OO es indispensable contar con el modelamiento de
la informacin.
Repasemos brevemente esta condicin de entrada al OO.
Identificar entidades: consiste en seleccionar los conjuntos de datos que
participarn en el modelo. De dnde nacen? De la identificacin de los
procesos de la organizacin y ms en particular, de las transacciones que
ellos generan.
Modelar y normalizar los datos: significa delimitar cuidadosamente cada
conjunto de datos, eliminar la redundancia, identificar con precisin los
atributos de cada entidad resultante y establecer las relaciones entre ellas.
Modelar funciones: significa aclarar las reglas del negocio e identificar las
relaciones funcionales entre entidades.
Definir el flujo de transacciones: significa visualizar cmo diferentes even-
tos (transacciones) van a producir cambios de estado (variacin de atribu-
tos) de una entidad (maestro) a travs de ciertas acciones (funciones).
Adems de las funciones propias del modelamiento de la solucin, debern
definirse otras orientadas a la infraestructura de apoyo que requiere una apli-
cacin: proteccin, en lo que se refiere a privacidad, integridad y recupera-
cin; mens, bsqueda de informacin, bitcora de uso del sistema, creacin y
reconstruccin de objetos.
Vamos a comenzar suponiendo que existe un modelo de datos normalizado
sobre un sistema de inventarios simplificado, como el de la figura 5-15. Este
MODELANDO UNA SOLUCIN DE SOFTWARE 275
Encabezado Encabezado
Proveedores Clientes
de compras de ventas
Relacin de pertenencia
Relacin de uso
Tambin existen las relaciones funcionales entre entidades, por ejemplo, para:
Realizar verificaciones de existencia en el ingreso de las transacciones:
sobre proveedores en el caso de compras, respecto a clientes en el caso de
ventas y sobre artculos en ambos casos.
Actualizar el maestro de artculos al terminar el ingreso de una transaccin,
para rebajar el saldo en el caso de ventas y para sumar el saldo y calcular
costo promedio en el caso de compras.
Ms que presentar recetas, el contenido de las fases es una gua para la accin,
ellas deben complementarse con mucho sentido comn.
2. Identificacin de clases
Durante esta fase se realiza el proceso de generalizacin, con el fin de definir
las clases y objetos que formarn parte del sistema.
El resultado esperado es el modelo de datos generalizado, como el de la figura
5-16. En sta, se aprecian las siguientes relaciones entre las clases: de perte-
nencia entre encabezado y detalle de la transaccin, de uso (uno a muchos)
entre personas y el encabezado de transaccin, al igual que entre productos y
detalle de transaccin.
276 JUAN BRAVO C.
Encabezado Personas
de transaccin
Detalle de
transaccin Productos
3. Visin externa
Significa definir el protocolo del sistema, es decir, todos los mensajes vlidos
que activarn las funciones de los objetos. La principal herramienta en esta
fase es el modelo funcional generalizado, cuyo objetivo es mostrar las interac-
ciones entre las clases. Se presenta en la figura 5-17, siguiendo el mismo
ejemplo de los puntos anteriores.
Detalle de C/E
transaccin Productos
Mensajes 4 y 5
Ingresar
transaccin
72
Incluir todos los datos en la pantalla simulando el documento original equivale a un proceso
de desnormalizacin del modelo de datos.
278 JUAN BRAVO C.
Encabezado Personas
de transaccin Ingreso de transaccin
N documento Rut
Fecha C/E Encabezado, detalle y C/E Nombre
Rut persona totales segn formato Direccin
Mensaje Telfono
1
1 Agregar 1 Aceptar datos 1 Agregar
2 Consultar 2 Cuadrar totales 2 Consultar
3 Imprimir 3 Imprimir
Detalle Productos
de transaccin
N documento Cdigo artculo
Cdigo artculo C/E Tipo artculo
Costo Descripcin
Mensajes 4 y 5 ltimo costo
Cantidad
Saldo
1 Clculo total
1 Agregar
2 Consultar
3 Imprimir
4 Sumar saldo
5 Restar saldo
4. Visin interna
En la visin interna se describen minuciosamente cada uno de los tres compo-
nentes de la clase caractersticas propias, atributos y funciones y la tabla
de objetos. En la figura 5-19 se muestra la visin interna de la clase productos,
incluida en la figura 5-18. Ntese que la tabla de objetos consta solamente de
una ocurrencia, con los mismos elementos que la clase.
280 JUAN BRAVO C.
15 Productos (PR)
Propietario: Juan Prez, diseador de sistemas
Es el maestro de artculos, todos los productos estn en una bodega
Creacin: 21/4/2008 Expiracin: 21/4/2014
Variables globales: costo total y descripcin
Cdigo del artculo : numrico largo 5. Es la llave principal
Tipo de artculo : numrico largo 2, asociado a la tabla de
traduccin 18
Descripcin : alfanumrico largo 30
ltimo costo : numrico largo 6
Saldo : numrico largo 6, con signo. Si queda negativo,
procedimiento normal
1. Crear : se agrega un artculo. Parmetros: los 5 atributos.
2. Consultar : presentacin tabular de los datos, bsqueda por
cualquier atributo.
3. Imprimir : sin el costo, con corte de control por tipo de
artculo y orden por descripcin en cada tipo.
Funcin normal.
4. Suma saldo : suma unidades al saldo y mueve ltimo costo,
parmetros: cdigo, unidades y costo.
5. Resta saldo : resta unidades al saldo, parmetros: cdigo y
unidades. Si el saldo queda negativo,
procedimiento normal.
Ingreso de transaccin
5. Interfaz humana
Especialmente en el orientacin a objetos el diseo de la interfaz humana es
vital para lograr el objetivo final de tener una buena aplicacin en funciona-
miento pleno.
En el captulo 2, acerca de ingeniera de software, dedicamos una seccin al
diseo de estas interfaces.
MODELANDO UNA SOLUCIN DE SOFTWARE 283
73
Es lo que vimos en el captulo 2 sobre el cambio cultural en la organizacin y en el captulo
5 acerca de incorporacin de nuevas tecnologas.
284 JUAN BRAVO C.
Es tambin una buena prctica para evitar confundir el contenido con la rela-
cin. Separar la esencia del objeto de su comportamiento en un instante del
tiempo, igual que entre los seres humanos.
2. Reutilizacin de cdigo
Una idea largamente acariciada es la reutilizacin de cdigo, lo que en el caso
de la orientacin a objetos es perfectamente factible, porque cada funcin in-
corporada al objeto puede ser realizada utilizando los servicios de una rutina
catalogada a travs de una buena parametrizacin o mediante mensajes. Aun-
que tambin es una alternativa la generacin de cdigo ad-hoc con una herra-
mienta de productividad.
La reutilizacin del cdigo tiene en Japn una prioridad tan alta que aproxi-
madamente el 75% de cada aplicacin se construye con componentes reutili-
zables; en comparacin con el 25% de reutilizacin en Estados Unidos.
En el departamento de sistemas de su empresa, qu porcentaje de las aplica-
ciones se construye con cdigo reutilizable?
El principal beneficio de la reutilizacin, adems de la mayor economa en el
mediano plazo, es el perfeccionamiento continuo del cdigo de cada funcin.
Para lograr productividad tenemos que abandonar la artesana en la programa-
cin, donde cada programa es, a veces, una obra de arte irrepetible, desperdi-
cindose lamentablemente todo el tremendo aprendizaje que el programador
obtuvo en ese cdigo, cunta mayor eficiencia podemos lograr al perfeccio-
nar muchas veces las mismas rutinas! No es slo corregir un error, sino que un
esfuerzo sistemtico de mejoramiento de una clase.
Para incentivar la reutilizacin, no es suficiente con una arenga del jefe de
informtica a sus subordinados. Es indispensable crear ambiente y dar seales
claras en esa direccin, como en Japn, donde regularmente se proveen, entre
otras, las siguientes condiciones:
Incentivos econmicos para quienes completen una aplicacin con un alto
componente de reutilizacin.
Una biblioteca de componentes reutilizables a cargo de personal de presti-
gio, que efecte control de calidad de alto nivel para cada funcin
Incentivos
aceptada. cuando se construye una funcin que ser reutilizable
El medio cultural latinoamericano no es proclive a estas iniciativas, no lo digo
para desalentar, sino para tomar en cuenta la realidad y adaptar apropiadamen-
te las estrategias, reconociendo de antemano el verdadero esfuerzo de cambio
MODELANDO UNA SOLUCIN DE SOFTWARE 285
que ser necesario realizar. Al principio puede ser difcil y caro, an as es una
buena inversin, porque los retornos son altos en el mediano y largo plazo.
Como tcnica, es muy til comenzar con equipos piloto que muestren rpida-
mente resultados en la lnea de reutilizacin.
CAPTULO 6.
UNIFIED MODELING
LANGUAGE (UML)
288 JUAN BRAVO C.
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
UML surgi de los aportes combinados de tres pioneros en el campo del mo-
delamiento orientado a objetos, los doctores Grady Booch, Jim Rumbaugh e
Ivar Jacobson, a peticin de la OMG (Object Management Group), organiza-
cin creada por las empresas lderes mundiales de la industria del software
(entre las cuales se encuentran IBM, Unisys, Alcatel, Toshiba y Microsoft)
destinada a fijar estndares en la industria con la tecnologa de objetos.
La primera versin de UML estuvo disponible en 1997. Ha sido perfeccionado
en el tiempo y la versin actual es la 2.0.
Es mucho lo que se puede decir de UML, en este captulo veremos los mode-
los y en el anexo 7 podr ver un caso completo, el cual puede bajar desde la
pgina www.evolucion.cl.
Veremos:
Modelos de UML
Aplicacin de los modelos UML en la etapa de anlisis
Aplicacin de los modelos UML en la etapa de diseo
290 JUAN BRAVO C.
1. Casos de uso
Los casos de uso (use case) son los modelos ms conocidos de UML, permi-
ten mostrar las interacciones con el usuario. Tal como plantea Ivar Jacobson:
es una narracin que describe la secuencia de eventos de un actor (agente
externo) que utiliza un sistema computacional para completar un proceso.
Tambin es cualquier punto de interaccin con el computador, principalmen-
te detectados desde las actividades del flujograma de informacin.
El caso de uso describe lo que importa al usuario, desde su perspectiva, es un
tem especfico de funcionalidad. El caso de uso describe el curso normal de
los eventos, las excepciones son incorporadas como observaciones al final del
texto. Por ejemplo, si la narracin dice: se ingresa la identificacin del cliente,
no explicamos que sucede si esa identificacin es invlida, simplemente se-
guimos el curso normal de los sucesos. En algunos casos, las excepciones
podran dar origen a otros casos de uso.
Se aplican a la definicin de los requerimientos computacionales del sistema
de informacin. Los casos de uso pueden ser llamados:
De alto nivel, explicados en dos o tres oraciones.
Expandidos, pueden contener cientos de oraciones, se incorpora una des-
cripcin minuciosa destinada a la implementacin computacional.
Por ejemplo, en la figura 6-1 se aprecia que en una tienda minorista, un vendedor
consulta en su terminal por la informacin de un cliente. El ambiente donde suceden
los hechos es el dominio. Incorpora el concepto de actor, es decir, alguien fuera del
sistema que interacta con la aplicacin, en este caso el vendedor.
Terminal en la tienda
Vendedor
Consultar situacin
del cliente
2. Uso de herramientas
Existe una amplia gama de herramientas que ayudan en los modelos de UML
(Visio, Rational, UML Studio, Enterprise Architect y muchas otras). La reco-
mendacin es usarlas, realmente facilitan el trabajo y si el sistema es grande,
son indispensables. Adems, tienen la ventaja de generar el cdigo de la apli-
cacin en forma automtica y son vitales para la comunicacin de los modelos
(generalmente en XML).
Existe en Internet una amplia variedad de software libre para trabajar con
UML, incluso la mayora de estas herramientas permiten generar cdigo, por
ejemplo: ArgoUML, BOUML, Fujaba, gModeler MonoUML y otras.
MODELANDO UNA SOLUCIN DE SOFTWARE 293
74
Ms detalle en libro Gestin de proyectos de procesos y tecnologa.
294 JUAN BRAVO C.
Cotizar
Jefe de
Aprobar Adquisiciones
Administrativo de cotizacin
Adquisiciones
Ingresar
O/C
Aprobar
O/C
Enviar
O/C = Orden
O/C
de Compra
Terminal en bodega
Administrativo de
Adquisiciones Ingresar O/C
Excepciones:
1. Si el nmero de O/C ya existe, vea caso de uso Corregir Correlativo. 2
Incluye interfaces detalladas de E/S
Tiene dos columnas: accin del actor y respuesta del sistema, las excepciones
van aparte. No siempre una accin del actor tiene respuesta, como la accin 1:
Tomar la O/C desde el archivador (que est en algn mueble cercano).
El caso de uso se complementa con una copia del documento orden de compra
y de la interfaz de la pantalla, en este caso los campos se indican con letras
maysculas entre parntesis (A, B, ) para identificar la ubicacin del respec-
tivo campo en la interfaz visual, tal como se aprecia en la figura 6-5 (copiada
desde el anexo 7).
MODELANDO UNA SOLUCIN DE SOFTWARE 297
Interfaz de Entrada
Gua Interna de Recepcin por Compra N Gua Recepcin A
Cdigo Enc. Recepcin C Encargado Recepcin D
Fecha Recepcin B
Razn Social Proveedor
RUT Proveedor E - F
Direccin Proveedor G e-Mail H
Comuna I Ciudad J Fono K Fax L
Gua de Despacho de Proveedor N M Fecha G/ D. Proveedor N N de O/C. O
L. Cdigo Descripcin Precio Cantidad Valor Neto
LL P Q R S T
Cerrada W Cerrar X XX V
Anulada Y Anular Z Salir Grabar Total acumulado U
4. Modelo conceptual
El modelo conceptual define responsabilidades y el dominio del sistema com-
putacional, al comienzo asociado a los casos de uso identificados. Es un mo-
delo que se va construyendo en paralelo con los casos de uso.
Identifica los conceptos ms relevantes del mundo real en el dominio respec-
tivo: roles de personas, tipos de documentos o elementos fsicos. Tambin
identifica las asociaciones entre conceptos con palabras de enlace: usa, regis-
tra en, almacenado en, pagado por, contenida en Se trazan lneas entre los
conceptos para representar este detalle.
En esta etapa, una recomendacin es incorporar en el modelo el mximo de
conceptos y el mnimo de asociaciones.
Las caractersticas del modelo conceptual son muy similares al modelamiento
tradicional de datos.
En las asociaciones entre los conceptos se da multiplicidad o cardinalidad.
298 JUAN BRAVO C.
se asocia a 1..*
Lneas de la contiene existe en Productos
O/C * 1
existe en *
almacena 1
Bodega
Encabezado Proveedores
de O/C contiene existe en
N O/C * 1 Rut
Fecha Nombre
compuesta por
Administrativo Sistema
Ingresar N de O/C
Sistema
Ingresar N de O/C
Caso de uso Ingresar cdigo de producto
Ingresar O/C
Ingresar cantidad
Dar OK a la lnea
7. Diagrama de estado
El diagrama de estado de UML representa grficamente el estado del caso de
uso antes y despus de cada una de sus operaciones. En la figura 6-10 se ob-
serva aplicado a nuestro ejemplo de ingreso de una orden de compra.
302 JUAN BRAVO C.
Ingresar N de O/C
En espera de Introduccin
la O/C de lneas
Terminar la O/C
8. Contratos
Los contratos detallan cada operacin y existirn tantos como operaciones se
hayan identificado en el caso de uso y detalladas en el diagrama de secuencia.
Tienen la estructura que se indica en la figura 6-11.
Contrato
Identificacin: nombre de operacin y parmetros
Responsabilidades: descripcin informal de las
responsabilidades u objetivos de la operacin
Tipos de datos: conceptos que afecta o clases
Referencias cruzadas: enlaces con otras funciones
del sistema o casos de uso.
Notas: indicaciones para diseo, algoritmos (tal
como el clculo de dgito verificador) y otros datos.
Excepciones: qu sucede si...? y otros casos
excepcionales.
Salida: Mensajes o registros que se envan fuera
del sistema.
Precondiciones: Supuestos acerca del estado del
sistema antes de ejecutar la operacin.
Poscondiciones: Indicacin de como qued el
sistema despus de la operacin.
Poscondicin 1 ...
Poscondicin 2 ...
Poscondicin n ...
MODELANDO UNA SOLUCIN DE SOFTWARE 303
Una clave para entender los contratos son las poscondiciones, es decir, como
qued el sistema despus que se ejecut la operacin. Es como la fotografa
que se toma despus de un suceso. Veamos el ejemplo de la figura 6-12 para
nuestro caso de ingreso de orden de compra.
Contrato
Identificacin: Dar OK al ingreso de la lnea
Responsabilidades: con cada ingreso de lnea los
conceptos deben ser consistentes.
Tipos de datos: afecta a los conceptos
Encabezado de O/C y Detalle de O/C.
Referencias cruzadas: no hay
Notas: nada especial
Excepciones: la no existencia de la lnea en el
sistema ya fue validada con el ingreso de O/C.
Salida: no hay
Precondiciones: no existe la lnea.
Poscondiciones:
Se cre una lnea en el concepto detalle.
Se actualiz el contador de lneas en el
encabezado.
Se actualiz la asociacin entre
encabezado y detalle de O/C.
Proveedores
Encabezado de O/C
Rut
N O/C
contiene existe en Nombre
Fecha
Crear lnea * 1 Crear proveed.
Imprimir Modificar Rut
Modificar nombre
compuesta por 1
se asocia a 1..*
75
Ms detalle en el libro Gestin de proyectos de procesos y tecnologa.
MODELANDO UNA SOLUCIN DE SOFTWARE 305
2. Diagrama de colaboracin
Para cada operacin del caso de uso seleccionado se presenta un diagrama de
colaboracin y detalles de implementacin76.
Diagrama de colaboracin: cada operacin detallada en un contrato se
desarrolla en detalle sealando las solicitudes (o pedidos) entre objetos
(principalmente del modelo de datos y pantallas).
Detalles de implementacin: se responde a qu clases podemos utilizar?
Ya sea de la misma instalacin o del medio, es decir, hacer una revisin de
la biblioteca de clases77 (que en un esquema de orientacin a objetos es un
requisito), por ejemplo, la condicin de existencia. Corresponde al detalle
de cada clase e instancias (objetos) especficas en una tabla de diferencias.
En la figura 6-14 se presenta un ejemplo de diagrama de colaboracin para el
ejemplo del ingreso de orden de compra.
76
En este mtodo de desarrollo aplicamos la tcnica de espiral, donde se diluye un poco la
independencia de la implementacin tecnolgica, por este motivo se prefiere avanzar en ca-
ractersticas de la implementacin a nivel del diseo.
77
Se supone la existencia de la biblioteca de clases.
306 JUAN BRAVO C.
CAPTULO 7.
HERRAMIENTAS DE LA
TECNOLOGA DE
INFORMACIN
MODELANDO UNA SOLUCIN DE SOFTWARE 307
CAPTULO 7. HERRAMIENTAS TI
CAPTULO 6. UML
Muchas instrucciones
Lenguajes de Mapa de memoria
mquina Ejecutable
OFF
ON
Veremos:
1. Lenguajes de mquina
2. Lenguajes simblicos
3. Lenguajes de alto nivel
4. La cuarta generacin de lenguajes
5. Las nuevas herramientas
312 JUAN BRAVO C.
1. Lenguajes de mquina
A este nivel, la programacin se realiza trabajando primero en binario y ms
adelante en hexadecimal, hasta llegar a usar nemotcnicos. Se controla cada
variable segn su posicin en memoria, lo cual obliga a mantener un mapa del
uso de memoria.
El lenguaje de mquina se caracteriza por proporcionar un conjunto de muchas
instrucciones elementales. Por ejemplo, un programa simple tendr probable-
mente varios miles de instrucciones, producto de la desagregacin con que obli-
ga a programar el lenguaje; la simple operacin C = A + B utiliza entre cinco a
diez sentencias.
El programa producido con el lenguaje de mquina viene a ser un objeto que se
ejecuta directamente, sin un proceso de compilacin. Provee mxima eficiencia,
porque el uso de recursos puede minimizarse y porque es extremadamente cer-
cano a la mquina, no existiendo portabilidad, excepto para procesar en otro
computador con el mismo procesador.
2. Lenguajes simblicos
Son lenguajes tipo ASSEMBLER DE IBM o NEAT/3 de NCR, mediante los cuales se
obtiene un avance substancial al lograr referenciar una variable por smbolos,
haciendo abstraccin de su ubicacin en memoria. El programador utiliza
cdigos de instruccin simblicos, donde cada uno es un nemotcnico de la
propia funcin de la instruccin (por ejemplo: en ASSEMBLER IBM, AGO es un
salto incondicional y AIF es un salto condicional).
Se incorpora tambin al lenguaje simblico el concepto de subprograma.
Una extensin de este lenguaje son las macros, las cuales son conjuntos de ins-
trucciones que pueden ser llamadas desde cualquier programa. Permiten realizar
funciones de entrada de datos, impresin y otras. Por medio de las macros, el
lenguaje simblico se acerca bastante al lenguaje de alto nivel.
Aunque la portabilidad es substancialmente mayor que en los lenguajes de
mquina, an el lenguaje simblico est muy ligado al hardware particular don-
de reside.
Para ser ejecutado, el programa en lenguaje simblico debe ser compilado, ob-
tenindose un programa objeto en lenguaje de mquina que todava es bastante
eficiente en cuanto al uso de recursos, porque el programa fuente no est dema-
siado lejos del programa objeto.
MODELANDO UNA SOLUCIN DE SOFTWARE 313
78
En lo que se refiere a las grandes aplicaciones administrativas y pese a muchas predicciones
en contra, el lenguaje ms comn ha sido COBOL. Es posible que siga sindolo por muchos
aos, por la gran cantidad de cdigo acumulado, su universalidad y nuevas versiones que
incorporan conceptos tales como orientacin a objetos e interfaces grficas. Le siguen de lejos
RPG, algunas versiones de BASIC, CLIPPER, C y C++.
En general, la estructuracin de lgica en los lenguajes de alto nivel ha sido muy personal
por no decir anrquica, lo cual ha contribuido a reducir an ms la portabilidad y ha dado
origen al estudio de tcnicas para mejorar la lgica de construccin del programa y dar pa-
314 JUAN BRAVO C.
79
Como ejemplo de esta tendencia, obsrvese la integracin del producto MS Office para
Windows, el cual incluye Word, Powerpoint, Excel, Access, Outlook y otras aplicaciones.
MODELANDO UNA SOLUCIN DE SOFTWARE 317
2. Groupware
Durante este perodo tambin surgieron las herramientas para trabajo de gru-
po, tipo Groupware, tambin llamadas Workgroup. stas, adems de permitir la
comunicacin entre los miembros de un grupo, tal como lo hara un correo
electrnico, tambin permiten compartir documentos y hacer una construccin
conjunta de proyectos, con una coordinacin central e integrando multimedia,
son productos tales como NOTES, de Lotus o el mismo Outlook de Windows.
Por ejemplo, en evaluacin de proyectos, hoy es posible que un equipo se co-
ordine para obtener promedios grupales de ponderacin de factores de deci-
sin, los que antes dependan slo de la buena fe de algn profesional aislado.
80
Impresiona que antes de este tipo de procesadores debamos construir algn pequeo siste-
ma computacional para dar respuesta a cualquiera de estas facilidades y a otro costo.
81
Un dato: en los primeros 7 meses de venta de la versin 2.0 de Access, en Estados Unidos
se vendieron 3 millones de copias, principalmente a usuarios finales.
320 JUAN BRAVO C.
3. Workflow
La tecnologa de flujos de trabajo, Workflow, permite automatizar un flujo de
trabajo y es un buen complemento para la tendencia actual de identificar y
redisear los procesos del negocio. Ejemplos de este tipo de productos son:
XNEAR, Lotus Notes y Workflow de IBM.
Para cumplir el objetivo de un proceso, generalmente se requieren diversas acti-
vidades realizadas por diferentes personas en distintas unidades organizaciona-
les. Workflow automatiza ese flujo y administra la ubicacin y avance de cada
tarea. Naturalmente, exige que todos los participantes tengan el equipamiento
apropiado, generalmente algn esquema con redes de computadores.
Desde el punto de vista de la reingeniera de negocios, en particular aplicando el
concepto de generalizacin de procesos, sera conveniente que antes de automa-
tizar el proceso, con o sin una herramienta Workflow, se evaluaran otras opcio-
nes, por ejemplo82:
Eliminar o externalizar el proceso completo.
Agrupar todas las actividades para que las realice una sola persona (con-
cepto de integralidad de la gestin de procesos). De esta forma, en lugar de
tener una especie de lnea de produccin con cargos especializados, cada
uno de los mismos participantes puede realizar el proceso completo, tal vez
orientndose a determinados tipos de procesos.
Agrupar las actividades del proceso para que un equipo de personas las reali-
ce en la misma ubicacin.
Con las herramientas tipo Workflow se tiende a eliminar los documentos manua-
les y hacer todo el trabajo directamente en el computador. Por ejemplo, opera-
ciones crediticias o de ventas. El nivel de amistosidad de estas herramientas
debe ser muy alto, porque sern empleadas por la mayora de los usuarios de la
organizacin.
82
Estas y otras posibilidades se estudian en los libros Reingeniera de negocios y Gestin de
procesos.
MODELANDO UNA SOLUCIN DE SOFTWARE 321
BI
Data Warehouse
SRM ERP CRM
Veremos cada una de las capas de esta pirmide, comenzando desde arriba.
1. BI
BI (Business Intelligence, en espaol inteligencia de negocios) consiste en
analizar los datos de las bases de la empresa para elaborar informes, encontrar
tendencias y buscar dimensiones de los datos, entre otros servicios.
Para que esto sea posible es necesario trabajar en sensibilizar y capacitar para
que los usuarios se hagan cargo de la toma de decisiones relacionada con este
anlisis. Por ejemplo, un tipo de herramienta en que se pueden preparar en los
aspectos estadsticos del estudio de datos.
Por supuesto, la informacin a usar en los anlisis debe estar disponible y ser
posible de acceder.
Algunos tipos de soluciones BI son:
Consultas e informes simples
Cubos OLAP (On Line Analytic Processing)
Data Mining o minera de datos
Una implementacin es instalar la solucin BI sobre un Data Warehouse.
322 JUAN BRAVO C.
2. Data Warehouse
Data Warehouse se traduce como almacn de datos y se refiere a un conjunto
de datos organizado de cierta forma y permanentemente actualizado que ayuda
a la toma de decisiones de la empresa.
Lo habitual es instalar el Data Warehouse sobre el procesamiento transaccio-
nal, generalmente un ERP que usa algn motor de bases de datos (los veremos
en los siguientes puntos).
Un aspecto importante es separar los datos operacionales (que residen en el
motor de bases de datos) de los datos en el esquema Data Warehouse, los cua-
les tendrn una estructura normalizada de acuerdo con el tipo de anlisis que
se quiera realizar. Esto significa incorporar un proceso automtico de traspaso
de informacin.
3. ERP
Los productos ERP (Enterprise Resource Planning, en espaol, sistemas de
planificacin de recursos empresariales) administran e integran las transaccio-
nes operacionales de la organizacin, por ejemplo: cotizaciones, pedidos,
compras, produccin, distribucin, facturacin, contabilidad, personas y co-
branza. De esta forma, cuando, por ejemplo, se produce una venta, el sistema
explota una serie de transacciones a contabilidad, bodega o produccin. Se
evita as su ingreso independiente.
Los sistemas ERP derivan desde los antiguos software de Planificacin de
Recursos de Manufactura (MRP II) y de la Planificacin de Requerimientos
de Material (MRP).
En variadas implementaciones, los sistemas ERP se relacionan con dos tipos
de productos: uno cercano al consumidor (CRM) y otro cercano a los provee-
dores (SRM).
4. CRM
Los productos CRM (Customer Relationship Management, en espaol, ges-
tin de la relacin con los clientes) ayudan en la integracin con clientes pro-
porcionando un entorno tecnolgico para una relacin ms personalizada (ob-
servan historial de contactos, de ventas, hbitos y mucho ms). Se puede ver
tambin como un modelo de gestin que se orienta al cliente y que se mani-
fiesta en el marketing relacional.
MODELANDO UNA SOLUCIN DE SOFTWARE 323
Es una herramienta del tipo B2C (Business to Consumer, o comercio desde las
empresas al consumidor).
5. SRM
Los productos SRM (Supplier Relationship Management, en espaol, gestin
de la relacin con los proveedores) ayudan en la gestin de las relaciones con
los proveedores. Buscan integracin a travs del software, por ejemplo, para
que un proveedor de materias primas vea el saldo de productos en la bodega
de la empresa y genere una reposicin automtica.
Es una herramienta del tipo B2B (Business to Business, o comercio electrni-
co entre empresas).
desarrollar. Sin embargo, se han encontrado con las dificultades propias del de-
sarrollo tradicional de aplicaciones, tales como atrasos, colas de espera, materias
difciles, programacin muy lenta y dificultad de retroalimentacin. Esto los ha
desalentado y han dejado la iniciativa a especialistas en computacin, quienes
no poseen la misma visin del negocio, agudizndose as el problema.
Con el enfoque CASE se pretende que los usuarios participen directamente en el
desarrollo, en conjunto con los especialistas, siguiendo estos dos pasos:
1. Modelar la realidad a travs de mtodos simples y con apoyo computacio-
nal, de tal forma que el modelo producido se pueda seguir perfeccionando
a travs del tiempo por los mismos u otros desarrolladores.
2. Llevar los modelos a aplicaciones concretas con el apoyo de herramientas
de productividad.
Al hacerlo de esta manera, cada solucin queda registrada automticamente y es
un patrimonio de la organizacin, porque es independiente de las personas que
la desarrollaron y puede ser sucesivamente mejorada. Esta es una inversin en
inteligencia.
Algunas caractersticas relevantes de las herramientas CASE son las siguientes:
Tienen la doble orientacin de productividad y amistosidad.
Sirven a un mtodo para el ciclo completo de desarrollo o para una o ms
etapas especficas.
Proveen la posibilidad de integracin entre diferentes etapas.
Permiten uniformar diseos, documentacin y construccin al interior de la
empresa.
En la construccin de aplicaciones mayores es posible modularizar y coor-
dinar el trabajo de diferentes desarrolladores.
El usuario y el analista se concentran en lo verdaderamente importante:
definir los requerimientos.
Es posible obtener una visin de conjunto de un proyecto modularizado.
Se provee en forma automtica una completa normalizacin de smbolos.
Las herramientas CASE se pueden clasificar en UPPER CASE y LOWER CASE,
dependiendo de si apoyan las etapas superiores o inferiores del ciclo de vida
del proyecto, respectivamente. A veces se incluye otra clasificacin para los
productos en el segmento intermedio, denominada MIDDLE CASE, es menos
utilizada.
Veremos:
1. Herramientas tipo UPPER CASE
2. Herramientas tipo LOWER CASE
3. Herramientas de productividad en ambiente cliente servidor
83
El autor construy esta herramienta a mediados de los 80, originalmente con nombre Bra-
vo/2 L4G.
328 JUAN BRAVO C.
donde trabajan 300 personas o del departamento de produccin, con 800 em-
pleados. Tpicamente, ellos cuentan con soluciones locales.
En este contexto resulta razonable que las gerencias de ventas y produccin
quisieran resolver sus necesidades de aplicaciones a travs de la formacin de
pequeas unidades de informtica, con especialistas en diseo y construccin,
los cuales contaran con herramientas que se comunicarn con la base central
del rea de sistemas.
Ah est el pleno aprovechamiento de la potencialidad de estas herramientas!
Con clientes realizando desarrollo que se comunica, va la norma SQL, con
algn motor de bases de datos en el equipo central.
Un mensaje implcito en esta narracin es que, en el esquema cliente servidor,
cliente no es lo mismo que usuario final. En este caso, para efectos del desa-
rrollo de aplicaciones, el cliente es tambin un especialista que se encuentra
en otra unidad de la empresa.
A excepcin de consultas, informes y otros mdulos especiales, las herramien-
tas de productividad tipo cliente servidor estn muy orientadas hacia especia-
listas en informtica. Un ndice adicional es el largo tiempo que toma llegar a
obtener un manejo de buen nivel, no inferior a seis meses, incluso para pro-
gramadores con experiencia.
El esquema cliente servidor se hace cada vez ms parecido al ambiente WEB.
CONCLUSIONES, ANEXOS Y
BIBLIOGRAFA
332 JUAN BRAVO C.
CONCLUSIONES
84
Este es un resumen acerca de estrategia desde el libro Planificacin sistmica.
85
Es equivalente a cuando se critica a alguien y esa persona, en vez de resistir, defenderse o
contraatacar, como sera lo habitual, absorbe silenciosa y positivamente la crtica. Esto es,
reflexiona sobre ella e independiente de las exageraciones que pudiera contener, la toma con
agradecimiento y se esfuerza por ajustar su conducta en base a la porcin de verdad que ella
contiene. Quiz por eso Plutarco escritor romano dijo: Un buen enemigo es el mejor
maestro.
334 JUAN BRAVO C.
Factores Sistemas de
Definicin Destino de la Informacin
crticos Mediciones
del negocio organizacin Gerenciales
del xito
En la figura A1-1 podemos apreciar una visin de conjunto del esquema pro-
puesto. Comienza por una definicin clara y precisa del negocio, luego viene
la definicin del destino de la organizacin (lo que queremos, en la forma de
visin, objetivos y metas). A continuacin, vienen los factores crticos del
xito, aquellos aspectos fundamentales para la supervivencia y desarrollo de la
organizacin, que sern ocupacin prioritaria del ejecutivo.
Los objetivos, metas y factores crticos del xito necesitan apoyarse en medi-
ciones estables, confiables, oportunas y permanentes. Adems, debemos con-
siderar que la implementacin de las mediciones es la base para la definicin
de los sistemas de informacin gerenciales.
Veamos este esquema.
86
Tal como lo reflejara muy grficamente el dueo de una panadera. La emocin del negocio
es abrir uno de los panes que estamos produciendo, inspirar profundamente, sentir su aroma y
esbozar una sonrisa de satisfaccin.
Muchos empresarios se nutren de la importancia de su labor en la sociedad para crear riqueza,
fabricar bienes, dar empleos, etc
MODELANDO UNA SOLUCIN DE SOFTWARE 337
Destino de la organizacin
El asunto es: la organizacin estar a la deriva o tendr un rumbo mantenido
con mano firme? Indudablemente, identificar el destino de la organizacin es
indispensable. Para ello, tenemos que definir cuatro aspectos, en el mismo
orden: ideal, ideal factible, objetivos y metas.
El ideal es nuestro sueo para la organizacin. Queremos tener el 90% del
mercado, o que cada norteamericano tenga un automvil, como deca Hen-
ry Ford. Que en cada supermercado se venda salmn en la misma forma y
cantidad que el pollo o llevar a cero el consumo de drogas, lo que sea su
sueo.
El ideal factible surge de negociar con la realidad y proponer algo posible
para el futuro cercano. Aceptamos disminuir un poco nuestra pretensin
original, si corresponde, para lograr algo concreto. Entonces diremos que s
es posible obtener el 35% del mercado, construir un automvil posible de
adquirir por los trabajadores, comenzar a vender salmn en los supermer-
cados en diferentes presentaciones o reducir el consumo de droga en un
90%. Tcnicamente, el ideal factible es una propuesta que sabemos posible,
aunque no es tan precisa como un objetivo... es la visin del negocio.
Los objetivos son los elementos ms representativos de la planificacin
estratgica, porque corresponden al destino concreto de nuestra empresa,
aquel punto adonde queremos llegar. La planificacin estratgica define los
objetivos segn el ideal factible, un diseo efectuado sin amarrarnos a la
historia del negocio. Cada objetivo asocia mediciones para establecer com-
paraciones y apreciar un estado de avance. As, deja de ser solamente una
buena intencin. Ha observado las emotivas declaraciones de principios
de empresas en quiebra? Tan insubstanciales como las declaraciones de
desarrollo integral del nio en colegios altamente represivos.
Un antiguo proverbio dice: El camino al infierno est pavimentado de bue-
nas intenciones.
Existen previsiones a la cantidad de aos que uno desee, aunque general-
mente se hace una distincin entre objetivos de corto, mediano y largo pla-
zo, unos 2, 5 y 15 aos, respectivamente. Los plazos indicados representan
solamente un promedio, porque no existe uniformidad al respecto. Largo
338 JUAN BRAVO C.
Mediciones
La planificacin puede carecer de sentido si no est fuertemente anclada a los
hechos y la realidad, lo que se consigue a travs de las mediciones, en lugar de
solamente las buenas intenciones.
Las mediciones deben estar presentes en todos los elementos mencionados:
objetivos, metas, comparaciones con la competencia o factores crticos del
xito.
En alguna parte de la planificacin podra decir: aumentar el perfeccionamien-
to del personal. Al dejarlo as no pasa de ser una bonita declaracin, sin em-
bargo, para que se transforme en una realidad, es necesario agregarle un ndi-
ce; por ejemplo, horas de capacitacin anual por empleado. Ahora podemos
hablar en concreto: cuntas horas estamos capacitando hoy a nuestro perso-
nal y a cuntas queremos llegar?
Otro ejemplo es el de una empresa de confecciones que se plantea por objeti-
vo aumentar la produccin. En este caso, la medicin es nmero de prendas
por da, entonces: Cul es actualmente el nmero de prendas por da y a qu
nivel queremos llegar?
87
Segn un artculo de Martin y Moldoveanu (2003) en el Harvard Business Review.
342 JUAN BRAVO C.
88
Como cuando un mdico cirujano le pregunta a otro, cmo te va? Y aquel responde: mal,
porque he tenido pocas operaciones.
MODELANDO UNA SOLUCIN DE SOFTWARE 343
Debemos asegurarnos que la misin del proceso sea consistente con la misin
de la empresa y dar seales de que ambos negocios estn alineados. Por ejem-
plo, si el negocio de la empresa es la fabricacin de productos industriales, su
conveniencia respecto a las maquinarias es que se mantengan en buen estado
de funcionamiento. Sin embargo, la conveniencia del grupo de mantencin es
que las mquinas estn en mal estado, porque sus ingresos provienen de la
reparacin de maquinarias descompuestas, incluso se les paga horas extra para
incrementar el volumen de reparacin. Se puede apreciar que ambos negocios
se contraponen: a uno le conviene tener los equipos buenos y al otro le con-
viene que haya muchos equipos malos. Si el objetivo del equipo de manten-
cin fuera obtener ingresos por tener los equipos en ptimo estado de fun-
cionamiento, tendramos las misiones alineadas e incentivaramos la manten-
cin preventiva.
Esto es alinear intereses y una forma de implementarlo podra ser: ofrecer un
incentivo por tener todas las mquinas en buen estado y descontar de ah
cuando se presenten fallas. Vemoslo ms en detalle con el resumen de un
caso real. Supongamos que son 5 tcnicos, que el sueldo de cada uno es de
US$ 1.000 y que el costo para la organizacin por mquinas que fallan es de
US$ 40.000 al mes (horas improductivas). Entonces, se les ofrece a los tcni-
cos un premio mensual extra de US$ 10.000 a repartirse en el grupo, a condi-
cin de que las mquinas estn en buen estado de funcionamiento, pero, si una
mquina falla, se descuenta de ese fondo un valor predefinido por cada hora
detenida. En este caso tenemos alineadas las misiones: a la organizacin y al
servicio tcnico les conviene tener las mquinas buenas.
Eplogo: en el caso real los tcnicos aumentaron su remuneracin en un 50% y
las fallas de las maquinarias disminuyeron en 70%.
Veamos otro ejemplo, si uno toma separadamente el rea de produccin de
una empresa, puede parecer deseable producir cada vez ms. Sin embargo, es
eso realmente conveniente para la empresa? Tal vez no, porque se podra ver
en la necesidad de sacrificar demasiado sus mrgenes, absorber gastos dema-
siado altos de ventas o de administracin Podra ser que el objetivo del rea
productiva fuera producir segn la demanda? S, a travs de algn esquema
que permita disminuir libremente la produccin sin incrementar el costo por
unidad producida.
Entonces, es posible la armona en la organizacin en pro de sus propsitos
superiores? Por supuesto, a travs de alinear intereses.
344 JUAN BRAVO C.
Se espera que una vuelta de la espiral demore entre dos y diez semanas, para
un rango de entre el 5% al 20% de los requerimientos.
Esta es la nueva propuesta para los proyectos menos estructurados. La forma
tradicional es la tcnica llamada desarrollo en cascada, en la cual se preten-
de avanzar en cada etapa con todos los requerimientos a la vez, en consecuen-
cia, recin se ven resultados al trmino del proyecto, tal vez un ao en el caso
de proyectos medianos.
MODELANDO UNA SOLUCIN DE SOFTWARE 345
Sntoma(s)
Causas Efecto
Procesos Personas
Rotacin
Especializacin Motivacin
Forma obsoleta Preparacin Insatisfaccin de
clientes debido a
excesiva duracin del
Falta directriz No participacin Falta Tecnologa
proceso (49 minutos)
Comunicar Falta rea Obsoleta
El nivel de profundidad al cual se llega tiene que ver con la tcnica de desa-
rrollo en espiral y con el nivel de error aceptable para la organizacin en algn
nivel de sigma.
Esta forma de trabajo es recursiva, puede ser necesario que una causa tenga su
propio anlisis causal y as sucesivamente. Es decir, X1 = F(x1), esquema
central en la tcnica Six Sigma.
A propsito de Six Sigma, en su libro Anlisis de la causa raz, los autores
Wilson, Dell y Anderson dicen (1999, p. 6): En Estados Unidos el 0.1% de
fallas significa: 16.000 piezas de correo perdidas por hora, 20.000 prescrip-
ciones de medicamentos incorrectas por ao, 500 operaciones quirrgicas in-
correctas por semana, 50 bebs recin nacidos se les caen a los mdicos por
da, 22.000 cheques deducidos de cuentas corrientes equivocadas por hora, su
corazn no late 32.000 veces por ao.
348 JUAN BRAVO C.
89
El concepto de proceso perfecto viene de aplicar algo largamente reconocido, el poder
del pensamiento. Cuando logramos ver en nuestra mente ese proceso perfecto, de alguna
forma se generan caminos para acercarnos a ese ideal. Aceptmoslo de una vez, el futuro no
existe, es solamente imaginacin nuestra, algo que sucede en nuestra mente y que podemos
controlar.
El mismsimo Omraam Mikhal Avanhov (1900-1986, sabio francs de origen blgaro, reco-
nocido por su aporte a la espiritualidad) en su libro Poderes del pensamiento nos aporta
(pginas 39 y 40): Hay dos grandes verdades que debis conocer: primero, que el pensamien-
to es un poder real y segundo, que os permite transportaros al futuro y vivirlo con anticipa-
cin. Ved, por ejemplo, que si tenis que afrontar una situacin terrible, pasar un examen o
comparecer ante un tribunal, ya estis temblando varios das antes, os inquietis: qu va a
pasar? Y cuando pensis que vais a reuniros con aqul o aqulla que amis y que vais a
abrazarla, estis ya saboreando el gozo de estos minutos prximos o lejanos El poder del
pensamiento es real, tanto para lo negativo como para lo positivo y tenemos, por tanto, que
servirnos de l para lo positivo.
MODELANDO UNA SOLUCIN DE SOFTWARE 349
AD/Cycle
El ciclo de desarrollo de aplicaciones computacionales de IBM, AD/Cycle,
anunciado en 1989, se acerca bastante al ciclo de vida genrico, la principal
diferencia es que incorpora explcitamente una etapa de pruebas, la cual es
parte de la construccin en el mtodo genrico. Adems, en AD/Cycle se
habla de Anlisis/diseo para referirse a lo que en el mtodo genrico llama-
mos diseo.
AD/Cycle provee un ambiente integrado de desarrollo que incluye desde el
modelamiento hasta la mantencin. Cada una de sus etapas es apoyada por
herramientas de automatizacin propias o de otros proveedores. Las etapas de
AD/Cycle son:
Recoleccin de requerimientos: incluye planificacin de sistemas,
objetivos, factores crticos del xito, prioridades y procesos del negocio.
Anlisis/Diseo: basado en anlisis y diseo estructurado.
Codificacin: es la construccin de los programas, servicio proporcionado
por los generadores de aplicacin.
Pruebas: se incorpora formalmente el uso de prototipos y la idea de lograr
un resultado a travs de perfeccionamientos sucesivos.
Mantencin: ya sea por errores o cambios en el entorno.
Se puede apreciar que ya en 1989 IBM haba eliminado la implementacin
como una etapa ms, aunque sus principales tareas: documentacin, entrena-
miento y poblamiento, se continan realizando en forma automtica o como
parte de otras etapas. Se puede apreciar cmo se va delineando poco a poco el
concepto de que una aplicacin no termina nunca, crendose el ambiente para
el desarrollo continuo de la aplicacin.
Con AD/Cycle tambin se eliminan las etapas de diagnstico y factibilidad
aplicados a resolver problemas en forma reactiva, las que fueron reemplazadas
por un enfoque global, una visin de conjunto de la organizacin que se ob-
tiene de la recoleccin de requerimientos.
350 JUAN BRAVO C.
RUP
Los autores del UML (captulo 6) son tambin creadores de Rational Software
Corporation (adquirida por IBM en el ao 2005), desde donde han propuesto
el RUP (Rational Unified Process), un mtodo completo para el desarrollo de
software que rpidamente est siendo incorporado en la industria informtica.
RUP considera seis mejores prcticas del desarrollo de software:
1. Desarrollo Iterativo (o en espiral). Se resuelven primero los casos de uso
(o requerimientos) ms importantes, aquellos donde el riesgo es mayor.
2. Manejo de los requerimientos. Se seleccionan, organizan y documentan los
requerimientos, se establece una prioridad en base a riesgos. Se aplica la
tcnica de casos de uso, donde se establece lo que importa para el usuario,
incluyendo la interfaz.
3. Uso de una arquitectura de componentes. Aqu se establece la arquitectura
de la solucin de software. Debe cumplir que el software sea fcil de usar,
funcional, de buen rendimiento, reusable, factible, entendible, econmico,
esttico y elegante. Haciendo una comparacin con el rubro de la construc-
cin, esta etapa sera la de arquitectura.
4. Modelamiento visual del software. Se aplican aqu los modelos que provee
UML, orientados a la especificacin, visualizacin, construccin y docu-
mentacin de los productos de software.
5. Verificacin de la calidad. Siendo la calidad uno de los ms graves pro-
blemas de la construccin tradicional de software, se propone incluir indi-
cadores de calidad y verificaciones en cada punto del proceso de desarrollo.
Se incorpora una labor de Testing en el ciclo de vida, en cada vuelta de la
espiral.
6. Control de cambios. En un ambiente de creciente complejidad: mltiples
desarrolladores, equipos de trabajo, instalaciones, versiones del software,
proyectos y plataformas, se requiere un control explcito de requerimientos,
configuracin y mediciones.
En este mtodo, cada iteracin acerca ms el sistema a lo que desea el usuario
y a su plena funcionalidad, por otra parte, cada versin va quedando en fun-
cionamiento real.
Mayor informacin puede encontrarse en www.omg.org, www.rational.com,
www.uml.com y otros sitios relacionados.
MODELANDO UNA SOLUCIN DE SOFTWARE 351
Etapa de Anlisis
MAPA DE PROCESOS
(como parte del Modelo de Negocios)
Macro-
Proyeccin ventas Adquisiciones Ventas Servicio postventa
procesos
Primer Flujograma
de Informacin
RECEPCIN DESPACHO
POR COMPRAS POR VENTAS
Procesos
operativos
Devoluciones Devoluciones
Flujograma : Proceso de Recepcin de Productos de Proveedores - (Gua Interna de Recepcin por Compra)
G/R 2
Interna
Casos de Uso: Crear Guas Internas de Recepcin por Compra y Funciones Bsicas
de Despacho por Venta (Productos con registro persistente) (Base Craig Larman)
Ref. # Funcin Categora
R1.1 Capturar y activar opciones desde un Men de Opciones, aceptar Opcin (Seleccin Manual). evidente
R1.2 Desplegar la Interfaz de Creacin de Gua de Recepcin, N de Gua de Recepcin (correlativo) evidente
y Fecha de la Transaccin, - aceptar eventual modificacin de Fecha (Ingreso Manual).
R1.3 Capturar el Cdigo del Encargado de Recepcin (Ingreso Manual). evidente
R1.4 Desplegar datos del Encargado de Recepcin registrados en almacenamiento persistente. evidente
R1.5 Capturar la informacin del Proveedor usando el RUT (Ingreso Manual) y desplegar datos evidente
pertinentes del Proveedor registrados en almacenamiento persistente.
R1.6 Capturar N de Gua de Despacho del Proveedor (Ingreso Manual), verificar validez (No evidente
Existencia previa) y desplegarlo.
R1.7 Capturar Fecha (Propia) de Gua de Despacho del Proveedor (Ingreso Manual) y desplegarla. evidente
R1.9 Registrar la transaccin en proceso: los Productos a recibir. Capturar la informacin del evidente
Producto a recibir usando el Cdigo (interno) (Ingreso Manual).
R1.10 Desplegar la descripcin del Producto registrado en almacenamiento persistente. evidente
R1.11 Capturar el Costo (Precio del Proveedor) del Producto (Ingreso manual) y desplegarlo. evidente
R1.12 Capturar la Cantidad de unidades del Producto respectivo (Ingreso manual). y calcular valor de evidente
la lnea actualizando los totales de la Gua de Recepcin en la Interfaz al dar OK a la lnea.
R1.13 Grabar en el Detalle de la Gua de Recepcin (lnea a lnea) los datos de cada lnea a medida oculta
que se completa y calcula cada una de ellas.
R1.14 Actualizar los valores de existencia y recibido de Productos (evitando doble actualizacin) al oculta
dar OK a la Gua de Recepcin en su totalidad. Adems calcular el nuevo Costo Promedio.
Nota: (Craig Larman, 5.6.1.a 5.6.3, pgs. 42 a 44) Las funciones bsicas se descubren durante el
desarrollo de las entrevistas con los usuarios, quienes relatan qu es lo que el sistema debe hacer, (en
forma evidente u oculta). Tambin el analista agregar algunas que no son evidentes para el usuario.
354 JUAN BRAVO C.
Casos de Uso: Crear Guas Internas de Recepcin por Compra y Funciones Bsicas
de Despacho por Venta (Productos con registro persistente) (Base Craig Larman)
Ref. # Funcin Categora
R2.1 Desplegar la Interfaz de Creacin de Gua de Despacho, N de Gua de Despacho (correlativo) y evidente
Fecha de la Transaccin, - aceptar eventual modificacin de Fecha - (Ingreso Manual).
R2.2 Capturar el Cdigo del Encargado de Despacho (Ingreso Manual). evidente
R2.3 Desplegar datos del Encargado de Despacho registrados en almacenamiento persistente. evidente
R2.4 Capturar la informacin del Cliente usando el RUT (Ingreso Manual) y desplegar datos evidente
pertinentes del Cliente registrados en almacenamiento persistente.
R2.5 Capturar N de Nota de Venta del Cliente (Ingreso Manual), verificar validez (No Existencia evidente
previa) y desplegarlo.
R2.6 Capturar Fecha (Propia) de Nota de Venta del Cliente (Ingreso Manual) y desplegarla. evidente
R2.8 Registrar la transaccin en proceso: los Productos a despachar. Capturar la informacin del evidente
Producto a despachar usando el Cdigo (interno) (Ingreso Manual).
R2.9 Desplegar la descripcin del Producto registrado en almacenamiento persistente. evidente
R2.10 Capturar el Precio al Cliente del Producto (Ingreso manual) y desplegarlo. evidente
R2.11 Capturar la Cantidad de unidades del Producto respectivo (Ingreso manual). y calcular valor de evidente
la lnea actualizando los totales de la Gua de Despacho en la Interfaz al dar OK a la lnea.
R2.12 Grabar en el Detalle de la Gua de Despacho (lnea a lnea) los datos de cada lnea a medida que oculta
se completa y calcula cada una de ellas.
R2.13 Actualizar los valores de existencia y despachado de Productos (evitando doble actualizacin) oculta
al dar OK a la Gua de Despacho en su totalidad.
R1.5 Capturar la informacin del Proveedor evidente Tiempo de res- mx. 2 segundos obligatoria
usando el RUT y desplegar sus datos. puesta
Interfaz Estilo Windows obligatoria
En colores y opcional
efectos 3D
R1.12 Capturar la Cantidad de unidades del evidente Tiempo de res- mx. 2 segundos obligatoria
Producto respectivo y calcular valor de puesta
la lnea actualizando los totales de la
Gua de Recepcin en la Interfaz al dar
OK a la lnea.
Nota: (Craig Larman, 5.7.1, pgs. 45 y 46) Los atributos y restricciones de las funciones bsicas se
descubren durante el desarrollo de las entrevistas con los usuarios, quienes relatan qu atributos
debiera tener el sistema y cules eventualmente seran las correspondientes restricciones, - si las
hubiera - y si ellas seran obligatorias u opcionales. (Aqu, por razones de espacio, se dan unos
pocos ejemplos).
MODELANDO UNA SOLUCIN DE SOFTWARE 355
Realizar procesos de
Fin de Da Administrador
(Empleado)
Nota:
Administrar Sistema ...
Son Casos de Uso Genricos que en el
transcurso del anlisis se desagregaran
en otros Casos de Uso.
Cerrada W Cerrar X XX V
Anulada Y Anular Z Salir Grabar Total acumulado U
N G/D del Proveedor 999.999 Fecha G/D Proveedor 99/99/9999 N de O/C. 999.999
Firma Autorizada
y Timbre
Total Neto 99999999,99
Encabezado de
Nota : En este modelo se consideran Gua Interna de
los conceptos mnimos. En un anlisis * Recepcin por *
y desarrollo posteriores se podran in- Compra
cluir conceptos tales como Bodega, *
N de Gua
Terminal, Empresa, etc. Por lo contrario, Emplea- Fecha
se podran excluir : Empleados, Ordenes dos Proveedor
Provee-
de Compra. dores
Cdigo Nombre 1
Nombre 1 RUT
1 Nombre
Nota: 1..5 Direccin
La flecha gruesa entre el Encabe-
zado y el Detalle indica una Relacin Detalle de Gua
de Pertenencia. (Base Juan Bravo C.- Interna de Recep-
La Nueva Visin... pg 200) cin por Compra
*
Descripcin Ordenes
Productos Costo de Compra
1
1 Cantidad
Cdigo N OC
Descripcin Fecha
Nota: Segn Craig Larman Costo
(9.3 y 9.4 - pgs. 87 a 91 -,
adems de 9.6.1 a 9.6.3 - pgs.96
y 97) Se trata de conceptos, asocia-
ciones y atributos del mundo real, no Nota:
se trata de un modelo de software. Dentro de los requerimientos,
no necesariamente se encuentra
el concepto de Orden de Compra.
(Puede ser un ingreso manual).
MODELANDO UNA SOLUCIN DE SOFTWARE 359
Nota:
Dentro de los requerimientos,
no necesariamente se encuentra
el concepto de Orden de Compra.
(Puede ser un ingreso manual).
Caso de Uso:
Crear Gua de Recepcin :Sistema
( Curso Normal de los Eventos) Encargado de Recepcin
ingresarOpcin(CrearGuiaRecepcion)
Obtener / Ingresar(Tab) N de
Gua Recepcin y Fecha sistema, desplegar(NumGuiaRecCom, FechaR)
verificar correlativo y fecha.
Ingresar Cdigo del Empleado y crearEncabezado(NumGuiaRecCom, FechaR)
obtener / verificar el nombre del
mismo. ingresarCodEmpleado(CodigoEmpleado)
Ingresar RUT del Proveedor y Nota: desplegar
es subordinado de
obtener / verificar los datos del ingresarRutProveedor(RutProveedor) ingresarOpcion y no es
mismo. invocado por el actor en
Ingresar datos de G/D Provee- forma directa.
ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC)
dor ( N Gua, Fecha, N O/C )
Para cada lnea: ingresarCodProducto(CodigoProducto)
Ingresar el Cdigo del Nota: calcularTo-
Producto tales es subordinado
Obtener / Verificar datos del Reiterar hasta de grabarLnea y no
que no haya ingresarPrecioCantidad(Precio,Cantidad)
Producto es invocado por el actor
Ingresar precio y cantidad del ms Productos en forma directa.
que ingresar grabarLnea()
Producto
Dar OK a la lnea (Grabar) calcularTotales()
Al terminar:
Dar OK a la Transaccin terminarTransaccin()
(Grabar)
Salir al Men salirAMen()
Sistema
ingresarOpcin(CrearGuiaRecepcion)
desplegar(NumGuiaRecCom, FechaR)
crearEncabezado(NumGuiaRecCom, FechaR)
crearEncabezado(NumGuiaRecCom, FechaR)
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutProveedor(RutProveedor)
ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC)
ingresarCodProducto(CodigoProducto)
ingresarPrecioCantidad(Precio,Cantidad)
grabarLnea()
calcularTotales()
terminarTransaccin()
salirAMenu()
MODELANDO UNA SOLUCIN DE SOFTWARE 361
Contratos:Crear Gua
Contrato
Interna de Recepcin
Nombre: desplegar(NumGuiaRecCom, FechaR)
por Compra
(Productos con registro Responsabilidades: Desplegar la Interfaz de Creacin de Gua de Recepcin. Aceptar (Tab)
para iniciar el ingreso de la transaccin. Desplegar NumGuiaRecCom,
persistente) desplegar FechaR, opcionalmente aceptar modificacin manual de la fecha.
(Base Craig Larman)
Tipo: Sistema
Referencias cruzadas: R1.2
Notas: Esta operacin es invocada por ingresarOpcion. El Empleado
oprime (Tab) para iniciar el ingreso.
Excepciones: N/A
Nota:
Los nombres de elementos usados Salida: N/A
en los contratos hacen referencia
Precondiciones: El sistema tiene el Men y la opcin Crear Gua de Recepcin por Compra
al Diagrama de Secuencia de pg. 18,
requerida instalados y activos. Tiene disponibles a NumGuiaRecCom y
al Modelo de Clases de pg. N 38 FechaR.
y al Modelo Funcional de pg. N 39. Postcondiciones: Se despleg la interfaz de Crear Gua de Recepcin por Compra (limpia).
Se posicion el cursor en A y se acept (Tab) para proseguir.
Se despleg el Nmero correlativo de Gua de Recepcin: NumGuiaRecCompra
en A y la Fecha: FechaR en B.
362 JUAN BRAVO C.
(Base Craig Larman) Responsabilidades: Aceptar el ingreso de RutProveedor, por su intermedio, obtener y des-
plegar los Datos del Proveedor registrados en el sistema de almacena-
miento persistente. A continuacin posicionar el cursor en el campo M.
Tipo: Sistema
Tipo: Sistema
Nota: Referencias cruzadas: R1.6, R1.7 y R1.8, R1.15
Los nombres de elementos usados
en los contratos hacen referencia
Notas: Usar Base de Datos MS Access - el Encargado de Recepcin oprime
(Tab) para pasar a los sucesivos campos -
al Diagrama de Secuencia de pg. 18,
Excepciones: N/A
al Modelo de Clases de pg. N 38
y al Modelo Funcional de pg. N 39. Salida: N/A
Precondiciones: El sistema eventualmente conoce a EncOrdCompra.NumOC (Registrado
oportunamente con anterioridad). Est disponible la Gua de Despacho
del Proveedor.
Postcondiciones: Se despleg NumGDP, FecGD, NumOC en los campos M, N y O
Eventualmente, se asoci EncGuiaRecCompra a una instancia de EncOrdCom-
pra basado en una igualdad de NumOC (asociacin formada)
Se asign NumGDP a EncGuiaRecCompra.NumGDP
(modificacin de atributo)
Se asign FecGD a EncGuiaRecCompra.FecGD (modificacin de atributo)
Se asign NumOC a EncGuiaRecCompra.NumOC (modificacin de atributo)
Se posicion el cursor en el campo P:Cdigo.
364 JUAN BRAVO C.
Contratos: Contrato
Crear Gua Interna de Nombre: ingresarCodProducto(CodigoProducto)
Recepcin por Compra Responsabilidades: Aceptar el ingreso de CodigoProducto. Basado en CodigoProducto, ob-
(Productos con registro tener y desplegar los Datos del Producto registrados en el sistema de
almacenamiento persistente. Al oprimir (Tab) - fin de ingreso de Codi-
persistente) goProducto - asignar Nmero correlativo a la Instancia de DetGua-
(Base Craig Larman) RecCompra.NumLinea y pasar al campo Q. Si la Descripcin es la cor-
recta pasar (Tab) al campo R: Precio.
Tipo: Sistema
Referencias cruzadas: R1.9, R1.10, R1.15
Tipo: Sistema
Notas: Usar Base de Datos MS Access. En este punto el sistema queda listo para
Nota:
reiterar el ingreso de un nuevo cdigo CodigoProducto o caso contrario,
Los nombres de elementos usados pasar a terminarTransaccin()
en los contratos hacen referencia
Excepciones: N/A
al Diagrama de Secuencia de pg. 18,
al Modelo de Clases de pg. N 38 Salida: N/A
y al Modelo Funcional de pg. N 39.
Precondiciones: N/A
Postcondiciones: Se calcul /ValorLnea y se despleg en T
Se calcul/recalcul /ValorTotal y se despleg/redespleg en U.
Se asign /ValorLnea a DetGuiaRecCompra./ValorLnea
( modificacin de atributo )
Se grab en almacenamiento persistente el registro de DetGuiaRecCompra
recin completado
Se cre una nueva Lnea de DetGuiaRecCompra. (creacin de instancia)
Se asoci la nueva Lnea de DetGuiaRecCompra. a EncGuiaRecCompra
(asociacin formada)
Se posicion el cursor en P de la nueva Lnea de DetGuiaRecCompra.
Etapa de Diseo
1:NumGuiaRecCom := siguiente():NumGuia
t1:Terminal :EncGuiaRecCompra
2:FechaR := ahora():Fecha
Fecha
crearEncabezado(NumGuiaRecCom, FechaR)
Diagramas de Colaboracin:
Creacin de EncGuiaRecCompra
ingresarCodEmpleado(CodigoEmpleado)
ingresarRutProveedor(RutProveedor)
(Productos con registro persistente) ingresarCodEmpleado(CodigoEmpleado)
(Base Craig Larman)
1:ingresarCodEmpleado(CodigoEmpleado)
t1:Terminal r1:EncGuiaRecCompra
1.1:Nombre := consultarDatos(CodigoEmpleado)
Asignacin de Responsabilidades
Nota: Segn Craig Larman
( 18.9 a 18.11 - pg.193 a 205 )
La aplicacin de los patrones GRASP e1:Empleados
es la gua para determinar las responsa-
bilidades y la estructura del diagrama.
La forma y secuencia de los mensajes que
activarn las operaciones respectivas se ingresarRutProveedor(RutProveedor)
derivan de la aplicacin de estos patrones.
2:ingresarRutProveedor(RutProveedor)
t1:Terminal r1:EncGuiaRecCompra
p1:Proveedores
Diagramas de Colaboracin:
Creacin de EncGuiaRecCompra
ingresarNGuiaFechaNOrdC(NumGDP, FecGD, NumOC)
(Productos con registro persistente)
(Base Craig Larman)
Diagramas de Colaboracin:
Creacin de EncGuiaRecCompra
ingresarCodProducto(CodigoProducto)
(Productos con registro persistente)
(Base Craig Larman)
ingresarCodProducto(CodigoProducto)
siguiente () : NumLinea
1:ingresarCodProducto(CodigoProducto)
2 *:[i:=1...6] NumLnea:= siguiente () : NumLinea
t1:Terminal r1:EncGuiaRecCompra
b1:Productos
Omisin del Contenedor de Lneas
Nota: Segn Craig Larman
( 21.8.6 - pg.262 ) : Un mensaje
a un multiobjeto se interpreta como
un mensaje al objeto contenedor / colec-
cin en s mismo... estas clases ( tales como
java.util.Vector... ) son clases predefinidas
de la biblioteca de clases... no es til mos-
trarlas explcitamente... agregan ruido
pero poca informacin nueva.
Diagramas de Colaboracin:
Creacin de EncGuiaRecCompra
ingresarPrecioCantidad(Precio, Cantidad)
grabarLnea() y calcularTotales()
(Productos con registro persistente) ingresarPrecioCantidad(Precio, Cantidad)
(Base Craig Larman)
1:ingresarPrecioCantidad(Precio, Cantidad)
t1:Terminal r1:EncGuiaRecCompra
Nota: calcularTotales es
1.1:aceptarDatos(Precio, Cantidad)
subordinado de grabarLnea
y no es invocado por el actor
grabarLinea() en forma directa.
calcularTotales()
ll:DetGuiaRecCompra
2: /ValorTotal := calcularTotales()
t1:Terminal r1:EncGuiaRecCompra
ll:DetGuiaRecCompra
Nota:No se muestra la secuen-
cia de mensajes que correspondera
a grabarLinea(). Esta corresponde-
ra a la interaccin entre la capa
Nota:
del dominio (aplicacin) y la capa de
Despus de grabarLinea() el
servicios de almacenamiento per-
usuario vuelve a la accin anterior
sistente. (Otro conjunto de diagra-
de ingresarCodProducto() hasta que
mas - no abordado aqu -).
no queden ms productos que ingre-
sar, en cuyo caso pasa a la siguiente
accin :
terminarTransaccion()
MODELANDO UNA SOLUCIN DE SOFTWARE 369
Nota:
1: /ValorTotal := calcularTotales()
terminarTransaccion() es muy t1:Terminal r1:EncGuiaRecCompra
amplio y se presenta dividido en
dos partes.
1.1*:[i:=1...6] /ValorLnea := calcularValor()
sumarExistencia(CodigoProducto, Cantidad)
sumarRecibido(CodigoProducto, Cantidad) ll:DetGuiaRecCompra
calcularCPP(CodigoProducto, Cantidad, Precio)
siguiente():NumGuia
ahora():Fecha
3:NumGuiaRecCom := siguiente():NumGuia
t1:Terminal :EncGuiaRecCompra
4:FechaR := ahora():Fecha
Fecha
crearEncabezado(NumGuiaRecCom, FechaR)
l1:DetGuiaRecCompra
370 JUAN BRAVO C.
Encabezado de Gua
de Recepcin Proveedores
Modelo Funcional RUT Proveedor
C/E, msg1, msg2,
C/E y msg4
(Detallado y Generalizado) N Guia Proveedor msg6 y msg10 RUT Proveedor
N Gua Recepcin Razn Social
Crear Gua Interna de Fecha Recepcin Direccin
Recepcin por Compra Cdigo Empleado Terminal e_Mail
Fecha Gua Proveedor
(Productos con Registro N Orden de Compra Encabezado, detalle y totales segn Comuna
/ Valor Total formato de pantalla adjunto. Ciudad
persistente) Pas
Transaccin Cerrada 1. Desplegar interfaz(Correlativo, Fecha).
(Base este libro) Transaccin Anulada 2. Aceptar datos. Contacto
3. Enviar mensajes de C/E a registros. Fono
1. crearEncabezado()
4. Enviar mensajes de consulta de datos Fax
2. aceptarDatos()
5. Calcular totales cumulativos
6. calcularTotales() 4. consultarDatos()
6. Enviar mensajes de actualizacin de
7. cerrarTransaccin()
existencias y actualizar lnea a lnea
8. anularTransaccin()
el registro de la transaccin Empleados
9. copiarTransaccin()
10. siguiente() C/E y msg4
Cdigo
Empleado
Nota: Agregado para C/E, msg1, msg2, msg3,
clarificar el contex- C/E, msg4, Productos Nombre
msg6, msg10 y msg11
to, (ingreso manual).
msg6, msg8 ...
Detalle de Gua de y msg11 Cdigo Producto
C/E y msg4 Recepcin Descripcin 4. consultarDatos()
N Lnea U.Medida
Cdigo Producto
Gua de Despacho Precio Costo Unitario
Cantidad Existencia Inicial C/E y msg4
de Proveedor / Valor lnea Existencia Ordenes
notAct
N Gua de Lnea Cerrada Recibido de Compra
Proveedor Lnea Anulada Despachado
RUT Proveedor 4. consultarDatos() N Orden
1. crearLnea()
Fecha Gua 2. aceptarCodigo()
Nota: Al crear la 6. sumarExistencia() de Compra
lnea de detalle,
etc... 3. aceptardatos() notAct se incializa
7. restarExistencia() Datos
6. calcularValor() a: true 8. sumarRecibido()
4. consultarDatos() 7. cerrarLnea() 9. sumarDespachado() 4. consultarDatos()
8. anularLnea() 10. existenciaNegativa()
9. copiarLnea() 11. calcularCPP()
10. siguiente()
11. notAct()
MODELANDO UNA SOLUCIN DE SOFTWARE 371
BIBLIOGRAFA
GESTIN DE PROCESOS
GESTIN DE PROCESOS
Precio versin en papel: US$ 24, Chile $16.000
(2006, 2 edicin, 400 Pgs., 24,5 x 17,2 cm.)
(1 edicin de 2005)
GESTIN DE PROYECTOS
Precio versin en papel: US$ 15, Chile $10.000 (2006, 260
Pgs., 21 x 14 cm.)
El objetivo de este libro es ofrecer un mtodo para la gesta-
cin, evaluacin, planificacin, direccin y buena ejecucin
de los proyectos, principalmente de procesos y tecnologa.
Es importante hacer bien los proyectos, porque a travs de
ellos se materializa el cambio propuesto por la estrategia de
la organizacin o por las oportunidades que el medio ofrece.
El mtodo tiene como base un amplio estudio de las mejores
prcticas de la gestin de los proyectos y del cambio en las personas. Las em-
presas pblicas y privadas de Chile pierden anualmente ms de 2.000 millones
de dlares debido a fallas evitables en proyectos de gestin. De una u otra
forma esa ineficiencia la pagamos todos y con creces, porque tampoco disfru-
tamos de los beneficios del proyecto si hubiese sido bien hecho.
EL ENCANTO DE LA COMUNICACIN
Precio versin en papel: US$ 15, Chile $10.000 (2007, 2
edicin 230 Pgs., 18,5 x 13 cm., 1 edicin de 1998).
Es un libro orientado a todas las personas que quieren co-
municarse mejor con quienes les rodean para incrementar la
calidad de su vida. El espritu de este libro es que nos sirva
de gua prctica en esta tarea de toda la vida destinada a
relacionarnos mejor y a transformarnos. Por qu? Porque la
comunicacin es cambio que podemos guiar hacia la supe-
racin personal.
TAYLOR REVISITADO
Precio versin en papel: US$ 15, Chile $10.000 (2005, 140
Pgs., 21 x 14 cm.)
ANLISIS DE SISTEMAS
Precio versin en papel: US$ 24, Chile $16.000. (1998,
415 Pgs., 26,5 x 18,5 cm.).
PLANIFICACIN SISTMICA
Precio versin en papel: US$ 24, Chile $16.000 (1997, 240
Pgs., 26,5 x 18,5 cm.).
Tradicionalmente, hemos hecho planificacin suponiendo
que las condiciones ambientales se mantendran ms o me-
nos constantes. Hoy nos damos cuenta que el entorno vara
con mucha rapidez! y que la velocidad del cambio sigue y
sigue aumentando. Para adaptarnos a esta realidad, la plani-
ficacin sistmica recurre a herramientas tales como: partici-
pacin, creatividad y manejo de la incertidumbre del medio.
La planificacin sistmica nos ayuda a cumplir los sueos, siguiendo un ca-
mino que comienza por determinar qu es lo que queremos, en nuestra empre-
sa o en nuestra vida. Luego, establecemos un sistema de diferenciacin y un
plan.
MODELANDO UNA SOLUCIN DE SOFTWARE 383
REINGENIERA DE NEGOCIOS
Precio versin en papel: US$ 24, Chile $16.000 (1995, 300
Pgs., 26,5 x 18,5 cm.)
La finalidad de la reingeniera es lograr grandes desafos, por
ejemplo: aumentar la productividad de las personas, las ven-
tas o la produccin, no en un 30%, sino en 400% y ms.
Cmo lograrlo? A travs de efectuar grandes cambios en los
procesos del negocio, potenciar a las personas, definir una
estructura organizacional flexible e incorporar tecnologa.
Todo en sintona con la cultura y estrategia de la organiza-
cin.
Para qu hacer reingeniera? Para cumplir con la misin de la organizacin,
tarea en la que deben estar empeadas todas las personas que ah laboran,
sirviendo los intereses de los clientes en armona con los valores de la empre-
sa y de la comunidad.
384 JUAN BRAVO C.
6. Responsabilidad Social
Los siguientes doce libros no tienen actualizacin:
Seis son histricos (A la salida del Tnel, Ambrosoli, Enami, Taylor, IST y
Empresas de xito).
Otros seis (Desarrollo, Modelamiento, Reingeniera, Diseo, Planificacin y
Anlisis) perdieron tanta vigencia que no basta con la actualizacin para su
permanencia. En este caso aplica el rediseo, en la forma de nuevos textos que
heredan contenidos reciclados posibles de rescatar de los antiguos. Por ejem-
plo, el libro Modelando una Solucin de Software hered algunos contenidos de
los textos Modelamiento y Diseo.
INFORMACIN GENERAL
Cada texto puede ser adquirido en la forma de una versin corporativa en pa-
pel o digital.
Editorial Evolucin S.A.: Av. Libertador Bernardo OHiggins N171, of 307,
Santiago, fono: 6389717 www.evolucion.cl, info@evolucion.cl.