Diagrama de Clases. La clase define el ámbito de definición de un conjunto de objetos. Cada objeto pertenece a una clase

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 rela

2 downloads 99 Views 1MB Size

Recommend Stories


Conjuntos Un conjunto es una colección de objetos. A cada uno de esos objetos se llama elemento del conjunto
Curso Intensivo de Matemáticas. Universidad de Alcalá de Henares (7−07−09) 1 TEORÍA DE CONJUNTOS: IDEAS BÁSICAS Conjuntos Un conjunto es una colecci

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar
Clases La programación orientada a objetos utiliza clases para encapsular (envolver, esconder) datos (atributos) y métodos (comportamientos). Por ejem

Métodos. Los métodos definen el comportamiento de los objetos de una clase dada (lo que podemos hacer con los objetos de esa clase)
Métodos Los métodos definen el comportamiento de los objetos de una clase dada (lo que podemos hacer con los objetos de esa clase) Los métodos expone

Clases y Objetos en Python. Introducción a la Computación Clase 23 Patricia Borensztejn
Clases y Objetos en Python Introducción a la Computación Clase 23 Patricia Borensztejn Tipos en Python • Ya vimos que tenemos un conjunto importante

Story Transcript

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.

1

Modelos de Requerimientos Goal model & responsibilities

Diagrama de Contexto Call Assistant

Despatching Software M obile Data Terminals

Ambulance Intervention

Modelo Operacional

Modelo de Objetos

Mobilization

Incident

0:1

Ambulance

Encode Incident Form Allocate Ambulance

Call Assistant

Scenarios Call Public Assistant

Allocator

Ambulance Crew

2

Objetos & Clases • Una clase describe un grupo de objectos (instancias) – Mismas attributos y asociaciones – Mismo comportamiento (state transitions) Clases

Incident

Objectos

Inc1

Inc2

Ambulance

amb1

amb2

amb3 = Instancia de

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

3

Associations • Clases e instancias de asociaciones

Incident

Inc1

Inc2

Mobilization

amb1

Ambulance

amb2

amb3

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

4

Multiplicidades • multiplicidad : Cantidad mínima y máxima en las que un objeto puede estar simultaneamente involucrado en una asociación Incident

0:1

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

Mobilization

0:*

Ambulance

En cualquier moemento un incidente puede tener 0 o más ambulancias mobilizadas hacia él

5

Multiplicidades

6

Atributos • Un atributo At de un objeto Ob – Es una función At: Ob ® Rango (elementary or structured ranges)

Incident loc: Location time: Time

0:1

0:* Mobilization time: Time

Ambulance loc: Location status: Status

7

Especificación Textual (Denotar) Entity Incident Def. Cualquier situación que pueda requerir la intervención de una ambulancia Tiene

Condiciones para que un objeto esté entre sus instancias

location: Location {el lugar del inciente}

time: Time {tiempo en el que ocurrió} pending: Bool

Significado en el mundo real del atributo

{es true si una ambulancia no llegó todavía a la escena del mismo} Invariantes del Dominio Hay a lo sumo un inciente “pending” por ubicación, i.e. dos incidentes que son el mismo si tienen la misma ubicación y están pendientes.

Propiedades del dominio de la clase 8

Denotación Asociación Mobilization Links Ambulance {role ambulance multiplicity 0:1} Incident {role incident multiplicity 0:*} Def. Una ambulancia está mobilizada hacia un incidente si su tripulación es conciente de que debe atenderlo Has time: Time

