Está en la página 1de 61

1

Diagrama de Clases
El propsito de este diagrama es el de representar
los objetos fundamentales del sistema (dominio o
solucin) y sus posibles relaciones en un estado del
mismo.
La clase define el mbito de definicin de un conjunto
de objetos.
Cada objeto pertenece a una clase.
2
Modelos de Requerimientos
Goal model &
responsibilities
Ambulance Intervention
Incident Ambulance
0:1
Mobilization
Modelo de
Objetos
Scenarios
Diagrama de
Contexto
Call Assistant
Despatching
Software
Mobile Data
Terminals
Public
Allocator
Ambulance
Crew
Call
Assistant
Modelo
Operacional
Encode
Incident Form
Allocate
Ambulance
Call
Assistant
3
Objetos & Clases
Una clase describe un grupo de objectos
(instancias)
Mismas attributos y asociaciones
Mismo comportamiento (state transitions)
Hay una identidad que distingue objetos sin importar el valor de sus atributos
Incident Ambulance
Clases
Objectos Inc1
Inc2 amb1 amb2
amb3
= Instancia de
4
Associations
Clases e instancias de asociaciones
Incident Ambulance
Inc1
Inc2 amb1 amb2
amb3
Mobilization
Mobilization(amb3, inc2)
Mobilization(amb2, inc2)
5
Multiplicidades
multiplicidad : Cantidad mnima y mxima en las que un objeto
puede estar simultaneamente involucrado en una asociacin
Incident Ambulance
Mobilization 0:*
0:1
En cualquier moemento
un incidente puede
tener 0 o ms
ambulancias mobilizadas
hacia l
En cualquier momento
que observe el mundo,
una ambulancia puede
estar mobilizada a lo
sumo a un incidente
6
Multiplicidades
7
Atributos
Un atributo At de un objeto Ob
Es una funcin At: Ob ! Rango (elementary or structured ranges)
Incident Ambulance
0:*
0:1
Mobilization
time: Time
loc: Location
status: Status
loc: Location
time: Time
8
Especificacin Textual (Denotar)
Condiciones para que
un objeto est entre
sus instancias
Significado en el
mundo real del atributo
Entity Incident
Def. Cualquier situacin que pueda
requerir la intervencin de una ambulancia
Tiene
location: Location
{el lugar del inciente}
time: Time
{tiempo en el que ocurri}
pending: Bool
{es true si una ambulancia no lleg
todava a la escena del mismo}
Invariantes del Dominio
Hay a lo sumo un inciente pending por
ubicacin, i.e. dos incidentes que son el
mismo si tienen la misma ubicacin y
estn pendientes.
Propiedades del
dominio de la clase
9
Denotacin
Asociacin Mobilization
Links Ambulance {role ambulance multiplicity 0:1}
Incident {role incident multiplicity 0:*}
Def. Una ambulancia est mobilizada hacia un incidente si su
tripulacin es conciente de que debe atenderlo
Has
time: Time
{el momento en el que la ambulancia comienza a mobilizarse
Invariantes del dominio

10
Especializacin
Toda instancia de una clase lo es de la otra
Subclases heredan atributos & asociaciones de la clase padre
Ambulance Motorbike Helicopter
Incident Response Unit
0:*
0:1
Mobilization
time: Time
loc: Location
status: Status
loc: Location
time: Time
Isa
Isa
Isa
11
Agregacin
Esto es uma asociacin Tiene un o Todo/parte
El significado preciso hay que definirlo en
el domnio
Employee
Team
12
Modelos con Clases Conceptuales
Son modelos de conceptos del domnio
Hay objetos que tal vez no se representen finalmente
en el software
No hay mtodos
Posponer decisiones
13
Cmo elaborar un diagrama de clases?
Derivarlo del modelo de objetivos
incrementalmente
! completitud & pertinencia
! mtodo sistemtico, no "hocus pocus"
14
Goal Achieve [First Ambulance Intervention]
Definition For every urgent call reporting an incident, a first
ambulance should arrive at the incident scene within 8 minutes
for category A incidents (immediately life-threatening) and
within 14 minutes for category B incidents.
Ejemplo del sistema de ambulancias
Ambulance
Intervention
time: Time
Incident
category: Cat.
Urgent Call
time: Time
Reporting
15
tips & heuristicas
Un elemento estructural X en una formulacin
de objetivos...
X est definido con un slo estado
! Clase (evento)
X is activo (controla comportamiento)
! Clase (agente)
X is pasivo, autnomo (con instancias distingibles)
! Clase (entidad)
X is passive, contingente de otros conceptos (con
instancias distinguibles)
! asociacin
(slide : A. van Lamsweerde)
16
Tips y Heursticas (cont.)
X es un atributo cuando...
Las instancias de X no son distinguibles (salvo x
valor)
X es una funcin y el el rango no es un concepto
sobre el que se vaya a adjuntar atributos o
asociaciones
Book
Authors: String
Author
Book
Writing
vs.
(slide : A. van Lamsweerde)
17
Tips y Heursticas (cont.)
El atributo X se adjunta a una asociacin o a
los objetos asociados?
Ob1
X ?
Ob1
X ?
Assoc
X ?
0.. 0..
A la asociacin si los objetos pueden estar desasociados
Borrower BookCopy
DateBorrowed
Loan
DateBorrowed
0..1 0..Max
(slide : A. van Lamsweerde)
18
Ejemplo del sistema de ambulancias
Mobilization
time: Time
Incident Form
loc: Location
category: Cat.
Encoding
First Ambulance Intervention
Incident Form
Encoded
Mobilized Ambulance
Intervention
Nearest
Available
Amb. Mobilized
Ambulance
Intervention
time: Time
Incident
category: Cat.
Urgent Call
time: Time
Reporting
Ambulance
status: Status
loc: Location
19
Incident Form
...
Encoding
First Ambulance Intervention
Incident Form
Encoded
Mobilized Ambulance
Intervention
Nearest
Available
Amb. Mobilized
Intervention
Urgent Call
time: Time
Reporting
Incident
category: Cat.
Ambulance
status: Status
loc: Location
Mobilization
Allocated Ambulance
Mobilized
Nearest Available
Amb. Allocated
Allocation
20
First Ambulance Intervention
Incident Form
Encoded
Mobilized Ambulance
Intervention
Nearest
Available
Amb. Mobilized
Ambulance
status: Status
loc: Location
Allocated Ambulance
Mobilized
Nearest Available
Amb. Allocated
AmbulanceAllocated
Based On Amb.Info
Accurate Amb.
Status & Location Info
Ambulance Info
status: Status
loc: Location
Tracking
21
Ambulance System Example (Cont'd)
Incident Form
category: Cat.
loc: Location
Encoding
Intervention
Urgent Call
time: Time
Reporting
Incident
category: Cat.
loc: Location
Ambulance
status: Status
loc: Location
Mobilization
Allocation Info
Derived class diagram
Ambulance Info
status: Status
loc: Location
Tracking
Allocation
22
Tips y Heursticas (cont.)
Diferencias entre diagramas de clases y de contexto
Diagrama de clases define los fenmenos de inters
Diagrama de Contexto defin quin monitorea/controla estos fenmenos
Los modelos son complementarios
Meeting Initator Meeting
dateRange
date
setsDateRange
E.g. Diagrama incorrecto
Scheduler
setsDate
Meeting
Initator
Meeting
dateRange
date
Scheduler
Initiating
Scheduling
Diagrama de Clases
Correcto
Diagrama de Context
Correcto
Scheduler Meeting Initator
Meeting.dateRange
Meeting.date
23
Tips y Heursticas (cont.)
Cmo nombrar objetos y atributos
Importante para la comprensin
Elegir palabras usuales en el domnio
Evitar nombres no especficos (lista, formulario, cosa, ...)
Evitar conceptos implementativos
Group
Login
List
Email
List
Photo
List
Photo Email
Owns
Address
Book
Contact
Photo
Album
Shared
Collection
UserGroup
User
Repaso y UML
25
Diagrama de Clases
Cada clase se representa en un rectngulo con tres
compartimientos:
Nombre de la clase
Atributos de la clase
Operaciones de la clase
26
Diagrama de Clases: Atributos
El atributo fecha de nacimiento es pblico. El atributo fecha de nacimiento es pblico.
El atributo edad es derivado (puede calcularse a El atributo edad es derivado (puede calcularse a
partir de la fecha de nacimiento), y determina una partir de la fecha de nacimiento), y determina una
relacin de orden entre las instancias de las relacin de orden entre las instancias de las
personas. personas.
El atributo DNI es un atributo protegido. El atributo DNI es un atributo protegido.
El atributo El atributo coloresPreferidos coloresPreferidos representa una representa una
coleccin o conjunto de valores del tipo Color coleccin o conjunto de valores del tipo Color
27
Diagrama de Clases
Relaciones entre Clases
Una asociacin es una conexin estructural simple
entre clases. Las instancias de las clases implicadas
en una asociacin estarn probablemente
comunicndose en el momento de ejecucin.
Los enlaces entre de objetos pueden representarse
entre las respectivas clases
Formas de relacin entre clases:
Asociacin y Agregacin (vista como un caso
particular de asociacin)
Generalizacin/Especializacin
28
Diagrama de Clases: Asociacin
La asociacin expresa una conexin bidireccional
entre objetos.
Una asociacin es una abstraccin de la relacin
existente en los enlaces entre los objetos.
Enlace Enlace
29
Diagrama de Clases
Relaciones entre Clases
Multiplicidad
1 1 Un elemento relacionado. Un elemento relacionado.
0..1 0..1 Uno o ningn elemento relacionado. Uno o ningn elemento relacionado.
0..* 0..* Varios elementos relacionados o ninguno. Varios elementos relacionados o ninguno.
1..* 1..* Varios elementos relacionados pero al menos uno. Varios elementos relacionados pero al menos uno.
* * Varios elementos relacionados. Varios elementos relacionados.
M..N M..N Entre M y N elementos relacionados. Entre M y N elementos relacionados.
30
Diagrama de Clases: Asociacin
Rol
Identificado como un nombre a los finales de la asociacin,
describe la semntica de la relacin en el sentido indicado.
Cada asociacin tiene dos roles; cada rol es una direccin en la
asociacin.
31
Diagrama de Clases: Asociacin
Se asume que una asociacin es bidireccional,
es decir que se puede navegar desde
cualquiera de clases implicadas a la otra,
pero es posible indicar que la navegacin
ocurrir en una sola direccin.
32
Diagrama de Clases: Agregacin
Es una asociacin especial, una relacin
del tipo todo/parte dentro de la cual
una o ms clases son partes de un
conjunto.
33
Diagrama de Clases: Composicin
La composicin es una forma fuerte de
agregacin. Se diferencian en:
En la composicin tanto el todo como las partes
tienen el mismo ciclo de vida.
Un objeto puede pertenecer solamente a una
composicin.
34
Diagrama de Clases: Asociacin
Calificada
Un calificador es un atributo (o tupla de atributos) de la
asociacin cuyos valores sirven para particionar el conjunto de
objetos enlazados a otro.
Un calificador se representa como un pequeo rectngulo
conectado al final de una asociacin y a la clase.
El rectngulo del calificador es parte de la asociacin, y no
parte de la clase.
fila fila: : int int
columna columna: :
int int
35
Diagrama de Clases: Asociacin n-arias
Son asociaciones que se establecen entre ms de dos clases
Una clase puede aparecer varias veces desempeando distintos
roles.
Las asociaciones n-arias se representan a travs de rombo que
se une con cada una de las clases.
La relaciones n-arias La relaciones n-arias
pueden ser usadas pueden ser usadas
para impedir para impedir
inconsistencias en el inconsistencias en el
modelo. modelo.
36
Diagrama de Clases: Generalizacin
Una generalizacin se refiere a una relacin
entre una clase general (superclase o padre)
y una versin ms especfica de dicha clase
(subclase o hija).
37
Diagrama de Clases: Generalizacin
Nombres usados: clase padre - clase hija. Otros nombres:
superclase - subclase, clase base - clase derivada.
Las subclases heredan propiedades de sus clases padre, es
decir, atributos y operaciones (y asociaciones) de la clase
padre estn disponibles en sus clases hijas.
La especializacin es una tcnica muy eficaz para la
extensin y reutilizacin.
Restricciones predefinidas Restricciones predefinidas
en UML: en UML:
Overlapping Overlapping
Disjoint Disjoint
Complete Complete
Incomplete Incomplete
38
Diagrama de Clases: Generalizacin
Particionamiento del espacio de objetos ! Clasificacin
Esttica
Particionamiento del espacio de estados de los objetos !
Clasificacin Dinmica
En ambos casos se recomienda considerar
generalizaciones/especializaciones disjuntas
Usando discriminadores se pueden tener varias
especializaciones de una misma clase padre
Discriminador Discriminador
39
Diagrama de Clases: Generalizacin
La herencia mltiple debe manejarse con precaucin.
Algunos problemas son el conflicto de nombre y el conflicto
de precedencia.
Se recomienda un uso restringido y disciplinado de la
herencia.
Permite modelar jerarquas alternativas.
40
Es una asociacin y una clase simultneamente.
Hay que tener en cuenta dnde se colocan los
atributos.
Diagrama de Clases: Clase de asociacin
41
Modelo de Dominio vs. Modelo de
Diseo
El diagrama de clases puede utilizarse con distintos
fines en distintas etapas del proceso de desarrollo.
Durante la etapa de anlisis, el modelo de dominio
es encargado de mostrar el conjunto de clases
conceptuales del problema y las relaciones
presentes entre s.
Durante la etapa de diseo, el modelo de diseo
determina las futuras componentes de software
(clases) y sus relaciones entre s.
42
Modelo de Dominio
Es una representacin de las cosas,
entidades, idea, clases
conceptuales u objetos del mundo
real o dominio de inters, no de
componentes de software.
Muestra clases conceptuales
significativas en un dominio del
problema.
Se usa como base para el diseo de
los objetos de software.
43
Modelo de Dominio
Es un artefacto clave en el modelado de
objetivos y requerimientos
Podra se considerado como un diccionario
visual de abstracciones de clases
conceptuales, vocabulario e informacin del
dominio.
Los modelos de objetos subyacentes podran
usarse para modelar los distintos estados del
mundo
Denotar es clave para la refutabilidad de las
descripciones.
44
Modelo de Dominio
Otros nombres: modelo conceptual, modelo de objetos del
dominio y modelo de los objetos de anlisis.
Segn el punto de vista, tiene puntos en comn con el
Diagrama de Entidad Relacin.
Usando UML, el MD se representa con un conjunto de
diagramas de clases. Se puede mostrar:
objetos del dominio o clases conceptuales
asociaciones entre las clases conceptuales
atributos de las clases conceptuales
45
Modelo de Dominio: Clases
Conceptuales
Es vlido
Tener clases conceptuales sin atributos.
Tener clases conceptuales para las cuales no haya
requerimientos de informacin a registrar.
Tener clases conceptuales con rol de
comportamiento, en lugar de informacin.
Estrategias para identificar
Utilizar lista de categoras de clases conceptuales.
Usar un modelo de objetivos como marco.
Identificar frases nominales (sustantivos o frases).
46
Modelo de Dominio: Clases
Conceptuales
47
Ejemplo
Un posible modelo de dominio para el caso del local de Un posible modelo de dominio para el caso del local de
venta de venta de electrodomsticos electrodomsticos
48
DERs
Diagrama Entidad Relacin.
Nacido para describir bases de
datos relacionales (Chen).
2 conceptos: entidades y relaciones.
Entidades: conjuntos de individuos
[atributos]
Relaciones entre individuos
especificando cardinalidad y
opcionalidad.
49
DERs: Ejemplo
Cliente Proyecto Empleado
ordena
trabaja_en
Denotar!
50
DERs
Cliente Proyecto Empleado
ordena
trabaja_en
trabaja_para
Transitividad :definicin o sea relacin derivada, no debe aparecer.
Span temporal :un intervalo (simplicidad)
51
DERs: Caractersticas
Formales, declarativos, grficos,
refutables (si hay designaciones)
Scope: entidades y relaciones
invariantes con el tiempo.
Sin mecanismo de composicin standard
(subdominios?).
52
Ejemplo
Las compaas areas ofrecen varios vuelos
Compaa area y Vuelo son conceptos
importantes del mundo real con atributos y
comportamientos, por lo que son clases
candidatas para nuestro modelado esttico de
dominio
53
Ejemplo
Una compaa abre y cierra las
reservas para un determinado vuelo
54
Ejemplo
Un vuelo tiene un da y una hora de
salida y un da y hora de llegada
Estas nociones de fechas y horas representan simplemente Estas nociones de fechas y horas representan simplemente
valores, por lo que valores, por lo que los modelaremos como atributos y no los modelaremos como atributos y no
como simples objetos como simples objetos. .
55
Ejemplo
Un vuelo tiene un aeropuerto de
salida y otro de llegada
Un objeto es algo ms importante que un atributo. Un objeto es algo ms importante que un atributo.
La nocin de aeropuerto es compleja La nocin de aeropuerto es compleja. .
56
Ejemplo
Cada aeropuerto atiende a una o
varias ciudades
57
Ejemplo
Un vuelo puede implicar escalas en aeropuertos
Una escala tiene una hora de llegada y otra de
salida
58
Ejemplo
Una reserva implica un nico vuelo y un nico
pasajero.
Una reserva puede cancelarse o confirmarse.
59
Ejemplo
Un cliente puede reservar uno o ms
vuelos y para pasajeros diferentes.
60
Ejemplo
Agregar atributos y restricciones
61
Ejemplo
Un posible modelo de dominio

También podría gustarte