Sunteți pe pagina 1din 13

La Programacin Orientada a Objetos (POO)

(1)
Es un paradigma de programacin que emplea objetos y sus interacciones para disear
aplicaciones y programas de computadora. Est basado en arias t!cnicas" incluyendo #erencia"
modularidad" polimor$ismo" y encapsulamiento.
El t!rmino de Programacin Orientada a Objetos se re$iere ms una $orma de diseo y una
metodologa de desarrollo de software que un lenguaje de programacin" ya que en realidad se
puede aplicar el %iseo Orientado a Objetos (En ingl!s abreiado OO%" Object Oriented %esign)"
a cualquier tipo de lenguaje de programacin.
La programacin Orientada a objetos (POO) es una forma especial de programar" ms cercana
a como expresaramos las cosas en la ida real que otros tipos de programacin.
(&)
El (OOP) no es nueo" lenguajes clsicos como 'mall(al) se basan en ella. %ado que la OOP. se
basa en la idea natural de la e*istencia de un mundo lleno de objetos y que la resolucin del
problema se reali+a en t!rminos de objetos" un lenguaje se dice que est basado en objetos si
soporta objetos como una caracter,stica $undamental del mismo.
(-)
La programacin orientada a objetos es una .$iloso$,a/" un modelo de programacin" con su
teor,a y su metodolog,a. 0n lenguaje orientado a objetos es un lenguaje de programacin que
permite el diseo de aplicaciones orientadas a objetos.
La programacin orientada a objetos es otra $orma de descomponer problemas. Este nueo
m!todo de descomposicin es la descomposicin en objetos1 amos a $ijarnos no en lo que #ay
que #acer en el problema" sino en cul es el escenario real del mismo" y amos a intentar
simular ese escenario en nuestro programa.
Los lenguajes orientados a objetos" como es el caso de 233 y 4aa" el elemento bsico no es la
$uncin (programacin tradicionales no orientados )" sino un ente denominado precisamente
objeto. 0n objeto es la representacin en un programa de un concepto" y contiene toda la
in$ormacin necesaria para abstraerlo5 datos que describen sus atributos y operaciones que
pueden reali+arse sobre los mismos .
(6)
La programacin orientada a objeto (OOP) es un en$oque al desarrollo de so$t7are en la cual la
estructura del so$t7are se basa en la interaccin de objetos para lograr reali+ar la(s) tarea(s)
requeridas. La interaccin se reali+a mediante el en,o y recepcin de mensajes entre objetos.
2omo respuesta a los mensajes" un objeto puede ejecutar una accin o m!todo.
!istoria"
#l concepto de programacin orientada a objeto comien$a a concreti$are a mediados de la
d%cada de los &' con el lenguaje de programacin llamado (imula y su futura eolucin en los
)' llamada (malltal*"
2aracter,sticas de la OOP

