A quin no le ha pasado que siente la necesidad de comprar algo slo para terminar con ese producto en un rincn sin jams ser utilizado. Nos pudo haber pasado porque no alcanz nuestras expectativas, o porque result demasiado complicado de utilizar, o porque en realidad no era una verdadera necesidad sino simplemente un capricho. Sea cual fuera la razn, la realidad es que hicimos un gasto intil e innecesario. Con el software, y en particular con el desarrollo de software a la medida ocurre con bastante frecuencia algo similar. Pues, no es raro encontrarse con empresas que contratan un desarrollo de software slo para darse cuenta de que desperdiciaron su dinero y su tiempo, pues no obtuvieron lo que ellos esperaban o necesitaban. En otras palabras, no obtuvieron el valor que esperaban recibir para su negocio con el software adquirido. La Admninistracin de Requerimientos Una de las razones principales por las cuales se da esta situacin, y de hecho, una de las causas principales por las cuales los proyectos de desarrollo fracasan o por lo menos no tienen el xito que deberan, se debe a una mala administracin de requerimientos. Esto generalmente se da por falta ya sea de habilidades en el personal responsable o de tcnicas apropiadas utilizadas para llevar a cabo esta labor. La administracin de requerimientos, de acuerdo a CMM, abarca actividades como la recopilacin, documentacin, validacin y control de los requerimientos y sus cambios. UML, como estndar integrador de las buenas prcticas de desarrollo nos ofrece en este sentido los casos de uso como una tcnica excelente para administrar los requerimientos de nuestros proyectos. Consultora o Manufactura? Si queremos realizar una verdadera consultora de software entonces nos corresponde algo ms que escuchar la lista de funciones que el cliente cree que debera de tener su sistema (a menos que nuestro cliente tenga un rea con la capacidad de realizar una buena recopilacin y anlisis de requerimientos). Si nos limitramos a lo primero entonces en lugar de llamarle consultora a nuestro trabajo, deberamos llamarle manufactura de software, donde uno implementa las funciones exactamente como se las solicita el cliente, cuestionando nada o muy poco, tal como se hara en una planta manufacturera donde se reciben las especificaciones del producto a construir. El Sistema y su Misin Si queremos desarrollar el mejor sistema posible debemos realizar un trabajo serio para identificar, en primer lugar, cul es el valor que el sistema debe proporcionar al negocio. Para lo cual habr que preguntrselo a las personas que obtendrn alguna clase de beneficio cuando se ponga en operacin. Una buena parte de estas personas probablemente vayan a ser usuarios del sistema; en UML los conocemos como Actores (ms adelante veremos otros tipos de Actores que tambin tendremos que identificar).
Buscando los Beneficios del Sistema Una vez identificados los usuarios del sistema (actores primarios) habr que preguntarles en qu situaciones valdr la pena para ellos utilizarlo. La lista identificada de dichas situaciones no debera de tener pequeas funciones, sino flujos completos que le proporcionen suficiente valor tanto a ellos como al negocio, de manera que valga la pena usar el sistema en dichas situaciones. Ejemplo: un vendedor en cierto sistema de ventas querr Registrar venta, Registrar pedido, Consultar comisiones, Administrar prospectos, Generar factura y Administrar clientes. Todas ellas son ejemplos de situaciones u objetivos importante que podra necesitar un vendedor para llevar a cabo su trabajo, conocidas y modeladas como casos de uso en UML, tal como se muestra en el diagrama.
Diagrama de casos de uso para el sistema de venta Los Requerimientos Funcionales Normalmente los casos de uso son iniciados por algn actor, conocido como actor primario. Lo inicia con algn evento, que podra ser tan simple como elegir una opcin en el sistema, y contina como una serie de eventos o interacciones entre actores y sistema, hasta que el objetivo del caso de uso se cumple (el objetivo principal del caso de uso es lo que le da el nombre al mismo). Por lo tanto los casos de uso describen la funcionalidad del sistema para alcanzar objetivos importantes. Lo que estamos obteniendo as es una especificacin de requerimientos funcionales mediante un anlisis top-down (de lo general a lo particular), es decir, primero obtenemos los objetivos que hay que cumplir en el sistema descritos con el nombre del caso de uso (p. ej: Realizar una venta) y despus buscamos cules son las funciones o requerimientos funcionales precisos y ordenados para que el actor cumpla dicho objetivo al utilizar sistema. Esto nos lleva a identificar requerimientos realmente relevantes para alcanzar la misin del sistema. Resumen para recopilar los requerimientos funcionales adecuados del sistema mediante casos de uso: 1. Especificar la misin del sistema 2. Identificar quines utilizarn el sistema (actores primarios) 3. Averiguar cules objetivos desean cumplir los actores al usar el sistema (casos de uso) 4. Identificar los pasos o eventos de cada caso de uso (especificacin del caso de uso)
Las Interfases del Sistema Hay otro tipo de actores que tambin hay que modelar; los actores secundarios. Suelen ser otros sistemas, componentes externos o dispositivos con los cuales interacta nuestro sistema. A diferencia de los actores secundarios, stos no son los que inician o requieren del caso de uso, sino que nuestro sistema, al llevar a cabo un caso de uso requiere tener algn tipo de interaccin con l. En el diagrama de casos de uso tambin suele ser apropiado mostrar a este tipo de actores, en cuyo caso aparecern asociados a los casos de uso durante los cuales tienen que intervenir con algn tipo de interaccin con el sistema a modelar. Ejemplo de Actor Secundario
Nuestro sistema de ventas podra requerir enviarle informacin al sistema de contabilidad cuando se ejecuta la funcionalidad del caso de uso Generar factura. En dicha situacin el sistema de contabilidad aparecer como un actor secundario asociado a dicho caso de uso. De esta forma estamos mostrando las interfases requeridas con otros sistema en cada momentos. Por experiencia sabemos que, en los modelos de UML, el buen uso de pocos elementos da mejores resultados que el uso de muchos elementos mal aplicados. La esencia de los modelos radica en la simplicidad, ya que facilita el anlisis, entendimiento y comunicacin entre quienes solicitan el sistema y los que participan en su desarrollo. En otras oportunidades veremos elementos adicionales para modelar los casos de uso, pero podemos asegurar que la sencillez es parte importante del modelado, y esto implica que en ocasiones, y sobre todo cuando el analista no tiene tanta experiencia en UML, es mejor limitarnos a los elementos ms bsicos.
Especificaciones de Casos de Uso: Lo que Bien Comienza, bien Acaba Por Sergio Orozco Si entra basura, sale basura... una gran verdad en cualquier proceso, a menos te dediques al reciclaje de desechos (lo cual es poco probable dado el tema de la revista que tiene en sus manos). Los proyectos de software no son la excepcin; si no iniciamos el desarrollo partiendo de requerimientos correctamente establecidos tendremos muchos problemas para lograr que al final todos los involucrados queden satisfechos. Evitando Malentendidos Como lo comentamos en la edicion anterior, la mayora de los proyectos de software que fallan tienen como causa principal una mala administracin de requerimientos. Un ejemplo en este sentido suele ser un mal entendimiento de los requerimientos entre usuarios y desarrolladores. An y cuando el equipo de desarrollo cree comprender lo que el cliente le est solicitando, existe una buena probabilidad de que no sea as. Incluso me atrevo a decir que en la mayora de las ocasiones lo que yo he visto es que en las primeras etapas ni siquiera el cliente est totalmente conciente de qu es lo que quiere o necesita. Ah es donde el analista entra al rescate, pues debe facilitarle al usuario expresar sus necesidades para validarlas posteriormente mediante mecanismos eficientes de comunicacin que ambos entiendan. Un ejemplo excelente de estos mecanismos son las especificaciones de casos de uso. Aclarando el Panorama Partiendo de la premisa que ya se identificaron los actores y casos de uso apropiados del sistema (ver nmero anterior: Casos de Uso y el Valor del Sistema) lo que corresponde es detallar los pasos necesarios para cumplir con dicho caso de uso. Para especificar cada caso de uso deberamos de tomar en consideracin los siguientes aspectos: 1. Interacciones. Mencionar la participacin del actor primario y la de cada actor secundario desde que inicia el caso de uso hasta que termina. 2. Eventos. Indicar cada uno de los eventos que ocurren durante el caso de uso (consulta de datos, capturas, clculos, etc.) 3. Nivel de detalle. Los casos de uso y sus especificaciones son la base del contrato que establecemos con nuestro cliente, por lo que debemos de buscar especificarlo al mximo detalle. Recuerda que entre ms sepamos de la funcionalidad del sistema ms precisas sern las estimaciones de nuestro plan de trabajo. 4. Escenarios. Un caso de uso muestra diferentes escenarios posibles y no una sola forma de ejecutarlo. Debemos de explicar cada uno de esos escenarios, mediante un flujo principal y sus diferentes flujos alternos y excepcionales. 5. Claridad y Enfoque de Usuario. Busca claridad en la explicacin de los casos de uso utilizando la jerga de negocio a la hora de redactarlo sin mencionar detalles tcnicos a los que no est acostumbrado. Sobre todo te interesa poder validar con ste que lo documentado en las espceificaciones de los casos de uso es lo que requiere para su sistema, as que si no los entiende no cumplirn su propsito principal. Durante los cursos y consultora que impartimos a los analistas, les pido que me platiquen de qu se trata el caso de uso solicitado por su cliente, y despus escribimos eso mismo en las especificaciones, generalmente logramos as un documento ms claro que cuando lo escriben directamente sin platicarlo. La experiencia me dice que, por lo menos en sistemas, la gente explica mejor las cosas oralmente que de forma escrita. Flujo principal del caso de uso Registrar Venta El vendedor solicita el registro de una nueva venta. El sistema solicita los datos de cada uno de los productos de la venta. El vendedor registra la cantidad y clave de cada uno de los productos. El sistema muestra la lista de productos con su cantidad, clave, descripcin, subtotal, IVA y total. El sistema solicita el tipo de pago. El vendedor indica pago al contado o con tarjeta de crdito. Dependiendo de la seleccin comienza el flujo alterno Pago al contado o Pago con tarjeta de crdito. Una vez realizado el pago se registra la venta, se actualiza el inventario e imprime el ticket correspondiente. Termina el caso de uso. Flujo Alterno: Pago al Contado El vendedor registra el monto recibido por el cliente. El sistema calcula y muestra el cambio a devolver. El vendedor devuelve el cambio al cliente. El ejemplo que mostramos es una versin simplificada de la especificacin de un caso de uso con el flujo principal y uno de los flujos alternos. Generalmente se recomiendan varios elementos adicionales para documentar los casos de uso. Pero, puedo asegurarte que la esencia es lo mencionado anteriormente. Pero, a continuacin se mencionan algunos de esos elementos extras con los que puedes complementar la plantilla para documentar tus especificaciones de casos de uso. Propsito. Si comienzas por este punto se te facilitar definir los pasos ms relevantes para ejecutar el caso de uso. Precondiciones. Son las condiciones que se deben de cumplir en el sistema antes de iniciarlo. El estado en que se debe encontrar el sistema antes de ejecutarlo. (Ej: Algn catlogo debe estar actualizado, debe estar en conexin con otro sistema, el usuario debe estar conectado con cierto perfil especfico) Postcondiciones. Te indica como queda el sistema despus de ejecutar el caso de uso. Imagina que eres un tester y quieres comprobar si alguien acaba de ejecutar el caso de uso. Qu cosas buscaras en el sistema? Seguramente datos nuevos, modificados, eliminados o la posibilidad de elegir nuevas opciones en el sistema. Requerimientos Especiales. Cualquier requerimiento extra del sistema, asociado al caso de uso especificado. Puntos de Extensin. Puntos donde se extiende el caso de uso mediante una relacin de <<extend>>. En los cursos prcticos que impartimos de UML una de las inquietudes que nos expresan ms frecuentemente los analistas es el hecho de que el cliente no est dispuesto a pagar el esfuerzo requerido para realizar la documentacin que implica especificar los casos de uso. El error, en primer lugar, es que no lo deberamos de ver como la documentacin del sistema, sino como una herramienta para esclarecer lo que quiere que le construyamos. Si no se especifica claramente qu es lo que quiere/desea/necesita el cliente entonces resulta una adivinanza saber cunto nos vamos a tardar, y por lo tanto cunto nos va a costar desarrollarlo. En este sentido depender del contexto del proyecto el nivel de detalle a realizar, y por lo tanto la cantidad de documentacin generada para especificar los casos de uso. Slo hay que tomar en cuenta que entre menos precisin y detalle haya mayor ser el riesgo de no tener un proyecto exitoso. As que no nos debe de sorprender que si entra basura, con bastante probabilidad, saldr basura.
Dominando el Problema: el Modelo Conceptual Por Sergio Orozco Es una preocupacin recurrente en la gente que capacitamos en UML saber cules son los artefactos mnimos indispensables para obtener beneficios tangibles en su proyectos de software o en su proceso de mejora continua . Es difcil expresar en un artculo de este tamao la respuesta a esta pregunta, aunque tratar de simplificar la respuesta que normalmente damos en los cursos.
Por mi experiencia implantando procesos centrados en UML, desde que se formaliz como estndar por la OMG, puedo asegurar lo que ya muchos saben: el mundo no es de color de rosa en esto de los procesos. Mientras que algunos puristas podran sugerir usar la mayora de los artefactos en cada proyecto, la verdad de las cosas es que en muchas de las ocasiones no es factible. No son pocos los proyectos en los que la gente no tiene el tiempo suficiente para modelar todo, por lo que busca un mnimo indispensable en el uso de este estndar. Yo creo en la filosofa de es mejor poco que nada, pues he aprendido en todos estos aos que sugerir el uso de todos los artefactos ocasiona que al final terminen no usando ninguno, usando el menos apropiado o usndolos inadecuadamente. As que mi recomendacin es usar por lo menos el diagrama de casos de uso y/o el diagrama de clases. Con el primero para obtener ms beneficios en cuestin de calidad y control del proyecto. Y el segundo para desarrollar sistemas ms ORIENTADOS A OBJETOS. En este artculo nos concentraremos en el diagrama de clases, pues en nmeros anteriores tratamos ya el tema de casos de uso. Uno o Dos Artefactos? Hay quien desarrollara el diagrama de clases desde una sola perspectiva, modelando las clases de software a implementar. Es decir, realizando directamente el diseo de la aplicacin. Mi recomendacin al respecto es que si quieren sacarle el mximo provecho al diagrama de clases es conveniente desarrollarlo en dos ciclos. Uno de anlisis y otro de diseo, lo cual implica que en realidad estn desarrollando dos artefactos en el proceso en lugar de uno; ambos usando el diagrama de clases como base.
En el primero de estos ciclos, el de anlisis, se desarrolla lo que podemos llamar diagrama preliminar de clases, modelo del dominio o modelo conceptual. No importa el nombre, lo que importa es lograr el objetivo de comprender el dominio (contexto del problema); con el beneficio indirecto de estar estableciendo las posibles clases del sistema. Ya en el ciclo de diseo este diagrama preliminar ser usado como una base a refinar para determinar las clases definitivas a implementar en el sistema orientado a objetos.
La Comprensin del Problema En este artculo vamos a hablar de la versin de anlisis del diagrama: el modelo conceptual. Su relevancia radica en que si no comprendemos el dominio del problema y las reglas de negocio habr pocas esperanzas de sugerir y desarrollarle un buen sistema a nuestro cliente. Y entre ms complejas sean las reglas de negocio, ms fcilmente tenderemos al fracaso si no logramos esta comprensin.
Imagina que te solicitaron desarrollar un sistema para vender plizas de seguros de vida. Pero, quizs nunca en tu vida has comprado un seguro, por lo que no tienes ni idea de los conceptos de dicho. No sabes que las plizas de estos seguros sirven para asegurar a un cliente por un monto, ni que el plan cubierto por esa pliza es para un tipo de seguro de vida que puede elegir el cliente entre los diferentes planes que aplican de acuerdo a sus caractersticas, ni que el cliente puede seleccionar tambin un tipo de pagos para pagar su pliza a diferentes plazos y montos, ni sabes tampoco que la pliza puede tener desde uno hasta un mximo de 10 beneficiarios. Bueno, pues si yo fuera el cliente y t no lograras comprender los puntos anteriores, ten por seguro que me buscara a alguien ms para que me lo desarrollara. Y este es un ejemplo simple, pues las reglas de negocio de cualquier sistema, sabemos que pueden ser mucho ms complejas. No por nada alguien dijo: empiezo a pensar que es ms fcil ensearle a mi gente de negocios cmo desarrollar sistemas que a la gente de sistemas el negocio. Enlistar textualmente estas reglas en un documento puede ser til, pero cuando tienes un documento de varias hojas para explicar el dominio es muy fcil que la gente comience a sentirse agobiada por tanta informacin. En cambio, si usas un modelo conceptual para expresarlas ser mucho ms fcil documentarlas, analizarlas y comprenderlas. Con la ventaja, como ya coment, que estars estableciendo las bases para construir una aplicacin orientada a objetos.
Figura. Modelo conceptual para la venta de seguros de vida Los elementos principales a mostrar en el modelo conceptual son: Conceptos. Elemento lgico o fsico que ayuda a entender el problema, es parte del lenguaje utilizado por el cliente y generalmente se nombra como sustantivo. Se representan con el smbolo de una clase. Ejemplo: Cliente, Pliza y Domicilio. Atributos. Informacin que caracteriza al concepto en el mundo real. Se muestra en el segundo compartimiento de las clases. Ejemplo: Nombre, apellidos y edad del cliente. Asociaciones. Relaciones lgicas o fsicas que existen en el mundo real entre dos conceptos. Si puedes armar una frase con dos conceptos significa que la puedes representar mediante una relacin de asociacin entre esos dos conceptos. Puedes colocarle el verbo que usas para relacionar los conceptos en la frase, indicndolo sobre la asociacin con una punta de una flecha para indicar la direccin en que se debe leer la frase. Ejemplo: La Pliza cubre-a un cliente asegurado, el cliente vive-en un domicilio. Rol. El rol tambin puede aclarar la relacin entre dos conceptos, indica el rol que juega un concepto con respecto a otro en una relacin de asociacin. Ejemplo: PlanesAplicables al cliente. Multiplicidad. El nmero de instancias de un concepto relacionados con el otro concepto. Ejemplo: Una pliza tiene una lista de uno a diez beneficiarios. Generalizacin. En lugar de poner una asociacin para armar la frase es-un-tipo-de podemos poner una generalizacin. Aunque esto podra crear confusin en los lectores no tcnicos, por lo que hay que asegurarse que el lector del modelo entienda perfectamente el significado de la notacin. Ejemplo: El Plan Oro es un tipo de plan de seguro de vida, al igual que el plan tradicional. Agregacin y composicin. Indican una relacin donde uno de los conceptos es el contenedor del otro. Ejemplo: la pliza contiene una ListaBeneficiarios.
Estos son los elementos bsicos a utilizar para aclarar el dominio de un problema. Aunque hay quien gusta de indicar tambin algunas operaciones que reflejan el comportamiento o las acciones que se pueden realizar asociadas a un concepto. Ejemplo: A un cliente se le pueden cargarPlanesAplicables(). Yo generalmente prefiero definir las operaciones durante una actividad separada de diseo, pero si te da resultado de otra forma est bien.
Un tip adicional, aunque este diagrama se parece a un modelo entidad relacin, y en efecto puedes aprovechar parte de tu experiencia en ese tipo de diagramas, no trates de hacerlo siguiendo las reglas de ese tipo de diseo. Un entidad relacin es un modelo fsico para implementar una base de datos relacional, y el modelo conceptual como lo dice el nombre, slo muestra conceptualmente el dominio del problema.
Trabajando en Equipo: Diagramas de Interaccin Por Sergio Orozco y Carlos Macas Trabajar de forma aislada podra dar resultados slo en ciertos contextos, pues para quien pretende alcanzar grandes objetivos probablemente la nica forma de lograrlo sea colaborando con otras personas, es decir trabajando en equipo. Un proceso donde no interacten por lo menos un par de personas o reas probablemente sera muy simple. En la mayora de los procesos importantes nos encontramos con varias reas o roles que interactan para lograr el objetivo comn. De la misma forma, el paradigma de la orientacin a objetos lleva al anlisis y diseo de sistemas el concepto de colaboracin para alcanzar ms eficientemente los objetivos del mismo. El principal objetivo del sistema se encuentra en satisfacer requerimientos, muchos de los cuales se traducen en funcionalidad. En UML esa funcionalidad est descrita principalmente en casos de uso, escenarios y mtodos del sistema a modelar donde un conjunto de objetos interactan para cumplir con dicha funcionalidad.
El Mundo de los Negocios llevado al Mundo del Software En un proceso de negocio nos podemos encontrar que un cliente interacta con un vendedor y el vendedor interacta con el rea de produccin para realizar un proceso de venta. De la misma manera en un software orientado a objetos nos podemos encontrar a un objeto llamado cliente interactuando con un objeto venta para realizar la funcionalidad correspondiente a una venta. La orientacin a objetos trata de llevar el mundo que todos conocemos de los objetos reales (fsicos o abstractos) al mundo del software en elementos de cdigo que se mapeen de la mejor forma posible a la realidad. Objetos, que adems de ser identificados de manera nica, de tener sus propias caractersticas y un comportamiento asociado, normalmente no van a funcionar en el sistema de manera aislada, sino que interactan con otros objetos de software para cumplir ciertas funciones del sistema.
Modelando la Colaboracin UML nos presenta un par de artefactos que facilitan expresar las interacciones que se dan entre los objetos para cumplir los requerimientos del sistema, e incluso las interacciones de elementos del mundo real (ej. Roles o reas) para llevar a cabo procesos de negocio. Los artefactos que nos sirven para este fin son los diagramas de interaccin, aunque en realidad este nombre se utiliza para una clasificacin de diagramas donde se identifican dos tipos de diagramas que cumplen con funciones similares. Estos diagramas son los de secuencia y los de comunicacin (El diagrama de comunicacin era conocido como diagrama de colaboracin en versiones anteriores de UML).
En la notacin tradicional de UML las interacciones que se modelan son las que se dan entre objetos de software al ejecutar ciertas funciones del sistema. Pero, esta misma representacin se puede utilizar para representar las interacciones entre los elementos del mundo real al ejecutar un proceso de negocio, en las extensiones de UML para modelado de negocio. Ejemplo Bsico de Interaccin entre Dos Objetos Cuando un comprador le solicita a un vendedor que le venda un producto, ambos estn interactuando. Cuando el vendedor le solicita al comprador que liquide la venta estn teniendo otra interaccin. Tambin son interacciones, cuando el comprador le pide al vendedor que cobre la venta y el ltimo le entrega los productos adquiridos al primero. Las interacciones son peticiones o mensajes intercambiados entre los objetos o elementos que colaboran.
Aydame que yo te Ayudar Ok, tal vez la frase original no sea como este ttulo, pero es es una realidad en los procesos colaborativos. En estos, los objetos se piden ayuda para lograr un objetivo comn.
El mensaje es el mecanismo mediante el cual dos objetos interactan en los diagramas de interaccin (aplica para los dos tipos de diagramas de interaccin, tanto para el de secuencia como para el de comunicacin). El mensaje es la forma en que un objeto ayuda a otro a continuar con el trabajo requerido.
Los mensajes se representan mediante flechas que van de un objeto a otro. El objeto emisor del mensaje (de donde sale la flecha) le est solicitando al objeto receptor (a donde llega la flecha) que le ayude proporcionndole cierto servicio, es decir, podemos hablar de una relacin cliente-servidor entre dos objetos.
Un Gran Poder Implica una Gran Responsabilidad En una relacin cliente-servidor, el objeto emisor es el cliente y receptor del mensaje es el servidor. El receptor del mensaje tiene el poder de ayudar al emisor, pero esto tambin significa que el receptor tiene la responsabilidad de atender o procesar la peticin. Uno de los aspectos clave en el paradigma orientado a objetos consiste en realizar una adecuada asignacin de responsabilidades a los objetos que colaboran en la realizacin de los procesos.
Supongamos que vamos a una tienda a adquirir un producto y, en repetidos intentos, le solicitamos amablemente al vendedor que nos venda lo que queremos, pero ste ltimo nos ignora, llegar un momento en el que nuestra paciencia se agote y, en una forma menos amable, le exijamos al irresponsable vendedor que nos atienda. Bajo este escenario los dos objetos que interactan, nosotros como compradores y la otra persona como vendedor, tenemos asignadas ciertas responsabilidades y quien recibe la peticin debe ser el responsable de ejecutarla. La figura 1 muestra al comprador interactuando con el vendedor y este a su vez con el almacenista en un diagrama de secuencia. En los mensajes 1.0 y 1.3 el comprador es el emisor de los mensajes y por tanto juega el rol de cliente mientras que el vendedor se desempea como el servidor. En el mensaje 1.2 los papeles se invierten, siendo el vendedor el cliente y el comprador el servidor.
Figura 1
En cuanto a las responsabilidades, el diagrama de secuencia nos indica que el comprador es responsable de liquidar la venta mientras que el vendedor es responsable de atender la venta y de aplicar el pago a la misma, as mismo, el almacenista es responsable de entregar los productos del almacn.
Pedir Por Favor o Dar una Orden Ntese cmo las descripciones de los mensajes no estn indicando la tarea que realiza el emisor del mensaje sino la solicitud (u orden) que ste le est haciendo al receptor. Cuando se modela una colaboracin de objetos es muy importante no confundir los eventos con las responsabilidades, de hacerlo as podramos llegar a modelos poco apropiados como el que se muestran en la figura 2.
Figura 2 La figura 2 nos da la nocin de los pasos que se tienen que realizar para adquirir los productos, pero definitivamente no refleja las responsabilidades reales de los objetos que colaboran en el proceso al recibir los mensajes. Nos ha dado excelentes resultados, en las prcticas realizadas con nuestros alumnos, recomendarles que los diagramas de interaccin usen una conversacin imperativa en los mensajes, es decir a veces no hay que pedir, hay que dar rdenes! pues es su responsabilidad. Pasando del Anlisis al Diseo Los diagramas de interaccin permiten cubrir la brecha natural que existe entre el anlisis y el diseo, de hecho, son la clave para evolucionar al diagrama de clases derivado del anlisis (Modelo Conceptual) a uno enfocado en el diseo. Los mensajes, que implican responsabilidades son transformados en operaciones que finalmente definen las responsabilidades de las clases.