Publicado el 14 de Enero del 2017
1.196 visualizaciones desde el 14 de Enero del 2017
706,8 KB
63 paginas
Creado hace 16a (10/09/2008)
PROGRAMACIÓN ORIENTADA A
PROGRAMACIÓN ORIENTADA A
OBJETOS
OBJETOS
Master de Computación
Master de Computación
II MODELOS y HERRAMIENTAS
UML
II.3 UML: Modelado estructural
II.3 UML: Modelado estructural
Elena Mediavilla
1
1
Concepto de objeto y de clase
Concepto de objeto y de clase
• Objeto: Concepto, abstracción o cosa con límites bien
definidos y con significado para el problema que se está
manejando.
– Todos
los objetos presentan una
identidad, que
los hace
distinguibles, un estado y un comportamiento.
– El término identidad significa que los objetos se distinguen por su
existencia inherente y no por propiedades descriptivas que puedan
tener.
• Clase: Descripción abstracta de un grupo de objetos con
propiedades similares (atributos), comportamiento común
(operaciones), relaciones comunes con otros objetos y
semántica común.
II.3 UML: Modelado estructural
Elena Mediavilla
2
2
Concepto de objeto y de clase
Concepto de objeto y de clase
• Todos los objetos son instancias de una clase y la clase de
un objeto es una propiedad implícita del objeto.
– Cada objeto conoce su clase y la mayoría de los lenguajes de
programación orientados al objeto pueden determinar la clase de un
objeto en tiempo de ejecución.
• La agrupación en clases de
los objetos permite
la
abstracción de un problema:
– Las definiciones comunes, tales como nombres de clases y de
atributos se almacenan una vez por cada clase.
– Las operaciones se escriben una vez para cada clase ⇒ reutilización
de código.
II.3 UML: Modelado estructural
Elena Mediavilla
3
3
Concepto de objeto y de clase
Concepto de objeto y de clase
• En UML, una clase es un tipo de clasificador cuyas características son
atributos y operaciones.
• Símbolos UML de clase y objeto.
Persona
Clase
Juan:
Persona
Marcos:
Persona
: Persona
Objetos
II.3 UML: Modelado estructural
Elena Mediavilla
4
4
Atributos
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.
• Cada nombre de atributo es único dentro de una clase, pero
cada atributo tiene un valor para cada instancia de la clase.
– Diferentes instancias de objetos pueden tener los mismos o
distintos valores para un atributo dado.
– La identidad implícita del objeto permite distinguir objetos en que
todos los valores de los atributos sean idénticos.
II.3 UML: Modelado estructural
Elena Mediavilla
5
5
Atributos
Atributos
• Un atributo debería 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
Clase con Atributos
Objetos con Valores
II.3 UML: Modelado estructural
Elena Mediavilla
6
6
Operaciones
Operaciones
• Una operación es una función o transformación que puede
ser aplicada por o sobre objetos de una clase.
– Todos los objetos de una clase comparten las mismas operaciones.
– Una operación es la implementación de un servicio que puede
requerirse de cualquier objeto de la clase.
• Cada operación tiene a un objeto determinado como
argumento implícito y el comportamiento de la operación
depende de la clase de este objeto.
– Un objeto conoce su clase y, por tanto, la implementación correcta
de la operación.
II.3 UML: Modelado estructural
Elena Mediavilla
7
7
Operaciones
Operaciones
• Operación polimórfica: la misma operación toma formas
diferentes sobre clases diferentes.
– Por ejemplo, la operación mover para una figura de dos
dimensiones y para una figura de tres dimensiones.
• Método: implementación de una operación para una clase.
• Cuando una operación tiene métodos para diferentes clases
es importante que todos ellos tengan la misma signatura
(número y tipo de argumentos y tipo de resultado).
– Los argumentos son parámetros de la operación pero no afectan a
la elección del método. El método sólo depende de la clase del
objeto sobre el que actúa.
II.3 UML: Modelado estructural
Elena Mediavilla
8
8
Operaciones
Operaciones
• Las operaciones en una clase definen lo que la clase puede
hacer y pueden considerarse como la interfase de la clase.
• Operación pregunta (query): es aquélla operación que
únicamente calcula un valor funcional sin modificar
ningún objeto.
– Las preguntas sin argumentos, salvo el objeto al que se aplican,
pueden considerarse como atributos derivados.
Persona
Fichero
Objeto geometrico
nombre
edad
nombre fichero
tamaño en bytes
ultima actualizacion
color
posicion
cambiar de trabajo( )
cambiar de direccion( )
imprimir( )
mover (delta: vector)
seleccionar (p:punto): Boolean
rotar (angulo)
II.3 UML: Modelado estructural
Elena Mediavilla
9
9
Resumen de notación
Resumen de notación
• 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_operación_1 (lista_de_argumentos_1): tipo_de_resultado_1
Nombre_de_operación_2 (lista_de_argumentos_2): tipo_de_resultado_2
. . .
• Los atributos y operaciones pueden mostrarse o no,
dependiendo del nivel de detalle deseado.
II.3 UML: Modelado estructural
Elena Mediavilla
10
10
Resumen de notación
Resumen de notación
• Los atributos y las operaciones
pueden tener diferentes niveles de
visibilidad.
– Público: visible por todos los clientes
de la clase.
– Protegido: visible por las subclases
de la clase.
– Privado: visible sólo para la clase.
– Paquete: visible para cualquier clase
del mismo paquete.
– Atributos y operaciones estáticos
(static) o de clase: son propios de la
clase, no de la instancia. Son visibles
por todos los objetos de la clase.
Nombre de la clase
+ Atributo público
# Atributo protegido
- Atributo privado
~Atributo de paquete
Atributo de clase
+ Operación pública()
# Operación protegida()
- Operación privada()
~Operación de paquete
Operación de clase()
II.3 UML: Modelado estructural
Elena Mediavilla
11
11
Diagramas de clases y de objetos
Diagramas de clases y de objetos
• Un diagrama de clases describe la estructura estática de un sistema en
términos de clases y de relaciones entre estas clases, mostrando los
atributos y operaciones que caracterizan cada clase de objetos.
• Un diagrama de objetos representa la estructura estática del sistema
mostrando los objetos (instancias) en el sistema y las relaciones entre
los objetos.
• Un diagrama de clases dado corresponde a un conjunto infinito de
diagramas de objetos.
Autor
Usa
nombre : String
edad: integer
0..*
Computador
nombre: String
memoria: integer
1..*
Bob: Autor
nombre = "Bob"
edad = 32
II.3 UML: Modelado estructural
Elena Mediavilla
PC de Bob:
Computador
nombre = "Dell630"
memoria = 2
12
12
Relaciones entre clases
Relaciones entre clases
• Asociación: es una conexión entre clases, que implica la
existencia de una relación estructural entre objetos de esas
clases.
• Generalización: es una relación entre una clase más general
y una más específica o especializada.
• Dependencia: es una relación de uso entre clases.
Ventana
dependencia
abrir()
cerrar()
mover()
manejarEvento()
Evento
asociación
generalización
Consola
Dialogo
Control
II.3 UML: Modelado estructural
Elena Mediavilla
13
13
Enlaces y asociaciones
Enlaces y asociaciones
• Los enlaces y las asociaciones son los medios de establecer relaciones
entre objetos y clases, respectivamente.
• Enlace: es una conexión física o conceptual entre instancias de objetos.
– Matemáticamente, un enlace se define como una tupla, es decir, una lista
ordenada de instancias de objetos.
• Asociación: describe un grupo de enlaces con estructura y semántica
comunes.
– Todos los enlaces de una asociación conectan objetos de las mismas clases.
– Un enlace es una instancia de una asociación.
Universidad
Una asociación
Estudiante
II.3 UML: Modelado estructural
Elena Mediavilla
Cantabria:
Universidad
U n e n l ace
Un enlace
Pedro:
Estudiante
Ana:
Estudiante
Barcelona:
Universidad
Un enlace
Carlos:
Estudiante
14
14
Enlaces y asociaciones
Enlaces y asociaciones
• Una asociación puede tener un nombre que describe la naturaleza de la
relación.
• Las asociaciones son bidireccionales.
– La dirección en que se lee el nombre de una asociación binaria es la
dirección directa y la dirección opuesta es la dirección inversa.
– La dirección del nombre puede indicarse con un pequeño triángulo sólido.
– En ciertos casos, sólo es útil una dirección de navegación; esto se
representa con una flecha orientada.
Usa
Autor
Computador
0..*
1..*
Posee
Persona
Coche
0..*
II.3 UML: Modelado estructural
Elena Mediavilla
15
15
Enlaces y asociaciones
Enlaces y asociaciones
• Las asociaciones pueden ser binarias, ternarias o de más alto orden.
– Una asociación ternaria o de orden mayor es una unidad atómica y no
puede subdividirse en asociaciones binarias sin pérdida de información.
Proyecto
Lenguaje
Persona
Programa CAD:
Proyecto
C: Lenguaje
María:
Persona
Sistema
de contabilidad:
Proyecto
Cobol:
Lenguaje
II.3 UML: Modelado estructural
Elena Mediavilla
16
Comentarios de: PROGRAMACIÓN ORIENTADA A OBJETOS - II MODELOS y HERRAMIENTAS UML (0)
No hay comentarios