SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados (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
 

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

Semelhante 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
 

Mais 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
 

Mais 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

FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALFOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALRiveraPemintelAlejan
 
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdfDispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdfdego18
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)esmerling14
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxKeylaArlethTorresOrt
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfrudy cabezas
 
TEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdf
TEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdfTEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdf
TEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdfJhonCongoraQuispe
 
Sistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraSistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraJairoMaxKevinMartine
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxStibeCr
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfciteagrohuallaga07
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaJoellyAlejandraRodrg
 
Analisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxAnalisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxasotomayorm2
 
presentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionespresentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionesCarlosA427496
 
Unidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivosUnidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivossolareslionel9
 
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdfFOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdfDanielAlejandroAguir2
 
MECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargar
MECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargarMECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargar
MECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargarAdrielQuispeLpez
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptxHenryApaza12
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicakiaranoemi
 
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...jfmolina199
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALPamelaGranda5
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfElenaNagera
 

Último (20)

FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURALFOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
FOLIACIONES Y LINEACIONES GEOLOGÍA ESTRUCTURAL
 
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdfDispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
Dispositivos Semiconductores de Potencia BJT, MOSFET 01.pdf
 
Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)Esmerling de la Cruz (Proyecto de Programación)
Esmerling de la Cruz (Proyecto de Programación)
 
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptxEXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
EXPOSICION UNIDAD 3 MANTENIMIENTOO .pptx
 
R. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdfR. Contraloria 432-2023-CG obras x AD.pdf
R. Contraloria 432-2023-CG obras x AD.pdf
 
TEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdf
TEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdfTEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdf
TEMA 02 VISCOSIDAD DE MECÁNICA DE FLUIDOS .pdf
 
Sistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas EstructuraSistema Operativo Windows Capas Estructura
Sistema Operativo Windows Capas Estructura
 
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptxPRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
PRESENTACIÓN ANALISIS ESTRUCTURAL II.pptx
 
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdfMANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
MANUAL DE NORMAS SANITARIAS PERUANAS ACTUALIZADO 2024.pdf
 
Análisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadísticaAnálisis de Varianza- Anova y pruebas de estadística
Análisis de Varianza- Anova y pruebas de estadística
 
Analisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptxAnalisis de reparación de fisuras superficiales en pavimentos.pptx
Analisis de reparación de fisuras superficiales en pavimentos.pptx
 
presentación de topografía y sus aplicaciones
presentación de topografía y sus aplicacionespresentación de topografía y sus aplicaciones
presentación de topografía y sus aplicaciones
 
Unidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivosUnidad_1_Parte_1 organización y estructura de los seres vivos
Unidad_1_Parte_1 organización y estructura de los seres vivos
 
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdfFOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
FOTOCELDAS Y LOS DIFERENTES TIPOS QUE EXISTEN.pdf
 
MECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargar
MECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargarMECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargar
MECANICA DE FLUIDOS 1 mecánica de fluidos en documento para descargar
 
04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx04-circuitos-comparadores de amplificadores operacionales.pptx
04-circuitos-comparadores de amplificadores operacionales.pptx
 
Sales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganicaSales binarias y oxisales química inorganica
Sales binarias y oxisales química inorganica
 
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
Pueden_los_sistemas_de_informacion_ayudar_a_evitar_una_crisis_de_salud_public...
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
 
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdfSESIÓN 1 - Tema 1 - Conceptos Previos.pdf
SESIÓN 1 - Tema 1 - Conceptos Previos.pdf
 

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