SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Diagrama
                         de
                       Clases




                                                             1




Diagrama de Clases


   • El propósito de este diagrama es el de representar los
     objetos fundamentales del sistema, es decir los que
     percibe el usuario y con los que espera tratar para
     completar su tarea en vez de objetos del sistema o de un
     modelo de programación.
   • La clase define el ámbito de definición de un conjunto de
     objetos.
   • Cada objeto pertenece a una clase.
   • Los objetos se crean por instanciación de las clases.



                                                             2
Diagrama de Clases


           • Cada clase se representa en un rectángulo con tres
             compartimientos:

                 • Nombre de la clase

                 • Atributos de la clase

                 • Operaciones de la clase




                                                                                                   3




Diagrama de Clases: Atributos

           •    Tipo: puede llegar a depender del lenguaje de programación a utilizar.
                Tipo:                                                            utilizar.
           •    Valor inicial: valor que poseerá el atributo al crear un objeto.
                       inicial:
           •    Visibilidad: está relacionado con el encapsulamiento.
                Visibilidad:
           •    Multiplicidad: determinar si un atributo debe estar o no, y si posee un único valor o
                Multiplicidad:
                una lista de valores.
           •    Ordenamiento: especifica si el atributo determina alguna relación de orden dentro de la
                Ordenamiento:                                                                    dentro
                clase.
           •    Capacidad de cambio: permite definir atributos con valores constantes.
                                 cambio:
           •    Modificadores: un atributo puede ser de clase, derivado, volátil, transitorio.
                Modificadores:                                                      transitorio.

                          El atributo fecha de nacimiento es público.


  El atributo edad es derivado (puede calcularse a partir
 de la fecha de nacimiento), y determina una relación de
         orden entre las instancias de las personas.


                                   El atributo DNI es un atributo protegido.


        El atributo coloresPreferidos representa una colección
                  o conjunto de valores del tipo Color

                                                                                                   4
