lenguaje unificado de modelado -...

38
[1] Lenguaje Unificado de Modelado (v1.4.2 ISO/IEC 19501) Arquitecturas de Sistemas Telemáticos Dr. Ing. Álvaro Rendón Gallón Cali, mayo de 2012 Especialización en Telemática 2 Temario • Introducción Notación UML • Vistas • Diagramas Mecanismos de extensión Clases de Análisis Extensiones para Aplicaciones Web (WAE) • Herramientas

Upload: lethu

Post on 27-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

[1]

Lenguaje Unificado de Modelado(v1.4.2 ISO/IEC 19501)

Arquitecturas de Sistemas TelemáticosDr. Ing. Álvaro Rendón Gallón

Cali, mayo de 2012

Especialización en Telemática

2Temario

• Introducción• Notación UML• Vistas• Diagramas• Mecanismos de extensión• Clases de Análisis• Extensiones para Aplicaciones Web (WAE)• Herramientas

[2]

3Introducción

Tres generaciones de notaciones OOPrimera: La “guerra de los métodos”.– De 10 a 50 entre 1989-94:

OOD (Booch),OMT (Rumbaugh),OOSE/Objectory (Jacobson),Coad/Yourdon,Shlaer/Mellor,HOOD,ROOM, ...

4

• Segunda Generación:Reúnen los conceptos de varias técnicas:– Fusion– OOSE– OMT-2– Booch’93Son métodos completos, pero con énfasis en

ciertos dominios (ingeniería de negocios,sistemas de información, etc.)

Introducción

[3]

5

• Tercera Generación: UML– Cubre todo el ciclo de desarrollo y diversos dominios– “Three amigos”: Booch, Rumbaugh, Jacobson– Inicio en 1994– 1996: creación del consorcio UML:

DEC, HP, IBM, Microsoft, Oracle, Unisys, TI,i-Logix, Intellicorp, ICON Computing, MCI, Rational

– Versión 1.1 en Sept. 1997– Adoptada por el OMG en Nov. 1997– Versión 1.4.2 (2005) adoptada como ISO/IEC 19501– Versión 2.4.1 en agosto de 2011

Introducción

6

Lenguaje para– Especificación– Construcción– Visualización– Documentación

de los elementos de un sistema intensivo ensoftware

Introducción

[4]

7

Apropiado para modelar diferentes sistemas:– de información,– telecomunicaciones,– industriales,– empotrados de tiempo real,– distribuidos,– organizacionales.

Introducción

8

Cubre:– Captura de requisitos– Análisis– Diseño– Programación– Pruebas

Es una notación, no un proceso/método

Introducción

[5]

9Notación

Descripción = Vistas del sistema { Diagramas }

• Un solo diagrama no puede expresar toda lainformación para describir un sistema:funcional, no funcional, organizacional.

• Cada vista representa una proyección del sistema,mostrando un aspecto en particular

• Cada vista se describe en un cierto númerode diagramas

10Vistas de UML

Vista deComponente

Vista deCasos de Uso

Vista deImplantación

Vista deConcurrencia

VistaLógica

[6]

11Diagramas

• Casos de Uso* Clase, Objetos• Comportamiento

* Implementación

* (Estructura)• (Comportamiento)

• Secuencia• Colaboración• Estados• Actividad

• Componentes• Implantación

12Vista de Casos de Uso

• Muestra la funcionalidad del sistema comoes percibida por actores externos

• Para clientes y equipos de diseño,desarrollo, y prueba

• Utiliza:– Diagramas de Casos de Uso– Diagramas de Actividad (opcional)

• Su contenido conduce el proceso dedesarrollo y verificación

Vista deComponente

Vista deCasos de Uso

Vista deImplantación

Vista deConcurrencia

VistaLógica

[7]

Diagrama deCasos de Uso

Hacer ConsultaLector

Hacer Reserva

<<extend>>

Borrar Reserva

Prestar Item

<<include>>

Registrar NuevoLector

Director

Monitor

SI_Admnistrativo Consultar Multas

Más descripción

Gestión Biblioteca

Condition: {Lector selecciona Reserva}Extension point: Reservar

14Vista Lógica

• Muestra el diseño de la funcionalidad delsistema: Estructura y Comportamiento