8o e*iste un consenso aceptado por todo el mundo respecto a cules son las caracter,sticas que
de$inen la POO" pero al menos todos coinciden en las siguientes cincos5
1. 9bstraccin.
&. Encapsulacin.
-. Polimor$ismo.
6. :erencia.
;. 9gregacin.
Objeto.
#s una estructura que incorpora datos y procedimientos para trabajar con dic+os datos"
Para actuali$ar o consultar los datos en el objeto, esto debe de reali$arse mediante el
mismo objeto"
-abe aclarar que cada objeto tiene una identidad .nica"
Abstraccin.
En programacin" el t!rmino se re$iere al !n$asis en el <=qu! #ace>< ms que en el <=cmo
lo #ace>< (caracter,stica de caja negra). El com?n denominador en la eolucin de los
lenguajes de programacin" desde los clsicos o imperatios #asta los orientados a
objetos" #a sido el niel de abstraccin del que cada uno de ellos #ace uso.
Los lenguajes de programacin son las herramientas mediante las cuales los
diseadores de lenguajes pueden implementar los modelos abstractos" La abstraccin
ofrecida por los lenguajes de programacin se puede diidir en dos categoras/
abstraccin de datos (pertenecientes a los datos) y abstraccin de control
(perteneciente a las estructuras de control)"
Pero =qu! es realmente la abstraccin> Podemos concluir que es la #abilidad de diidir o
separa elementos de un todo complejo para as, poder erlo de $orma simple (%iides y
encers).
La abstraccin modela un problema real construyendo una representacin que puede ser
procesado computacionalmente.
El modelo de$ine una ista abstracta del problema. Esto implica que el modelo solo se
en$oca en la materia relatia al problema.
Cmo se piensa en objetos
Pensar en t!rminos de objetos es parecido a cmo lo #ar,amos en la ida real. Por
ejemplo amos a pensar en un carro para tratar de modelarlo en un esquema de
POO. Podemos decir que el carro es el elemento principal que tiene una serie de
caracter,sticas" como podr,an ser el modelo" cantidad de puertas" o la marca.
9dems tiene una serie de $uncionalidades asociadas" como5 ponerse en marc#a"
parar o estacionar.
En un esquema POO el carro ser,a el objeto" las propiedades ser,an las
caracter,sticas como el modelo" la cantidad de puertas y los m!todos ser,an las
$uncionalidades asociadas como ponerse en marc#a o parar.
La programacin orientada a objetos" intenta simular (modelar) el mundo real a
tra!s del signi$icado de objetos que contiene caracter,sticas y $unciones. Los
lenguajes orientados a objetos se clasi$ican como lenguajes de quinta generacin.
El modelo debe definir los objetos de software, identificados con sus atributos y
respectias operaciones"
El lenguaje de modelado de objetos es un conjunto estandari+ado de s,mbolos y de
modos de disponerlos para modelar (parte de) un diseo de so$t7are orientado a objetos
Lenguaje Unificado de Modelado (L0@ o UML" por sus siglas en ingl!s" 0nified 1odeling
Language) es el lenguaje de modelado de sistemas de so$t7are ms conocido y utili+ado
en la actualidad1 est respaldado por el O@A (Object @anagement Aroup). Es un lenguaje
gr$ico para isuali+ar" especi$icar" construir y documentar un sistema. 0@L o$rece un
estndar para describir un <plano< del sistema (modelo)" incluyendo aspectos
conceptuales tales como procesos de negocio" $unciones del sistema" y aspectos
concretos como e*presiones de lenguajes de programacin" esquemas de bases de datos y
compuestos reciclados.
Es importante remarcar que 0@L es un <lenguaje de modelado< para especi$icar o para
describir m!todos o procesos. 'e utili+a para de$inir un sistema" para detallar los
arte$actos en el sistema y para documentar y construir. En otras palabras" es el lenguaje
en el que est descrito el modelo.
Encapsulado (conocida como ocultamiento).
(1)
Proceso mediante el cual se garanti+a no acceder directamente a los datos. 'i es
requerido accesar a los datos entonces se debe de interactuar con el objeto responsable
por los datos.
(i el objeto permite accesar los datos para que estos puedan ser / consultado,
modificados, el mismo debe de disponer de los mecanismos ( m%todos ) para reali$ar
dic+as operaciones"
El encapsulado de datos permite #ace que el sistema sea mas seguro y con$iable.
(&)
'e encarga de mantener ocultos los datos y procesos internos que necesita para #acer lo
que se requiere" dndole al programador acceso slo a lo necesario. Esto nos da dos
entajas iniciales5
1. 2ontrolar internamente lo que el usuario #ace" eitando $allas por una interencin
indeseada (quieres que t? mejor amigo" que no tiene ni idea de mecnica" abra el
motor de tu carro y empiece a jugar al mecnico para reparar tu carro >).
&. La segunda entaja es que" al #acer que la mayor parte del cdigo est! oculto"
puedes #acer cambios yBo mejoras sin que eso a$ecte el modo como los usuarios an a
utili+ar tu cdigo. 'lo tienes que mantener igual la $orma de acceder a !l.
Polimor$ismo.
(1)
Es la #abilidad de dos di$erentes objetos a responder al mismo mensaje de la $orma
de$inida por cada uno de estos.
Cmplementacin de arios m!todos con el mismo nombre ( sobrecarga B oerloading)
(&)
2apacidad que tienen los objetos de una clase de responder al mismo mensaje o eento
en $uncin de los parmetros utili+ados durante su inocacin ( sobrecarga B
oerloading). 0n objeto polimr$ico es una entidad que puede contener alores de
di$erentes tipos durante la ejecucin del programa.
%ic#o de otra $orma" el polimor$ismo consiste en conseguir que un objeto de una clase se
comporte como un objeto de cualquiera de sus subclases" dependiendo de la $orma de
llamar a los m!todos de dic#a clase o subclases.
:erencia.
La mayor,a de los objetos son clasi$icados acorde a su jerarqu,a. Ejemplo"
Podemos clasi$icar todas las $iguras con caracter,sticas con sus caracter,sticas comunes
como5 rea"
9gregacin (tieneDun).
(1)
2omposicin de un objeto por otros. Es una relacin ms d!bil que la que e*iste entre el
atributo y el objeto al cual pertenece" y ms $uerte que una asociacin.
(&)
Es cuando un objeto consiste de una composicin de otros objetos que trabajan en
conjunto.
Para recordar"
-uando se escribe un programa en un lenguaje orientado a objetos, definimos una plantilla o
clase que describe las caractersticas y el comportamiento de un conjunto de objetos similares"
La clase automil describe las caractersticas comunes de todos los automiles/ sus atributos
y su comportamiento" Los atributos o propiedades se refieren a la marca o fabricante, el color,
las dimensiones, si tienen dos, tres, cuatro o m2s puertas, la potencia, si utili$a como
combustible la gasolina o gasoil, etc" #l comportamiento se refiere a la posibilidad de
despla$arse por una carretera, frenar, acelerar, cambiar de marc+a, girar, etc"
0na clase es por tanto una plantilla implementada en software que describe un conjunto de
objetos con atributos y comportamiento similares"
0na instancia u objeto de una clase es una representacin concreta y especfica de una clase y
que reside en la memoria del ordenador"
Atributos
Los atributos son las caractersticas indiiduales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades" Los atributos se guardan en ariables
denominadas de instancia, y cada objeto particular puede tener alores distintos para estas
ariables"
Las ariables de instancia tambi%n denominados miembros dato, son declaradas en la clase pero
sus alores son fijados y cambiados en el objeto"
3dem2s de las ariables de instancia +ay ariables de clase, las cuales se aplican a la clase y a
todas sus instancias" Por ejemplo, el n.mero de ruedas de un automil es el mismo cuatro,
para todos los automiles"
Los atributos sern caracter,stica" cualidad" propiedad" particularidad" peculiaridad"
singularidad" rasgo" marca" carcter" idiosincrasia" naturale+a o condicin del objeto1
#stado"
Esta compuesto de datos o in$ormaciones1 sern uno o arios atributos a los que se #abrn
asignado unos alores concretos (datos).

Comportamiento
#l comportamiento de los objetos de una clase se implementa mediante funciones miembro o
m%todos" 0n m%todo es un conjunto de instrucciones que reali$an una determinada tarea y son
similares a las funciones de los lenguajes estructurados"
4el mismo modo que +ay ariables de instancia y de clase, tambi%n +ay m%todos de instancia y
de clase" #n el primer caso, un objeto llama a un m%todo para reali$ar una determinada tarea,
en el segundo, el m%todo se llama desde la propia clase"
Operaciones que se pueden realizar sobre un objeto: aunque e*iste gran cantidad de
operaciones que se pueden reali+ar sobre un objeto" generalmente se diiden en tres grandes
grupos5
Operaciones que manipulan los datos manipulan los datos de alguna $orma espec,$ica ( aadir" borrar" cambiar
$ormato" E)1
Operaciones que realizan un clculo realizan un clculo o proceso1
Operaciones que comprueban (monitorizan un objeto comprueban (monitorizan un objeto $rente a la ocurrencia de alg?n suceso
de control1
Objeto de so$t7are1 %ominio del objeto real" proceso de abstraccin" dominio de la aplicacin.1
O!O"# $dentificar objetos a su alrededor % especificar los atributos ms rele&antes
conjuntamente con su comportamiento.
2lase5
=Fu! es una clase>
Es la generali+acin de un tipo espec,$ico de objetos" pero cada objeto construido a partir de
dic#a clase tendr sus propios datos.
Las propiedades y m!todos de un objeto en OOP son de$inidas mediante una clase. 0na clase es
un modelo que de$ine los atributos y comportamiento de los objetos que son creado como
instancias de a clase.
Gepresentacin de una clase en 0@L

Ejemplo
2uenta Por 2obrar
2liente
Halance%eudor
Halance9creedor
3montoPagar()
E
Para encontrar objetos y clases
Para encontrar clases se inicia por el proceso de abstraccin de$inido ms arriba. Este inicia con
descartar los detalles que no aporta a lo que debe de #acer el objeto (se debe de prestar
atencin a los elementos que se quieren almacenar).
Ejemplo.
Escenario para $acturar productos a una persona.
2onjunto de atributos 9tributos de inter!s
2liente
2digo del producto
2antidad de mercanc,a
'e*o del cliente
Iec#a encimiento del producto
Estado ciil del cliente
2olor del cliente
Precio del producto
Estatura del cliente
Edad de la cajera
Propaganda
Personas que lo promueen
Iec#a encimiento
Operaciones.
E.. ( %iscusin en el curso )
'eg?n coadByourdon" los objetos o sus clases los objetos o sus clases pueden ser/
Cosas o e&entos a recordar: 2osas que el sistema debe recordar ($ec#a y #ora de acceso
de una persona a un edi$icio" operacin de compra con una tarjeta de cr!dito" etc.)
'structuras5 2uando del enunciado se deduce $cilmente una relacin de agregacin o
generali+acin entre dos o ms conceptos" posiblemente estamos ante dos o ms clases
candidatas.
Otros sistemas: =2on qu! otros sistemas interact?a el sistema en desarrollo> @uc#as
eces dic#os sistemas necesitan interaccin desde nuestro sistema" y sern considerados
clases.
(ispositi&os5 %ispositios que nuestro sistema necesita" siempre que estos sean e*ternos
al ordenador que albergar a nuestro sistema (sensores" bra+o mecnico" barrera
automtica" etc.).
)oles5 9dministrador" alumno" pro$esor" etc. son di$erentes roles que una persona puede
desempear cuando inicia una sesin en el campus irtual de la uniersidad. 9unque una
misma persona $,sica que cono+ca tres combinaciones correctas usuario D clae puede
conectarse de tres $ormas di$erentes (di$erente inter$a+" etc.)" no #ay una clase persona"
sino una por cada rol o papel que puede desempear una persona seg?n el tipo de sesin
que inicie.
Unidades organizacionales5 'ucursal" sede" departamento" etc. siempre que #aya que
guardar in$ormacin espec,$ica al respecto. Es importante saber que utili+ar este criterio
por sistema (por ejemplo" siempre pensar en los departamentos de una empresa como
clases) prooca errores en la mayor,a de los casos.
Lugares" etc.5 laboratorios" aulas" o$icinas" etc. siempre" como antes se #a dic#o" que
#aya que guardar in$ormacin espec,$ica al respecto.
Regla de oro:
Convertir en clase candidata todo aquel concepto del que haya que almacenar
Informacin en el sistema, bien a corto o a largo plao!"
%espu!s" en un segundo paso" se seleccionan aquellas clases que sean aplicables al
dominio de nuestro problema. Para ello" una e+ que #ayamos seleccionado las clases
candidatas" debemos escoger las que sean lidas seg?n los siguientes criterios de
$iltrado5
8ecesidad de recordar5 Las clases deben tener in$ormacin asociada. 0na clase sin
atributos puede e*istir" pero es e*trao" as, que se impone una re$le*in al respecto.
8ecesidad de comportamiento5 Las clases deben tener operaciones. 0na clase sin
comportamiento tambi!n puede e*istir" pero no es com?n" as, que se impone una
re$le*in al respecto.
@?ltiples atributos5 Las clases suelen tener ms de un atributo. Las clases que slo
cuentan con un atributo son sospec#osas de no ser clases" sino atributos de otras.
@s de una Objeto por 2lase5 Aeneralmente identi$icamos clases porque e*iste ms de un
objeto de la misma. Es posible que una clase que slo tiene un objeto sea lida" pero no
es normal. 'ospec#ar.
9tributos y 'ericios siempre aplicables5 (odos los objetos de una clase deben tener los
mismos atributos y operaciones. 'i identi$icamos objetos de la misma clase con atributos
yBo m!todos di$erentes" pueden ser que en realidad e*ista ms de una clase" las cuales
posteriormente relacionaremos mediante generali+acin.
Luego de encontrados los objetos % sus clases ser preciso encontrar los atributos y las
operaciones que act?an sobre ellos1
*ara encontrar las operaciones se reali+a un nueo anlisis gramatical de la descripcin
del problema buscando y aislando los verbos del te*to.
Las clases estarn definidas por los Las clases estarn definidas por los objetos objetos identi$icados con sus atributos % atributos %
comportamiento comunes comportamiento comunes. El conjunto de todas las clases es un modelo OO del sistema en
desarrollo.
Ejemplo de clases y atributos.
2lase 9tributos Operaciones
Persona 2edula
8ombre
9pellido
Iec#a 8acimiento
optenerEdad()
asignar8ombre()
opteber8ombre()
E
2uenta 2ontable 2digo
%escripcin
Origen
Halance
asignar2odigo()
asignar%escripcin
calcularHalance()
Persona
D2edula
D8ombre
D9pellido
DIec#a8acimiento
3optenerEdad()
3asignar8ombre()
3optener8ombre()
E
El proceso de para encontrar objetos y sus clases inicia con el problema de estudio en el
cual se debe de prestar atencin a 5
Los nombre propios"
Los nombres comunes"
Jerbos
9djetios.
Ejemplo
Elemento gramatical Elemento del modelo OO Ejemplo
8ombre propios Objeto ( Cnstancia ) Pedro" juan
8ombre com?n 2lase Persona
Jerbo 9ccin 2alcular Edad
9djetios 9tributos K pies de estatura
Ejemplo completo
El seor 4uan 9lberto encargado del departamento de contabilidad de la tienda 9H2 tiene
que reali+ar los asientos de diario por las entas reali+adas en la tienda" dic#as entas
ascienden a un total de 1;"LLL.LL.
1) 'eleccionar los elementos gramaticales.
&) Geali+ar una lista de los elementos gramaticales encontrados.
-) %escartar los elementos gramaticales que no interesan ( abstraccin )"
6) @apear (relacionar) los elementos gramaticales con los del modelo.
(@!todo5 9nlisis del lenguaje natural)
Elementos encontrados Elemento del modelo OO
4uan 9lberto Cnstancia
Encargado %epartamento de
2ontabilidad
2lase
(ienda 2lase
9H2 Cnstancia
(iene 9ccin
Geali+ar 9ccin
9sientos de diario 2lase
(ienda 2lase
Jentas 9ccin
(otal 9tributo
Geali+ar asiento 9ccin
2omo asignacin
1) Para cada una de las clases identi$icadas crear tarjeta 2G2.
Las tarjetas C)C (clase" responsabilidad y colaboracin) son una metodolog,a para el
diseo de so$t7are orientado por objetos creada por Ment Hec) y Nard 2unning#am.
Las tarjas 2G2 son un m!todo empleado para detectar+ comprobar % actualizar detectar+ comprobar % actualizar las
responsabilidades de las clases y sus colaboraciones con otras clases en un niel
conceptual.
Iormato tarjeta 2G2
8ombre de la clase
Gesponsabilidades 2lases colaboradoras
&) Escribir cada clase en $ormato
8ombre2lase( 9tributo1" 9tributo& E1 9ccion1" 9ccion&" E)
-) Geali+ar representacin 0@L de cada una de las clases.
)esponsabilidades de una clase: de$inen el comportamiento que debe tener una clase. Esto se
logra mediante la de$inicin de los atributos y de los m!todos que de$inirn el comportamiento
de los objetos (instancias).
%entro de las responsabilidades de una clase" lo primero es encapsular los atributos y las
$unciones miembros que se requieran as, como su niel de isibilidad (priado" protegido"
p?blico).
.

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