{el momento en el que la ambulancia comienza a mobilizarse Invariantes del dominio …

9

Especialización • 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

0:*

Response Unit

Mobilization

loc: Location status: Status

time: Time

Isa Ambulance

Isa

Motorbike

Isa

Helicopter

10

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

Employee

• El significado preciso hay que definirlo en el domínio

11

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

12

Cómo elaborar un diagrama de clases? • Derivarlo del modelo de objetivos incrementalmente Þ completitud & pertinencia Þ método sistemático, 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

Incident category: Cat. Reporting

Intervention time: Time

Urgent Call time: Time 14

tips & heuristicas • Un elemento estructural X en una formulación de 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 (con instancias distinguibles) Þ asociación

(slide : A. van Lamsweerde)

15

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 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 Heurísticas (cont.) • El atributo X se adjunta a una asociación o a los objetos asociados? 0.. Ob1 X?

0..

Ob1 X?

Assoc X?

A la asociación si los objetos pueden estar desasociados

Borrower

0..1

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.

Reporting Urgent Call time: Time

Intervention 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

Nearest Available Amb. Allocated Incident category: Cat.

Reporting

Mobilized Ambulance Intervention

Allocated Ambulance Mobilized Intervention Mobilization Allocation

Ambulance status: Status loc: Location

Urgent Call time: Time

Encoding Incident Form ... 19

First Ambulance Intervention Incident Form Encoded

Nearest Available Amb. Mobilized

Nearest Available Amb. Allocated

Accurate Amb. Status & Location Info

Mobilized Ambulance Intervention

Allocated Ambulance Mobilized

AmbulanceAllocated Based On Amb.Info

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

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 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ómenos

Los modelos son complementarios E.g. Diagrama incorrecto Meeting Initator

setsDateRange

Meeting

setsDate

Scheduler

dateRange date

Diagrama de Clases Correcto Meeting Initator

Diagrama de Context Correcto

Initiating Meeting

Meeting.dateRange

dateRange date

Meeting Initator

Scheduling Scheduler

Scheduler

Meeting.date 22

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 UserGroup

User

Group

Login

Owns

List

Shared Collection

Email Address List Book

Photo List

Email

Photo

Contact

Photo Album

23

Repaso y UML

Diagrama de Clases • Cada clase se representa en un rectángulo 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 público. El atributo edad es derivado (puede calcularse a partir de la fecha de nacimiento), y determina una relación de orden entre las instancias de las personas. El atributo DNI es un atributo protegido.

El atributo coloresPreferidos representa una colección o conjunto de valores del tipo Color 26

Diagrama de Clases Relaciones entre Clases • Una asociación es una conexión estructural simple entre clases. Las instancias de las clases implicadas en una asociación estarán probablemente comunicándose en el momento de ejecución. • Los enlaces entre de objetos pueden representarse entre 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

27

Diagrama de Clases: Asociación • La asociación expresa una conexión bidireccional entre objetos. • Una asociación es una abstracción de la relación existente en los enlaces entre los objetos. Enlace

28

Diagrama de Clases Relaciones entre Clases Multiplicidad 1

Un elemento relacionado.

0..1

Uno o ningún elemento relacionado.

0..*

Varios elementos relacionados o ninguno.

1..*

Varios elementos relacionados pero al menos uno.

*

Varios elementos relacionados.

M..N

Entre M y N elementos relacionados.

29

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 la asociación.

30

Diagrama de Clases: Asociación • Se asume que una asociación es bidireccional, es decir que se puede navegar desde cualquiera de clases implicadas a la otra, pero es posible indicar que la navegación ocurrirá en una sola dirección.

31

Diagrama de Clases: Agregación • Es una asociación especial, una relación del tipo “todo/parte” dentro de la cual una o más clases son partes de un conjunto.

32

Diagrama de Clases: Composición • La composición es una forma ‘fuerte’ de agregación. Se diferencian en: – En la composición tanto el todo como las partes tienen el mismo ciclo de vida. – Un objeto puede pertenecer solamente a una composición.

33

Diagrama de Clases: Asociación Calificada • Un calificador es un atributo (o tupla de atributos) de la asociación cuyos valores sirven para particionar el conjunto de objetos enlazados a otro. • Un calificador se representa como un pequeño rectángulo conectado al final de una asociación y a la clase. • El rectángulo del calificador es parte de la asociación, y no parte de la clase.

fila: fila: int columna: columna: int

34

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

35

Diagrama de Clases: Generalización • Una generalización se refiere a una relación entre una clase general (superclase o padre) y una versión más específica de dicha clase (subclase o hija).

36

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, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas. • La especialización es una técnica muy eficaz para la extensión y reutilización.

Restricciones predefinidas en UML: • Overlapping • Disjoint • Complete • Incomplete

37

Diagrama de Clases: Generalización • Particionamiento del espacio de objetos  Clasificación Estática • Particionamiento del espacio de estados de los objetos  Clasificación Dinámica • 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: Generalización • La herencia múltiple debe manejarse con precaución. Algunos problemas son el conflicto de nombre y el conflicto de precedencia. • Se recomienda un uso restringido y disciplinado de la herencia. • Permite modelar jerarquías alternativas.

39

Diagrama de Clases: Clase de asociación • Es una asociación y una clase simultáneamente. • Hay que tener en cuenta dónde se colocan los atributos.

40

Modelo de Dominio vs. Modelo de Diseño • El diagrama de clases puede utilizarse con distintos fines en distintas etapas del proceso de desarrollo. • Durante la etapa de análisis, 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 diseño, el modelo de diseño determina las futuras componentes de software (clases) y sus relaciones entre sí. 41

Modelo de Dominio • Es una representación de las cosas, entidades, idea, clases conceptuales u objetos del “mundo real” o dominio de interés, 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 • Podría se considerado como un diccionario visual de abstracciones de clases conceptuales, vocabulario e información del dominio. • Los modelos de objetos subyacentes podrían 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 análisis. • Según el punto de vista, tiene puntos en común con el Diagrama de Entidad Relación. • 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 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).

45

Modelo de Dominio: Clases Conceptuales

46

Ejemplo Un posible modelo de dominio para el caso del local de venta de electrodomésticos…

47

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 individuos especificando cardinalidad y opcionalidad.

48

DERs: Ejemplo

Cliente

Proyecto ordena

Empleado trabaja_en

Denotar! 49

DERs

trabaja_para Cliente

Proyecto ordena

Empleado trabaja_en

Transitividad :definición o sea relación derivada, no debe aparecer. Span temporal :un intervalo (simplicidad) 50

DERs: Características • Formales, declarativos, gráficos, refutables (si hay designaciones) • Scope: entidades y relaciones invariantes con el tiempo. • Sin mecanismo de composición standard (subdominios?).

51

Ejemplo “Las compañías aéreas ofrecen varios vuelos” • Compañía aérea y Vuelo son conceptos importantes del mundo real con atributos y comportamientos, por lo que son clases candidatas para nuestro modelado estático de dominio

52

Ejemplo “Una compañía abre y cierra las reservas para un determinado vuelo”

53

Ejemplo “Un vuelo tiene un día y una hora de salida y un día 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 más importante que un atributo. • La noción 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 más vuelos y para pasajeros diferentes”.

59

Ejemplo Agregar atributos y restricciones

60

Ejemplo Un posible modelo de dominio

61

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.