SlideShare una empresa de Scribd logo
1 de 46
DIAGRAMA DE CLASE
TIPOS DE DIAGRAMAS
   Diagramas de estructura: mostrar la estructura
    estática del sistema que se está modelando
       Incluye: diagramas de clase, componentes y/o objetos.


   Diagramas de comportamiento: muestra el
    comportamiento dinámico entre los objetos y el
    sistema.
       Incluye: diagramas de actividades, casos de uso y de
        secuencia
Diagrama de clase
 Es el más utilizado y más conocido de los
  diagramas orientados a objetos. Es la
  fuente de generación de código.
 El diagrama de clase representa clases,
  sus partes y la forma en la que las clases
  de los objetos están relacionados con
  otro.
 Una clase es una definición de un tipo de
  objeto.
Partes del diagrama de clases
   Atributos: describe las características de una clase de
    objetos.
   Operaciones: define el comportamiento de una clase de
    objetos
   Estereotipos: ayuda a entender este tipo de objeto en el
    contexto de otras clases de objetos con roles similares
    dentro del diseño del sistema.
   Asociación: es un término formal para un tipo de
    relación.
   Herencia: permite organizar las definiciones de la clase
    para simplificar y facilitar su implementación.
Clases
   Las clases son descripciones de un juego de objetos con
    características, comportamiento, relaciones y
    semánticas comunes. Se usan para modelar un juego
    de conceptos o entidades.
       Se denotan con un rectángulo con compartimentos.
       En ellos se ponen el nombre, los atributos, las operaciones y
        además se pueden usar para anotar otras propiedades del
        modelo como son (reglas del negocio, responsabilidades,
        excepciones, etc.)
       Pueden tener interfaces para especificar conjuntos de
        operaciones proporcionadas a su ambiente. Todas las
        operaciones deben estar asociadas a métodos.
       Pueden tener relaciones de generalización con otras clases.
Atributos
   Son descripciones de características, se
    usan para modelar información asociada
    con una entidad, sintaxis:
    Nombre_atributo[multiplicidad]:Tipo = Valor_inicial


   La multiplicidad es opcional e indica el
    número de atributos por instancia de la
    clase.
Operaciones
   Son descripciones del comportamiento, se
    usan para modelar los servicios u
    operaciones asociados con una entidad,
    esto es, lo que una entidad puede hacer,
    sintaxis:
    Nombre_operación[parámetros:tipo]:Valor_retorno:tipo
Interfaces
 Son clases que definen un juego de
  operaciones externas accesibles pero sin
  métodos. Se usan para modelar una serie
  de operaciones que definen un servicio
  que puede ser ofrecido por diferentes
  clases.
 Se representan como clases pero con el
  estereotipo <<interface>>.
 Solo contienen operaciones públicas
Todos los diagramas soportan el
Diagrama de Clase
 Casos de                     Diagrama
 Uso                          de Objetos



                 Diagrama
                 de Clase                  Diagrama
                                           de Secuencia


                                            Diagrama
Diagrama                                    de Colaboración
de Actividades
                        Diagrama
                        de Estados
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 ligas.
Modelando Clases
   La representación de una clase es un
    rectángulo con 3 divisiones:
     El del nombre define la clase, (un tipo de
      objeto).
     El de los atributos contiene la definición de los
      datos.
     El de las operaciones contiene la definición de
      cada comportamiento soportado por este tipo
      de objeto.
Ejemplo
  La siguiente figura muestra un vuelo de una
    aerolínea modelado como una clase UML.


    Nombre


  Atributos                          Atributo: tipo de dato



Operaciones                          Operación(parámetros:
                                     Tipo de dato):valor de
                                     retorno
Modelando un atributo
   Un atributo describe una pieza de información
    que un objeto tiene o conoce de sí mismo. Para
    poder usar esta información se debe asignar un
    nombre y especificar el tipo de dato.
   El tipo de dato puede ser primitivo o tipo de dato
    abstracto (definido)
   Cada atributo puede tener reglas que limiten los
    valores asignados a éste. Se puede usar un
    valor de default para protegerlo.
