SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
TECNOLÓGICO NACIONAL DE MÉXICO
Centro Nacional de Investigación y
Desarrollo Tecnológico
MSI. José Antonio Sandoval Acosta
Seminario Técnico
Diagrama de Clases
Febrero de 2023
UML
El lenguaje UML (en inglés, Unified Modeling Language) es un lenguaje
para:
• Especificación,
• Visualización,
• Construcción, y
• Documentación de las partes de un sistema de software.
Consiste en una colección de las mejores prácticas de ingeniería que han
mostrado ser exitosas en el modelado de sistemas complejos.
DIAGRAMA DE CLASES
Las clases son dibujadas con un rectángulo, dividido en tres partes:
• El nombre de la clase.
• Los atributos.
• Las operaciones correspondientes.
• Opcionalmente las responsabilidades que cada clase tiene.
Además, el diagrama contiene:
• Las relaciones entre clases y características de esas relaciones.
Representación de una clase
• El nombre de la clase debe ser lo menos ambiguo posible,
usualmente un sustantivo.
• Atributos: Los atributos describen las características de los
objetos.
• Poseen un tipo, que nos indica qué clase de atributo es. Si bien
existen ciertos tipos primitivos, como enteros, booleanos y
reales, cualquier tipo puede ser usado, incluso otras clases.
Sintaxis:
nombre<:tipo> <=valor_inicial >
ubicacion : Cadena
responsable : Cadena
CajeroAutomatico
La restricción más importante es que los atributos son
generalmente visibles únicamente por la clase que los contiene.
Las operaciones son utilizadas para manipular los atributos o
realizar consultas.
• La sintaxis para describir una operación es la siguiente:
nombre_operación(<parámetros>) <:tipo_resultado>
Cuenta
+ accountNum:int
- name:string
~ retiro():double
• Las responsabilidades son las obligaciones de una clase y son
definidas por el usuario.
• Si bien, existe un compartimiento dentro de la clase para la
especificación de las responsabilidades, éstas son de carácter
opcional.
• Dependiendo del nivel de detalle que queremos alcanzar en el
modelo, se pueden obviar algunas de las divisiones del gráfico de
clases.
• Esto permite simplificar el diagrama completo, de acuerdo al
nivel de abstracción necesario. Puede utilizarse, por ejemplo
Notas en el diagrama de clases
• A los gráficos de clases se les puede agregar notas o comentarios
sobre algún aspecto interesante de la clase.
• Estas notas pueden incluir observaciones sobre la clase, alguna
restricción de uso, e incluso el pseudo-código de algunas
operaciones.
• Se grafican por medio de un rectángulo con la esquina superior
derecha plegada, como si fuera una hoja, y se une con una línea
al elemento de la clase al cual corresponde la nota.
Representación de las Notas
Las relaciones más importantes entre clases son:
Asociación
Herencia
Agregación
Composición
Realización
Dependencia
Asociación (Conexión entre clases)
• Una asociación es una conexión entre clases. Significa que los
objetos de dos clases tendrán un vínculo bidireccional en
común, el cual puede interpretarse como “para cada X existe un
Y”.
• Se representa por medio de una línea continua entre dos clases.
Multiplicidad
• Se utiliza multiplicidad cuando no necesariamente los vínculos
entre objetos son de uno a uno.
• Se especifica en cada extremo del vínculo, a través de un rango,
cuántos objetos pueden estar vinculados.
Rangos
• Algunos ejemplos de rangos son los siguientes:
Cuando no se especifica ningún rango, se asume el valor uno (1) por defecto.
Puede agregarse una flecha a la línea, indicando la dirección del vínculo:
• Supongamos que los requerimientos para un sistema de cajero automático
precisan que desde una transacción del cajero se pueda recuperar la
información de la cuenta del cliente.
• 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.
1 0..*
Agregaciones (Posee/contiene)
• Agregación es un caso especial de asociación. Indica que una o más
clases (clases componentes) forman parte de otra clase (clase
agregada).
• Se denota con un rombo en uno de los extremos del vínculo, aquél
que corresponde a la clase agregada.
• Puede interpretarse como “posee (o contiene) un”.
Composición
• En la composición el rombo es relleno con color e implica que si
la clase compuesta se elimina, las clases que lo componen
también serán eliminadas.
Generalizaciones (Herencia/Especificación/Especialización)
• La generalización es la relación entre una clase más general y un
clase más específica.
• La clase más especifica (denominada subclase o clase hija) es
consistente con la clase más general (denominada superclase o
clase padre), y contiene información adicional.
• La generalización permite la especialización de las clases, es decir,
en este caso la superclase hereda todas sus características a la
subclase.
Generalizaciones Se denota con un triángulo en el extremo del
vínculo correspondiente al elemento más general. La relación
puede interpretarse informalmente como “es un”.
• El diagrama indica que un taxi es una clase particular de autos,
con una patente (placa) extra y un código utilizado por la
empresa. Son heredados de la clase Auto todos los demás
atributos, como la patente oficial, el modelo, el motor, etc.
• Cuando una clase posee más de una subclase, pueden organizarse
en forma de árbol de la siguiente manera:
Ejemplo de diagrama de clases de una biblioteca:
Construyendo el diagrama de clases
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,
asignar multiplicidad.
3. Evaluar cada asociación para determinar si debe ser una agregación
y cada agregación para ver si se trata de una composición
4. Evaluar las clases para aplicar posibles generalizaciones (herencia).
¡Gracias!