• Para equipos de diseño y desarrollo• Descripción de estructura:

– Diagramas de clases y de objetos• Descripción de comportamiento:

– Diagramas de estado, secuencia, colaboración yactividades

Vista deComponente

Vista deCasos de Uso

Vista deImplantación

Vista deConcurrencia

VistaLógica

[8]

15Vista Lógica

• Estructura– Clases– Objetos

• Comportamiento– Secuencia– Colaboración– Estados– Actividad

: Monitor: IU_Inicio : Gestión

Monitor: TarjetaMonitor

: IU_MenuPpal

1: Activa

3: DiálogoID_Clave

Ingresa IDy Clave

5: validarAcceso( ID, Clave) 6: buscarCódigo( ID)

7: leerContraseña( )

8: Activa

9: MenuMonitor

4: BotonAceptarClick( )

2: Activa

«Boundary»IU_MenuPpal

«Boundary»IU_Acceso

botAceptarClick()botCancelarClick()

color : Colorposicion : XYCoord

«Control»GestionMonitor

crearMonitor()validarAcceso()

actualizarMonitor()borrarMonitor()

«Entity»TarjetaMonitor

leerId()leerContraseña()actContraseña()

id : Stringcontraseña: String

16Vista de Componentes

• Muestra la organización del código y demásarchivos

• Para grupo de desarrollo• Consiste en el Diagrama de

Componentes

Vista deComponente

Vista deCasos de Uso

Vista deImplantación

Vista deConcurrencia

VistaLógica

[9]

17Diagrama de Componentes

Formulario.html

Confirmacion.html

Bienvenida.html

JSPConfirma.jsp JSPConfirma.class «war»Inscripcion

Registro.java Registro.class

Alumno.java

DAOAlumno.java

«table»Alumno

Alumno.class

DAOAlumno.class

Web.xml

«library»MySQL.JDBC

«database»InscripcionBD

18Vista de Implantación

• Muestra la implantación del sistema en laarquitectura física.

• Computadores y dispositivosperiféricos son llamados nodos

• Para grupos de desarrollo,integración y prueba

• Consiste en el Diagrama de Implantación

Vista deComponente

Vista deCasos de Uso

Vista deImplantación

Vista deConcurrencia

VistaLógica

[10]

19Diagrama de Implantación

«HTTP»

PC Alumno Servidor Web

Servidor Basede Datos

«JDBC/SQL»«becomes»

InterfacesHTML

InterfacesHTML

«database»InscripcionBD

«war»Inscripcion

Interfaces HTML

Formulario.html

Confirmacion.html

Bienvenida.html

20Vista de Concurrencia• Muestra la concurrencia en el sistema, dividido en

procesos y procesadores.• Da cuenta de los aspectos de comunicación y

sincronización derivados.• Para grupos de desarrollo e

integración.• Descripción dinámica: Diagramas

de estado, secuencia, colaboración y actividades• Descripción de implementación: Diagramas de

componente e implantación

Vista deComponente

Vista deCasos de Uso

Vista deImplantación

Vista deConcurrencia

VistaLógica

[11]

21Vista Lógica

• Estructura– Clases– Objetos

• Comportamiento– Secuencia– Colaboración– Estados– Actividad

: Monitor: IU_Inicio : Gestión

Monitor: TarjetaMonitor

: IU_MenuPpal

1: Activa

3: DiálogoID_Clave

Ingresa IDy Clave

5: validarAcceso( ID, Clave) 6: buscarCódigo( ID)

7: leerContraseña( )

8: Activa

9: MenuMonitor

4: BotonAceptarClick( )

2: Activa

«Boundary»IU_MenuPpal

«Boundary»IU_Acceso

botAceptarClick()botCancelarClick()

color : Colorposicion : XYCoord

«Control»GestionMonitor

crearMonitor()validarAcceso()

actualizarMonitor()borrarMonitor()

«Entity»TarjetaMonitor

leerId()leerContraseña()actContraseña()

id : Stringcontraseña: String

22

class Cuenta {

String nombre;private float saldo;

Cuenta (float s, String n) {saldo = s;nombre = n;

}int retirar (float r) {

if (r <= saldo) {saldo = saldo - r;return 1;

}return -1;

}void consignar (float c) {

saldo = saldo + c;}

}

