You are on page 1of 12

II Definir adecuadamente las clases en Java que se derivan de los siguientes diagramas de clases UML:

a-




Profesores

dirige
Departamentos

1 1

public class Profesores{

private Departamentos jefatura;

}

public class Departamentos{

private Profesores Director;

}





Profesores

pertenece a
Departamentos

* 1






public class Profesores{

private Departamentos areaTrabajo;

}

public class Departamentos{

private Profesores profesor[];

}



Cuentas

es titular de
Clientes

0..* 1..*



public class Cuentas{

private Cliente titular[];

}

public class Clientes{

private Cuenta cuenta[];

}

b-


Personas

1

1
casada con
public class Personas{

private Personas pareja;

}

c-

Cuentas Clientes
-NroCta tiene -numero
-fechaDeApertura 1..1 * -descripcin
-saldo -importe
public class Cuentas{
private String NroCta;
private Date fechaDeApertura;
private float saldo;
private Clientes titular[];

}
public class Clientes{
private String numero;
private String descripcion;
private float importe;
private Cuentas cuenta;
}



d-

Libros
ISBN
Titulo
Autor
Editorial
Ao
acerca
de
Temas 1
ID
Descripcin
*
super
* 1..*

public class Libros{
private String ISBN;
private String titulo;
private String Autor;
private String editorial;
private Date aoPublicacion;
private Temas tema[];

}
public class Temas{
private int ID;
private String descripcion;
private Libros ejemplar[];
private ArrayList subTema= new ArrayList();
// ArrayList ser varios subTema para guardar
//objetos Temas
}


e-


Comentarios
-fecha
-texto
-puntuacin

Libros
ISBN
Titulo
Editorial

Autores
nombre

* 1 * *
* *

1 *
Usuarios
-nombre
-clave

Temas -super
Descripcin
*

-sub *





Primero definimos las clases sin relacionar:
public class Comentarios{

private Date fecha;
private String texto;
private int puntuacin;

}
public class Libros{

private String ISBN;
private String titulo;
private String editorial;

}
public class Autores{
private String nombre;

}
public class Usuarios{

private String nombre;
private String clave;

}
public class Temas{

private String descripcin;

}


Una vez definidas las clases establecemos las relaciones, para ello se procede tomando solo pares de clases que estn
relacionados, finalizamos con las clases con relacin involutiva:
public class Comentarios{
private Date fecha;
private String texto;
private int puntuacin;
private Libros libro;
private Usuarios critico;

}

public class Libros{
private String ISBN;
private String titulo;
private String editorial;
private Comentarios comentario[];
private Autores autor[];
private Temas contenido[];

}

public class Autores{
private String nombre;
private Libros libro[];

}

public class Usuarios{
private String nombre;
private String clave;
private Comentarios critica[];

}

public class Temas{
private String descripcin;
private Libros libro[];
private ArrayList subtemas= new ArrayList();
private ArrayList supTemas= new ArrayList();

}

f-




IDAlumno
DNIAlumno
NombreAlum
Direccin
Beca
Alumnos
IDAsignatura
nombreAsig
crditos
carcter
curso
Asignaturas
IDGrupo
Tipo
Grupos
Calificacin
SeMatriculaEn
DNIProfesor
nombreProf
categora
area
Profesores
IDAula
Capacidad
Aulas
Da
Hora
AsignadaA
IDDepartamento
nombreDepart
Departamentos
Impartida en ensea
Pertenece a
1..*
*
1 1..*
* 1..*
*
1
dirige
1
1
*
*
Primero definimos las clases sin relacionar, luego proceder a agregar los atributos de tipo clase
public class Alumnos{
private IDAlumno;
private String DNIAlumno;
private String NombreAlum;
private String Direccion;
private int beca;
private SeMatriculaEn grupoInscrito[];

}
public class Asignaturas{
private int IDAsignatura;
private String nombreAsig;
private int creditos;
private String caracter;
private String curso;
private Grupos grupoImpartido[ ];

}
public class Grupos{
private int IDGrupo;
private int tipo;
private SeMatriculaEn alumnoMatriculado[];
private Asignaturas asignatura;
private AsignadaA aulaAsignada[];
private Profesores docenteAcargo[];

}
public class aulas{
private int IDAula;
private int capacidad;
private AsignadaA grupoAsignado[ ];
}
public class Profesores{
private String DNIProfesor;
private String nombreProf;
private String Categoria;
private String area;
private Grupos grupoACargo[];
private Departamentos departamento;
private Departamentos jefatura;


}
public class Departamentos{
private String IDDepartamento;
private String nombreDepart;
private Profesores profesor[];
private Profesores Jefe;

}
public class AsignadaA{
private DateTime dia;
private DateTime hora;
private Grupos grupo;
private Aulas aula;

}
public class SeMatriculaEn{
private int calificacin;
private Alumnos alumno;
private Grupos grupoElegido;

}





