Este documento describe el Lenguaje de Modelado Unificado (UML) y sus principales diagramas. UML es un lenguaje estándar para modelar sistemas de software que facilita el modelado de todo tipo de sistemas mediante una variedad de diagramas. Los diagramas más importantes incluyen el diagrama de clases, diagrama de actividades y diagrama de secuencias. UML fue desarrollado inicialmente por tres expertos en modelado de software, conocidos como "Los Tres Amigos".
Reporte homicidio doloso descripción
Reporte que contiene información de las víctimas de homicidio doloso registradas en el municipio de Irapuato Guanajuato durante el periodo señalado, comprende información cualitativa y cuantitativa que hace referencia a las características principales de cada uno de los homicidios.
La información proviene tanto de medios de comunicación digitales e impresos como de los boletines que la propia Fiscalía del Estado de Guanajuato emite de manera diaria a los medios de comunicación quienes publican estas incidencias en sus distintos canales.
Podemos observar cantidad de personas fallecidas, lugar donde se registraron los eventos, colonia y calle así como un comparativo con el mismo periodo pero del año anterior.
Edades y género de las víctimas es parte de la información que incluye el reporte.
Reporte homicidio doloso descripción
Reporte que contiene información de las víctimas de homicidio doloso registradas en el municipio de Irapuato Guanajuato durante el periodo señalado, comprende información cualitativa y cuantitativa que hace referencia a las características principales de cada uno de los homicidios.
La información proviene tanto de medios de comunicación digitales e impresos como de los boletines que la propia Fiscalía del Estado de Guanajuato emite de manera diaria a los medios de comunicación quienes publican estas incidencias en sus distintos canales.
Podemos observar cantidad de personas fallecidas, lugar donde se registraron los eventos, colonia y calle así como un comparativo con el mismo periodo pero del año anterior.
Edades y género de las víctimas es parte de la información que incluye el reporte.
Ipsos, empresa de investigación de mercados y opinión pública, divulgó su informe N°29 “Claves Ipsos” correspondiente al mes de abril, que encuestó a 800 personas con el fin de identificar las principales opiniones y comportamientos de las y los ciudadanos respecto de temas de interés para el país. En esta edición se abordó la a Carabineros de Chile, su evaluación, legitimidad en su actuar y el asesinato de tres funcionarios en Cañete. Además, se consultó sobre el Ejército y la opinión respecto de la marcha en Putre.
4. Los Requerimientos
• Un requerimiento es una condición o capacidad
a la que el sistema (siendo construido) debe
conformar [ Rational Software Corp.].
• Un requerimiento de software puede ser
definido como :
– Una capacidad del software necesaria por el usuario
para resolver un problema o alcanzar un objetivo.
– Una capacidad del software que debe ser reunida o
poseída por un sistema o componente del sistema para
satisfacer un contrato, especificación, estándar, u otra
documentación formal.
5. Los Problemas de la Administración de
Requerimientos
• No son siempre obvios y tienen muchas fuentes.
• No son siempre fáciles de expresar en palabras.
• Hay muchos tipos diferentes a distintos niveles de
detalle.
• El número puede llegar a ser inmanejable.
• Están relacionados a otros en una variedad de formas.
• Hay muchos interesados y partes responsables.
• Cambian.
• Pueden ser sensibles al tiempo.
6. UML
• Un lenguaje estándar mundial para modelar el
software a construir similar al que se utiliza para
elaborar los planos de construcción de una
vivienda.
• Unifica muchos estándares de diagramación
conformando un metalenguaje.
• Facilita el modelado de todo tipo de sistema.
7.
8. Los Tres
Amigos
En 1994 Booch, Rumbaugh y
Jacobson dieron forma a la
primera versión del UML y en
1997 fue aceptado por la
OMG, fecha en la que fue
lanzada la versión v1.1 del
UML. Desde entonces, UML
atravesó varias revisiones y
refinamientos hasta llegar a la
versión actual: UML 2.0.
Ivar
Jacobson
James
Rumbaugh
Grady
Booch
9. Tipos de Diagramas - UML
• Diagramas de Estructura:
• Diagrama de Clases,
• Diagrama de Objetos,
• Diagrama de Componentes,
• Diagrama de Estructura Compuesta,
• Diagrama de Paquetes, y
• Diagrama de Despliegue.
• Diagramas de Comportamiento:
• Diagrama de Casos de Uso,
• Diagrama de Actividad,
• Diagrama de Transición de Estados, y
• Diagramas de Interacción:
• Diagrama de Secuencia,
• Diagrama de Comunicación,
• Diagrama de Temporización, y
• Diagrama General de Interacción.
10. Diagrama Descripción Prioridad
Diagrama de Clases
Muestra una colección de elementos de modelado declarativo
(estáticos), tales como clases, tipos y sus contenidos y relaciones.
Alta
Diagrama de
Componentes
Representa los componentes que componen una aplicación,
sistema o empresa. Los componentes, sus relaciones,
interacciones y sus interfaces públicas.
Media
Diagrama de Estructura
Compuesta
Representa la estructura interna de un clasificador (tal como una
clase, un componente o un caso de uso), incluyendo los puntos de
interacción de clasificador con otras partes del sistema.
Baja
Diagrama de Despliegue
Físico
Un diagrama de despliegue físico muestra cómo y dónde se
desplegará el sistema. Las máquinas físicas y los procesadores se
representan como nodos y la construcción interna puede ser
representada por nodos o artefactos embebidos. Como los
artefactos se ubican en los nodos para modelar el despliegue del
sistema, la ubicación es guiada por el uso de las especificaciones
de despliegue.
Media
Diagrama de Objetos
Un diagrama que presenta los objetos y sus relaciones en un
punto del tiempo. Un diagrama de objetos se puede considerar
como un caso especial de un diagrama de clases o un diagrama de
comunicaciones.
Baja
Diagrama de Paquetes
Un diagrama que presenta cómo se organizan los elementos de
modelado en paquetes y las dependencias entre ellos, incluyendo
importaciones y extensiones de paquetes.
Baja
11. Diagrama Descripción Prioridad
Diagrama de Casos de
Uso
Un diagrama que muestra las relaciones entre los actores y el sujeto
(sistema), y los casos de uso.
Media
Diagrama de
Actividades
Representa los procesos de negocios de alto nivel, incluidos el flujo de
datos. También puede utilizarse para modelar lógica compleja y/o
paralela dentro de un sistema.
Alta
Diagrama de
Máquinas de Estado
Un diagrama de Máquina de Estados ilustra cómo un elemento, muchas
veces una clase, se puede mover entre estados que clasifican su
comportamiento, de acuerdo con disparadores de transiciones, guardias
de restricciones y otros aspectos de los diagramas de Máquinas de
Estados, que representan y explican el movimiento y el comportamiento.
Media
12. Diagrama Descripción Prioridad
Diagrama de
Comunicaciones
(anteriormente: Diagrama
de colaboraciones)
Es un diagrama que enfoca la interacción entre líneas de vida, donde es
central la arquitectura de la estructura interna y cómo ella se corresponde
con el pasaje de mensajes. La secuencia de los mensajes se da a través de
un esquema de numerado de la secuencia.
Baja
Diagrama General de
Interacción
Este Diagrama se enfoca en la revisión del flujo de control, donde los
nodos son Interacciones u ocurrencias de Interacciones. Las Líneas de
Vida los Mensajes no aparecen en este nivel de revisión
Baja
Diagrama de Secuencias
Un diagrama que representa una interacción, poniendo el foco en la
secuencia de los mensajes que se intercambian, junto con sus
correspondientes ocurrencias de eventos en las Líneas de Vida.
Alta
Diagrama de
Temporización
El propósito primario del diagrama de tiempos es mostrar los cambios en
el estado o la condición de una línea de vida (representando una Instancia
de un Clasificador o un Rol de un clasificador) a lo largo del tiempo lineal.
El uso más común es mostrar el cambio de estado de un objeto a lo largo
del tiempo, en respuesta a los eventos o estímulos aceptados. Los
eventos que se reciben se anotan, a medida que muestran cuándo se
desea mostrar el evento que causa el cambio en la condición o en el
estado.
Baja
15. Analista con enfoque
centrado en los datos
Analista con enfoque
centrado en los objetos
¿ Cuál es su:
- marca
- kilometraje
- nro placa
- color
- modelo
¿ Cuál es su:
- marca
- kilometraje
- nro placa
- color
- modelo
¿ Qué hace:
• enciende motor
• acelera
• frena
• apaga motor
• carga combustible
• enciende luces
• Actualiza kilometraje
Objeto
En que
procesos se
utilizan ?
16. Definición de Objeto
• Todo aquello a lo que podemos reconocerle una identidad, un estado
y un comportamiento.
• Es una colección de elementos de datos junto con las funciones o
métodos asociados para operar sobre ellos y para comunicarse con
otros objetos.
17. Identidad
• Es la propiedad que diferencia un objeto de otro similar. En esencia la
identidad de un objeto caracteriza su propia existencia.
• La identidad hace posible distinguir cualquier objeto sin ambigüedad
e independientemente de su estado.
• Esto permite, entre otras cosas, la diferenciación de dos objetos que
tengan atributos idénticos.
18.
19. • Cada objeto tiene una identidad única, incluso si
tiene las mismas características que otros y se
encuentra en el mismo estado.
Identidad
20. Estado de un objeto
• Cada uno los objetos de una clase tendrá generalmente un estado
particular propio.
• El estado esta relacionado con los valores de algunos de los atributos
característicos de un objeto.
• Para una botella, su contenido, que establece que una botella pueda
estar llena, medio llena o vacía
• Con algunas operaciones comunes que comparte con otros objetos:
• como <<llenar>>, <<vaciar>>, <<destapar>>), y
• Tiene además otros atributos no relacionados con el estado.
• como el color y modelo de una botella
21. Estado de un Objeto
Parado Caminando Sentado
• Un objeto se encuentra en un determinado
momento en un estado específico como
consecuencia de algún evento.
Párate ! Camina ! Siéntate !
22. Comportamiento
• Los datos describen la abstracción de las características
individuales que poseen todos los objetos.
• Las operaciones cambian el objeto (su comportamiento) de
alguna forma, es decir, cambian valores de uno o más atributos
contenidos en el objeto. Aunque existen gran número de
operaciones que se pueden realizar sobre un objeto,
generalmente se dividen en tres grandes grupos:
• Operaciones que manipulan los datos de alguna forma específica
(añadir, borrar, cambiar formato, …)
• Operaciones que realizan un cálculo o proceso
• Operaciones que comprueban un objeto frente a la ocurrencia de
algún evento de control.
23. Objetos
Objeto Identidad Estados Comportamiento
Venta Nro 2345601 Emitida
Pagada
Anulada
Crear
Modificar
Añadir producto
Pagar
Anular
Alumno Cod 1998234 No matriculado
Matriculado
Retirado
Egresado
Matricula
Retiro
Egreso
Cita medica Nro 234516 Emitida
Pagada
Atendida
Suspendida
Crear
Pagar
Atender
Suspender
Contribuyente RUC 201345678965 Habido
No habido
Crear
Sancionar
Dar baja
Clasificar
24. Estructura interna de un Objeto
• Atributos (datos o valores)
• Operaciones (métodos o servicios)
• Los atributos describen el estado del objeto. Un atributo consta de dos
partes: un nombre de atributo y un valor de atributo.
• Los métodos describen el comportamiento asociado a un objeto. Representan
las acciones que pueden realizarse por o sobre un objeto.
25. Características de los Objetos
• Se agrupan en tipos llamados clases.
• Tienen datos internos que definen su estado actual.
• Soportan la ocultación de datos.
• Pueden heredar propiedades de otros objetos.
• Pueden comunicarse con otros objetos pasando
mensajes.
• Tienen métodos que definen su comportamiento.
26. • Los Objetos en un Sistema trabajan en conjunto,
esto se logra por intermedio de mensajes entre
ellos.
• Un Objeto envía a otro un mensaje para
realizar una operación y el Objeto receptor
recibe dicho mensaje para su ejecución.
Ejemplo: El Televisor y su Control Remoto.
Mensajes
27. Métodos y mensajes
• Los procedimientos y funciones, denominados métodos, residen en el objeto y
determinan cómo actúan los objetos cuando reciben un mensaje.
• Un mensaje es la acción que hace un objeto.
• Un método es el procedimiento o función que se invoca para actuar sobre un
objeto y especifica cómo se ejecuta un mensaje.
• Los mensajes que recibe o envía un objeto son los únicos conductos que asocian
el objeto con el mundo externo.
• Los datos de un objeto están disponibles sólo para ser manipulados por los
métodos del propio objeto.
28. Clase y Objeto
• Un objeto es un simple elemento, no importa lo
complejo que pueda ser.
• Una clase describe una familia de elementos
similares, es un esquema o plantilla que se utiliza
para definir o crear objetos.
29. Representación gráfica de una Clase
(Notación de Ege)
• Un objeto se dibuja como una
caja rectangular. La caja se
etiqueta con el nombre del
objeto y representa el límite o
frontera entre el interior y el
exterior de un objeto.
• Los campos y funciones
miembro en el interior de la caja
están ocultos al exterior
(encapsulados).
NOMBRE CLASE
ATRIBUTOS
(DATOS MIEMBRO)
OPERACIONES
(FUNCIONES MIEMBRO)
30. Clases
• Una clase es la descripción
de un conjunto de objetos;
consta de datos y métodos
que resumen
características comunes de
un conjunto de objetos.
• Cada vez que se construye
un objeto a partir de una
clase estamos creando lo
que se llama una instancia
de esa clase.
Ejec105 : Maleta
Viaj325: Maleta
Est1235: Maleta
Maleta
Denominacion
Color
Precio
Capacidad
Abrir ( )
Cerrar ( )
Calcular peso ( )
Cobr2154 : Maleta
ATRIBUTOS
OPERACIONES
31. Operaciones
• Son funciones o
transformaciones que se
aplican a todos los objetos de
una clase particular.
• La operación puede ser una
acción ejecutada por el objeto
o sobre el objeto.
• No se debe utilizar el mismo
nombre en operaciones que
tengan un significado
totalmente diferente.
nombre
edad
PERSONA
trabajar ( )
votar( )
nombre
direccion
UNIVERSIDAD
enseñar ( )
graduar( )
ancho
largo
/area
RECTANGULO
dibujar ( )
borrar( )
calcular_area( )
32. Propiedades de un objeto
• Abstracción y clasificación
• Encapsulamiento
• Herencia
• Agregación y composición
• Poliformismo o polimorfismo
33. Abstracción
• Es una de las vías fundamentales por la que los humanos combatimos
la complejidad.
• La abstracción surge del reconocimiento de las similitudes entre
ciertos objetos, situaciones o procesos del mundo real, y en la
decisión de concentrarse en esas similitudes e ignorar por el
momento las diferencias.
34. La abstracción centra su atención en las características
esenciales de un objeto en relación a la perspectiva del
observador
35. Encapsulamiento
• La encapsulación es una característica
que permite el ocultamiento de la
información como un concepto
avanzado de la teoría de objetos.
• Es la propiedad que permite incluir en
una sola clase los datos y las
operaciones que operan sobre esa
información.
• La encapsulación de información y
operaciones es muy importante. Los
métodos de un objeto sólo pueden
manipular directamente datos
asociados con el objeto.
Datos
privados
Funciones
privadas
Funciones
públicas
Datos
públicos
Objeto
37. • Es el ocultamiento de la Funcionalidad interna
de las características y algunas operaciones, a
otros objetos y al mundo exterior.
Encapsulamiento
38. – ( - ) Privado: es el más
fuerte. Esta parte es
visible sólo para los
“friends” en terminología
C++.
– ( # ) Protegido: están
visibles sólo para los
friends y para las clases
derivadas de la original.
– ( + ) Público: son visibles
a todas las clases (se
pierde la encapsulación).
Encapsulamiento
Reglas de visibilidad
+ Atributo público : int
# Atributo protegido : int
- Atributo privado : int
+ "Operación pública"
# "Operación protegida"
- "Operación privada"
39. Herencia
• La herencia es la propiedad que
permite a los objetos ser
construidos a partir de las
características de otros objetos.
• El objetivo de la herencia es la
reutilización del código
previamente desarrollado, siendo
esta la real potencia de la POO.
• La herencia supone una clase base y
una jerarquía de clases que
contienen las clases derivadas de la
clase base.
41. Tipos de Herencia
• Herencia simple (jerárquica)
• La simple es aquel tipo de herencia en la cual un objeto puede tener sólo un
ascendiente, o dicho de otro modo, una subclase puede heredar datos y
métodos de una única clase así como añadir o quitar comportamiento de la
clase base.
• Herencia múltiple (en malla)
• La múltiple es aquel tipo de herencia en la cual una clase puede tener más de
un ascendiente inmediato, o lo que es igual, adquirir datos y métodos de más
de una clase.
43. Agregación y composición
• A los objetos que pueden contener otros
objetos se conocen como objetos compuestos.
• En la mayoría de los sistemas los objetos no
“contienen” en el sentido estricto a otros
objetos, sino que contienen referencias a otros
objetos.
• Un objeto compuesto consta de una colección
de dos o más objetos componentes, los cuales
tienen una relación del tipo “parte-de” con el
objeto compuesto.
• Cuando un objeto compuesto se instancia para
producir una instancia del objeto, todos sus
objetos componentes se deben instanciar al
mismo tiempo.
45. Un ejemplo de un objeto compuesto es la clase auto. Un auto consta de diversas partes
tales como un motor, un sistema de frenos, un sistema de transmisión, un sistema de
alarma y un chasis. Estas partes constituyen los objetos componentes del objeto auto de
modo que cada uno de estos objetos componentes pueden tener atributos y métodos que
los caracterizan.
Atributos
nro_autos_disponibles
nro_autos_vendidos
Atributos compartidos
concesionario
Atributos de instancia
modelo
color
precio
año
Objetos componentes
motor
sistema_frenos
sistema_transmision
chasis
AUTO
nro_cilindros
potencia
cilindrada
valvulas_cilindro
MOTOR
tipo
proveedor
nivel_liquido
SISTEMA
FRENOS
tipo_embrague
caja_cambio
SISTEMA
TRANSMISION
tipo
color
CHASIS
46. Estructura de
objetos
compuestos
var 1: obj1
var 2: obj2
obj1
obj2
Objeto
compuesto
var 1: cliente
var 2: articulo
cliente
articulo
Orden
compra
var 1: cliente
var 2: articulo
articulo
Orden
compra
48. Polimorfismo
• Propiedad por la cual un mismo objeto u objetos de una
misma clase u objetos de clases diferentes, responden de
distinta manera a un mismo mensaje.
• La utilización de operadores o funciones de formas diversas,
dependiendo de cómo estén operando se denomina
polimorfismo.
• La gran ventaja ofrecida por el polimorfismo y la sobrecarga es
permitir que los nuevos tipos de datos sean manipulados de
forma similar que los tipos de datos predefinidos, logrando así
ampliar el lenguaje de programación.
49. Polimorfismo
• Es la propiedad que tienen los objetos de permitir invocar
genéricamente un comportamiento (método) cuya
implementación será delegada al objeto correspondiente
recién en tiempo de ejecución.
Transporte
Avanzar
Frenar Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
51. Diagrama de secuencia
• Es una representación que muestra, en un
determinado escenario, los eventos generados
por actores externos al sistema y su orden
secuencial.
• En un primer momento al sistema se le trata
como caja negra; los diagramas se centran en
los eventos que fluyen de los actores al sistema.
– En el diagrama el tiempo avanza hacia abajo, y el
ordenamiento de los eventos debe seguir el orden
indicado en el caso de uso.
– Los eventos del sistema pueden incluir parámetros.
52. Eventos, mensajes y operaciones
• El evento de un sistema es un hecho externo de
entrada que un actor produce sobre un sistema.
• La operación de un sistema son las acciones
que éste lleva acabo a través de las clases en
respuesta al evento externo y ejecutadas por
una secuencia de mensajes.
• El nombre del evento y de la operación son
idénticos; la distinción reside en que el evento
es el estímulo nombrado y la operación es la
respuesta (lo mismo sucede con los mensajes y
los métodos).
53. Mensajes
• Los mensajes se muestran como flechas. Los
mensajes pueden ser completos, perdidos o
encontrados; síncronos o asíncronos; llamadas o
señales.
• En el siguiente diagrama:
– el primer mensaje es un mensaje síncrono (denotado
por una punta de flecha oscura), completo con un
mensaje de retorno implícito;
– el segundo mensaje es asíncrono (denotado por una
punta de flecha en línea), y
– el tercero es un mensaje de retorno asíncrono
(denotado por una línea punteada).
55. Mensaje Self
• Un mensaje self puede representar una
llamada recursiva de una operación, o un
método llamando a otro método
perteneciente al mismo objeto.
• Este se muestra cuando crea un foco de
control anidado en la ocurrencia de
ejecución de la línea de vida.
57. Inicio y final de línea de vida
• Una línea de vida se puede crear o destruir durante la
escala de tiempo representada por un diagrama de
secuencia.
• En el último caso, la línea de vida se termina por un
símbolo de destrucción, representado como una cruz.
• En el primer caso, el símbolo al inicio de la línea de
vida se muestra en un nivel más bajo de la página que
el símbolo del objeto que causó la creación.
• El siguiente diagrama muestra un objeto que fue
creado y destruido.
58. SD padre e hijo
borrar
crear
Padre
Hijo
borrar
crear
59. Restricciones de tiempo y duración
• En forma predeterminada, un
mensaje se muestra como una
línea horizontal.
• Ya que la línea de vida representa
el pasaje de tiempo hacia abajo,
cuando se modela un sistema en
tiempo real, o incluso un proceso
de negocios en tiempo límite,
puede ser importante considerar el
tiempo que toma realizar las
acciones.
• Al configurar una restricción de
duración para un mensaje (delay),
el mensaje se mostrará como una
línea inclinada.
SD padre e hijo
borrar
crear
Padre
Hijo
borrar
crear
62. • Son particularmente útiles para la descripción del
comportamiento
• Permite recoger o definir el orden en que se hacen o
se harán las cosas. Esto es, establece las reglas
esenciales de secuenciación ha seguir.
• Los diagramas de flujo se limitan normalmente a
procesos secuenciales; los diagramas de
actividades pueden manejar procesos paralelos.
• Ésta es la diferencia clave entre un diagrama de
actividades y un diagrama de flujo.
Diagrama de Actividad
63. Elementos de un Diagrama de
Actividad
• Los elementos más habituales son:
– Nodos inicio y final
– Actividades / acciones.
– Decisiones.
– Swimlanes o carriles.
• También se puede utilizar:
– Objetos.
– Barras de sincronización (Fork/Join)
64. • Podemos utilizar
diagramas de actividades
para:
• Definir el comportamiento
de casos de uso.
• Modelar procesos de
negocio.
• Definir el comportamiento
de un método.
• Definir estados complejos.
Usos del Diagrama de Actividad
65.
66. • Esta última característica es importante para el
modelado de negocios. Los negocios con
frecuencia establecen procesos secuenciales
innecesarios.
• Una técnica como ésta, que promueve el
comportamiento paralelo, es valiosa en estas
situaciones, porque auspicia que las personas
se aparten de las secuencias innecesarias en
su comportamiento y descubran oportunidades
para hacer cosas en paralelo.
• Esto puede mejorar la eficiencia y capacidad
de respuesta de los procesos del negocio.
Diagrama de Actividad
67. • Los diagramas de actividad deben
mostrar qué se hace y quien lo
hace. Esto significa que el
diagrama especifica cuáles son los
roles o unidades organizacionales
responsables de cada actividad.
• Los carriles(swimlanes) son una
forma de subsanar esta
deficiencia.
• Para usar los carriles, el diagrama
de actividad se debe organizar en
zonas verticales separadas por
líneas similares a los de una
piscina. Cada zona representa la
responsabilidad de una clase o de
un rol o, el de una unidad
organizacional(departamento) en
particular.
CLIENTE VENDEDOR ALMACÉN
Swimlanes o
carriles
69. Buscar Bebida
Poner café en filtro Añadir agua al depósito Coger taza
Poner filtro en máquina
Encender máquina
Café en preparación
Servir café
Coger zumo
Beber
[no hay café]
[hay café]
[no zumo]
[hay zumo]
^cafetera.On
indicador de fin
Diagrama de actividad para servir y tomar bebida
70. Emitir billete
Vendedor Airline
Solicitar pago Reservar asiento
Confirmar
asiento reservado
Pagar pasaje
Informar alternativas
y precios
Verificar
existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Pasajero
Diagrama de actividad para compra un pasaje aéreo