Você está na página 1de 55

UML: Lenguaje de Modelado Unificado

Yal Galicia Hdez. (FCC/BUAP)

Qu es UML?
Diagramas

UML

Diagrama de clases
Clase,

objetos
Relaciones entre clases

Asociacin
Dependencia
Agregacin
Composicin
Herencia
Realizacin

Diseo OO
Yal Galicia Hdez. (FCC/BUAP)

UML

(Unified Modeling Language) es un


lenguaje que permite visualizar, modelar,
construir y documentar los elementos que
forman un sistema de software usando
objetos.

Es decir, para realizar un proyecto debemos


antes realizar un esquema del mismo.

El

UML nos permite mediante diagramas,


plasmar de una forma detallada e inteligible
la solucin a un problema planteado.

Yal Galicia Hdez. (FCC/BUAP)

UML est compuesto por diversos elementos


grficos que se combinan para conformar
diagramas
Los diagramas tienen como objetivo presentar
diversas perspectivas de un sistema. A esto se le
llama Modelo.
El modelo UML de un sistema es similar a un
modelo a escala de un edificio junto con la
interpretacin del arquitecto del edificio.
Tenemos que tener en cuenta que un modelo
UML describe lo que supuestamente har un
sistema, pero no dice como implementar dicho
sistema.

Yal Galicia Hdez. (FCC/BUAP)

Un modelo es una descripcion completa de un sistema desde


una perspectiva especifica (diagrama)

Use Case
Use
Case
Diagramas
Diagrams
Diagrams
de
Secuencia

Use Case
Use
Case
Diagramas
Diagrams
Diagrams
de
Casos de Uso

Scenario
Scenario
Diagramas
Diagrams
Diagrams
de
Colaboracion

Scenario
Scenario
Diagramas
Diagrams
Diagrams
de
Estado
Yal Galicia Hdez. (FCC/BUAP)

State
State
Diagrams
Diagramas
Diagrams
de Clases

State
State
Diagramas
Diagrams
Diagrams
de
Objetos

State
State
Diagramas
Diagrams
Diagrams
de
Componentes

Modelos

Diagramas
de
Actividad

Component
Component
Diagramas
Diagrams
Diagrams
De

Deployment
5

Se usan los diagramas de Casos de Uso para visualizar


la interaccin del sistema con el mundo exterior
Yal Galicia Hdez. (FCC/BUAP)

Los diagramas de secuencia muestran cmo se da


paso a paso cierta funcionalidad en el sistema
Yal Galicia Hdez. (FCC/BUAP)

Los diagramas de colaboracin muestran cmo interactan


los objetos para lograr cierta funcionalidad en el sistema
Yal Galicia Hdez. (FCC/BUAP)

Los diagramas de clase muestran la estructura del


sistema
Yal Galicia Hdez. (FCC/BUAP)

Los diagramas de componentes ilustran la organizacin y


dependencia entre los componentes que definen la
arquitectura del sistema
Yal Galicia Hdez. (FCC/BUAP)

10

Los diagramas de deployment permiten visualizar la


distribucin de los componentes del sistema a
travs de la empresa
Yal Galicia Hdez. (FCC/BUAP)

11

Qu es UML?
Diagramas

UML

Diagrama de clases
Clase
Relaciones

entre clases

Asociacin
Dependencia
Agregacin
Composicin
Herencia
Realizacin

Diseo OO
Yal Galicia Hdez. (FCC/BUAP)

12

En

este curso, nos enfocaremos solamente en


los diagrama de clases, como un medio de
diseo de nuestros programas.
La forma de representar una clase en UML, es
mediante una caja con divisiones
Nombre de la clase
Lista de atributos
Lista de operaciones o
acciones

Yal Galicia Hdez. (FCC/BUAP)

13

Recordando algunos conceptos


