Sunteți pe pagina 1din 11

Repblica Bolivariana de Venezuela

Ministerio del Poder Popular para la Defensa


Universidad Nacional Experimental Politcnica de la Fuerza Armada
Ncleo Miranda Extensin Santa Teresa Del Tuy
Asignatura: Diseo de Sistema
ING-S-6S-D-01

SISTEMAS ORIENTADOS A
OBJETOS

Introduccin
La construccin de un sistema software, con independencia de su tamao, de sus
caractersticas funcionales y de la tecnologa elegida, consta de una serie de fases que
abarcan desde su concepcin hasta su retirada, definiendo un espacio temporal que
recibe el nombre de ciclo de vida del software. Existen diferentes modelos de ciclo de
vida, cada uno con sus propias peculiaridades, adaptndose unos mejor que otros a los
distintos paradigmas o estilos de programacin. Pero, lo que s se puede afirmar es que
en ninguno de estos modelos de desarrollo se comienza un proyecto software por la fase
de implementacin.
Comenzar un proyecto software por la fase de implementacin, esto decir,
colocarse inmediatamente delante del ordenador y comenzar a generar cdigo fuente, es
desgraciadamente una forma de trabajo bastante extendida, que toma sus tintes ms
preocupantes cuando sale del entorno del programador ocasional o aficionado, para
convertirse en la forma de trabajo de la inmensa mayora de las empresas de
construccin de software dentro y fuera de nuestras fronteras.
Por tanto, puede parecer utpico y dar la sensacin de predicar en el desierto, el
dedicar un artculo al anlisis y el diseo en la orientacin a objeto, cuando prcticamente
nadie se molesta en seguir unos principios metodolgicos bsicos en sus desarrollos y,
adems, la orientacin a objeto en nuestro pas no acaba de convertirse en una
alternativa completamente aceptada. No obstante, desde nuestra modesta posicin
vamos a intentar aportar nuestro granito de arena en favor de lo que sera una forma ms
correcta de realizar la construccin de una aplicacin software desde el prisma de la
orientacin a objetos.

Diseo Orientados a Objetos


El desarrollo de aplicaciones de software es fundamentalmente un proceso
complejo, por lo que, entender, disear, desarrollar y desplegar grandes sistemas
de software son los retos que enfrenta la industria de software en la actualidad. El
proceso del ciclo de vida involucra las siguientes etapas:

Entender los requerimientos.

Analizar los requerimientos.

Disear el sistema de software.

Implementar el sistema de software.

Probar el sistema de software.

Realizar mantenimiento del sistema de software.


Al completar cada una de las etapas, se crean uno o ms documentos

(reportes o informes). Estos documentos son llamados productos de trabajo y


permite comprender el sistema en cada etapa. Despus de la primera etapa, de
entender los

requerimientos,

se

crea un

producto

de

trabajo

llamado

Entendimiento preliminar de requerimientos. El entender los requerimientos juega


un rol importante en el desarrollo de software debido a que los dominios de
aplicaciones son cada vez ms variados y complejos. El producto de trabajo en la
tercera etapa, correspondiente a disear el sistema, es el documento diseo. En la
etapa de implementacin, el sistema resulta en la creacin de manuales de
diversos tipos, tales como: el manual de usuario, manual administrativo y otros.
Aunque cada etapa resulta en un producto de trabajo til, se esta
consciente de los diferentes problemas que los analistas y desarrolladores de
software deben confrontar. Los requerimientos son pocos claros y voltiles por
naturaleza. Un requerimiento ignorado o dejado de lado tiene un efecto en
cascada en todo el proceso de desarrollo del sistema. Entender un sistema grande
y complejo es en si una tarea difcil. El anlisis de diseo de sistemas es un
proceso difcil que demanda tiempo. Las metodologas de anlisis y diseo
estructurado (orientadas a aspectos; literal; de patrones) usadas anteriormente,

intentaron proporcionar soluciones y eran exitosas en muchas situaciones. Sin


embargo, el mundo real es complejo, y con el creciente uso de computadoras en
todos los aspectos de la vida, el manejo de aplicaciones del mundo real es cada
vez ms desafiante.
El Diseo Orientado a Objeto tiene la capacidad inherente para ocuparse de
los diferentes aspectos de sistemas de software complejos. Mientras la
metodologa de diseo estructurado construye un sistema usando funciones, la
orientacin a objetos construye sistemas usando objetos. Estos objetos tienen una
correspondencia directa con los objetos del mundo real. Las entidades del mundo
real son simples de entender. Por lo tanto, no es una tarea muy difcil transferir
conocimiento del mundo real al dominio del software.
Un objeto contiene toda la informacin que permite definirlo e identificarlo
frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de
una misma clase, al poder tener valores bien diferenciados en sus atributos. A su
vez, los objetos disponen de mecanismos de interaccin llamados mtodos, que
favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez el
cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como
unidades indivisibles, en las que no se separa el estado y el comportamiento.
Los mtodos