g- Genere 2 ejemplos de clases donde se aprecie la jerarqua (use diagramas UML y su representacin en cdigo JAVA)

En el caso de una casa de modas, las medidas que se toman a los clientes difieren segn sean varn o mujer

Clientes





Damas Caballeros




public class Clientes{

}
public class Damas extends Clientes{

}
public class Caballeros extends Clientes{

}





En el caso de emisin de comprobantes de pago para un minimarket, existen facturas y boletas segn el tipo de cliente.

Comprobantes





Facturas Boletas




public class Comprobantes{

}
public class Facturas extends Comprobantes{

}
public class Boletas extends Comprobantes{

}


h- Dada la clase Clientes, sugiera las posibles subclases dependiendo del negocio al cual se enfoque. Sustente su
eleccin.

Clientes
-CodCliente: int
-Direccion: String
-Telefono: String
+generarOrdenCompra()
+aprobarComprobante()
+registarCliente()

Un estudio contable da asesora a sus clientes los cuales pueden ser:
Clientes





PersonasNaturales PersonasJuridicas
-nombre: String RazonSocial: String

Un market desea aplicar CRM a sus clientes, por ello los clasifica en:
Clientes





ClientesPotenciales ClientesValorDeValor ClientesValorCero



Un Hotel 4 estrellas clasifica a sus clientes en:
Clientes





ClientesFrecuentes ClientesEventuales






i- Dada la clase Trabajadores para un estudio fotogrfico, genere las posibles subclases

Trabajadores
-CodTrab: int
-DNITrab: String
-nombreTrab: String
-ApellidoPatTrab: String
-sueldo: float
-horario: String
-sexo: boolean
+RegistrarTrab()
+ModificarTrab()
+ReportarTrab()
+EliminarTrab()



Fotografo

Recepcionista DiseadorGrafico Administrador



j- Dada la clase ComprobantesPago, sugiera subclases

ComprobantesPago DetallesComprobante
+codComprob: int cantProd: int
+FechaPedido: Date 1 1..* PrecioVentaVigente: float
+FechaEnvio: Date
+cliente: Clientes




NotasPedidos Boletas Facturas



k- Genere el diagrama de diseo para una biblioteca, se muestra algunas entidades, sugiera atributos, mtodos y
asociaciones. La biblioteca considera solo 1 autor por libro. Solo se presta un libro por usuario.



Usuarios
DetalleCompra PersonalAdm
Bibliotecario
PrestamosLibros
Proveedores
Libros
Categorias
Compras
Editoriales
Autores



















1






1
.
.
*

C
O
D
E
d
i
t
o
r
i
a
l
:

i
n
t

n
o
m
b
r
e
E
d
i
t
o
r
i
a
L
:

S
t
r
i
n
g

p
a
i
s
E
d
i
t
o
r
i
a
l
:

S
t
r
i
n
g

d
i
r
e
c
c
i
o
n
E
d
i
t
o
r
i
a
l
:

S
t
r
i
n
g

E
d
i
t
o
r
i
a
l
e
s

r
e
g
i
s
t
r
a
r
E
d
i
t
o
r
i
a
l
(
)