del paradigma orientado a
objetos, una clase es una
categora o grupo de cosas que
tienen atributos y acciones
similares.
Por ejemplo: La clase
lavadora tiene atributos
como, la marca, el modelo, el
numero de serie y la
capacidad. Tambin podemos
observar que entre las
acciones o comportamientos
de esta clase se encuentran:
agregar ropa, agregar
detergente, activarse,
enjuagar ropa y sacar ropa
Yal Galicia Hdez. (FCC/BUAP)

Lavadora
marca
modelo
noSerie
capacidad
agregarRopa( )
agregarDetergente()
iniciar()
enjuagarRopa()
sacarRopa()

14

Lavadora

Variable:
tipo

marca: String
modelo: String
noSerie: Int
capacidad: Int

Mtodo o
funcin
( parmetros):
tipo de regreso

Nombre de la
clase

atributos

agregarRopa(r: Ropa): void


agregarDetergente(): void
iniciar(): void
enjuagarRopa(): void
sacarRopa(): Ropa

Yal Galicia Hdez. (FCC/BUAP)

Comportamiento
o acciones
15

MTODOS DE ACCESO

Smbolo Indica
privado (oculto)
+
pblico (visible)
#
protegido (semioculto)

acciones pblicas =
interface!

Yal Galicia Hdez. (FCC/BUAP)

Lavadora
- marca: String
- modelo: String
- noSerie: Int
- capacidad: Int
+ agregarRopa(r: Ropa): void
+ agregarDetergente(): void
+ iniciar(): void
+ enjuagarRopa(): void
+ sacarRopa(): Ropa

16

Objetos
CLASE

Punto
-x: real
-y: real

+rotar(angulo: real)
+Escala(factor: real)

p1: Punto
x= 3.14
y = 2.718

p2: Punto
x= 1
y = 1.414

Yal Galicia Hdez. (FCC/BUAP)

17

Notacin
camello?
Nombres

Inician con Mayscula


Son en singular
Se aplica notacin camello

Nombre

de atributos

sustantivos
Inician con minscula
Se aplica notacin camello

Nombre

de las clases:

de los mtodos

Verbos (acciones)
Inician con minscula
Se aplica notacin camello
Yal Galicia Hdez. (FCC/BUAP)

En la notacin camello,
cuando se unen varias
palabras, cada palabra
inicia con mayscula
Ej: lavarRopaSucia

18

Qu es UML?
Diagramas

UML

Diagrama de clases
Clase
Relaciones

entre clases

Asociacin
Dependencia
Agregacin
Composicin
Herencia
Realizacin

Diseo OO
Yal Galicia Hdez. (FCC/BUAP)

19

Los problemas del mundo real, son ms


complejos que modelar que una simple clase,
ms bien, se tiene muchos objetos de distintas
clases comunicndose unos con otros. Esto
significa, que dichos objetos establecen
relaciones.
Bsicamente las relaciones que se establecen
son:

Asociacin
Dependencia
Agregacin
Composicin
Herencia
Realizacin
Yal Galicia Hdez. (FCC/BUAP)

20

La relacin ms simple entre clases es la asociacin.


Indica que dos clases tienen una relacin que las asocia
segn el papel que cada una juega con respecto a otra.
Se usa la asociacin para relacionar dos objetos que
necesitan colaborar envindose mensajes
En un diagrama de clases, la asociacin se indica
mediante una lnea continua que se dirige de un objeto
a otro.

Persona

Empresa

Asociacin

Yal Galicia Hdez. (FCC/BUAP)

21

Para aclarar su significado, En la lnea se puede


anotar el nombre de la relacin (normalmente un
verbo) y con un tringulo se indica la direccin en
la que hay que leer dicho nombre.

Por default la asociacin es bi-direccional.

Opcionalmente se pueden colocar un nombre de


rol para cada clase, dicho rol es un nombre
alternativo que representa el papel que toma
cada clase en la relacin
Persona

Trabaja en

Trabajador
Yal Galicia Hdez. (FCC/BUAP)

Empresa

Empleador
22

