construccion de aplicaciones web con uml

25
Construcción de Aplicaciones Web con UML Diseño Gonzalo Méndez Pozo

Upload: dave-veliz

Post on 02-Feb-2016

7 views

Category:

Documents


1 download

DESCRIPTION

Construccion de aplicaciones Web con UML

TRANSCRIPT

Page 1: Construccion de aplicaciones Web con UML

Construcción de Aplicaciones Web con UML

Diseño

Gonzalo Méndez Pozo

Page 2: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño (I)Diseño (I)

El diseño es el punto en el que se da el primer paso desde la realidad del dominio a la realidad del software.Las principales entradas para el diseño son el modelo de análisis y el de la arquitectura.Los productos más importantes de esta fase continúan siendo los diagramas de interacción y de clases.

Page 3: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño (II)Diseño (II)

En el diseño se añaden clases que no aparecen en el dominio: gestores, intermediarios, ...El resultado es un modelo que se puede traducir directamente a código.Para ello, será clave la introducción de un nuevo tipo de diagrama: el de componentes.

Page 4: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño (III)Diseño (III)

Un componente es habitualmente algún tipo de módulo compilado: ejecutables, librerías estáticas o dinámicas, clases de Java, ...Además, un componente tendrá un interfaz para poder ser utilizado.Un componente se implementa con las clases y colaboraciones de los diagramas del diseño.

Page 5: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño (IV)Diseño (IV)

En el diseño, además de los diagramas mencionados, habrá que:

Distribuir los objetos en capas entre el cliente y el servidor. Esto depende de la arquitectura elegida.Separar y definir las interfaces de usuario.

Especial atención merecen las páginas web, que conectan la aplicación y el navegador.

Page 6: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño (V)Diseño (V)

Parece claro que las páginas web serán objetos dentro de los diagramas.El mayor problema surge al intentar casarlas con scripts de servidor y de cliente, ya que al ejecutarlas en el servidor hacen una cosa y en el cliente hacen otra.Para contemplar estas sutilezas, ha sido necesario ampliar la notación de UML.

Page 7: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Distribución de los Objetos (I)Distribución de los Objetos (I)

Cuando el modelo de arquitectura está claro, la distribución de los objetos es bastante mecánica.Thick Web Clients:

Objetos persistentes, complejos, compartidos o contenedores se sitúan en el servidor.Los objetos asociados con ellos también se sitúan en el servidor (p.e. bases de datos).

Page 8: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Distribución de los Objetos (II)Distribución de los Objetos (II)

Los objetos con asociaciones estáticas con los primeros también van al servidor.Si un objeto sólo tiene dependencias con otros elementos del cliente o con el navegador, entonces va al cliente.Objetos candidatos para ir al cliente son objetos que validen campos de formularios, controles de la interfaz de usuario y controles de navegación.

Page 9: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Distribución de los Objetos (III)Distribución de los Objetos (III)

Web Delivery:La distribución depende de la naturaleza de cada objeto.Una de las razones para poner objetos en el cliente es liberar al servidor de parte de la carga de trabajo.Un buen criterio es colocar los objetos donde les sea fácil acceder a los datos con los que van a trabajar y a los objetos con los que colaboran.

Page 10: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño con Diagramas de SecuenciaDiseño con Diagramas de Secuencia

Mientras se realiza la distribución se van identificando páginas web que hay que construir. Este proceso depende en gran medida de la arquitectura que se vaya a utilizar.Será interesante ver cómo se puede decidir qué es o qué no es una página web.

Page 11: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de Thin Thin Web Web Clients Clients (I)(I)

Se ponen grandes restricciones para el uso de páginas web; sólo deben tener los elementos presentes en la especificación en uso de HTML.Lo más habitual es que el diseño se realice fácilmente a partir de los diagramas del análisis.

Page 12: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThinThin Web Web ClientsClients (II)(II)

Los actores interactúan con páginas del cliente, y las páginas de servidor sólo con recursos del servidor.Siendo así, se suelen transformar los interfaces del análisis en páginas de cliente y los procesos del análisis en páginas de servidor.

Page 13: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThinThin Web Web ClientsClients (III)(III)

Se debe pensar si ciertas funcionalidades es mejor ponerlas en páginas de servidor o en módulos compilados. Un buen criterio es ver si puede sernos de utilidad para una aplicación convencional.Es mejor no poner en páginas de servidor actividades que estén muy relacionadas con el dominio de la aplicación.

