Está en la página 1de 15

IV. Programacin orientada a objetos y modelado.

Una de las actividades ms comunes en el mundo financiero es la realizacin de


simulaciones que permitan a los clientes saber el rendimiento de sus productos a travs
del tiempo, contemplando diferentes escenarios, as como las posibles situaciones que
pueden presentarse.

Se quiere crear un programa que haga la simulacin de un modelo bancario. Un
cuentahabiente tiene nombre, domicilio, telfono y nmero de cuenta. Una cuenta, por su
parte, est constituida por tres productos financieros bsicos: (1) Una cuenta de ahorro,
(2) una cuenta corriente y (3) un certificado de depsito a plazo fijo (CDPF). Estos
productos son independientes y tienen comportamientos particulares.

El saldo total de la cuenta es la suma de lo que tiene el cliente en cada uno de dichos
productos. En la cuenta corriente el cliente puede depositar o retirar su dinero, este tipo
de cuenta no recibe ningn inters. En la cuenta de ahorros se paga un inters mensual
del 6% sobre el saldo. Cuando el cliente abre un CDPF, define la cantidad de depsito
que quiere invertir y negocia con el banco el inters mensual. A diferencia de la cuenta
corriente o la cuenta de ahorros en un CDPF no se puede realizar ningn retiro o
depsito, las nicas operaciones posibles son abrir o cerrar la cuenta. Si es abrir, el dinero
se toma de la cuenta corriente y si es cerrar, el dinero se deposita en la cuenta corriente
del cliente.

Se requiere que el programa permita a una persona simular el manejo de sus productos
bancarios, dndole las facilidades de: (1) hacer las operaciones necesarias sobre los
productos que existen en las cuentas y (2) avanzar mes por mes para que el cliente
pueda ver el resultado de sus movimientos bancarios.

IV.1. Caractersticas del modelo orientado a objetos

Una vez teniendo la definicin del problema se deben establecer los requerimientos
funcionales. Un requerimiento funcional es una operacin que el programa debe de
proveer al usuario y se describe a travs de cuatro elementos:

Nombre
Operacin
Entradas
Resultado

Una de las primeras actividades es identificar las entidades que intervienen en el
problema. Estas entidades pueden ser concretas como una persona o abstractas como un
concepto.

En la programacin orientada a objetos las entidades se denominan clases y sern los
elementos bsicos del diseo y posteriormente de la implementacin.

Una vez identificadas las entidades, el siguiente paso es establecer las caractersticas de
cada entidad. Por cada caracterstica se debe asignar la entidad a la que pertenece,
adems se tiene que registrar el nombre de la caracterstica, descripcin y conjunto de
valores permitidos.

A las caractersticas en la programacin orientada a objetos se les denomina atributos y al
igual que las clases son parte fundamental del diseo.

Del problema anterior realice:

Entidades:

Entidad Descripcin





Caractersticas

Entidad Nombre Descripcin Conjunto de Valores permitidos





Requerimientos Funcionales:

Requerimiento
Funcional 1
Nombre
Operacin
Entrada
Resultado
Requerimiento
Funcional 2
Nombre
Operacin
Entrada
Resultado
Requerimiento
Funcional 3
Nombre
Operacin
Entrada
Resultado
Requerimiento
Funcional 4
Nombre
Operacin
Entrada
Resultado


IV.2. Elementos primordiales en el modelo de objetos

Introduccin:

Si se quiere construir una caseta para un perro se puede comenzar muy bien con un
montn de de madera, algunos clavos y unas cuantas herramientas (martillo, serrucho,
cinta mtrica, etc.). En pocas horas y con poca planificacin previa, es posible que
termine una caseta razonablemente funcional, y que probablemente la pueda realizar sin
ayuda de nadie. Si no sale bien, siempre se puede volver a empezar o buscar un perro
menos exigente.

Si se quiere construir una casa para una familia, se puede comenzar con un montn de
madera, algunos clavos, y unas cuantas herramientas bsicas, pero va a llevar ms
tiempo y con seguridad, la familia ser ms exigente que el perro. En este caso, a menos
que se haya hecho antes muchas veces, se obtendr un resultado mejor haciendo una
planificacin detallada antes de golpear el primer clavo o echar los cimientos. Como
mnimo, se debe realizar algunos bocetos del aspecto que se quiere que tenga la casa.

