Post on 23-Mar-2020
1
Diagrama de Clases
• El propósito de este diagrama es el de representarlos objetos fundamentales del sistema (dominio osolución) y sus posibles relaciones en un estado delmismo.
• La clase define el ámbito de definición de un conjuntode objetos.
• Cada objeto pertenece a una clase.
2
Modelos de Requerimientos
Goal model &responsibilities
Ambulance Intervention
Incident Ambulance0:1
Mobilization
Modelo deObjetos
Scenarios
Diagrama deContextoCall Assistant Despatching
Software
Mobile DataTerminals
Public AllocatorAmbulance
CrewCall
Assistant
ModeloOperacional
EncodeIncident Form
AllocateAmbulance
CallAssistant
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 AmbulanceClases
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 mínima y máxima en las que un objeto
puede estar simultaneamente involucrado en una asociación
Incident AmbulanceMobilization 0:*0:1
En cualquier moementoun incidente puedetener 0 o másambulancias mobilizadashacia él
En cualquier momentoque observe el mundo,una ambulancia puedeestar mobilizada a losumo a un incidente
6
Multiplicidades
7
Atributos
• Un atributo At de un objeto Ob
– Es una función At: Ob ® Rango (elementary or structured ranges)
Incident Ambulance0:*0:1
Mobilization
time: Time
loc: Locationstatus: Status
loc: Locationtime: Time
8
Especificación Textual (Denotar)
Condiciones para queun objeto esté entresus instancias
Significado en elmundo real del atributo
Entity IncidentDef. Cualquier situación que puedarequerir la intervención de una ambulanciaTienelocation: Location{el lugar del inciente}time: Time{tiempo en el que ocurrió}pending: Bool{es true si una ambulancia no llegótodavía a la escena del mismo}Invariantes del DominioHay a lo sumo un inciente “pending” porubicación, i.e. dos incidentes que son elmismo si tienen la misma ubicación yestán pendientes.
Propiedades deldominio de la clase
9
Denotación
Asociación MobilizationLinks Ambulance {role ambulance multiplicity 0:1}
Incident {role incident multiplicity 0:*}Def. Una ambulancia está mobilizada hacia un incidente si sutripulación es conciente de que debe atenderloHastime: Time{el momento en el que la ambulancia comienza a mobilizarseInvariantes del dominio…
10
Especialización
• Toda instancia de una clase lo es de la otra– Subclases heredan atributos & asociaciones de la clase padre
Ambulance Motorbike Helicopter
Incident Response Unit0:*0:1
Mobilization
time: Time
loc: Locationstatus: Status
loc: Locationtime: Time
IsaIsaIsa
11
Agregación
• Esto es uma asociación “Tiene un” o “Todo/parte”
• El significado preciso hay que definirlo enel domínio
EmployeeTeam
12
Modelos con Clases Conceptuales
• Son modelos de conceptos del domínio
• Hay objetos que tal vez no se representen finalmente
en el software
• No hay métodos
– Posponer decisiones
13
Cómo elaborar un diagrama de clases?
• Derivarlo del modelo de objetivosincrementalmente
Þ completitud & pertinencia
Þ método sistemático, no "hocus pocus"
14
Goal Achieve [First Ambulance Intervention]
Definition For every urgent call reporting an incident, a firstambulance should arrive at the incident scene within 8 minutesfor category A incidents (immediately life-threatening) andwithin 14 minutes for category B incidents.
Ejemplo del sistema de ambulancias
Ambulance
Interventiontime: Time
Incidentcategory: Cat.
Urgent Call
time: Time
Reporting
15
tips & heuristicas
• Un elemento estructural X en una formulaciónde objetivos...
– X está definido con un sólo estadoÞ Clase (evento)
– X is activo (controla comportamiento)Þ Clase (agente)
– X is pasivo, autónomo (con instancias distingibles)
Þ Clase (entidad)
– X is passive, contingente de otros conceptos (coninstancias distinguibles)
Þ asociación(slide : A. van Lamsweerde)
16
Tips y Heurísticas (cont.)
– X es un atributo cuando...
• Las instancias de X no son distinguibles (salvo x
valor)
• X es una función y el el rango no es un conceptosobre el que se vaya a adjuntar atributos oasociaciones
BookAuthors: String
Author BookWritingvs.
(slide : A. van Lamsweerde)
17
Tips y Heurísticas (cont.)• El atributo X se adjunta a una asociación o a
los objetos asociados? Ob1 X ?
Ob1 X ?
Assoc X ?
0.. 0..
A la asociación 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
Mobilizationtime: Time
Incident Formloc: Locationcategory: Cat.
Encoding
First Ambulance Intervention
Incident FormEncoded
Mobilized AmbulanceIntervention
NearestAvailableAmb. Mobilized
AmbulanceInterventiontime: Time
Incidentcategory: Cat.
Urgent Calltime: Time
Reporting
Ambulancestatus: Statusloc: Location
19
Incident Form...
Encoding
First Ambulance Intervention
Incident FormEncoded
Mobilized AmbulanceIntervention
NearestAvailableAmb. Mobilized
Intervention
Urgent Calltime: Time
Reporting
Incidentcategory: Cat.
Ambulancestatus: Statusloc: Location
Mobilization
Allocated AmbulanceMobilized
Nearest AvailableAmb. Allocated
Allocation
20
First Ambulance Intervention
Incident FormEncoded
Mobilized AmbulanceIntervention
NearestAvailableAmb. Mobilized
Ambulancestatus: Statusloc: Location
Allocated AmbulanceMobilized
Nearest AvailableAmb. Allocated
AmbulanceAllocatedBased On Amb.Info
Accurate Amb.Status & Location Info
Ambulance Infostatus: Statusloc: Location
Tracking
21
Ambulance System Example (Cont'd)
Incident Formcategory: Cat.loc: Location
Encoding
Intervention
Urgent Calltime: Time
Reporting
Incidentcategory: Cat.loc: Location
Ambulancestatus: Statusloc: Location
Mobilization
Allocation Info
• Derived class diagram
Ambulance Infostatus: Statusloc: Location
Tracking
Allocation
22
Tips y Heurísticas (cont.)• Diferencias entre diagramas de clases y de contexto
– Diagrama de clases define los fenómenos de interés
– Diagrama de Contexto defin quién monitorea/controla estos fenómenosLos modelos son complementarios
Meeting Initator MeetingdateRangedate
setsDateRangeE.g. Diagrama incorrecto
Scheduler
setsDate
MeetingInitator
MeetingdateRangedate
Scheduler
Initiating
Scheduling
Diagrama de ClasesCorrecto Diagrama de Context
Correcto
SchedulerMeeting InitatorMeeting.dateRange
Meeting.date
23
Tips y Heurísticas (cont.)• Cómo nombrar objetos y atributos
– Importante para la comprensión
– Elegir palabras usuales en el domínio
– Evitar nombres no específicos (lista, formulario, cosa, ...)
• Evitar conceptos implementativos
Group
Login
List
EmailList
PhotoList
PhotoEmail
Owns
AddressBook
Contact
PhotoAlbum
SharedCollectionUserGroup
User
Repaso y UML
25
Diagrama de Clases
• Cada clase se representa en un rectángulo con trescompartimientos:
– Nombre de la clase
– Atributos de la clase
– Operaciones de la clase
26
Diagrama de Clases: Atributos
El atributo fecha de nacimiento es público.El atributo fecha de nacimiento es público.
El atributo edad es derivado (puede calcularse aEl atributo edad es derivado (puede calcularse apartir de la fecha de nacimiento), y determina unapartir de la fecha de nacimiento), y determina una
relación de orden entre las instancias de lasrelación de orden entre las instancias de laspersonas.personas.
El atributo DNI es un atributo protegido.El atributo DNI es un atributo protegido.
El atributo El atributo coloresPreferidoscoloresPreferidos representa una representa unacolección o conjunto de valores del tipo Colorcolección o conjunto de valores del tipo Color
27
Diagrama de ClasesRelaciones entre Clases
• Una asociación es una conexión estructural simpleentre clases. Las instancias de las clases implicadasen una asociación estarán probablementecomunicándose en el momento de ejecución.
• Los enlaces entre de objetos pueden representarseentre las respectivas clases
• Formas de relación entre clases:– Asociación y Agregación (vista como un caso
particular de asociación)– Generalización/Especialización
28
Diagrama de Clases: Asociación
• La asociación expresa una conexión bidireccionalentre objetos.
• Una asociación es una abstracción de la relaciónexistente en los enlaces entre los objetos.
EnlaceEnlace
29
Diagrama de ClasesRelaciones entre Clases
Multiplicidad11 Un elemento relacionado. Un elemento relacionado.
0..1 0..1 Uno o ningún elemento relacionado.Uno o ningún 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..NM..N Entre M y N elementos relacionados.Entre M y N elementos relacionados.
30
Diagrama de Clases: Asociación
Rol• Identificado como un nombre a los finales de la asociación,
describe la semántica de la relación en el sentido indicado.
• Cada asociación tiene dos roles; cada rol es una dirección en laasociación.
31
Diagrama de Clases: Asociación
• Se asume que una asociación es bidireccional,es decir que se puede navegar desdecualquiera de clases implicadas a la otra,pero es posible indicar que la navegaciónocurrirá en una sola dirección.
32
Diagrama de Clases: Agregación
• Es una asociación especial, una relacióndel tipo “todo/parte” dentro de la cualuna o más clases son partes de unconjunto.
33
Diagrama de Clases: Composición
• La composición es una forma ‘fuerte’ deagregación. Se diferencian en:
– En la composición tanto el todo como las partestienen el mismo ciclo de vida.
– Un objeto puede pertenecer solamente a unacomposición.
34
Diagrama de Clases: AsociaciónCalificada
• Un calificador es un atributo (o tupla de atributos) de laasociación cuyos valores sirven para particionar el conjunto deobjetos enlazados a otro.
• Un calificador se representa como un pequeño rectánguloconectado al final de una asociación y a la clase.
• El rectángulo del calificador es parte de la asociación, y noparte de la clase.
filafila: : intint
columnacolumna::intint
35
Diagrama de Clases: Asociación n-arias
• Son asociaciones que se establecen entre más de dos clases• Una clase puede aparecer varias veces desempeñando distintos
roles.• Las asociaciones n-arias se representan a través de rombo que
se une con cada una de las clases.
La relaciones n-ariasLa relaciones n-ariaspueden ser usadaspueden ser usadas
para impedirpara impedirinconsistencias en elinconsistencias en el
modelo.modelo.
36
Diagrama de Clases: Generalización
• Una generalización se refiere a una relaciónentre una clase general (superclase o padre)y una versión más específica de dicha clase(subclase o hija).
37
Diagrama de Clases: Generalización
• Nombres usados: clase padre - clase hija. Otros nombres:superclase - subclase, clase base - clase derivada.
• Las subclases heredan propiedades de sus clases padre, esdecir, atributos y operaciones (y asociaciones) de la clasepadre están disponibles en sus clases hijas.
• La especialización es una técnica muy eficaz para laextensión y reutilización.
Restricciones predefinidasRestricciones predefinidasen UML:en UML:
•• OverlappingOverlapping
•• DisjointDisjoint
•• Complete Complete
•• Incomplete Incomplete
38
Diagrama de Clases: Generalización
• Particionamiento del espacio de objetos ClasificaciónEstática
• Particionamiento del espacio de estados de los objetos Clasificación Dinámica
• En ambos casos se recomienda considerargeneralizaciones/especializaciones disjuntas
• Usando discriminadores se pueden tener variasespecializaciones de una misma clase padre
DiscriminadorDiscriminador
39
Diagrama de Clases: Generalización
• La herencia múltiple debe manejarse con precaución.Algunos problemas son el conflicto de nombre y el conflictode precedencia.
• Se recomienda un uso restringido y disciplinado de laherencia.
• Permite modelar jerarquías alternativas.
40
• Es una asociación y una clase simultáneamente.• Hay que tener en cuenta dónde se colocan los
atributos.
Diagrama de Clases: Clase de asociación
41
Modelo de Dominio vs. Modelo deDiseño
• El diagrama de clases puede utilizarse con distintosfines en distintas etapas del proceso de desarrollo.
• Durante la etapa de análisis, el modelo de dominioes encargado de mostrar el conjunto de clasesconceptuales del problema y las relacionespresentes entre sí.
• Durante la etapa de diseño, el modelo de diseñodetermina las futuras componentes de software(clases) y sus relaciones entre sí.
42
Modelo de Dominio
• Es una representación de las cosas,entidades, idea, clasesconceptuales u objetos del “mundoreal” o dominio de interés, no decomponentes de software.
• Muestra clases conceptualessignificativas en un dominio delproblema.
• Se usa como base para el diseño delos objetos de software.
43
Modelo de Dominio
• Es un artefacto clave en el modelado deobjetivos y requerimientos
• Podría se considerado como un diccionariovisual de abstracciones de clasesconceptuales, vocabulario e información deldominio.
• Los modelos de objetos subyacentes podríanusarse para modelar los distintos estados del“mundo”
• Denotar es clave para la refutabilidad de lasdescripciones.
44
Modelo de Dominio
• Otros nombres: modelo conceptual, modelo de objetos deldominio y modelo de los objetos de análisis.
• Según el punto de vista, tiene puntos en común con elDiagrama de Entidad Relación.
• Usando UML, el MD se representa con un conjunto dediagramas 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: ClasesConceptuales
Es válido…– Tener clases conceptuales sin atributos.– Tener clases conceptuales para las cuales no haya
requerimientos de información a registrar.– Tener clases conceptuales con rol de
comportamiento, en lugar de información.
Estrategias para identificar– Utilizar lista de categorías de clases conceptuales.– Usar un modelo de objetivos como marco.– Identificar frases nominales (sustantivos o frases).
46
Modelo de Dominio: ClasesConceptuales
47
Ejemplo
Un posible modelo de dominio para el caso del local deUn posible modelo de dominio para el caso del local deventa de venta de electrodomésticoselectrodomésticos……
48
DERs
• Diagrama Entidad Relación.• Nacido para describir bases de
datos relacionales (Chen).• 2 conceptos: entidades y relaciones.
– Entidades: conjuntos de individuos[atributos]
– Relaciones entre individuosespecificando cardinalidad yopcionalidad.
49
DERs: Ejemplo
Cliente Proyecto Empleadoordena trabaja_en
Denotar!
50
DERs
Cliente Proyecto Empleadoordena trabaja_en
trabaja_para
Transitividad :definición o sea relación derivada, no debe aparecer.
Span temporal :un intervalo (simplicidad)
51
DERs: Características
• Formales, declarativos, gráficos,refutables (si hay designaciones)
• Scope: entidades y relacionesinvariantes con el tiempo.
• Sin mecanismo de composición standard(subdominios?).
52
Ejemplo
“Las compañías aéreas ofrecen varios vuelos”
• Compañía aérea y Vuelo son conceptosimportantes del mundo real con atributos ycomportamientos, por lo que son clasescandidatas para nuestro modelado estático dedominio
53
Ejemplo
“Una compañía abre y cierra lasreservas para un determinado vuelo”
54
Ejemplo
“Un vuelo tiene un día y una hora desalida y un día y hora de llegada”Estas nociones de fechas y horas representan simplementeEstas nociones de fechas y horas representan simplementevalores, por lo quevalores, por lo que los modelaremos como atributos y nolos modelaremos como atributos y nocomo simples objetoscomo simples objetos..
55
Ejemplo
“Un vuelo tiene un aeropuerto desalida y otro de llegada”•• Un objeto es algo más importante que un atributo.Un objeto es algo más importante que un atributo.
•• La noción de aeropuerto es complejaLa noción de aeropuerto es compleja..
56
Ejemplo
“Cada aeropuerto atiende a una ovarias 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 únicopasajero”.“Una reserva puede cancelarse o confirmarse”.
59
Ejemplo
“Un cliente puede reservar uno o másvuelos y para pasajeros diferentes”.
60
Ejemplo
Agregar atributos y restricciones
61
Ejemplo
Un posible modelo de dominio