m
o
d
i
f
i
c
a
r
E
d
i
t
o
r
i
a
l
(
)

r
e
p
o
r
t
a
r
E
d
i
t
o
r
i
a
l
(
)

e
l
i
m
i
n
a
r
E
d
i
t
o
r
i
a
l
(
)

C
O
D
A
u
t
o
r
:

i
n
t

N
o
m
b
r
e
A
u
t
o
r
:
S
t
r
i
n
g

a
p
e
l
l
i
d
o
A
u
t
o
r
:

S
t
r
i
n
g

s
e
u
d
o
n
i
m
o
:

S
t
r
i
n
g

p
a
i
s
A
u
t
o
r
:

S
t
r
i
n
g

A
u
t
o
r
e
s

r
e
g
i
s
t
r
a
r
A
u
t
o
r
(
)

m
o
d
i
f
i
c
a
r
A
u
t
o
r
(
)

r
e
p
o
r
t
a
r
A
u
t
o
r
(
)

e
l
i
m
i
n
a
r
A
u
t
o
r
(
)

C
O
D
A
d
m
i
n
i
s
t
r
a
t
i
v
o
:

S
t
r
i
n
g

n
o
m
b
r
e
A
d
m
i
n
i
s
t
r
a
t
i
v
o
:

S
t
r
i
n
g

a
p
e
l
l
i
d
o
P
a
t
A
d
m
i
n
i
s
t
r
a
t
i
v
o
:

S
t
r
i
n
g

a
p
e
l
l
i
d
o
M
a
t
A
d
m
i
n
i
s
t
r
a
t
i
v
o
:

S
t
r
i
n
g

D
N
I
A
d
m
i
n
i
s
t
r
a
t
i
v
o
:

S
t
r
i
n
g

d
i
r
e
c
c
i
o
n
A
d
m
i
n
i
s
t
r
a
t
i
v
o
:

S
t
r
i
n
g

f
e
c
h
a
N
a
c
A
d
m
i
n
:

D
a
t
e

t
e
l
e
f
o
n
o
F
i
j
o
A
d
m
i
n
s
i
t
r
a
t
i
v
o
:

S
t
r
i
n
g

f
e
c
h
a
C
o
n
t
r
a
t
o
A
d
m
i
n
:

D
a
t
e

P
e
r
s
o
n
a
l
A
d
m
i
n
i
s
t
r
a
t
i
v
o

r
e
g
i
s
t
r
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

m
o
d
i
f
i
c
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

r
e
p
o
r
t
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

e
l
i
m
i
n
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

C
O
D
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

n
o
m
b
r
e
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

a
p
e
l
l
i
d
o
P
a
t
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

a
p
e
l
l
i
d
o
M
a
t
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

D
N
I
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

d
i
r
e
c
c
i
o
n
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

f
e
c
h
a
N
a
c
B
i
b
:

D
a
t
e

t
e
l
e
f
o
n
o
F
i
j
o
B
i
b
l
i
o
t
e
c
a
r
i
o
:

S
t
r
i
n
g

f
e
c
h
a
C
o
n
t
r
a
t
o
B
i
b
:

D
a
t
e

B
i
b
l
i
o
t
e
c
a
r
i
o
s

r
e
g
i
s
t
r
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

m
o
d
i
f
i
c
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

r
e
p
o
r
t
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

e
l
i
m
i
n
a
r
B
i
b
l
i
o
t
e
c
a
r
i
o
(
)

C
O
D
C
a
t
e
g
o
r
i
a
:

i
n
t

n
o
m
b
r
e
C
a
t
e
g
o
r
i
a
:

S
t
r
i
n
g

d
e
s
c
r
i
p
c
i
o
n
C
a
t
e
g
o
r
i
a
:

S
t
r
i
n
g

C
a
t
e
g
o
r
i
a
s

r
e
g
i
s
t
r
a
r
C
a
t
e
g
o
r
i
a
(
)

m
o
d
i
f
i
c
a
r
C
a
t
e
g
o
r
i
a
(
)