Visibilidad de un atributo
   La definición de un atributo debe especificar que
    otros objetos los pueden ver. La visibilidad
    puede ser:
       Public (+) permite el acceso a objetos de las otras
        clases.
       Private (-) limita el acceso a la clase, solo operaciones
        de la clase tienen acceso.
       Protected (#) permite el acceso a subclases. En el caso
        de generalización (herencia), las subclases deben tener
        acceso a los atributos y operaciones de la superclase,
        sino no pueden heredar.
       Package (~) permite el acceso a los otros objetos en el
        mismo paquete.
Ejemplo Especificación de un atributo
Elemento                    Ejemplo
Nombre del atributo         compañía
Tipo de dato                compañía:character
Valor de default (si hay)   compañía:character = espacios
Restricciones               compañía:character = espacios
                            {1 a 30}
Caracteres                  compañía:character = espacios{1
                            a 30 alfabéticos, espacios,
                            puntuación, no especiales}

Visibilidad                 - compañía:character = espacios
                            {1 a 30 alfabéticos, …….
Modelando una Operación
 Los objetos tienen comportamientos,
  cosas que puedan hacer y que se les
  puedan dar a éstos.
 Las operaciones requieren un nombre,
  argumentos y a veces un valor de retorno.
 Las reglas de privacidad se aplican en la
  misma forma que para los atributos:
  Private, Public, Protected y Package.
Ejemplo Especificación de una operación
Elemento                     Ejemplo
Nombre                       totalOrderAmount
Definir argumentos/          totalOrderAmount (order:
Parámetros, corresponden a   integer)
 una instancia de Order
Definir el tipo de dato de   totalOrderAmount (order:
retorno                      integer) : Dollar
Identificar y describir      totalOrderAmount (order:
restricciones                integer) : {El total es la suma
                             de cada item (p.u. x cantidad)
Visibilidad                  + totalOrderAmount (order:
                             integer) : {El total es la suma ….
Diagrama de Clases: Asociaciones
 El propósito de la asociación puede
  expresarse en un nombre, verbo o frase
  que describa como los objetos de un tipo
  (clase) se relacionan con objetos de otro
  tipo (clase). Por ejemplo:
Una persona tiene un coche
Una persona maneja un coche
 Multiplicidad: cuantos objetos van a
  participar en la relación
Asociaciones




 Se indica el rol y la multiplicidad.
 Un vuelo está asociado con un avión y un avión
 puede tener asociados ninguno ó varios números
 de vuelo.
Dirección
   La dirección en las flechas de la asociación
    determinan en que dirección puede recorrerse
    una asociación en el momento de la ejecución.
   Una asociación sin flechas significa que se
    puede ir de un objeto a otro y viceversa.
   Por ejemplo la siguiente el tipo de flecha en la
    asociación implica que desde el objeto
    Reservación puedes recuperar (dirigirte hacia) el
    objeto Cliente. También implica que del objeto
    Cliente puedes recuperar el juego de
    reservaciones para ese cliente.
1….*    hecha para    1
  Reservación                                   Cliente



Supongamos que los requerimientos para un
  sistema de reservaciones requieren que “desde
  una reservación, que el sistema pueda
  recuperar el cuarto

                  1….*    hecha para       1
   Reservación                                 Cuarto
Clase Asociación
   Cuando se modela una asociación entre clases,
    a veces es necesario incluir otra clase que
    contiene información valiosa acerca de la
    relación.
   Se representa como una clase normal solo que
    la línea que la une con la línea que conecta las
    asociaciones primarias es punteada.
   La siguiente figura muestra una clase asociación
    para el ejemplo de los vuelos.
La asociación entre la clase Flight y FrequentFlyer es a través de una clase
llamada MileageCredit. Esto significa que debe haber una instancia en esta
clase cuando alguna instancia de la clase Flight se asocie con una instancia
de la clase FrequentFlyer
Pasos para el diagrama de clases
 Identificar las clases.
 Mostrar los atributos y operaciones
  (posteriormente)
 Dibujar asociaciones
 Etiquetar asociaciones y en caso
  necesario los roles
 Indicar multiplicidad
 Dibujar fechas de dirección
Ejercicio
 Supongamos que las personas que de
  trabajan en una empresa se tienen
  registradas sus habilidades, esto significa
  que cualquier empleado puede tener
  cualesquiera habilidades. ¿Es necesario
  crear una clase asociación que contenga
  la información de ambas clases?
 Dibujar las entidades y su asociación.
Asociación Reflexiva
 Una clase puede asociarse con sí misma.
  Una clase Empleado puede relacionarse
  con sí misma a través del rol
  gerente/dirige.
 No significa que una instancia está
  relacionada consigo misma, sino que una
  instancia de la clase está relacionada con
  otra instancia de la misma clase.
Una instancia de Employee puede ser el gerente de otras instancias de
Employee. Como el rol manages tiene una multiplicidad de 0…*, significa
que puede no tener otros empleados a quien dirigir.
Una instancia de Employee tiene 1 sólo gerente ó un solo director.
Asociación Cualificada
 Un cualificador es un atributo de la clase
  en el lado opuesto de la asociación, que
  permite hacer una búsqueda en función a
  su valor. Por ejemplo “El cliente usa el
  numOrden para buscar una orden”.
 Un tipo de objeto usa el cualificador para
  accesar el otro tipo de objeto.

    cliente   numOrden:int     orden
Diagrama de Clase: Agregación y
Composición
 Cada agregación es un tipo de
  asociación.
 Cada composición es una forma de
  agregación.
    Asociación

        Agregación

            Composción
AGREGACIÓN BASICA
 Es un tipo especial de asociación utilizado
  para modelar una relación “whole to its
  parts”.
 Por ejemplo, Coche es una entidad
  “whole” y Llanta es una parte del Coche.
 Una asociación con una agregación indica
  que una clase es parte de otra clase.
 En este tipo de asociación, la clase hijo
  puede sobrevivir sin su clase padre.
Para representar una relación de agregación, se dibuja una línea
sólida de la clase padre (total) a la clase hijo (parte), y con un
diamante en el lado de la clase padre.
Una llanta puede existir sin automóvil
AGREGACIÓN/COMPOSICIÓN
   En este caso el ciclo de vida de una instancia de
    la clase hijo depende del ciclo de vida de una
    instancia de la clase padre.
   A diferencia de la agregación básica, para
    representarla el diamante no es hueco.
   Una instancia de la clase Company debe tener
    al menos una en la clase Departamento.
   En este tipo de relaciones, si una la instancia
    Company se elimina, automáticamente la
    instancia Departamento también se elimina.
   Otra característica importante es que la clase
    hijo solo puede relacionarse con una instancia
    de la clase padre.
Ejercicios Agregación y Composición
HACER LOS DIAGRAMAS DE ASOCIACIÓN INDICANDO
  SI EXISTE AGREGACIÓN / COMPOSICIÓN. ANOTAR
  LA MULTIPLICIDAD.

1)Jugadores basketball y equipo basketball
2)Libro y capítulos del libro
3)Motor y automóvil
4)Líneas de un pedido y el pedido
5)En una empresa se llevan a cabo proyectos, estos
  proyectos están formados por una ó más actividades y a
  su vez cada actividad tiene 1 ó más tareas específicas.
  Cada tarea es asignada a un empleado y los empleados
  pueden o no tener asignadas tareas.
