SlideShare uma empresa Scribd logo
1 de 19
Diseño de clases Ing. Rolando Steep Quezada Martínez [email_address] Programación Básica en Java y Programación Orientada a Objetos
Diagrama de Clases ,[object Object],Los diagramas de clases proporcionan una perspectiva estática del sistema (representan su diseño estructural)
Relaciones ,[object Object],[object Object],[object Object],[object Object],[object Object]
Asociación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Asociación binaria
Asociación reflexiva
Asociación n-aria
Asociación de agregación
Asociación de composición
Asociación de dependencia
Asociación de generalización/especialización generalización especialización
Navegación de las asociaciones
Paquetes UML Sistema de Archivos Netbeans Definición de una Clase
La sentencia import
La sentencia import static (jdk 1.5)
Resumen ,[object Object],[object Object],[object Object],[object Object],[object Object]
Práctica 4 ,[object Object],[object Object],[object Object]
 
 

Mais conteúdo relacionado

Mais procurados

1 2 2 Relaciones Entre Clases
1 2 2 Relaciones Entre Clases1 2 2 Relaciones Entre Clases
1 2 2 Relaciones Entre Clases
UVM
 
Actividad 1 practica redes inalambricas (1)
Actividad 1 practica redes inalambricas (1)Actividad 1 practica redes inalambricas (1)
Actividad 1 practica redes inalambricas (1)
dianamarcela0611
 
Interoperabilidad en redes
Interoperabilidad en redesInteroperabilidad en redes
Interoperabilidad en redes
Jess Ortiz
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
innovalabcun
 
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
 

Mais procurados (20)

1 2 2 Relaciones Entre Clases
1 2 2 Relaciones Entre Clases1 2 2 Relaciones Entre Clases
1 2 2 Relaciones Entre Clases
 
Actividad 1 practica redes inalambricas (1)
Actividad 1 practica redes inalambricas (1)Actividad 1 practica redes inalambricas (1)
Actividad 1 practica redes inalambricas (1)
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
24 Ejercicios Subnetting
24 Ejercicios Subnetting24 Ejercicios Subnetting
24 Ejercicios Subnetting
 
Computación Grid
Computación GridComputación Grid
Computación Grid
 
Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemas
 
Interoperabilidad en redes
Interoperabilidad en redesInteroperabilidad en redes
Interoperabilidad en redes
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeat
 
Estándares inalambricos
Estándares inalambricosEstándares inalambricos
Estándares inalambricos
 
Eventos en Java
Eventos en JavaEventos en Java
Eventos en Java
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
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
 
5.1 Listas de control de acceso ACL
5.1 Listas de control de acceso   ACL5.1 Listas de control de acceso   ACL
5.1 Listas de control de acceso ACL
 
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
 
Framework
FrameworkFramework
Framework
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 

Semelhante a Diseño de Clases (20)

UML.pptx
UML.pptxUML.pptx
UML.pptx
 
Clases
ClasesClases
Clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Clase y-objeto
Clase y-objetoClase y-objeto
Clase y-objeto
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
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
 
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
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
CLASE1-UML.ppt
CLASE1-UML.pptCLASE1-UML.ppt
CLASE1-UML.ppt
 
Concepto diagramas de clases
Concepto diagramas de clasesConcepto diagramas de clases
Concepto diagramas de clases
 
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
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Clases
ClasesClases
Clases
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Diagramasuml
DiagramasumlDiagramasuml
Diagramasuml
 
Diagramas Uml
Diagramas UmlDiagramas Uml
Diagramas Uml
 

Mais de Rolando Steep Quezada Martinez (11)

Multitarea
MultitareaMultitarea
Multitarea
 
Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Colecciones
ColeccionesColecciones
Colecciones
 
Manejo De Excepciones
Manejo De ExcepcionesManejo De Excepciones
Manejo De Excepciones
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Networking
NetworkingNetworking
Networking
 
Arreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de FlujoArreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de Flujo
 
Tipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de JavaTipos Primitivos y Elementos Léxicos de Java
Tipos Primitivos y Elementos Léxicos de Java
 
Módulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología JavaMódulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología Java
 
Manejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/SalidaManejo Avanzado de Flujos de Entrada/Salida
Manejo Avanzado de Flujos de Entrada/Salida
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Diseño de Clases

Notas do Editor

  1. Objetivos Entender e implementar las relaciones presentes en un Diagrama de Clases. Reconocer la diferentes formas de asociación entre clases. Definir la navegabilidad unidireccional en una asociación.
  2. Diagrama de Clases Análisis y diseño con el Diagrama de Clases El Diagrama de Clase es el diagrama principal de análisis y diseño para un sistema. En él se especifica la estructura de clases del sistema, con relaciones entre clases y estructuras de herencia. Su objetivo varia en análisis y diseño: Durante el análisis del sistema, el diagrama se desarrolla buscando una solución ideal. Durante el diseño, se usa el mismo diagrama, y se modifica para satisfacer los detalles de las implementaciones. El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones. El mundo real puede ser visto desde abstracciones diferentes (subjetividad)
  3. Relaciones Una relación en un diagrama de clases, se representa mediante una línea que une dos o más clases. La línea puede ir acompañada de diferentes tipos de adornos que definen su semántica y características. Las relaciones más comunes entre las clases presentes en un diagrama estático pueden ser: asociación (binaria o n-aria), agregación, generalización, dependencia y composición. Los elementos adicionales que pueden aparecer en la representación de una relación son: Rol : Identifica con nombres a los elementos que aparecen en los extremos de la línea que denota la relación, dicho nombre describe la semántica que tiene la relación en el sentido indicado. Por ejemplo, la asociación entre Persona que Trabaja Para una Empresa , recibe el nombre de trabajador y empleador como rol en ese sentido. Multiplicidad : Indica la cardinalidad de la relación. En el ejemplo se utilizan 1 , 1 ..* , 5 , * , como indicadores de multiplicidad. Relación Rol Multiplicidad
  4. 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. Puede determinarse por la especificación de multiplicidad (mínima...máxima): 1 Uno y sólo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos n exactamente n (entro natural) 0..* Cero o muchos 1..* Uno o muchos (al menos uno) Cuando la multiplicidad mínima es 0, la relación es opcional. Una multiplicidad mínima mayor o igual que 1 establece una relación obligatoria.
  5. Asociación binaria Una asociación binaria se representa mediante una línea sólida que une dos clases, se trata de una relación entre las dos clases no muy fuerte, es decir, no se exige dependencia existencial ni encapsulamiento.
  6. Asociación reflexiva Una asociación binaria se representa mediante una línea sólida que recae sobre la misma clase de forma recursiva, se trata de una relación no muy fuerte, es decir, no se exige dependencia existencial ni encapsulamiento.
  7. Asociación n-aria Es una forma de expresar una relación entre tres o más clases. La clase de asociación es dependiente en existencia de las otras clase.
  8. Asociación de agregación La agregación representa una relación – débil – parte de entre objetos. En UML se proporciona una escasa caracterización de la agregación. Esta relación puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes. Es un tipo de relación débil, el objeto agregado puede existir de forma independiente. Las partes pueden forma parte de distintos agregados. Gráficamente, se muestra con un rombo vacío en uno de los extremos.
  9. Asociación de composición La composición representa una relación – fuerte – parte de entre objetos. En UML se proporciona una escasa caracterización de la composición. Esta relación puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto compuesto y cada uno de sus objetos componentes. Es un tipo de relación fuerte, el objeto agregado no puede existir de forma independiente. Agregación disjunta y estricta: Las partes sólo existen asociadas al compuesto (sólo se accede a ellas a través del compuesto). Gráficamente, se muestra con un rombo lleno en uno de los extremos (compuesto).
  10. Asociación de dependencia Relación (más débil que una relación) que muestra la relación entre un cliente y el proveedor de un servicio usado por el cliente: Cliente es el objeto que solicita un servicio. Servidor es el objeto que provee el servicio solicitado. Gráficamente, la dependencia se muestra como una línea discontinua con una punta de flecha que apunta del cliente al proveedor. Si un paquete A depende de un paquete B , entonces hay una o más clases en el paquete A que inician comunicación con una o más clases públicas del paquete B . Ejemplo: Un objeto de la clase A envía un mensaje a un objeto de la clase B. Un objeto de la clase A crea un objeto de la clase B. Un objeto de la clase A recibe un mensaje con un objeto de la clase B como argumento aun sin tenerlo como atributo.
  11. Asociación de generalización/especialización Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases, se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización. La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general. Los 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 Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas. Generalización y Especialización no son operaciones reflexivas ni simétricas pero sí transitivas. La especialización es una técnica muy eficaz para la extensión y reutilización. Las subclases heredan características de las clases de las que se derivan y añaden características específicas que las diferencian.
  12. Navegación de las asociaciones Aunque las asociaciones suelen ser bidireccionales (se pueden recorrer en ambos sentidos), en ocasiones es deseable hacerlas unidireccionales (restringir su navegación en un único sentido). Gráficamente, cuando la asociación es unidireccional, la línea termina en una punta de flecha que indica el sentido de la asociación.
  13. Paquetes Definen contextos de denominación para evitar colisión de nombres. Sirven para definir bibliotecas de clases e interfaces (reutilización: no volver a inventar la rueda). Permiten organizar el código de una gran aplicación. Un paquete determina un subdirectorio del disco. Las declaraciones de los paquetes tienen que estar al principio de los ficheros fuente. Sólo se permite la declaración de un paquete en cada fichero fuente. Los nombres de los paquetes están jerarquizados separados por puntos. La palabra reservada package debe aparecer en la primera línea del fichero fuente. Por lo general el nombre de los elementos de un paquete es todo en minúsculas. El nombre de las clases empieza en mayúscula y la primera letra de cada palabra añadida al nombre también. Los paquetes pueden anidarse (define una jerarquía) paquete.subpaquete.subpaquete.clase Convención para el nombrado de paquetes (para conseguir nombres únicos): dominio.empresa.departamento.proyecto
  14. La sentencia import Por defecto las clases sólo se pueden comunicar con clases del mismo paquete donde se encuentran definidas. import permite acceder a una clase declarada en un paquete distinto del actual. Indica al compilador dónde encontrar las clases. Debe preceder a todas las declaraciones de las clases. Para importar clases de un paquete se usa el comando import . Se puede importar una clase individual: import java.util.Date ; o bien, se puede importar las clases declaradas públicas de un paquete completo, utilizando un arterisco (*) para reemplazar los nombres de clase individuales: import java.util.* ;
  15. La sentencia import static (jdk 1.5) Los miembros estáticos (atributos o métodos) de una clase pueden ser accedidos sin necesidad de una instancia previa de la misma. import static permite incorporar como propio cualquier miembro estático; a nivel de bytes codes no existe relación de uso, se libera la dependencia con la clase que define el miembro estático. La importaciones pueden ser por miembro: import static java.lang.Math.pow ; O por clase: import static java.lang.Math.* ;
  16. Práctica 4: Implementar las clases y relaciones de un Diagrama de Clases Objetivo Crear el código Java para la implementación de un Diagrama de Clases, respetando sus asociaciones, dependencia y jerarquía. Caso de Estudio 1 A continuación se muestra el Diagrama de clases resultante del análisis y diseño del área de Gestión Académica de un centro de educación superior. Escribir en Java las clases necesarias para su implementación.
  17. Caso de Estudio 2 A continuación se muestra el Diagrama de clases resultante del análisis y diseño de las áreas de Ventas, Compras y Personal de la empresa XYZ . Tenga en cuenta la agrupación por paquetes: xyz.compras xyz.ventas xyz.personal