Está en la página 1de 61

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.

Modelos de Requerimientos
Goal model & responsibilities
Ambulance Intervention

Diagrama de Contexto
Call Assistant

Despatching Software M obile Data Terminals

Modelo de Objetos
Incident

Modelo Operacional
Encode Incident Form Allocate Ambulance Call Assistant

Mobilization
0:1

Ambulance

Scenarios
Call Public Assistant Allocator Ambulance Crew

Objetos & Clases


Una clase describe un grupo de objectos (instancias)
Mismas attributos y asociaciones Mismo comportamiento (state transitions)
Clases Objectos
Incident Ambulance

Inc1

Inc2

amb1

amb2

amb3 = Instancia de

Hay una identidad que distingue objetos sin importar el valor de sus atributos

Associations
Clases e instancias de asociaciones

Incident

Mobilization

Ambulance

Inc1

Inc2

amb1

amb2

amb3

Mobilization(amb2, inc2) Mobilization(amb3, inc2)

Multiplicidades
multiplicidad : Cantidad mnima y mxima en las que un objeto puede estar simultaneamente involucrado en una asociacin
Incident 0:1 Mobilization 0:* Ambulance

En cualquier momento que observe el mundo, una ambulancia puede estar mobilizada a lo sumo a un incidente

En cualquier moemento un incidente puede tener 0 o ms ambulancias mobilizadas hacia l

Multiplicidades

Atributos
Un atributo At de un objeto Ob
Es una funcin At: Ob Rango (elementary or structured ranges)

Incident loc: Location time: Time

0:1 Mobilization time: Time

0:*

Ambulance loc: Location status: Status

Especificacin Textual (Denotar)


Entity Incident Def. Cualquier situacin que pueda requerir la intervencin de una ambulancia Tiene location: Location {el lugar del inciente}

Condiciones para que un objeto est entre sus instancias Significado en el mundo real del atributo

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


8

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

Especializacin
Toda instancia de una clase lo es de la otra
Subclases heredan atributos & asociaciones de la clase padre
Incident loc: Location time: Time 0:1 Mobilization time: Time 0:* Response Unit loc: Location status: Status

Isa Ambulance

Isa

Isa

Motorbike

Helicopter

10

Agregacin
Esto es uma asociacin Tiene un o Todo/parte
Team
Employee

El significado preciso hay que definirlo en el domnio

11

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

12

Cmo elaborar un diagrama de clases?


Derivarlo del modelo de objetivos incrementalmente
completitud & pertinencia mtodo sistemtico, no "hocus pocus"

13

Ejemplo del sistema de ambulancias


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.
Ambulance Intervention time: Time

Incident category: Cat. Reporting Urgent Call time: Time

14

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

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

vs.

Author

Writing

Book

(slide : A. van Lamsweerde)

16

Tips y Heursticas (cont.)


El atributo X se adjunta a una asociacin o a los objetos asociados? 0..
Ob1 X? Assoc X? 0.. Ob1 X?

A la asociacin si los objetos pueden estar desasociados


0..1

Borrower

0..Max BookCopy DateBorrowed

Loan DateBorrowed
(slide : A. van Lamsweerde)
17

Ejemplo del sistema de ambulancias


First Ambulance Intervention Incident Form Encoded Nearest Available Amb. Mobilized Mobilized Ambulance Intervention

Incident
category: Cat.

Intervention
time: Time

Reporting
Urgent Call time: Time

Ambulance status: Status loc: Location

Mobilization
time: Time

Encoding Incident Form


loc: Location category: Cat.
18

First Ambulance Intervention Incident Form Encoded Nearest Available Amb. Mobilized Mobilized Ambulance Intervention

Nearest Available Amb. Allocated Incident


category: Cat.

Allocated Ambulance Mobilized Intervention Mobilization Allocation


Ambulance status: Status loc: Location

Reporting
Urgent Call time: Time

Encoding
Incident Form ...
19

