Sunteți pe pagina 1din 24

16/04/2015

UT3: UML
Tema 3: Modelado de Clases

Modelado de clases
Clases y objetos
Uso de la orientacin a objetos

Concepcin de una clase


Atributos
Operaciones
Estereotipos
Responsabilidades y restricciones

Diagrama de clases

16/04/2015

Clases y Objetos.
Los diagramas de Clases y de Objetos son los
principales modos de representar los aspectos
estructurales en UML.
Diagramas de clases. Estructura del sistema.
Clases.

Atributos: Tipos, valores iniciales.


Operaciones: Funciones, mtodos.

Relaciones con otras clases: Asociaciones

Diagramas de objetos. Estructura del sistema en


tiempo de ejecucin.
Objetos. Instancias de una Clase.
Atributos (valores actuales).

Links. Relaciones entre objetos, instancias de


asociaciones

Clases y objetos
Un objeto es la instancia de una clase (categora)
que cuenta con una estructura:
Atributos (o propiedades)
Operaciones (todas las actividades
que el objeto es capaz de realizar)

Caractersticas o rasgos

Ejemplo: Vosotros y yo somos instancias de la clase


Persona
Atributos de Persona: altura, peso, edad
Operaciones: comer, dormir, leer, escribir, hablar, trabajar.

En el mundo de la orientacin a objetos, una clase


en realidad es una plantilla para fabricar objetos

16/04/2015

Clases y objetos
Instancia:Cada objeto que
pertenece a una clase

Instanciacin /
Instanciar: Proceso de
generacin o creacin de las
instancias (objetos) de una
clase
Objeto: Representacin de
algo que se describe mediante
un identificador, una
estructura y un
comportamiento.
Instancia de una Clase

Ejemplo
En la clase lavadora se indica
la marca, el modelo, el nmero
de serie y la capacidad, junto
con las operaciones agregar
ropa, agregar detergente y
sacar ropa.
Tendremos un mecanismo
para fabricar nuevas instancias
a partir de su clase nuevos
objetos.
Luego, tenemos una plantilla
en este modelo original para
generar nuevas instancias de
Lavadoras

16/04/2015

Clases y objetos
Es importante recordar que el propsito de la
orientacin a objetos es desarrollar software que
refleje particularmente (que modele) un esquema
del mundo.
Cuantos ms atributos y acciones se tengan en cuenta ,
mayor ser la similitud del modelo con la realidad
En el ejemplo de la lavadora tendremos un modelo ms
exacto si incluimos atributos como el volumen del
tambor, cronmetro interno, motor y su velocidad. Y..
todava ser un modelo ms preciso si se incluyen
acciones de agregar suavizante, cronometrar el lavado, el
aclarado y el centrifugado, por ejemplo

Uso de la orientacin a objetos


Concepcin de una clase
En UML un rectngulo es el smbolo que
representa la clase
El nombre de la clase es, por convencin, una
palabra con la primera letra en maysculas (sin
acentos) y normalmente se coloca en la parte
superior del rectngulo (Lavadora)
Si el nombre consta de dos palabras, se unen
inicindolas cada una con maysculas:
LavadoraIndustrial

16/04/2015

Uso de la orientacin a objetos


Concepcin de una clase
En el tema 1 hablamos de los
paquetes y decamos que
podan agrupar elementos
que ofrecen el mismo
servicio
El paquete puede jugar un
papel en el nombre de la clase
Si la clase Lavadora
formase parte de un paquete
Electrodomesticos,
podemos darle el nombre :
El par de puntos separa el
nombre del paquete del
nombre de la clase: A este
tipo de nombre de clase se
le conoce como nombre
de ruta

Clase 1
Electrodomesticos::Lavadora

10

Uso de la orientacin a objetos


Concepcin de una clase

En cursiva si es

Visibilidad (opcional), aplicable a atributos y mtodos:

Pblica: (+) Elemento no encapsulado visible para todos


