Documente Academic
Documente Profesional
Documente Cultură
MONOGRAFIA
Trygve Reenskaug
trygve.reenskaug@ifi.uio.no http://www.ifi.uio.no/~trygver
Introduccin del traductor: este artculo es un anticipo del trabajo en curso de Trygve Reenskaug, quien ha tenido la amabilidad de responder a la invitacin de Novtica elaborando apresuradamente las lneas que siguen con destino expreso para este nmero. Para quien no le conozca, el Dr. Reenskaug es una de las personas ms respetadas en el rea de la Ingeniera de Software. Inventor del concepto ModeloVista-Controlador y del marco metodolgico OOram, en la actualidad es revisor para el Object Management Group (OMG) de la notacin UML. Mi intencin original era traducir uno de los artculos publicados en su pgina web sobre modelizacin de sistemas distribuidos usando el Modelo de Referencia de ISO para Proceso Distribuido Abierto (ODP) y UML. La extensin y relativa aridez del mismo, junto con la agradable sorpresa de poder ofrecer este anticipo a los lectores de Novtica me han hecho cambiar de opinin. Por favor, lanlo sin prejuicios y nos volvemos a encontrar al final del artculo.
nos deja enlazar informacin entre los diferentes niveles siempre que escojamos hacerlo as.
Sumario y conclusin
En este artculo exploro la relacin entre las necesidades y soluciones en los niveles ms generales [de la empresa] y los posibles sistemas de informacin y sus soluciones en los niveles inferiores. Lo que encuentro es una jerarqua de fines y medios, en la que la especificacin de los sistemas informticos puede considerarse como una decisin de diseo de bastante bajo nivel. Propongo la siguiente jerarqua: - Reconocimiento de la necesidad de introducir algn cambio o mejora en la empresa. - Eleccin del contexto/fronteras de la solucin. - Diseo de los procesos de negocio (asignacin de responsabilidades, quin hace qu y cuando). - Descripcin de las tareas del personal. - Seleccin de tecnologa y arquitectura del sistema. - Diseo detallado de las herramientas. Determinacin de los casos de uso. - Especificacin de los servicios de informacin inexistentes. - Diseo e implementacin de los servicios de informacin informatizados (p.ej. como Enterprise JavaBeans). - Diseo e implementacin de las interfaces de usuario (herramientas) que soporten las operaciones de los usuarios. Me gusta este enfoque. Permite el uso de formalismos si y cuando los queremos, mientras que otras partes pueden mantenerse informales e incluso indocumentadas. Adems
Todava no hemos considerado la posibilidad de usar computadoras. Esta es una decisin de diseo que se pospone hasta el nivel 5, en el que escogemos la tecnologa a emplear.
Viajero
Autorizador
solicitudDePermisoDeViaje() <Comprobar los compromisos del viajero> <Comprobar presupuesto de viajes> <Decidir> <Enviar la respuesta>
permisoDeViaje()
Seguimos sin tomar decisiones sobre informatizacin. Pero ahora tenemos una descripcin razonablemente estructurada de lo que queremos que ocurra, que nos ayuda a decidir dnde y cmo usar computadoras.
Al fin, y tras este largo proceso, llegamos al punto en que consideramos la seleccin de tecnologa. Ante nosotros se abre un amplio abanico de posibilidades, que va desde sistemas basados exclusivamente en papel hasta una informatizacin total de las operaciones. De forma un tanto arbitraria decidimos basar todo el procedimiento en un sistema informtico. Decidimos igualmente equipar a parte de los participantes con herramientas a medida para darles el mximo apoyo en sus tareas. Una primera consecuencia de esta eleccin es que necesitamos almacenar informacin sobre los viajes en un servicio de almacenamiento que debe estar disponible en la red. Pero viendo las descripciones de las tareas, encontramos igualmente que nuestros usuarios necesitan acceder a los planes y presupuestos de la empresa. Supongamos que ya tenemos instalado un componente de servicios de Planificacin y un componente de servicios de Presupuesto. Procedemos a comprobar si estos componentes
/Autorizador
0 1
/Contable
0 1
/Tesorero
Ahora ya hemos tomado muchas decisiones. Hemos decidido quin estar implicado en gestionar un viaje, as como sus responsabilidades. Hemos determinado tambin disparadores y flujos de datos tpicos, y las tareas a realizar por cada participante. El modelo es bastante concreto. No hemos considerado clases ni diagramas de clases (UML). Ni los necesitamos, ni los queremos a este nivel.
10
soportan las operaciones requeridas por las tareas. Suponiendo que esto es as, terminamos con una arquitectura del sistema. La arquitectura para la herramienta de aprobacin del Autorizador es la ilustrada en la figura:
llevar a casos de uso adicionales. Estos casos de uso especifican qu pueden hacer los usuarios con las herramientas. [Al considerar que] este uso ha de pasar por las herramientas para conseguir las operaciones de los servicios, obtenemos una primera imagen de las interfaces de los servicios. Probablemente, hace mucho tiempo que adoptamos una tecnologa comn para los servicios de informacin; p.ej. Enterprise JavaBeans. Esta decisin, que cae fuera del mbito de los proyectos individuales como el de nuestro ejemplo, matizar nuestras opiniones en cierto grado.
ServiciosDePresupuesto
HerramientaDeAutorizacin
ServiciosDePlanificacin
Autorizador
ServiciosDeGastos DeViaje
8. Diseo e implementacin de los servicios de informacin informatizados (por ejemplo Enterprise JavaBeans)
Usamos cualquier mtodo aplicable.
9. Diseo e implementacin de las interfaces de usuario (herramientas) que soporten las operaciones de los usuarios
Usamos cualquier mtodo aplicable.
11
Figura 1
poco sobre cmo realizar nuestro trabajo que, en lugar de seguir un mtodo de trabajo establecido y contrastado, tenemos que hacer un estudio metodolgico previo para elegir la forma de resolver su problema, y que nuestra desconfianza hacia el cliente har que todas nuestras aclaraciones terminen siguiendo la amenazadora va del requerimiento notarial. El problema que creo que asoma las orejas por detrs del artculo precedente, y crea ese desasosiego, es el de si es en absoluto posible que los sistemas de informacin respondan a las necesidades reales de las organizaciones que los pagan, dado el abismo terminolgico y las prioridades discrepantes entre gestores y tecnlogos. Teniendo en cuenta que el propio Reenskaug escribi en 1997 un artculo con el ilustrativo ttulo de Porqu los programadores no usan mtodos y qu podemos hacer al respecto, y que explcitamente relega a los dos niveles inferiores, de los nueve considerados, la utilidad prctica de los mtodos actuales, lo que creo que est haciendo es reformulando el problema en los trminos de (sta vez si) metodologas ms generales, como la SSM de Checkland, en las que se asume que hay otros factores de tipo cultural y psicolgico que son tanto o ms relevantes que el tecnolgico a la hora de disear organizaciones eficaces y eficientes. Qu opina el lector? Estamos realmente incapacitados para comunicarnos fuera del mbito de nuestros colegas inmediatos (y no slo por afn de protagonismo)? Somos ya tan imprescindibles e incomprensibles para la sociedad como los expertos en mecnica cuntica? Si es as, vienen (por fin!) tiempos exigentes: slo se van a poder vender
resultados objetivos y mensurables, respaldados por una asuncin de responsabilidades sobre vicios ocultos. Es lo que ha venido ocurriendo histricamente cuando se ha optado por convertir al cliente en mero consumidor...
Notas
1
Por ejemplo, dijo que el diagrama de clases es perfectamente irrelevante, ya que cualquier entorno de desarrollo presentable nos presentar una vista semejante para facilitarnos el acceso al cdigo.