06 diagrama de clases1

24

Upload: vireal

Post on 20-Feb-2017

367 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 06 diagrama de clases1
Page 2: 06 diagrama de clases1

Muestra las clases que intervienen en un sistema o parte de él

Muestra como se relacionan entre sí para cumplir los objetivos del sistema.

Los diagramas de Clases representan la vista de diseño estática de un sistema

Page 3: 06 diagrama de clases1

CLASE = Plantilla

OBJETO = Instancia u ocurrencia de una clase

Page 4: 06 diagrama de clases1
Page 5: 06 diagrama de clases1

Compartimento superior: Contiene el nombre de la Clase.

Compartimento intermedio: Contiene los atributos que determinan las características de la Clase.

Compartimento inferior: Contiene las Operaciones que definen como una instancia de la clase (objeto) interactúa con su entorno.

Page 6: 06 diagrama de clases1

NOMBRE DE LA CLASE Nombre de la clase: Debe darnos una idea de lo que

representa. Primer carácter del nombre en mayúscula. Nombre simple (simple name): Indica solo el nombre

de la clase, Ej.: Cliente, SensorTemperatura. Nombre de ruta (Class path name): Indica además del

nombre el paquete al que pertenece. Un paquete permite agrupar las clases según diferentes criterios establecidos por el grupo del proyecto, Ej.: Asociados::Cliente, donde Asociados es el nombre del paquete.

Multiplicidad de la clase: Indica la cantidad de instancias (objetos) que una clase puede tener, se especifica mediante un número en la esquina superior derecha del compartimiento que representa a la clase.

Page 7: 06 diagrama de clases1

El campo atributos contiene los atributos de la clase mostrando para cada atributo: Su nombre, visibilidad, tipo de dato, valor inicial entre otras propiedades.

Nombre del atributo: Por Ej. apellidoPaterno

Visibilidad del Atributo: Determina si el atributo de una clase es accesible para otras clases.› Público: Indica que el atributo es visible desde todas las clases del

sistema. Se denota con el símbolo + delante del nombre del atributo.› Privado: Atributo accesible solo dentro de la clase. Denotado con el

símbolo –› Protegido: Atributo accesible solo desde la clase misma y clases

derivadas. Se indica con el símbolo #

Tipo de dato del atributo: Puede tomar (Integer, String. Boolean, etc).

Multiplicidad del atributo: Define el posible número de valores que el atributo puede tener. Representado mediante una cadena de multiplicidad entre corchetes. Si no hay corchetes entonces la multiplicidad es exactamente 1

Page 8: 06 diagrama de clases1
Page 9: 06 diagrama de clases1
Page 10: 06 diagrama de clases1

Alcance del Atributo: Determina si el valor del atributo es distinto para cada instancia de la clase o todas las instancias de la clase comparten el mismo valor del atributo por lo que el atributo puede tener:› Alcance de Instancia: Cada instancia puede

tener su propio valor para el atributo. (Es por defecto).

› Alcance de Clase: para todas las instancias el valor del atributo es el mismo:

“Si el atributo tiene alcance de clase debe subrayarse”.

Page 11: 06 diagrama de clases1
Page 12: 06 diagrama de clases1

OPERACIONES DE UNA CLASE: Estas se especifican en el tercer compartimiento del diagrama de una clase y especifican las operaciones que un objeto de la clase puede ejecutar mostrando su nombre, visibilidad parámetros, tipo de dato del valor retornado, valores predeterminados y alcance.

Nombre de la operación:

Ej. ImprimirInformeDiario

Visibilidad: (Indicado como en los atributos) Público: Visible desde todas las clases del sistema. Se denota

con el símbolo + delante del nombre de la operación. Privado: Operación accesible solo dentro de la clase.

Denotado con el símbolo – Protegido: Operación accesible solo desde la clase misma y

clases derivadas. Se indica con el símbolo #

Page 13: 06 diagrama de clases1
Page 14: 06 diagrama de clases1
Page 15: 06 diagrama de clases1
Page 16: 06 diagrama de clases1

› in: el parámetro es un valor de entrada.› Out: El parámetro es un valor de salida.› Inout: similar a in, solo que el valor del

parámetro puede ser modificado por la operación

+ operación1 (in para1: string = “abc”, out para2: Date, inout para3: Integer = 1)

Page 17: 06 diagrama de clases1

nombreOperación(listaParámetros) : tipoValorRetorno [ = valorPredeterminado]

Ejemplo:

+ operación1 (in para1: string, out para2: Date, un para3: Integer = 1) : Integer = 0

Page 18: 06 diagrama de clases1

Determina si la operación se aplica a solo una instancia de la clase o se aplica a toda la clase. Por lo tanto, el alcance de la operación puede ser:› Alcance de Instancia: Cuando la operación se

aplica a un objeto individual.› Alcance de clase: Cuando la operación se aplica a

toda la clase, tal como un operación de creación (constructor),

Las operaciones con alcance de clase deben subrayarse

Page 19: 06 diagrama de clases1
Page 20: 06 diagrama de clases1

Relación de dependencia Es una relación de uso

que declara que un cambio en la especificación de una clase puede afectar a otra clase que la utiliza. La afección puede ser semántica en la clase dependiente, esta necesita de la otro (Clase independiente) para cumplir su responsabilidad.

Page 21: 06 diagrama de clases1

Relación de generalizaciónRelación en la que hay una vinculación de Clase Padre a Clase Hija.

Page 22: 06 diagrama de clases1

Relación de asociaciónDescribe la conexión semántica entre las instancias individuales de las clases. Proporciona la conexión con la que los Objetos de las clases relacionadas pueden interactuar, a diferencia de las relaciones restantes que relacionan las descripciones de las clases con ellos mismos, la relación de Asociación describe la conexión entre los Objetos.

Page 23: 06 diagrama de clases1

A una relación de Asociación se le puede aplicar algunos elementos adicionales con la finalidad de establecer bien su definición, estos son NOMBRE ROL MULTIPLICIDAD›Exactamente 1 : 1›Cero o uno : 0..1›Cero o muchos : 0..*›Uno o muchos : 1..*›Un valor exacto:

por ejemplo, 5

Page 24: 06 diagrama de clases1

Agregación.- Representan relaciones del tipo Todo/Parte