La Multiplicidad es el nmero de instancias de una


clase relacionadas a UNA instancia de otra clase
Para cada asociacin existen dos decisiones que
tomar en cuanto a multiplicidad; una para cada
extremo de la asociacin
Por ejemplo, en la conexin entre Profesor y Curso

Cada instancia de Profesor, puede impartir muchos (cero


o ms) cursos
Para cada instancia de Curso, hay exactamente un
Profesor

Profesor

Curso
1

Yal Galicia Hdez. (FCC/BUAP)

0.. *

23

Cada extremo de la asociacin contiene un


indicador de multiplicidad

Indica el nmero de objetos que participan en la relacin

Sin especificar
Exactamente uno
Muchos (Cero o ms,
sin limite)
Uno o ms
Cero o uno
Rango Especfico
Varios Rangos
Yal Galicia Hdez. (FCC/BUAP)

1
*
0..*
1..*
0..1
2..4
2,4..6,8
24

La multiplicidad responde dos preguntas

La asociacin es obligatoria o es opcional?


Cul es el mnimo y mximo nmero de objetos de una
clase que se pueden enlazar a un objeto de la otra clase?

Las decisiones de multiplicidad exponen muchas


suposiciones escondidas acerca del problema que se
est modelando
Se puede ir el maestro de licencia o tomar vacaciones?
Puede un curso tener dos maestros?

Profesor

Curso
1

Yal Galicia Hdez. (FCC/BUAP)

1.. *

25

Esta relacin implica dependencia entre clases.


Se denota mediante una lnea punteada con
flecha.

Siempre es dirigida (La clase A depende de la clase B)

La dependencia es causada porque un mtodo en


la clase A temporalmente usa un objeto de la
clase B.
A

B
usa una

Yal Galicia Hdez. (FCC/BUAP)

26

Por

ejemplo, un Pedido usa una Cuenta,


porque un pedido necesita acceder a los
objetos de tipo cuenta para comprobar el
estado de un crdito

La flecha es dirigida hacia la clase usada

Pedido

Cuenta
usa una

Yal Galicia Hdez. (FCC/BUAP)

27

Es comn que un objeto contenga objetos de otras


clases, tal capacidad se llama agregacin.
Por ejemplo: Un objeto Auto tiene o esta formado
por objetos de otras clases (Llantas, Motor, etc.)
La relacin que se establece entre estos objetos se
llama tiene un, es parte de o consta de

Ejemplo: Un auto tiene un motor

Un escuela tiene alumnos

La relacin de agregacin, es una relacin dbil


entre los objetos, ya que estos pueden existir
independientemente del todo. Es decir, una llanta
puede existir, sin ser parte de un auto.
Yal Galicia Hdez. (FCC/BUAP)

28

1..4

Auto

Llanta

multiplicidad
1

Tiene un

Motor

Agregacin: diamante vaco


Yal Galicia Hdez. (FCC/BUAP)

29

Pas

1..*

Estado

0..*

Playa

Yal Galicia Hdez. (FCC/BUAP)

30

Es una relacin de composicin es muy


parecida a la anterior (del tipo tiene
un), slo que en este caso la relacin
es mas fuerte.
La vida de los objetos incluidos como
atributos es totalmente dependiente
de la vida del objeto contenedor

Por ejemplo, una cara puede ser


descrita, por los elementos que la
forman; es decir; una cara est
compuesta por un par de ojos, una boca
y una nariz
Tanto los ojos, la boca y la nariz, son
objetos de otras clases: la clase Ojo, la
clase Boca y la clase Nariz; sin embargo
no existen independientemente a una
cara.
Yal Galicia Hdez. (FCC/BUAP)

31

Tiene un

Cara

Ojo

1
1

Boca

Nariz

Composicin: diamante lleno


Yal Galicia Hdez. (FCC/BUAP)

32

Yal Galicia Hdez. (FCC/BUAP)

33

Como

