SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
DISEÑO OOP EN JAVA
DIAGRAMA DE CLASES
Y CASOS DE USO
Mg. Richard E. Mendoza G.
Describe la definición de cada uno de los posibles objetos
pertenecientes al sistema. Usamos el diagrama de clases para
modelar la estructura estática de un sistema. Muestra las clases del
sistema, sus atributos, operaciones (o métodos), y las relaciones
entre los objetos
DIAGRAMA DE CLASES
Clases: Escriben un conjunto de objetos con
propiedades y comportamientos comunes.
Relaciones: Enlaces entre los distintos
elementos de los diagramas.
Interfaces: Conjunto de operaciones de una
clase o paquete visibles desde otras clases o
paquetes.
Una clase en lenguaje de programación Java se puede entender
como un prototipo que define las variables y los métodos comunes
a un cierto tipo de instancias.
Clase
Nombre con
que se
identifica la
clase dentro
del sistema
NOMBRE
ATRIBUTOS
Son el conjunto
de atributos
que describen
la clase, estos
dependen del
nivel de
visibilidad
establecido
OPERACIONES
Representan
las
operaciones
que mas
tarde se
convierten en
métodos y se
representan
una a la
vez, una por
línea
Operaciones: Visibilidad+nombre+parametros:tipo devuelto.
//EN JAVA
class Persona{}
#EN PYTHON
class Persona:
En un diagrama de clases, un atributo tiene al menos un nombre.
El tipo de atributo se puede especificar después del nombre
usando: Tipo.
Atributos
//EN JAVA
class Persona{
String nombre = "";
}}
#EN PYTHON
class Persona:
nombre=""
Tipo de datos: Debemos especificar el
conjunto de posibles valores que puede
tomar cada atributo. UML nos proporciona
los siguientes tipos de datos primitivos:
Integer, String, Boolean y UnlimitedNatural.
En un diagrama de clases, un atributo tiene al menos un nombre y
tipo de atributo. El nombre de la operación va seguido de una lista
de parámetros entre paréntesis.
Operaciones
//EN JAVA
class Persona{
String nombre = "";
void caminar() {
System.out.println("Caminar
");
}}
#EN PYTHON
class Persona:
nombre=""
def caminar():
print("caminar")
Firma de los métodos: Los métodos pueden
recibir parámetros y devolver un resultado. .
Valores predeterminados: Es posible dar
valores predeterminados a los atributos y a
los parámetros de los métodos.
Atributos y métodos de clases: Se
representan igual que los atributos de los
objetos, pero subrayados.
Las asociaciones sirven para representar los vínculos que existen
entre objetos. La asociación tiene un nombre, y se representa
mediante una línea que une las dos clases vinculadas.
Asociaciones entre Objetos
//EN JAVA
class Persona{
String nombre = "";
void caminar() {
System.out.println("Caminar
");
}}
#EN PYTHON
class Persona:
nombre=""
def caminar():
print("caminar")
Importante: Para señalar el
sentido de lectura del nombre de
la asociación con respecto al
nombre de las clases, éste puede
precederse del signo < o seguirse
del signo >.
Los extremos de una asociación
también pueden recibir un
nombre, que representará la
función que desempeñan en la
asociación los objetos.
En las funciones podemos
especificar su tipo de
encapsulamiento.
Las cardinalidades se ponen en los extremos de la asociación. La
cardinalidad situada a la derecha indica a cuántos objetos de la
clase de la derecha está vinculado un objeto de la clase de la
izquierda.
Cardinalidad de la Asociación
Importante: Las cardinalidades las
podemos representar mediante
un valor o con un intervalo,
especificando la cardinalidad
mínima y la máxima. Tenemos las
siguientes opciones, con su
especificación:
0..1 Cero o una instancia
1 Una instancia
* De cero a varias instancias
1..* De una a varias instancias
M..N Entre M y N instancias
N N instancias
• Bidireccional con multiplicidad 0..1 o 1
Aunque las asociaciones suelen ser bidireccionales (se pueden
recorrer en ambos sentidos.
Tipos de Asociaciones
public class Cliente
{
private String nombre;
public CuentaCliente cuenta;
}
public class CuentaCliente
{
private double saldo;
public Cliente duenio;
}
• Direccional con multiplicidad 0..1 o 1
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:
Tipos de Asociaciones
public class Cliente
{
private String nombre;
public Clave clave;
}
public class Clave
{
private int codigo;
}
• Bidireccional con multiplicidad *
Tipos de Asociaciones
• Direccional con multiplicidad *
Tipos de Asociaciones
• Con mas de una relación
Tipos de Asociaciones
• Asociación con Recursividad
Tipos de Asociaciones
La Composición o Composición fuerte es una relación entre clases
similar a la agregación, pero en la que las clases que componen a la
principal no tienen sentido sin dicha clase principal.
Composición
Se representa mediante un rectángulo de color negro
Agregación
Una clase puede ser puede estar relacionada por un conjunto de
clases que la representen y, sin las cuales, no tenga sentido. A esta
relación se le llama Agregación o Composición débil, y se
representa mediante un rombo blanco
Herencia
Como se ha dicho, las instancias de una clase son también
instancias de su superclase. Por consiguiente, heredan los
atributos y métodos definidos en la superclase, además de los
atributos y métodos introducidos en la clase.
Interfaz
Una interfaz es una clase abstracta, es decir, una clase que no tiene
atributos, y sus métodos no contienen ninguna implementación.
Las interfaces se utilizan
para especificar los
métodos de una clase. Sólo
contiene las cabeceras de
éstos, no su
implementación.
Diagrama de Casos de Uso
El diagrama de casos de uso muestra
los casos de uso representados en
forma de elipses y a los actores en
forma de personajes. También indica
las relaciones de comunicación que
los vincula.
El sistema que responde al caso de
uso puede representarse mediante
un rectángulo en cuyo interior
aparece el caso.
Actor
Un usuario externo al sistema puede
desempeñar diferentes funciones en
relación con el sistema. Una pareja
(usuario, función) constituye un
actor específico designado en UML
únicamente por el nombre de la
función.
Se diferencian dos categorías de
actores:
• Los actores primarios son los que
inician el caso de uso.
• Los actores secundarios son los
que participan en el caso de uso.
Casos de Uso
Los casos de uso describen en forma de
acciones y reacciones el
comportamiento del sistema, estudiado
desde el punto de vista del usuario.
Definen los límites del sistema y sus
relaciones con el entorno.
Los casos de uso explicitan los requisitos
funcionales del sistema relativos a uno
de los objetivos del usuario. Éstos se
denominan también, de manera más
precisa, casos de uso con objetivo
usuario.
Relación de Inclusión
La relación de inclusión sirve para
enriquecer un caso de uso con otro. El
caso de uso incluido existe únicamente
con ese propósito, ya que no responde a
un objetivo de un actor primario. Estos
casos de uso son subfunciones.
La inclusión sirve para compartir una
funcionalidad común entre varios casos
de uso.
En el diagrama de casos de uso estas
relaciones se representan mediante una
flecha discontinua acompañada del
estereotipo <<include>>.
Relación de Extensión
Al igual que la relación de inclusión, la
relación de extensión enriquece un caso
de uso mediante un caso de uso
subfunción. El enriquecimiento es
análogo al de la relación de inclusión, no
obstante, es opcional. Como ocurre con
la inclusión, la extensión sirve para
estructurar un caso de uso o para
compartir un caso de uso de subfunción.
En el diagrama de casos de uso, esta
relación se representa mediante una
flecha discontinua acompañada del
estereotipo <<extend>>.
Universidad
-NIT
+Crearuniversidad()
+Modificar()
+Buscar()
Profesor
-Id profesor
+Crear()
+Modificar()
+Eliminar()
Tiene 1..*
Estudiante
-Id estudiante
+Crear()
+Modificar()
+Eliminar()
Asignatura
-Id asignatura
+Crear()
+Modificar()
+Eliminar()
Tiene 1..*
Tiene 1..*
Ejemplo Diagrama de Clases
Ejemplo de Casos de Uso
Una biblioteca tiene copias de libros. Estos últimos se caracterizan por su
nombre, tipo (ingeniería, literatura, informática, historia ...), editorial, año y
autor.
• Los autores se caracterizan por su nombre, nacionalidad y fecha de
nacimiento.
• Cada copia tiene un identificador, y puede estar en la biblioteca,
prestada, con retraso o en reparación.
• Los lectores pueden tener un máximo de 3 libros en préstamo.
• Cada libro se presta un máximo de 30 días, y por cada día de retraso, se
impone una “multa” de dos días sin posibilidad de coger un nuevo libro.
Realiza un diagrama de clases y añade los métodos necesarios para realizar
el préstamo y devolución de libros.
Realiza un diagrama de casos de usos.
Ejercicio Completo
Ejemplo 1
Ejercicio Completo
Se desea hacer un sistema para una agencia de alquiler de autos. Para determinar los requerimientos
que se entrevistó al dueño de la agencia, al empleado de atención al público y al encargado de autos.
El dueño de la agencia que fue quien impulso el proyecto, está especialmente interesado en tener
control sobre los gastos de la empresa. Le interesa poder obtener del sistema, información del tipo
en un intervalo de tiempo y todas las reparaciones realizadas por un monto superior al que el
imponga. El Empleado de Atención al Público nos contó que por cada nuevo alquiler actualiza la ficha
registro del cliente En caso de tratarse de un nuevo cliente abre una nueva ficha con los siguientes
datos: apellido y nombre, dirección personal, localidad, provincia, tipo y número de documento,
profesión y número de licencia de conductor De acuerdo con las restricciones que impone el cliente
busca si existe un vehículo disponible Una vez que el cliente seleccionó un coche actualizará la ficha
con el nuevo alquiler fecha del alquiler, cantidad de días por los que se alquila, importe del alquiler y
kilometraje del vehículo al momento de ser alquilado Debe ser cuidadoso en no autorizar alquileres a
clientes que no devolvieron en término o en buen estado el vehículo que se les presto.
El Encargado de Autos es el único autorizado a actualizar la ficha de registro de cada auto Cada
vehículo tiene su propia información: código, descripción, marca, modelo y estado (alquilado,
disponible para alquilar o en reparación) Por cada vehículo lleva nota de todas las reparaciones que
recibió. De cada reparación mantiene la fecha, motivo costo de la reparación y cantidad de días que
el auto no estuvo disponible También atiende a los clientes que traen los vehículos. Controla que el
mismo se entregue en buen estado y en buen término, si no es así le informa al encargado de
atención al público para que no autorice nuevos alquileres a ese cliente.
Ejercicio Completo
Clases Atributos Tipo Dato Métodos
Ejercicio Completo
Plantilla Caso de Uso
Diagrama de Casos de Uso
“The task of the software
development team is to engineer
the ilusión of simplicity".
Grady Booch

Más contenido relacionado

La actualidad más candente (19)

Uml diagrama de clases
Uml  diagrama de clasesUml  diagrama de clases
Uml diagrama de clases
 
Diagramas del uml
Diagramas del umlDiagramas del uml
Diagramas del uml
 
INTRODUCCION UML
INTRODUCCION UMLINTRODUCCION UML
INTRODUCCION UML
 
Marifer diapositivas uml roisbel
Marifer diapositivas uml roisbelMarifer diapositivas uml roisbel
Marifer diapositivas uml roisbel
 
Diagramas de clases
Diagramas de clasesDiagramas de clases
Diagramas de clases
 
Mis diapositivas uml
Mis diapositivas umlMis diapositivas uml
Mis diapositivas uml
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Elementos de diagramas de objetos
Elementos de diagramas de objetosElementos de diagramas de objetos
Elementos de diagramas de objetos
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diagramas Uml
Diagramas UmlDiagramas Uml
Diagramas Uml
 
Introducion uml
Introducion umlIntroducion uml
Introducion uml
 
Diag de clases
Diag de clasesDiag de clases
Diag de clases
 
Uml java
Uml javaUml java
Uml java
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en java
 
Clases
ClasesClases
Clases
 
Tema2 introduccion al uml
Tema2 introduccion al umlTema2 introduccion al uml
Tema2 introduccion al uml
 
Diagrama entidad relacion
Diagrama entidad  relacionDiagrama entidad  relacion
Diagrama entidad relacion
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 

Similar a Diseño OOP en Java: Diagrama de clases y casos de uso para una agencia de alquiler de autos

Similar a Diseño OOP en Java: Diagrama de clases y casos de uso para una agencia de alquiler de autos (20)

Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de 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)
 
Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
Clases 2
Clases 2Clases 2
Clases 2
 
Clases
ClasesClases
Clases
 
Diagrama de clases y objetos
Diagrama de clases y objetosDiagrama de clases y objetos
Diagrama de clases y objetos
 
Diagramas de clase.pptx
Diagramas de clase.pptxDiagramas de clase.pptx
Diagramas de clase.pptx
 
lenguaje de modelado unificado para ingenieros.ppt
lenguaje  de modelado unificado para ingenieros.pptlenguaje  de modelado unificado para ingenieros.ppt
lenguaje de modelado unificado para ingenieros.ppt
 
Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
 
Uml
UmlUml
Uml
 
requerimientos-tipos-y-definiciones
requerimientos-tipos-y-definiciones requerimientos-tipos-y-definiciones
requerimientos-tipos-y-definiciones
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
 
UML
UMLUML
UML
 
encuesta
encuestaencuesta
encuesta
 
UML.pptx
UML.pptxUML.pptx
UML.pptx
 
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
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Definición y concepto de uml
Definición y concepto de umlDefinición y concepto de uml
Definición y concepto de uml
 

Más de Richard Eliseo Mendoza Gafaro

PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIRichard Eliseo Mendoza Gafaro
 

Más de Richard Eliseo Mendoza Gafaro (20)

CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEICUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
 
Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1
 
MANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASEMANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASE
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
 
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UXPARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
 
Explicación cadena de valor
Explicación cadena de valorExplicación cadena de valor
Explicación cadena de valor
 
MANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEBMANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEB
 
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCHMANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
 
CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2
 
CUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3DCUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3D
 
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOSMANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
CLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUDCLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUD
 
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIOCASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
 
MATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNAMATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNA
 
PREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTASPREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTAS
 

Último

Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 

Último (20)

Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 

Diseño OOP en Java: Diagrama de clases y casos de uso para una agencia de alquiler de autos