Cuenta

Representación UML

Representación de una Clase

+ nombre: String- saldo: float+ create(float, String): Cuenta+ retirar(float): int+ consignar(float)+ destroy()

Clase Cuenta

[12]

23Relaciones de Clasesclass GestionCuentas {

(…)Cuenta crearCuenta (float saldo,

String nombre) { }

void borrarCuenta (Cuenta c) { }

int transferir (Cuenta dest,Cuenta org,float valor) {

if (org.retirar(valor) == 1) {dest.consignar(valor);return 1;

}return -1;

}}

class Cuenta {

String nombre;private float saldo;

Cuenta (float s, String n) {saldo = s;nombre = n;

}int retirar (float r) {

if (r <= saldo) {saldo = saldo - r;return 1;

}return -1;

}void consignar (float c) {

saldo = saldo + c;}

}

24AsociaciónGestionCuentas

+ crearCuenta(): Cuenta+ borrarCuenta()+ transferir(): int

Cuenta+ nombre: String- saldo: float+ create(float, String): Cuenta+ retirar(): int+ consignar()+ destroy()

La clase “GestionCuentas” utiliza los servicios de la clase “Cuenta”Los métodos de la clase “GestionCuenta” invocan los métodos de laclase “Cuenta”También existe asociación cuando se accede a los atributos públicos:

nuevaCuenta.saldo = 0; //esta operación está prohibida en Cuenta

El ejemplo muestra una asociación unidireccional

[13]

25Relaciones de Clases

class Ventana {private Dimension d; //(alto, ancho)private int xpos, ypos;private Color color;

(…)

void setTamano(int alt, int anch) {}void setPosicion(int x, int y) {}void setVisible(bolean v) {}void pintar(Graphics g) {}

(…)}

Ventana- d: Dimension- xpos: int- ypos: int- color: Color+ setTamano()+ setPosicion()+ setVisible()+ pintar()

(xpos, ypos)

26Relaciones de Clases

class Etiqueta extends Ventana {private String texto;

void setTexto(String texto) {}}

class Ventana {private Dimension d; //(alto, ancho)private int xpos, ypos;private Color color;

(…)

void setTamano(int alt, int anch) {}void setPosicion(int x, int y) {}void setVisible(bolean v) {}void pintar(Graphics g) {}

(…)} Etiqueta

- texto: String+ setTexto(String)Etiqueta es una Ventana con texto

Etiqueta

[14]

27Relaciones de Clases

class Ventana {private Dimension d; //(alto, ancho)private int xpos, ypos;private Color color;

(…)

void setTamano(int alt, int anch) {}void setPosicion(int x, int y) {}void setVisible(bolean v) {}void pintar(Graphics g) {}

(…)}

class Boton extends Ventana {private String texto;

void setTexto(String texto) {}void agrCtrlAccion(

CtrlAccion ctrl) {}(…)}

Boton- texto: String+ setTexto()+ agrCtrlAccion()

Boton es una Ventana con texto ymanejo de eventos (del ratón)

Botón

28Herencia

class Ventana {private Dimension d; //(alto, ancho)private int xpos, ypos;private Color color;

(…)

void setTamano(int alt, int anch) {}void setPosicion(int x, int y) {}void setVisible(bolean v) {}void pintar(Graphics g) {}

(…)}

class Boton extends Ventana {private String texto;

void setTexto(String texto) {}void addCtrlAccion(

CtrlAccion ctrl) {}(…)}

class Etiqueta extends Ventana {private String texto;

void setTexto(String texto) {}}

[15]

29HerenciaVentana

- d: Dimension- xpos: int- ypos: int- color: Color+ setTamano()+ setPosicion()+ setVisible()+ pintar()

Etiqueta- texto: String+ setTexto()

Boton- texto: String+ setTexto()+ addCtrlAccion()

(xpos, ypos)

30Relaciones de Clases

class Ventana {private Dimension d; //(alto, ancho)private int xpos, ypos;private Color color;

(…)

void setTamano(int alt, int anch) {}void setPosicion(int x, int y) {}void setVisible(bolean v) {}void pintar(Graphics g) {}

(…)}