Generalización
   Son asociaciones entre elementos más generales y
    elementos más específicos, en los cuales éstos últimos
    son consistentes totalmente con los primeros, por lo que
    heredan las características proporcionadas por lo
    elementos generales y además pueden aumentar
    información.
   Este tipo de relación también se conoce como herencia.
   En una generalización no hay multiplicidad ni roles. Una
    (Asociación define las reglas de cómo los objetos se
    pueden relacionar entre ellos.)
   La visibilidad “protected” permite que solo objetos de la
    misma clase ó subclase vean el elemento.
Elementos de la generalización
   Para dibujarla, hay que definir:
     Superclase:  es una clase que contiene alguna
      combinación de atributos, operaciones y
      asociaciones que son comunes a dos o más
      tipos de objetos que comparten el mismo
      propósito.
     Subclase: es una clase que contiene una
      combinación de atributos, operaciones y
      asociaciones que son únicas a un tipo de
      objeto definido por una superclase.
     La superclase es reutilizada por la subclase.
Herencia

             Perro




    Collie   Boxer   Dalmata
Paquetes
   Es un elemento organizador que
    proporciona UML al dividir el sistema en
    paquetes lo hace más fácil de entender.
Interfaces
   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
    especialización de una clase.
   Una interface se dibuja como una clase, pero en
    el compartimento superior del rectángulo
    aparece un texto ó una inicial que indica que se
    trata de una interface y no de una clase.
   Una interface no es una clase.
Ejemplo interface
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 simbología del
  diagrama está como una interface y Professor y
  Student están como clases.
2) No se trata de herencia ya que la línea con la
  flecha está punteada y no sólida.
