Lenguaje Unificado de Modelado -...
Transcript of Lenguaje Unificado de Modelado -...
[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.