class Contenedor extends Ventana {private Ventana [] componentes;private String titulo;

void agrVentana(Ventana comp) {}void setTitulo(String t) {}

}

[16]

31Agregaciónclass Contenedor extends Ventana {

private Ventana [] componentes;private String titulo;

void agrVentana(Ventana comp) {}void setTitulo(String t) {}

}

Contenedor- titulo: String+ agrVentana()+ setTitulo()

Ventana0..*-componentes Implementación: por referencia.

El todo tiene apuntadores a sus partesEl todo y sus partes son independientes

32Composiciónclass Caipiriña {

private Cachaza cachaza;private Azucar azucar;private Limon limon;private Hielo hielo;

void mezclar() {}void servir() {}void repetir() {}

}

-cachaza -azucar -limon -hielo

Caipiriña

+ mezclar()+ servir()+ repetir()

Cachaza Azucar Limon Hielo

Implementación: por valor.El todo contiene instancias de sus partesEl todo y sus partes son una misma entidad

[17]

33

-ejemplares -titulo

Diagrama de Clases

Obra+titulo: String-nReserva: Integer+buscarEjemplar()

Libro+ISBN: Integer-tPrestamo: Dias=30

Revista+ISSN: Integer-tPrestamo: Dias=10

Autor-obras -autores

0..* 1 1..* 1..*

Ejemplar-codigo: Integer-cantidad: Integer+exponer()+reservar()+borrarReserva()+prestar()+devolver()+retirar()+reponer() Herencia

Asociación

34Diagrama de ObjetosLibro

titulo: StringnReserva: Integer+buscaLibro()

Autorapellido: Stringpaís: String+buscaAutor()

obras1..* 1..*

gabo: Autorapellido: Garcíapaís: Colombia

novela100: Librotitulo: Cien años ...nReserva: 100264

cuento2: Librotitulo: El ahogado ..nReserva: 100185

[18]

35Diagrama de ObjetosContenedor

- titulo: String+ agrVentana()+ setTitulo()

Ventana0..*

IU_Acceso:Contenedor

:Etiqueta :Etiqueta

:CTexto

:Etiqueta

:CTexto:Imagen

:Boton

:Boton

+mensaje +etiqNombreUsr

+nombreUsr

+etiqClave

+llave

+botonAceptar

+botonCancelar+clave

36Paquete

Gestión

GestionMonitor

crearMonitor()validarAcceso()

actualizarMonitor()borrarMonitor()

GestionLector

crearLector()actualizarLector()borrarLector()

GestionItem

consultarItem()reservarItem()borrarReserva()prestarItem()devolverItem()

Interfaces Base deDatos

Gestión

[19]

37

Gestión

Interfaz

GestionEjemp

consultarEjemp()reservarEjemp()borrarReserva()prestarEjemp()devolverEjemp()

GestionEjempGestionEjemp

consultarEjemp()reservarEjemp()borrarReserva()prestarEjemp()devolverEjemp()

GestionReserva

consultarEjemp()reservarEjemp()borrarReserva()

GestionPréstamo

prestarEjemp()devolverEjemp()

Ventanas Base deDatos

Gestión

Ventanas Encapsula contenidodel paquete

38Vista Lógica

• Estructura– Clases– Objetos

• Comportamiento– Secuencia– Colaboración– Estados– Actividad

: Monitor: IU_Inicio : Gestión

Monitor: TarjetaMonitor

: IU_MenuPpal

1: Activa

3: DiálogoID_Clave

Ingresa IDy Clave

5: validarAcceso( ID, Clave) 6: buscarCódigo( ID)

7: leerContraseña( )

8: Activa

9: MenuMonitor

4: BotonAceptarClick( )

2: Activa

«Boundary»IU_MenuPpal

«Boundary»IU_Acceso

botAceptarClick()botCancelarClick()

color : Colorposicion : XYCoord

«Control»GestionMonitor

crearMonitor()validarAcceso()

actualizarMonitor()borrarMonitor()

«Entity»TarjetaMonitor

leerId()leerContraseña()actContraseña()

id : Stringcontraseña: String

[20]

39Diagrama de Secuencias

: Monitor: IU_Inicio : Gestión

Monitor: TarjetaMonitor

