Professional Documents
Culture Documents
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),