(comportamiento) y atributos

(estado) estn

estrechamente

relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase
requiere de mtodos para poder tratar los atributos con los que cuenta.
El programador debe pensar indistintamente en ambos conceptos, sin separar ni
darle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito
errneo de crear clases contenedoras de informacin por un lado y clases con
mtodos que manejen a las primeras por el otro. De esta manera se estara
realizando

una programacin

estructurada camuflada en

un

lenguaje

de

programacin orientado a objetos.


La POO difiere de la programacin estructurada tradicional, en la que los datos
y los procedimientos estn separados y sin relacin, ya que lo nico que se busca
es el procesamiento de unos datos de entrada para obtener otros de salida. La

programacin estructurada anima al programador a pensar sobre todo en trminos


de procedimientos o funciones, y en segundo lugar en las estructuras de datos
que esos procedimientos manejan. En la programacin estructurada solo se
escriben funciones que procesan datos. Los programadores que emplean
Programacin Orientada a Objetos, en cambio, primero definen objetos para luego
enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.

Estado de un Objeto:
El estado de un objeto se refiere al conjunto de los valores de sus atributos
en un instante de tiempo dado. El comportamiento de un objeto puede modificar el
estado de este. Cuando una operacin de un objeto modifica su estado se dice
que esta tiene "efecto colateral".
Esto tiene especial importancia en aplicaciones que crean varios hilos de
ejecucin. Si un objeto es compartido por varios hilos y en el transcurso de sus
operaciones estas modifican el estado del objeto, es posible que se deriven
errores del hecho de que alguno de los hilos asuma que el estado del objeto no
cambiar (Vase Condicin de carrera).

Identidad:
La identidad es la propiedad que permite diferenciar a un objeto y
distinguirse de otros. Generalmente esta propiedad es tal, que da nombre al
objeto. Tomemos por ejemplo el "verde" como un objeto concreto de una
clase color; la propiedad que da identidad nica a este objeto es precisamente su
"color" verde. Tanto es as que para nosotros no tiene sentido usar otro nombre
para el objeto que no sea el valor de la propiedad que lo identifica.
En programacin la identidad de los objetos sirve para comparar si dos
objetos son iguales o no. No es raro encontrar que en muchos lenguajes de
programacin la identidad de un objeto est determinada por la direccin

de memoria de la computadora en la que se encuentra el objeto, pero este


comportamiento puede ser variado redefiniendo la identidad del objeto a otra
propiedad.

Comportamiento:
El comportamiento de un objeto est directamente relacionado con su
funcionalidad y determina las operaciones que este puede realizar o a las que
puede responder ante mensajes enviados por otros objetos. La funcionalidad de
un objeto est determinada, primariamente, por su responsabilidad. Una de las
ventajas fundamentales de la POO es la reusabilidad del cdigo; un objeto es ms
fcil de reutilizarse en tanto su responsabilidad sea mejor definida y ms concreta.
Una tarea fundamental a la hora de disear una aplicacin informtica es
definir el comportamiento que tendrn los objetos de las clases involucradas en
la aplicacin, asociando la funcionalidad requerida por la aplicacin a las clases
adecuadas.

Un Mtodo:
es una subrutina cuyo cdigo es definido en una clase y puede pertenecer
tanto a una clase, como es el caso de los mtodos de clase o estticos, como a
un objeto, como es el caso de los mtodos de instancia. Anlogamente a los
procedimientos en los lenguajes imperativos, un mtodo consiste generalmente de
una serie de sentencias para llevar a cabo una accin, un juego de parmetros de
entrada que regularn dicha accin o, posiblemente, un valor de salida (o valor de
retorno) de algn tipo.
La diferencia entre un procedimiento (generalmente llamado funcin si
devuelve un valor) y un mtodo es que ste ltimo, al estar asociado con un objeto
o clase en particular, puede acceder y modificar los datos privados del objeto
correspondiente de forma tal que sea consistente con el comportamiento deseado
para el mismo. As, es recomendable entender a un mtodo no como una

secuencia de instrucciones sino como la forma en que el objeto es til (el mtodo
para hacer su trabajo). Por lo tanto, podemos considerar al mtodo como el pedido
a un objeto para que realice una tarea determinada o como la va para enviar un
mensaje al objeto y que ste reaccione acorde a dicho mensaje.

Mensajes:
Un objeto por si solo no tiene mucho significado. Ejemplo: el objeto
"bicicleta" no tiene mucho sentido si no interacta con un objeto "persona" que
pedalee.

