Está en la página 1de 4

Universidad Tecnolgica Nacional FRC Ingeniera en Sistemas de Informacin

Paradigmas de Programacin Curso: 2k3 Ciclo: 2014



Autor: Ing. Nicols Colacioppo Pgina 1 de 4


Trabajo Prctico Integrador Nro 1.


Unidad 4: Paradigma orientado a objetos.



Temas: Objetos y mensajes en Smalltalk. Uso de ventanas en Smalltalk. Mensajes unarios, binarios
y de palabras claves. Bloques. Composicin de clases. Abstraccin. Encapsulamiento. Herencia.
Polimorfismo. Colecciones.
Objetivos:
Integrar los contenidos prcticos correspondientes a la programacin orientada a objetos.
Reforzar las destrezas necesarias para resolver una situacin problemtica utilizando la
programacin orientada a objetos en Smalltalk.
Modelar una solucin de un problema mediante el paradigma orientado a objetos.

Caso de Estudio:
Una importante cadena de supermercados necesita implementar un sistema de cuentas de puntos para cada
uno de los clientes que deseen su cuenta de puntos, la cual le posibilitar ir sumando puntos con sus
compras y luego poder canjearlos por premios segn la cantidad de puntos acumulados en el saldo de la
tarjeta de puntos.
Por tal motivo, la firma de este supermercado requiere un sistema orientado a objetos que permita
gestionar informacin referente a las cuentas de puntos que administra para sus clientes.
A la empresa le interesa registrar de los clientes los siguientes datos: nmero de D.N.I., apellido, nombre y
la cuenta de puntos que le perteneciera. Cada cliente, slo podr tener una nica cuenta de puntos como
mximo.
De cada cuenta le interesa registrar: nmero de cuenta de puntos, fecha y hora de apertura, fecha y hora
de finalizacin (se asigna cuando se da de baja la cuenta de puntos), saldo de puntos disponibles, y todas
las operaciones realizadas. Cada cuenta de puntos tiene un nmero nico, el cual no deber repetirse en
ninguna otra cuenta de puntos de esta empresa.
Las operaciones que se registran en cada cuenta de puntos pueden ser: compras o canjes por premios.
Si es una compra se registran: fecha y hora de la compra, importe total facturado en dicha compra, tipo de
cobro (1: contado efectivo, 2: dbito automtico, 3: tarjeta de crdito). En caso de haberse cobrado
mediante alguna tarjeta de crdito se deber registrar el nmero de tarjeta de crdito y la cantidad de
cuotas.
De los canjes por premios se registran: fecha y hora del canje, importe en pesos [$] del premio, forma de
entrega del premio (1: entrega en el propio supermercado, 2: entrega a domicilio). En el caso de los
canjes de premios con entrega a domicilio se deber registrar el importe en pesos [$] del viaje de entrega al
domicilio.
El supermercado necesita gestionar las cuentas de puntos de sus clientes, las cuales debern estar
ordenadas ascendientemente por el o los atributos que considere ms apropiado a su criterio (se deber
justificar la eleccin).
Universidad Tecnolgica Nacional FRC Ingeniera en Sistemas de Informacin
Paradigmas de Programacin Curso: 2k3 Ciclo: 2014

Autor: Ing. Nicols Colacioppo Pgina 2 de 4

Las operaciones debern estar ordenadas segn su realizacin (desde la ms reciente hasta la ms
antigua).

Consideraciones:
Al realizarse cada operacin, se deber actualizar el saldo de puntos disponibles, siempre y cuando la
operacin solicitada sea vlida. El clculo del puntaje a actualizar sobre el saldo de la cuenta de puntos,
depender de la clase de operacin, y de las caractersticas propias de cada una, tal como se detalla a
continuacin:
En el caso de las compras, el puntaje a actualizar ser positivo, sumndose de esta forma al saldo de
la cuenta de puntos correspondiente (aumentar el puntaje del saldo de puntos), y depender del
importe facturado y del tipo de cobro con el que se haya realizado:
Compra con cobro contado efectivo, el puntaje a actualizar ser igual al 20% del importe en
pesos [$] facturado en dicha compra.
Compra con cobro dbito automtico, el puntaje a actualizar ser igual al 15% del importe en
pesos [$] facturado en dicha compra.
Compra con cobro tarjeta de crdito, el puntaje a actualizar ser igual al 12% del importe en
pesos [$] facturado en dicha compra en caso de pagarse en 6 cuotas o menos; o ser igual al 10%
del importe en pesos [$] facturado en dicha compra en caso de pagarse en ms de 6 cuotas.
En el caso de los canjes por premios, el puntaje a actualizar ser negativo, sumndose de esta forma
al saldo de la cuenta de puntos correspondiente (disminuir el puntaje del saldo de puntos), y
depender del valor en puntos del premio y de la forma de entrega del premio al cliente:
Canje de premio con entrega en el propio supermercado: simplemente el puntaje a actualizar es
igual al importe en pesos [$] del premio.
Canje de premio con entrega a domicilio del cliente: el puntaje a actualizar es igual al importe en
pesos [$] del premio ms el importe en pesos [$] del envo del premio al domicilio.