Page 14: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThinThin Web Web ClientsClients (IV)(IV)

Suele ser una buena idea encargar a una página de servidor que realice una acción y a otra distinta que construya la página que se le envía al cliente.Finalmente, se deben identificar las páginas con componentes del sistema.Por último, se debe diseñar cada página. Esto se limita a las páginas de servidor.

Page 15: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThinThin Web Web ClientsClients (V)(V)

Por más que nos empeñemos, una página de servidor es, sobre todo, procedimental, mientras que NSAPI, ISAPI y Servletsofrecen orientación a objetos.En cuanto a los enlaces, es equivalente expresar un enlace hacia una página cliente o hacia la página de servidor que la origina. Depende de qué aspecto queramos mostrar.

Page 16: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThinThin Web Web ClientsClients (VI)(VI)

Un formulario se expresa como un agregado a la página del cliente.Los atributos del formulario son sus campos de entrada y botones.Los frames se pueden expresar como agregaciones sobre la página principal.

Page 17: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de Thick Thick Web Web Clients Clients (I)(I)

Los clientes dinámicos requieren prestar especial atención a la distribución de los objetos.Los diagramas de secuencia se construyen a partir de los diagramas de secuencia creados a partir de los casos de uso.Las operaciones básicas pueden realizarse usando páginas web con scripts.

Page 18: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThickThick Web Web ClientsClients (II)(II)

Elementos como applets o ActiveX es mejor usarlos sólo si la funcionalidad requerida es más sofisticada.El usuario interactúa:

Con los scripts, a través de eventos definidos en el DOM.Con applets y ActiveX, directamente o a través de la propia página.

Page 19: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño de Diseño de ThickThick Web Web ClientsClients (III)(III)

Hay que hacer notar que en estos diagramas no se muestran los detalles del diseño de los interfaces, ya que nuestro objetivo es el funcionamiento, no el aspecto de la página.Los scripts y objetos pueden interactuar con el navegador. Si es necesario modelar esta interacción, se puede añadir un objeto que lo represente.

Page 20: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño Web Diseño Web Delivery Delivery (I)(I)

Debido a las batallas comerciales, cada vez es más fácil integrar todas las tecnologías existentes con los navegadores.La decisión de aplicar una tecnología u otra va a venir dada sobre todo por las características de la aplicación y la experiencia del equipo de desarrollo con cada una de ellas.

Page 21: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño Web Diseño Web DeliveryDelivery (II)(II)

DCOM:Es básicamente un ORB que se integra con el sistema operativo.Incluso si el objeto es remoto, debe haber una parte de él que representa al objeto, el stub, que se instale en la máquina del cliente.Los detalles de instalación suelen ir en un documento separado, por lo que los diagramas de diseño tienen el aspecto habitual.

Page 22: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño Web Diseño Web DeliveryDelivery (III)(III)

Los objetos del cliente pueden interactuar entre ellos y mandarse mensajes.La comunicación entre objetos del cliente y del servidor lleva la etiqueta <<DCOM>>, para indicar que ésta es la forma de comunicación.En los diagramas de secuencia no se suele reflejar el hecho de que la comunicación se realice de esta manera.

Page 23: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Diseño Web Diseño Web DeliveryDelivery (IV)(IV)

RMI/IIOP:La comunicación entre objetos del cliente y del servidor lleva la etiqueta <<RMI>> o <<IIOP>>, dependiendo del protocolo usado.Algo que se suele hacer es escribir dentro de la página el nombre del servidor al que deben conectarse los applets para poder interactuar con el servidor de la aplicación.

Page 24: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Guías de Diseño (I)Guías de Diseño (I)

Es mejor no usar las características más novedosas de los navegadores.Si se usan herramientas automáticas para hacer las pruebas de funcionamiento, hay que tenerlo en cuenta a la hora de diseñar las páginas para indicar de alguna manera cuándo pueden empezar a usarse.

Page 25: Construccion de aplicaciones Web con UML

© Gonzalo Méndez Pozo

Guías de Diseño (II)Guías de Diseño (II)

Es mejor que toda la actividad se desarrolle en una única ventana del navegador. Mantener dos interfaces de usuario y la consistencia entre ellas es más del doble del trabajo de hacer una sola.Ahorra mucho tiempo el llevar un criterio a la hora de darle nombre a las páginas.