Instancias
   Cuando se modela la estructura de un sistema,
    a veces es útil mostrar ejemplos de las
    instancias de las clases.
   UML proporciona el elemento instance
    especification, que muestra información
    importante utilizando un ejemplo.
   La notación es la misma que la de una clase,
    solo que en el espacio superior el nombre se
    forma con:
        nombre de la instancia : nombre de la clase
   Además de mostrar las instancias es muy útil
    mostrar sus relaciones, el ejemplo muestra dos
    instancias de la clase Flight, ya que el diagrama
    de clase indica que la relación entre la clase
    Plane y la clase Fight es 0 a muchos:
Roles
   Se puede incluir el rol de las clases, el siguiente
    ejemplo de los roles jugados por la clase
    Employee (de la asociación reflexiva),
    mostramos que la relación es entre un
    Employee jugando el papel de gerente y un
    Employee jugando el rol de miembro del equipo.
Diagrama de clase: Caso de estudio
 Establecimiento del problema: para el sistema de control de
  inventario:
“Nuestro sistema está diseñado para inventariar y embarcar únicamente
  productos identificados. Estos productos pueden ser comprados
  directamente de proveedores y revenderlos, o podemos empacarlos
  juntos para crear un producto especial. Los clientes colocan órdenes
  para uno ó más ítems pero nosotros detectamos en el sistema clientes
  que hayan o no hayan comprado. Cada ítem corresponde a un
  producto. Identificamos cada producto usando un número serial
  único. El cliente puede preguntar sobre el estatus de su orden
  utilizando el número de orden.
Los embarques de productos de los proveedores se reciben y se colocan
  en el inventario. Cada producto es asignado a una ubicación con lo
  que se puede encontrar fácilmente cuando se surten las órdenes.
  Cada ubicación tiene un identificador único. Las órdenes para los
  clientes se embarcan a medida que los productos están disponibles,
  por lo que puede haber más de un envío para satisfacer una sola
  orden de compra, pero puede ser que un solo embarque contenga
  productos de múltiples órdenes. Los ítems que no se entregaron son
  colocados en una backorder con una referencia a la orden original”.
Construyendo el diagrama de clase
1.   Identificar las clases, nombrarlas y definirlas
     con lo que sabes que son parte del modelo.
2.   Identificar, nombrar y definir las asociaciones
     entre pares de clases. Tener cuidado con
     clases reflexivas, asignar multiplicidad.
3.   Evaluar cada asociación para determinar si
     debe ser una agregación y cada agregación
     para ver si debe ser una composición
4.   Evaluar las clases para posible generalización
     (herencia).

Más contenido relacionado

La actualidad más candente

ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosPatricio Abad
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetosguest160f88
 
Glosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoGlosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoRafael Miranda
 
Macros Excel
Macros ExcelMacros Excel
Macros ExcelAmauta20
 
Modelo entidad relacion extendido
Modelo entidad relacion extendidoModelo entidad relacion extendido
Modelo entidad relacion extendidoJosafat Mtz
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetoslindacajaperuiz
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOAnabel Jaramillo
 
Uml orientada a objetos
Uml orientada a objetosUml orientada a objetos
Uml orientada a objetosielectronicos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Tema 5 arreglos y cadenas - lsia por gio
Tema 5   arreglos y cadenas - lsia por gioTema 5   arreglos y cadenas - lsia por gio
Tema 5 arreglos y cadenas - lsia por gioRobert Wolf
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Programar Macros
Programar MacrosProgramar Macros
Programar Macrosjoajz
 

La actualidad más candente (17)

ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
Poo java v fin
Poo java v finPoo java v fin
Poo java v fin
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Taller 1 3
Taller 1 3Taller 1 3
Taller 1 3
 
Glosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoGlosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendido
 
Macros Excel
Macros ExcelMacros Excel
Macros Excel
 
Modelo entidad relacion extendido
Modelo entidad relacion extendidoModelo entidad relacion extendido
Modelo entidad relacion extendido
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Uml orientada a objetos
Uml orientada a objetosUml orientada a objetos
Uml orientada a objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Tema 5 arreglos y cadenas - lsia por gio
Tema 5   arreglos y cadenas - lsia por gioTema 5   arreglos y cadenas - lsia por gio
Tema 5 arreglos y cadenas - lsia por gio
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Programar Macros
Programar MacrosProgramar Macros
Programar Macros
 

Destacado

1conductismo radical ME IUV
1conductismo radical ME IUV1conductismo radical ME IUV
1conductismo radical ME IUVstark8602
 
