61
1 Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema (dominio o solución) y sus posibles relaciones en un estado del mismo. La clase define el ámbito de definición de un conjunto de objetos. Cada objeto pertenece a una clase.

Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 2: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 3: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 4: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

4

Associations• Clases e instancias de asociaciones

Incident Ambulance

Inc1 Inc2 amb1 amb2 amb3

Mobilization

Mobilization(amb3, inc2)

Mobilization(amb2, inc2)

Page 5: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 6: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

6

Multiplicidades

Page 7: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 8: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 9: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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…

Page 10: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 11: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

11

Agregación

• Esto es uma asociación “Tiene un” o “Todo/parte”

• El significado preciso hay que definirlo enel domínio

EmployeeTeam

Page 12: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 13: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

13

Cómo elaborar un diagrama de clases?

• Derivarlo del modelo de objetivosincrementalmente

Þ completitud & pertinencia

Þ método sistemático, no "hocus pocus"

Page 14: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 15: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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)

Page 16: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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)

Page 17: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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)

Page 18: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 19: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 20: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 21: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 22: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 23: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 24: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

Repaso y UML

Page 25: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 26: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 27: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 28: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 29: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 30: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 31: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 32: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 33: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 34: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 35: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 36: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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).

Page 37: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 38: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 39: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 40: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 41: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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í.

Page 42: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 43: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 44: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 45: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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).

Page 46: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

46

Modelo de Dominio: ClasesConceptuales

Page 47: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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……

Page 48: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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.

Page 49: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

49

DERs: Ejemplo

Cliente Proyecto Empleadoordena trabaja_en

Denotar!

Page 50: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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)

Page 51: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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?).

Page 52: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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

Page 53: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

53

Ejemplo

“Una compañía abre y cierra lasreservas para un determinado vuelo”

Page 54: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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..

Page 55: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

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..

Page 56: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

56

Ejemplo

“Cada aeropuerto atiende a una ovarias ciudades”

Page 57: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

57

Ejemplo

“Un vuelo puede implicar escalas en aeropuertos”“Una escala tiene una hora de llegada y otra de

salida”

Page 58: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

58

Ejemplo

“Una reserva implica un único vuelo y un únicopasajero”.“Una reserva puede cancelarse o confirmarse”.

Page 59: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

59

Ejemplo

“Un cliente puede reservar uno o másvuelos y para pasajeros diferentes”.

Page 60: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

60

Ejemplo

Agregar atributos y restricciones

Page 61: Diagrama de Clases - Google Sitessites.google.com/site/ingdesoft1/ModeloObj.pdf1 Diagrama de Clases •El propósito de este diagrama es el de representar los objetos fundamentales

61

Ejemplo

Un posible modelo de dominio