Recuerde que la operacin de canje del premio slo podr efectuarse si el saldo de puntos de dicha cuenta
es mayor a igual total de puntos que se descontarn por tal canje.
Tenga en cuenta que es condicin necesaria para realizar cualquier operacin, que la cuenta de puntos del
cliente est abierta (no deber estar cerrada).

Se deber poder realizar mnimamente lo siguiente:
Dar de alta un nuevo cliente del supermercado.
Abrirle a un cierto cliente una cuenta de puntos (recuerde que no se podrn crear ms de una cuenta
con el mismo nmero).
Cerrar una cuenta de puntos. En este caso, la cuenta de puntos sigue existiendo (no se elimina), pero
se encuentra cerrada (no se puede utilizar ms). Se deber especificar el DNI del cliente y el nmero de
cuenta de puntos a cerrar, debiendo existir y corresponderse ambos objetos (si bien cada cuenta es
nica, pero se deber corresponder con la que tenga abierta, un determinado cliente).
Dar de baja una cuenta de puntos. En este caso, se deber eliminar definitivamente la cuenta de
puntos. Se deber especificar el DNI del cliente y el nmero de cuenta de puntos a eliminar, debiendo
existir y corresponderse ambos objetos (si bien cada cuenta de puntos es nica, pero se deber
corresponder con la que tenga abierta, un determinado cliente).
Comprar cierto importe en pesos [$] asociado a una determinada cuenta de puntos, realizando las
validaciones pertinentes. Se deber especificar el DNI del cliente, el nmero de cuenta de puntos en
cuestin y la operacin completa correspondiente.
Universidad Tecnolgica Nacional FRC Ingeniera en Sistemas de Informacin
Paradigmas de Programacin Curso: 2k3 Ciclo: 2014

Autor: Ing. Nicols Colacioppo Pgina 3 de 4

Canjear un premio de cierto importe en pesos [$] de una determinada cuenta de puntos, realizando las
validaciones pertinentes. Se deber especificar el DNI del cliente, el nmero de cuenta de puntos en
cuestin y la operacin completa correspondiente.
Conocer el saldo promedio de puntos de todas las cuentas de puntos.
Conocer los datos las operaciones (especificando adems el nombre de la clase de operacin de la cual
se trate), ordenadas descendentemente por fecha y hora de realizacin, pertenecientes a una
determinada cuenta de puntos durante un periodo de tiempo especificado (fecha desde y fecha hasta).
Se deber especificar el DNI del cliente, el nmero de cuenta de puntos en cuestin, la fecha desde y la
fecha hasta.
Conocer la cantidad de compras realizadas por un determinado cliente. Se deber especificar el DNI del
cliente y el nmero de cuenta de puntos en cuestin.
Conocer el importe total en pesos [$] de todas las compras que realiz un determinado cliente. Se
deber especificar el DNI del cliente y el nmero de cuenta de puntos en cuestin.
Conocer el porcentaje de clientes cuya cuenta se encuentre cerrada.
Conocer la cantidad de canjes de premios realizados efectivamente por un determinado cliente. Se
deber especificar el DNI del cliente y el nmero de cuenta de puntos en cuestin.
Conocer el saldo total de puntos entre todas las cuentas de puntos cuya cantidad de operaciones sea
superior a x. Se deber especificar la cantidad x de referencia.
Conocer los datos de las operaciones de una determinada cuenta de puntos cuyo puntaje a actualizar
sea superior a cierto valor x. Se deber especificar el DNI del cliente, el nmero de cuenta de puntos en
cuestin, y el puntaje x de referencia.
Mostrar los datos de todos los clientes del supermercado, ordenados ascendentemente por apellido y
nombre, que tengan un saldo de puntos superior a cierto valor x. Se deber especificar el saldo de
puntos x de referencia.
Dar de baja un cliente del supermercado. Se deber especificar el DNI del cliente. Sera recomendable
que en caso de tener una cuenta de puntos abierta, advertir la situacin y pedir confirmacin antes de
proceder con la baja definitiva del cliente.


