Documentos de Académico
Documentos de Profesional
Documentos de Cultura
– Diagrama de Contexto.
– Otras Características de las Clases.
– Notas.
• Introducción a los Casos de Usos.
• Fase de Captura de Requerimientos y Análisis
– Diagramas de Casos de Usos.
– Diagramas de Actividades.
Contenido
• Fase de Diseño
– Diagramas de Clases y Objetos.
– Diagramas de Secuencias.
– Diagramas de Colaboraciones.
– Diagramas de Estados.
– Diagramas de Componentes.
– Diagramas de Despliegue o Distribución.
• Conclusiones.
¿Qué es un Modelo?
Un Modelo es
una Simplificación de la Realidad
Conceptos Importantes
• Modelo: captura una vista de un sistema del mundo real. Es una
abstracción de dicho sistema, considerando un cierto propósito.
Así, el modelo describe completamente aquellos aspectos del
sistema que son relevantes al propósito del modelo, y a un
apropiado nivel de detalle.
• Diagrama: una representación gráfica de una colección de
elementos de modelado, a menudo dibujada como un grafo con
vértices conectados por arcos.
• Metodología: Conjunto de procedimientos, técnicas, herramientas
y un soporte documental que ayuda a los desarrolladores a
realizar nuevo software
Conceptos Importantes
Modelos y Diagramas
• 5ª Generación (1994-1996)
– Cliente/Servidor:
• Developer, Power-Builder, Forte, Visual Basic,
Java, Visual FoxPro.
• 6ª Generación (1997 – 2002)
– WIS: Web Information System, Open Source.
– Perl, PHP, Java, DHTML, MySql, PostGress.
• 7ª Generación (2002 - …)
– Arquitectura x Componentes:
• JEEE, .Net, BPMS, SOA.
Introducción a UML
Diagrama de Diagrama de
Caso de Uso Clases
Diagrama de
Secuencia Diagrama de
Objetos
Diagrama de Modelo
Colaboración Diagrama de
Componentes
Diagrama de
Estados Diagrama de
Diagrama de Distribución
Actividad
Diagramas de UML
Abstracción Herencia
Polimorfismo Encapsulamiento
Relaciones
Abstracción
• Es quitar las Propiedades y Acciones de un Objeto y dejar
solo las necesarias.
• Ignorancia Selectiva
– La abstracción nos ayuda a trabajar con cosas
complejas
– Se enfoca en lo importante
– Ignora lo que no es importante (simplifica)
• Una clase es una abstracción en la que:
• Se enfatizan las características relevantes
• Se suprimen otras características
• Una clase debe capturar una y solo una abstracción clave
Herencia
• Es la Cualidad mas importante
de la OOP.
• Es un mecanismo mediante el VehiculoDeMotor
A ttributes
cual se puede crear una nueva + Cilindrada : int
+ NumeroDeRueda : int
clase partiendo de una Operations
+ acelelar() : void
existente, se dice que la nueva
clase hereda las características
de la clase existente, aunque se Coches Motos
A ttributes A ttributes
le puede añadir mas + NumeroDePuertas : int + TipoCarenado : string
Operations Operations
capacidades o modificar las que
tiene.
Polimorfismo
• En ocasiones una acción tiene el mismo nombre en
diferentes Clases o en la misma, pero realizara una
operación diferente.
• En la OOP cada Clase “SABE” como realizar cada
operación.
• Es la posibilidad de que dos Métodos implementen
distintas acciones, aun teniendo el mismo nombre,
dependiendo del Objeto que lo ejecuta o de los
parámetros que recibe.
Polimorfismo
Frenar Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Encapsulamiento
Nombre de Electrodomestico
paquete
Paquetes
Paquete Vehiculo
VehiculoDeMotor
A ttributes
+ Cilindrada : int
+ NumeroDeRueda : int
Operations
+ acelelar() : void
Coches Motos
A ttributes A ttributes
+ NumeroDePuertas : int + TipoCarenado : string
Operations Operations
Paquetes
• En las primeras fases del desarrollo del sistema es
posible utilizar los paquetes para los siguientes
objetivos:
– Tener una vista del sistema sin mucho detalle.
– Tener vistas de pequeñas porciones del sistema.
– Crear pequeñas porciones del sistema que pueden
trabajar independientemente.
– Existe una dependencia entre paquetes cuando por lo
menos una clase de un paquete depende de una clase
dentro de un segundo paquete.
Paquetes
Reglas del
Interfaces
Negocio
Entidad
Paquetes
Dep. Comercial
Dep. Cartera
Lavadora
{ From Electrodomestico }
A ttributes
Operations
Relaciones
• Todo sistema abarca muchas clases y objetos
• Los objetos contribuyen en el comportamiento de un
sistema colaborando entre si
– La colaboración se logra a través de las relaciones
• Existen dos tipos principales de relaciones
– Asociación
– Agregación
Asociaciones
• Son las relaciones entre los Objetos (Clases).
• Es una relación estructural que especifica que los
Objetos de un elemento están conectados con los
Objetos de otro.
• Los Objetos se pueden asociar con otro en mas de una
forma y dirección.
• Un Objeto se puede asociar con mas de un Objeto y de
diferentes Clase o Característica.
• Es posible que la Asociación se dé de manera recursiva
en un Objeto
Asociaciones
• Existen cuatro adornos que se aplican a las asociaciones
para facilitar su comprensión:
– Nombre: describe la naturaleza de la relación.
– Rol: Cuando una clase participa en una Asociación
esta tiene un rol especifico. Es la cara que dicha
Clase presenta a la Clase que se encuentra en el otro
extremo
– Multiplicidad: Es señalar cuantos Objetos se pueden
conectar a través de una instancia de la Asociación.
Asociaciones
– Agregación: Representa una relación del tipo “tiene-
un”. Es un tipo especial de Asociación.
– Composición: Es una variación de la Agregación
simple. Es la forma de Agregación, con una fuerte
relación de pertenencia y vidas coincidentes de la
parte del todo.
Asociaciones
Es la Asociación entre
un Jugador y un
Equipo
Dos Vía
Asociaciones
Diferente
Característica
Relaciones Complejas
Restricciones en
las Asociaciones
• En Asociaciones entre Clases pueden existir ciertas
reglas.
• Se establece una Restricción en una Asociación. En este
caso, la Asociación “Atiende“ está restringida para que
el Cajero atienda al Cliente en turno.
Restricciones en
las Asociaciones
• Otro tipo de Restricción es la relación O (distinguida
como {Or}) en una línea discontinua que conecte a dos
líneas de Asociación.
• La siguiente figura modela a un Estudiante que elegirá
entre un Curso Académico o Comercial
Clase de Asociación
Reservacion
Recepcionista Loc aliza >>
Qualifiers A ttributes
A ttributes - NumeroDeConfirmacion : int 1 *
Operations
Operations
Asociaciones Reflexivas
Sistema
A ttributes
Formulario
Operations
+ mostrarFormulario() : void
Agregación
• Es una estrecha relación que existen entre varios
Objetos.
• En un Objeto que se conforma de una combinación de
diversos tipos de objetos.
• Una Clase consta de otra.
Agregación
1
EquipoDeComputo
2 1 1 1 1
Altavoz Gabinete Teclado Monitor Raton
1..3 1
1 1..2 * 0..2 1..2 0..*
TarjetaDeSonido Boton Bola
UnidadDisquete UnidadDisco Ram CdRom TarjetaDeVideo
1
Ejemplo de Composición.
MesaDeCafe
1 4
SuperficieDeLaMesa Pata
Relaciones de Clases entre
Paquetes
C D = A B
La clase C pertenece al paquete A, la clase D pertenece al paquete B. Si existe una
relación de asociación entre estas clases, existe una relación de dependencia entre
paquetes. En este caso, se construye primero el paquete B, porque A depende de B.
C D = A B
C D = A B
1 1 [1]
<< esta c osida en
1
1 1
Boton se abotona en >> Ojal
1 1
Interfaces
• Es un conjunto de operaciones (Métodos) que especifica
cierto aspecto de la funcionalidad de una Clase, y es un
conjunto de operaciones (Métodos) que una Clase
presenta a otras.
• Recurso de diseño soportado por los lenguajes orientados
a objetos que permite definir comportamiento.
• Permite que clases que no están estrechamente
relacionadas entre sí deban tener el mismo
comportamiento.
• La implementación de una interfaz es un contrato que
obliga a la clase a implementar todos los métodos
definidos en la interfaz.
Interfaces
Operations A ttributes
+ Ctrl() : void Operations
+ Alt() : void + Teclazo() : void
+ RePag() : void
+ AvPag() : void
Interfaces
Vehiculo
«interface» «interface»
Acuatico Aereo
+Navegar() +Volar()
Hidroavion
Visibilidad
• UML da la opción de
indicar información
adicional a los Atributos
como su tipo o valor
Default.
Operaciones o Métodos
Busc ar en la BD
Pelic ulas
Cliente
<<include>>
Enc ontrar por
Ac tor Dependencia
Relaciones de los
Casos de Uso
• Extensión <<extend>>: Un caso de uso base incorpora
implícitamente el comportamiento de otro caso de uso
en el lugar especificado indirectamente por este otro
caso de uso.
• Extiende la funcionalidad de un Caso de Uso a otro bajo
unas condiciones
Estereotipo
<<extend>> Contabilizar
Apuntar Pelic ula
Ingresos
Cajero
Relaciones de los
Casos de Uso
• Generalización: Las Clase se pueden heredar entre si,
de igual forma sucede con los Casos de Uso. El Caso de
Uso secundario hereda las acciones y significados del
Primario, y además agrega sus propias acciones.
Agente Proveedor
Comprar un V aso
Comprar Gaseosa
de Gaseosa
Rebastecedor Recolector
Relaciones de los
Casos de Uso
• Se diferencian por el estereotipo <<uses>> (uso) o
(<<extends>>) (herencia).
• extends: Se recomienda utilizar cuando un caso de uso
es similar a otro (en sus características).
• uses: Se recomienda utilizar cuando se tiene un
conjunto de características que son similares en más de
un caso de uso y no se desea mantener copiada la
descripción de la característica.
Relaciones de los
Casos de Uso
Agrupamiento
Actividad Bifurcación
Flujo Unión
Inicio
Subdivisión
Fin
Separador Unión
Decisiones en el Diagrama
de Actividades
• Casi siempre en un Diagrama de Actividades se llegara a
un punto donde se realizara alguna decisión, donde una
lo llevara por un camino y otra por otro camino.
• Existen dos formas de representar los puntos de
decisión:
– La primera es mostrar las rutas posibles que parten
directamente una actividad.
– La segunda es llevar la transición hacia un rombo.
Decisiones en el Diagrama
de Actividades
Rutas Concurrentes en el
Diagrama de Actividades
• Conforme como se modele
las actividades, se tendrá
la oportunidad de separar
la transición en dos rutas
que se ejecutan al mismo
tiempo (en forma
concurrente) y luego se
reúna.
Indicaciones en el
Diagrama de Actividades
• También es posible enviar
una indicación. Cuando se
reciba, la indicación
provocara que se ejecute
una actividad.
• El símbolo para enviar la
indicación es un pentágono
convexo y el que recibe un
pentágono cóncavo.
Diagrama de Actividades
Ejemplo Serie de Fibonacci
Diagrama de Actividades
Proceso de Creación de un Documento
Diagrama de Actividades Hibrido
Proceso de Creación de un Documento
Diagrama de Actividades
Proceso de una Aerolínea con marcos de Responsabilidades
Ejercicio 2
Diagrama de Clases
• El Diagrama de Clases es el diagrama principal para el
análisis y diseño.
• Un diagrama de clases presenta las clases del sistema
con sus relaciones estructurales y de herencia.
• La definición de clase incluye definiciones para
atributos y operaciones.
• El modelo de casos de uso aporta información para
establecer las clases, objetos, atributos y operaciones.
• Los diagramas de clases son utilizados para ilustrar las
relaciones entre clases y son el fundamento para el
proceso de diseño
Diagrama de Clases
• Modela los conceptos del dominio de la aplicación.
• Un diagrama de clases esta compuesto por los
siguientes elementos:
– Clases: atributos, operaciones y visibilidad.
– Relaciones: Herencia, Composición, Agregación,
Asociación y Uso.
– Responsabilidades
Pasos para dibujar un Diagrama
de Clases
• Paso 1: Dibuje los Nodos de las Clases.
• Paso 2: Dibuje las Asociaciones.
• Paso 3: Coloque los Nombres y Roles de las
Asociaciones.
• Paso 4: Coloque la Multiplicidad de las Asociaciones.
• Paso 5: Dibuje las flechas de navegación.
• Paso 6: Dibuje las Clases Asociadas (si existen).
• Paso 7: Validar el modelo del Dominio.
Diagrama de Clases
Ejercicio 3
Diagrama de Objetos
• El Diagrama de Objetos es una instancia de un Diagrama
de Clases y presenta los detalles de un estado del
sistema en un punto del tiempo determinado. Se
utilizan para validar el modelo del dominio.
• Para validar el modelo del dominio es necesario
ejecutar los siguientes pasos:
– Elegir uno o más casos de uso que estén altamente
relacionados con el modelo del dominio.
– Elegir uno o más escenarios de los casos de uso
seleccionados en el punto anterior. Es recomendable
elegir escenarios que exploren diferentes
situaciones.
Diagrama de Objetos
Cancelar Curso
Cancelar Curso
Finalización Matrícula
Cerrado
Do: Generar lista de clase
Do: Reporte curso lleno
Diagrama de Estado
Interpretación para la Clase Curso:
Clase
- atributo1:
+ accion1() : void
+ accion2() : void
+ accion3() : void
acción 3
Diagrama de Estado
Ejemplo para el una Caso de Uso Comprar Productos:
Diagrama de Estado
agentefraudes.dll
AgenteFraudes BuscarPatrones
PoliticaFraudes
Diagrama de Componentes
Componentes y Clases
<<file>>
animlogo.java
<<file>>
animator.java
Diagrama de Componentes
Ejemplo
Diagrama de Componentes
Ejemplo
Diagrama de Componentes
Sub Sistemas
App
Server
Serverlets
Jsp
Jdbc
Cliente
Web Browser
Relación entre Nodos y Componentes
Diagrama de Despliegue
o Distribución
Diagrama de Despliegue
o Distribución
Diagrama de Despliegue
o Distribución
terminal
Despliega
user.exe
Despliega
dbadmin.exe
consola
Despliega terminal
user.exe
admin.exe
config.exe
servidor unidad
RAID
admin.exe
consola
dbadmin.exe
config.exe
Ejercicio 6
Conclusiones
Conclusión
• El UML es un lenguaje reconocido mundialmente por la
industria de construcción de software.
• El Modelamiento visual es una de las técnicas probadas
que brinda mejores resultados.
• Todos los sistemas tienen una estructura estática y
comportamiento dinámico.
• La estructura se describe con los diagramas de clases,
componentes y despliegue.
• El comportamiento dinámico del sistema se describe con
diagramas de estados, secuencias, colaboración y
actividades.
Conclusión
• UML define una notación que se expresa como diagramas
sirven para representar modelos/subsistemas o partes de
ellos.
• El 80% de la mayoría de los problemas pueden modelarse
usando alrededor del 20% de UML– Grady Booch
Herramientas CASE
• Comparativa:
– http://www.diatel.upm.es/malvarez/UML/Comparativ
a.html
¿Preguntas?
¡Muchas Gracias!