Aunque es humanamente posible que uno se construya su propia casa, ser mucho ms
eficiente trabajar con otros o comprar material pre-construido. Mientras se cumplan los
planes y se permanezca dentro de las limitaciones de tiempo y dinero, es muy probable
que la familia est satisfecha. Si no sale bien, no se puede cambiar precisamente de
familia, as que es mejor establecer las expectativas al principio y controlar los cambios
cuidadosamente.

Programador
Actividades para el modelado de Clases
Identificar entidades
Modelar sus caractersticas
Buscar relaciones entre las entidades
Describir los requerimientos
funcionales
Documentar
Curiosamente, un montn de empresas de desarrollo de software comienza queriendo
construir rascacielos, pero enfocan el problema como si estuvieran enfrentndose a la
caseta de un perro. Dada la creciente demanda de desarrollo de software en la era de
Internet, los equipos de desarrollo a menudo recurren a la nica cosa que realmente
saben hacer bien: toneladas de lneas de cdigo. Si realmente se quiere construir el
software equivalente a una casa o un rascacielos, el problema es algo ms que una
cuestin de escribir grandes cantidades de software. De hecho, el truco est en crear el
software apropiado y en imaginar cmo escribir menos software.

Los proyectos que fracasan lo hacen por circunstancias propias, pero todos los proyectos
con xito se parecen en muchos aspectos. Hay muchos elementos que contribuyen a que
una empresa de software sea exitosa; uno de estos elementos es el modelado.

El Modelado es una tcnica de ingeniera probada y bien aceptada. Construimos modelos
arquitectnicos de casa, rascacielos, puentes, carreteras, etc., para ayudar a sus usuarios
a visualizar el producto final. Incluso podemos construir modelos matemticos para
analizar los efectos de vientos o terremotos sobre nuestros edificios.

Qu es un Modelo?

Un Modelo es una simplificacin de la realidad.

Por qu Modelamos?

Construimos modelos para comprender mejor el sistema que estamos desarrollando.

El Modelado no es slo para los grandes sistemas. Incluso el equivalente software de una
caseta de perro puede beneficiarse de algo de modelado. Sin embargo, es absolutamente
cierto que, cuanto ms grande y complejo es el sistema, el modelado se hace ms
importante, por una simple razn:

Construimos modelados de sistemas complejos porque no
podemos comprender el sistema en su totalidad

IV.3. Representacin grfica del diseo

Clases

Una clase es una descripcin de un conjunto de objetos que comparten los mismos
atributos, operaciones, relaciones y semntica.

En el Lenguaje Unificado de Modelado (UML, Unifield Modeling Language), una clase es
representada por un rectngulo que posee tres divisiones:


En donde:

La parte superior: Contiene el nombre de la Clase
La intermedia: Contiene los atributos (o variables de instancia) que caracterizan a
la Clase (pueden ser private, protected o public).
La parte Inferior: Contiene los mtodos u operaciones, los cuales son la forma
como interacta el objeto con su entorno (dependiendo de la visibilidad: private,
protected o public).

Atributos y Mtodos:

Atributos:

Los atributos o caractersticas de una Clase pueden ser de tres tipos, los que definen el
grado de comunicacin y visibilidad de ellos con el entorno, estos son:

