21. Package : Sistema de Reservaciones Agencia Agente Aerolínea Banco Package: No se muestra su contenido en el diagrama Package: Agencia muestra el contenido de sus clases Agente y Aerolínea Package: Sistema de Reservaciones, contiene los packages de Agencia y Banco Paquetes (packages) En UML, los paquetes permiten organizar el modelado los elementos del sistema en grupos, permiten una organización jerárquica del modelo de elementos del sistema. 11/02/12 F.E.R.D.
22. Compras compañía pantallas Elementos del modelo Subpackage Package name reportes dominio vehículo camioneta camión Propietario 0 ..* Package container Package dependency Paquetes (packages)
23. Estereotipos << interface>> Set Tag estereotipo Antación (Annotation) Vehiculo3 - carga : double - maximaCarga : double + getCarga () : double + getMaximaCarga() : double + addCaja(peso: double) : double peso en newtons peso en kilogramos Nota o comentario Los estereotipos aplican tanto a relaciones como a nodos
24. Restricciones (Constraints) Jugador Las restricciones proporcionan al modelo ciertas condiciones que aplican a un nodo o link. Equipo { persistente } { miembro } { Mínimo 3 Jugadores mujeres y mínimo 4 jugadores hombres } * * * * Constraint
25. Valores etiqueta (tagged values) Sever Los valores etiqueta permiten agregar nuevas propiedades a los nodos en un diagrama. { version= 1.3 } Valores etiqueta {procesadores= 4 } __________ __________ _____ __________ __________ _______ __________ documento.java
26.
27.
28.
29.
30. Diagramas de Casos de Uso Los casos de uso representan la funcionalidad dada por el sistema a los usuarios externos. el cliente pregunta por el balance 11/02/12 F.E.R.D.
31.
32. Nueva Reservación Modificar Reservación Borrar Reservación Check in Huésped Check out Huésped Buscar Huésped por nombre SISTEMA HOTELERO Recepcionista Telefonista Registrador 11/02/12 F.E.R.D.
33. Nueva Reservación Modificar Reservación Borrar Reservación Check in Huésped Check out Huésped Buscar Huésped por nombre SISTEMA HOTELERO Recepcionista Telefonista Registrador Adicinar detalles Huésped Buscar Reservación Habilitar Teléfono Deshabilitar Teléfono <<extend>> <<include>> <<include>> <<include>> <<include>> <<include>> << actor>> Monitor Teléfonos 11/02/12 F.E.R.D.
34.
35. Nombre Actor Estado Puntos de Extensión Extends Precondiciones/ Asunpciones Post-condiciones Flujo de Eventos Nueva Reservación Recepsionista, Resgistrador Esperando por revisión del PM Adicionar detalles Huésped Ninguna El usuario esta logeado y la pantalla de reservaciones ha sido seleccionada La lista de reservaciones es actualizada si la reservación es aceptada 1. Se muestra al usuario lista de tipos de cuarto 2. El usuario selecciona el tipo cuarto requerido 3. El usuario entra fechas inicial y final o duración 4. El usuario inicia búsqueda cuarto disponible 5. Si las fecha están mal especificadas [A1] 6. Si no encontró cuarto disponible [A2] 7. Si el cuarto esta disponible, se muestra precio 8. Si el cliente rechaza la oferta [A3] 9. (Adionar detalles Huésped) punto de extensión 10. ………………… 11/02/12 F.E.R.D.
36.
37.
38.
39.
40.
41. Notación UML de las clases Vehículo - carga : double = 0.0 Nodos clase: Compañia Es una clase concreta, en donde sus miembros no están modelados. InputStream <<interface>> Es una clase abstracta ( nombre en itálicas ) Es una interface Set - cargaMaxima : double + getCargaMaxima() : double + getCarga() : double + addionarCaja(peso : double) : boolean a) b) c) d) Es una clase concreta, en donde sus miembros están modelados. 11/02/12 F.E.R.D.
42. Vehículo - carga : double = 0.0 - cargaMaxima : double + setCargaMaxima(maximo : double) + getCargaMaxima() : double + calcularDistanciaRecorrida() : double - Destinos [1 . . *] : String <<constuctor>> + Vehiculo(cargaMaxima : double ) <<accesor>> + getcarga() : double <<mutator>> + adicionarCaja(peso : double) : boolean <<bussiness logic>> # calcularEficiencia() :double modos de acceso nombre clase tipo atributo multiplicidad atributo valor inicial atributo atributos métodos nombre método nombre parámetro tipo retorno tipo parámetro Notación UML de las clases nombre atributo 11/02/12 F.E.R.D.
43. Notación UML de los objetos Count - counter : int = 0 - instanciaNumbre : int Ejemplo de una clase con elementos estáticos, counter es un atributo estático y getTotalCounter() un método estático. UML define modos de acceso y sus símbolos: modo de acceso símbolo private - protected # Public + - getTotalCount() : int + getMyNumber : int Elementos estáticos 11/02/12 F.E.R.D.
44. Notación UML de los objetos objectName:NombreClase atributo1 = valor1 La notación de un objeto es diferente a la de una clase ya que un objeto es una instancia de una clase atributo2 = valor2 objectName:NombreClase :NombreClase Si se conoce que el objeto es requerido pero no se le a identificado un nombre Sintaxis: 11/02/12 F.E.R.D.
45. Asociaciones y Enlaces (links) Enlace (link ): Asociacción: Persona Carro Propietario La relación representada por una línea sobre un Diagrama de Clases es una Asociación , la Asociación debe tener un nombre indicando una descripción lógica del propósito de la relación. :Persona :Carro Propietario Una Asociación entre dos Clases Una relación entre dos objetos es llamada un Enlace (Link). Un Link entre dos Objetos 11/02/12 F.E.R.D.
46. Asociaciones y Multiplicidad Carro Motor movido por La Multiplicidad muestra cada posible combinación de cómo varios objetos de una clase pueden ser asociados con objetos de otra clase. Persona Carro Propietario Diagrama de Clases Carro, Motor, Persona 1 1 1 * :Persona :Carro Propietario 1 * :Motor movido por 1 1 11/02/12 F.E.R.D.
47. Asociaciones y Multiplicidad Instructor Clase Estudiante Ejemplo de Diagrama de Clases 1 .. * 3..12 Plan Cubierta 1 computador 1 1 Salón 1 1 .. * 0 .. * 1 1 0 .. * 3..12 11/02/12 F.E.R.D.
48.
49.
50. Asociaciones Complejas Banco Cliente Bancos con Clase Cualificada : Cuando dos clases tienen una asociación lógica “muchos-a-muchos”, Se asigna un valor de atributo único que actúa como índice. * * Banco ideCliente Cliente Bancos con * Banco codBanco Cliente Bancos con * Asociación “muchos-a-muchos” Asociación Cualificada para Banco referenciado a un Cliente Asociación Cualificada para Cliente referenciado un Banco 11/02/12 F.E.R.D.
51.
52. Notación UML para Herencia Mamifero Perro Mamifero Perro Gato Mamifero Perro Gato Herencia: Muestra como atributos y funcionalidad pueden ser compartidos entre clases de similar naturaleza o propósito. 11/02/12 F.E.R.D.
53.
54. Notación UML para Herencia Mamífero numPatas Comer() Perro Gato maullar() ladrar() Especialización: El concepto de Especialización ocurre cuando se crea una nueva clase que tiene toda la funcionalidad, estructura y propósito de una clase ya existente, pero requiere de nuevos código o atributos Mamífero numPatas Comer() Perro oveja valar() maullar() Perro ladrar() 11/02/12 F.E.R.D.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69. Estructura Básica de un Diagrama de Secuencia Actor 1 Actor 2 Object2:Class2 Object1:Class1 Líneas de vida que representan actores del sistema Líneas de vida que representan objetos 11/02/12 F.E.R.D.
70. Diagrama de Secuencia Actor 1 Object2:Class2 Object1:Class1 Object3:Class3 tarea1 tarea2 X <<create>> tarea3 La destrucción de un objeto se representa como una X al final de la línea de ejecución del objeto. Si la vida de un objeto termina durante el Diagrama de Secuencia la línea de vida termina inmediatamente 11/02/12 F.E.R.D.
71.
72. Usuario Internet : LoginService : LoginServlet Return (with value) Anonymous class role :RDDMS user:User “ login” user:=login SELECT * FROM User WHERE user_name=? “ create” Lífeline Activation Box Named class role Message Object created Ejemplo de Diagrama de Secuencia en el cual un actor inicia una secuencia de login con una aplicación web 11/02/12 F.E.R.D.
75. Ejemplo de Diagrama de Secuencia Diagrama de Secuencia de la documentación escenario de caso de uso Firmar Acto Administrativo
76.
77.
78. Un Diagrama de Colaboración Actor 1 Object2:Class2 Object1:Class1 Object3:Class3 1: task1 1.1: task2 1.2: <<create>> 1.3: task3 Tanto los Diagramas de secuencia como los Diagramas de colaboración tienen sus ventajas y son incluidos dentro de un proyecto para clarificar completamente un escenario Un Diagrama de Colaboración es esencialmente una vista diferente de un Diagrama de Secuencia. 11/02/12 F.E.R.D.
79. Diagrama de Secuencia Actor 1 Object2:Class2 Object1:Class1 Object3:Class3 tarea1 tarea2 X <<create>> tarea3 Un Diagrama de Colaboración es esencialmente una vista diferente de un Diagrama de Secuencia. 11/02/12 F.E.R.D.
80. Ejemplo de un Diagrama de Colaboración client sessionBean txn: UserTransaction 3: createStatement() 5: createStatement() 1: <<create>> 2: begin() 7: rollback() 10:<<destroy>> costumerDB :Connection :Statement 3.1 <<create>> invertorDB :Connection :Statement 5.1: <<create>> << global >> 4: executeUpdate() 8: close() 6: executeUpdate() 9: close() << global >> <<local>> <<local>> {trasient} {trasient} <<local>> estereotipo object constraint {trasient} mensaje objeto link 11/02/12
81.
82.
83. Diagramas de Transición de Estados Blockeb Runnable Running transition state node New initial state final state Dead start() run() Scheduler unbloked blocking event Un ejemplo de Diagrama de transición de Estados 11/02/12 F.E.R.D.
84. Diagramas de Transición de Estados Estado Todos los objetos tienen un estado . El estado actual de un objeto esta dado por los valores almacenados en sus atributos. Evento Un evento es un estimulo que ínsita a un objeto hacer una transición de un estado a otro. Los eventos toman la forma de una llamada a un método, El método es una tarea o una serie de tareas dentro de un objeto que alteran el estado del objeto. Transiciones Las transiciones llevan a un objeto de un estado a otro. Para que ocurra una transición, deben cumplirse unas condiciones . 11/02/12 F.E.R.D.
85.
86.
87.
88. Diagramas de Transición de Estados Tabla de Transiciones Cuando tenemos varios estados, puede que desde un estado podamos pasar a varios estados distintos dependiendo de qué condiciones se cumplan. Para llevar un control sobre esto y no perdernos cuando tengamos más estados y varias transiciones posibles, se suele crear una tabla de transiciones : En esta tabla vemos lo siguiente: Si estamos en el estado A o B y se cumple la condición 1 pasamos al estado C Si estamos en el estado B y se cumple la condición 2 pasamos al estado A Si estamos en el estado C y se cumple la condición 3 pasamos al estado B 11/02/12 F.E.R.D. Condición Estado actual A B C 1 C C X 2 X A X 3 X X B
89. Diagramas de Transición de Estados Disponible En sobregiro Diagrama de Transición de Estados para una Cuenta Bancaria Pago en efectivo o cheque Deposito en efectivo [cuenta > sobregiro] Retiro en efectivo Retiro Retiro Pago en efectivo/cheque [cuenta < sobregiro] Cierre de la cuenta Cheque aprobado 11/02/12 F.E.R.D.
90.
91.
92. Transición Actividad Fin Inicio Línea Separador Bifurcación Unión Bifurcación solo 2 de 3 necesitan ser completadas 2 [condición1] [condición 2] Ramificación Mezcla (merge) 11/02/12 F.E.R.D.
93. Diagrama de Actividad p=o.getNextProduct() o.putOnBackOrder(p) n=inventory.getCuont(p) Inventory.setCount(p,n-1) [o.hasMoreProducts()] else else [n>0] Branching and Loooping Conditión Ramificación (Branch) 11/02/12 F.E.R.D.
94.
95.
96.
97. Un Diagrama de Componentes representa los componentes que componen una aplicación, sistema o empresa. Los componentes, sus relaciones, interacciones y sus interfaces públicas. Diagramas de Componentes Componente a) Icono genérico b) Icono que representa un archivo fuente c) Icono que representa un archivo ejecutable Applet.java Calculator.jar 11/02/12 F.E.R.D.
98. Diagramas de Componentes Calculator.jar CalcApplet.class CalcGUI.class CalcModel.class CalcApplet.java CalcGUI.java CalcModel.java Calculator.html {versión =2.1} {versión =1.3} {versión =1.0} En la figura se muestran las dependencias del empaquetamiento de una pagina HTML que contiene un applet. Un ejemplo de Diagrama de componentes 11/02/12 F.E.R.D.
99.
100.
101. Driver Mechanic 1..5* Team raceNo Meeting Car Diagrama de Clases mostrando áreas de alta Cohesión Spectator date Race RaceSchedule 0..* 1..* 1..* 1..* 2..* Cohesion y Coupling Las líneas rojas no son notación UML 11/02/12 F.E.R.D.
102.
103. Diagrama de Componentes :Team :Spectator RaceMeeting Diagrama de Componentes de sistema para Carreras de Automovilismo 11/02/12 F.E.R.D.
104. Diagrama de componentes :Team Diagrama de Componentes de sistema para Carreras de Automovilismo Driver Driver Mechanic Team Car :Spectator Spectator :RaceMeteeing Meeting RaceSchedule Race Diagrama de componentes más completo donde se muestran las clases componentes 11/02/12 F.E.R.D.
105.
106.
107.
108.
109.
110. Diagramas de Despliegue (Deployment) Client:PC/Windows7 WebServer: SunEK33/Linux Ubunto Printer Ejemplo de Diagrama de Despliegue TCP/IP instance:Component nodo físico Nombre del nodo Tipo de nodo Relación de comunicaciones parallel port browser HTTPD HTML Form ISP Page Bean
111.
112. Solución: Usar el patrón de diseño Transfer Object para manejar múltiples elementos de datos a través de una capa. Diagrama de Clases