Mais conteúdo relacionado

Mais procurados

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 ClaseGuillermo Díaz
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejerciciosWalter Chacon
 
Diagramas de clase.pptx
Diagramas de clase.pptxDiagramas de clase.pptx
Diagramas de clase.pptxCAMILORUALES1
 
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 componentesVictor Escamilla
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOGuillermo Hernandez Miranda
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...Jesús Navarro
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentesmarianela0393
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosFranklin Parrales Bravo
 

Mais procurados (20)

Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
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
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejercicios
 
Diagramas de clase.pptx
Diagramas de clase.pptxDiagramas de clase.pptx
Diagramas de clase.pptx
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Uml - Caso práctico
Uml - Caso prácticoUml - Caso práctico
Uml - Caso práctico
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 
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
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Uml presentacion
Uml   presentacionUml   presentacion
Uml presentacion
 
Documento vision
Documento visionDocumento vision
Documento vision
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentes
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Requisitos no Funcionales
Requisitos no FuncionalesRequisitos no Funcionales
Requisitos no Funcionales
 
Como Documentar Casos De Uso
Como Documentar Casos De UsoComo Documentar Casos De Uso
Como Documentar Casos De Uso
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientos
 

Semelhante a Diagrama de clases UML

Semelhante a Diagrama de clases UML (20)

Clases 2
Clases 2Clases 2
Clases 2
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
U1 s3 introducción a uml parte 1
U1 s3 introducción a uml parte 1U1 s3 introducción a uml parte 1
U1 s3 introducción a uml parte 1
 
Clase 17
Clase 17Clase 17
Clase 17
 
encuesta
encuestaencuesta
encuesta
 
D Iagramas U Ml
D Iagramas U MlD Iagramas U Ml
D Iagramas U Ml
 
D Iagramas U Ml
D Iagramas U MlD Iagramas U Ml
D Iagramas U Ml
 
UML.pptx
UML.pptxUML.pptx
UML.pptx
 
3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 
clases
clasesclases
clases
 
Uml
UmlUml
Uml
 
Diagrama de casos
Diagrama de casosDiagrama de casos
Diagrama de casos
 
Uml diagrama claseobjeto
Uml diagrama claseobjetoUml diagrama claseobjeto
Uml diagrama claseobjeto
 
D clase
D claseD clase
D clase
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Diagramadeclase 20090223
Diagramadeclase 20090223Diagramadeclase 20090223
Diagramadeclase 20090223
 
INTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIAS
 

Mais de José Antonio Sandoval Acosta

Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 

Mais de José Antonio Sandoval Acosta (20)

Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 
Receta de albóndigas de res
Receta de albóndigas de resReceta de albóndigas de res
Receta de albóndigas de res
 
Receta de pico de gallo
Receta de pico de galloReceta de pico de gallo
Receta de pico de gallo
 
Receta de fajitas y hongos portobello
Receta de fajitas y hongos portobelloReceta de fajitas y hongos portobello
Receta de fajitas y hongos portobello
 
Receta de berenjenas y calabaza italiana
Receta de berenjenas y calabaza italianaReceta de berenjenas y calabaza italiana
Receta de berenjenas y calabaza italiana
 

Último

Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfdaa100407
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfdarosario3d
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfMiSpotify
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdfRodrigo Cerón
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfLeonardoOa4
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdfRodrigo Cerón
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarjosuesj13
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfjuanrubenc78
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...AlexaRamirez39
 

Último (9)

Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdf
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdf
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizar
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdf
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
 