public (+, ): Indica que el atributo ser visible tanto dentro como fuera de la
clase, es decir, es accsesible desde todos lados.
private (, ): Indica que el atributo slo ser accesible desde dentro de la
clase (slo sus mtodos lo pueden accesar).
protected (#, ): Indica que el atributo no ser accesible desde fuera de la
clase, pero si podr ser accesado por mtodos de la clase
adems de las subclases que se deriven (herencia).

acceso Cada variable tiene asociado un tipo que se utiliza para controlar el acceso.

Entre estos se encuentran:
public Esta variable se puede acceder desde cualquier clase.
private Esta variable solo es accesible desde la clase.
Nombre de la clase
Atributos
Comportamiento
protected Esta variable es accesible en todo el paquete y en clases
derivadas de otros paquetes.
defecto Si no especifica ningn tipo de acceso, se utiliza el acceso por
defecto, esto significa que la variable es accesible desde
cualquier clase del paquete.
Nota: Violar las normas de acceso da como resultado un error al compilar el
programa.

static Declara la variable como variable de las clase y no del objeto. Esto es que
solamente puede existir una variable en toda la clase.

Mtodos:

Los mtodos (tambin llamados funciones o procedimientos en otros lenguajes de
programacin) son mini programas dentro de un programa. Por medio de los mtodos se
pueden dividir tareas de un proyecto, lo cual lo har ms manejable.
Los mtodos u operaciones de una clase son la forma en como sta interacta con su
entorno, stos pueden tener las caractersticas:

public (+, ): Indica que el mtodo ser visible tanto dentro como fuera de
la clase, es decir, es accsesible desde todos lados.
private (, ): Indica que el mtodo slo ser accesible desde dentro de la
clase (slo otros mtodos de la clase lo pueden accesar).
protected (#, ): Indica que el mtodo no ser accesible desde fuera de la
clase, pero si podr ser accesado por mtodos de la clase
adems de mtodos de las subclases que se deriven
(herencia).
acceso static tipo NombreDelMtodo (Lista de Argumentos) {
Declaracin de variables del mtodo
Sentencias del mtodo
[return tipo;]
Donde:

acceso Cada mtodo tiene asociado un tipo que se utiliza para controlar el acceso al
mtodo. Entre estos se encuentran:

public Este mtodo pblico se puede llamar de cualquier cdigo que tenga
acceso a la clase.
private Este mtodo privado solo puede ser llamada desde otro mtodo de
la clase en que se defini el mtodo privado.
protected Este mtodo protegido se puede llamar desde otros mtodos de la
clase en que el mtodo esta definido y por cualquier otro mtodo de
las clases que heredan de la clase en que est definido el mtodo.
Tambin est disponible en cualquier objeto de las clases
pertenecientes al mismo paquete que la clase en que est definido
el mtodo.
defecto Si no especifica ningn tipo de acceso, se utiliza el acceso por
defecto, esto significa que el mtodo es accesible a todas las clases
contenidas en le mismo paquete, pero no esta accesible fuera de
ese paquete.
static Declara el mtodo como mtodo de la clase y no como mtodo del objeto (no
hereda el mtodo).

Nota: Un mtodo declarado como static solo puede ser llamado por otro mtodo static
y hacer referencia a variables static.

Ejercicio:

Elabore un mtodo que enve el nombre de una persona y regrese el nmero de vocales
que contiene.

Diagrama de Objetos

Se usan para mostrar el estado del sistema en un momento concreto

Ejemplo: Se desea representar un triangulo, el cual est definido por tres puntos, cada
uno de los cuales tiene dos coordenadas X, Y. El triangulo tiene adems color de lnea y
un color de relleno, un color por su parte est definido por tres valores numricos entre 0 y
255 (estndar RGB por RedGreenBlue). El primer valor numrico define la intensidad del
rojo, el segundo el verde y el tercero el azul. Adems el triangulo tendr las funciones de
calcular el permetro del triangulo y calcular el rea.

Triangulo
Punto1
Punto2
Punto3
ColorLinea
ColorRelleno
Calcula_Perimetro()
Calcula_Area()
Punto
X
Y
Color
Rojo
Verde
Azul
1 3
1 2
El diagrama de objetos se estipula de la siguiente forma:


Ejercicio:

Del siguiente diseo, dibuje una instancia de objetos con su nombre, fecha de nacimiento
y fecha de ingreso al Tecnolgico de Aguascalientes.

ColorRelleno : Color
Rojo = 5
Verde= 170
Azul = 47
Issceles : Triangulo
Punto1 : Punto
X = 10
Y = 10
Punto2 : Punto
X = 20
Y = 20
Punto3 : Punto
X = 50
Y = 70
ColorLnea : Color
Rojo = 105
Verde= 100
Azul = 240
Objeto : Clase
Atributo1 = Expresin

Estudiante
Nombre
ApellidoP
ApellidoM
FechaN
FechaIngreso
Fecha
da
mes
ao
1 2
Constructores:

Un constructor es un mtodo de propsito especfico que se ejecuta automticamente
cuando se crea un objeto de una clase. Un constructor sirve para inicializar las variables
de clase. Los constructores tienen el mismo nombre que la clase, adems no tienen valor
de retorno (incluso ni void) y estn clasificados en constructores por defecto y
alternativos/sobrecargados.

Constructores por defecto

Un constructor que no tiene parmetros se le llama constructor por defecto. Un
constructor por defecto normalmente inicializa las variables con un valor por default.

class Punto
{
private int x;
private int y;

Punto () { //constructor por defecto
x = 0;
y = 0;
}


Punto (int x, int y) {
this.x = x;
this.y = y;
}
}

Regla: Java crea automticamente un constructor por defecto cuando no existe
otro constructor. Tal constructor inicializa las variables tipo int, float, double,
long con cero, las booleanas con false y las referencias con null.

Precaucin: Tenga cuidado con la declaracin de una clase que slo tenga un
constructor con argumentos. En ese caso si se omite un constructor sin
parmetros no ser posible utilizar el constructor por defecto.

class Punto {
private int x;
private int y;
.
}
.
Punto primerPunto = new Punto(); // no es posible utilizar este constructor

Constructores alternativos/sobrecargados

A un constructor con parmetros se le denomina constructor alternativo/sobrecargado

class Punto {
private int x;
private int y;

Punto () { // constructor por defecto
x = 0;
y = 0;
}

Punto (int x, int y) { // constructor alternativo
this.x = x;
this.y = y;
}

Destructores:

Un destructor es una funcin miembro con igual nombre que la clase, pero precedido por
el carcter ~. Una clase slo tiene una funcin destructor que, no tiene argumentos y no
devuelve ningn tipo. Un destructor realiza la operacin opuesta de un constructor,
limpiando el almacenamiento asignado a los objetos cuando se crean. Java no posee
destructores y para recuperar un objeto lo hace por medio del recoleccin de basuras.
Clase Abstracta:

Una clase abstracta es aquella clase que tiene por lo menos un mtodo abstracto
(Declarado pero no definido) y se denota poniendo el nombre de la clase en letras
"itlicas". Una clase abstracta no puede ser instanciada pues posee mtodos abstractos
(an no han sido definidos, es decir, sin implementacin). La nica forma de utilizarlas es
declarar subclases que redefinan los mtodos abstractos, es decir, que definan el cuerpo
de cada mtodo abstracto.

Herencia:

Indica que una subclase hereda los mtodos y atributos de una Sper Clase, por ende la
Subclase adems de poseer sus propios mtodos y atributos, poseer las caractersticas
y atributos visibles de la Sper Clase (public y protected), ejemplo:



En la figura se especifica que Auto y Camin heredan de Vehculo, es decir, Auto posee
los atributos de Vehculo (dueo, puertas, ruedas) adems posee algo particular que es
Descapotable, en cambio Camioneta tambin hereda los atributos de Vehculo (dueo,
puertas, rudas) pero posee como particularidad propia tara y carga.

Asociacin:

La relacin entre clases conocida como Asociacin, permite asociar objetos que
colaboran entre s. Cabe destacar que no es una relacin fuerte, es decir, el tiempo de
vida de un objeto no depende del otro.

Ejemplo:



Un cliente puede tener asociadas muchas rdenes de Compra, en cambio una orden de
compra solo puede tener asociado un cliente.

Dependencia o Instanciacin (uso):

Representa un tipo de relacin muy particular, en la que una clase es instanciada (su
instanciacin es dependiente de otro objeto/clase). Se denota por una flecha punteada.

El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene
una clase de otra, como por ejemplo una aplicacin grafica que instancia una ventana (la
creacin del Objeto Ventana esta condicionado a la instanciacin proveniente desde el
objeto Aplicacin):



Cabe destacar que el objeto creado (en este caso la Ventana grfica) no se almacena
dentro del objeto que lo crea (en este caso la Aplicacin).

Ejercicios:

1. Se tiene una tienda La Econmica que vende 4 productos, cada uno de los cuales
maneja la siguiente informacin. (1) Nombre del producto (2) Tipo (puede ser
producto de papelera, supermercado o farmacia) (3) Cantidad actual (numero de
unidades disponibles en la tienda) (4) Stock mnimo (numero de productos que
como mnimo deben de existir en la tienda) (5) Precio base de venta. Para calcular
el precio final de cada producto se le tiene que sumar los impuestos que marca la
ley: los de papelera tienen un 16% de IVA, los de supermercado un 4% y los de
farmacia un 0%. Las operaciones que debe de manejar son 1) Venta de un producto
a un cliente, 2) realizar un pedido cuando el stock esta por debajo del mnimo, 3)
Mostrar algunas estadsticas. (a) Producto mas vendido (b) Producto menos vendido
(c) Total de dinero de las ventas y (d) Promedio de ventas de la tienda (Valor total
de las ventas entre el numero total de unidades vendidas)

Determine:

A. Diagrama de clases (Nombre, Atributos y Comportamiento)
B. Asociacin
C. Dependencia o instanciacin
D. Diagrama de Objetos, bajo los siguientes supuesto:
Suponga que la tienda tiene los siguientes productos:
a. Libreta de apuntes, papelera, $5.50
b. Litro de leche, supermercado, $12.00
c. Jabn en polvo, supermercado, 10.50
d. Aspirina, farmacia, $15.00
E. Los requerimientos funcionales

Adems suponga que ya ha vendido 6 libretas, 25 litros de leche, 14 bolsas de
jabn, 7 cajas de aspirinas y en la caja de la tienda no hay dinero.
Por ultimo tenemos la siguiente tabla:

Producto Cantidad en existencia Stock mnimo
Libreta de apuntes 44 15
Leche 15 20
Jabn 36 8
Aspirina 13 11

2. Las universidades de la Laguna contienen un Nombre de Universidad y un Campus.
Por cada universidad tiene Trabajadores los cuales pueden ser Catedrticos o
Administrativos. Los catedrticos tienen una categora y como actividades tiene
investigacin y enseanza. Los Administrativos contienen un departamento y como
actividades la Administracin. Tambin existe los estudiantes, que pueden ser de
Maestra o Doctorado. Los estudiantes de Maestra tiene las propiedades de titulado
y las caractersticas de colaborador, mientras que los estudiantes de Doctorado
tiene Programa al que pertenecen y como caracterstica realiza tesis.

Determine:

A. Los requerimientos funcionales
B. Diagrama de clases (Nombre, Atributos y Comportamiento)
C. Asociacin
D. Dependencia o instanciacin
E. Diagrama de Objetos
Universidad de la Laguna
Universidad de Durango
Universidad de Lerdo

Producto de Aprendizaje 4.1: Elabore lo que se le solicita:

1. Del siguiente diseo describa los siguientes puntos:

a) Clases concretas
b) Clases abstractas
c) Herencia
d) Asociacin
e) Dependencia o instanciacin