La funcion de la narrativa de la educacion
La funcion de la narrativa de la educacionLa funcion de la narrativa de la educacion
La funcion de la narrativa de la educacionmonicatorrres
 
Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...
Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...
Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...Cengage Learning
 
Guia padres paralisis cerebral aspace
Guia padres paralisis cerebral  aspaceGuia padres paralisis cerebral  aspace
Guia padres paralisis cerebral aspaceMarta Montoro
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porteteacherpereira
 
Globalización orientación y planeación educativa
Globalización orientación y planeación educativaGlobalización orientación y planeación educativa
Globalización orientación y planeación educativaLilia G. Torres Fernández
 

Destacado (9)

Semana3
Semana3Semana3
Semana3
 
Wilson s turpo condori
Wilson s turpo condoriWilson s turpo condori
Wilson s turpo condori
 
1conductismo radical ME IUV
1conductismo radical ME IUV1conductismo radical ME IUV
1conductismo radical ME IUV
 
La funcion de la narrativa de la educacion
La funcion de la narrativa de la educacionLa funcion de la narrativa de la educacion
La funcion de la narrativa de la educacion
 
Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...
Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...
Using Placement Tests to Improve SLOs and Retention - Course Technology Compu...
 
Presentación1
Presentación1Presentación1
Presentación1
 
Guia padres paralisis cerebral aspace
Guia padres paralisis cerebral  aspaceGuia padres paralisis cerebral  aspace
Guia padres paralisis cerebral aspace
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
 
Globalización orientación y planeación educativa
Globalización orientación y planeación educativaGlobalización orientación y planeación educativa
Globalización orientación y planeación educativa
 

Similar a Diagramadeclase

