Professional Documents
Culture Documents
Diagramas de Clases
octubre de 2013
Diagramas de clases
Los diagramas de clases capturan la estructura esttica de un sistema mostrando los objetos en el sistema, las relaciones entre los objetos, y los atributos y operaciones que caracterizan cada clase de objetos. Es el ms importante de los diagramas.
Clase
Nombre de la clase
Atributos
Metodos
Diagramas de clases. Ingeniera de software II 4
octubre de 2013
Clases
NombreClase NombreClase NombreClase Atributo Operacin () + mtodo / + atributo Pblico es accedido desde cualquier lado Pblico Privado Protegido - mtodo / - atributo Privado es accedido slo dentro de la clase # mtodo / # atributo Protegido es accedido slo dentro de la clase y por subclases Atributo ::= Nombre [ ":" Tipo ] [ "=" Valor inicial ] Operacin ::= Nombre "(" [ Lista argumentos ] ")" [ ":" Tipo ] Lista argumentos ::= Argumento | Argumento "," Lista argumentos Argumento ::= Nombre [ ":" Tipo ] [ "=" Valor por defecto ]
octubre de 2013
Relaciones
octubre de 2013
Relaciones
octubre de 2013
Asociaciones
Una asociacin es una relacin que describe un conjunto de vnculos. Representa la responsabilidad de conocer. Un vnculo es una conexin semntica entre un par de objetos. Es una instancia de una asociacin. Las asociaciones son en ambas direcciones o en una sola direccin.
octubre de 2013
Asociaciones
juega para
Jugador
contrata a trabaja para
Equipo
Persona
Empresa
trabaja para
Asociaciones
Elementos que la componen Nombre: las asociaciones pueden tener un nombre que la identifiquen Rol: Especifica el papel que juega cada clase dentro de la relacin
Persona Empleado 1..* trabaja para Empleador Empresa 0..1 Contratista 0..*
Contratante 0..*
contrata
octubre de 2013
10
Navegabilidad
Las asociaciones son generalmente en ambos sentidos. Cuando, en una asociacin, una clase conoce a la otra, pero no al revs, la asociacin es navegable slo en el sentido de la clase que conoce a la otra.
Usuario est formado por 0..* Permiso
octubre de 2013
11
Multiplicidad
La multiplicidad es el rango vlido de elementos que puede haber en un conjunto. Se expresa como un subconjunto de los enteros no negativos. Ejemplos
0..1 1..* 5..15 3
octubre de 2013
12
Multiplicidad
Persona Empleado 1..* trabaja para Empleador 0..1 Camin 1 arrastra Zorra
Multiplicidad: 0..1
Empresa
0..1
rueda sobre
Vehculo
1
Ruedas
1..4,6,10,14
Jefe
manda *
Empleado
Polgono
octubre de 2013
13
Un atributo de una asociacin surge cuando entre dos clases asociadas aparece un atributo cuya existencia no depende de las clases sino de la asociacin.
octubre de 2013
14
Archivo 1..*
es accesible por
1..* Permisos
Persona
octubre de 2013
15
octubre de 2013
17
Agregaciones
La agregacin es una forma especial de asociacin que especifica una relacin es parte de entre el todo y cada una de sus partes. El objeto con sus agregaciones se trata generalmente como una unidad en varias operaciones.
Agregaciones
Auto
ruedas 4
Rueda
Polgono
Punto
3..* {ordenados}
octubre de 2013
19
Composicin
La composicin es una forma de agregacin con una relacin de pertenencia muy fuerte y un ciclo de vida coincidente entre las partes y el todo. La multiplicidad del compuesto no puede ser mayor que uno; no es compartido. Se puede agregar partes; pero una vez agregadas son eliminadas con el todo. Se puede remover partes; pero antes de que se elimine el todo.
octubre de 2013 Diagramas de clases. Ingeniera de software II 20
Composicin
Ventana
Scrollbar
Ttulo
Cuerpo 1
Slider
Barra
Panel
Encabezado
Factura
*
Lnea
octubre de 2013
21
Composicin y Agregacin
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye ( el Objeto base se contruye a partir del objeto incluido )
Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye.(el objeto base utiliza al incluido para su funcionamiento)
octubre de 2013
22
Asociacin y agregacin
Persona Nombre Empleado Cdula 1..* Direccin trabaja para Empleador Empresa
0..*
Nombre Direccin
octubre de 2013
23
Generalizacin y herencia
La generalizacin es una relacin taxonmica entre un elemento ms general y un elemento ms especfico. El elemento ms especfico es completamente consistente con el elemento ms general y contiene informacin adicional. Se puede usar una instancia del elemento ms especfico donde se espera un elemento ms general. La herencia es el mecanismo por el cual elementos ms especficos incorporan estructura y comportamiento de elementos ms genricos.
octubre de 2013 Diagramas de clases. Ingeniera de software II 24
Generalizacin y herencia
Figura Color Posicin centro Ancho lnea dibujo Tipo lnea dibujo Mover () Seleccionar () Rotar ()
Adimensional
Punto Dibujar ()
Crculo Dimetro
Dibujar () Rotar ()
octubre de 2013
25
Generalizacin y composicin
Base Cubierta Lmpara Llave
Cable
Lmpara fluorescente
Lmpara incandescente
Encastre
Arrancador
Receptculo
octubre de 2013
26
Clases abstractas
Las clases abstractas estn diseadas slo para ser heredadas. Las clases abstractas nunca tienen instancias. Las clases concretas son diseadas para tener instancias. Una clase abstracta no puede ser subclase de una clase concreta.
Clases abstractas
Un mtodo es abstracto cuando no tiene cdigo en la clase en la que se declara. Debe estar definido en alguna de las clases sucesoras.
Una clase abstracta se denota con el nombre de la clase y de los mtodos con letra "itlica". Esto indica que la clase definida no puede ser instanciada pues posee mtodos abstractos
octubre de 2013 Diagramas de clases. Ingeniera de software II 28
Herencia
Herencia simple. Una clase puede tener una superclase. Herencia mltiple. Una clase puede tener varias superclases. Una clase puede no tener ninguna superclase y es el origen de la jerarqua. Habitualmente los lenguajes de programacin tienen una sola jerarqua, es decir, hay slo una clase sin superclase.
octubre de 2013 Diagramas de clases. Ingeniera de software II 29
Dependencias
Una dependencia es una relacin entre dos elementos del modelo, en la cual un cambio en uno de ellos, el elemento independiente, afectar al otro, el elemento dependiente. Es una relacin entre dos clases en la que se declara que una necesita saber acerca de la otra para utilizar sus objetos. A su vez es una relacin transitoria porque no se mantiene en el tiempo.
octubre de 2013 Diagramas de clases. Ingeniera de software II 30
Dependencias
Una clase
conoce
Otra clase ms
El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene una clase de otra.
instancia
Otra clase
octubre de 2013
31
Cualificador
Cuando la multiplicidad de una asociacin es de uno a muchos se presenta un reto muy particular: la bsqueda Cuando un objeto de una clase tiene que seleccionar un objeto particular de otro tipo para cumplir con un papel en la asociacin, la primera clase deber atenerse a un atributo en particular para localizar al objeto adecuado
octubre de 2013 Diagramas de clases. Ingeniera de software II 32
Cualificador
Cliente
Nmero de cuenta * opera en * Banco Dado un banco y nmero de cuenta tiene un cliente
Cliente
Banco Dado un cliente y un nmero de cuenta tiene cero o ms bancos Una orden tiene muchas lneas de orden
0..*
Orden
0..*
1..*
Orden
0..1 Producto
octubre de 2013
33
Estereotipos
Permite extender el lenguaje UML para los diagramas de clase Ej. Vista, modelo, controlador, interface Se representan mediante <<estereotipos>>
octubre de 2013
34
Estereotipos
octubre de 2013
35
Estereotipos
octubre de 2013
36
Interface
Un interface es una especificacin del conjunto de operaciones de una clase o paquete que son visibles desde otras clases o paquetes. Se representa mediante:
<<Interface>>.
interface
octubre de 2013
37
Interface
Una clase tiene una instancia de su tipo, mientras que una interface debe tener al menos una clase para implantarla. En UML, una interface es considerada como una especializacin de una clase.
Ejemplo interfaces
Ejemplo interfaces
En el diagrama anterior las clases Professor y Student implementan a la interface Person y no heredan de sta, podemos deducirlo a partir de: 1) El objeto Person de acuerdo a la simbologa del diagrama est como una interface y Professor y Student estn como clases. 2) No se trata de herencia ya que la lnea con la flecha est punteada y no slida.
Elemento derivado
Un elemento es derivado cuando se puede calcular a partir de otro elemento, pero se muestra por calidad o se incluye por razones de diseo, aunque no agregue informacin semntica.
octubre de 2013
41
Elementos derivados
Persona Nombre Empleado Cdula 1..* Direccin 1..* trabaja en 1 /ocupa Edificio Ubicacin 1 1..*
/trabaja para
Empleador
0..*
Departamento
Nombre
1..* 1..*
0..1
ocupa 1..*
Divisin
Nombre
Oficina
1..* Piso Nmero
octubre de 2013
42
Restricciones
depende de Jefe 0..1 Empleado Salario 1..* {Salario < Jefe.Salario}
Proceso
Prioridad
{Prioridad nunca crece}
octubre de 2013
43
Restricciones
est formado por Polgono Punto 3..* {ordenados}
3..7
octubre de 2013
44
Ejemplo
octubre de 2013
45
Ejemplo
octubre de 2013
46
Diagrama de Objetos
La clase define las reglas; los objetos expresan los hechos. La clase define que puede ser; el objeto describe que es. Se considera un caso especial del diagrama de clases. Puede construirse junto con el de clases. Describe una instancia de un diagrama de clase en un momento en particular. Este diagrama contiene objetos y relaciones.
Consiste de dos elementos: objetos y uniones (links). Un objeto es una entidad real creada a partir de una clase, igual una unin es creada a partir de una asociacin. Ejemplo
Diagrama anterior
El diagrama de objeto muestra que el objeto 4321 de tipo Embarque tiene dos Productos. Cada atributo de los 3 objetos tiene asignado un valor. Las operaciones de las clases no se incluyen en el diagrama de objetos, ya que stas no tienen mltiples interpretaciones o valores como los atributos. Cada objeto de la misma clase posee las mismas operaciones.
Diagrama de clase
Diagrama de objetos
Tiene tres compartimentos: nombre, Tiene dos compartimentos: nombre atributos y operaciones y atributos Solo se pone el nombre de la clase Se puede poner el nombre del objeto : y el de la clase subrayados, o solamente : y el nombre de la clase Solo se definen los valores de cada atributo para la prueba que se est modelando Las operaciones no estn incluidas en el objeto ya que son idnticas para cada objeto de la misma clase Los objetos se conectan con un link que tiene un nombre y no tiene multiplicidad.
En los atributos se definen las propiedades de los mismos Se listan las operaciones
Las clases se conectan con una asociacin con nombre, multiplicidad, roles.