ya comentamos, la herencia permite


especificar jerarquas de clases en las que
unas clases toman propiedades de otras
(atributos, operaciones y relaciones).
A la clase superior se la llama superclase
mientras que a la clase que hereda las
propiedades de la anterior se la llama
subclase.
La relacin que se establece entre clases
que heredan, se llama es un
Por ejemplo:

Una persona es un ser humano


Un perro es un canino
Un auto es un medio de transporte
Yal Galicia Hdez. (FCC/BUAP)

34

Vehculo

Estas mtodos se
heredan

+ mover ()
+ detener ()
es un

Coche

Bicicleta

+llenarGasolina()
Un coche es un vehculo,
pero NO todos los vehculos
son coches!!
Yal Galicia Hdez. (FCC/BUAP)

35

A este nivel, la
clase es
abstracta

+Abstracta

+Concreta
Yal Galicia Hdez. (FCC/BUAP)

36

La mayora de las veces una clase hereda de solo otra clase


(herencia simple), sin embargo una misma clase puede
heredar de varias clases distintas (herencia multiple).
Esto puede ayudar a simplificar el Modelo de Analisis, pero
debe usarse juiciosamente, ya que puede ser dificil de
implementar en el Modelo de Diseo.
Animal

ObjetoVolador
Herencia
mltiple

Aeroplano

Helicptero

Pjaro

Yal Galicia Hdez. (FCC/BUAP)

Lobo

Caballo
37

Recordamos

que polimorfismo se define


como la capacidad de objetos de clases
diferentes, relacionados mediante herencia,
a responder de forma distinta al mismo
mensaje (llamada a un mtodo)
Es decir, el mismo mensaje que se enva a
muchos tipos de objetos, toma muchas
formas y de ah viene el trmino
polimorfismo.

Yal Galicia Hdez. (FCC/BUAP)

38

La

definicin del mtodo reside en la superclase


La implementacin del mtodo reside en la
subclase
La invocacin es resuelta al momento de
ejecucin (ligadura dinmica)
Transporte

Avanzar
Frenar

Transporte
Transporte

Avanzar
Frenar

avanzar()
frenar()
Transporte

Avanzar
Frenar

Yal Galicia Hdez. (FCC/BUAP)

39

Transporte

En itlicas
denota clase
abstractas

La definicin de estos
mtodos se heredan,
pero hay redefinirlos
o sobreescribirlos

+ avanzar ()
+ frenar ()

Caballo

+ avanzar ()
+ frenar ()

Cohete
+ avanzar ()
+ frenar ()
Yal Galicia Hdez. (FCC/BUAP)

Carro
+ avanzar ()
+ frenar ()
40

Clase
Encapsulacin
Relaciones entre
clases

Asociacin
Dependencia
Agregacin
Composicin
Herencia

Polimorfismo
Yal Galicia Hdez. (FCC/BUAP)

41

Qu es UML?
Diagramas

UML

Diagrama de clases
Clase
Relaciones

entre clases

Asociacin
Dependencia
Agregacin
Composicin
Herencia
Realizacin

Diseo OO
Yal Galicia Hdez. (FCC/BUAP)

42

Para

resolver un problema usando POO se


deben seguir los siguientes pasos

Anlisis

Diseo

En esta etapa se deben identificar todos los objetos


relacionados en la descripcin del problema
Clasificar los objetos
Obtener sus caractersticas y operaciones principales.
Identificar las relaciones entre los objetos

Codificacin

Escribir el cdigo de cada objeto sin tener en cuenta


al resto de elementos del programa
Implementar las relacines
Yal Galicia Hdez. (FCC/BUAP)

43

La identificacin de clases y objetos es la parte


ms difcil del diseo orientado a objetos
La identificacin de objetos implica
descubrimiento e invencin
No hay recetas fciles para identificar clases y
objetos
Clasificar es agrupar cosas que tienen una
estructura comn o exhiben un comportamiento
comn
La clasificacin ayuda a identificar jerarquas de
generalizacin, especializacin, y agregacin
entre clases.
La clasificacin, tambin proporciona una gua
para tomar decisiones sobre modularizacin

