Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos...

28
Dra. Maricela Bravo Modelado estático usando el Lenguaje de Modelado Unificado (UML) 1

Transcript of Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos...

Page 1: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Dra. Maricela Bravo

Modelado estático usando

el Lenguaje de Modelado

Unificado (UML)

1

Page 2: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Clases

Nombre de

la clase

Atributos

Operaciones

Una clase es la descripción de un conjunto de objetos que

comparten los mismos

•atributos,

•operaciones,

•relaciones y

•semántica.

Graficamente una clase se representa con un rectángulo,

incluyendo su nombre, atributos, y operaciones.

Page 3: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Nombre de la clase

Nombre de

la clase

Atributos

Operaciones

El nombre de la clase es la única etiqueta requerida en

la representación gráfica de una clase. Siempre aparece

en la parte superior.

Page 4: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Atributos

Person

name : String

address : Address

birthdate : Date

ssn : Id

Un atributo es el nombre de una

propiedad que describe el objeto modelado

Los atributos aparecen en el segundo

compartimento del diagrama de clases .

Page 5: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Atributos

Person

name : String

address : Address

birthdate : Date

/ age : Date

ssn : Id

Los atributos se escriben de la sig. forma:

attributeName : Type

Un atributo derivado es aquel que se puede

componer de otros atributos, pero en realidad no

existe.

Por ejemplo, la edad de una persona puede

computarse a partir de su fecha de nacimiento.

/ age : Date

Page 6: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Atributos

Person

+ name : String

# address : Address

# birthdate : Date

/ age : Date

- ssn : Id

Los atributos pueden ser:

+ public

# protected

- private

/ derived

Page 7: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Operaciones

Person

name : String

address : Address

birthdate : Date

ssn : Id

eat

sleep

work

play

Las operaciones describen el comportamiento de la

clase.

Page 8: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Operaciones

PhoneBook

newEntry (n : Name, a : Address, p : PhoneNumber, d : Description)

getPhone ( n : Name, a : Address) : PhoneNumber

Es posible especificar una operación usando su plantilla: nombre, tipo de dato,

nombre y tipo de los parámetros.

Page 9: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Diagrama de Clases

Person

name : String

birthdate : Date

ssn : Id

eat()

sleep()

work()

play()

Cuando se dibuja una clase no es necesario mostrar los atributos y operaciones.

Person

Person

name

address

birthdate

Person

eat

play

Person

Page 10: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Responsabilidades de la clase

Una clase puede incluir responsabilidades.

Una responsabilidad es un contrato u obligación de la clase para realizar un servicio

particular.

SmokeAlarm

Responsibilities

-- sound alert and notify guard station

when smoke is detected.

-- indicate battery state

Page 11: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones entre clases

En UML las interconexiones entre objetos son modeladas como relaciones.

Existen tres clases de relaciones en UML:

• Dependencia

• Generalización

• Asociación

Page 12: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relación de Dependencia

CourseSchedule

add(c : Course)

remove(c : Course)

Course

Una relación de dependencia indica una relación semántica entre dos o más

elelmentos.

Page 13: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relación de Generalización

Person

Student

La generalización conecta una

subclase con su superclase.

Denota herencia de los

atributos y el

comportamiento de la

superclase a la subclase.

Page 14: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Student

UML permite que una clase herede de múltiples superclases, pero algunos lenguajes

de programación no (Java).

TeachingAssistant

Employee

Relación de Generalización

Page 15: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones de asociación

Cuando dos clases de un modelo requieren un intercambio de mensajes se utiliza una

asociación.

Instructor Student

Page 16: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones de asociación

La multiplicidad de una asociación se refiere a una cardinalidad en la relación.

Instructor Student 1..*

Page 17: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Instructor Student 1..*

Relaciones de asociación

La multiplicidad de una asociación se refiere a una cardinalidad en la relación.

Page 18: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Instructor Student 1..* 1..*

learns from teaches

Relaciones de asociación

También es posible indicar el comportamiento de un objeto en una

asociación usando roles.

Page 19: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Team Student membership

1..* 1..*

Relaciones de asociación

También es posible nombrar a la asociación.

Page 20: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Team Student

member of

1..*

president of 1 1..*

1..*

Asociaciones duales

Page 21: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Navegabilidad de la asociación

Router DomainNameServer

Se puede restringir la relación de asociación

definiendo la navegabilidad de la asociación.

Page 22: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones de asociación

Las asociaciones también pueden ser objetos, llamados clases de enlace o clases de

asociación.

Warranty Product

Registration

modelNumber

serialNumber

warrentyCode

Page 23: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones de asociación

Una clase puede tener una asociación con ella misma

(self association).

LinkedListNode

next

previous

Page 24: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones de asociación

Es posible modelar objetos que contienen otros objetos a través de asociaciones

especiales llamadas aggregations y compositions.

Una aggregation especifica una relación tipo todo-parte entre un aggregate (todo)

y una parte constituyente, donde la parte puede existir independientemente del

aggregate.

Car

Engine

Transmission

Page 25: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Relaciones de asociación

Una composición indica una pertenencia fuerte entre las partes y el todo.

Window

Scrollbar

Titlebar

Menu

1

1

1

1

1

1 .. *

Page 26: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Ejemplos

26

Page 27: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Ejemplos

27

Page 28: Modelado estático usando el Lenguaje de Modelado Unificado ...aisii.azc.uam.mx › mcbc › Cursos › POO › Sesion9.pdf · el Lenguaje de Modelado Unificado (UML) 1 . Clases Nombre

Ejemplos

28