Similar a Diagramadeclase (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
 
Clases 2
Clases 2Clases 2
Clases 2
 
Clases
ClasesClases
Clases
 
clases
clasesclases
clases
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
06 diagrama de clases1
06 diagrama de clases106 diagrama de clases1
06 diagrama de clases1
 
Análisis y diseño oo con umldclases
Análisis y diseño oo con umldclasesAnálisis y diseño oo con umldclases
Análisis y diseño oo con umldclases
 
encuesta
encuestaencuesta
encuesta
 
Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Introducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UMLIntroducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UML
 
Diagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetosDiagrama de clases y diagrama de objetos
Diagrama de clases y diagrama de objetos
 
Clases
ClasesClases
Clases
 
Semana 4 Diagrama de Clases y Casos de Uso
Semana 4   Diagrama de Clases y Casos de UsoSemana 4   Diagrama de Clases y Casos de Uso
Semana 4 Diagrama de Clases y Casos de Uso
 
Semana 4 Diagrama de Clases y Casos de Uso
Semana 4   Diagrama de Clases y Casos de UsoSemana 4   Diagrama de Clases y Casos de Uso
Semana 4 Diagrama de Clases y Casos de Uso
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
diagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptx
diagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptxdiagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptx
diagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptx
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 

Más de Facultad de Ciencias y Sistemas

Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaFacultad de Ciencias y Sistemas
 

Más de Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Diagramadeclase

  • 2. TIPOS DE DIAGRAMAS  Diagramas de estructura: mostrar la estructura estática del sistema que se está modelando  Incluye: diagramas de clase, componentes y/o objetos.  Diagramas de comportamiento: muestra el comportamiento dinámico entre los objetos y el sistema.  Incluye: diagramas de actividades, casos de uso y de secuencia
  • 3. Diagrama de clase  Es el más utilizado y más conocido de los diagramas orientados a objetos. Es la fuente de generación de código.  El diagrama de clase representa clases, sus partes y la forma en la que las clases de los objetos están relacionados con otro.  Una clase es una definición de un tipo de objeto.
  • 4. Partes del diagrama de clases  Atributos: describe las características de una clase de objetos.  Operaciones: define el comportamiento de una clase de objetos  Estereotipos: ayuda a entender este tipo de objeto en el contexto de otras clases de objetos con roles similares dentro del diseño del sistema.  Asociación: es un término formal para un tipo de relación.  Herencia: permite organizar las definiciones de la clase para simplificar y facilitar su implementación.
  • 5. Clases  Las clases son descripciones de un juego de objetos con características, comportamiento, relaciones y semánticas comunes. Se usan para modelar un juego de conceptos o entidades.  Se denotan con un rectángulo con compartimentos.  En ellos se ponen el nombre, los atributos, las operaciones y además se pueden usar para anotar otras propiedades del modelo como son (reglas del negocio, responsabilidades, excepciones, etc.)  Pueden tener interfaces para especificar conjuntos de operaciones proporcionadas a su ambiente. Todas las operaciones deben estar asociadas a métodos.  Pueden tener relaciones de generalización con otras clases.
  • 6. Atributos  Son descripciones de características, se usan para modelar información asociada con una entidad, sintaxis: Nombre_atributo[multiplicidad]:Tipo = Valor_inicial  La multiplicidad es opcional e indica el número de atributos por instancia de la clase.
  • 7. Operaciones  Son descripciones del comportamiento, se usan para modelar los servicios u operaciones asociados con una entidad, esto es, lo que una entidad puede hacer, sintaxis: Nombre_operación[parámetros:tipo]:Valor_retorno:tipo
  • 8. Interfaces  Son clases que definen un juego de operaciones externas accesibles pero sin métodos. Se usan para modelar una serie de operaciones que definen un servicio que puede ser ofrecido por diferentes clases.  Se representan como clases pero con el estereotipo <<interface>>.  Solo contienen operaciones públicas
  • 9. Todos los diagramas soportan el Diagrama de Clase Casos de Diagrama Uso de Objetos Diagrama de Clase Diagrama de Secuencia Diagrama Diagrama de Colaboración de Actividades Diagrama de Estados
  • 10. 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 ligas.
  • 11. Modelando Clases  La representación de una clase es un rectángulo con 3 divisiones:  El del nombre define la clase, (un tipo de objeto).  El de los atributos contiene la definición de los datos.  El de las operaciones contiene la definición de cada comportamiento soportado por este tipo de objeto.
  • 12. Ejemplo La siguiente figura muestra un vuelo de una aerolínea modelado como una clase UML. Nombre Atributos Atributo: tipo de dato Operaciones Operación(parámetros: Tipo de dato):valor de retorno
  • 13. Modelando un atributo  Un atributo describe una pieza de información que un objeto tiene o conoce de sí mismo. Para poder usar esta información se debe asignar un nombre y especificar el tipo de dato.  El tipo de dato puede ser primitivo o tipo de dato abstracto (definido)  Cada atributo puede tener reglas que limiten los valores asignados a éste. Se puede usar un valor de default para protegerlo.
  • 14. Visibilidad de un atributo  La definición de un atributo debe especificar que otros objetos los pueden ver. La visibilidad puede ser:  Public (+) permite el acceso a objetos de las otras clases.  Private (-) limita el acceso a la clase, solo operaciones de la clase tienen acceso.  Protected (#) permite el acceso a subclases. En el caso de generalización (herencia), las subclases deben tener acceso a los atributos y operaciones de la superclase, sino no pueden heredar.  Package (~) permite el acceso a los otros objetos en el mismo paquete.
  • 15. Ejemplo Especificación de un atributo Elemento Ejemplo Nombre del atributo compañía Tipo de dato compañía:character Valor de default (si hay) compañía:character = espacios Restricciones compañía:character = espacios {1 a 30} Caracteres compañía:character = espacios{1 a 30 alfabéticos, espacios, puntuación, no especiales} Visibilidad - compañía:character = espacios {1 a 30 alfabéticos, …….
  • 16. Modelando una Operación  Los objetos tienen comportamientos, cosas que puedan hacer y que se les puedan dar a éstos.  Las operaciones requieren un nombre, argumentos y a veces un valor de retorno.  Las reglas de privacidad se aplican en la misma forma que para los atributos: Private, Public, Protected y Package.
  • 17. Ejemplo Especificación de una operación Elemento Ejemplo Nombre totalOrderAmount Definir argumentos/ totalOrderAmount (order: Parámetros, corresponden a integer) una instancia de Order Definir el tipo de dato de totalOrderAmount (order: retorno integer) : Dollar Identificar y describir totalOrderAmount (order: restricciones integer) : {El total es la suma de cada item (p.u. x cantidad) Visibilidad + totalOrderAmount (order: integer) : {El total es la suma ….
  • 18. Diagrama de Clases: Asociaciones  El propósito de la asociación puede expresarse en un nombre, verbo o frase que describa como los objetos de un tipo (clase) se relacionan con objetos de otro tipo (clase). Por ejemplo: Una persona tiene un coche Una persona maneja un coche  Multiplicidad: cuantos objetos van a participar en la relación
  • 19. Asociaciones Se indica el rol y la multiplicidad. Un vuelo está asociado con un avión y un avión puede tener asociados ninguno ó varios números de vuelo.
  • 20. Dirección  La dirección en las flechas de la asociación determinan en que dirección puede recorrerse una asociación en el momento de la ejecución.  Una asociación sin flechas significa que se puede ir de un objeto a otro y viceversa.  Por ejemplo la siguiente el tipo de flecha en la asociación implica que desde el objeto Reservación puedes recuperar (dirigirte hacia) el objeto Cliente. También implica que del objeto Cliente puedes recuperar el juego de reservaciones para ese cliente.
  • 21. 1….* hecha para 1 Reservación Cliente Supongamos que los requerimientos para un sistema de reservaciones requieren que “desde una reservación, que el sistema pueda recuperar el cuarto 1….* hecha para 1 Reservación Cuarto
  • 22. Clase Asociación  Cuando se modela una asociación entre clases, a veces es necesario incluir otra clase que contiene información valiosa acerca de la relación.  Se representa como una clase normal solo que la línea que la une con la línea que conecta las asociaciones primarias es punteada.  La siguiente figura muestra una clase asociación para el ejemplo de los vuelos.
  • 23. La asociación entre la clase Flight y FrequentFlyer es a través de una clase llamada MileageCredit. Esto significa que debe haber una instancia en esta clase cuando alguna instancia de la clase Flight se asocie con una instancia de la clase FrequentFlyer
  • 24. Pasos para el diagrama de clases  Identificar las clases.  Mostrar los atributos y operaciones (posteriormente)  Dibujar asociaciones  Etiquetar asociaciones y en caso necesario los roles  Indicar multiplicidad  Dibujar fechas de dirección
  • 25. Ejercicio  Supongamos que las personas que de trabajan en una empresa se tienen registradas sus habilidades, esto significa que cualquier empleado puede tener cualesquiera habilidades. ¿Es necesario crear una clase asociación que contenga la información de ambas clases?  Dibujar las entidades y su asociación.
  • 26. Asociación Reflexiva  Una clase puede asociarse con sí misma. Una clase Empleado puede relacionarse con sí misma a través del rol gerente/dirige.  No significa que una instancia está relacionada consigo misma, sino que una instancia de la clase está relacionada con otra instancia de la misma clase.
  • 27. Una instancia de Employee puede ser el gerente de otras instancias de Employee. Como el rol manages tiene una multiplicidad de 0…*, significa que puede no tener otros empleados a quien dirigir. Una instancia de Employee tiene 1 sólo gerente ó un solo director.
  • 28. Asociación Cualificada  Un cualificador es un atributo de la clase en el lado opuesto de la asociación, que permite hacer una búsqueda en función a su valor. Por ejemplo “El cliente usa el numOrden para buscar una orden”.  Un tipo de objeto usa el cualificador para accesar el otro tipo de objeto. cliente numOrden:int orden
  • 29. Diagrama de Clase: Agregación y Composición  Cada agregación es un tipo de asociación.  Cada composición es una forma de agregación. Asociación Agregación Composción
  • 30. AGREGACIÓN BASICA  Es un tipo especial de asociación utilizado para modelar una relación “whole to its parts”.  Por ejemplo, Coche es una entidad “whole” y Llanta es una parte del Coche.  Una asociación con una agregación indica que una clase es parte de otra clase.  En este tipo de asociación, la clase hijo puede sobrevivir sin su clase padre.
  • 31. Para representar una relación de agregación, se dibuja una línea sólida de la clase padre (total) a la clase hijo (parte), y con un diamante en el lado de la clase padre. Una llanta puede existir sin automóvil
  • 32. AGREGACIÓN/COMPOSICIÓN  En este caso el ciclo de vida de una instancia de la clase hijo depende del ciclo de vida de una instancia de la clase padre.  A diferencia de la agregación básica, para representarla el diamante no es hueco.  Una instancia de la clase Company debe tener al menos una en la clase Departamento.  En este tipo de relaciones, si una la instancia Company se elimina, automáticamente la instancia Departamento también se elimina.  Otra característica importante es que la clase hijo solo puede relacionarse con una instancia de la clase padre.
  • 33.
  • 34. Ejercicios Agregación y Composición HACER LOS DIAGRAMAS DE ASOCIACIÓN INDICANDO SI EXISTE AGREGACIÓN / COMPOSICIÓN. ANOTAR LA MULTIPLICIDAD. 1)Jugadores basketball y equipo basketball 2)Libro y capítulos del libro 3)Motor y automóvil 4)Líneas de un pedido y el pedido 5)En una empresa se llevan a cabo proyectos, estos proyectos están formados por una ó más actividades y a su vez cada actividad tiene 1 ó más tareas específicas. Cada tarea es asignada a un empleado y los empleados pueden o no tener asignadas tareas.
  • 35. Generalización  Son asociaciones entre elementos más generales y elementos más específicos, en los cuales éstos últimos son consistentes totalmente con los primeros, por lo que heredan las características proporcionadas por lo elementos generales y además pueden aumentar información.  Este tipo de relación también se conoce como herencia.  En una generalización no hay multiplicidad ni roles. Una (Asociación define las reglas de cómo los objetos se pueden relacionar entre ellos.)  La visibilidad “protected” permite que solo objetos de la misma clase ó subclase vean el elemento.
  • 36. Elementos de la generalización  Para dibujarla, hay que definir:  Superclase: es una clase que contiene alguna combinación de atributos, operaciones y asociaciones que son comunes a dos o más tipos de objetos que comparten el mismo propósito.  Subclase: es una clase que contiene una combinación de atributos, operaciones y asociaciones que son únicas a un tipo de objeto definido por una superclase.  La superclase es reutilizada por la subclase.
  • 37. Herencia Perro Collie Boxer Dalmata
  • 38. Paquetes  Es un elemento organizador que proporciona UML al dividir el sistema en paquetes lo hace más fácil de entender.
  • 39. Interfaces  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 especialización de una clase.  Una interface se dibuja como una clase, pero en el compartimento superior del rectángulo aparece un texto ó una inicial que indica que se trata de una interface y no de una clase.  Una interface no es una clase.
  • 40.
  • 41. Ejemplo interface 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 simbología del diagrama está como una interface y Professor y Student están como clases. 2) No se trata de herencia ya que la línea con la flecha está punteada y no sólida.
  • 42. Instancias  Cuando se modela la estructura de un sistema, a veces es útil mostrar ejemplos de las instancias de las clases.  UML proporciona el elemento instance especification, que muestra información importante utilizando un ejemplo.  La notación es la misma que la de una clase, solo que en el espacio superior el nombre se forma con: nombre de la instancia : nombre de la clase
  • 43. Además de mostrar las instancias es muy útil mostrar sus relaciones, el ejemplo muestra dos instancias de la clase Flight, ya que el diagrama de clase indica que la relación entre la clase Plane y la clase Fight es 0 a muchos:
  • 44. Roles  Se puede incluir el rol de las clases, el siguiente ejemplo de los roles jugados por la clase Employee (de la asociación reflexiva), mostramos que la relación es entre un Employee jugando el papel de gerente y un Employee jugando el rol de miembro del equipo.
  • 45. Diagrama de clase: Caso de estudio  Establecimiento del problema: para el sistema de control de inventario: “Nuestro sistema está diseñado para inventariar y embarcar únicamente productos identificados. Estos productos pueden ser comprados directamente de proveedores y revenderlos, o podemos empacarlos juntos para crear un producto especial. Los clientes colocan órdenes para uno ó más ítems pero nosotros detectamos en el sistema clientes que hayan o no hayan comprado. Cada ítem corresponde a un producto. Identificamos cada producto usando un número serial único. El cliente puede preguntar sobre el estatus de su orden utilizando el número de orden. Los embarques de productos de los proveedores se reciben y se colocan en el inventario. Cada producto es asignado a una ubicación con lo que se puede encontrar fácilmente cuando se surten las órdenes. Cada ubicación tiene un identificador único. Las órdenes para los clientes se embarcan a medida que los productos están disponibles, por lo que puede haber más de un envío para satisfacer una sola orden de compra, pero puede ser que un solo embarque contenga productos de múltiples órdenes. Los ítems que no se entregaron son colocados en una backorder con una referencia a la orden original”.
  • 46. Construyendo el diagrama de clase 1. Identificar las clases, nombrarlas y definirlas con lo que sabes que son parte del modelo. 2. Identificar, nombrar y definir las asociaciones entre pares de clases. Tener cuidado con clases reflexivas, asignar multiplicidad. 3. Evaluar cada asociación para determinar si debe ser una agregación y cada agregación para ver si debe ser una composición 4. Evaluar las clases para posible generalización (herencia).