First Ambulance Intervention Incident Form Encoded Nearest Available Amb. Mobilized Mobilized Ambulance Intervention

Nearest Available Amb. Allocated

Allocated Ambulance Mobilized Ambulance status: Status loc: Location Tracking Ambulance Info status: Status loc: Location
20

Accurate Amb. Status & Location Info

AmbulanceAllocated Based On Amb.Info

Ambulance System Example (Cont'd)


Derived class diagram
Incident
category: Cat. loc: Location

Intervention Mobilization Allocation

Ambulance status: Status loc: Location

Reporting
Urgent Call time: Time

Tracking

Encoding
Incident Form category: Cat. loc: Location

Allocation Info

Ambulance Info status: Status loc: Location


21

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


E.g. Diagrama incorrecto
Meeting Initator

setsDateRange

Meeting
dateRange date

setsDate

Scheduler

Diagrama de Clases Correcto


Meeting Initator

Initiating Meeting

dateRange date

Diagrama de Context Correcto


Meeting Initator

Meeting.dateRange
Scheduler

Scheduling
Scheduler

Meeting.date
22

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


UserGroup Group Owns List Shared Collection

User

Login

Email Address List Book Email

Photo List

Photo Album

Contact

Photo
23

Repaso y UML

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

25

Diagrama de Clases: Atributos

El atributo fecha de nacimiento es pblico. El atributo edad es derivado (puede calcularse a partir de la fecha de nacimiento), y determina una relacin de orden entre las instancias de las personas. El atributo DNI es un atributo protegido.

El atributo coloresPreferidos representa una coleccin o conjunto de valores del tipo Color
26

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
27

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

28

Diagrama de Clases
Relaciones entre Clases
Multiplicidad
1 0..1 0..* 1..* * M..N Un elemento relacionado. Uno o ningn elemento relacionado. Varios elementos relacionados o ninguno. Varios elementos relacionados pero al menos uno. Varios elementos relacionados. Entre M y N elementos relacionados.

29

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.

30

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.

31

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.

32

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.

33

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 columna: columna: int

34

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 pueden ser usadas para impedir inconsistencias en el modelo.

35

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

36

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 en UML: Overlapping Disjoint Complete Incomplete

37

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

38

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.

39

Diagrama de Clases: Clase de asociacin


Es una asociacin y una clase simultneamente. Hay que tener en cuenta dnde se colocan los atributos.

40

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

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.

42

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
43

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

44

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

Modelo de Dominio: Clases Conceptuales

46

Ejemplo
Un posible modelo de dominio para el caso del local de venta de electrodomsticos

47

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.

48

DERs: Ejemplo

Cliente ordena

Proyecto trabaja_en

Empleado

Denotar!
49

DERs

trabaja_para Cliente ordena Proyecto trabaja_en Empleado

Transitividad :definicin o sea relacin derivada, no debe aparecer. Span temporal :un intervalo (simplicidad)
50

DERs: Caractersticas
Formales, declarativos, grficos, refutables (si hay designaciones) Scope: entidades y relaciones invariantes con el tiempo. Sin mecanismo de composicin standard (subdominios?).

51

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

52

Ejemplo
Una compaa abre y cierra las reservas para un determinado vuelo

53

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 valores, por lo que los modelaremos como atributos y no como simples objetos.

54

Ejemplo
Un vuelo tiene un aeropuerto de salida y otro de llegada Un objeto es algo ms importante que un atributo.
La nocin de aeropuerto es compleja.

55

Ejemplo
Cada aeropuerto atiende a una o varias ciudades

56

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

57

Ejemplo
Una reserva implica un nico vuelo y un nico pasajero. Una reserva puede cancelarse o confirmarse.

58

Ejemplo
Un cliente puede reservar uno o ms vuelos y para pasajeros diferentes.

59

Ejemplo
Agregar atributos y restricciones

60

Ejemplo
Un posible modelo de dominio

61

También podría gustarte