0% encontró este documento útil (0 votos)
7 vistas52 páginas

Relaciones entre Clases en POO UML

Trata sobre la relacion entre clases sobre programacion orientada a objetos

Cargado por

marcosgjd25
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas52 páginas

Relaciones entre Clases en POO UML

Trata sobre la relacion entre clases sobre programacion orientada a objetos

Cargado por

marcosgjd25
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TÉCNICA DE MACHALA

FACULTAD DE INGENIERIA CIVIL


CARRERA DE TENCOLOGIAS DE LA
INFORMACION

ASIGNATURA
PROGRAMACION ORIENTADA A OBJETOS

CURSO
SEGUNDO “A” TIC

DOCENTE RESPONSABLE
ING JOFFRE CARTUCHE

TEMA
RELACION ENTRE CLASES

PERIODO LECTIVO
2024-E2

MACHALA - EL ORO – ECUADOR


1. Índice

1. Índice 2
2. Introducción 3
3. Objetivo 4
3.1. Objetivo General 4
3.2. Objetivos Específicos 4
4. Marco Teórico 5
4.1. Asociación 5
4.2. Generalización 11
4.3. Agregación 17
4.4. Composición 21
4.5. Dependencia 26
5. Caso Práctico 30
6. Conclusiones 50
7. Recomendaciones 51
8. Bibliografía 52
2. Introducción
En el mundo de la programación orientada a objetos existen diversas maneras
de plantear un problema, entenderlo y llevarlo a código. Y para ello existen los
diagramas UML, que en sus siglas son Unified Modeling Language o en español,
lenguaje unificado de modelado que esta especialmente desarrollado para
ayudar a modelar, documentar y comprender la estructura y comportamiento de
los sistemas. En el contexto de POO, UML resulta muy útil para representar la
interacción entre objetos y clases de manera que el desarrollador logre
comprender, permitiendo así una mejor planificación y comunicación durante el
periodo de desarrollo del sistema.

Una de las características claves de los diagramas UML, son la relación entre
clases que presentan, es decir, la manera en que una clase se relaciona con otra
y que estas se comporten de una manera diferente. Estas relaciones incluyen
conceptos como asociación, generalización, agregación, composición,
dependencia.
Cada una de estas relaciones entre clases esta representada a su manera y el
cual facilitan la comprensión del diseño del sistema.
3. Objetivo
3.1. Objetivo General
Desarrollar aplicaciones o sistemas informáticos ejecutando el
concepto de relacion entre clases para presentar e ilustrar mejor la
estructura del sistema informático.

3.2. Objetivos Específicos


1. Implementar el concepto de relacion entre clases en un sistema
informático para demostrar su estructura mediante diagramas
UML.
2. Ejecutar el diseño de un sistema informático organizando clases y
sus interacciones en un entorno de desarrollo práctico.
3. Usar técnicas de modelado UML, para ilustrar las distintas
relaciones entre clase que existen.
4. Desempeñar simulaciones practicas aplicando las relaciones entre
clases en un sistema para interpretar su funcionalidad.
4. Marco Teórico
4.1. Asociación
Indica que una propiedad de una clase contiene una referencia a una instancia
(o instancias) de otra clase. La asociación es la relación más utilizada entre una
clase y otra clase, lo que significa que existe una conexión entre un tipo de objeto
y otro tipo de objeto. Las combinaciones y agregaciones también pertenecen a
las relaciones asociativas, pero las relaciones entre clases de afiliaciones son
más débiles que las otras dos [1].
Aporte
La asociación en UML significa o representa una relacion entre dos clases que
indica como las instancias de una clase estas conectadas a otras.
Problema:
En un sistema de gestión de un hotel, se creará y existirá una asociación entre
las clases cliente y habitación. Un cliente puede reservar una o más
habitaciones. Cada habitación puede estar asociada con un cliente cuando esta
ocupada.
Diagrama:
Codificación:
Clase cliente:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 18-nov.-2024 18:16:03
*/
public class Cliente {
private int Id;
private String Nombre;
private String Apellido;
private String Telefono;

public Cliente() {
}

public Cliente(int id, String Nom, String Ape, String Tel) {


[Link] = id;
[Link] = Nom;
[Link] = Ape;
[Link] = Tel;
}

public int getId() {


return Id;
}

public void setId(int newVal) {


Id = newVal;
}

public String getNombre() {


return Nombre;
}

public void setNombre(String newVal) {


Nombre = newVal;
}

public String getApellido() {


return Apellido;
}

public void setApellido(String newVal) {


Apellido = newVal;
}

public String getTelefono() {


return Telefono;
}

public void setTelefono(String newVal) {


Telefono = newVal;
}

public void Imprimir() {


[Link](null, "Id: " + Id + "\n" +
"Nombre: " + Nombre + "\n" +
"Apellido: " + Apellido + "\n" +
"Telefono: " + Telefono);
}
}

