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

Mais procurados (20)

Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poo
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de Datos
 
Topicos avanzados de programacion
Topicos avanzados de programacionTopicos avanzados de programacion
Topicos avanzados de programacion
 
Diferencias swing y awt
Diferencias swing y awtDiferencias swing y awt
Diferencias swing y awt
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Ventajas y Desventajas modelo OSI
Ventajas y Desventajas modelo OSIVentajas y Desventajas modelo OSI
Ventajas y Desventajas modelo OSI
 
Interfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioInterfaz Gráfica de Usuario
Interfaz Gráfica de Usuario
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 

Semelhante a Semana 4 Diagrama de Clases y Casos de Uso

Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
EdsonEMC
 
requerimientos-tipos-y-definiciones
requerimientos-tipos-y-definiciones requerimientos-tipos-y-definiciones
requerimientos-tipos-y-definiciones
Juan Restrepo
 
Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
EdsonEMC
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
pacosayas
 

Semelhante a Semana 4 Diagrama de Clases y Casos de Uso (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
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
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
 
Klasepalomino14
Klasepalomino14Klasepalomino14
Klasepalomino14
 
Diagramas de clases
Diagramas de clasesDiagramas de clases
Diagramas de clases
 
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
 

Mais de Richard 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

S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
samuelsan933
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 

Último (20)

portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.5. MATERIALES petreos para concreto.pdf.
5. MATERIALES petreos para concreto.pdf.
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdfTRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
TRABAJO N°2 GERENCIA DE PROYECTOS (4).pdf
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 

Semana 4 Diagrama de Clases y Casos de Uso

  • 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