lunes, 26 de noviembre de 2012

DIAGRAMA DE SECUENCIA


DIAGRAMA DE SECUENCIA




En un diagrama de secuencia se indicarán los módulos o clases que forman parte del programa y las llamadas que se hacen en cada uno de ellos para realizar una tarea determinada.
Se realizan diagramas de secuencia para definir acciones que se pueden realizar en la aplicación  en cuestión. Así, en el caso de una aplicación para jugar al ajedrez, se podrían realizar diagramas de secuencia para “jugar una partida” o bien para acciones más específicas como “mover pieza”.

El detalle que se muestre en el diagrama de secuencia debe estar en consonancia con lo que se  intenta mostrar o bien con la fase de desarrollo en la que esté el proyecto, no es lo mismo un diagrama de secuencia que muestre la acción de “mover pieza” a otro que sea “mover caballo”, o bien no es lo mismo un diagrama de secuencia “mover pieza” que verifique ciertos parámetros antes de mover como la viabilidad del movimiento con respecto a una estrategia marcada a una diagrama que no muestre este nivel de detalle por estar en una fase inicial de diseño del sistema.

El detalle del diagrama depende de la fase en la que estemos, lo que pretendamos contar con el diagrama y a quién. En una primera fase de diseño podemos poner clases grandes y ficticias, que representen un paquete/librería o, si nuestro programa está compuesto por varios ejecutables corriendo a la vez, incluso clases que representen un ejecutable.
Si estamos en una fase avanzada, estamos diseñando el programa y queremos dejar bien atados los detalles entre dos programadores, que cada uno va a programar una de las clases o módulos que participan, entonces debemos posiblemente ir al nivel de clase real de codificación y método, con parámetros y todo, de forma que los programadores tengan claro que métodos van a implementar, qué deben llamar de la clase o módulo del otro, etc. Incluso si es un diagrama para presentar al cliente, podemos hacer un diagrama de secuencia en el que sólo salga el actor "jugador" y una única clase "juego ajedrez" que representa nuestro programa completo, de forma que el cliente vea qué datos y en qué orden los tiene que meter en el programa y vea qué salidas y resultados le va a dar el programa.

El siguiente puede ser un diagrama de secuencia del ejemplo del ajedrez a un nivel de diseño 
muy preliminar


Aquí ya se ha decidido que se van a desarrollar tres librerías/paquetes/módulos, una para la 
interface de usuario, otra para contener el tablero y reglas del ajedrez (movimientos válidos y 
demás) y otra para el algoritmo de juego del ordenador. En el ejemplo se ha utilizado una clase 
representando cada uno de los paquetes y se ha representado el caso de uso "mover pieza".
En el diagrama de secuencia no se ponen situaciones erróneas (movimientos inválidos, jaques, 
etc.) puesto que poner todos los detalles puede dar lugar a un diagrama que no se entiende o 
difícil de leer. El diagrama puede acompañarse con un texto en el que se detallen todas estas 
situaciones erróneas y particularidades.

jueves, 22 de noviembre de 2012

LOS SABIOS Y EL ELEFANTO

Erase una vez seis hombres sabios que vivían en una pequeña aldea. Los seis sabios eran ciegos. Un día alguien llevó un elefante a la aldea. Los seis sabios buscaban la manera de saber como era un elefante, ya que no lo podían ver. ¡Ya sé, palpémoslo! Dijo uno de ellos, ¡Buena idea! dijeron los otros. El primero tocó las orejas del elefante, notaba como se movían de un lado a otro, así que dijo: “un elefante es como un gran abanico”. El segundo tocó las patas del elefante ” es como un árbol”. “Los dos estáis equivocados”,  dijo el tercero, “el elefante es como una soga”, le estaba tocando la cola. Justamente entonces el cuarto, que estaba tocando los colmillos dijo “el elefante es como una lanza”. “No, no” gritó el quinto sabio, “es como un muro alto”, había estado tocando el costado. El sexto sabio, que estaba tocando la trompa dijo “no, estáis todos equivocados, el elefante es como una serpiente”. “No, como una soga”, “no, como un árbol”, “no, como un abanico”…. Siguieron discutiendo durante días y días sin llegar a un acuerdo.
Así nos pasa muchas veces que vemos ” la verdad” desde nuestra percepción limitada e intentamos imponiéndosela a los demás, sin escucharles, sin buscar otras ideas o soluciones, sin pensar que quizás todos tenemos una parte de “la verdad”, pero no toda la verdad