Clase Habitación:
package Entidades;
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 18-nov.-2024 18:16:05
*/
public class Habitacion {
private int Numero;
private String Tipo;
private double Precio;
private String Estado;
private Cliente cliente;

public Habitacion() {
[Link] = "Libre";
}

public Habitacion(int Num, String Tip, double Pre, String Est) {


[Link] = Num;
[Link] = Tip;
[Link] = Pre;
[Link] = "Libre";
}

public int getNumero() {


return Numero;
}

public void setNumero(int newVal) {


Numero = newVal;
}

public String getTipo() {


return Tipo;
}

public void setTipo(String newVal) {


Tipo = newVal;
}

public double getPrecio() {


return Precio;
}

public void setPrecio(double newVal) {


Precio = newVal;
}

public String getEstado() {


return Estado;
}

public void setEstado(String newVal) {


Estado = newVal;
}

public Cliente getCliente() {


return cliente;
}

public void Ocupar(Cliente cliente) {


if ([Link]("Libre")) {
[Link] = "Ocupado";
[Link] = cliente;
} else {
[Link](null, "La habitacion ya esta
ocupada", "Advertencia", JOptionPane.WARNING_MESSAGE);
}
}

public void Liberar() {


if ([Link]("Ocupado")) {
[Link] = "Libre";
[Link] = null;
} else {
[Link](null, "La habitacion ya esta
libre", "Advertencia", JOptionPane.WARNING_MESSAGE);
}
}

public void ImprimirHab() {


if (cliente != null) {
[Link](null, "Habitacion:\n" +
"Numero: " + Numero + "\n"
+ "Tipo: " + Tipo + "\n" + "Precio: " + Precio
+ "\n" + "Estado: " + Estado + "\n" + "Cliente
asociado:\n" + "Id: " + [Link]() + "\n"
+ "Nombre: " + [Link]() + "\n" +
"Apellido: " + [Link]() + "\n" + "Teléfono: " +
[Link](), "Informacion de la habitacion",
JOptionPane.INFORMATION_MESSAGE);
} else {
[Link](null, "Habitacion:\n" +
"Numero: " + Numero + "\n"
+ "Tipo: " + Tipo + "\n" + "Precio: " + Precio
+ "\n" + "Estado: " + Estado + "\n" + "Cliente
asociado: Ninguno", "Informacion de la habitacion",
JOptionPane.INFORMATION_MESSAGE);
}
}
}

Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_Asociacion extends [Link] {

public frm_Asociacion() {
initComponents();
}
private Habitacion hab;
private Cliente cli;

@SuppressWarnings("unchecked")

private void
jButton1ActionPerformed([Link] evt) {
// TODO add your handling code here:
try {
int id =
[Link]([Link]());
String nom = [Link]();
String ape = [Link]();
String tel = [Link]();
cli = new Cliente(id, nom, ape, tel);

int num =
[Link]([Link]());
String tip =
[Link]().toString();
double pre =
[Link]([Link]());
hab = new Habitacion(num, tip, pre, "");

[Link](cli);

[Link](null, "Datos
ingresados correctamente", "Exito", JOptionPane.INFORMATION_MESSAGE);
} catch (NumberFormatException ex) {
[Link](null, "Error en
los datos ingresados, verifique los valores", "Error",
JOptionPane.ERROR_MESSAGE);
}
}

private void
jButton2ActionPerformed([Link] evt) {
// TODO add your handling code here:
try {
if (cli != null && hab != null) {
[Link]();
[Link]();
} else {
[Link](this, "No
hay datos para imprimir. Ingrese primero los datos", "Advertencia",
JOptionPane.WARNING_MESSAGE);
}
} catch (NumberFormatException ex) {
[Link](this, "Error al
imprimir los datos", "Error", JOptionPane.ERROR_MESSAGE);
}
}

private void
jButton3ActionPerformed([Link] evt) {
// TODO add your handling code here:
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link](0);
hab = null;
cli = null;
[Link](null, "Campos limpiados
correctamente, ingrese nuevos datos", "Informacion",
JOptionPane.INFORMATION_MESSAGE);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

/* Create and display the form */


[Link](new Runnable() {
public void run() {
new frm_Asociacion().setVisible(true);
}
});
}
}
4.2. Generalización
La herencia o también conocida como generalización se utiliza dentro de los
diagramas UML para describir la relación entre las clases padre e hijo. Una clase
principal también se denomina clase base y una subclase también se denomina
clase derivada.
En la relación de herencia, la subclase hereda todas las funciones de la clase
principal y la clase principal tiene todos los atributos, métodos y subclases. Las
subclases contienen información adicional además de la misma información que
la clase principal. [1]

Aporte:

La herencia es un concepto y una manera en la que se relacionan las clases


dentro de UML el cual consiste en que una subclase o varias subclases heredan
atributos y métodos de la clase principal con el fin de ahorrar código.

Problema:
Utilizando la clase persona, realizar un programa, que permita crear dos clases
de trabajador, fijo y jornalero heredando de la clase persona, fijo deberá calcular
la cantidad a pagar dependiendo de su sueldo fijo y comisiones y jornalero del
costo por hora y horas trabajadas.
Diagrama:
Codificación:
Clase Persona:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 12-nov.-2024 15:52:43
*/
public class Persona {

private String Cedula;


private String Nombres;
private String Apellidos;
private int Edad;
private char Sexo;

public Persona() {

public Persona(String Ced, String Nom, String Ape, int Ed, char
Sex) {
[Link] = Ced;
[Link] = Nom;
[Link] = Ape;
[Link] = Ed;
[Link] = Sex;
}

public String getCedula() {


return Cedula;
}

public void setCedula(String newVal) {


Cedula = newVal;
}

public String getNombres() {


return Nombres;
}

public void setNombres(String newVal) {


Nombres = newVal;
}

public String getApellidos() {


return Apellidos;
}

public void setApellidos(String newVal) {


Apellidos = newVal;
}

public int getEdad() {


return Edad;
}

public void setEdad(int newVal) {


Edad = newVal;
}
public char getSexo() {
return Sexo;
}

public void setSexo(char newVal) {


Sexo = newVal;
}

public String Imprimir() {


return "Cedula: " + Cedula + "\n"
+ "Nombre: " + Nombres + "\n"
+ "Apellido: " + Apellidos + "\n"
+ "Edad: " + Edad + "\n"
+ "Sexo: " + Sexo;
}

Clase Fijo:
package Entidades;

import [Link];

/**
* @author Marcos
* @version 1.0
* @created 12-nov.-2024 15:52:51
*/
public class Fijo extends Persona {

private double SueldoFijo;


private double Comisiones;

public Fijo() {
super();
}

public Fijo(String Ced, String Nom, String Ape, int Ed, char Sex,
double SueF, double Com) {
super(Ced, Nom, Ape, Ed, Sex);
[Link] = SueF;
[Link] = Com;
}

public double getSueldoFijo() {


return SueldoFijo;
}

public void setSueldoFijo(double newVal) {


SueldoFijo = newVal;
}

public double getComisiones() {


return Comisiones;
}

public void setComisiones(double newVal) {


Comisiones = newVal;
}
public double calcularSF() {
double sueft = 0;
sueft = SueldoFijo + Comisiones;
return sueft;
}

public void imprimirFijo() {


[Link](null, Imprimir() + "\n" +

"Sueldo fijo: " + SueldoFijo + "\n" +

"Comisiones: " + Comisiones + "\n" +

"Total: " + calcularSF());


}
}

Clase Jornalero:
package Entidades;

import [Link];

/**
* @author Marcos
* @version 1.0
* @created 12-nov.-2024 15:52:56
*/
public class Jornalero extends Persona {

private double HorasTrabajadas;


private double CostoHora;

public Jornalero() {
super();
}

public Jornalero(String Ced, String Nom, String Ape, int Ed, char
Sex, double HorT, double CostH) {
super(Ced, Nom, Ape, Ed, Sex);
[Link] = HorT;
[Link] = CostH;
}

public double getHorasTrabajadas() {


return HorasTrabajadas;
}

public void setHorasTrabajadas(double newVal) {


HorasTrabajadas = newVal;
}

public double getCostoHora() {


return CostoHora;
}

public void setCostoHora(double newVal) {


CostoHora = newVal;
}
public double calcularSueldoJornalero() {
double sjt = 0;
sjt = HorasTrabajadas * CostoHora;
return sjt;
}

public void imprimirJornalero() {


[Link](null, Imprimir() + "\n" +

"Horas trabajadas: " + HorasTrabajadas + "\n" +

"Costo hora: " + CostoHora + "\n" +

"Total: " + calcularSueldoJornalero());


}

Formulario:
package Formularios;
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class fmr_HerenciaPOO extends [Link] {

public fmr_HerenciaPOO() {
initComponents();
}

@SuppressWarnings("unchecked")

Fijo of;
Jornalero oj;

private void jComboBox2ActionPerformed([Link]


evt) {
// TODO add your handling code here:
if([Link]().toString().equals("Fijo")){
[Link]("Sueldo");
[Link]("Comisiones");
}

if([Link]().toString().equals("Jornalero")){
[Link]("Horas");
[Link]("Costo");
}
}

private void jButton1ActionPerformed([Link]


evt) {
// TODO add your handling code here:
String ced = [Link]();
String nom = [Link]();
String ape = [Link]();
char sex = [Link]().toString().charAt(0);
int eda = [Link]([Link]());
String tip = [Link]().toString();
if([Link]("Fijo")){
double SuelFi = [Link]([Link]());
double Comi = [Link]([Link]());
of = new Fijo(ced, nom, ape, eda, sex, SuelFi, Comi);
}
if([Link]("Jornalero")){
double HorTr = [Link]([Link]());
double CostHor =
[Link]([Link]());
oj = new Jornalero(ced, nom, ape, eda, sex, HorTr,
CostHor);
}
}

private void jButton2ActionPerformed([Link]


evt) {
// TODO add your handling code here:
[Link]();
[Link]();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

/* Create and display the form */


[Link](new Runnable() {
public void run() {
new fmr_HerenciaPOO().setVisible(true);
}
});
}

// Variables declaration - do not modify


private [Link] jButton1;
private [Link] jButton2;
private [Link]<String> jComboBox1;
private [Link]<String> jComboBox2;
private [Link] jLabel1;
private [Link] jLabel2;
private [Link] jLabel3;
private [Link] jLabel4;
private [Link] jLabel5;
private [Link] jLabel6;
private [Link] jLabel7;
private [Link] jLabel8;
private [Link] jLabel9;
private [Link] jTextField1;
private [Link] jTextField2;
private [Link] jTextField3;
private [Link] jTextField4;
private [Link] jTextField5;
private [Link] jTextField6;
// End of variables declaration
}
4.3. Agregación
La agregación es un tipo de asociación que indica que una clase es parte de otra
clase (composición débil). Los componentes pueden ser compartidos por varios
compuestos (de la misma asociación de agregación o de varias asociaciones de
agregación distintas). La destrucción del compuesto no conlleva la destrucción
de los componentes. Habitualmente se da con mayor frecuencia que la
composición. La agregación se representa en UML mediante un diamante de
color blanco colocado en el extremo en el que está la clase que representa el
“todo”. [2]
Aporte:
Es un tipo de relacion estructural entre clases que se utiliza para representar una
relacion de “todo/parte”.
Problema:
Sistema básico de ingreso de libros en una biblioteca
Diagrama:

Codificación:
Clase libro:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 20:24:33
*/
public class Libro {

private String Autor;


private String TItulo;

public Libro() {

public Libro(String Aut, String Tit) {


[Link] = Aut;
[Link] = Tit;
}

public String getAutor() {


return Autor;
}

public void setAutor(String newVal) {


Autor = newVal;
}

public String getTItulo() {


return TItulo;
}

public void setTItulo(String newVal) {


TItulo = newVal;
}

public String getDetalles() {


return "Titulo: " + TItulo + "\n" + "Autor: " + Autor;
}

}
Clase Biblioteca:
package Entidades;
import [Link];
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 20:24:16
*/
public class Biblioteca {

private String Nombre;


private String Direccion;
private List<Libro> libros;

public Biblioteca() {
[Link] = new ArrayList<>();
}

public Biblioteca(String Nom, String Di) {


[Link] = Nom;
[Link] = Di;
[Link] = new ArrayList<>();
}

public String getNombre() {


return Nombre;
}

public void setNombre(String newVal) {


Nombre = newVal;
}

public String getDireccion() {


return Direccion;
}

public void setDireccion(String newVal) {


Direccion = newVal;
}

public List<Libro> getlibros() {


return libros;
}

public void setlibros(List<Libro> newVal) {


libros = newVal;
}

public void agregarLibro(Libro Li) {


[Link](Li);
}

public void eliminarLibro(String Tit) {


[Link](Li -> [Link]().equals(Tit));
}

}
Formulario:
package Formulario;

import [Link];
import [Link];
import [Link];
/**
*
* @author Marcos
*/
public class frm_Agregacion extends [Link] {

private Biblioteca biblioteca;

public frm_Agregacion() {
initComponents();
biblioteca = new Biblioteca();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void jButton1ActionPerformed([Link]
evt) {
// TODO add your handling code here:
String aut = [Link]();
String tit = [Link]();
Libro lib = new Libro(aut, tit);
[Link](lib);
[Link](this, "Libro agregado: " +
[Link]());
}

private void jButton2ActionPerformed([Link]


evt) {
// TODO add your handling code here:
StringBuilder info = new StringBuilder();
for (Libro lib : [Link]()) {
[Link]([Link]()).append("\n");
}
[Link](this, [Link](), "Lista de
libros", JOptionPane.INFORMATION_MESSAGE);
}

private void jButton3ActionPerformed([Link]


evt) {
// TODO add your handling code here:
[Link]("");
[Link]("");
[Link](this, "Campos vacios, ingrese
nuevos datos", "Informacion", JOptionPane.INFORMATION_MESSAGE);
}

public static void main(String args[]) {


[Link](new Runnable() {
public void run() {
new frm_Agregacion().setVisible(true);
}
});
}
// Variables declaration - do not modify
private [Link] jButton1;
private [Link] jButton2;
private [Link] jButton3;
private [Link] jLabel1;
private [Link] jLabel2;
private [Link] jLabel3;
private [Link] jPanel1;
private [Link] jTextField1;
private [Link] jTextField2;
// End of variables declaration
}

4.4. Composición
Composición es una forma fuerte de composición donde la vida de la clase
contenida debe coincidir con la vida de la clase contenedor. Los componentes
constituyen una parte del objeto compuesto. De esta forma, los componentes no
pueden ser compartidos por varios objetos compuestos. La supresión del objeto
compuesto conlleva la supresión de los componentes. [2]
Aporte:
Quiere decir, que la composición es una asociación fuerte donde una clase
contiene otra como parte de su estructura interna, si el objeto contenedor deja
de existir, los objetos contenidos también se destruyen.
Problema:
Creación de casas con n número de habitaciones
Diagrama:

Codificación:
Clase Casa:
package Entidades;
import [Link];
import [Link];
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 21:39:31
*/
public class Casa {

private String Direccion;


private int NumHabitaciones;
private List<Habitacion> habitaciones;

public Casa() {
[Link] = new ArrayList<>();
}

public Casa(String Dire, int NumH) {


[Link] = Dire;
[Link] = NumH;
[Link] = new ArrayList<>();
}

public String getDireccion() {


return Direccion;
}

public void setDireccion(String newVal) {


Direccion = newVal;
}

public int getNumHabitaciones() {


return NumHabitaciones;
}
public void setNumHabitaciones(int newVal) {
NumHabitaciones = newVal;
}

public List<Habitacion> getHabitaciones() {


return habitaciones;
}

public void setHabitaciones(List<Habitacion> newVal) {


habitaciones = newVal;
}

public void addHabitacion(Habitacion hab) {


[Link](hab);
}

Clase Habitación:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 21:39:38
*/
public class Habitacion {

private String Tipo;


private double Area;

public Habitacion() {
}

public Habitacion(String Tip, double A) {


[Link] = Tip;
[Link] = A;
}

public String getTipo() {


return Tipo;
}

public void setTipo(String newVal) {


Tipo = newVal;
}

public double getArea() {


return Area;
}

public void setArea(double newVal) {


Area = newVal;
}

public String getDetalles() {


return "Tipo: " + Tipo + "\n" + "Area: " + Area + " m²";
}

}
Formulario:
package Formulario;
import [Link];
import [Link];
import [Link];

/**
*
* @author Marcos
*/
public class frm_Composicion extends [Link] {

private Casa casa;


private Habitacion habitaciones;

public frm_Composicion() {
initComponents();
habitaciones = new Habitacion();
casa = new Casa();
}
@SuppressWarnings("unchecked")

private void jButton1ActionPerformed([Link]


evt) {
// TODO add your handling code here:
String dire = [Link]();
int numHab = [Link]([Link]());
String tip = [Link]();
double area = [Link]([Link]());
Habitacion hab = new Habitacion(tip, area);

[Link](dire);
[Link](numHab);
[Link](hab);

[Link](this, "Habitacion agregada: " +


[Link](), "Informacion", JOptionPane.INFORMATION_MESSAGE);
}

private void jButton2ActionPerformed([Link]


evt) {
// TODO add your handling code here:
StringBuilder info = new StringBuilder();
[Link]("Direccion de la casa:
").append([Link]()).append("\n");
[Link]("Cantidad de habitaciones:
").append([Link]()).append("\n");
for(Habitacion habi : [Link]()){
[Link]([Link]()).append("\n");
}
[Link](this, [Link](), "Lista de
habitaciones", JOptionPane.INFORMATION_MESSAGE);
}

private void jButton3ActionPerformed([Link]


evt) {
// TODO add your handling code here:
[Link]("");
[Link]("");
[Link]("");
[Link]("");
casa = new Casa();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Create and display the form */
[Link](new Runnable() {
public void run() {
new frm_Composicion().setVisible(true);
}
});
}

// Variables declaration - do not modify


private [Link] jButton1;
private [Link] jButton2;
private [Link] jButton3;
private [Link] jLabel1;
private [Link] jLabel2;
private [Link] jLabel3;
private [Link] jLabel4;
private [Link] jLabel5;
private [Link] jPanel1;
private [Link] jPanel2;
private [Link] jTextField1;
private [Link] jTextField2;
private [Link] jTextField3;
private [Link] jTextField4;
// End of variables declaration
}
4.5. Dependencia
En una relación de dependencia, como sugiere el nombre, dos o más elementos
dependen uno del otro. En este tipo de relación, si realizamos un cambio en un
elemento en particular, es probable que todos los demás elementos también se
vean afectados por el cambio. [3]
Aporte:
La dependencia es una relacion entre dos elementos que indica que un cambio
en uno de ellos puede afectar al otro. Es una relacion débil y generalmente
temporal, que sugiere que un elemento depende de otro para realizar su función
o para existir.
Problema:
Sistema de gestión de ordenes de trabajo en una empresa de servicios.
Diagrama:

Codificación:
Clase OrdenDeTrabajo:
package Entidades;

import [Link];
import [Link];

/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 23:40:07
*/
public class OrdenDeTrabajo {

private String Descripcion;


private List<Servicio> servicios;

public OrdenDeTrabajo() {
[Link] = new ArrayList<>();
}
public OrdenDeTrabajo(String Desc) {
[Link] = Desc;
[Link] = new ArrayList<>();
}

public String getDescripcion() {


return Descripcion;
}

public void setDescripcion(String newVal) {


Descripcion = newVal;
}

public List<Servicio> getservicios() {


return servicios;
}

public void setservicios(List<Servicio> newVal) {


servicios = newVal;
}

public void agregarServicio(Servicio Serv) {


[Link](Serv);
}

public double calcularCostoTotal() {


double total = 0;
for(Servicio servicio : servicios){
total += [Link]();
}
return total;
}

@Override
public String toString() {
return "Orden de trabajo: " + Descripcion + "\n" + "Total
servicios: " + [Link]() + "\n" + "Costo total: " +
calcularCostoTotal();
}

Clase Servicio:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 23-nov.-2024 23:40:14
*/
public class Servicio {

private String Descripcion;


private double Costo;

public Servicio() {
}

public Servicio(double Cos, String Des) {


[Link] = Des;
[Link] = Cos;
}

public String getDescripcion() {


return Descripcion;
}

public void setDescripcion(String newVal) {


Descripcion = newVal;
}

public double getCosto() {


return Costo;
}

public void setCosto(double newVal) {


Costo = newVal;
}

@Override
public String toString() {
return "Descripcion: " + Descripcion + "\n" + "Costo: " +
Costo;
}

Formulario:
package Formulario;

import [Link];
import [Link];
import [Link];
import [Link];

/**
*
* @author Marcos
*/
public class frm_Dependencia extends [Link] {

private OrdenDeTrabajo orden;

public frm_Dependencia() {
initComponents();
orden = new OrdenDeTrabajo();
}

@SuppressWarnings("unchecked")

private void jButton1ActionPerformed([Link]


evt) {
// TODO add your handling code here:
try{
String des = [Link]();
Double cost = [Link]([Link]());
if([Link]() || cost <= 0){
[Link](this, "Datos del
servicio no validos", "Error", JOptionPane.ERROR_MESSAGE);
return;
}
Servicio serv = new Servicio(cost, des);
[Link](serv);

[Link]("");
[Link]("");

[Link](this, "Servicio agregado: "


+ serv, "Informacion", JOptionPane.INFORMATION_MESSAGE);
} catch (NumberFormatException ex){
[Link](this, "Costo no valido, debe
ser un numero", "Error", JOptionPane.ERROR_MESSAGE);
}
}

private void jButton2ActionPerformed([Link]


evt) {
// TODO add your handling code here:
double total = [Link]();
StringBuilder info = new StringBuilder();

List<Servicio> servicios = [Link]();


for(Servicio servicio : servicios){
[Link](servicio).append("\n");
}

[Link]("\nCosto toal: $").append(total);


[Link](this, [Link](),
"Resultado", JOptionPane.INFORMATION_MESSAGE);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

/* Create and display the form */


[Link](new Runnable() {
public void run() {
new frm_Dependencia().setVisible(true);
}
});
}

// Variables declaration - do not modify


private [Link] jButton1;
private [Link] jButton2;
private [Link] jLabel1;
private [Link] jLabel2;
private [Link] jLabel3;
private [Link] jPanel1;
private [Link] jTextField1;
private [Link] jTextField2;
// End of variables declaration
}
5. Caso Práctico
Problema:
Diseño de gestión de citas de una clínica privada
Diagrama:
Codificación:
Clase persona:
package Entidades;
/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:22
*/
public class Persona {

private String Nombre;


private String Apellido;
private int Edad;
private char Sexo;
private String Estado;

public Persona() {
}

public Persona(String Nom, String Ape, int Ed, char Sex, String
Est) {
[Link] = Nom;
[Link] = Ape;
[Link] = Ed;
[Link] = Sex;
[Link] = Est;
}

public String getNombre() {


return Nombre;
}

public void setNombre(String newVal) {


Nombre = newVal;
}

public String getApellido() {


return Apellido;
}

public void setApellido(String newVal) {


Apellido = newVal;
}

public int getEdad() {


return Edad;
}

public void setEdad(int newVal) {


Edad = newVal;
}

public char getSexo() {


return Sexo;
}

public void setSexo(char newVal) {


Sexo = newVal;
}
public String getEstado() {
return Estado;
}

public void setEstado(String newVal) {


Estado = newVal;
}

public String obtenerDatos() {


return "Nombre: " + Nombre + "\n" +
"Apellido: " + Apellido + "\n" +
"Edad: " + Edad + "\n" +
"Sexo: " + Sexo + "\n" +
"Estado: " + Estado;
}

Clase paciente:
package Entidades;

/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:33
*/
public class Paciente extends Persona {

private int ID;

public Paciente() {
super();
}

public Paciente(String Nom, String Ape, int Ed, char Sex, String
Est, int id) {
super(Nom, Ape, Ed, Sex, Est);
[Link] = id;
}

public int getID() {


return ID;
}

public void setID(int newVal) {


ID = newVal;
}

@Override
public String obtenerDatos() {
return [Link]() + "\nID: " + ID;
}

}
Clase Doctor:
package Entidades;

/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:28
*/
public class Doctor extends Persona {

private String Especialidad;

public Doctor() {
super();
}

public Doctor(String Nom, String Ape, int Ed, char Sex, String
Est, String Esp) {
super(Nom, Ape, Ed, Sex, Est);
[Link] = Esp;
}

public String getEspecialidad() {


return Especialidad;
}

public void setEspecialidad(String newVal) {


Especialidad = newVal;
}

@Override
public String obtenerDatos() {
return [Link]() + "\nEspecialidad: " +
Especialidad;
}

Clase Clínica:
package Entidades;

import [Link];

/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:39
*/
public class Clinica {

private String NombreClinica;


private ArrayList<Paciente> pacientes;
private String Ubicacion;

public Clinica() {
pacientes = new ArrayList<>();
}
public Clinica(String Ubi, String NomCli, Paciente pac) {
[Link] = NomCli;
[Link] = new ArrayList<>();
[Link] = Ubi;
}

public String getNombreClinica() {


return NombreClinica;
}

public ArrayList<Paciente> getPaciente() {


return pacientes;
}

public void setNombreClinica(String newVal) {


NombreClinica = newVal;
}

public void setPaciente(ArrayList newVal) {


pacientes = newVal;
}

public void agregarPacientes(Paciente paciente) {


[Link](paciente);
}

public String obtenerPaciente() {


StringBuilder sb = new StringBuilder();
for(Paciente p : pacientes){
[Link]([Link]()).append("\n");
}
return [Link]();
}

public String getUbicacion() {


return Ubicacion;
}

public void setUbicacion(String newVal) {


Ubicacion = newVal;
}

Clase Cita:
package Entidades;

import [Link];

/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:54
*/
public class Cita {

private Date FechaCita;


private String Descripcion;
public Consultorio consultorio;
public Cita() {
}

public Cita(Date Fc, String Desc, Consultorio consultorio) {


[Link] = Fc;
[Link] = Desc;
[Link] = consultorio;
}

public Date getFechaCita() {


return FechaCita;
}

public void setFechaCita(Date newVal) {


FechaCita = newVal;
}

public Consultorio getConsultorio() {


return consultorio;
}

public String getDescripcion() {


return Descripcion;
}

public void setDescripcion(String newVal) {


Descripcion = newVal;
}

public void setConsultorio(Consultorio consultorio) {


[Link] = consultorio;
}

public String obtenerDatos() {


return "Fecha cita: " + FechaCita + "\n" + "Descripcion: " +
Descripcion + "\n" + "Consultorio: " +
[Link]();
}

Clase Consultorio:
package Entidades;

/**
* @author Marcos
* @version 1.0
* @created 24-nov.-2024 17:22:47
*/
public class Consultorio {

private String NombreConsultorio;

public Consultorio() {
}

public Consultorio(String NomConsu) {


[Link] = NomConsu;
}

public String getNombreConsultorio() {


return NombreConsultorio;
}

public void setNombreConsultorio(String newVal) {


NombreConsultorio = newVal;
}

public String obtenerDatos() {


return "\nConsultorio: " + NombreConsultorio;
}

Formulario:
package Formulario;

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

/**
*
* @author Marcos
*/
public class frm_CasoPractico extends [Link] {

private Paciente pacientes;

public frm_CasoPractico() {
initComponents();
pacientes = new Paciente();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new [Link]();


jPanel1 = new [Link]();
jLabel2 = new [Link]();
jTextField1 = new [Link]();
jLabel3 = new [Link]();
jTextField2 = new [Link]();
jLabel4 = new [Link]();
jTextField3 = new [Link]();
jLabel5 = new [Link]();
jComboBox1 = new [Link]<>();
jLabel6 = new [Link]();
jComboBox2 = new [Link]<>();
jLabel13 = new [Link]();
jTextField7 = new [Link]();
jPanel2 = new [Link]();
jLabel7 = new [Link]();
jTextField4 = new [Link]();
jLabel8 = new [Link]();
jTextField5 = new [Link]();
jLabel9 = new [Link]();
jTextField6 = new [Link]();
jLabel10 = new [Link]();
jComboBox3 = new [Link]<>();
jLabel11 = new [Link]();
jComboBox4 = new [Link]<>();
jLabel12 = new [Link]();
jComboBox5 = new [Link]<>();
jPanel3 = new [Link]();
jLabel14 = new [Link]();
jTextField8 = new [Link]();
jLabel15 = new [Link]();
jTextField9 = new [Link]();
jLabel16 = new [Link]();
jTextField10 = new [Link]();
jDateChooser1 = new [Link]();
jLabel17 = new [Link]();
jButton1 = new [Link]();
jButton2 = new [Link]();
jLabel18 = new [Link]();

setDefaultCloseOperation([Link].EXIT_ON_CLOSE);

[Link](new [Link]("Segoe UI", 1, 18)); //


NOI18N

[Link]([Link]);
[Link]("Sistema de creacion de citas");

[Link]([Link](null,
"Informacion del paciente",
[Link].DEFAULT_JUSTIFICATION,
[Link].DEFAULT_POSITION, new
[Link]("Segoe UI", 1, 12))); // NOI18N
[Link](true);

[Link]("Nombre:");

[Link]("Apellido:");

[Link]("Edad:");

[Link]("Sexo:");

[Link](new [Link]<>(new
String[] { "M", "F" }));

[Link]("Estado:");

[Link](new [Link]<>(new
String[] { "Casado", "Divorciado" }));

[Link]("ID paciente:");

[Link] jPanel1Layout = new


[Link](jPanel1);
[Link](jPanel1Layout);
[Link](

[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4,
[Link].PREFERRED_SIZE, 37,
[Link].PREFERRED_SIZE)
.addComponent(jLabel5,
[Link].PREFERRED_SIZE, 37,
[Link].PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(jLabel13))

.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField7,
[Link].DEFAULT_SIZE, 120, Short.MAX_VALUE)

.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField2,
[Link])
.addComponent(jTextField3,
[Link])
.addComponent(jComboBox1,
[Link], 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jComboBox2,
[Link], 0, 120, Short.MAX_VALUE)
.addComponent(jTextField1)))
.addContainerGap())
);
[Link](

[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
[Link])
.addComponent(jTextField1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addComponent(jLabel2))

.addPreferredGap([Link])
.addGroup([Link]([Link]
[Link])
.addComponent(jLabel3)
.addComponent(jTextField2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel4)
.addComponent(jTextField3,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel5)
.addComponent(jComboBox1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel6)
.addComponent(jComboBox2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel13,
[Link].PREFERRED_SIZE, 16,
[Link].PREFERRED_SIZE)
.addComponent(jTextField7,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);

[Link]([Link](null,
"Informacion del doctor",
[Link].DEFAULT_JUSTIFICATION,
[Link].DEFAULT_POSITION, new
[Link]("Segoe UI", 1, 12))); // NOI18N
[Link]("Nombre:");

[Link]("Apellido:");

[Link]("Edad:");

[Link]("Sexo:");

[Link](new [Link]<>(new
String[] { "M", "F" }));

[Link]("Estado:");

[Link](new [Link]<>(new
String[] { "Casado", "Soltero" }));

[Link]("Especialidad:");

[Link](new [Link]<>(new
String[] { "Medicina General", "Pediatría", "Ginecología",
"Psiquiatría", "Cardiología", "Dermatología", "Oftalmología" }));

[Link] jPanel2Layout = new


[Link](jPanel2);
[Link](jPanel2Layout);
[Link](

[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel7)
.addComponent(jLabel8)
.addComponent(jLabel9,
[Link].PREFERRED_SIZE, 37,
[Link].PREFERRED_SIZE)
.addComponent(jLabel10,
[Link].PREFERRED_SIZE, 43,
[Link].PREFERRED_SIZE)
.addComponent(jLabel11,
[Link].PREFERRED_SIZE, 43,
[Link].PREFERRED_SIZE)
.addComponent(jLabel12))

.addPreferredGap([Link],
21, Short.MAX_VALUE)

.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField4)
.addComponent(jTextField5)
.addComponent(jTextField6)
.addComponent(jComboBox3, 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jComboBox4, 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jComboBox5, 0,
[Link].DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
[Link](

[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel7)
.addComponent(jTextField4,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel8)
.addComponent(jTextField5,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel9)
.addComponent(jTextField6,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel10)
.addComponent(jComboBox3,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel11)
.addComponent(jComboBox4,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel12)
.addComponent(jComboBox5,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addContainerGap(11, Short.MAX_VALUE))
);

[Link]([Link](null,
"Detalles de la cita",
[Link].DEFAULT_JUSTIFICATION,
[Link].DEFAULT_POSITION, new
[Link]("Segoe UI", 1, 12))); // NOI18N

[Link]("Direccion:");

[Link]("Consultorio:");

[Link]("Fecha:");

[Link]("Descripcion");

[Link] jPanel3Layout = new


[Link](jPanel3);
[Link](jPanel3Layout);
[Link](

[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
[Link])
.addGroup([Link]()
.addComponent(jLabel14)

.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTextField8,
[Link].PREFERRED_SIZE, 120,
[Link].PREFERRED_SIZE))
.addGroup([Link]()
.addComponent(jLabel17)

.addPreferredGap([Link],
7, Short.MAX_VALUE)
.addComponent(jTextField10,
[Link].PREFERRED_SIZE, 120,
[Link].PREFERRED_SIZE))

.addGroup([Link],
[Link]()

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel15)
.addComponent(jLabel16))
.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup([Link]([Link]
[Link], false)
.addComponent(jTextField9)
.addComponent(jDateChooser1,
[Link].DEFAULT_SIZE, 120, Short.MAX_VALUE))))
.addContainerGap())
);
[Link](

[Link]([Link]
ADING)
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel14)
.addComponent(jTextField8,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jTextField9,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addComponent(jLabel15))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jDateChooser1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addComponent(jLabel16))

.addPreferredGap([Link])

.addGroup([Link]([Link]
[Link])
.addComponent(jLabel17)
.addComponent(jTextField10,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);

[Link]("Ingresar");
[Link](new [Link]()
{
public void actionPerformed([Link]
evt) {
jButton1ActionPerformed(evt);
}
});

[Link]("Imprimir");
[Link](new [Link]()
{
public void actionPerformed([Link]
evt) {
jButton2ActionPerformed(evt);
}
});

[Link](new
[Link](getClass().getResource("/Imagenes/[Link]"
))); // NOI18N

[Link] layout = new


[Link](getContentPane());
getContentPane().setLayout(layout);
[Link](

[Link]([Link])
.addGroup([Link]()
.addContainerGap()

.addGroup([Link]([Link]
.LEADING)
.addComponent(jLabel1,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup([Link],
[Link]()

.addGroup([Link]([Link]
.TRAILING)
.addComponent(jPanel3,
[Link],
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
.LEADING, false)
.addGroup([Link]()
.addComponent(jButton2,
[Link].PREFERRED_SIZE, 88,
[Link].PREFERRED_SIZE)

.addPreferredGap([Link],
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1,
[Link].PREFERRED_SIZE, 88,
[Link].PREFERRED_SIZE))
.addComponent(jPanel2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addGroup([Link]()
.addGap(69, 69, 69)
.addComponent(jLabel18)))))
.addContainerGap())
);
[Link](

[Link]([Link])
.addGroup([Link]()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)

.addGroup([Link]([Link]
.LEADING, false)
.addComponent(jPanel2,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE))

.addPreferredGap([Link])

.addGroup([Link]([Link]
.LEADING)
.addComponent(jPanel3,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addGroup([Link]()
.addComponent(jLabel18,
[Link].PREFERRED_SIZE, 112,
[Link].PREFERRED_SIZE)

.addPreferredGap([Link])

.addGroup([Link]([Link]
.BASELINE)
.addComponent(jButton2)
.addComponent(jButton1))))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

private void jButton1ActionPerformed([Link]


evt) {
// TODO add your handling code here:
[Link](null, "Cita agendada
exitosamente", "Informacion", JOptionPane.INFORMATION_MESSAGE);
}

private void jButton2ActionPerformed([Link]


evt) {
// TODO add your handling code here:
String nomP = [Link]();
String apeP = [Link]();
int edadP = [Link]([Link]());
char sexP = [Link]().toString().charAt(0);
String estP = [Link]().toString();
int IdP = [Link]([Link]());

Paciente p = new Paciente(nomP, apeP, edadP, sexP, estP, IdP);

String nomDr = [Link]();


String apeDr = [Link]();
int edadDr = [Link]([Link]());
char sexDr =
[Link]().toString().charAt(0);
String estDr = [Link]().toString();
String espDr = [Link]().toString();

Doctor doctor = new Doctor(nomDr, apeDr, edadDr, sexDr, estDr,


espDr);

String dire = [Link]();


String consu = [Link]();
Date Fconsu = [Link]();
String descr = [Link]();

Consultorio consultorio = new Consultorio(consu);


Cita cita = new Cita(Fconsu, descr, consultorio);

Clinica clinica = new Clinica();


[Link]("Ambulatorio Comunitario");
[Link](dire);
[Link](p);

[Link](null, "Detalles de la cita\n" +


[Link]() + "\n"
+ [Link]() + "\n" + [Link]() +
"\n" + "Nombre de la clinica: " + "\n"
+ [Link]() + "\n" + "Ubicacion: " +
[Link]());
}

public static void main(String args[]) {


/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel
setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay
with the default look and feel.
* For details see
[Link]
ml
*/
try {
for ([Link] info :
[Link]()) {
if ("Nimbus".equals([Link]())) {
[Link]([Link]());
break;
}
}
} catch (ClassNotFoundException ex) {

[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
} catch (InstantiationException ex) {

[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
} catch (IllegalAccessException ex) {

[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
} catch ([Link] ex) {

[Link](frm_CasoPractico.[Link]()).l
og([Link], null, ex);
}
//</editor-fold>

/* Create and display the form */


[Link](new Runnable() {
public void run() {
new frm_CasoPractico().setVisible(true);
}
});
}

// Variables declaration - do not modify


private [Link] jButton1;
private [Link] jButton2;
private [Link]<String> jComboBox1;
private [Link]<String> jComboBox2;
private [Link]<String> jComboBox3;
private [Link]<String> jComboBox4;
private [Link]<String> jComboBox5;
private [Link] jDateChooser1;
private [Link] jLabel1;
private [Link] jLabel10;
private [Link] jLabel11;
private [Link] jLabel12;
private [Link] jLabel13;
private [Link] jLabel14;
private [Link] jLabel15;
private [Link] jLabel16;
private [Link] jLabel17;
private [Link] jLabel18;
private [Link] jLabel2;
private [Link] jLabel3;
private [Link] jLabel4;
private [Link] jLabel5;
private [Link] jLabel6;
private [Link] jLabel7;
private [Link] jLabel8;
private [Link] jLabel9;
private [Link] jPanel1;
private [Link] jPanel2;
private [Link] jPanel3;
private [Link] jTextField1;
private [Link] jTextField10;
private [Link] jTextField2;
private [Link] jTextField3;
private [Link] jTextField4;
private [Link] jTextField5;
private [Link] jTextField6;
private [Link] jTextField7;
private [Link] jTextField8;
private [Link] jTextField9;
// End of variables declaration
}
6. Conclusiones

1.- En resumen, la implementación y creación de relaciones entre clase en un


diagrama UML de un sistema informático demuestra la importancia de estos al
momento de modelar y codificar cualquier sistema informático y a su vez, nos
ayuda la comprensión de la arquitectura del sistema para mayor eficacia a la
hora de codificar.
2.- En definitiva, el proceso de creación de este proyecto ayudó a desarrollar la
creatividad y la destreza de crear y resolver problemas de la vida real.
3.- En virtud de lo estudiado, analizado y redactado se ha logrado desarrollar, de
mejor manera, la habilidad y manejo de herramientas para el desarrollo de
diagramas UML y conocer sus distintas
4.- Para terminar, es importante destacar que toda esta práctica, nos nutre de
conocimiento para poder resolver futuras tareas que se vayan estableciendo a lo
largo de la carrera, y a su vez, nos puede servir dentro del campo laboral como
proyecto de alguna empresa que lo solicite.
7. Recomendaciones

1.- Desarrollar el diagrama a mano como borrador para ir tachando e


implementando diferentes procesos como atributos de más o métodos faltantes,
etc. Para así llevar como ultima instancia el diagrama final.
2.- Ordenar los diagramas de tal punto que se puedan comprender mucho más
fácil.
3.- Detenerse a pensar un poco en el problema y como poder solucionarlo y que
se puede implementar para llevar a cabo su finalización.
4.- Si se desconoce de algún tema o concepto, buscar en el internet es una
buena opción para despejar dudas, siempre y cuando sean de fuentes
confiables.
8. Bibliografía

[1] V. Paradigm, «Visual Paradigm,» Visual Paradigm, 24 Noviembre 2023. [En línea].
Available: [Link]
uml-class-diagrams/. [Último acceso: 24 Noviembre 2024].

[2] SEAS, «SEAS,» SEAS Estudios Superiores Abiertos, n.d. n.d. n.d.. [En línea]. Available:
[Link]
clases-uml/. [Último acceso: 24 Noviembre 2024].

[3] Guru99, «Guru99,» Guru99, n.d. n.d. n.d.. [En línea]. Available:
[Link] [Último acceso: 22
Noviembre 2024].

También podría gustarte