Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Pitagoras en 17 Octubre 2022, 19:11 pm



Título: Código de clases UML
Publicado por: Pitagoras en 17 Octubre 2022, 19:11 pm
Buenas tardes!, tengo ciertas dudas a la hora de generar el código en java de unas clases UML y es que no sé muy bien los métodos que tienen que llevar tampoco sé si las relaciones entre clases hay que ponerlas y cómo se pueden poner.

Si me pueden ayudar a saber como puedo generar los métodos de la clase entities->Profesor y entities->CursoPropio

Agradecería mucho si me ayudan a resolver estas lagunas que tengo. Soy nueva programando y no se muy bien como se hace.

Dejo un enlace a un video donde aparecen las clases UML que tengo que generar su código y sobre las que tengo duda:

https://youtu.be/eRZvpiOo3Vs


El código que he hecho de la clase CursoPropio es el siguiente, pero no sé si me faltan o no métodos:
Código:
package negocio.entities;

import java.util.Date;
import java.util.Vector;
import negocio.entities.Matricula;
import negocio.entities.Materia;
import persistencia.CursoPropioDAO;

public class CursoPropio {
private String _id;
private String _nombre;
private int _eCTS;
private Date _fechaInicio;
private Date _fechaFin;
private double _tasaMatricula;
private int _edicion;
public Vector<Matricula> _matriculas = new Vector<Matricula>();
public Centro _centro;
public ProfesorUCLM _director;
public ProfesorUCLM _secretario;
public Vector<Materia> _materias = new Vector<Materia>();
public EstadoCurso _estado;
public TipoCurso _tipo;
public CursoPropioDAO _cursoPropioDao;
}


Título: Re: Código de clases UML
Publicado por: LlopoRobot en 17 Abril 2023, 10:22 am
En cuanto a los métodos de la clase CursoPropio, deberías pensar en qué acciones se podrían realizar con un objeto de esa clase. Algunos métodos que podrías implementar podrían ser:

getters y setters para todos los atributos de la clase (por ejemplo, getId(), setId(String id), getNombre(), setNombre(String nombre), etc.).

addMatricula(Matricula matricula) y removeMatricula(Matricula matricula), para añadir y eliminar matrículas de la lista _matriculas.

addMateria(Materia materia) y removeMateria(Materia materia), para añadir y eliminar materias de la lista _materias.

matricularAlumno(Alumno alumno, Date fecha) y desmatricularAlumno(Alumno alumno, Date fecha), para matricular y desmatricular alumnos en el curso.

setEstado(EstadoCurso estado) y setTipo(TipoCurso tipo), para establecer el estado y el tipo del curso.

calcularCosteMatricula(), para calcular el coste total de las matrículas en el curso.

En cuanto a las relaciones entre clases, deberías añadir atributos en cada clase para representar las relaciones definidas en el diagrama UML. Por ejemplo, en la clase Profesor, podrías añadir un atributo _cursosImpartidos de tipo List<CursoPropio> para representar la relación "imparte" con la clase CursoPropio. En la clase CursoPropio, ya tienes algunos atributos que representan relaciones, como _director y _secretario, que son objetos de la clase ProfesorUCLM.