Академический Документы
Профессиональный Документы
Культура Документы
2.2.5 JAVAIDL17
3 XML25
4.2 WMLSCRIPT28
7 E-BUSSINESS34
8.2 UML37
8.2.1 DIAGRAMAS.38
1 Introducción.
En este documento se pretende dar una visión de las tecnologías que dominan el mundo
de Internet.
No se pretende dar una descripción detallada de todas las tecnologías existentes, pero se
intenta ir mas allá de la mera enumeración de unas siglas y la explicación de sus
significados.
También se dará una impresión de hacia donde se dirige internet y que evolución
seguirá en los próximos meses.
En este apartado explicamos las tecnologias que se utilizan en los servidores de Internet.
Podemos encontrar servidores WEB con paginas HTML, CGI, Servles, Paginas ASP,
JSP, Servidores de aplicaciones con EJBs, etc...
Son los recién llegados, aunque ya hace unos años que existen no es hasta hace poco
mas de un año que la estabilidad de sus versiones ha llegado a niveles aceptables. Son
servidores de alto rendimiento que estan pensados para dar servicio a WEBS con
grandes necesidades. Entre ellos nos encontramos a WEBS que tengan una gran
necesidad transaccional, pocas visitas pero muchas operaciones, y WEBS con necesidad
de servir un gran número de paginas.
Product
Description,
Special
features (See Servlet
Manufacturer Product(s) Legend Key) EJB API JSP
JRun Server J2EE Server,1.1 2.2 1.1
Allaire JMS, Servlet-
JSP Web Server
ATG Dynamo J2EE Server,1.0 2.2 1.1
Application Server Servlet-JSP
Web Server
Weblogic J2EE Server,2.0 2.2 1.1
BEA Systems Application ServerJMS, WAP/WML
Weblogic
Enterprise Server
Bluestone Total E-Server J2EE Server 1.0 2.2 1.1
WebSphere J2EE Server,1.0 2.1 1.0
IBM Application Server WAP/WML, JMS
Inprise Inprise ApplicationJ2EE Server 1.1 2.1 1.0
Server
Oracle 8i iASJ2EE Server 1.0 2.2 1.1
Oracle Oracle 8i ORDBMS
iPlanet ApplicationJ2EE Server, 2.2 1.1
1.1
Sun Server WAP/WML
Pero cuales son los servicios que nos ofrecen los servidores de aplicaciones. Entre los
mas importantes se encuentran:
JSP
JTA
JavaIDL
JavaMail
JNDI
EJB
JMS
Servlets
JDBC
SSL
HTTP
Muchos de estos standars se engloban dentro del J2EE, que esta basado en el Java 2
Standard Edition.
2.2 J2EE El nuevo standard JAVA.
HTTP. Los componentes, como servlets y Java Server Pages, del servidor
deben ser accesibles vía http.
HTTPS. También debe soportar acceso mediante Secure Socket Layer.
JavaIDL. Para la conexión con objetos CORBA mediante JavaIDL ORB.
JDBC
Java Mail. Provee de un API independiente para realizar aplicaciones con
acceso a mail.
Estos son los servicios obligatorios, pero hay otros que son recomendables, y que no
todos los servidores de aplicaciones compatibles con J2EE los cumplen.
Java Message Services (JMS). Provee de un API standard para el manejo de
colas y de comunicación publish and suscribe.
2.2.1 Enterprise Java Beans (EJB).
Los EJB son como un middelware entre la parte cliente y la parte servidor de Internet.
En la parte cliente tenemos multitud de clientes diferentes, PDAs, PCs, Moviles, NCs, y
en la parte servidora existe aun una mayor oferta. Multitud de constructores de software
nos ofrecen sus productos para que utilicemos, existen servidores en diferentes sistemas
operativos, y las bases de datos pueden estar en equipos tan diferentes como un PC o un
HOST 3270 de IBM. Los EJB nos dan la posibilidad de crear la lógica de negocio como
componentes reusables, y poderlos usar en cualquier tipo de servidor que soporte la
especificación EJB.
El ciclo de desarrollo de un EJB es un poco mas largo que el de una aplicación normal,
y deben seguirse todos los pasos. Vamos a ver un ejemplo altamente sencillo de un EJB,
llamado ObtenPepe que devolvera el string “pepe”.
Desarrollo.
import javax.ejb.*;
import java.rmi.*;
SessionContext sessionContext;
}
}
Su interfaz HOME.
import javax.ejb.*;
import java.rmi.*;
Su interfaz remota.
import javax.ejb.*;
import java.rmi.*;
Los EJB se usaran en todos los desarrollos de un proyecto internet medio grande, es
decir todos aquellos que deban corren en un servidor de aplicaciones. Cualquier
proyecto Internet que tenga una parte importante de desarrollo servidor es un candidato
a ser desarrollado con J2EE en un servidor de aplicaciones. La otras alternativas como
los Servlets o CGIs se estan quedando desfasadas, y llevan un tiempo mayor de
desarrollo si se quiere dar soporte a las características ofrecidas por los servidores de
aplicaciones. Los desarrollos de EJBs se benefician de crear porciones de código
reutilizables en diversos proyectos.
JSP es una especificación que esta soportada por muchos servidores WEB y que debe
estar soportada por todos los servidores de aplicaciones al formar parte de J2EE.
Cuando un cliente pide una pagina al servidor web este la envía al servlet responsable
de su traducción y envía el resultado al cliente.
La hojas JSP se ejecutan en el servidor, no en el cliente, por lo que no es posible realizar
validaciones de cliente con código JSP.
Para los que conozcan la tecnología ASP de Microsoft las JSP son muy parecidas, pero
dan acceso a toda la potencia de J2EE, además de ser mas abiertas, se pueden ejecutar
en entornos no Microsoft.
<HTML>
<HEAD>
<TITLE>
Pagina ASP
</TITLE>
</HEAD>
</BODY>
{ %>
<BR>
<% } %>
</BODY>
</HTML>
Cualquier aplicación Internet que presente hojas dinámicas, en respuesta de las entradas
del usuario o de los datos almacenados en el servidor es susceptible de realizarse con
JSP. Aunque JSP nos permita poner código de acceso a la base de datos, y lógica de
negocio en la página es importante no cargar las hojas de demasiada inteligencia y de
utilizar objetos del servidor para realizar estas tareas. Una proyecto que almacene toda
su lógica en las páginas JSP será un proyecto difícil de mantener. Asi que las JSP debe
usarse con cuidado, y para lo que estan pensadas. Permitir el acceso a los objetos del
servidor y modificar los datos y la estructura visual de la pagina.
2.2.3.1 Estructura
El cliente, una aplicación, realiza la petición a JNDI, este la traslada al servicio de
directorios de cada sistema, que realiza las peticiones de bajo nivel y accede a los datos
almacenados.
JNDI se conecta a un servicio LDAP, por lo que se debe tener un servidor LDAP
instalado y corriendo.
Los pasos a seguir para empezar a usar el servicio LDAP a través de JNDI son:
Identificarse
Desconectarse.
1. La conexión:
EntornoLDAP.put(Context.PROVIDER_URL, “ldap://localhost:389”);
2.Autentificación.
EntornoLDAP.put(Context. INITIAL_CONTEXT_FACTORY,
“com.sun.jndi.LdapCtxFactory”);
EntornoLDAP.put(Context.PROVIDER_URL, “ldap://localhost:389”);
//Indicamos la identificación.
EntornoLDAP.put(Context.SECURITY_AUTHENTICATION, “simple”);
EntornoLDAP.put(Context.SECURITY_CREDENTIALS, “pass”);
Es un API que nos permite realizar transacciones independientemente del sistema al que
nos estemos referenciando. Esta altamente ligado a J2EE y en particular a EJB , de tal
manera que pierde su sentido usarlo fuera de este entorno.
Por lo general, resulta práctico diseñar los enterprise beans de modo que toda la gestión
de transacciones se maneje a nivel del Enterprise Bean aunque, en una aplicación
distribuida estricta de tres capas, no siempre es posible o incluso aconsejable. Sin
embargo, puesto que la capa central de una aplicación EJB puede incluir dos
subcomponentes--beans de sesión y beans de entidad--resulta mucho más fácil diseñar
la gestión transaccional completamente en la capa de servidor de la aplicación. Por
supuesto, la capa del gestor de recursos también se debe haber diseñado para ofrecer
soporte para las transacciones.
No obstante, se puede programar un cliente EJB (que no sea un enterprise bean) para
participar en transacciones para estas situaciones particulares que lo requieren. Para
participar en una transacción, el cliente EJB debe realizar lo siguiente:
Es una tecnología para objetos distribuidos, objetos que interactúan entre ellos, que
residen en diferentes plataformas a través de la red. Es una tecnología similar a RMI,
pero JavaIDL permite la interacción con objeltos escritos en otros lenguajes como C o
C++.
Para soportar la interacción entre objetos en diferentes programas Java IDL provee de
un ORB (Object Request Broker). Un ORB es una librería que permite la comunicación
a bajo nivel entre las aplicaciones que siguen Java IDL y la especificación CORBA.
Nosotros no debemos preocuparnos ni de CORBA ni de ORB, JavaIDL nos aísla de los
problemas de comunicación de bajo nivel.
Antes de empezar a trabajar con JavaIDL necesitamos el compilador idltojava, que nos
permite pasar los interfaces que realicemos de IDL a JAVA.
Los pasos a seguir para crear una comunicación JavaIDL son los siguientes:
module HelloApp {
};
este fichero lo debemos compilar con el idltojava y obtendremos cinco ficheros, entre
ellos Hello.java con el siguiente contenido:
package HelloApp;
extends org.omg.CORBA.Object {
String sayHello();
This class is the client stub, providing CORBA functionality for the
client. It implements the Hello.java interface.
HelloHelper.java: Clase final que provee de funcionalidad auxiliar para
realizar el paso de objetos CORBA a objetos propios.
HelloHolder.java: Clase final Provee de las operaciones para pasar
parámetros con CORBA.
2.Creación del servidor.
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
//Clase principal
{
try
{
//Iniciamos el ORB.
orb.connect(helloRef);
// Recuperamos el contexto
ncRef.rebind(path, helloRef);
synchronized(sync)
{
sync.wait();
}
}
catch(Exception e)
{
e.printStackTrace(System.out);
}
}
{
}
}
3.Creación del cliente.
import org.omg.CosNaming.*;
import org.omg.CORBA.*;
{
try{
// Inicializamos ORB
// Cojemos el servicio.
} catch(Exception e) {
e.printStackTrace(System.out);
}
}
}
4.Realizar la prueba.
Solo queda ejecutar el cliente al que le debemos indicar el nombre del servidor en el que
esta corriendo el servicio IDL, y el puerto donde debe buscar al servicio.
JavaIDL esta basado en un standard que permite invocar a objetos escritos en lenguajes
diferentes a JAVA. I esta es su principal funcionalidad, el llamar a objetos JAV puede
realizarse con RMI, que ademas permite utilizarlos por referencia o por valor. JavaIDL
siempre trabaja por referencia, lo que hace el trafico más ligero, pero también tiene
limitaciones.
3 XML
Para entender esta segunda idea debemos saber que XML es un lenguaje de marcas, que
permite definir estas marcas mediante ficheros DTD. Un fichero XML no puede
entenderse sin su fichero DTD correspondiente, por eso podemos plantearnos que
HTML es un XML con sus marcas ya definidas. El gran problema de HTM es que por
muchas mejoras que han ido apareciendo siempre nos basamos en unas marcas ya
existentes que no pueden variarse. Con XML no tenemos esta limitación.
El problema de definirse las marcas propias es producir ficheros ML que no puedan ser
entendidos fuera de nuestro entorno, por esta razón existen una serie de ficheros DTD
standards que responden a diferentes necesidades y a diferentes entornos sectoriales.
Vamos a ver un fichero de XML que contiene los datos de dos empleados de una
organización, y su dtd correspondiente.
Fichero XML:
<?xml versión=”1.0”!>
<departamento>
</empleado>
</empleado>
</departamento>
Como podemos ver los dos ficheros son de fácil interpretación. En el DTD definimos la
estructura de los elementos. Un departamento puede tener empleados, un empleado
puede tener un nombre y un puesto. También definimos como obligatorio de marca
empleado el parámetro id.
Es un API nuevo de J2EE, implementado en la versión 1.3 del SDK. Permite el acceso
facil a ficheros XML, modificar su contenido, interpretarlos, crearlos. Accede al fichero
dtd para entender el fichero xml, y poder interrogarlo para recuperar los valores
almacenados en el. JAXP engloba el api SAX, creado para la interrogación de ficheros
XML en diferentes lenguajes.
Cualquier clase que queramos crear debe importar los siguientes packages:
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
Como podemos ver en el grafico las peticiones realizadas por el terminal, que debe
disponer de un navegador WAP, son enviadas a una pasarela que realiza la
decodificación según sea el caso y los reenvía hacia el servidor. Este servidor es un
servidor WEB normal, que en el caso de la figura contiene CGI, pero que puede estar
formado por servlets o un servidor de aplicaciones. El servidor recoge la petición y
devuelve los datos a la pasarela que los codifica y los envía al terminal. El proceso en
detalle de una petición es el siguiente:
WML es un lenguaje de marcas, como HTML, pero basado en XML, utiliza un DTD
realizado por WAPFORUM. El HTML esta basado en una navegación entre paginas, y
el WML en una navegación entre cartas, que como veremos es muy parecida.
<?xml version="1.0"?>
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
</card>
</wml>
Como podemos ver la estructura es muy parecida a la de una hoja HTML. Primero
indicamos el dtd a utilizar, y después empieza la estructura del lenguaje de marcas. El
código wml se encierra entre las etiquetas <wml> y </wml>. Cada carta se encierra
entre las etiquetas <card id=”xxx” title=”xxx”> y </title>. Cada pagína WML puede
tener varias cartas. En el navegador WAP aparecerán las cartas como las opciones,
identificadas por su título.
4.2 WMLScript
WMLScript es un lenguaje de script, que viene a ser lo mismo para WML que lo que
son JavaScript o VBScript para HTML. Es un lenguaje mucho mas simple que estos
dos, pero que también permite proveer de inteligencia a los clientes. Esta basado en
EMAScript, pero modificado para soportar mejor velocidades lentas de transmisión.
Algunas de las operaciones que se pueden realizar con WMLScript son:
Como se puede ver WMLScript es bastante potente, y nos permite acceder a todos los
servicios standard de los teléfonos móviles compatibles WAP.
Vamos a crear un ejemplo muy sencillo, que contiene dos cartas y una función script
que nos devuelve un número aleatorio.
Fichero WML:
<wml>
</card>
</card>
</wml>
Este fichero contiene dos cartas, en la primera se muestra una opción al usuario, que al
escogerla efectua una llamada a la función realizada en WMLScript. La segunda carta
es llamada por la función script y muestra el contenido de una variable que la función
SCRIPT ya se ha encargado de rellenar.
WMLBromser.go(“random.wml#card2”);
Tambien es verdad que las aplicaciones aparecidas gasta ahora para WAP no explotan
todas las posibilidades de este protocolo, sobretodo las que nos da la nueva
especificación 1.2.
Es un servicio que permite enviar y recibir información desde terminales móviles a una
velocidad de 170 kbps, 10 veces superior a la velocidad normal del GSM. La conexión
se realiza de forma instantánea, dando la sensación de que estamos conectados
permanentemente.
El servicio de GPRS nos permitirá entrar en el mundo de Internet móvil, ya que gracias
a su velocidad se podra acceder a todos los servicios de Internet, como chats, ftp, correo
electrónico, WEB.
6 Universal Mobile Telecommunication
System (UMTS)
Esta es la verdadera revolución de Internet. Si tenemos en cuenta que a finales de este
año existirán el doble de terminales móviles que de PCs nos podemos hacer una idea de
la importancia que significará para el negoció de Internet el acceso masivo desde
terminales móviles. En unos años se accedera mucho mas a los contenidos de internet
desde móviles que desde PCs. Con la llamada tecnología de tercera generación
tendremos imágenes, gráficos de alta calidad, voz, y nos abre todo un nuevo mundo de
posibilidades por explotar. Se podrá realizar cualquier cosa desde nuestro terminal
móvil. Se rompen las barreras que existen con los PCs actuales, como poca movilidad,
acceso a una parte limitada de la población dependencia de una conexión fija. en un
principio se podrá acceder a todos los servicios de Internet, pero la verdader revolución
llegará con los desarrollos específicos, que atacarán necesidades todavía no cubiertas,
de los usuario de móviles. Por eso es tan importante empezar a crear una cultura de
desarrollo de soluciones para acceso a la nueva Internet.
Con estas prestaciones es fácil imaginar que las aplicaciones existentes ahora en Internet
se quedarán cortas para este nuevo número de usuarios. Para que sirve acceder a un
YAHOO si debemos teclear incómodamente los que queremos buscar, si los datos
devueltos están en formatos incómodos para nuestras pantallas.
La tecnología que nos permitirá desarrollar aplicaciones UMTS ya existe en gran parte,
aunque evolucionara e incluirá servicios nuevos. En el servidor tendremos los elementos
ya vistos, como servidores de aplicaciones con JAVA como protagonista, y en la parte
cliente unos navegadores específicos que permitirán ejecutar todos los objetos de cliente
existentes ahora, con algunas limitaciones lógicas.
La palabra e-bussines en resumen define cualquier negocio en internet, pero algo tan
sencillo se transforma en algo muy complicado. Estamos hablando de abrir la imagen de
la empresa a todo tipo de publico y de realizar una inversión que nos puede llevar a
tener uno de los WEB mas rentables del sector o un WEB olvidado por todo el mundo.
Las diferencias entre estos dos tipos de WEBs no son tantas, y gran parte de ellas
dependen de las compañías de desarrollo que realicen la aplicación.
De todos los modelos de negocio e-business este es que tiene un mayor grado de
aceptación y de éxito, ya que se dirige a un publico conocido y no hacen falta grandes
inversiones en publicidad.
Este modelo el que se dirige a los clientes finales. Se basa en el abaratamiento de costes
y de infraestructura, así como en la posibilidad de llegar a una mayor masa de clientes
potenciales. Ejemplos de B2C son amazon, submarino, etc.
Como podemos ver una tienda virtual esta compuesta de varios componentes:
Internet ha traído consigo necesidades nuevas, que ha hecho que las necesidades de
desarrollo también deban cambiar. Si por ahora hemos asistido a un cambio en los
lenguajes de desarrollo utilizados, debemos adaptar todavía los demás puntos que
forman parte del desarrollo de un proyecto, como pueden ser gestión y análisis.
Debemos adaptar nuestras metodologías a las necesidades de estos proyectos.
Con UML nos debemos olvidar del protagonismo excesivo que se le da al diagrama de
clases, este representa un aparte importante del sistema, pero solo representa una vista
estática, es decir muestra al sistema parado. Sabemos su estructura pero no sabemos que
le sucede a sus diferentes partes cuando el sistema empieza a funcionar. UML introduce
nuevos diagramas que representa una visión dinámica del sistema. Es decir, gracias al
diseño de la parte dinámica del sistema podemos darnos cuenta en la fase de diseño de
problemas de la estructura al propagar errores o de las partes que necesitan ser
sincronizadas, así como del estado de cada una de las instancias en cada momento. El
diagrama de clases continua siendo muy importante, pero se debe tener en cuenta que su
representación es limitada, y que ayuda a diseñar un sistema robusto con partes
reutilizables, pero no a solucionar problemas de propagación de mensajes ni de
sincronización o recuperación ante estados de error. En resumen, un sistema debe estar
bien diseñado, pero también debe funcionar bien.
UML también intenta solucionar el problema de propiedad de código que se da con los
desarrolladores, al implementar un lenguaje de modelado común para todos los
desarrollos se crea una documentación también común, que cualquier desarrollador con
conocimientos de UML será capaz de entender, independientemente del lenguaje
utilizado para el desarrollo.
8.2.1 Diagramas.
Son la esencia de UML. Cada diagrama usa la anotación pertinente y la suma de estos
diagramas crean las diferentes vistas. Las vistas existentes en UML son:
Vista casos de uso: Se forma con los diagramas de casos de uso, colaboración,
estados y actividades.
Vista de diseño: Se forma con los diagramas de clases, objetos, colaboración,
estados y actividades.
Vista de procesos: Se forma con los diagramas de la vista de diseño. Recalcando
las clases y objetos referentes a procesos.
Se Dispone de dos tipos diferentes de diagramas los que dan una visión estática del
sistema y los que dan una visión dinámica. Los diagramas estaticos son:
Diagrama de casos de uso: Muestran los casos de uso, actores y sus relaciones.
Muestra quien puede hacer que y relaciones existen entre acciones(casos de
uso). Son muy importantes para modelar y organizar el comportamiento del
sistema.
Como podemos ver el número de diagramas es muy alto, en la mayoría de los casos
excesivo, y UML permite definir solo los necesarios, ya que no todos son necesarios en
todos los proyectos. En el documento se dará una breve explicación de todos,
ampliándose para los mas necesarios.
Se utiliza para el modelado del aspecto dinámico del sistema. Este diagrama puede
utilizarse tanto en el nivel de análisis como en el de recogida de requerimientos. Se
emplean para visualizar el comportamiento del sistema, una parte de el o de una sola
clase. De forma que se pueda conocer como trabaja esa parte del sistema. El diagrama
de uso es muy útil para definir como debería ser el comportamiento de una parte del
sistema, ya que solo especifica como deben comportarse y no como están
implementadas las partes que define. Por ello es un buen sistema de documentar partes
del código que deban ser reutilizables por otros desarrolladores. El diagrama también
puede ser utilizado para que los expertos de dominio se comuniquen con los
informáticos sin llegar a niveles de complejidad. Un caso de uso especifica un
requerimiento funcional, es decir indica esta parte debe hacer esto cuando pase esto.
Aquí tenemos una pantalla del together en la que se muestra un caso de uso para un
sistema de ventas. Podemos ver la figura del cajero que puede realizar las siguientes
tareas: Pasar un escaner por el producto, Total items, que incluye el buscar precio y
impuestos, y cobrar. Como podemos ver de cobrar se generaliza los diferentes tipos de
pago posibles.
Por otro lado tenemos al responsable del inventario que puede modificar el stock de los
productos.
En el diagrama nos encontramos con diferentes figuras que pueden mantener diversas
relaciones entre ellas.
Casos
de uso: representado por una elipse, cada caso de uso contiene un
nombre, que indique su funcionalidad. Los casos de uso pueden tener relaciones
con otros caso de uso. Sus relaciones son:
Communicates: Comunica un actor con un caso de uso, o con otro actor.
Parte
del sistema (System boundary): Representado pos un cuadro, identifica las
diferentes partes del sistema y contiene los casos de uso que la forman.
Forma parte de la vista estática del sistema. En el diagrama de clases como ya hemos
comentado será donde definiremos las características de cada una de las clases,
interfaces, colaboraciones y relaciones de dependencia y generalización. Es decir, es
donde daremos rienda suelta a nuestros conocimientos de diseño orientado a objetos,
definiendo las clases e implementando las ya típicas relaciones de herencia y
agregación.
8.2.3.1 La Clase.
Una clase esta representada por un rectángulo que dispone de tres apartados, el primero
para indicar el nombre, el segundo para los atributos y el tercero para los métodos.
Cada clase debe tener un nombre único, que las diferencie de las otras.
Para separar las grandes listas de atributos y de métodos se pueden utilizar estereotipos.
Aquí vemos un ejemplo. La clase usuario contiene tres atributos. Nombre que es public,
dirección que es protected y situación que es private. Situación empieza con el valor 3.
También dispone de tres métodos Entrar, Salir y Trabajar.
8.2.3.3 Dependencias.
Es una relación de uso, es decir una clase usa a otra, que la necesita para su cometido.
Se representa con una flecha discontinua va desde la clase utilizadora a la clase
utilizada. Con la dependencia mostramos que un cambio en la clase utilizada puede
afectar al funcionamiento de la clase utilizadora, pero no al contrario. Aunque las
dependencias se pueden crear tal cual, es decir sin ningún estereotipo UML permite dar
mas significado a las dependencias, es decir concretar mas, mediante el uso de
estereotipos.
Bind:
La clase utilizada es una plantilla, y necesita de parámetros para ser
utilizada, con Bind se indica que la clase se instancia con los parámetros
pasándole datos reales para sus parámetros.
Derive:
Se utiliza al indicar relaciones entre dos atributos, indica que el valor de
un atributo depende directamente del valor de otro. Es decir el atributo edad
depende directamente del atributo Fecha nacimiento.
Friend:
Especifica una visibilidad especial sobre la clase relacionada. Es decir
podrá ver las interioridades de la clase destino.
InstanceOF: Indica que el objeto origen es una instancia del destino.
Refine:
se utiliza para indicar que una clase es la misma que otra, pero mas
refinada, es decir dos vistas de la misma clase, la destino con mayor detalle.
8.2.3.4 Generalización.
Pues es la herencia, donde tenemos una o varias clases padre o superclase o madre, y
una clase hija o subclase. UML soporta tanto herencia simple como herencia múltiple.
Aunque la representación común es suficiente en el 90% de los casos UML nos permite
modificar la relación de Generalización con un estereotipo y dos restricciones.
Disjoint: solo puede tener un tipo en tiempo de ejecución, una instancia del
padre solo podrá ser de un tipo de hijo.
Overlapping: puede cambiar de tipo durante su vida, una instancia del padre
puede ir cambiando de tipo entre los de sus hijos.
8.2.3.5 Asociación.
Especifica que los objetos de una clase están relacionados con los elementos de otra
clase. Se representa mediante una línea continua, que une las dos clases. Podemos
indicar el nombre, multiplicidad en los extremos, su rol, y agregación.
Ejemplo.
En este diagrama se han creado cuatro clases. La clase principal es Usuario, que tiene
dos clases hijas UsuarioADM y UsuarioINF. El usuario mantiene una relación de
asociación con la clase Clave, se indica que es propietario de una clave, o de un número
indeterminado de ellas. Se le crea también una relación de dependencia con la clase
Perfil, es decir las instancias de usuario contendrán como miembro una instancia de
Perfil.
8.2.4 Diagrama de secuencia.
En esta pantalla podemos que tenemos tres objetos, y un actor, situado a la izquierda
que es el que inicia la acción. Como podemos ver el objeto de mas a la derecha aparece
mas abajo que los otros existentes. Esto se debe a que indica que la llamada que recibe
es una llamada de creación. Es decir el objeto no existe en el sistema hasta que recibe la
primera petición.
Los colores forman parte de la notación UML, y cada color dispone de un rol diferente.