Diagrama de clases UML

  • 1. TECNOLÓGICO NACIONAL DE MÉXICO Centro Nacional de Investigación y Desarrollo Tecnológico MSI. José Antonio Sandoval Acosta Seminario Técnico Diagrama de Clases Febrero de 2023
  • 2. UML El lenguaje UML (en inglés, Unified Modeling Language) es un lenguaje para: • Especificación, • Visualización, • Construcción, y • Documentación de las partes de un sistema de software. Consiste en una colección de las mejores prácticas de ingeniería que han mostrado ser exitosas en el modelado de sistemas complejos.
  • 3. DIAGRAMA DE CLASES Las clases son dibujadas con un rectángulo, dividido en tres partes: • El nombre de la clase. • Los atributos. • Las operaciones correspondientes. • Opcionalmente las responsabilidades que cada clase tiene. Además, el diagrama contiene: • Las relaciones entre clases y características de esas relaciones.
  • 5. • El nombre de la clase debe ser lo menos ambiguo posible, usualmente un sustantivo. • Atributos: Los atributos describen las características de los objetos. • Poseen un tipo, que nos indica qué clase de atributo es. Si bien existen ciertos tipos primitivos, como enteros, booleanos y reales, cualquier tipo puede ser usado, incluso otras clases. Sintaxis: nombre<:tipo> <=valor_inicial > ubicacion : Cadena responsable : Cadena CajeroAutomatico
  • 6. La restricción más importante es que los atributos son generalmente visibles únicamente por la clase que los contiene.
  • 7. Las operaciones son utilizadas para manipular los atributos o realizar consultas. • La sintaxis para describir una operación es la siguiente: nombre_operación(<parámetros>) <:tipo_resultado> Cuenta + accountNum:int - name:string ~ retiro():double
  • 8. • Las responsabilidades son las obligaciones de una clase y son definidas por el usuario. • Si bien, existe un compartimiento dentro de la clase para la especificación de las responsabilidades, éstas son de carácter opcional.
  • 9. • Dependiendo del nivel de detalle que queremos alcanzar en el modelo, se pueden obviar algunas de las divisiones del gráfico de clases. • Esto permite simplificar el diagrama completo, de acuerdo al nivel de abstracción necesario. Puede utilizarse, por ejemplo
  • 10. Notas en el diagrama de clases • A los gráficos de clases se les puede agregar notas o comentarios sobre algún aspecto interesante de la clase. • Estas notas pueden incluir observaciones sobre la clase, alguna restricción de uso, e incluso el pseudo-código de algunas operaciones. • Se grafican por medio de un rectángulo con la esquina superior derecha plegada, como si fuera una hoja, y se une con una línea al elemento de la clase al cual corresponde la nota.
  • 12. Las relaciones más importantes entre clases son: Asociación Herencia Agregación Composición Realización Dependencia
  • 13. Asociación (Conexión entre clases) • Una asociación es una conexión entre clases. Significa que los objetos de dos clases tendrán un vínculo bidireccional en común, el cual puede interpretarse como “para cada X existe un Y”. • Se representa por medio de una línea continua entre dos clases.
  • 14. Multiplicidad • Se utiliza multiplicidad cuando no necesariamente los vínculos entre objetos son de uno a uno. • Se especifica en cada extremo del vínculo, a través de un rango, cuántos objetos pueden estar vinculados.
  • 15. Rangos • Algunos ejemplos de rangos son los siguientes: Cuando no se especifica ningún rango, se asume el valor uno (1) por defecto. Puede agregarse una flecha a la línea, indicando la dirección del vínculo:
  • 16. • Supongamos que los requerimientos para un sistema de cajero automático precisan que desde una transacción del cajero se pueda recuperar la información de la cuenta del cliente. • 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. 1 0..*
  • 17. Agregaciones (Posee/contiene) • Agregación es un caso especial de asociación. Indica que una o más clases (clases componentes) forman parte de otra clase (clase agregada). • Se denota con un rombo en uno de los extremos del vínculo, aquél que corresponde a la clase agregada. • Puede interpretarse como “posee (o contiene) un”.
  • 18. Composición • En la composición el rombo es relleno con color e implica que si la clase compuesta se elimina, las clases que lo componen también serán eliminadas.
  • 19. Generalizaciones (Herencia/Especificación/Especialización) • La generalización es la relación entre una clase más general y un clase más específica. • La clase más especifica (denominada subclase o clase hija) es consistente con la clase más general (denominada superclase o clase padre), y contiene información adicional. • La generalización permite la especialización de las clases, es decir, en este caso la superclase hereda todas sus características a la subclase.
  • 20. Generalizaciones Se denota con un triángulo en el extremo del vínculo correspondiente al elemento más general. La relación puede interpretarse informalmente como “es un”. • El diagrama indica que un taxi es una clase particular de autos, con una patente (placa) extra y un código utilizado por la empresa. Son heredados de la clase Auto todos los demás atributos, como la patente oficial, el modelo, el motor, etc.
  • 21. • Cuando una clase posee más de una subclase, pueden organizarse en forma de árbol de la siguiente manera:
  • 22. Ejemplo de diagrama de clases de una biblioteca:
  • 23. Construyendo el diagrama de clases 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, asignar multiplicidad. 3. Evaluar cada asociación para determinar si debe ser una agregación y cada agregación para ver si se trata de una composición 4. Evaluar las clases para aplicar posibles generalizaciones (herencia).