Académique Documents
Professionnel Documents
Culture Documents
Introduccin
incluyendo
2006
Conceptos bsicos
Un objeto es algo distinguible que percibimos como que tiene existencia, sea fsica o conceptual Ejemplos: Pedro Gonzlez, el libro Cien aos de soledad, la luna, la asignatura de Acceso a bases de datos
Una clase refiere genricamente a los objetos de una familia que se perciben con propiedades y comportamiento comunes Ejemplos: persona, libro, satlite, asignatura
Una instancia de una clase (objeto) refiere a la representacin de un objeto de una clase.
2006
3
Conceptos bsicos
Los objetos generalmente los percibimos relacionados entre s
Ejemplos: Cien aos de soledad lo escribi Gabriel Garca Mrquez, la luna es un satlite de la tierra
Una asociacin refiere genricamente a las relaciones que existen entre objetos de clases Ejemplos: libro escrito por autor satlite de un planeta
Elementos bsicos
Clase: describe genricamente a una familia de objetos que tienen en comn una serie de atributos y operaciones Atributo: describe genricamente una propiedad de los objetos de una clase (generalmente, describe hechos estticos o estructurales) Operacin: describe genricamente un servicio que puede ser requerido a cualquier objeto de una clase para que muestre un comportamiento
2006
5
Elementos bsicos
<min..max>
2006
Representacin grfica
clase
asociacin
<Nombre>
nombre de la asociacin
<NombrClase2>
<NombrClase1>
<min..max>
<min..max>
por cada objeto de Clase2 hay como mnimo min y como mximo max objetos de Clase1 relacionados con l
por cada objeto de Clase1 hay como mnimo min y como mximo max objetos de Clase2 relacionados con l
2006
Tarjeta
1..* 1 1..* 1
Cliente
Cuenta
una tarjeta es de un cliente un cliente tiene una o varias tarjetas una cuenta tiene asociadas una o varias tarjetas una tarjeta es de una cuenta
2006
Restricciones
Dentro de una misma clase, no se pueden repetir nombres de atributos La multiplicidad mnima no puede ser negativa La multiplicidad mxima tiene que ser mayor o igual que la mnima
2006
Recomendaciones
El nombre de las clases se escribe en negrita Los nombres de las clases y las asociaciones empiezan por mayscula Los nombres de los atributos y las operaciones empiezan por minscula Cuando un nombre est formado por ms de una palabra, entonces la segunda y siguientes palabras empiezan por mayscula Ejemplos: Persona, Autor, EjemplarLibro, EscritoPor, edad, telfonoMvil, expulsarTarjeta, dibujar
2006
10
Ejercicios
Cliente 1 1..* Tarjeta 1..* 1 Cuenta
ContratadaPor
Persona
Empresa
Cliente
CuentaBancaria
Sucursal
Alumno
MatriculadoEn
Asignatura
Departamento
Autor
Libro
EjemplarLibro
2006
11
Jerarqua de clases
Generalizacin: es una asociacin entre una clase y otra ms general de modo que la primera describe una subfamilia de objetos de esta ltima
Se debe verificar la propiedad de sustituibilidad (substitutability), es decir, se puede usar una instancia de la especializacin siempre que se espere una instancia de la generalizacin El elemento ms especfico hereda las caractersticas del elemento ms general
2006
12
Representacin grfica
<NombrClase1>
<NombrClase2>
<NombrClase3>
...
<NombrClaseN>
<NombrClase1>
<NombrClase2> 2006
<NombrClase3>
...
<NombrClaseN>
13
Ejemplo
personas
Persona
mujeres
Mujer
2006
14
Recomendaciones
Persona
Hombre
Mujer
2006
15
Seguro
SeguroIndividual
SeguroEmpresa
SeguroDeVida
SeguroDeCoche
2006
16
Tipos de clasificaciones
<NombrClase1> {restriccin}
<NombrClase2>
<NombrClase3>
...
<NombrClaseN>
Las restricciones posibles son: complete o incomplete: si todas las instancias de la superclase estn en una subclase o no. disjoint o overlapping: si cada instancia de la superclase est en como mucho una subclase o no
2006
17
Ejemplo
Hombre
Mujer
2006
18
Clases: atributos
Atributo: describe genricamente una propiedad de los objetos de una clase (generalmente, describe hechos estticos o estructurales) Visibilidad: mbito en el que el atributo es visible (+: pblico, -: privado, #: protegido o ~: paquete) Nombre: identifica el atributo dentro de la clase (no se puede repetir) Tipo: describe el tipo del valor del atributo (entero, real, ...) Multiplicidad: describe el nmero mnimo y mximo de valores posibles de un atributo Valor inicial: describe el valor que se asigna por defecto a un atributo cuando se instancia un objeto Alcance: describe si es un atributo de instancia o de clase
2006
19
Notacin y ejemplos
Notacin:
[ visibilidad ] nombreAtributo [ : tipo ] [ [multiplicidad] ] [ = valorIncicial ]
Los atributos de clase se escriben subrayados Por defecto, la visibilidad es pblica y la multiplicidad es [1..1] Ejemplos:
nombrePersona origen: Punto idUnico: Long 2006 +provincia: String =Zaragoza -segundoApellido: Integer [0..1] #prioridad: Entero =1
20
Ejemplos
Persona nombrePersona primerApellido segundoApellido fechaNacimiento calle: String localidad: String [0..1] provincia: String [0..1] =Zaragoza CP: String Direccin
2006
21
Clases: operaciones
Operacin: describe genricamente un servicio que puede ser requerido a cualquier objeto de una clase para que muestre un comportamiento Visibilidad: mbito en el que la operacin es visible (+: pblico, -: privado, #: protegido o ~: paquete) Nombre: identifica la operacin dentro de la clase (no se puede repetir) Parmetros: lista de parmetros de la operacin Tipo del valor devuelto: tipo del resultado si es que tiene Alcance: describe si es una operacin de instancia o de clase
2006
22
Notacin y ejemplos
Notacin:
[ visibilidad ] nombreOperacin [ (listaParmetros) ] [ :tipoRetorno ]
Las operaciones de clase se escriben subrayadas Por defecto, la visibilidad es pblica Ejemplos:
mover( ) ponerAlarma(t:temperatura) copiasEnEstantera( ):Entero 2006 +aadirCurso( c:Curso):Booleano -compactar( ) #comprobarErrores( )
23
Ejemplos
Figura origen mover( ) redimensionar( ) visualizar( ) Ventana origen:Punto tamao:Vector abrir( ) cerrar( ) mover( ) Transaccin SensorTemperatura +reiniciar( ) +ponerAlarma(t:temperatura ) +valor( ): temperatura 2006 +ejecutar( ) +rollback( ) #prioridad( ) #marcaDeTiempo( )
24
Instancias
Instancia de clase (objeto): describe un objeto de una clase mediante valores de los atributos de la clase. El objeto responde a las operaciones de la clase Instancia de asociacin (enlace): describe una relacin entre objetos
Notacin nombre:clasificador
2006
25
Ejemplos
Juan
objeto sin clase
: Persona
objeto annimo
Juan : Persona
objeto no annimo
:direccion
tipoCalle: "Plaza" calle: "San Francisco" casa: "3" escalera: piso: "3" puerta: "A" localidad: "Zaragoza" CP: "50009" provincia: "Zaragoza"
miLibro: libro titulo[0...1]: string = "El Alba" autor[0...N]: string = null fechaPublicacion: date[0...1] = null tipoLibro: string = "ensayo"
2006
26
Propiedad de herencia
Los atributos y operaciones de la clase ms general (superclase) son atributos de la clase especializada (subclase) Una subclase puede redefinir una operacin heredada
Hombre
Mujer numEmbarazos
2006
27
Ejemplos
MPR01:Mujer PPGO3:Hombre nombrePersona: "Mara" primerApellido: "Ortz" segundoApellido: "Garca" fechaNacimiento: 1/2/1980 numEmbarazos: 0 nombrePersona: "Pedro" primerApellido: "Prez" segundoApellido: "Garca" fechaNacimiento: 7/10/2005
2006
28
2006
29
Ejemplos
EquipoFutbol
0...1
0...*
JugadorFutbol
relacin tipo tiene un En una agregacin una parte puede pertenecer a varios todos
Proyecto
Actividad
relacin tipo contiene a En una composicin una parte slo puede pertenecer a un todo 2006
30
Clase asociativa
Clase asociativa: describe una asociacin que refiere a una familia de relaciones entre objetos sobre las que se perciben propiedades que son propias de las relaciones
2006
31
Ejemplo
2006
32
Multiplicidad de clase
Las clases tambin pueden tener asociada una multiplicidad que limita el nmero mnimo y mximo de instancias.
n..m <NombrClase>
Una clase que tiene slo una instancia se denomina clase unitaria o singleton
2006
33
Roles y navegacin
empleado
patrn 0..*
Persona
1..*
Empresa
Un rol indica el papel que juega una clase en una asociacin. La navegacin define la posibilidad (o no) de acceder a los objetos de una clase desde otra.
2006
34
Asociaciones n-arias
La multiplicidad de una clase en una asociacin n-aria especifica el nmero de instancias que pueden relacionarse con una instancia de cada una de las otras clases
Proveedor
Producto
Tienda
2006
35
Notas
Nota: es una observacin, condicin semntica o restriccin
<nota>
2006
36
SocioBiblioteca
LibroFsico
Prstamo fechaPrstamo fechaDevolucin - un prstamo es la asociacin entre un nico socio y un nico libro (por la propia definicin de clase asociativa). - un socio puede haber cogido prestado varios libros. - un libro ha podido ser cogido prestado por socios varias veces. - un socio puede haber cogido prestado un mismo libro varias veces (correspondiendo a prstamos distintos). 2006
37
- un prstamo tiene asociado siempre un nico libro y un nico socio - un socio puede haber solicitado varios prstamos (de un libro cada vez) - un libro ha podido ser prestado varias veces (a un socio cada vez). - un socio puede haber cogido prestado un mismo libro varias veces. las restricciones son las mismas
2006
38
SocioBiblioteca
0..1
0..1
LibroFsico
dado un prstamo y un libro pueden ser de cero o un socio CUIDADO: el mismo prstamo, con otro libro, puede estar asociado con otro socio
0..*
Prstamo
- un prstamo puede estar asociado varias veces con libros y socios - un socio puede haber solicitado varios prstamos (de un libro cada vez) - un libro ha podido ser prestado varias veces (a un socio cada vez). - un socio puede haber cogido prestado un mismo libro varias veces. las restricciones son distintas!!!! 2006
39
- en cuntas asociaciones participa una instancia de una clase. Por ejemplo, indicar que dado un prstamo siempre participa en una sola instancia de la asociacin esta informacin NO se indica en UML a travs de la multiplicidad!!!! es necesario imponer una restriccin y especificarla usando OCL 2006
40
Navegacin vs atributo
A X b:B[*]
Un extremo de asociacin navegable es tambin un atributo. Se puede utilizar un atributo para representar el extremo navegable de una asociacin. Esta notacin se puede usar en conjuncin con la representacin grfica de la asociacin con objeto de que quede claro que el atributo representa el extremo de una asociacin
2006
41
Empleado
{incomplete, disjoint}
Gerente
Vendedor
Administrador
Un mismo empleado puede ir desempeando distintos puestos en la empresa. Por lo tanto un mismo objeto puede ir cambiando de clase a lo largo del tiempo. El problema es que la mayora de los lenguajes de programacin no ofrecen la posibilidad de que un objeto cambie de clase. 2006
42
{incomplete, disjoint}
Gerente
Vendedor
Administrador
El empleado es siempre el mismo y lo que cambia es el estado en el que se encuentra. Cuando un empleado cambia de estado se destruye el objeto que representa ese estado y se crea un nuevo objeto representando el nuevo estado. Con este diseo ya no se utiliza especializacin dinmica. Se puede representar muy fcilmente la posibilidad de que un mismo empleado desempee varios papeles en la misma empresa o el hecho de guardar la historia de los puestos que ha ido ocupando un empleado. 2006
43
TipoDerbol
Abedul
Abeto
Power type: clase cuyas instancias son subclases de otra clase. Por ejemplo, las instancias de la clase TipoDerbol son abedul y abeto, que a su vez son subclases de rbol. Aunque parece redundante porque se representa dos veces lo mismo, no es as puesto que las instancias del power type y las subclases son los mismos objetos. 2006
44