  • 1. DISEÑO OOP EN JAVA DIAGRAMA DE CLASES Y CASOS DE USO Mg. Richard E. Mendoza G.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Describe la definición de cada uno de los posibles objetos pertenecientes al sistema. Usamos el diagrama de clases para modelar la estructura estática de un sistema. Muestra las clases del sistema, sus atributos, operaciones (o métodos), y las relaciones entre los objetos DIAGRAMA DE CLASES Clases: Escriben un conjunto de objetos con propiedades y comportamientos comunes. Relaciones: Enlaces entre los distintos elementos de los diagramas. Interfaces: Conjunto de operaciones de una clase o paquete visibles desde otras clases o paquetes.
  • 8. Una clase en lenguaje de programación Java se puede entender como un prototipo que define las variables y los métodos comunes a un cierto tipo de instancias. Clase Nombre con que se identifica la clase dentro del sistema NOMBRE ATRIBUTOS Son el conjunto de atributos que describen la clase, estos dependen del nivel de visibilidad establecido OPERACIONES Representan las operaciones que mas tarde se convierten en métodos y se representan una a la vez, una por línea Operaciones: Visibilidad+nombre+parametros:tipo devuelto. //EN JAVA class Persona{} #EN PYTHON class Persona:
  • 9. En un diagrama de clases, un atributo tiene al menos un nombre. El tipo de atributo se puede especificar después del nombre usando: Tipo. Atributos //EN JAVA class Persona{ String nombre = ""; }} #EN PYTHON class Persona: nombre="" Tipo de datos: Debemos especificar el conjunto de posibles valores que puede tomar cada atributo. UML nos proporciona los siguientes tipos de datos primitivos: Integer, String, Boolean y UnlimitedNatural.
  • 10. En un diagrama de clases, un atributo tiene al menos un nombre y tipo de atributo. El nombre de la operación va seguido de una lista de parámetros entre paréntesis. Operaciones //EN JAVA class Persona{ String nombre = ""; void caminar() { System.out.println("Caminar "); }} #EN PYTHON class Persona: nombre="" def caminar(): print("caminar") Firma de los métodos: Los métodos pueden recibir parámetros y devolver un resultado. . Valores predeterminados: Es posible dar valores predeterminados a los atributos y a los parámetros de los métodos. Atributos y métodos de clases: Se representan igual que los atributos de los objetos, pero subrayados.
  • 11. Las asociaciones sirven para representar los vínculos que existen entre objetos. La asociación tiene un nombre, y se representa mediante una línea que une las dos clases vinculadas. Asociaciones entre Objetos //EN JAVA class Persona{ String nombre = ""; void caminar() { System.out.println("Caminar "); }} #EN PYTHON class Persona: nombre="" def caminar(): print("caminar") Importante: Para señalar el sentido de lectura del nombre de la asociación con respecto al nombre de las clases, éste puede precederse del signo < o seguirse del signo >. Los extremos de una asociación también pueden recibir un nombre, que representará la función que desempeñan en la asociación los objetos. En las funciones podemos especificar su tipo de encapsulamiento.
  • 12. Las cardinalidades se ponen en los extremos de la asociación. La cardinalidad situada a la derecha indica a cuántos objetos de la clase de la derecha está vinculado un objeto de la clase de la izquierda. Cardinalidad de la Asociación Importante: Las cardinalidades las podemos representar mediante un valor o con un intervalo, especificando la cardinalidad mínima y la máxima. Tenemos las siguientes opciones, con su especificación: 0..1 Cero o una instancia 1 Una instancia * De cero a varias instancias 1..* De una a varias instancias M..N Entre M y N instancias N N instancias
  • 13. • Bidireccional con multiplicidad 0..1 o 1 Aunque las asociaciones suelen ser bidireccionales (se pueden recorrer en ambos sentidos. Tipos de Asociaciones public class Cliente { private String nombre; public CuentaCliente cuenta; } public class CuentaCliente { private double saldo; public Cliente duenio; }
  • 14. • Direccional con multiplicidad 0..1 o 1 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: Tipos de Asociaciones public class Cliente { private String nombre; public Clave clave; } public class Clave { private int codigo; }
  • 15. • Bidireccional con multiplicidad * Tipos de Asociaciones
  • 16. • Direccional con multiplicidad * Tipos de Asociaciones
  • 17. • Con mas de una relación Tipos de Asociaciones
  • 18. • Asociación con Recursividad Tipos de Asociaciones
  • 19. La Composición o Composición fuerte es una relación entre clases similar a la agregación, pero en la que las clases que componen a la principal no tienen sentido sin dicha clase principal. Composición Se representa mediante un rectángulo de color negro
  • 20. Agregación Una clase puede ser puede estar relacionada por un conjunto de clases que la representen y, sin las cuales, no tenga sentido. A esta relación se le llama Agregación o Composición débil, y se representa mediante un rombo blanco
  • 21. Herencia Como se ha dicho, las instancias de una clase son también instancias de su superclase. Por consiguiente, heredan los atributos y métodos definidos en la superclase, además de los atributos y métodos introducidos en la clase.
  • 22. Interfaz Una interfaz es una clase abstracta, es decir, una clase que no tiene atributos, y sus métodos no contienen ninguna implementación. Las interfaces se utilizan para especificar los métodos de una clase. Sólo contiene las cabeceras de éstos, no su implementación.
  • 23. Diagrama de Casos de Uso El diagrama de casos de uso muestra los casos de uso representados en forma de elipses y a los actores en forma de personajes. También indica las relaciones de comunicación que los vincula. El sistema que responde al caso de uso puede representarse mediante un rectángulo en cuyo interior aparece el caso.
  • 24. Actor Un usuario externo al sistema puede desempeñar diferentes funciones en relación con el sistema. Una pareja (usuario, función) constituye un actor específico designado en UML únicamente por el nombre de la función. Se diferencian dos categorías de actores: • Los actores primarios son los que inician el caso de uso. • Los actores secundarios son los que participan en el caso de uso.
  • 25. Casos de Uso Los casos de uso describen en forma de acciones y reacciones el comportamiento del sistema, estudiado desde el punto de vista del usuario. Definen los límites del sistema y sus relaciones con el entorno. Los casos de uso explicitan los requisitos funcionales del sistema relativos a uno de los objetivos del usuario. Éstos se denominan también, de manera más precisa, casos de uso con objetivo usuario.
  • 26. Relación de Inclusión La relación de inclusión sirve para enriquecer un caso de uso con otro. El caso de uso incluido existe únicamente con ese propósito, ya que no responde a un objetivo de un actor primario. Estos casos de uso son subfunciones. La inclusión sirve para compartir una funcionalidad común entre varios casos de uso. En el diagrama de casos de uso estas relaciones se representan mediante una flecha discontinua acompañada del estereotipo <<include>>.
  • 27. Relación de Extensión Al igual que la relación de inclusión, la relación de extensión enriquece un caso de uso mediante un caso de uso subfunción. El enriquecimiento es análogo al de la relación de inclusión, no obstante, es opcional. Como ocurre con la inclusión, la extensión sirve para estructurar un caso de uso o para compartir un caso de uso de subfunción. En el diagrama de casos de uso, esta relación se representa mediante una flecha discontinua acompañada del estereotipo <<extend>>.
  • 28. Universidad -NIT +Crearuniversidad() +Modificar() +Buscar() Profesor -Id profesor +Crear() +Modificar() +Eliminar() Tiene 1..* Estudiante -Id estudiante +Crear() +Modificar() +Eliminar() Asignatura -Id asignatura +Crear() +Modificar() +Eliminar() Tiene 1..* Tiene 1..* Ejemplo Diagrama de Clases
  • 30. Una biblioteca tiene copias de libros. Estos últimos se caracterizan por su nombre, tipo (ingeniería, literatura, informática, historia ...), editorial, año y autor. • Los autores se caracterizan por su nombre, nacionalidad y fecha de nacimiento. • Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en reparación. • Los lectores pueden tener un máximo de 3 libros en préstamo. • Cada libro se presta un máximo de 30 días, y por cada día de retraso, se impone una “multa” de dos días sin posibilidad de coger un nuevo libro. Realiza un diagrama de clases y añade los métodos necesarios para realizar el préstamo y devolución de libros. Realiza un diagrama de casos de usos. Ejercicio Completo
  • 32. Ejercicio Completo Se desea hacer un sistema para una agencia de alquiler de autos. Para determinar los requerimientos que se entrevistó al dueño de la agencia, al empleado de atención al público y al encargado de autos. El dueño de la agencia que fue quien impulso el proyecto, está especialmente interesado en tener control sobre los gastos de la empresa. Le interesa poder obtener del sistema, información del tipo en un intervalo de tiempo y todas las reparaciones realizadas por un monto superior al que el imponga. El Empleado de Atención al Público nos contó que por cada nuevo alquiler actualiza la ficha registro del cliente En caso de tratarse de un nuevo cliente abre una nueva ficha con los siguientes datos: apellido y nombre, dirección personal, localidad, provincia, tipo y número de documento, profesión y número de licencia de conductor De acuerdo con las restricciones que impone el cliente busca si existe un vehículo disponible Una vez que el cliente seleccionó un coche actualizará la ficha con el nuevo alquiler fecha del alquiler, cantidad de días por los que se alquila, importe del alquiler y kilometraje del vehículo al momento de ser alquilado Debe ser cuidadoso en no autorizar alquileres a clientes que no devolvieron en término o en buen estado el vehículo que se les presto. El Encargado de Autos es el único autorizado a actualizar la ficha de registro de cada auto Cada vehículo tiene su propia información: código, descripción, marca, modelo y estado (alquilado, disponible para alquilar o en reparación) Por cada vehículo lleva nota de todas las reparaciones que recibió. De cada reparación mantiene la fecha, motivo costo de la reparación y cantidad de días que el auto no estuvo disponible También atiende a los clientes que traen los vehículos. Controla que el mismo se entregue en buen estado y en buen término, si no es así le informa al encargado de atención al público para que no autorice nuevos alquileres a ese cliente.
  • 37. “The task of the software development team is to engineer the ilusión of simplicity". Grady Booch