La interaccin entre objetos se produce mediante mensajes. Los mensajes


son llamados a mtodos de un objeto en particular.
Podemos decir que el objeto persona enva el mensaje "girar a la izquierda" al
objeto bicicleta.

Los mensajes pueden contener parmetros. Por ejemplo teniendo un


mtodo en la clase bicicleta llamado "Girar" que recibe como parmetro la
direccin (derecha o izquierda).

Un mensaje est compuesto por los siguientes tres elementos:

1. El objeto destino, hacia el cual el mensaje es enviado


2. El nombre del mtodo a llamar
3. Los parmetros solicitados por el mtodo

Beneficios de los mensajes:

Como todo lo que un objeto puede hacer esta expresado mediante mtodos, el
envo de mensajes soporta todas las posibles interacciones entre objetos.

Para enviar o recibir mensajes, los objetos no necesitan formar parte del mismo
proceso, ni siquiera de la misma mquina.

Clases Abstractas:
Abstraccin es un trmino del mundo real que podemos aplicar tal cual lo
entendemos en el mundo de la Programacin Orientada a Objetos. Algo abstracto
es algo que est en el universo de las ideas, los pensamientos, pero que no se
puede concretar en algo material, que se pueda tocar.
Pues bien, una clase abstracta es aquella sobre la que no podemos crear
especmenes concretos, en la jerga de POO es aquella sobre la que no podemos
instanciar objetos. Ahora bien, cul es el motivo de la existencia de clases
abstractas? o dicho de otra manera, por qu voy a necesitar alguna vez declarar
una clase como abstracta?, en qu casos debemos aplicarlas? Esto es todo lo
que pretendemos explicar en este artculo.
Identificacin de Clases:
Mirando la diferencia fundamental entre cifras de sustitucin y cifras de
transposicin, se observa que
En

las cifras de sustitucin, los valores normales o convencionales de las

letras del texto original son alterados sin embargo las posiciones
relativas de las letras permanecen en su secuencia original.
En

las cifras de transposicin, slo las posiciones relativas de las letras del

texto original son alteradas, mientras que los valores convencionales de


las letras son mantenidos.
El trmino Distribucin de Frecuencia Unilateral - DFU (Unilateral Frecuencia
Distribucin - UFD) es utilizado para identificar una cifra de sustitucin simple.

* Observacin: es uniliteral y no unilateral. Un de "un" y literal, que significa


"expreso por letras". De ah, uniliteral = expreso por slo una letra.
Tres propiedades pueden ser observadas a travs de una DFU aplicada a un
texto cifrado compuesto por letras y de tamao medio:
Si

la cifra pertenencia a la clase de sustitucin o a la clase de


transposicin.

Si

fuera de la clase de sustitucin, si es mono- o poli alfabtica.

Si

fuera mono alfabtica, si es patrn (directa o reversa) o mixta.

Conclusin

El diseo orientado a objetos surge por la necesidad de solventar los


problemas en la construccin de software ya que

es un proceso complejo y

requiere de una perspectiva diferente en la cual se propone nuevos esquemas de


desarrollo, metodologas de anlisis y formas de programacin en el desarrollo de
sistemas a partir de un conjuntos de objetos relacionados; permitiendo aumentar
la productividad de los programadores y facilitar la creacin de soluciones de
software acordes con las demandas impuestas por los nuevos escenarios.
Este tipo de diseo hace uso de elementos intangibles tales como:
conceptos, ideas, y de elementos fsicos tangibles como: las cosas, herramientas
u objetos. Cada uno de estos elementos es conocido como entidades del mundo
real; las cuales tienen a su vez, propiedades y valores, as como, las operaciones
que se pueden realizar con ellas.
Presenta ciertas caractersticas tales como: simula actividades del mundo
real, tiene tipos de datos definidos por los usuarios, esconde los detalles de la
implementacin, reutiliza el cdigo a travs de la herencia y permite el mismo
nombre para diferentes funcionalidades, permitiendo su uso en forma natural en la
resolucin de problemas.
Los pilares fundamentales de la orientacin a objetos son abstraccin,
encapsulamiento, modularidad, herencia entre otros; mediante las cuales se basan
las actividades de desarrollo de un sistema.

Bibliografa:

http://es.wikipedia.org/wiki/Objeto_(programaci%C3%B3n)
http://es.wikipedia.org/wiki/Objeto_(programaci%C3%B3n)#Estado
http://es.wikipedia.org/wiki/Objeto_(programaci%C3%B3n)#Identidad
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
http://www.desarrolloweb.com/articulos/abstraccion-programacion-orientadaobjetos-poo.html

S-ar putea să vă placă și