: IU_MenuPpal

1: Activa

2: DiálogoID_Clave

Ingresa IDy Clave

3: BotonAceptarClick( ) 4: validarAcceso( ID, Clave) 5: buscarCódigo( ID)

6: leerContraseña( )

7: Activa

8: MenuMonitor

Forma de instancia

40Diagrama de Secuencias

:Computer :PrinterServer :Printer :QueuePrint(file)

Print(file) [printer free]Print(file)

[printer busy]Store(file)

Forma genérica

[21]

41Diagrama de Colaboración

: Monitor

: IU_Inicio

: GestiónMonitor

: TarjetaMonitor

: IU_MenuPpal

1: Activa

2: DiálogoID_Clave

3: BotonAceptarClick( )4: validarAcceso( ID, Clave)

5: buscarCódigo( ID)6: LeerContraseña( )

7: Activa8: MenuMonitor Forma de instancia

42Diagrama de Estados

EnProcesoconstructor()

Prestado Reservado

Disponible

Prestado Reservadoprestar()

Disponible

retirar()

destructor()

exponer()

devolver()borrarReserva()

reservar()prestar()

Ejemplarcodigo: Integercantidad: Integer

exponer()reservar()borrarReserva()prestar()devolver()retirar()reponer()

estado: Integer

retirar()retirar()

retirar()

[22]

43Diagrama de Estados

EnProcesoconstructor()

Circulando

Prestado Reservado

Disponible

Prestado Reservadoprestar()

Disponible

retirar()

destructor()

exponer()

devolver()borrarReserva()

reservar()prestar()

Ejemplarcodigo: Integercantidad: Integerestado: Integerexponer()reservar()borrarReserva()prestar()devolver()retirar()reponer()

Diagrama de Actividad

Mensaje cod.usuario NoOK

Verificar cod.usuario

Recibir cod.usuario y libro

[Aceptar]

[Cancelar]

[EnProceso]

[Reservado OR Prestado]

Verificar cod.libro

Verificarestado libro

Reservarlibro ausuario

[Disponible]

Mensaje cod.libro NoOK

[NoOK]

[NoOK][OK]

[OK]

Informarlibro fuera de

servicio

Informarfecha

disponible

[23]

45Mecanismos de Extensión

TarjetaLector{persistent}

{autor=ARG}

Valores etiquetados

6: Crear( )

: GestiónMonitor

: TarjetaMonitor{new}

Restricciones

Propiedades “nombre-valor” Limitan semántica

46Mecanismos de Extensión

Adicionan semántica al elemento original

«Control»GestiónMonitor

«Actor»Monitor

«Boundary»IU_Inicio

«Entity»TarjetaMonitor

Estereotipos

[24]

47

Categorías de clases:

– Entidad (Entity): Modelado de información

– Frontera (Boundary): Modela las comunicacionescon el exterior

– Control (Control): Modela el comportamiento

– Excepción (Exception): Gestiona excepciones

Clases de Análisis

48Construcción de la Vista Lógica

Autorizar Acceso

Usuario

Vista de Casos de Uso

Vista Lógica

: Usuario: IU_Inicio : Gestión

Monitor: TarjetaMonitor

: IU_MenuPpal

1: Activa

3: DiálogoID_Clave

Ingresa IDy Clave

5: validarAcceso(ID, Clave) 6: buscarCódigo(ID)

7: leerContraseña( )

8: Activa

9: MenuMonitor

4: BotonAceptarClick( )

2: Activa

TarjetaMonitor

UsuarioGestiónMonitorIU_Inicio

IU_MenuPpal

[25]

49Ejemplo

Caso de uso:Autorizar AccesoActores: Usuario (iniciador)Tipo: PrimarioDescripción:

– El Usuario activa al sistema.– El sistema solicita al Usuario su Identificación y Clave.– El sistema verifica Identificación y Clave del Usuario.– El sistema presenta al Usuario el menú principal.

50Ejemplo: Autorizar Acceso

Usuario

«Entity»TarjetaMonitor

«Entity»TarjetaMonitor

leerId()leerContraseña()actContraseña()

id : Stringcontraseña : String

El sistema verifica Identificación y Clave del Usuario

[26]