Yal Galicia Hdez. (FCC/BUAP)

44

La

clasificacin es el medio por el cual


ordenamos el conocimiento
Yal Galicia Hdez. (FCC/BUAP)

45

Escribe

la descripcin del problema

Identificar la meta

Subraya

lo siguiente:
sustantivos: candidatos a clases
verbos: candidatos a mtodos
adjetivos: candidatos a atributos

Yal Galicia Hdez. (FCC/BUAP)

46

Candidatos a
Clases
Hacer

un programa que permita realizar


operaciones aritmticas sobre fracciones.
Adems, permita imprimir el resultado en
la forma a/b, donde a es el numerador y b
el denominador.
Candidatos
a atributos

Yal Galicia Hdez. (FCC/BUAP)

Candidatos
a mtodos

47

En

el rancho la "Esperanza", se cuenta con


diferentes graneros para almacenar semillas
(maz, trigo, sorgo, etc.). Los graneros tienen
diferentes formas y tamaos, algunos son
cilndricos, otros cbicos y otros cnicos.
Conocer el volumen de semillas almacenadas es
vital para la subsistencia de la regin en
tiempos de sequas; por lo que se requiere
calcular constantemente la cantidad total de
semillas almacenadas en los graneros, sin
importar el tipo de semilla, para evitar
desabasto. Adems, visualizar el tipo de semilla
que est almacenada en cada granero
Yal Galicia Hdez. (FCC/BUAP)

48

Elemento

Aceptado

Rancho

Graneros

Semillas

Maiz

Sorgo

Trigo

Regin

Conocer volumen

Calcular volumen total

Visualizar tipo semillas

Formas

(cilindro, cubo, cnicos)

Tamao

(medidas)

Tipo de semilla
Yal Galicia Hdez. (FCC/BUAP)

49

Para

cada objeto encontrado, modelar su


clase por separado
Relacionar las clases
Frmulas

para clculo de volmenes:

cubo = lado3
cilindro = PI * radio2 * Altura
cono = (PI * radio2 *Altura)/3

Yal Galicia Hdez. (FCC/BUAP)

50

0..*

Rancho

Granero

- graneros[]: Granero

-tipoGrano: String

+calcularVolTotal()

+ visualizarTipo()
+ calcularVolumen()

Cilndrico
-radio: float
-altura: float
+calcularVolumen()

Cnico

Cbico
- lado: float
+ calcularVolumen()

Yal Galicia Hdez. (FCC/BUAP)

- radio: float
- altura: float
+ calcularVolumen()

51

Una relacin de realizacin, indica que una clase


implementa un comportamiento especfico de otra
clase, llamada interface o protocolo.
Una interface puede ser realizada por muchas
clases
Una clase concreta puede implementar muchas
interfaces

estereotipo

<<Interfaz >>

Clase concreta
Yal Galicia Hdez. (FCC/BUAP)

<<Interfaz >>
Forma

FormaRectngulo
52

Una

interface es como una clase abstracta,


slo que todos sus mtodos son siempre
abstractos.
Las interfaces son utilizadas para definir
roles representados por objetos.

Una misma persona puede jugar varios roles


como por ejemplo: maestro, padre, hermano,
esposo, etc.

De

esta forma, la relacin de realizacin que


se establece entre la clase y la interface es
tambin una relacin es-un
Yal Galicia Hdez. (FCC/BUAP)

53

Seres vivos

<<Interfaz >>
Ciudadano
<<Interfaz >>
Empleado

Ser humano

persona

Una

clase puede heredar de solo una clase,


pero puede implementar muchas interfaces
Yal Galicia Hdez. (FCC/BUAP)

54

Yal Galicia Hdez. (FCC/BUAP)

55

Você também pode gostar