Consignas generales:
Define adecuadamente la jerarqua de clases, y asigna en cada clase los atributos y mtodos que
correspondan segn el criterio del grupo.
Realizar el diagrama de clases completo correspondiente a la solucin de la situacin problemtica
anterior.
Realiza la codificacin completa en Smalltalk de todas las clases involucradas en el diseo de la solucin
problemtica.
Escribe las lneas de cdigo necesarias en la ventana Workspace para hacer funcionar el programa y
verifica en la ventana Transcript todas las salidas de informacin generadas.
Ten presente de realizar SIEMPRE las validaciones de los objetos que se ingresan por teclado o que se
reciben como colaboradores en los mtodos modificadores y de negocio.
Realiza comentarios pertinentes en cada mtodo. Para cada mtodo que implementes especifica,
adems, a modo de comentario si es un mtodo unario, binario o de palabra clave (en este ltimo caso,
indica de cuntas palabras claves es el mtodo).


Universidad Tecnolgica Nacional FRC Ingeniera en Sistemas de Informacin
Paradigmas de Programacin Curso: 2k3 Ciclo: 2014

Autor: Ing. Nicols Colacioppo Pgina 4 de 4

Criterios de evaluacin:
Identificacin de todas las clases involucradas, y asignacin correcta de atributos y responsabilidades de
cada una.
Adecuado diseo del diagrama de clases: jerarqua de clases y dems relaciones bien especificadas y
representadas, etc.
Claridad y completitud del diagrama de clases.
Prolijidad en la codificacin en Smalltalk: identificadores, comentarios, envo de mensajes, etc.
Manejo adecuado de TODAS las propiedades esenciales de la programacin orientada a objetos en la
resolucin propuesta.
Delegacin apropiada de responsabilidades en las clases involucradas.
Validaciones.
Correcta utilizacin de mtodos:
unarios;
binarios;
de palabras clave: de una, dos, y ms palabras claves.
Se debern utilizar todos estos tipos de mensajes en la resolucin propuesta en forma adecuada.
Eleccin y uso apropiado de las colecciones en cada caso.
Variedad de mensajes utilizados de las diferentes colecciones utilizadas, y de otros objetos.
Uso de mensajes especficos tanto de colecciones como de otros objetos, para cada caso.
Correcta identificacin y usos de mtodos polimrficos.
Generacin y visualizacin correcta de todas las salidas de informacin.
Cumplimiento de todas las responsabilidades solicitadas.


Condiciones generales de entrega:
Este trabajo se deber realizar en grupos. Cada integrante deber subir el trabajo, conforme el
reglamento trabajos prcticos, explicado en clases.
Todos los integrantes del grupo debern nombrar el archivo comprimido de la misma forma. Ejemplo:
TP1_NroLeg1erIntegranteApellido1erIntegrante_NroLeg2doIntegranteApellido2doIntegrente_NroLeg3erI
ntegranteApellido3erIntegrante. El orden en el cual debern colocar los legajos y apellidos cada
integrante en el nombre del archivo comprimido ser de acuerdo al orden alfabtico de los apellidos de
los integrantes, desde la A hasta la Z. El hecho de no cumplir con esta especificacin podr implicar que
se descuenten hasta 2 puntos sobre 10 en la nota del presente trabajo.
Se deber subir una carpeta comprimida que contenga en su interior el archivo .ST correspondiente a la
codificacin en Smalltalk; un archivo de texto con el cdigo necesario a colocar en la ventana
WorkSpace para hacer funcionar el programa; y el diagrama de clases completo correspondiente a la
solucin de la situacin problemtica anteriormente explicada.
Plazo mximo de entrega de este trabajo: HASTA el 10/09/2014 hasta las 23:55 hs.
Todas las consultas de este TP1 pueden realizarlas a travs del foro del aula virtual.
xito a todos!

También podría gustarte