Tutorial Rational Rose 7
En este tutorial tutorial usaremos como ejemplo base base una Floristería virtual. virtual.
1. Defnición del problema: Floristería virtual
En este ejemplo se pretende desarrollar una tienda de fores virtual. Para ello una empresa decide montar una ranquicia de reparto de fores y creará una página Web que colocará en Internet las foristerías se !arán miembros de la ranquicia y serán las encargadas del reparto de las fores solicitadas por Internet. "os usuarios se conectarán a la máquina Web y reali#arán pedidos$ %encargarán ramos de fores& que serán enviados a otra tercera persona. 'na ve# que el usuario !a reali#ado el pedido$ la aplicaci(n se encargará de buscar la foristería más cercana al domicilio del destinatario$ que se encuentre registrada en el sistema y la noti)cará que debe reali#ar una entrega. *uando esta foristería !aya reali#ado la entrega entrará en el sistema y registra la ec!a y !ora en que reali#o la entrega. "a aplicaci(n debe de llevar un registro de ec!as tales como ec!a en la que se reali#a el pedido$ ec!a en la que de debe entregar$ la ec!a de real de la entrega$ etc. *uando un cliente !ace un pedido$ se le proporciona un identi)cador +nico para poder seguir el estado de su pedido. El usuario puede entrar en el sistema y seguir el estado de su pedido así como anular la entrega si a+n no se !a reali#ado reali#ado.. 2. Creación de Casos de Uso 2.1 ctores
"os actores actores no son parte del sistema ellos representan a una persona o cosa que debe interactuar con el sistema. "o +nico que un actor puede !acer es, Introducir inormaci(n al sistema • •
-ecibir inormaci(n del sistema. Entrar y recibir inormaci(n del sistema.
"os actores actores se deben de buscar y encontrar en la de)nici(n del problema. En '"$ un actor es representado por un mu/eco de alambre como el mostrado en la )gura.
Figura 2.1 Icono de un Actor ctores de la Floristería virtual ser!n: "as Personas de desean enviar fores. •
•
"as empresas o personas encargadas de enviar ísicamente las fores a las
• •
personas destino del pedido. El administrador que será el encargado de dar de alta las 0iendas en el sistema. El asignador$ entendi1ndose como un proceso encargado de asignar los pedidos
•
reali#ados por los clientes a la tienda que deberá !acer la entrega. "os destinatarios de los pedidos.
2.1.1 Creación de Dia"rama de Casos de Uso
'n diagrama de casos de uso es la representaci(n grá)ca que relaciona los actores actores con los casos de uso y sus relaciones dentro del sistema. *ada sistema típicamente debe tener un diagrama de casos de uso. 2ependiendo la complejidad del sistema y el nivel de detalle que se quiera entrar el sistema puede tener varios diagramas de casos de uso. *omen#amos representando representando el comportamiento de los movimientos de las actividades de la foristería por medio de casos de uso en -ational -ose. 34e pinc!a con el bot(n derec!o de rec!o sobre la pesta/a 'se *ase 5ie6 34eguidamente se selecciona 7e6$ y a continuaci(n 'se *ase 2iagram
Figura 2.2.1.1 Selección diagrama de Casos de Uso 3 8sí tendremos creado el nuevo diagrama de casos de uso.
Figura 2.3.1.2 Obtención diagrama de Casos de Uso 3 8l cual nombraremos$ en este caso$ como Floristería. 9 !acer doble clic encima del diagrama para que nos muestre por pantalla el 0oolbo: de este diagrama$ y su ventana correspondiente.
Figura 2.4.1.3 Floristería 3'na ve# abierta la ventana de *asos de uso es posible a/adir casos de uso y actores directamente en la ventana$ a trav1s de la b arra de !erramientas.
Puntero de rat(n normal$ permite la selecci(n de los elementos ya e:istentes en el diagrama de casos de uso.
8/ade un te:to o etiqueta al diagrama de casos de uso.
8/ade una nota de te:to al diagrama de casos de uso. "a nota puede estar asociada al diagrama o a un elemento en particular. particular.
Establece una relaci(n entre una nota de te:to y un elemento. "a nota y el elemento con el que se establece la relaci(n deben estar previamente en el diagrama.
8/ade un paquete al diagrama. "os paquetes son agrupaciones de elementos. 4e pueden de)nir paquetes de casos de uso$ de clases de componentes$ etc.
8/ade un nuevo caso de uso al 2iagrama.
8/ade un nuevo actor al diagrama.
Establece una relaci(n entre un caso de uso y un actor.
Establece una relaci(n o dependencia entre paquetes.
Establece una generali#aci(n entre casos de uso o actores.
3 ; bien como se detalla a continuaci(n,
2.1.2 Creación de ctores
<. 4e pulsa con el bot(n derec!o en la pesta/a del árbol marcada como 'se *ase 5ie6$ para que apare#ca visible el men+ conte:tual. =. 4e selecciona la opci(n 7e6 8ctor. 'n nuevo actor llamado 7e6 *lass se a/adirá al árbol. >. *uando el nombre del actor se encuentra todavía seleccionado se introduce el nombre correcto de este.
Figura 2.1.5.1 Creación de un nueo actor -epetir el proceso anterior para crear los usuarios de la aplicaci(n ? ? ? ?
#Cliente.$ Personas que desean enviar fores. #Tienda.$ Empresas o personas encargadas de enviar ísicamente las fores a las personas destino del pedido. #dministrador.$ Persona encargada en dar de alta las 0iendas en el sistema. #si"nador.$ Proceso encargado de leer los nuevos pedidos y asignárselos a la tienda que reali#ará la entrega.
@acer notar que los destinatarios no se !an considerado como actores del sistema$ aunque en la vida real sean personas ísicas$ pero su papel no es relevante en la aplicaci(n. Por lo tanto$ no siempre cualquier persona que apare#ca en la de)nici(n de un problema se debe considerar como actor del sistema.
-esaltar que se !a creado un actor con nombre 8signador$ que sin ser una persona ísica$ sino un ente abstracto$ se !a considerado como un actor del sistema$ al ser de vital importancia y tener unas tareas bien de)nidas %8signar cada pedido a la foristería más cercana al domicilio cliente&.
Figura 2.1.!.2 "ista del #rbol de Casos de Uso $actores% 2ocumentaci(n de los 8ctores 'na ve# creados los actores se debería comentar su papel en el sistema. <. 4e !ace doble clic el icono de un actor.
Figura 2.1.&.3 'ocumentación de actores =. 4e selecciona la pesta/a de Aeneral y se introduce la documentaci(n asociada al actor$ en la ventana rotulada como 2ocumentation.
Figura 2.1.(.4 'ocumentación de actores II 4i la documentaci(n asociada al actor es demasiado e:tensa para introducirla en la anterior ventana es posible a/adir inormaci(n e:terna al sistema en un arc!ivo$ para ello, <. 4e !ace doble clic el icono de un actor. =. 4e selecciona la pesta/a Files y se pulsa en el interior de la ventana con el bot(n derec!o de rat(n.
Figura 2.1.).5 'ocumentación de actores *or medio de +c,ero >. En el men+ conte:tual se selecciona Insert File. B. 4e abrirá un e:plorador que permitirá ane:ar un arc!ivo.
Figura 2.1.1-.5 'ocumentación de actores *or medio de +c,ero II 2.2 Casos de Uso
2e)nen el diálogo entre el actor y el sistema. 2e)nen los requisitos uncionales del 4istema. 2eben de ser intuitivos y sistemáticos. En '"$ un caso de uso se representa como un ovalo.
Figura 2.2 Icono de un Caso de Uso 2.2.1 Creación de Casos de Uso. <. 4e pulsa con el bot(n derec!o en la pesta/a del árbol marcada como 'se *ase 5ie6$ para que apare#ca visible el men+ conte:tual. =. 4e selecciona la opci(n 7e6 'se *ase. 'n nuevo *aso de 'so llamado 7e6 *ase se
a/adirá al árbol.
Figura 2.2.1 Creación de un Caso de Uso >. *on el *aso de uso aun seleccionado se introduce el nombre del caso de uso.
Figura 2.2.2 Creación de un Caso de Uso II 'na ve# creados los casos de uso del sistema se debería comentar su misi(n en el sistema y su prop(sito uncional. <. 4e !ace doble clic el icono del un actor. =. 4e selecciona la pesta/a de Aeneral y entrar la documentaci(n asociada al actor$ en la ventana rotulada como Documentation. *asos de uso de la Floristería virtual. <. antenimiento de tienda. *rear una nueva tienda. odi)car una e:istente. Corrar una tienda.
=. @acer un pedido *rear un nuevo usuario *rear un nuevo destinatario *on)rmar el pedido.
>. @ace el seguimiento del pedido ;btener nuevos pedidos *oncertar cita con el destinatario. Inormar de la entrega.
B. 8signar pedidos a 0iendas
Figura 2.2.3 "ista del rbol de los Casos de Uso *ada caso de uso se puede dividir a su ve# en una serie de casos de uso$ llamados sus fujos$ !asta completar la mínima acci(n que puede reali#ar el sistema. En el ejemplo que nos ocupa se pueden de)nir cuatro casos de uso básicos$ uno para cada actor$ a su ve# cada caso de uso se puede dividir a su ve# en m+ltiples casos. 8sociaci(n de documentos e:ternos en un caso de uso. 8l igual que en los actores es posible la asignaci(n de documentos e:ternos para documentar el uncionamiento de los casos de uso. 2.% Relación &ntre 'os Casos De Uso
2ebe e:istir una relaci(n entre el actor y el caso de uso. Este tipo de relaci(n es con recuencia reerenciada como asociaci(n. "a asociaci(n representa la comunicaci(n entre el actor y los casos de uso. En '" una asociaci(n se representa como una línea que une el actor con un caso de uso. 'na asociaci(n puede ser navegable en ambos sentidos$ aunque lo normal es que sea navegable en sentido del actor al caso de uso. El sentido de navegabilidad esta representado por una punta de fec!a en la relaci(n que uno el actor con el caso de uso. 4i la relaci(n es navegable en ambos sentidos no e:iste punta de fec!a en ning+n sentido. 2.( Dia"ramas De Casos De Uso
'na ve# obtenidos los elementos necesarios para la creaci(n de nuestro diagrama$ simplemente tenemos que seleccionar los elementos y arrastrarlos a la ventana del diagrama %situada a la derec!a& y colocarlos. 2.(.1 Creación de sociaciones de comunicaciones en Rational Rose.
<. 4e pulsa con el rat(n en la barra de !erramientas el bot(n marcado como una
fec!a =. 4e pulsa sobre el actor inicio de la relaci(n y se arrastra el rat(n !asta soltarlo sobre el caso de uso objeto de la relaci(n.
2.) 'os &stereotipos
'n estereotipo es una e:tensi(n del vocabulario de '" que permite crear nuevos bloques de construcci(n derivados a partir de los e:istentes$ pero especí)cos a un problema concreto. 2e esta manera se pueden de)nir nuevas clases a partir de las e:istentes$ pero con características propias de tal orma que a cada estereotipo puede proporcionar sus propias restricciones y notaciones. *ada estereotipo puede proporcionar su propio icono. "os estereotipos no son especí)cos de los casos de uso$ estos tambi1n se pueden aplicar a las clases y a las relaciones$ tanto a las relaciones entre clases$ como a las relaciones entre los actores y los casos de uso. Para modi)car los estereotipos <. 4e !ace doble clic sobre la relaci(n$ clase o caso de uso sobre al que se desea cambiar el estereotipo. =. En la pesta/a Aeneral del dialogo se selecciona el estereotipo deseado de la lista desplegable con nombre DEstereotype o se introduce un nuevo valor.
2.).1 *orrado de &lementos del Dia"rama
El bot(n suprimir tan s(lo elimina los elementos del diagrama$ no del proyecto en curso. Para eliminar un elemento del proyecto se deben seguir los siguientes pasos, <. 4e pulsa con el bot(n derec!o del rat(n sobre el elemento que se desea eliminar en el árbol de la ventana i#quierda. =. 4e selecciona Delete en el men+ conte:tual. >. Eliminar un elemento del árbol lo elimina de todos los diagramas donde se esta utili#ando$ est1n o no visible actualmente. "a combinaci(n de teclas D Ctrl+D elimina el elemento actualmente seleccionado. 2.).2 Comentarios
4i un elemento es utili#ado en varios diagramas$ la modi)caci(n de los parámetros de uno de ellos se verá refejado en todos$ independientemente del diagrama seleccionado actualmente.
Figura 2.5.2.1 "ista del 'iagrama de Casos de Uso
0enemos la posibilidad de a/adir notas con el )n de aclarar la estructura o la participaci(n de alg+n componente el diagrama para ello tendremos que seleccionar de la caja de !erramientas la nota$ introducir el te:to y colocarla donde sea necesario.
Figura 2.5.2.2 "ista del 'iagrama de Casos de Uso con nota aclaratoria.
% Creación de Clases %.1 ,ue es una clase 4e de)ne una clase como un conjunto de ;bjetos que comparte una estructura y
comportamiento com+n. En '" una clase se representa mediante un rectángulo dividido en tres compartimentos que contienen de arriba abajo las siguientes inormaciones, ?
El nombre de un estereotipo entre DGGHH$ en una línea por debajo el nombre de la clase por un icono que puede representar el estereotipo de la misma.
?
En un segundo compartimento los atributos de la clase seg+n la sinta:is, visibilidad nombre-atributo:epesión-tipo/valor-inicial 0cadena-propiedades
visibilidad es un símbolo que puede ser,
"a visibilidad puede abarcar un quinto símbolo JK que representa un atributo estático$ es decir un atributo cuyo valor es com+n a todas las instancias de la clase. Este atributo estará a continuaci(n de uno de los símbolos anteriormente comentados. "a representaci(n de la visibilidad de las operaciones y de los atributos en modo icono o te:to se modi)car activando la opci(n 5isibility as icons dentro de la pesta/a 7otaci(n del men+ 0ools3;ptions. 2espu1s de !acer esto$ las clases previamente dise/adas no cambiarán su visuali#aci(n$ para mostrar los atributos u operaciones con su nueva notaci(n$ actuali#ar el diagrama pulsando las opciones de men+ Format 8utosi#e8ll. e:presi(nLtipo representa un tipo de datos de)nido al que pertenece el atributo. "os tipos de datos tipos son int$ foat$ c!ar$... $ aunque tambi1n es posible de)nir como tipo de dato clases que se !ayan dise/ado previamente. valorLinicial corresponde al valor inicial que el atributo adquiere de orma automática al ser creado el objeto. cadenaLpropiedades corresponde a un conjunto de propiedades aplicables al atributo 3En el tercer compartimento se especi)can las operaciones de la clase seg+n la sinta:is, 5isibilidad nombreLoperaci(n %listaLparámetros&, e:presi(nLtipoLvalorLretorno M cadenaLpropiedades N visibilidad es similar a lo de)nido para los atributos. e:presi(nLtipoLvalorLretorno representa el tipo de dato del valor devuelto por la operaci(n. listaLparámetros es una secuencia de e:presiones$ separadas por comas$ con la siguientes sinta:is, nombreLparametro,e:presi(nLtipoOvalorLporLdeecto e:presi(nLtipo indica el tipo de dato al q ue pertenece el parámetro.
valorLporLdeecto corresponde al valor que se utili#ará en el caso de que la llamada a operaci(n se realice sin especi)car dic!o parámetro. cadenaLpropiedades corresponde a un conjunto de propiedades aplicables a la operaci(n.
Figura 3.1 /e*resentación de Unas clase %.1.1 Creación de una clase <. 4e pulsa con el bot(n derec!o en la pesta/a del árbol marcada como "ogical 5ie6$ para que apare#ca visible el men+ conte:tual.
=. 4e selecciona la opci(n 7e6 *lass. 'na nueva *lase llamada 7e6 *lass se a/adirá al árbol.
Figura 3.1.1 Creación de clases >. *on la clase todavía seleccionada$ se introduce el nombre correcto de la clase, 'na ve# creados las nuevas clases del sistema se debería comentar su misi(n en el sistema y su prop(sito uncional. <. 4e !ace un doble clic en el icono de la clase.
=. 4e selecciona la ventana de 2ocumentaci(n y introduce la documentaci(n asociada a la clase.
Figura 3.1.2 'ocumentación de clases %.1.2 adir tributos a una Clase
<. 4e pulsa con el bot(n derec!o en la clase a la que se quiere a/adir un nuevo atributo$ para que apare#ca visible el men+ conte:tual. =. 4e selecciona la opci(n 7e6 8ttribute. 'n nuevo atributo se a/adirá a la clase.
Figura 3.1.2.1 Inserción de atributos de clases >. *on el atributo todavía seleccionado$ se introduce el nombre correcto$ tipo de dado y valor inicial de acuerdo a lo e:plicado al comien#o de este capítulo.
B. Para modi)car la visibilidad$ se !ace doble clicQ sobre el icono del atributo y se cambia dentro de la pesta/a Aeneral la visibilidad del atributo$ marcando el bot(n que se encuentra dentro del cuadro E:port *ontrol. En esta misma pesta/a se puede cambiar el nombre$ el estereotipo$ el tipo de atributo$ el valor i nicial$ así como a/adir comentarios del signi)cado del atributo.
Figura 3.1.2.2 0odi+cación de la isibilidad <.
En la pesta/a 2etail se podrá modi)car si el atributo es contenido por valor o por reerencia$ así como si el atributo es estático o no.
'na manera más ácil pero más lenta de a/adir atributos es abriendo el dialogo de especi)caciones de la clase$ !aciendo doble clic sobre esta y pulsado sobre la pesta/a 8ttibutes. En esta pesta/a del dialogo se pueden a/adir todos los atributos necesarios así como asignar la visibilidad$ tipo de atributo y valor inicial de una manera más visual.
Figura 3.1.2.3 Aadir nueos atributos %.1.% adir 3peraciones a una clase
<. 4e pulsa con el bot(n derec!o sobre la clase a la que se quiere a/adir un a nueva ;peraci(n$ para que apare#ca visible el men+ conte:tual. =. 4e selecciona la opci(n 7e6 ;peration. 'na nueva operaci(n se a/adirá a la clase. >. 4e modi)ca el nombre de la operaci(n$ tipo de valor retornado$ atributos de entrada de parámetros y sus valores iniciales de acuerdo a lo e:plicado al comien#o de este capítulo. B. Para modi)car la visibilidad$ se !ace doble clicQ sobre de la operaci(n y se cambia dentro de la pesta/a Aeneral la visibilidad de la operaci(n$ marcando el bot(n que se encuentra dentro del cuadro E:port *ontrol. En esta misma pesta/a se puede cambiar el nombre$ el estereotipo$ el tipo de atributo retornado$ así como a/adir comentarios al uncionamiento de la operaci(n.
Figura 3.1.3.1 Aadir nueas o*eraciones R. En la pesta/a 2etail se podrán modi)car los atributos de entrada de la operaci(n$ sus tipos y valores iniciales. Para a/adir nuevos parámetros de entrada o eliminar los e:istentes, ? ? ?
4e pulsa con el bot(n derec!o sobre la ventana arguments. 4e selecciona Insert en el men+ cone:tual. 4e odi)ca el nombre del argumento por deecto SargnameS$ por el nombre deseado.
Figura 3.1.3.2 Argumentos de las o*eraciones. ?
4e seleccionan las especi)caciones del argumento y a!í podemos incluir el tipo de dato.
Figura 3.1.3.3 Argumentos de las o*eraciones $ti*o% ?
4e selecciona la columna 2eault y se introduce el valor de entrada por deecto.
%.2 Clases &speciales
E:isten dos tipos de clases$ una se de)ne como una e:tensi(n de concepto básico de clase y otra como una clase cuyos atributos y operaciones re+nen una propiedad especial. Estos tipos de clase son, *lase Plantilla o patr(n. *lase 'tilidad %.2.1 Clases 4lantilla 5Templates6
"as clases plantilla se basan en un principio de genericidad dentro de las distintas t1cnicas desarrollas en el campo de la ingeniería del sot6are y se plantea como una idea de parametri#ar el desarrollo de m(dulos reutili#ables. "a idea se basaba en la de)nici(n del modulo de sot6are de orma gen1rica de modo que la utili#aci(n del mismo en un caso concreto se reali#aría dando valores a los parámetros de)nidos a priori. Aeneralmente el uso más recuente de las clases plantilla se reali#an en la implementaci(n de las llamadas clases contenedoras. 'na clase contenedora tiene por )nalidad almacenar y permitir acceder a un conjunto$ normalmente !omog1neo de objetos bajo unas determinadas condiciones. "a )nalidad de la clase es por lo tanto independiente del objeto almacenado. "os ejemplos más típicos de este tipo de clases son las clases vector de Tava$ y vector de las 40" %4tardar 0emplate "ibrary& de *UU. 'na clase plantilla se representa en '" en base a la representaci(n de una clase normal modi)cada con un rectángulo situado en la esquina superior derec!a con líneas discontinua donde se indican lo parámetros de la clase separados por comas. Para crear una clase plantilla %0emplate & se deben seguir los siguientes pasos, <. 4e pulsa con el bot(n derec!o en la pesta/a del árbol marcada como "ogical 5ie6$ para que apare#ca visible el men+ conte:tual. =. 4e selecciona la opci(n 7e6 *lass. 'na nueva *lase se a/adirá al árbol. >. 4e !ace un doble clic sobre la nueva clase$ o se pulsa con el bot(n derec!o y se selecciona la opci(n ;pen 4peci)cacion. B. 4e selecciona la Pesta/a Aeneral. R. 4e selecciona en la lista desplegable 0ype el tipo de clase Parametri#ed*lass y se validan los cambios pulsado el bot(n 8pply
Figura 3.2.1 Clases lantilla V. 4e selecciona la pesta/a 2etail %detalle&. . 4e pulsa con el bot(n derec!o en el campo de Formal 8rguments %argumentos ormales& para desplegar el men+. X. 4e selecciona el men+ Insert %insertar&$ que insertará un nuevo argumento con un nombre de argname y un tipo de argtype. Y. *on el argname seleccionado$ se introduce el nombre del argumento.
Figura 3.2.2 Argumentos. <<. 4e repiten los pasos del al
Figura >.=.> -epresentaci(n de una clase Plantilla 4e pueden crear clases parametri#ables directamente desde la barra de !erramientas. 4i este icono no se muestra en la barra de @erramientas$ se puede a/adir con la opci(n *ustomi#e que aparece al pulsar con el bot(n derec!o de sobre la barra de !erramientas$ para su personali#aci(n.
Figura 3.2.4 ersonaliación de la barra de ,erramientas.
%.2.2 Clases Utilidad
'na clase utilidad aglutina un conjunto de atributos y operaciones que no son propios de una clase especi)ca y son de de)nici(n global. 4eg+n la especi)caci(n de '" una clase utilidad se representa mediante el símbolo de una clase normal con un estereotipo GGutilityHH -ational -ose suministra un símbolo especi)co !eredado de la notaci(n ;0$ en el que se representa mediante una clase con sombra.
Figura 3.2.2.1 /e*resentación de una clase Utilidad
Para crear una clase utilidad$ se deben seguir l os siguientes pasos, <. 4e pulsa con el bot(n derec!o en la pesta/a del árbol marcada como "ogical 5ie6$ para que apare#ca visible el men+ conte:tual. =. 4e selecciona la opci(n 7e6 *lass. 'na nueva *lase se a/adirá al árbol. >. 4e !ace doble clic sobre la nueva clase$ o pulsar con le bot(n derec!o y seleccionar la opci(n ;pen 4peci)cacion. B. 4e selecciona la Pesta/a Aeneral. R. 4e selecciona en la lista desplegable 0ype el tipo de clase *lass'tility.
Figura 3.2.2.2 /e*resentación de una clase Utilidad II V. 4e pulsa el bot(n ;[ para cerrar la 4peci)cation %Especi)caci(n&. 0enemos la oportunidad de crear las *lases 'tilidad directamente$ !aciendo clic con el bot(n derec!o del rat(n en "ogical 5ie6 33H7e6 33H*lass 'tility
Figura 3.2.2.3 /e*resentación de una clase Utilidad III %.% 'os 4auetes
4i un sistema contiene s(lo unas pocas clases$ estas se pueden manejar ácilmente. "a mayoría de los sistemas están compuestos de muc!as clases$ y se necesita un mecanismo para agruparlas y acilitar su uso$ mantenimiento reutili#aci(n. 8quí es donde se usa el concepto de paquete. 'n paquete en la vista l(gica %"ogical 5ie6& de un modelo es una colecci(n de paquetes yo clases relacionados. 'n paquete se crea por el agrupamiento de clases u otros paquetes. 'n paquete se puede ver desde el nivel más alto del modelo o se puede entrar en 1l para observar en más detalle su contenido. *ada paquete contiene una interace que es i mplementado por sus clases p+blicas. Estas clases$ se encargan de la comunicaci(n con los otros paquetes. El resto de las clases de un paquete son clases de implementaci(n y generalmente privadas$ por lo que no se comunican con las clases de otros paquetes. 4i el sistema es complejo$ los paquetes se crearan en la Fase de implementaci(n para acilitar el desarrollo. Para sistemas más simples$ las clases que se encuentran en el análisis se suelen agrupar en un paquete. En los procesos de análisis y dise/o$ el concepto de un paquete se usa para agrupar las clases que son necesarias para llevar a cabo las decisiones arquitect(nicas !ec!as en el sistema. En el '"$ los paquetes son representados como carpetas %Folders&.
Figura 3.3 /e*resentación de una clase Utilidad %.%.1 Creación de pauetes
<. 4e pulsar con el bot(n derec!o en el árbol de la ventana i#quierda. =. En el men+ emergente se selecciona 7e6 PacQage %nuevo paquete&.
Figura 3.3.1 /e*resentación de una clase Utilidad $auete% >. ientras el paquete está todavía seleccionado$ se introduce el nombre del paquete. 8l introducir el nuevo paquete se deberían recolocar las clases previamente creadas en el modelo. %.%.2 Recolocado de Clases
<. 4e pulsa con el bot(n derec!o sobre la clase a recolocar. =. 4e arrastra la clase al paquete deseado. >. 4e repiten los pasos para cada una de las clases que se desea recolocar. %.( Dia"ramas de clases
4eg+n vamos a/adiendo clases al modelo$ la presentaci(n de las clases no es su)ciente$ debido a que necesitamos tener una visi(n global de todas ellas y de sus relaciones entre
si. "os diagramas de clases se crean para tener una imagen de algunas o todas las clases del modelo. El diagrama de clases principal en la vista l(gica del modelo es típicamente un dibujo con los paquetes del sistema. *ada paquete contendrá sus diagramas de clases. El cual tambi1n mostrará las clases del sistema. %.(.1 Creación de un dia"rama de Clases
<. Para crear el diagrama principal del sistema$ se pulsa sobre el símbolo nombrado como ain dentro del la carpeta "ogical 5ie6 en el árbol de la ventana i#quierda. =. 4e pulsa sobre una de las clases previamente creadas y se arrastra a la ventana derec!a. >. 4e repite este +ltimo paso para todas las clases. 'na ve# abierta la ventana del diagrama de *lases es posible a/adir nuevas clases directamente en la ventana$ a trav1s de la b arra de !erramientas.
Puntero de rat(n normal$ permite la selecci(n de los elementos ya e:istentes en el diagrama de casos de uso.
8/ade un te:to o etiqueta al diagrama de *lases.
8/ade una nota de te:to al diagrama de clases. "a nota puede estar asociada al diagrama o a un elemento en particular.
Establece una relaci(n entre una nota de te:to y un elemento. "a nota y el elemento con el que se establece la relaci(n deben estar previamente en el diagrama.
8/ade una clase de tipo interace al diagrama.
8/ade un clase al diagrama.
8/ade una asociaci(n unidireccional entre dos clases.
Establece una asociaci(n entre una relaci(n y una clase %por lo que crea una clase relaci(n&.
8/ade un paquete al diagrama. "os paquetes son agrupaciones de objetos$ se pueden de)nir paquete de casos de uso$ de clases de componentes$ etc.
Establece una relaci(n o dependencia entre paquetes.
Establece una generali#aci(n entre dos clases.
%.) Relaciones entre clases
2el mismo modo que los objetos colaboran entre si a trav1s de una cone:i(n establecida en las relaciones de enlace o agregaci(n podemos establecer relaciones entras las clases que nos permitan de)nir un jerarquía dentro del modelo. En '" se !an establecido los siguientes tres tipos básicos de relaciones entre clases, 8sociaci(n. @erencia o Aenerali#aci(n. 2ependencia. Casados en estos tres tipos básicos se derivan dos mas, 8gregaci(n$ es una especiali#aci(n de la relaci(n de asociaci(n. Instanciaci(n es una especiali#aci(n de la relaci(n de dependencia. %.).1 Relación de asociación
"a relaci(n de asociaci(n establece la e:istencia de una dependencia ente dos clases sin establecer una direccionabilidad en la misma. Aeneralmente se produce una cierta dualidad en la relaci(n. 4upongamos que nuestra empresa en la encargada de suministrar las fores a todas la foristerías de la cadena$ por lo tanto cada ve# que se !ace un pedido$ podemos establecer una relaci(n con el nombre de 4uministro. 2esde el punto de vista del suministrador la foristería tiene el rol de cliente$ mientras que desde el punto de vista de la foristería el suministrador tiene el papel de proveedor o servidor. En base a esta dualidad entre los elementos de una asociaci(n se pueden nombrar. "a relaci(n en sí.
"os e:tremos de la asociaci(n$ lo que se denomina papel o rol$ cada e:tremo tiene un rol. "a importancia de la relaci(n en una asociaci(n lleva incluso a crear una clase asociada lo que se denomina una clase asociaci(n$ nuestro ejemplo se puede crear una clase asociaci(n que reuniera el conjunto de acturas pendientes de pago por una foristería. 5olviendo a los e:tremos de la asociaci(n es necesario que de)namos un nuevo concepto$ la cardinalidad de la asociaci(n. Esta parte de la orientaci(n a objetos a sido !eredada del modelo entidad relaci(n. @asta a!ora !emos !ablado de asociaciones uno a uno$ es decir por cada objeto de un e:tremo esta asociado a uno del otro. Pero pueden e:istir combinaciones básicas, 'no a uno 'no a muc!os uc!os a muc!os 5olviendo al ejemplo anterior el proveedor puede suministrar fores a muc!as foristerías. Por lo que se establece una relaci(n de uno a muc!os. 4i en el sistema e:istiesen varios suministradores$ estos podrían tambi1n suministrar fores a todas las foristerías$ por lo que estas podrían tener varios suministradores$ en consecuencia se establecería una relaci(n de muc!os a muc!os entre la clase foristería y la clase suministrador. 8 parte de la cardinalidad o multiplicidad del rol de una asociaci(n se puede completar la inormaci(n asociada al rol con inormaci(n adicional$ estas son condiciones o restricciones adicionales como por ejemplo en una asociaci(n de uno a muc!os podemos decir si el conjunto de objetos son ordenados o no. *uando la relaci(n de asociaci(n la tenemos determinada de una orma unívoca un valor a uno o a un conjunto de valores del e:tremo de cardinalidad mayor que uno podemos !ablar de una relaci(n cuali)cada. Indicar que aunque las relaciones de asociaci(n se !an planteado como relaciones e:istentes entre clases de distintas tambi1n podríamos establecer relaciones de una clase consigo misma. Estas son relaciones recursivas. "a clase persona establece relaciones recursivas para de)nir relaciones de parentesco$ relaciones de tipo$ !ermandad$ paternidad$ etc. %.).2 Creación de una relación de asociación
<. 4e pulsa sobre el bot(n de relaci(n de asociaci(n en la barrar de !erramientas. =. 4e pulsa sobre la clase origen de la relaci(n. >. 4e arrastra el rat(n y se suelta sobre la clase destino de la asociaci(n
Figura 3.2 /e*resentación de una Asociación %.).% Creación de Una relación de "re"ación
'na relaci(n de agregaci(n es una relaci(n cuali)cada en la cual uno de los objetos es parte integrante de otro objeto y sin el cual este no puede e:istir. 4upongamos que nuestro negocio es de reparaci(n de ve!ículos$ nosotros al reerirnos al objeto motor q ue siempre estará integrado en un coc!e y nunca podrá e:istir un objeto motor sin su objeto contenedor$ en este caso un coc!e. 4i por el contrario$ u1ramos una abrica de coc!es$ todas las pie#as del coc!e serian objetos independientes que pueden combinarse para ormar otro objeto$ pero que pueden e:istir libremente$ cuando están en el almac1n en espera de ser montadas. En '" la relaci(n de agregaci(n es representada como un diamante en el lado de la clase contenedora. Para crear una clase de agregaci(n se deben seguir los siguientes pasos. <. 4e pulsa con el bot(n derec!o del rat(n sobre una relaci(n entre clases$ previamente e:istente en el e:tremo más pr(:imo a la clase donde se desea insertar el diamante %la clase contenedora&. =. 4e selecciona 8gragate en el men+ conte:tual. 'n re)namiento de la asociaci(n de agregaci(n$ se re)ere a si el objeto esta contenido por valor o por reerencia. 4i esta contenido por valor$ implica una propiedad en e:clusiva del objeto contenedor$ mientras que si es p or reerencia$ el objeto contenido puede estar compartido por varias clases contenedores. 'na relaci(n de agregaci(n por valor se representa con el diamante relleno$ mientras que si es por reerencia$ el diamante no estará relleno.
Figura 3.5.3 /e*resentación de una Agregación *or reerencia %.).( adir un nombre a una relación
<. 4e !ace doble clic sobre la relaci(n a la que se desea asignar un nombre$ o se pulsa con el bot(n derec!o sobre ella y se selecciona la opci(n ;pen 4peci)cation. =. 4e asigna el nombre de la relaci(n en la casilla 7ame. %.).) Creación de nombres de roles en la relación.
<. Pulsar con el bot(n derec!o rat(n sobre una relaci(n entre clases$ previamente e:istente en el e:tremo de la clase donde se desea insertar el rol. =. 4e selecciona -ol 7ame. >. Esto creará un nombre de rol en el e:tremo de la relaci(n y el cursor permanecerá parpadeando en su interior. B. *on el nombre de la relaci(n todavía seleccionado introducir el nombre correcto de la relaci(n. %.).8 9ndicadores de ultiplicidad
8unque la multiplicidad esta de)nida para las clases$ está de)ne el n+mero de objetos que participan en una relaci(n. "a cardinalidad o multiplicidad de una relaci(n un '" aparece en los e:tremos de la relaci(n con la siguiente notaci(n, "imite inerior .. "imite superior. Por ejemplo <..V$Z..V$ <.. 5alor +nico$ por ejemplo$ Z$= Para indicar la multiplicidad D n D es decir muc!os$ se puede sustituir tanto el valor +nico como el límite superior por un asterisco. <. 4e pulsa con el bot(n derec!o del rat(n sobre una relaci(n entre clases$ previamente e:istente$ en el e:tremo de la clase donde se desea a/adir la multiplicidad. =. 4e selecciona ultiplicity$ en el nuevo men+ fotante se indica la multiplicidad. >. 4e repiten los pasos en el otro e:tremo de la relaci(n.
Figura 3.5.!. 6ombre7 roles 8 Cardinalidad de la /elación %.).7 Relaciones Recursivas
<. 4e selecciona el icono de relaci(n de asociaci(n en la barra de !erramientas.
=. 4e pulsa sobre la clase a la que se va a/adir la relaci(n recursiva y se arrastra el rat(n liberándolo uera de la clase. >. 4e vuelve a pulsar con el rat(n en el interior de la clase donde se desea crear la relaci(n recursiva.
Figura 3.5.& Cardinalidad 8 /elación /ecursia %.).;
'na relaci(n recursiva es el ejemplo mas típico de una lista de objetos$ de tal manera que el primer objeto tendrá una reerencia al segundo y este al tercero y así sucesivamente !asta el )nal de la lista. "as listas suelen ser simplemente enla#adas o doblemente enla#adas$ de manera que la navegabilidad se p ueda reali#ar en uno o en otro sentido. "a navegabilidad se representa en '" como una punta de fec!a en sentido de la clase que pose la reerencia a la otra. 4i las dos clases poseen una reerencia entre si$ en ve# de aparecer una punta de fec!a en cada e:tremo$ como se podía esperar$ ning+n e:tremo de la relaci(n mostrará punta de fec!a. Para cambiar la navegabilidad a una relaci(n se debe seguir la siguiente secuencia de pasos, <. 4e pulsa con el bot(n derec!o del rat(n sobre una relaci(n entre clases$ previamente e:istente en el e:tremo de la clase donde se desea modi)car la navegabilidad. =. Pulsar sobre 7avigable. 4i la relaci(n es 7avegable estará marcada por el símbolo\$ en caso contrario no aparecerá ning+n símbolo&. %.).= Relaciones cualifcadas
"as relaciones cuali)cadas son aquellas que utili#an una clave de b+squeda del objeto en el lado de la multiplicidad Dmuc!os de una asociaci(n, El objeto uente junto con su valor cuali)cador se relacionan con s(lo un objeto destino. %; conjunto de objetos destino&.
4upongamos que un objeto posee una relaci(n a un conjunto de objetos de otro tipo. 4i las b+squedas en este conjunto de objetos se !acen siempre por un valor concreto esto implica que se debe recorrer el conjunto de objetos !asta encontrar el valor buscado. 4i la relaci(n estuviera cuali)cada por este valor$ con tener la clave de b+squeda nos permitiría acceder al objeto. *omo ejemplo si tenemos un objeto 0ienda$ que posee una serie de clientes$ estos pueden estar cuali)cados por su 27I$ de tal manera que con conocer su clave %27I&$ nos permite acceder al resto de sus datos %2omicilio$ nombre$ apellidos$ etc.&. Estas clases están implementadas en *UU por las clases map y multimap$ mientras en Tava por la clase @as0able. 4i la relaci(n esta cuali)cada$ la clave o claves aparecen encerradas en un rectángulo en el e:tremo que le corresponda. Para crear una relaci(n cuali)cada. <. 4e pulsa con el bot(n derec!o del rat(n sobre una relaci(n entre clases$ previamente e:istente. =. 4e selecciona 7e6 [ey]uali)er. >. 4e modi)ca en el men+ D[ey ]uali)er 4peci)cation or name el parámetro 7ame$ introduciendo el nombre del parámetro. B. 4e modi)ca el men+ D[ey ]uali)er 4peci)cation or name el parámetro 0ype indicando el tipo del parámetro contenido. R. 4e pulsa sobre el Cot(n ;[ para con)rma los cambios
Figura 3.5.) /elación Cuali+cada %.).1> Clases sociación
"as clases asociaci(n permiten modelar una asociaci(n como una clase que de)ne las propiedades de la asociaci(n. "a clase asociaci(n de)ne atributos descriptivos de la asociaci(n de las clases que no pueden asignarse a una de las clases de orma aislada. -epresenta con claridad el concepto de instancia de asociaci(n %Enlace&. Para crear una clase asociaci(n se deben seguir los siguientes pasos, <. 4e a/ade al diagrama de clases la nueva clase asociaci(n$ como una clase normal.
=. 4e selecciona en la barra de !erramientas el bot(n con una línea s(lida !ori#ontal y una línea en diagonal a tra#as >. 4e pulsa con el bot(n derec!o del rat(n sobre una relaci(n entre clases$ previamente e:istente. B. 4e arrastra el puntero del rat(n y se libera sobre la clase relaci(n.
Figura 3.5.1- Creación de una Clase Asociación %.).11 ?enerali@ación 5Aerencia6
"a generali#aci(n es relaci(n entre un elemento general %"lamado superclase o *lase Padre& y un caso mas especi)co de este elemento %"lamado clase !ijo&. "a generali#aci(n es con recuencia llamada D@erencia. "a generali#aci(n signi)ca que los objetos !ijos se pueden emplear en cualquier lugar donde se pueda emplear el padre$ pero no a la inversa$ ya que los objetos !ijos orecen más inormaci(n que los padres. "os objetos !ijos !eredan los atributos y m1todos de su clase padre$ a la que a/ade los propios$ por eso se puede utili#ar en el lugar de su clase padre pero no a la inversa. 'na operaci(n de una clase !ija con el mismo nombre que en la clase padre rede)ne la operaci(n del padre$ esto se conoce como polimor)smo. Para crear una relaci(n de asociaci(n se deben seguir los siguientes pasos, <. 4e pulsa con el rat(n sobre el bot(n que representa un fec!a con la punta con un triángulo cerrado. =. 4e pulsa sobre la clase que es un caso particular de la clase mas general. >. 4e arrastra el rat(n y se suelta sobre la clase general. Para !acer que dos clases !ereden de una misma clase padre y s(lo se muestre una línea de relaci(n !acia la clase padre$ %como en el siguiente dibujo& se debe crear primero una
relaci(n y en la segunda relaci(n se debe liberar el rat(n dentro del triángulo de la línea que de)ne la generali#aci(n.
Figura 3.5.11 /e*resentación de una generaliación
( Dia"ramas (.1 Dia"ramas De Becuencia
'n diagrama de secuencia muestra interacciones de objetos dispuestos en secuencia de tiempo. 4e representan los objetos y las clases involucradas en el escenario y la secuencia de mensajes intercambiados entre los objetos necesarios para desarrollar la uncionalidad descrita en los caso de uso. "os diagramas de secuencia están típicamente asociados con los casos de uso en el dise/o del sistema a desarrollar. En el '"$ un objeto en un diagrama de secuencia se dibuja como un rectángulo que contiene el nombre del objeto$ subrayado. 'n objeto se puede nombrar en uno de estos tres modos, el nombre del objeto$ el nombre del objeto y su clase o s(lo el nombre de la clase %objeto an(nimo&. 4e pueden especi)car los nombres de objetos %por ejemplo$ los nombres de las fores$ -osa$ 0ulipán$ etc.& o pueden ser generales %por ejemplo$ una for sin determinar&. "o normal es que los objetos an(nimos se usen para representar un objeto de la clase a la que pertenecen.
*ada objeto tiene su línea de tiempo representada por una línea tra#ada debajo del objeto. "os mensajes entre objetos se representan por fec!as desde el objeto cliente %remitente del mensaje& al objetos servidor%destinatario del mensaje&. (.1.1 Creación de un dia"rama de secuencia
<. 4e pulsa con el bot(n derec!o del rat(n sobre el caso de uso al que se quiere a/adir el diagrama de secuencia para desplegar el men+ conte:tual. =. 4e selecciona 7e6, 4equence 2iagram %diagrama nueva secuencia&. 'n nuevo diagrama secuencia se a/adirá árbol. >. *on el nuevo diagrama de secuencia seleccionado$ se introduce el nombre del diagrama de secuencia.
Figura 4.1.1Creación de un diagrama de Secuencia (.1.2 Creación de obetos mensaes en el dia"rama de secuencia
<.4e !ace doble clic en el icono del diagrama de secuencia del árbol de la ventana i#quierda para abrir el diagrama. =. 4e pulsa sobre el icono de un nuevo objeto en la barra de !erramientas. >. 4e pulsa sobre en la ventana el diagrama para colocar el nuevo objeto. B. ientras el objeto está todavía seleccionado se introduce el nombre del objeto.
R. 4e repiten los pasos del = al B para tantos objetos como tenga el diagrama de secuencia. V. 4e pulsa en la barra de @erramientas para seleccionar el icono de mensaje de objeto %bot(n marcado como una fec!a&. . Pulsa sobre la línea de vida del objeto que envía el mensaje y arrastra la línea del mensaje al de actor o objeto que reciba el mensaje. X. ientras la línea de mensaje está todavía seleccionada$ introduce el nombre del mensaje. Y. -epite los pasos al Y para cada mensaje del diagrama. (.1.% si"nación obetos en un dia"rama de secuencia a las clases
<. Pulsa para seleccionar la clase a la que pertenece el objeto en el árbol. =. 4e arrastra la clase dentro del objeto en el diagrama de secuencia. -ose a/adirá el nombre de la clase precedido por D, D al nombre del objeto. 4i el objeto no tiene nombre$ el nombre será es D,nombreLclase.
Figura 4.1.3 /e*resentación de un 'iagrama de Secuencia (.1.( Dia"ramas De Becuencias Clases 9nterEa@
"as clases de intera# se a/aden a los diagramas de secuencia para mostrar la interacci(n con el usuario o con otro sistema. En las primeras ases del análisis$ el
prop(sito de mostrar las clases de intera# en un diagrama de secuencia es para capturar y documentar los requerimientos de las interaces$ no para mostrar como la interace se va a implementar. "os mensajes desde el actor a la clase intera# junto con su inormaci(n a intercambiar dependerá de la orma de implementaci(n elegida para el desarrollo. (.1.) Compleidad Dia"ramas De Becuencia
"os diagramas de secuencia deben de ser simples$ es más ácil ver los objetos$ las interacciones y los mensajes entre objetos y su uncionalidad obtenida de los casos de uso. En los diagrama de secuencia no se suele representar la l(gica condicional %toda la l(gica i$ t!en$ else que e:iste en el mundo real&. 4i la l(gica es simple$ %que represente s(lo unos pocos mensajes& $ se puede a/adir al diagrama mediante notas o aclaraciones para inormar de las elecciones !ec!as$ si por el contrario la l(gica es muy complicada o involucra a muc!os mensajes$ se deben dibujar varios diagramas separados para cada una de las condiciones$ de orma que los diagramas sigan siendo simples. (.2 Dia"ramas De Colaboración
'n diagrama de colaboraci(n es un camino alternativo para mostrar un escenario de un caso de uso. Este tipo de diagrama muestra las interacciones de objetos organi#adas alrededor de otros objetos y sus enlaces entre sí. 'n diagrama de colaboraci(n contiene, ;bjetos dibujados como rectángulos. Enlaces entre objetos mostrados como líneas de cone:i(n de los objetos unidos. ensajes mostrados como te:to y una fec!a que apunta desde el cliente al suministrador. (.2.1 Creación de dia"ramas de colaboración desde los dia"ramas de secuencia
<. 4e !ace doble clic en el diagrama de secuencia para abrir la ventana. =. 4e elige pulsa la ;pci(n de enu Cro6se *reate *ollaboration 2iagram %crear diagrama de colaboraci(n& o se presiona FR. >. Esto creará un nuevo diagrama de colaboraci(n con los objetos e:istentes en el diagrama de secuencia. 4e colocan los objetos en el diagrama. B. 4e a/aden nuevos objetos y mensajes en el diagrama$ tantos como sean necesarios. "os diagramas de colaboraci(n se pueden crear tambi1n desde el principio. En este caso$ el diagrama de secuencia se !a creado a partir del diagrama de colaboraci(n. Para crear un diagrama de colaboraci(n desde el principio, <. 4e pulsa con el bot(n derec!o del rat(n sobre el *aso de uso al que se quiera asociar el diagrama de colaboraci(n para que se abra el men+ conte:tual
=. 4e selecciona la opci(n 7e6 *ollaboration 2iagram %crear diagrama de colaboraci(n &. >. 4e !ace doble clic en el diagrama colaboraci(n para abrir la ventana. B. 4e a/aden nuevos objetos y mensajes en el diagrama$ tantos como sean necesarios.
Figura 4.2.1 /e*resentación de un 'iagrama de Colaboración (.% 4or uG Ha dos tipos de Dia"ramas DiEerentesI
"os diagramas de secuencia dan de un vista#o la secuencia de acciones que transcurre en el tiempo$ qu1 pasa primero$ que pasa despu1s. "os clientes pueden leer ácilmente y entender este tipo de diagramas. "os diagramas de colaboraci(n tienden a dar una visi(n mayor de la colaboraci(n entre los objetos$ los enlaces y relaciones entre estos. (.( Comportamiento Din!mico 5Dia"ramas De &stado6
"os diagramas de casos de uso describen el comportamiento de los sistemas esto es$ la interacci(n entre objetos en el sistema. 8lgunas veces es necesario representar el comportamiento en el interior del objeto. 'n diagrama de estados muestra los estados de
un objeto sencillo$ los eventos o mensajes que causan una transici(n desde un estado a otro$ y las acciones que resultan de un cambio de estado. "os diagramas de estados no se deben crear para cada clase del sistema$ s(lo se deben crear para las clases con un comportamiento dinámico signi)cativo. "os diagramas de interacci(n o de secuencia muestran el comportamiento dinámico del sistema$ los diagramas de estado el comportamiento dinámico de una sola clase. (.(.1 Creación de dia"ramas de &stados
<. 4e pulsa con el bot(n derec!o sobre la clase a la que se desea agregar el diagrama de estados y despliega el men+ conte:tual. =. 4e selecciona el men+ 4tatec!ar 2iagram %diagrama de estado&. Esto creará automáticamente y abrirá el diagrama de estados. (.(.2 &stados
'n estado es una condici(n durante la vida de un objeto cuando satisace alguna condici(n$ desarrolla alguna acci(n$ o espera para un evento. El estado de un objeto debería estar caracteri#ado por el valor de uno o más de los atributos de la clase. 8dicionalmente$ un estado de un objeto puede ser caracteri#ado por la e:istencia de un enlace a otro objeto. 8sí$ los estados de un objeto se deben buscar mediante el e:amen de los atributos y enlaces de)nidos para el objeto.
Figura 4.2.2 /e*resentación de un 9stado 'n diagrama de transici(n de estados abarca todos los mensajes que un objeto puede enviar y recibir. El intervalo entre dos mensajes enviados por un objeto representa un estado. Por esto$ los diagramas de secuencia se deben estudiar para descubrir los estados en los que puede estar un objeto. (.(.2.1 Creación de estados
<. 4e pulsa para seleccionar un estado de la barra de !erramientas =. 4e pulsa sobre el diagrama de estados donde se desea colocar el estado. >. *on el estado todavía seleccionado$ se introduce el nombre del estado. (.(.2.2 Transiciones De &stado
'na transici(n de estado representa un cambio desde un estado original a un estado posterior %este podría ser el mismo que el estado original&. "as transiciones de estado suelen ser provocadas por 8cciones. @ay dos maneras para que se produ#ca una transici(n de estado automático y no automático. 'na transici(n de estado automática ocurre cuando la actividad de un estado se completa % El evento no tiene un nombre asociado a la transici(n de estado&. 'na transici(n de estado no automática es causada por la llegada de un evento %desde otro objeto o desde uera del sistema&. 8mbos tipos de transiciones de estado se consideran que transcurren en un tiempo cero y no se pueden interrumpir %;peraci(n 8t(mica&. 'na transici(n de estado se representa por una fec!a que apunta desde el estado original al estado sucesor. %.1.2 Creación de transiciones de estado
<. 4e pulsa con el rat(n sobre la barra de !erramientas para seleccionar el icono de transici(n % un fec!a&. =. 4e pulsa con el rat(n sobre el estado origen de la transici(n. >. 8rrastra el rat(n !asta el estado )nal de la transici(n. B. 4i la transici(n de estado se produce por la llegada de un evento$ se introduce el nombre del evento mientras la fec!a de transici(n de estado está todavía seleccionada. (.(.2.% &stados &speciales
@ay dos tipos de estados especiales que se pueden a/adir a un diagrama de transici(n de estado. El primero es un estado de Inicio %start state&. *ada diagrama debe tener uno y s(lo un estado de Inicio que debe ser un estado estable cuando se crea el objeto. "a notaci(n '" para un estado de inicio es un circulo peque/o relleno negro. El segundo estado especial es un estado de parada %stop state&. "a notaci(n '" para u n estado de parada es un ojo de buey.
Figura 4.4.2.3 /e*resentación de los 9stados de Inicio 8 arada (.(.2.( Creación estados de inicio 5start6 parada 5Btop6
<. 4e pulsa con el rat(n sobre el icono start %inicio& de la barra de !erramientas. =. 4e pulsa con el rat(n sobre diagrama estados para dibujar el icono start. >. 4e pulsa con el rat(n sobre el icono de transici(n de estados de las !erramientas %'na fec!a&. B. Pulsa en el icono start %inicio& y arrastra la fec!a al estado deseado.
R. 4e repite la misma secuencia de pasos con el icono stop. %En este caso el es un estado )nal$ por lo que será un estado destino de una transici(n&
Figura 4.4.2.4 /e*resentación del 'iagrama de 9stados de un edido (.(.% Detalles De 'a Transición De &stados
'na transici(n de estado podría tener una acci(n yo una condici(n de aviso asociada a ella y sería tambi1n un disparador o evento. 'na acci(n es el comportamiento que se produce cuando sucede un cambio de estado. 'n evento es un mensaje que se envía a otro objeto en el sistema. 'na condici(n de alerta es una e:presi(n booleana de valores atribuidos que permite la transici(n de estado s(lo si la condici(n es cierta. 8mbas$ acciones y alertas son comportamientos del objeto y se suelen convertir en operaciones. 8 menudo estas operaciones son privadas %s(lo se pueden usar p or el propio objeto&. Para introducir detalles a una transici(n de estado se deben seguir los siguientes pasos, <. 4e pulsa con el bot(n derec!o sobre la fec!a de transici(n de estado para desplegar el men+ fotante.