51Clases de Entidad

Reflejan el mundo real o se crean para tareasinternas No dependen del entorno del sistema Pueden ser independientes de la aplicación Se obtienen examinando la responsabilidades

del sistema en los casos de uso

52Ejemplo: Autorizar Acceso

Usuario

«Entity»TarjetaMonitor

«Boundary»IU_Acceso

El sistema solicita al Usuario su Identificación y Clave

[27]

53Clases de Frontera

Proveen la interfaz con el usuario o conotros sistemas Dependen del entorno del sistema Se obtienen examinando las relaciones

actor-sistema en los casos de uso Se refinan durante el diseño para considerar

los protocolos de comunicación

54Ejemplo: Autorizar Acceso

Usuario

«Control»GestionMonitor

«Boundary»IU_Acceso

«Entity»TarjetaMonitor

El sistema solicita al Usuario su Identificación y Clave. El sistema verifica Identificación y Clave del Usuario. El sistema presenta al Usuario el menú principal.

[28]

55Ejemplo: Autorizar Acceso

Monitor

«Boundary»IU_MenuPpal

«Boundary»IU_Acceso

«Entity»TarjetaMonitor

«Control»GestionMonitor

crearMonitor()validarAcceso()

actualizarMonitor()borrarMonitor()

«Control»GestionMonitor

56Clases de Control

Coordinan los eventos necesarios paraimplementar el comportamientoespecificado en el caso de uso

Son dependientes de la aplicación

En Casos de Uso sencillos: en una clase decontrol, un sólo método implementa todo elcaso de uso

[29]

57Diagrama de Clases de Análisis

Usuario

TarjetaMonitorGestionMonitor

IU_Acceso

IU_MenuPpal

Patrón MVC: Modelo-Vista-Controlador

58Caso de Uso Autorizar AccesoCaso de uso: Autorizar AccesoActores: Usuario (iniciador)Tipo: PrimarioFlujo Principal: El Usuario activa al sistema. El sistema presenta al Usuario la ventana de diálogo de

la Figura 1 para solicitarle su Identificación y Clave. El Usuario ingresa su Identificación y Clave y

selecciona una de las opciones : Aceptar y Cancelar. Si elige la opción Aceptar, Subflujo S1: Verificar

Identificación y Clave del Usuario Si elige la opción Cancelar, Subflujo S2: ...

[30]

59Diagrama de Secuencias

: Usuario: IU_Acceso : Gestión

Monitor: TarjetaMonitor

: IU_MenuPpal

Activa

Solicita ID+Clave

ID+Clave Consulta ID+Clave

Activa

Muestra Menu Monitor

Activa

ID+Clave

60Modelado de Aplicaciones Web

ServidorWeb

Navegador(Cliente)

Aplicación Web Básica

PáginaWeb

distribuye interpreta

http

El Navegadorsolicita unapágina estática

[31]

61

AplicaciónSrv. E-mailSrv. Archivos

Modelado de Aplicaciones Web

PáginaComandos

ServidorWeb

Navegador(Cliente)

Aplicación Web Dinámica

PáginaWeb

Base de Datos

construyeaccede

distribuye interpretaprocesa

http

El Navegadorsolicita unapágina dinámica

62Web Application ExtensionAplicación Web Dinámica

Base de Datos

construye

accede

distribuye interpretaprocesa

http

NavegadorServidorWeb

PaginaClientePagina

Servidor

Pág. Web Pág. ClientePág. Comandos Pág. ServidorPág. Web Pág. ClientePág. Comandos Pág. Servidor

[32]

63Formularios

PaginaCliente

Formu-lario

TextboxText areaCheckboxRadio button groupSelection list

*

PaginaServidor

«submits»

1 1..*

El Formulario se envíaa la Página Servidor La Página Servidortiene acceso a lainformación recogidapor el Formulario

64Ejemplo de Formularios

Home

Miembros

codigoclaveentrar Pagina

Servidor«submits»

SaberMas

Visitante

codigobot_OK

«link»

www.tuarchivo.com

[33]

65Uso de Formularios

PC_Bienv PC_Reg

Frm_Reg PS_PrReg«submits»

«links»PC_Conf

«builds»

«query»

AccesoBD

66Uso de PHP