Diagrama de Clases: Atributos
     Visibilidad

     La encapsulamiento presenta tres ventajas básicas:
            •   Se protegen los datos de accesos indebidos
            •   El acoplamiento entre las clases se disminuye
            •   Favorece la modularidad y el mantenimiento


     Los atributos de una clase no deberían ser manipulables directamente por el resto de
                                                             directamente
     objetos.

     Niveles de encapsulamiento:

     (-) Privado : es el más fuerte. Esta parte es totalmente invisible desde
         fuera de la clase (excepto para clases friends en terminología C++).
                                                             terminología
     (~) Package : Sólo es visible dentro del mismo package.
     (#) Los atributos/operaciones protegidos están visibles para las clases
          friends y para las clases derivadas de la original.
     (+) Los atributos/operaciones públicos son visibles a otras clases (cuando
           se trata de atributos se está transgrediendo el principio de
                                                            principio
           encapsulamiento).
                                                                                         5




Diagrama de Clases: Atributos

     Multiplicidad
     1            El atributo debe tener un único valor.
     0..1         El atributo puede o no tener un valor.
     0..*         El atributo puede tener varios valores o ninguno.
     1..*         El atributo puede tener varios valores, pero debe tener al menos uno
     *            El atributo puede tener varios valores.
     M..N         El atributo puede tener entre M y N valores.

     Modificadores

            • De clase o estático: el atributo se aparece subrayado. No es necesario contar
                          estático:
              con un objeto para ejecutarlo.
            • Derivado: es calculable a partir de otros atributos.
              Derivado:
            • Transitorio: tendrá valor sólo durante una porción de la ejecución.
              Transitorio:
            • Volátil: no se persiste.
              Volátil:


                                                                                         6
Diagrama de Clases: Operaciones

      Una operación es un servicio que una instancia de la clase puede realizar.

      •    Tipo devuelto: puede llegar a depender del lenguaje de programación a utilizar.
                devuelto:                                                          utilizar.
      •    Parámetros: además del tipo, puede especificarse si son In, Out o InOut.
           Parámetros:
      •    Visibilidad: está relacionado con el encapsulamiento.
           Visibilidad:
      •    Modificadores: una operación puede ser de clase, abstracta, query o constructor.
           Modificadores:                                                       constructor.



          La operación calcularEdad es privado y no
                       devuelve nada.




       El método público calcularHorasTrabajadas es
     abstracto, las subclases de la clase Persona deberá
                  implementarlo para utilizarlo.




                                                                                         7




Diagrama de Clases
Relaciones entre Clases

      • Una asociación es una conexión estructural simple
        entre clases. Las instancias de las clases implicadas en
        una asociación estarán probablemente comunicándose
        en el momento de ejecución.

      • Los enlaces entre de objetos pueden representarse
        entre las respectivas clases

      • Formas de relación entre clases:
             • Asociación y Agregación (vista como un caso particular de
               asociación)
             • Generalización/Especialización

                                                                                         8
Diagrama de Clases: Asociación


    • La asociación expresa una conexión bidireccional entre
      objetos.

    • Una asociación es una abstracción de la relación
      existente en los enlaces entre los objetos.


                                          Enlace




                                                                9




Diagrama de Clases
Relaciones entre Clases

      Multiplicidad
      1      Un elemento relacionado.
      0..1   Uno o ningún elemento relacionado.
      0..*   Varios elementos relacionados o ninguno.
      1..*   Varios elementos relacionados pero al menos uno.
      *      Varios elementos relacionados.
      M..N   Entre M y N elementos relacionados.




                                                                10
Diagrama de Clases: Asociación


     Rol
     • Identificado como un nombre a los finales de la asociación,
                                                           asociació
       describe la semántica de la relación en el sentido indicado.
                   semá            relació

     • Cada asociación tiene dos roles; cada rol es una dirección en
             asociació                                  direcció
       la asociación.
          asociació




                                                                 11




Diagrama de Clases: Asociación


     • Se asume que una asociación es bidireccional, es decir
       que se puede navegar desde cualquiera de clases
       implicadas a la otra, pero es posible indicar que la
       navegación ocurrirá en una sola dirección.




                                                                 12
Diagrama de Clases: Agregación


    • Es una asociación especial, una relación del tipo
      “todo/parte” dentro de la cual una o más clases son
      partes de un conjunto.




                                                                     13




Diagrama de Clases: Composición

    • La composición es una forma ‘fuerte’ de
      agregación. Se diferencian en:

       • En la composición tanto el todo como las partes tienen el
         mismo ciclo de vida.
       • Un objeto puede pertenecer solamente a una composición.




                                                                     14
Diagrama de Clases: Asociación Calificada


     • Un calificador es un atributo (o tupla de atributos) de la
       asociación cuyos valores sirven para particionar el
       conjunto de objetos enlazados a otro.
     • Un calificador se representa como un pequeño
       rectángulo conectado al final de una asociación y a la
       clase.
     • El rectángulo del calificador es parte de la asociación, y
       no parte de la clase.


                                  fila: int
                                  fila:
                                  columna: int
                                  columna:




                                                               15




Diagrama de Clases: Asociación n-arias
                               n-

    • Son asociaciones que se establecen entre más de dos clases
                                                 má
    • Una clase puede aparecer varias veces desempeñando
                                               desempeñ
      distintos roles.
    • Las asociaciones n-arias se representan a través de rombo
                       n-                        travé
      que se une con cada una de las clases.
                                       clases.

                                       La relaciones n-arias
                                                     n-
                                        pueden ser usadas
                                           para impedir
                                       inconsistencias en el
                                              modelo.




                                                               16
Diagrama de Clases: Generalización


     • Una generalización se refiere a una relación entre una
       clase general (superclase o padre) y una versión más
       específica de dicha clase (subclase o hija).




                                                                      17




Diagrama de Clases: Generalización

     • Nombres usados: clase padre - clase hija. Otros nombres:
       superclase - subclase, clase base - clase derivada.
     • Las subclases heredan propiedades de sus clases padre, es decir,
       atributos y operaciones (y asociaciones) de la clase padre están
       disponibles en sus clases hijas.
     • La especialización es una técnica muy eficaz para la extensión y
       reutilización.

 Restricciones predefinidas
 en UML:
    • Overlapping
    • Disjoint
    • Complete
    • Incomplete

                                                                      18
Diagrama de Clases: Generalización

     • Particionamiento del espacio de objetos     Clasificación Estática
     • Particionamiento del espacio de estados de los objetos
       Clasificación Dinámica
     • En ambos casos se recomienda considerar
       generalizaciones/especializaciones disjuntas
     • Usando discriminadores se pueden tener varias especializaciones
       de una misma clase padre




            Discriminador




                                                                        19




Diagrama de Clases: Generalización

     • La herencia múltiple debe manejarse con precaución. Algunos
       problemas son el conflicto de nombre y el conflicto de precedencia.
                                                              precedencia.
     • Se recomienda un uso restringido y disciplinado de la herencia.
     • Permite modelar jerarquías alternativas.




                                                                        20
Diagrama de Clases: Clase de asociación

    • Es una asociación y una clase simultáneamente.
    • Hay que tener en cuenta dónde se colocan los
      atributos.




                                                          21




Diagrama de Clases: Dependencia

     • Una dependencia es una relación de “uso” en la que un
       cambio en uno de los términos -por ejemplo, una clase-
                                                       clase-
       puede afectar a otro (otra clase)




                                                          22
Diagrama de Clases: Dependencia

    Posibles dependencias entre clases

    • use: el funcionamiento del origen depende de la
      use:
      presencia del destino
    • instantiate: el origen crea instancias del destino
      instantiate:
    • derive: el origen puede calcularse a partir del destino
      derive:
    • refine: el origen está un grado de abstracción más
      refine:            está               abstracció má
      detallado.
    • bind(): derivación genérica de una plantilla
      bind(): derivació gené
    • friend: visibilidad característica de C++
      friend:             caracterí


                                                                23




Diagrama de Clases: Estereotipos

     • Un estereotipo representa el principal mecanismo de
       extensión de UML. Ofrece una forma de extender una
       metaclase, creando un nuevo elemento de
       metamodelo.




                                                                24
Diagrama de Clases: Interfaces


     • Una interfaz es una colección de operaciones que
       representan servicios ofrecidos por una clase o
       componente.
     • Por definición, todas estas operaciones tendrán una
       visibilidad pública.
     • La interfaz especifica algo similar a un contrato que la
       clase se compromete a respetar.
     • La clase realiza (o suministra una realización de) una o
       varias interfaces.
     • UML define dos tipos de interfaces: interfaz
       suministrada e interfaz requerida.

                                                             25




Diagrama de Clases: Interfaces

     • La interfaz suministrada es aquella que una clase
       efectivamente implementa.




                                                             26
Diagrama de Clases: Interfaces

     • Las interfaces requeridas son aquellas que necesita una
       clase para realizar su cometido. El símbolo utilizado
       para representarla es un semicírculo.




                                                            27




Ejemplo

     ¿Cómo interpretaría lo siguiente?




                                                            28
Modelo de Dominio vs. Modelo de Diseño


    • El diagrama de clases puede utilizarse con distintos
      fines en distintas etapas del proceso de desarrollo.

    • Durante la etapa de análisis, el modelo de dominio
      es encargado de mostrar el conjunto de clases
      conceptuales del problema y las relaciones presentes
      entre sí.

    • Durante la etapa de diseño, el modelo de diseño
      determina las futuras componentes de software
      (clases) y sus relaciones entre sí.

                                                             29




Modelo de Dominio

    • Es una representación de las cosas, entidades,
      idea, clases conceptuales u objetos del “mundo
      real” o dominio de interés, no de componentes de
      software.

    • Muestra clases conceptuales significativas en un
      dominio del problema.

    • Se usa como base para el diseño de los objetos de
      software.


                                                             30
Modelo de Dominio

    • Es el artefacto más importante del análisis.

    • Podría se considerado como un diccionario visual
      de abstracciones de clases conceptuales,
      vocabulario e información del dominio.

    • No es absolutamente correcto o incorrecto, su
      intención en ser útil sirviendo como una
      intenció
      herramienta de comunicación.
                      comunicació



                                                                    31




Modelo de Dominio

    • Otros nombres: modelo conceptual, modelo de objetos del dominio
      y modelo de los objetos de análisis.
                                 aná

    • Según el punto de vista, tiene puntos en común con el Diagrama
      Segú                                     comú
      de Entidad Relación.
                 Relació

    • Usando UML, el MD se representa con un conjunto de diagramas
      de clases. Se puede mostrar:
       • objetos del dominio o clases conceptuales
       • asociaciones entre las clases conceptuales
       • atributos de las clases conceptuales

    • NO SE DEFINE NINGUNA OPERACIÓN. La asignación de
                                OPERACIÓ        asignació
      responsabilidades de los objetos no forma parte de este modelo.

                                                                    32
Modelo de Dominio: Clases Conceptuales


    Es válido…
       vá lido…
       • Tener clases conceptuales sin atributos.
       • Tener clases conceptuales para las cuales no haya
         requerimientos de información a registrar.
                           informació
       • Tener clases conceptuales con rol de
         comportamiento, en lugar de información.
         comportamiento,                 informació

    Estrategias para identificar
       • Utilizar lista de categorías de clases conceptuales.
                           categorí
       • Identificar frases nominales (sustantivos o frases).


                                                                33




Modelo de Dominio: Clases Conceptuales




                                                                34
Modelo de Dominio: Clases Conceptuales

     Identificar frases nominales (sustantivos o frases)


      Se intenta identificar sustantivos o frases nominales en el
       vocabulario y descripciones del dominio del problema.
             Esta técnica práctica no puede ser aplicada
                  té       prá
      mecánicamente sino que hay que usar el “sentido común”
      mecá                                               comú
        y capturar las abstracciones adecuadas puesto que el
     lenguaje natural es ambiguo y los conceptos relevantes no
             siempre se encuentran de manera explícita.
                                                  explí




                                                              35




Ejemplo

    Un posible modelo de dominio para el caso del local de
    venta de electrodomésticos…
             electrodomé sticos…




                                                              36
Diagrama Entidad Relación

    • No pertenece a UML
    • Nacido para describir bases de datos relacionales
      (Chen).
    • 2 conceptos: entidades y relaciones.
       • Entidades: conjuntos de individuos que poseen
         atributos.
       • Relaciones entre individuos especificando
         cardinalidad y opcionalidad.


  Cliente                Proyecto                 Empleado
              ordena                 trabaja_en

                                                             37




Modelo de Diseño


     • A diferencia del Modelo de Dominio, el modelo
       de diseño se encuentra más cerca de la
       solución buscada.

     • Refleja decisiones en cuanto a asignación de
       responsabilidades entre los objetos
       (operaciones).

     • Toma como base el Modelo de Dominio, donde
       algunas entidades se promoverán a Clases.
                                                             38
Modelo de Diseño


    • Muestra cómo se relacionan componentes de
      software para resolver el problema planteado.

    • Es el paso previo a la implementación.

    • Es posible aplicar patterns según el tipo de
      problema.




                                                     39




Objetos




                                                     40
¿Preguntas?




              41

Weitere ähnliche Inhalte

Was ist angesagt?

Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
LuiS YmAY
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
d-draem
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
Marvin Zumbado
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
TerryJoss
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
Guillermo Díaz
 

Was ist angesagt? (20)

Clases y objetos en java
Clases y objetos en javaClases y objetos en java
Clases y objetos en java
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Elementos de diagramas de objetos
Elementos de diagramas de objetosElementos de diagramas de objetos
Elementos de diagramas de objetos
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
Diagrama de estado
Diagrama de estadoDiagrama de estado
Diagrama de estado
 
Casos de Uso en UML
Casos de Uso en UMLCasos de Uso en UML
Casos de Uso en UML
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Casos prácticos de uml
Casos prácticos de umlCasos prácticos de uml
Casos prácticos de uml
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
Mapa conceptual de uml
Mapa conceptual de umlMapa conceptual de uml
Mapa conceptual de uml
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 

Ähnlich wie Diagrama de clases

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
palmcorder_3
 
programacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptxprogramacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptx
RICARDOEDGARDOQUINTA
 
Elementos avanzados de poo
Elementos avanzados de pooElementos avanzados de poo
Elementos avanzados de poo
LCA
 

Ähnlich wie Diagrama de clases (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Tutorial uml
Tutorial umlTutorial uml
Tutorial uml
 
3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
clases
clasesclases
clases
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Uml diagrama clase objeto
Uml diagrama clase objetoUml diagrama clase objeto
Uml diagrama clase objeto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Uml orientada a objetos
Uml orientada a objetosUml orientada a objetos
Uml orientada a objetos
 
programacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptxprogramacion orientada a objetos con PHP .pptx
programacion orientada a objetos con PHP .pptx
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Paradigma POO.pptx
Paradigma POO.pptxParadigma POO.pptx
Paradigma POO.pptx
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Clase 17
Clase 17Clase 17
Clase 17
 
Uip celso arauz
Uip celso arauzUip celso arauz
Uip celso arauz
 
Elementos avanzados de poo
Elementos avanzados de pooElementos avanzados de poo
Elementos avanzados de poo
 
Diagramas de clase(dream team)
Diagramas de clase(dream team)Diagramas de clase(dream team)
Diagramas de clase(dream team)
 

Mehr von still01

Aprendiendo uml en 24 horas
Aprendiendo uml en 24 horasAprendiendo uml en 24 horas
Aprendiendo uml en 24 horas
still01
 
casos de uso
casos de usocasos de uso
casos de uso
still01
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
still01
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
still01
 
Exposicion internet1
Exposicion internet1Exposicion internet1
Exposicion internet1
still01
 
Servidores
ServidoresServidores
Servidores
still01
 
Exposicion hardware
Exposicion hardwareExposicion hardware
Exposicion hardware
still01
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
still01
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
still01
 
Exposicion mantenimientos2
Exposicion mantenimientos2Exposicion mantenimientos2
Exposicion mantenimientos2
still01
 
Internet ultimete
Internet ultimeteInternet ultimete
Internet ultimete
still01
 
Método delphi
Método delphiMétodo delphi
Método delphi
still01
 
TRD Lluvia de ideas
TRD Lluvia de ideas TRD Lluvia de ideas
TRD Lluvia de ideas
still01
 
Tecnica Observacion
Tecnica ObservacionTecnica Observacion
Tecnica Observacion
still01
 
Tecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacionTecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacion
still01
 
Tecnica Encuesta
Tecnica EncuestaTecnica Encuesta
Tecnica Encuesta
still01
 
Tecnica La entrevista
Tecnica La entrevista Tecnica La entrevista
Tecnica La entrevista
still01
 

Mehr von still01 (20)

Aprendiendo uml en 24 horas
Aprendiendo uml en 24 horasAprendiendo uml en 24 horas
Aprendiendo uml en 24 horas
 
casos de uso
casos de usocasos de uso
casos de uso
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Uml
UmlUml
Uml
 
Exposicion internet1
Exposicion internet1Exposicion internet1
Exposicion internet1
 
Servidores
ServidoresServidores
Servidores
 
Proxy
ProxyProxy
Proxy
 
Exposicion hardware
Exposicion hardwareExposicion hardware
Exposicion hardware
 
Diapo 2
Diapo 2Diapo 2
Diapo 2
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
 
Exposicion mantenimientos2
Exposicion mantenimientos2Exposicion mantenimientos2
Exposicion mantenimientos2
 
Internet ultimete
Internet ultimeteInternet ultimete
Internet ultimete
 
Método delphi
Método delphiMétodo delphi
Método delphi
 
TRD Lluvia de ideas
TRD Lluvia de ideas TRD Lluvia de ideas
TRD Lluvia de ideas
 
Tecnica Observacion
Tecnica ObservacionTecnica Observacion
Tecnica Observacion
 
Tecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacionTecnica Sesion de grupo y lista de verificacion
Tecnica Sesion de grupo y lista de verificacion
 
Tecnica Encuesta
Tecnica EncuestaTecnica Encuesta
Tecnica Encuesta
 
Tecnica La entrevista
Tecnica La entrevista Tecnica La entrevista
Tecnica La entrevista
 

Diagrama de clases

  • 1. Diagrama de Clases 1 Diagrama de Clases • El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar su tarea en vez de objetos del sistema o de un modelo de programación. • La clase define el ámbito de definición de un conjunto de objetos. • Cada objeto pertenece a una clase. • Los objetos se crean por instanciación de las clases. 2
  • 2. Diagrama de Clases • Cada clase se representa en un rectángulo con tres compartimientos: • Nombre de la clase • Atributos de la clase • Operaciones de la clase 3 Diagrama de Clases: Atributos • Tipo: puede llegar a depender del lenguaje de programación a utilizar. Tipo: utilizar. • Valor inicial: valor que poseerá el atributo al crear un objeto. inicial: • Visibilidad: está relacionado con el encapsulamiento. Visibilidad: • Multiplicidad: determinar si un atributo debe estar o no, y si posee un único valor o Multiplicidad: una lista de valores. • Ordenamiento: especifica si el atributo determina alguna relación de orden dentro de la Ordenamiento: dentro clase. • Capacidad de cambio: permite definir atributos con valores constantes. cambio: • Modificadores: un atributo puede ser de clase, derivado, volátil, transitorio. Modificadores: transitorio. El atributo fecha de nacimiento es público. El atributo edad es derivado (puede calcularse a partir de la fecha de nacimiento), y determina una relación de orden entre las instancias de las personas. El atributo DNI es un atributo protegido. El atributo coloresPreferidos representa una colección o conjunto de valores del tipo Color 4
  • 3. Diagrama de Clases: Atributos Visibilidad La encapsulamiento presenta tres ventajas básicas: • Se protegen los datos de accesos indebidos • El acoplamiento entre las clases se disminuye • Favorece la modularidad y el mantenimiento Los atributos de una clase no deberían ser manipulables directamente por el resto de directamente objetos. Niveles de encapsulamiento: (-) Privado : es el más fuerte. Esta parte es totalmente invisible desde fuera de la clase (excepto para clases friends en terminología C++). terminología (~) Package : Sólo es visible dentro del mismo package. (#) Los atributos/operaciones protegidos están visibles para las clases friends y para las clases derivadas de la original. (+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de principio encapsulamiento). 5 Diagrama de Clases: Atributos Multiplicidad 1 El atributo debe tener un único valor. 0..1 El atributo puede o no tener un valor. 0..* El atributo puede tener varios valores o ninguno. 1..* El atributo puede tener varios valores, pero debe tener al menos uno * El atributo puede tener varios valores. M..N El atributo puede tener entre M y N valores. Modificadores • De clase o estático: el atributo se aparece subrayado. No es necesario contar estático: con un objeto para ejecutarlo. • Derivado: es calculable a partir de otros atributos. Derivado: • Transitorio: tendrá valor sólo durante una porción de la ejecución. Transitorio: • Volátil: no se persiste. Volátil: 6
  • 4. Diagrama de Clases: Operaciones Una operación es un servicio que una instancia de la clase puede realizar. • Tipo devuelto: puede llegar a depender del lenguaje de programación a utilizar. devuelto: utilizar. • Parámetros: además del tipo, puede especificarse si son In, Out o InOut. Parámetros: • Visibilidad: está relacionado con el encapsulamiento. Visibilidad: • Modificadores: una operación puede ser de clase, abstracta, query o constructor. Modificadores: constructor. La operación calcularEdad es privado y no devuelve nada. El método público calcularHorasTrabajadas es abstracto, las subclases de la clase Persona deberá implementarlo para utilizarlo. 7 Diagrama de Clases Relaciones entre Clases • Una asociación es una conexión estructural simple entre clases. Las instancias de las clases implicadas en una asociación estarán probablemente comunicándose en el momento de ejecución. • Los enlaces entre de objetos pueden representarse entre las respectivas clases • Formas de relación entre clases: • Asociación y Agregación (vista como un caso particular de asociación) • Generalización/Especialización 8
  • 5. Diagrama de Clases: Asociación • La asociación expresa una conexión bidireccional entre objetos. • Una asociación es una abstracción de la relación existente en los enlaces entre los objetos. Enlace 9 Diagrama de Clases Relaciones entre Clases Multiplicidad 1 Un elemento relacionado. 0..1 Uno o ningún elemento relacionado. 0..* Varios elementos relacionados o ninguno. 1..* Varios elementos relacionados pero al menos uno. * Varios elementos relacionados. M..N Entre M y N elementos relacionados. 10
  • 6. Diagrama de Clases: Asociación Rol • Identificado como un nombre a los finales de la asociación, asociació describe la semántica de la relación en el sentido indicado. semá relació • Cada asociación tiene dos roles; cada rol es una dirección en asociació direcció la asociación. asociació 11 Diagrama de Clases: Asociación • Se asume que una asociación es bidireccional, es decir que se puede navegar desde cualquiera de clases implicadas a la otra, pero es posible indicar que la navegación ocurrirá en una sola dirección. 12
  • 7. Diagrama de Clases: Agregación • Es una asociación especial, una relación del tipo “todo/parte” dentro de la cual una o más clases son partes de un conjunto. 13 Diagrama de Clases: Composición • La composición es una forma ‘fuerte’ de agregación. Se diferencian en: • En la composición tanto el todo como las partes tienen el mismo ciclo de vida. • Un objeto puede pertenecer solamente a una composición. 14
  • 8. Diagrama de Clases: Asociación Calificada • Un calificador es un atributo (o tupla de atributos) de la asociación cuyos valores sirven para particionar el conjunto de objetos enlazados a otro. • Un calificador se representa como un pequeño rectángulo conectado al final de una asociación y a la clase. • El rectángulo del calificador es parte de la asociación, y no parte de la clase. fila: int fila: columna: int columna: 15 Diagrama de Clases: Asociación n-arias n- • Son asociaciones que se establecen entre más de dos clases má • Una clase puede aparecer varias veces desempeñando desempeñ distintos roles. • Las asociaciones n-arias se representan a través de rombo n- travé que se une con cada una de las clases. clases. La relaciones n-arias n- pueden ser usadas para impedir inconsistencias en el modelo. 16
  • 9. Diagrama de Clases: Generalización • Una generalización se refiere a una relación entre una clase general (superclase o padre) y una versión más específica de dicha clase (subclase o hija). 17 Diagrama de Clases: Generalización • Nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. • Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas. • La especialización es una técnica muy eficaz para la extensión y reutilización. Restricciones predefinidas en UML: • Overlapping • Disjoint • Complete • Incomplete 18
  • 10. Diagrama de Clases: Generalización • Particionamiento del espacio de objetos Clasificación Estática • Particionamiento del espacio de estados de los objetos Clasificación Dinámica • En ambos casos se recomienda considerar generalizaciones/especializaciones disjuntas • Usando discriminadores se pueden tener varias especializaciones de una misma clase padre Discriminador 19 Diagrama de Clases: Generalización • La herencia múltiple debe manejarse con precaución. Algunos problemas son el conflicto de nombre y el conflicto de precedencia. precedencia. • Se recomienda un uso restringido y disciplinado de la herencia. • Permite modelar jerarquías alternativas. 20
  • 11. Diagrama de Clases: Clase de asociación • Es una asociación y una clase simultáneamente. • Hay que tener en cuenta dónde se colocan los atributos. 21 Diagrama de Clases: Dependencia • Una dependencia es una relación de “uso” en la que un cambio en uno de los términos -por ejemplo, una clase- clase- puede afectar a otro (otra clase) 22
  • 12. Diagrama de Clases: Dependencia Posibles dependencias entre clases • use: el funcionamiento del origen depende de la use: presencia del destino • instantiate: el origen crea instancias del destino instantiate: • derive: el origen puede calcularse a partir del destino derive: • refine: el origen está un grado de abstracción más refine: está abstracció má detallado. • bind(): derivación genérica de una plantilla bind(): derivació gené • friend: visibilidad característica de C++ friend: caracterí 23 Diagrama de Clases: Estereotipos • Un estereotipo representa el principal mecanismo de extensión de UML. Ofrece una forma de extender una metaclase, creando un nuevo elemento de metamodelo. 24
  • 13. Diagrama de Clases: Interfaces • Una interfaz es una colección de operaciones que representan servicios ofrecidos por una clase o componente. • Por definición, todas estas operaciones tendrán una visibilidad pública. • La interfaz especifica algo similar a un contrato que la clase se compromete a respetar. • La clase realiza (o suministra una realización de) una o varias interfaces. • UML define dos tipos de interfaces: interfaz suministrada e interfaz requerida. 25 Diagrama de Clases: Interfaces • La interfaz suministrada es aquella que una clase efectivamente implementa. 26
  • 14. Diagrama de Clases: Interfaces • Las interfaces requeridas son aquellas que necesita una clase para realizar su cometido. El símbolo utilizado para representarla es un semicírculo. 27 Ejemplo ¿Cómo interpretaría lo siguiente? 28
  • 15. Modelo de Dominio vs. Modelo de Diseño • El diagrama de clases puede utilizarse con distintos fines en distintas etapas del proceso de desarrollo. • Durante la etapa de análisis, el modelo de dominio es encargado de mostrar el conjunto de clases conceptuales del problema y las relaciones presentes entre sí. • Durante la etapa de diseño, el modelo de diseño determina las futuras componentes de software (clases) y sus relaciones entre sí. 29 Modelo de Dominio • Es una representación de las cosas, entidades, idea, clases conceptuales u objetos del “mundo real” o dominio de interés, no de componentes de software. • Muestra clases conceptuales significativas en un dominio del problema. • Se usa como base para el diseño de los objetos de software. 30
  • 16. Modelo de Dominio • Es el artefacto más importante del análisis. • Podría se considerado como un diccionario visual de abstracciones de clases conceptuales, vocabulario e información del dominio. • No es absolutamente correcto o incorrecto, su intención en ser útil sirviendo como una intenció herramienta de comunicación. comunicació 31 Modelo de Dominio • Otros nombres: modelo conceptual, modelo de objetos del dominio y modelo de los objetos de análisis. aná • Según el punto de vista, tiene puntos en común con el Diagrama Segú comú de Entidad Relación. Relació • Usando UML, el MD se representa con un conjunto de diagramas de clases. Se puede mostrar: • objetos del dominio o clases conceptuales • asociaciones entre las clases conceptuales • atributos de las clases conceptuales • NO SE DEFINE NINGUNA OPERACIÓN. La asignación de OPERACIÓ asignació responsabilidades de los objetos no forma parte de este modelo. 32
  • 17. Modelo de Dominio: Clases Conceptuales Es válido… vá lido… • Tener clases conceptuales sin atributos. • Tener clases conceptuales para las cuales no haya requerimientos de información a registrar. informació • Tener clases conceptuales con rol de comportamiento, en lugar de información. comportamiento, informació Estrategias para identificar • Utilizar lista de categorías de clases conceptuales. categorí • Identificar frases nominales (sustantivos o frases). 33 Modelo de Dominio: Clases Conceptuales 34
  • 18. Modelo de Dominio: Clases Conceptuales Identificar frases nominales (sustantivos o frases) Se intenta identificar sustantivos o frases nominales en el vocabulario y descripciones del dominio del problema. Esta técnica práctica no puede ser aplicada té prá mecánicamente sino que hay que usar el “sentido común” mecá comú y capturar las abstracciones adecuadas puesto que el lenguaje natural es ambiguo y los conceptos relevantes no siempre se encuentran de manera explícita. explí 35 Ejemplo Un posible modelo de dominio para el caso del local de venta de electrodomésticos… electrodomé sticos… 36
  • 19. Diagrama Entidad Relación • No pertenece a UML • Nacido para describir bases de datos relacionales (Chen). • 2 conceptos: entidades y relaciones. • Entidades: conjuntos de individuos que poseen atributos. • Relaciones entre individuos especificando cardinalidad y opcionalidad. Cliente Proyecto Empleado ordena trabaja_en 37 Modelo de Diseño • A diferencia del Modelo de Dominio, el modelo de diseño se encuentra más cerca de la solución buscada. • Refleja decisiones en cuanto a asignación de responsabilidades entre los objetos (operaciones). • Toma como base el Modelo de Dominio, donde algunas entidades se promoverán a Clases. 38
  • 20. Modelo de Diseño • Muestra cómo se relacionan componentes de software para resolver el problema planteado. • Es el paso previo a la implementación. • Es posible aplicar patterns según el tipo de problema. 39 Objetos 40