r
e
p
o
r
t
a
r
C
a
t
e
g
o
r
i
a
(
)

e
l
i
m
i
n
a
r
C
a
t
e
g
o
r
i
a
(
)

C
O
D
L
i
b
r
o
:

i
n
t

T
i
t
u
l
o
:

S
t
r
i
n
g

N
u
m
e
r
o
C
o
p
i
a
s
:

i
n
t

F
e
c
h
a
P
u
b
l
i
c
a
c
i
o
n
:

D
a
t
e

E
d
i
c
i
o
n
:

S
t
r
i
n
g

I
S
B
N
:

S
t
r
i
n
g

C
o
d
i
g
o
B
a
r
r
a
s
:

e
n
t

E
s
t
a
d
o
:

S
t
r
i
n
g

L
i
b
r
o
s

r
e
g
i
s
t
r
a
r
L
i
b
r
o
(
)

m
o
d
i
f
i
c
a
r
L
i
b
r
o
(
)

r
e
p
o
r
t
a
r
L
i
b
r
o
(
)

e
l
i
m
n
a
r
L
i
b
r
o
(
)

C
O
D
L
i
b
r
o
:

i
n
t

N
r
o
C
o
m
p
r
o
b
a
n
t
e
:

S
t
r
i
n
g

C
a
n
t
C
o
m
p
r
a
d
a
:

I
n
t

P
r
e
c
i
o
C
o
m
p
r
a
V
i
g
e
n
t
e
:

F
l
o
a
t

D
e
s
c
u
e
n
t
o
:

F
l
o
a
t

D
e
t
a
l
l
e
C
o
m
p
r
a
s

r
e
g
i
s
t
r
a
r
D
e
t
a
l
l
e
(
)

m
o
d
i
f
i
c
a
r
D
e
t
a
l
l
e
(
)

e
l
i
m
i
n
a
r
D
e
t
a
l
l
e
(
)

c
a
l
c
u
l
a
r
S
u
b
t
o
t
a
l
(
)

N
r
o
C
o
m
p
r
o
b
a
n
t
e
:

S
t
r
i
n
g

O
b
s
e
r
v
a
c
i
o
n
e
s
:

S
t
r
i
n
g

a
n
u
l
a
d
o
:

B
o
o
l
e
a
n

e
n
E
s
p
e
r
a
:

B
o
o
l
e
a
n

f
e
c
h
a
P
e
d
i
d
o
:

D
a
t
e
T
i
m
e

f
e
c
h
a
E
n
t
r
e
g
a
:

D
a
t
e
T
i
m
e

C
o
m
p
r
a
s

r
e
g
i
s
t
r
a
r
C
o
m
p
r
a
(
)

m
o
d
i
f
i
c
a
r
C
o
m
p
r
a
(
)

a
n
u
l
a
r
C
o
m
p
r
a
(
)

e
l
i
m
i
n
a
r
C
o
m
p
r
a
(
)

c
a
l
c
u
l
a
r
T
o
t
a
l
(
)

C
O
D
P
r
e
s
t
a
m
o
:

i
n
t

F
e
c
h
a
P
r
e
s
t
a
m
o
:

D
a
t
e
T
i
m
e

F
e
c
h
a
D
e
v
o
l
u
c
i
o
n
:

D
a
t
e
T
i
m
e

F
e
c
h
a
C
a
d
u
c
i
d
a
d
:

D
a
t
e
T
i
m
e

E
s
t
a
d
o
D
e
v
o
l
u
c
i
o
n
:

s
t
r
i
n
g

P
r
e
s
t
a
m
o
s

r
e
g
i
s
t
r
a
r
P
r
e
s
t
a
m
o
(
)

m
o
d
i
f
i
c
a
r
P
r
e
s
t
a
m
o
(
)

e
l
i
m
i
n
a
r
P
r
e
s
t
a
m
o
(
)

r
e
p
o
r
t
a
r
I
n
c
i
d
e
n
c
i
a
(
)

C
O
D
U
s
u
a
r
i
o
:

i
n
t

D
N
I
U
s
u
a
r
i
o
:

S
t
r
i
n
g

n
o
m
b
r
e
U
s
u
a
r
i
o
:

S
t
r
i
n
g

a
p
e
l
l
i
d
o
P
a
t
U
s
u
a
r
i
o
:

S
t
r
i
n
g

a
p
e
l
l
i
d
o
M
a
t
U
s
u
a
r
i
o
:

S
t
r
i
n
g

D
i
r
e
c
c
i
o
n
U
s
u
a
r
i
o
:

S
t
r
i
n
g

t
e
l
e
f
o
n
o
F
i
j
o
U
s
u
a
r
i
o
:

S
t
r
i
n
g

d
e
u
d
o
r
:

b
o
o
l
e
a
n

d
e
B
a
j
a
:

b
o
o
l
e
a
n

U
s
u
a
r
i
o
s

r
e
g
i
s
t
r
a
r
U
s
u
a
r
i
o
(
)

m
o
d
i
f
i
c
a
r
U
s
u
a
r
i
o
(
)

e
l
i
m
i
n
a
r
U
s
u
a
r
i
o
(
)

a
s
i
g
n
a
r
I
n
c
i
d
e
n
c
i
a
(
)

C
O
D
P
r
o
v
e
e
d
o
r
:

S
t
r
i
n
g

R
a
z
o
n
S
o
c
i
a
l
:

S
t
r
i
n
g

R
U
C
:

S
t
r
i
n
g

D
i
r
e
c
c
i
o
n
P
r
o
v
:

S
t
r
i
n
g

T
e
l
e
f
o
n
o
F
i
j
o
P
r
o
v
:

S
t
r
i
n
g

P
r
o
v
e
e
d
o
r
e
s

r
e
g
i
s
t
r
a
r
P
r
o
v
e
e
d
o
r
(
)

m
o
d
i
f
i
c
a
r
P
r
o
v
e
e
d
o
r
(
)

e
l
i
m
i
n
a
r
P
r
o
v
e
e
d
o
r
(
)

r
e
p
o
r
t
a
r
P
r
o
v
e
e
d
o
r
(
)

1
.
.
*






1

1






1
.
.
*

1






1
.
.
*

1
.
.
*






1

1
.
.
*






1

1
.
.
*






1

1..* 1
1






1
.
.
*

1 1..*
l- En el caso anterior cual sera la estructura de cdigo en java para crear un objeto llamado proveedor que sea instancia
de la clase Proveedores.

Proveedores proveedor1 = new Proveedores();

ll- Genere la estructura de cdigo en java para las clases Autores y Libros.
public class Autores{
CODAutor: int;
NombreAutor:String;
apellidoAutor: String;
seudonimo: String;
paisAutor: String;
registrarAutor(){

}
modificarAutor(){

}
reportarAutor(){

}
eliminarAutor()
}
public class Libros{
CODLibro: int
Titulo: String
NumeroCopias: int
FechaPublicacion: Date
Edicion: String
ISBN: String
CodigoBarras: ent
Estado: String
registrarLibro(){

}
modificarLibro(){

}
reportarLibro(){

}
elimnarLibro(){

}
}




































III- Analizar la documentacin de las siguientes organizaciones y/o negocios

a-

En los tickets de venta identificamos los datos que intervienen una operacin de venta, descartamos los datos
informativos del negocio y/o los que sern siempre constantes.

Datos que son informativos acerca del negocio y/o constantes: Nombre de la empresa (Supermercados SUDOKU),
RUC de la empresa (32516720618)

Ahora identificamos los atributos y establecemos a que objetos (entidad) pertenecen

