Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad1 PDF
Unidad1 PDF
OBJETOS
Master de Computacin
II MODELOS y HERRAMIENTAS
UML
Elena Mediavilla
Elena Mediavilla
Elena Mediavilla
Clase
Juan:
Persona
Marcos:
Persona
: Persona
Objetos
II.3 UML: Modelado estructural
Elena Mediavilla
Atributos
Las clases tienen atributos que representan alguna
propiedad de la clase que comparten todos los objetos de
esa clase.
Un atributo es una propiedad nombrada de una clase, que
describe un rango de valores que puede tomar esa
propiedad en las instancias.
Por ejemplo, nombre, edad o peso son atributos de objetos
Persona.
Elena Mediavilla
Atributos
Un atributo debera ser un valor de datos puro, no un
objeto.
Los valores de datos puros, a diferencia de los objetos, no tienen
identidad.
Persona
nombre: string
edad: integer
Juan:
Persona
Marcos:
Persona
nombre = "Juan"
edad = 24
nombre = "Marcos"
edad = 52
Elena Mediavilla
Operaciones
Una operacin es una funcin o transformacin que puede
ser aplicada por o sobre objetos de una clase.
Todos los objetos de una clase comparten las mismas operaciones.
Una operacin es la implementacin de un servicio que puede
requerirse de cualquier objeto de la clase.
Elena Mediavilla
Operaciones
Operacin polimrfica: la misma operacin toma formas
diferentes sobre clases diferentes.
Por ejemplo, la operacin mover para una figura de dos
dimensiones y para una figura de tres dimensiones.
Elena Mediavilla
Operaciones
Las operaciones en una clase definen lo que la clase puede
hacer y pueden considerarse como la interfase de la clase.
Operacin pregunta (query): es aqulla operacin que
nicamente calcula un valor funcional sin modificar
ningn objeto.
Las preguntas sin argumentos, salvo el objeto al que se aplican,
pueden considerarse como atributos derivados.
nombre
edad
Fichero
nombre fichero
tamao en bytes
ultima actualizacion
cambiar de trabajo( )
cambiar de direccion( )
imprimir( )
Persona
Elena Mediavilla
Objeto geometrico
color
posicion
mover (delta: vector)
seleccionar (p:punto): Boolean
rotar (angulo)
Resumen de notacin
Una clase se representa con un recuadro dividido en tres
regiones, que contienen, de arriba a abajo:
Nombre de la clase
Nombre_de_atributo_1: tipo_de _dato_1 = valor_por_defecto_1
Nombre_de_atributo_2: tipo_de _dato_2 = valor_por_defecto_2
...
Nombre_de_operacin_1 (lista_de_argumentos_1): tipo_de_resultado_1
Nombre_de_operacin_2 (lista_de_argumentos_2): tipo_de_resultado_2
...
Elena Mediavilla
10
10
Resumen de notacin
Los atributos y las operaciones
pueden tener diferentes niveles de
visibilidad.
Pblico: visible por todos los clientes
de la clase.
Protegido: visible por las subclases
de la clase.
Privado: visible slo para la clase.
Paquete: visible para cualquier clase
del mismo paquete.
Atributos y operaciones estticos
(static) o de clase: son propios de la
clase, no de la instancia. Son visibles
por todos los objetos de la clase.
Elena Mediavilla
Nombre de la clase
+ Atributo pblico
# Atributo protegido
- Atributo privado
~Atributo de paquete
Atributo de clase
+ Operacin pblica()
# Operacin protegida()
- Operacin privada()
~Operacin de paquete
Operacin de clase()
11
11
Autor
nombre : String
edad: integer
Usa
0..*
1..*
Computador
nombre: String
memoria: integer
Elena Mediavilla
Bob: Autor
nombre = "Bob"
edad = 32
PC de Bob:
Computador
nombre = "Dell630"
memoria = 2
12
12
dependencia
abrir()
cerrar()
mover()
manejarEvento()
Evento
generalizacin
asociacin
Dialogo
Consola
II.3 UML: Modelado estructural
Elena Mediavilla
Control
13
13
Enlaces y asociaciones
Una asociacin
Estudiante
Barcelona:
Universidad
Elena Mediavilla
Un en lace
Un e
nlac
e
Un enlace
Pedro:
Estudiante
Ana:
Estudiante
Carlos:
Estudiante
14
14
Enlaces y asociaciones
Autor
0..*
1..*
Posee
Persona
0..*
Elena Mediavilla
Coche
15
15
Enlaces y asociaciones
Lenguaje
Persona
Programa CAD:
Proyecto
C: Lenguaje
Mara:
Persona
Sistema
de contabilidad:
Proyecto
II.3 UML: Modelado estructural
Elena Mediavilla
Cobol:
Lenguaje
16
16
Multiplicidad
0.. 1
Cero o uno
M.. N
De M a N (enteros naturales)
De cero a varios
0.. *
De cero a varios
1.. *
De uno a varios
Posee
Persona
1..*
0..*
Coche
Elena Mediavilla
17
17
Clase Asociacin
Una asociacin puede modelarse como una clase; en ese caso, cada
enlace se convierte en una instancia de la clase.
Es til modelar una asociacin como una clase cuando los enlaces
pueden participar en asociaciones con otros objetos o cuando los
enlaces estn sometidos a operaciones.
En la notacin UML, una clase asociacin se representa con el smbolo de
clase conectado a la asociacin con una lnea punteada.
Usuario *
Autorizado en
* Computador
Autorizacin
prioridad
privilegios
directorio raz
*
Directorio
sesin de inicio
Elena Mediavilla
18
18
Clase Asociacin
Fichero
0..*
Usuario
Permiso de acceso
/etc/termcap
(read)
Juan
/etc/termcap
(read-write) Mara
/usr/juan/.login (read-write) Juan
II.3 UML: Modelado estructural
Elena Mediavilla
19
19
*
Persona
conductor
Persona
Conduce
*
coche de la empresa
Elena Mediavilla
Coche
padre
hijo
20
20
Calificacin de asociaciones
Elena Mediavilla
Fichero
21
21
Restricciones (constraints)
Empleado
Salario
Jefe
0..1
*
Ventana
Longitud
Anchura
{0.8 <= longitud/anchura <= 1.5}
Elena Mediavilla
Tarea
Prioridad
{La prioridad no incrementa}
22
22
Ventana
Visible en
{ordered}
*
Pantalla
Persona
Miembro de
{subset}
Comite
Presidente de *
Universidad
{or}
Profesores
1..*
Alumnos
1..*
Elena Mediavilla
Persona
23
23
Agregacin
Documento
0..*
Prrafo
Elena Mediavilla
0..*
Sentencia
24
24
Agregacin
1..*
Monitor
0..1
Caja del
Sistema
Ratn
0..*
Chasis
II.3 UML: Modelado estructural
CPU
RAM
Elena Mediavilla
Teclado
0..1
Ventilador
25
25
Agregacin
Equipo
Miembro
*
Persona
*
Ventana
Texto
Lista
Contiene
Boton
*
Menu
Elena Mediavilla
26
26
Generalizacin y herencia
Elena Mediavilla
Figura
color
posicion del centro
grosor del lapiz
tipo de lapiz
mover( )
seleccionar( )
rotar( )
mostrar( )
Dimension
Dimension 0
Dimension 1
orientacion
escalado( )
Dimension 2
orientacion
tipo de relleno
escalado( )
rellenar( )
27
27
Generalizacin y herencia
Elena Mediavilla
28
28
Generalizacin y herencia.
Redefinicin de caractersticas
Elena Mediavilla
29
29
Redefinicin de caractersticas
Figura
color
posicion del centro
grosor del lapiz
tipo de lapiz
mover( )
seleccionar( )
rotar( )
mostrar( )
Dimension
Dimension 2
Dimension 1
Dimension 0
orientacion
tipo de relleno
orientacion
escalado( )
rellenar( )
escalado( )
Punto
mostrar( )
Linea
puntos extremos
mostrar( )
Arco
radio
angulo inicial
angulo del arco
mostrar( )
Elena Mediavilla
Linea quebrada
puntos de control
mostrar( )
Poligono
numero de lados
vertices
mostrar( )
Circulo
diametro
mostrar( )
rotar( )
30
30
Redefinicin de operaciones
Elena Mediavilla
31
31
Herencia mltiple
Propulsion
{solapadas}
Barco
Coche
Anfibio
II.3 UML: Modelado estructural
Elena Mediavilla
32
32
Herencia mltiple
Por horas
Asalariado
Externo
Pension
Asegurado
No asegurado
Elena Mediavilla
33
33
Fluorescente
Balasto
Soporte
Incandescente
Arranque
Base
Pantalla
Interruptor
Cable
Enchufe
Elena Mediavilla
34
34
Clases abstractas
Una clase abstracta es una clase sin instancias directas pero cuyas clases
descendientes tienen instancias directas.
El nombre de la clase abstracta se escribe en cursiva.
Una clase concreta es una clase instanciable (puede tener instancias directas).
Una clase concreta puede tener subclases abstractas (pero estas deben tener a su vez
descendientes concretas).
Slo las clases concretas pueden ser clases terminales en el rbol de herencia.
Empleado
ingresos hasta la fecha
calcular sueldo( )
Por horas
tarifa por hora
tarifa horas extra
Asalariado
Externo
tarifa semanal
tarifa mensual
calcular sueldo( )
calcular sueldo( )
calcular sueldo( )
Elena Mediavilla
35
35
* Ensamblaje
Mquina
Persona
Offset
Fecha de nacimiento
/Edad
Offset
/Offset
compuesto
/ Offset
* Pieza
{offset = ensamblaje-maquina.offset X
pieza-ensamblaje.offset}
Elena Mediavilla
36
36
Interfases
Elena Mediavilla
37
37
Interfases
Elena Mediavilla
38
38
Diagrama de paquetes
Elena Mediavilla
39
39
Diagrama de paquetes
Elena Mediavilla
40
40
Diagrama de paquetes
Paquete D
<<import>>
Paquete B
Paquete C
<<import>>
<<import>>
<<access>>
Paquete E
Paquete F
Elena Mediavilla
41
41
Diagrama de paquetes
Paquete D
<<import>>
Paquete B
Paquete C
<<import>>
<<import>>
<<access>>
Paquete E
Paquete F
Elena Mediavilla
42
42
Elena Mediavilla
43
43
Estructura interna
Para mostrar la estructura interna de una clase, los componentes (parts) que la
clase contiene por composicin se dibujan dentro del smbolo de la clase
contenedora.
Los componentes se especifican mediante el papel (rol) que representan en la clase,
con el formato <roleName>: <type>.
La multiplicidad se escribe en la parte superior derecha del componente o se indica
entre corchetes despus del nombre y del tipo.
Elena Mediavilla
44
44
Estructura interna
Elena Mediavilla
45
45
Estructura interna
Elena Mediavilla
46
46
Puertos
Las clases tienen interfases asociadas a los puertos para mostrar los servicios
disponibles en el puerto (provided interfaces) o los servicios requeridos del
entorno (required interfaces).
Los puertos se conectan a la implementacin interna usando conectores.
Es posible tener mltiples conectores desde un puerto hasta diferentes elementos
internos.
Elena Mediavilla
47
47
Colaboraciones
Elena Mediavilla
48
48
Colaboraciones
Elena Mediavilla
49
49
Colaboraciones
Elena Mediavilla
50
50
Diagrama de componentes
Entre los componentes debe existir un acoplamiento dbil, para que los
cambios en uno de ellos no afecten al resto del sistema. Para ello, se accede a
los componentes por medio de interfases.
Elena Mediavilla
51
51
Componentes
Elena Mediavilla
52
52
Elena Mediavilla
53
53
Realizacin de un componente
Un
componente
normalmente
contiene y usa otras clases para
implementar su funcionamiento. Se
dice que estas clases realizan al
componente.
Se representa dibujando las clases
y sus relaciones dentro del
componente.
Se pueden dibujar las clases fuera
del componente, con flechas de
dependencia conectando las clases
y el componente.
Otra
posible
representacin
consiste en listar las clases en un
compartimento
<<realization>>
dentro del componente.
II.3 UML: Modelado estructural
Elena Mediavilla
54
54
Puertos en un componente
Un componente puede tener puertos para modelar las distintas formas de uso
mediante las interfases conectadas al puerto.
La interfaz ofrecida por un componente puede ser realizada por uno de sus
elementos internos. Del mismo modo, una interfaz requerida por el
componente puede ser usada por uno de sus elementos internos.
Para mostrar que los elementos internos del componente realizan o usan las
interfases del componente, se usan conectores de delegacin (delegation
connectors). Estos conectores muestran la direccin de la comunicacin y se
representan con una flecha entre el puerto y el elemento interno.
Si el elemento realiza la interfaz, la flecha apunta desde el puerto al elemento. Si el
elemento usa la interfaz, la flecha apunta desde el elemento hasta el puerto.
Si se representan las interfases de los elementos internos, los conectores de delegacin se
unen a la interfaz. Suele hacerse cuando un componente contiene a otros componentes.
Elena Mediavilla
55
55
Los nodos (nodes) son objetos fsicos (dispositivos) que tiene alguna
clase de recurso de computacin (computadores con procesadores,
impresoras, etc.).
Elena Mediavilla
56
56
Nodos
<<device>>
Dell
Pentium 466
MMX
<<device>>
Mquina de Juan:
Dell
Pentium 466
MMX
Elena Mediavilla
57
57
<<device>>
Cliente A:
Compaq Pro PC
<<TCP/IP>>
<<device>>
Servidor de
Aplicacin:
Silicon Graphics
O2
<<device>>
<<DecNet>>
Servidor de Base
de datos: VAX
<<TCP/IP>>
<<device>>
Cliente B:
Compaq Pro PC
Elena Mediavilla
58
58
Artefactos
Elena Mediavilla
59
59
Artefactos
Elena Mediavilla
60
60
Especificaciones de despliegue
Elena Mediavilla
61
61
Especificaciones de despliegue
Elena Mediavilla
62
62
Elena Mediavilla
63
63