Professional Documents
Culture Documents
Índice
1. Introducción 2
1.1. ¿Qué es UML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Patrón Modelo-Vista-Controlador . . . . . . . . . . . . . . . . . . 3
1.3. Sistema Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. WAE y WAE2 5
3.1. Tipos de estereotipos . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1. En las entidades . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2. En las relaciones . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Diagramas de Componentes . . . . . . . . . . . . . . . . . . . . . 6
3.3. Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4. Diagrama de secuencia . . . . . . . . . . . . . . . . . . . . . . . 6
3.5. Eventos en el cliente . . . . . . . . . . . . . . . . . . . . . . . . . 7
1
4. Propuesta de metodologı́a ágil 7
4.1. Diseño conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Diseño gráfico, arb. de navegación y base de datos . . . . . . . . 7
4.3. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3.1. Desarrollo gráfico y HTML . . . . . . . . . . . . . . . . . 8
4.3.2. Desarrollo de lógica de negocio y base de datos . . . . . . 8
4.3.3. Pruebas y benchmark . . . . . . . . . . . . . . . . . . . . 8
5. Conclusiones 9
6. Bibliografı́a 9
1. Introducción
Los sistemas web son relativamente nuevos en el mundo del computación. Ca-
da vez son más complejas y por tanto son un nuevo reto para los ingenieros
del software. Como el software, al principio no se modelaba1 , pronto surgen
metodologı́as que intentan solucionar el problema. Un problema que se agraba
en los sistemas Web debido a que estos fomentan un entorno de requisitos muy
cambiantes. Esto puede ser debido a un número de usuarios mundial que provo-
ca un gran número de requisitos. Además el equipo de desarrolladores suele ser
pequeño2 .
Los modelos son abstracciones que simplifican nuestra comprensión de los sis-
temas. Como lenguaje de modelado ya existente deberiamos considerar si UML
tiene capacidad para modelar en aplicaciones Web. Veremos queremos que Jim
Conallen recomienda modelar webs extediendo UML y aplicacando un patrón
de diseño llamado MVC (modelo-vista-controlador).
2
1.2. Patrón Modelo-Vista-Controlador
4
El patrón MVC busca la programación en 3 capas:
El servidor web ofrece páginas web y otos recursos (css, js, imagenes, flash ...)
Estos recursos se identifican de forma única mediante URL o URI. Los servidores
web utilizan la comunicación entre cliente y servidor utiliza el protocolo HTTP.
No mantiene conexión tras una petición. Eso genera, que sea necesario recurrir a
cookies para conocer el estado del cliente. (Sesiones) Una aplicación web genera
una página web para un cliente en función de N variables. (diferenciar página
de aplicación) Una aplicación web es un sistema Web que nos ofrece la lógica
de negocio. (interfaces, formularios ...). Hace de frontend. Lenguajes en la parte
del cliente Lenguajes de script como javascript (estándar ECMA), y Visual Ba-
sic Script(Microsoft). Pueden usarse para complementar la lógica de negocio.
Alivian al servidor. La web es sincrona pero la tendencia es la Web ası́ncrona
gracias a un conjunto de técnologı́as denominadas como AJAX. Para el render-
izado Web se usa HTML, XHTML o XML. Complementados con CSS (hojas
de estilo en cascada) Flash como lenguaje de presentación. Aporta multimedia
a la web. Applet java ... Lenguajes en la parte del servidor Los más conocidos
son PHP(software libre), JSP (Sun Microsystems) y ASP/ASP.NET(Microsoft)
Las primeras versiones de PHP y ASP no separaban bien las capas. Pudiendo
4 Es un patrón del software, no solo se usa en programación Web
3
llegar a tener mezcladas las tres capas: presentación(XHTML), lógica de nego-
cio(PHP) y modelo de datos(SQL). Procedimentales. La separación de capas
es dificil ya que tradicionalmente la lógica de negocio se encarga de generar
la presentación dinamicamente. En aplicaciones grandes, es preferible por usar
lenguajes que implementan MVC
2.1. Entidad-Relación
Aunque es un buen diagrama y podrı́a ser necesario para toda aplicación web,
solo modela una parte del sistema, la capa del modelo de datos, si bien puede ser
usado como complemento lo bueno serı́a buscar un único lenguaje de modelado
que nos permitiera modelar todo y de forma más integrada. Esto es ası́ porque
sencillamente ER no fue diseñado para el uso de modelado de aplicaciones Web.
2.2. HDM
Basado en el modelo E/R. El objetivo era crear un modelo que fuera de utilidad
para realizar el diseño de una aplicación de hipertexto. Es un intento de modelar
la estructura del hipertexto-hipermedia, una modelización de las estructuras de
navegación. Crear un modelo antes de desarrollar un hipertexto nos ayudará a
conseguir una navegación más consistente y rica. En HDM la estructura de
navegación viene marcada por la estructura de datos. Fue en principio usado
para páginas estáticas.
2.3. RMM
4
2.4. WebML
3. WAE y WAE2
Es el único exclusivamente basado en UML. Ha sido desarrollado por Jim
Conallen, empleado de Rational Software Corporation. WAE como UML es
recomendado usarlo en lenguajes orientados a objetos. Jim opta por ampliar
UML sencillamente porque es más barato hacer un estandar ampliando que
creándolo de cero. Lo primero que se plantea es que las aplicaciones Web pre-
sentan problemas que UML no contempla solución. UML no facilita la tarea de
diferenciar código cliente (scripts) de código servidor. UML puede ser extendido
para permitir una nueva semántica : estereotipos, listados de etiquetas(tags) y
restricciones(constraints):
<<Server Page>> Son las páginas que contienen scripts o código eje-
cutable por el servidor. (.php , .asp , .jsp)
<<Client Page>> Son las páginas que estan en el lado del cliente,
normalmente páginas HTML y scripts (jsvascript).
<<Form>> Es la representación de un formulario. Es código HTML que
contiene etiquetas de formulario como : <input>, <textarea>, <select>
...
5
Estos estereotipos se pueden ampliar con mucha flexibilidad. Otros ejemplos de
estereotipo pueden ser : <<Javascript>>, <<Applet>> o <<Flash>>.
<<build>> Una relación entre una página servidor y una página cliente.
La página servidor ”construye” a la página cliente.
<<link>> Es una relación entre una página y otra página del sistema.
<<submit>> Es una relación entre un formulario y un servidor de
página
Con especial incapie debemos tener en cuenta que tenemos visitantes de difer-
entes tipos y debeı́amos crear un tipo de actor en función del tipo de usuario.
Por ejemplo : En el formulario de registro le preguntamos si se considera un
usuario avanzado o no.
Explica los casos de uso en función del tiempo. Su uso respecto a UML no
cambia. En este diagrama se escriben las lineas de tiempo de los actores y com-
ponentes implicadas. Los actores y componentes se envian mensajes entre ellos
describiendo los problemas del sistema. Las paginas del cliente pueden enviarse
mensajes a si mismo (funciones javascript donde el servidor no interviene) pero
si vemos flechas asincronas que van desde el cliente hasta el servidor solo pueden
ser interpretadas por el programador como el uso de AJAX, ya que la tecnologı́a
web es sincrona.
6
3.5. Eventos en el cliente
Los eventos de cliente (eventos de javascript como onClick , onLoad, etc ...)
pueden ser representados en las listas de etiquetas donde el campo es el nombre
del evento y el valor es el nombre de la función.
1. Diseño conceptual
4. Producción
7
4.3. Desarrollo
8
5. Conclusiones
Se concluye que UML se puede ampliar al modelo web con componentes
especı́ficos como las páginas, enlaces, cliente de scripts y otras formas
abstracción y detalle adecuados para modeladores web.
Debido a la complejidad de los sistemas Web es necesario modelar. Con
UML o con otras formas de modelado.
Actualmente los problemas de mantenibilidad y escalabilidad de las apli-
caciones Web estan solventados por soluciones de Ingenierı́a del Software.
El objeto de la ingenierı́a del software se ha ampliado.
Los frameworks que más impacto tienen hoy en dı́a son Rails y Django.
(Basados en MVC)
Opinión personal : actualmente los sistemas web no se les exige tanta cal-
idad como en el software tradicional, esto unido a los grupos de desarrollo
tan pequeños, hace que en los proyectos apenas se modele. Esto es algo
que veo desde mi punto de vista, y tambien siento que va cambiar, se va (y
debe) a ir exigiendo mas calidad. Algunos de los argumentos que me hacen
pensar asi : Son las eternas betas de google, productos en continua expan-
sion. En cierto sentido la web esta mas viva que un software de escritorio,
esto hace que se tienda a pensar que ese fallo que hemos encontrado “ya
lo arreglaran”. Por mucho que las empresas nos traten de acostumbrar a
la falta de calidad y al concepto de beta mal entendido, no conseguiran
nada, ya que el usuario quiere calidad ya sea en la web o en el escritorio.
6. Bibliografı́a
[ Conallen, 1998 ] Conallen, Jim. “Modeling Web Application Design with UML”
Presentation – Conallen, Inc. http://www.rational.com/media/whitepapers/webapps.pdf
Junio, 1998.
Ricardo Galli : http://bulma.net/body.phtml?nIdNoticia=734
http://gallir.wordpress.com/2008/04/16/disenos-ingenieria-agiles-y-frameworks/
HDM : http://www.hipertexto.info/documentos/hdm.htm
OMT : http://www.monografias.com/trabajos6/meto/meto.shtml
Booch, G., Jacobson, I., Rumbaugh, J. The Unified Modeling Language Users
Guide. Addison Wesley, Reading, MA, 1998
WebML: http://www10.org/paper-sample/html-sample.html