Comprobantes: NumeroComprobante(Ticket #:022-22645), FechaHoraEmision (26/08/2011 07:55:25 PM), en el
caso mostrado es una boleta de venta si el cliente estuviera registrado se mostrara sus datos, en el caso no es as lo
cual indica que no esta registrado el cliente, un comprobante puede ser o bien boleta o bien factura, en este ultimo caso
se mostrara razn social.

Detalles: nombreArticulo (POLLO ENTERO 02 TIPO BRASA), cantidadPedida (01), precioVentaDelDia(16.99).
Descartamos subtotal y total ya que son datos que se obtiene de la operacin de otros datos, es decir son campos
calculados.
Nota: el nombre del articulo se muestra en los detalles, pero en este caso no es necesario crear un atributo ya que esta
relacionado con artculos con el cual ya podemos saber en cualquier momento de que articulo se trata.

Clientes: Si bien es una boleta y no figura datos del cliente, este comprobante necesariamente es emitido para un
cliente, en este caso ser un cliente no registrado, pero podemos asumir sus datos: Nombre, apellidoPaterno,
apellidosMaterno, DNI, IDCliente. Direccin

Empleados: IDEmpleado, cargo, nombre1Empleado, ApellidoPatEmpleado

Locales: IDLocal, DireccionLocal(JR. MANUEL VILLAVICENCIO # 548), distrito (Chimbote) telfono, fax

Cajas: IdCaja, NombreCaja(08)

Articulos: nombreArticulo(POLLO ENTERO 02 TIPO BRASA), precioVenta(16.99), IDArticulo


















IDEmpleado
cargoEmpleado
nombre1Empleado
apellidoPatEmpleado
Empleados
RegistrarEmpleado()
modificarEmpleado()
eliminarEmpleado()
Calcularsalario()
NumeroComprobante
IDArticulo
cantidadPedida
precioVentaDelDia
Detalles

IDCliente
RazonSocial
NombreCliente
ApellidoCliente
RUCCliente
DNICliente
direccionCliente
distritoCliente
Clientes

NumeroComprobante
FechaEmision
TipoComprobante
anulado
Comprobantes
Registrarcompra()
calcularTotal()
eliminarComprobante()
anularComprobante()
imprimirComprobante()
IDLocal
nombreLocal
Descripcion
direccionLocal
distritoLocal
telefonoLocal
Locales
registrarLocal()
cierreCaja()
anularLocal()
1
.
.
*










1

IDCaja
nombreCaja
Descripcion
estado
Cajas
registrarCaja()
abrirCaja()
cerrarCaja()
Reportarventas()
1 1..* 1..* 1
1..* 1
*










*

IDArticulo
nombreArticulo
PrecioVentaUnit
Articulos

1..* 1
fechaSesion
horaInicioSesion
horaFinSesion
Sesiones


b-
En las boletas de venta identificamos los datos que intervienen una operacin de venta, descartamos los datos
informativos del negocio y/o los que sern siempre constantes.

Datos que son informativos acerca del negocio y/o constantes: Nombre de la empresa (DISTRIBUIDORA
RAPICOPIAS SERVIS E.I.R.L), RUC de la empresa (22455440169)

Ahora identificamos los atributos y establecemos a que objetos (entidad) pertenecen

Comprobantes: NumeroComprobante(22455440169), FechaHoraEmision (23/04/2012) , en el caso mostrado es una
boleta de venta si el cliente estuviera registrado se mostrara sus datos, en el caso no es as lo cual indica que no est
registrado el cliente, un comprobante puede ser o bien boleta o bien factura, en este ltimo caso se mostrara razn
social.

Detalles: descriocion (CORRECTOR LIQ PAPER), cantidadPedida (01), precioUnitDelDia(3.90). Descartamos
importe y total ya que son datos que se obtiene de la operacin de otros datos, es decir son campos calculados.

Clientes: Si bien es una boleta y no figura datos completos de un cliente, este comprobante necesariamente es emitido
para algnuo, en este caso ser un cliente no registrado, pero podemos asumir sus datos: Nombre, apellidoPaterno,
apellidosMaterno, DNI, IDCliente. Direccin

Empleados: IDEmpleado(006), cargo(caja), nombre1Empleado, ApellidoPatEmpleado

Articulos: IDArticulo, descriocion (CORRECTOR LIQ PAPER), precioVenta(3.90),

You might also like