Frm_Reg

PS_PrReg«submits»

Base deDatos

«query»

PHP

PC_Conf

«builds»

JDBC

[34]

67Uso de Servlets

Frm_Reg

PS_PrReg«submits»

Base deDatos

«query»

Servlet

PC_Conf

«builds»

JDBC

68

PC_Conf

Uso de Servlets + Java Beans

Frm_Reg

PS_PrReg«submits»

Base deDatos

Cliente

leerNombre()leerNIT()

nombre : StringNIT : Integer

Objetos delNegocio

Otrasaplicaciones

«query»Bean

Servlet

«builds»

JDBC

[35]

69

PC_Conf

Uso de Servlets + JSP + Java Beans

Frm_Reg

PS_PrReg«submits»

Base deDatos

Cliente

leerNombre()leerNIT()

nombre : StringNIT : Integer

Objetos delNegocio

JDBC

Otrasaplicaciones

«query»Bean

Servlet

PS_Conf

JSP

«builds»

Ejemplo: Inscripciones

Usuario Inscribir Alumno

Inscripciones

Aplicación web que permite registrar informaciónde los alumnos y entregarles un código

Diagrama deCasos de Uso

[36]

Ejemplo: Inscripciones

Usuario

AlumnoRegistro

Bienvenida

Confirmacion

Formulario

Diagrama de Clasesde Análisis

Ejemplo: Inscripciones72

Alumno

leerNombre()

leerCodigo()

nombre : Stringcodigo : Integer

fijarNombre()

fijarCodigo()

«submits»

Base deDatos

JDBC «query»

«builds»

«link»

«servlet»Registro

«JSP»JSPConfirma

ConfirmacionBienvenida Formulario

Frm_Reg

Diagrama de Clasesde Diseño

[37]

Ejemplo: Inscripciones 73

Formulario.html

Confirmacion.html

Bienvenida.html

JSPConfirma.jsp JSPConfirma.class «war»Inscripcion

Registro.java Registro.class

Alumno.java

DAOAlumno.java

«table»Alumno

Alumno.class

DAOAlumno.class

Web.xml

«library»MySQL.JDBC

«database»InscripcionBD

Diagrama deComponentes

74Ejemplo: Inscripciones

«HTTP»

PC Alumno Servidor Web

Servidor Basede Datos

«JDBC/SQL»«becomes»

InterfacesHTML

InterfacesHTML

«database»InscripcionBD

«war»Inscripcion

Interfaces HTML

Formulario.html

Confirmacion.html

Bienvenida.html

Diagrama deImplantación

[38]

75Herramientas• StarUML – The Open Source UML/MDA Platform

http://staruml.sourceforge.net/• EclipseUML

http://www.omondo.com/• Eclipse UML2

http://www.eclipse.org/modeling/mdt/?project=uml2• ArgoUML - Open source modeling tool for UML 1.4 diagrams

http://argouml.tigris.org/• Rational Rose

http://www.ibm.com/developerworks/rational/products/rose/• IBM Rational products and UML

http://www.ibm.com/software/rational/uml/products.html

76Referencias• OMG. “Unified Modeling Language Specification. Versión 1.4.2”. International

Standard ISO/IEC 19501. Documento OMG formal/05-04-01. Enero 2005.Disponible en: http://www.omg.org/spec/UML/

• Andrew Watson. “Visual Modelling: past, present and future”. OMG. 2008.Disponible en: http://www.uml.org/#Articles

• OMG. “Introduction to OMG's Unified Modeling Language (UML)”. 2009.Disponible en: http://www.omg.org/gettingstarted/what_is_uml.htm

• H.-E. Eriksson, M. Penker. “UML Toolkit”. John Wiley. 1998.• Robert Martin. “UML para programadores Java”. Prentice Hall. 2003.• IBM. “UML Resource Center”.

http://www.ibm.com/software/rational/uml/• Terry Quatrani. "Visual Modeling with Rational Rose 2002 and UML". Addison-

Wesley. 2002.• Jim Conallen. “Building Web Applications with UML”. Addison-Wesley. June 2000.• Ivar Jacobson, Grady Booch and James Rumbaugh. “The Unified Software

Development Process”. Addison-Wesley. 1998.