2. La empresa de de publicidad Megfono SA de CV tiene varios proyectos que
maneja varia informacin entre la que se encuentra descripcin del proyecto, fecha
de inicio, fecha de fin y presupuesto, cada proyecto se asocia con varios procesos.
La informacin que maneja los procesos es: Descripcin del proceso, costo y
objetivo. Cada proceso tiene asociada varias personas. Cada persona maneja la
informacin de nombre de la persona, RFC y correo electrnico. Cada persona se
asocia con varios roles. Cada rol maneja la informacin de descripcin, evaluacin y
grado de responsabilidad. De cada personal herede JefeProyecto, Analista y
Desarrollador. Cada clase tiene como comportamiento los constructores y los
destructores.

Determine:

A. Diagrama de clases (Nombre, Atributos y Comportamiento)
B. Asociacin
C. Dependencia o instanciacin
D. Los requerimientos funcionales

3. Investigar y entregar el siguiente punto:


Consorci o
Nombre
Domicilio
Telfono
CreaProductoA()
CreaProductoB()
Fabrica 1
ProductoA()
ProductoB()
ProductoA
ProductoA2 ProductoA1
Cl i ente
Fabrica 2
ProductoA()
ProductoB()
ProductoB
ProductoB2 ProductoB1
1
*
1
*
*
Producto de Aprendizaje 4.2: Investigue el siguiente tema

IV.4. Relacin entre la programacin orientada a objetos y la estructurada

También podría gustarte