Date post: | 24-Jan-2016 |
Category: |
Documents |
Upload: | alicia-carmona-mora |
View: | 219 times |
Download: | 0 times |
Presentación Adptada
C@rlos Alfredo Rodríguez RojasProfesor Universidad Distrital – F.M.R.N.
Diagrama de CLASES
Diagrama de Clases
• Modela los conceptos del dominio de la aplicación.
• Permite visualizar las relaciones entre las clases que involucran el sistema
• Un diagrama de clases está compuesto por los siguientes elementos: – Clases: atributos, operaciones y visibilidad. – Relaciones: Herencia, Composición,
Agregación, Asociación y Uso. – Responsabilidades
Diagrama de Clases: ElementosClase
• Es la unidad básica que encapsula toda la información de un Tipo de Objeto (un objeto es una instancia de una clase).
Diagrama de Clases: ElementosAtributo
• Los atributos describen a una clase. Pueden ser Públicos, Privados o Protegidos.
• public (+, ): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
• private (-, ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden acceder).
• protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (herencia)
Diagrama de Clases: ElementosOperaciones (métodos)
• Las operaciones o métodos de una clase describen la forma en la cual ésta interactúa con su entorno. Pueden ser Públicas, Privadas o Protegidas.
• public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
• private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la misma clase lo pueden acceder).
• protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser utilizado por métodos de la clase además de las subclases que se deriven (herencia)
Clase y Visibilidad
Alumno
DNI : char[10]número_exp : intnombre : char[50]
alta()poner_nota(asignatura : char *, año : int, nota : float)matricular(cursos : asignatura, año : int)listar_expediente()
Relaciones entre clases:Asociación
• Relación estructural entre las clases.
• En general es simétrica• Tiene un nombre, que la
describe (verbo, con dirección de lectura)
• Puede tener un rol que describe el papel específico que una clase juega en una asociación.
• Tiene multiplicidad, que especifica por cada clase el número de objetos de la clase opuesta que se relacionan con un solo objeto de dicha clase a través de la asociación:1 : uno0..1 : cero o uno3 : tres*: muchos1..*: al menos uno2,6,7: dos, seis o siete2-4, 10-12 : de dos a cuatro y de
diez a doce
Asociación
class Class Model
Estudiante Univ ersidad
estudia-en
class Class Model
Nombre_Clase_1 Nombre_Clase_2
Nombre dela asociacion
Grado de asociación
• Binarias
• Ternarias
• Grado mayor
class Class Model
Estudiante Univ ersidadestudia-en
class Class Model
Estudiante Univ ersidad
Pofesor
Asociaciones Reflexivas
class Class Model
Persona
Pariente de
Multiplicidad - Cardinalidad
• Restringe una asociación al número de objetos que puede relacionarse
• Uno a Uno
• Uno a Muchos
• Muchos a Muchos
class Class Model
Rector Univ ersidad
class Class Model
Estudiante Univ ersidad
*
class Class Model
Estudiante Curso
* *
Multiplicidad - otros class Class Model
Estudiante Univ ersidad
* 0..1
class Class Model
Persona Compañia
10..* 1
class Class Model
Persona Compañia
0..1 1
Rol en relaciones
class Class Model
Persona Compañia+Empleado
*
trabaja-para +Empleador
*
Relaciones entre Clases:Generalización
Trabajador
Directivo Administrativo Obrero
{ disjunta, completa }
Ejemplo asociación
Compañía
nombredirección
Persona
nombres.s.
0..1
*
jefe 0..1
Administra
empleado
*
0..1
0..1mujer
0..1
casado-con
marido
0..1
*
* trabaja-para
*emplea-a
*
Asociación Cualificada
Reduce la multiplicidad del rol opuesto al considerar el valor
del cualificador
Aerolínea Viajero0..1
nro_billete* 0..1*
nro_billete
Tablero Ajedrez
Cuadro1fila
columna
1filacolumna
11
Relaciones entre ClasesAgregación y Composición
Composición• Relación estática, en donde
el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye.
• El Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo“, como un parámetro pasado “por valor”.
Agregación• Relación dinámica, en
donde el tiempo de vida del objeto incluido es independiente del que lo incluye.
• El objeto base utiliza al incluido para su funcionamiento, como un parámetro pasado “por referencia”.
Relaciones entre Clases:Agregación y Composición
Agregación (Por referencia)
Composición (Por valor)
Diagrama de Clases: ElementosResponsabilidades
La distribución de responsabilidades en un sistema, se realiza identificando un conjunto de clases que colaboran entre sí para llevar a cabo algún comportamiento. Luego hay que identificar el conjunto de responsabilidades para cada clase
EjemplosWindow
scrollbar[2] : Slidertitle : Headerbody : Panel
Slider Header
Window
1
2
1
2scrollbar
1
1
1
1title
Panel
1
1
1
1body
... Ejemplos
Person Committee** ** Member-of
1 *1 *Chair-of
{ subset }
{Person.employer = Person.boss.employer}
Represents an incorporated entity.
CompanyPerson
*
0..1
worker
*
boss
0..1
0..1*
employer
0..1
employee
*
… Ejemplos
Asociación excluyente
Clase de asociación
Agregación
Persona
Cuenta
*
*
*
*
Empresa
1
*1
*
or
Polígono Punto1
3..*1
3..*{ordenado}
contiene
EstaciónUsuario
** **
Autorización
prioridadprivilegios
camb_privil()
está-autorizado-en
Ejemplo Diagrama de Clases
Avión militar Avión comercial
Avión de carga Avión de pasajeros
Motor Vendedor de billetes
Avión
1..4
1
1..4
1
Piloto
Reserva
n
1
n
1
Línea aérea
Vuelon1 n1
1..2
n
1..2
nn1 n1
1
n
1
n{ disjunta, completa }
{ disjunta, completa }
Ejemplo Diagrama de Clases
Ejemplo
Bibliografía y Referencias: Fundamental
• James Rumbaugh, Ivar Jacobson, Grady Booch, “The Unified Modeling Language Reference Manual”, Addison Wesley, 1999
• Craig Larman, “UML y Patrones”, Prentice Hall, 1999
• OMG www.omg.org
Bibliografía y ReferenciasComplementaria
• Rational www.rational.com• Robert Muller, “Database Design For Smarties:
Using UML for Data Modeling”, Morgan Kaufmann, 1999
• Luis Guerrero, “Taller de UML”, DCC, Universidad de Chile, 2002, www.dcc.uchile.cl/~luguerre/cc61j
• Patricio Salinas, “Tutorial de UML”, DCC, Universidad de Chile, 2000, www.dcc.uchile.cl/~psalinas/uml
GRACIAS PORSU
ATENCIÓN
PREGUNTAS