Privada: (-) Elemento encapsulado visible en la clase y subclases de la clase
Protegida: (#) Elemento encapsulado visible solo en la clase
Paquete: (~) Elemento encapsulado visible solo en las clases del mismo
paquete.

16/04/2015

11

Uso de la orientacin a objetos


Atributos
Es una propiedad o
caracterstica de una clase y
describe un rango de valores
que la propiedad podr
contener en los objetos
(instancias) de la clase
Una clase puede contener
varios o ningn atributo

Por convencin, si el atributo


consta de una sola palabra se
escribe en minsculas
Si el nombre contiene ms de
una palabra, cada palabra
estar unida a la anterior y
comenzar con una letra
mayscula, a excepcin de la
primera palabra que
comenzar en minscula

12

Uso de la orientacin a objetos


Atributos
Un objeto cuenta con un valor
especfico en cada uno de los
atributos que lo componen
El nombre
miLavadora:Lavadora es una
instancia con nombre, pero
podemos tener una instancia
annima como :Lavadora
El atributo puede mostrar su
tipo y su valor
predeterminado

16/04/2015

13

Uso de la orientacin a objetos


Operaciones o Mtodos
Algo que la clase puede hacer
La lista de operaciones o
acciones de una clase aparece
debajo de una que las separa
de los atributos de la clase
Si el nombre consta de ms
de una palabra se unen como
el nombre de la clase
El nombre de la operacin se
escribe con minsculas si
consta de una sola palabra

14

Uso de la orientacin a objetos


Operaciones
En los parntesis se pueden
mostrar el parmetro con el
que funcionar la operacin
junto con el dato.
La funcin devolver un
valor cuando realice su
tarea, pudindose mostrar
el tipo de valor de que se
trate
Esta seccin se conoce como
firma de la operacin

16/04/2015

15

Uso de la orientacin a objetos


Atributos y Operaciones
Lo normal es que contemos
con ms de una clase a la vez,
por lo tanto, es posible que no
sea necesario que aparezcan
todos los atributos , ni todas
las operaciones, para no crear
diagramas saturados
En ocasiones se pueden
sustituir por puntos
suspensivos, indicando
atributos u operaciones que
no se encuentran en todo el
conjunto

16

Uso de la orientacin a objetos


Estereotipos
Si se tiene una larga lista de
atributos u operaciones se
pueden organizar de forma
que sea ms comprensible
Son estructuras flexibles,
pudindose utilizar de
diversos modos, por ejemplo
con un smbolo que indique el
papel de la clase

16/04/2015

17

Uso de la orientacin a objetos


Responsabilidades
Descripcin de lo que har la
clase en su conjunto

Restricciones
Una regla entre llaves
restringe al atributo
capacidad para contener uno
o ms valores
Con OCL (Lenguaje de
restriccin de objetos) es una
herramienta para agregar
restricciones en UML

18

Uso de la orientacin a objetos


Notas adjuntas
Proporciona mayor informacin respecto a la clase
Puede contener texto o imgenes

16/04/2015

19

Cmo encontrar las clases?


En conversaciones con los clientes hay que prestar
atencin a los sustantivos que utilizan para describir
las entidades de sus negocios:
Clases del modelo

Hay que poner atencin a los verbos que se


escuchen:
Sern las operaciones de las clases.

Los atributos surgirn como sustantivos


relacionados con los nombres de la clase
Una vez que tenemos la lista bsica de clases,
preguntaremos a los clientes qu es lo que cada clase
hace dentro del negocio:
Responsabilidad de la clase

20

Diagramas de clases
Tipos de clases
Clases Parametrizables:
Plantillas de clases que se
pueden parametrizar con uno
o ms tipos de datos segn
sea necesario (Clases
Genricas)
Clases Abstractas: Clases
que no tienen
implementacin para todos
los mtodos definidos
Clases Utilitarias: Clases
que contienen libreras de
funciones, por ejemplo la API
java.util

10

16/04/2015

21

Diagrama de clases - Relaciones


Notacin general
Clase
Plantilla

Clase1

Rol 1

Relacin 1-2

Rol 2

[0..*]

{Restriccin}

[0..*]

22

Diagramas de clases
Relaciones: Tipos
Dependencia

El elemento dependiente requiere la presencia del elemento


independiente para su especificacin o implementacin. Los
cambios en el elemento independiente pueden afectar al
elemento dependiente

Asociacin

Especificacin de un conjunto de conexiones entre


instancias. Representan la estructura y posibilidades de
comunicacin del sistema.

Generalizacin

Relacin entre un elemento general y un elemento especfico.


El elemento especfico puede aadir informacin y debe ser
consistente con el elemento general.

Realizacin

Relacin donde un elemento realiza o implementa la


especificacin dada por otro elemento.

Agregacin

Una forma especial de asociacin que especifica una relacin


todo-parte entre el agregado (conjunto) y la parte
componente.

11

16/04/2015

23

Principios de la Orientacin a Objetos


Abstraccin
Simplificacin de la realidad.
Retener los aspectos relevantes y prescindir del
resto.
El proceso de abstraccin es relativo a un punto de
vista particular.

Clasificacin
Encapsulamiento
Generalizacin
Polimorfismo

24

Principios de la Orientacin a Objetos


Clasificacin
Relacin bsica entre clases y objetos clasificados en
clases.
Un objeto es instancia de una clase, la clase es su
tipo

12

16/04/2015

25

Principios de la Orientacin a Objetos


Encapsulamiento
Capacidad de una clase para
ocultar su implantacin.
Permite ocultar su
informacin al exterior, es
decir, que un atributo o un
mtodo no sean manipulados
por otras clases
Para ocultar informacin, la
clase proporciona niveles de
acceso: pblico, protegido,
privado, etc.

Mtodos de acceso al
encapsulamiento:
Set
get

26

Principios de la Orientacin a Objetos


Interfaz:
Conjunto de atributos y operaciones que
ofrecen un servicio coherente.
No contiene la implementacin de las operaciones.
No se puede instanciar.
Una interfaz puede tener asociaciones navegables.
Anloga a una clase abstracta con todas sus
operaciones abstractas.
Distinta de interfaz natural: conjunto de
operaciones pblicas de una clase (accesibles a
travs de cualquier asociacin navegable hacia
la clase).
Agrupa clases que realizan las
mismas operaciones

13

16/04/2015

27

Principios de la Orientacin a Objetos


Interfaces
La relacin de herencia existente entre una clase
interfaz y la subclase que implementa esa interfaz
se conoce como relacin de realizacin.
Esta relacin de herencia se representa
grficamente mediante la siguiente flecha:

28

Principios de la Orientacin a Objetos


Interfaces: Ejemplo

<<Interface>> es un estereotipo

14

16/04/2015

29

Principios de la Orientacin a Objetos


Generalizacin o Herencia
Herencia: Propiedad que tienen las clases de
heredar de sus superclases estructura y/o
comportamiento (Simple /Mltiple)
Agrupa clases que son
lo mismo

30

Principios de la Orientacin a Objetos


Generalizacin: Jerarqua de
clases

Representaciones alternativas:
Relaciones binarias
Estructura en rbol

15

16/04/2015

31

Principios de la Orientacin a Objetos


Polimorfismo
Capacidad de ejecutar distintas operaciones en respuesta al mismo mensaje.
Una operacin polimrfica es aqulla que tiene muchas implementaciones.
La subclase puede modificar la implementacin de las operaciones heredadas.
El mismo nombre de operacin puede designar implementaciones distintas.
Objetos de distintas clases en el mismo rbol jerrquico tienen operaciones con el
mismo nombre pero con diferente implementacin, por tanto pueden responder al
mismo mensaje cada uno a su manera.

32

Enlaces y Asociacin
Asociacin
Conexin de clases entre s de
forma conceptual.
Enlace: conexin entre
objetos.
Determina una tupla de
objetos. Instancia de una
asociacin.

16

16/04/2015

33

Asociacin
Nombre de Asociacin y Nombre de Rol

Los nombres de asociacin se pueden repetir en un modelo,


excepto para asociaciones entre las dos mismas clases.

Los nombres de rol se pueden repetir en asociaciones distintas, y


pueden ser iguales que los nombres de las clases asociadas.

34

Asociacin
Multiplicidad de la Asociacin (I)
En una asociacin binaria, la multiplicidad de un
extremo de asociacin especifica el nmero de
instancias destino que pueden estar enlazadas con una
nica instancia origen a travs de la asociacin.

17

16/04/2015

35

Asociacin
Multiplicidad de la Asociacin (y II)
Valores tpicos:

0..1
1..1
0..*
1..*

cero o uno
uno y slo uno (abreviado como 1)
desde cero hasta muchos (abreviado como *)
desde uno hasta muchos

Otros valores:

Rangos enteros: (2..*), (0..3), etc.


Lista de rangos separados por comas: (1, 3, 5..10, 20..*), (0, 2, 4, 8), etc.

Si no se indica multiplicidad se considera 1.


Restricciones (entre llaves):

ordered/unordered: las instancias van ordenadas / o no (valor por


omisin: {unordered}).
unique/nonunique: los valores de las instancias deben ser nicos / o no
(valor por omisin: unique). Se pondr nonunique para permitir tener
varios enlaces que asocien el mismo conjunto de instancias.

36

Asociacin
Ejemplos Multiplicidad

18

16/04/2015

37

Asociacin
Navegabilidad de la Asociacin

La navegabilidad de una asociacin binaria especifica la


capacidad que tiene una instancia de la clase origen de acceder a
las instancias de la clase destino por medio de las instancias de la
asociacin que las conectan.
Acceder= nombrar, designar o referenciar el objeto para...

leer o modificar el valor de un atributo del objeto (desaconsejable),


invocar una operacin del objeto (enviarle un mensaje),
usar el objeto como parmetro o valor de retorno en un mensaje,
modificar (asignar o borrar) el enlace con el objeto.
La navegabilidad entre clases nos muestra
que es posible pasar desde un objeto de la clase
origen a uno o ms objetos de la clase destino
dependiendo de la multiplicidad

38

Asociacin
Asociaciones Actor-Sistema y Clase-Clase

Un mismo concepto puede ser modelado a la vez como actor y como


clase:
Actor: representa entidades externas al sistema.
Clase: representa entidades modeladas dentro del sistema.

No confundir asociaciones actor-sistema (casos de uso, relaciones con el


exterior) con asociaciones clase-clase (relaciones internas):
Para subastar algn artculo es necesario darse de alta como vendedor,
introduciendo el NIF, un nombre descriptivo (largo), un nombre de
usuario (breve) y una contrasea de acceso. Una vez que el vendedor est
dado de alta, puede registrar artculos en la subasta o modifica alguno de
sus datos: descripcin breve, descripcin ampliada, fotografa en formato
JPEG, y precio de salida.

19

16/04/2015

39

Asociacin
Asociacin y Dependencia

Asociacin = conocimiento, conocimiento dependencia.


Toda asociacin induce una dependencia en el sentido en que es
navegable.

Unidireccional: dependencia slo en un sentido, menor acoplamiento.


Bidireccional: dependencia mutua, mayor acoplamiento.

Cmo conseguir navegabilidad entre instancias sin dependencia entre


clases:
La clase Persona depende de la clase
Sociedad, pero no de la clase Sociedad
Annima.
Es posible conseguir un enlace navegable
entre dos instancias sin que exista
dependencia entre las clases a las que
pertenecen.

40

Asociacin
Asociaciones Reflexivas

Una asociacin reflexiva(o recursiva)es aquella en la que los dos


extremos de la asociacin estn unidos a la misma clase.
Los enlaces pueden conectar dos instancias diferentes de la
misma clase, o incluso una instancia consigo misma.
En una asociacin reflexiva los nombres de rol son obligatorios,
para poder distinguir los dos extremos de la asociacin.
Una asociacin reflexiva no es simtrica: los extremos son
distinguibles, aunque la asociacin quiera significar equivalencia:
es-amigo-de, es-igual-a...

20

16/04/2015

41

Asociacin
Restricciones

42

Asociaciones
Asociacin n-aria
Asociacin entre N clases: los enlaces conectan N instancias.
No permite: direccin del nombre, navegabilidad, agregacin.
S permite: clase-asociacin.

Multiplicidad engaosa:
Nmero permitido de instancias para cualquier posible combinacin de instancias
de las otras n-1 clases.
La multiplicidad mnima suele ser 0.
Efecto rebote del uno: la multiplicidad mnima 1 (o superior) en un extremo
implica que debe existir un enlace (o ms) para cualquier posible combinacin de
instancias de los otros extremos.

21

16/04/2015

43

Asociaciones
Ciclos de Asociaciones y Asociaciones Derivadas

Puede un alumno matricularse en asignaturas que no son de su


titulacin? Posibles interpretaciones alternativas del diagrama:
La titulacin se obtiene a partir de las asignaturas: asociacin derivada.
Titulacin matriculada acta como restriccin para elegir asignatura
matriculada.
Titulacin matriculada acta como sugerencia para elegir asignatura
matriculada.
Titulacin matriculada y asignatura matriculada son independientes.

44

Agregacin
Es un tipo especial de asociacin que representa una
relacin todo-parte, transitiva y asimtrica.
No impone ninguna restriccin especial sobre la
multiplicidad.
Puede ser reflexiva para las clases, pero no para las
instancias.

22

16/04/2015

45

Composicin
Es un tipo especial de agregacin no compartida.

La multiplicidad slo puede ser 0..1 1..1.


El todo es responsable de la existencia y
almacenamiento de las partes.
Propagacin de las operaciones de copiado y borrado.

Composicin no significa encapsulamiento ni acceso


restringido.

46

Informacin importante

DECLARACIN CLASE EN JAVA


CONSTRUCTORES
OPERADOR THIS
EXTENDS (una clase deriva de otra)
MS OPERACIONES: DESTRUCTORES,
SELECTORES, MODIFICADORES
GET Y SET

23

16/04/2015

47

Documentacin
Uml en 24 horas
Universidad Carlos III: Modelado Esttico
Diseo de Software Avanzado. Departamento de
Informtica

UML
EspecificacinUML.pdf
FormalUML.pdf
Diagramas de Clases (UML ilustrado)
Universidad de Los Andes
Demin Gutierrez
Marzo 2011

24

S-ar putea să vă placă și