Vous êtes sur la page 1sur 4

Qu es UML

1 de 4

http://profesores.fi-b.unam.mx/carlos/aydoo/conceptos_oo.html

CONCEPTOS DE LA METODOLOGA ORIENTADA A OBJETOS


La metodologa orientada a objetos ha derivado de las metodologas anteriores a ste. As como los mtodos de
diseo estructurado realizados guan a los desarrolladores que tratan de construir sistemas complejos utilizando
algoritmos como sus bloques fundamentales de construccin, similarmente los mtodos de diseo orientado a
objetos han evolucionado para ayudar a los desarrolladores a explotar el poder de los lenguajes de programacin
basados en objetos y orientados a objetos, utilizando las clases y objetos como bloques de construccin bsicos.
Actualmente el modelo de objetos ha sido influenciado por un nmero de factores no slo de la Programacin
Orientada a Objetos, POO (Object Oriented Programming, OOP por sus siglas en ingls). Adems, el modelo de
objetos ha probado ser un concepto uniforme en las ciencias de la computacin, aplicable no slo a los lenguajes de
programacin sino tambin al diseo de interfaces de usuario, bases de datos y arquitectura de computadoras por
completo. La razn de ello es, simplemente, que una orientacin a objetos nos ayuda a hacer frente a la inherente
complejidad de muchos tipos de sistemas.
Se define a un objeto como "una entidad tangible que muestra alguna conducta bien definida". Un objeto "es
cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los mtodos que controlan dichos datos".
Los objetos tienen una cierta "integridad" la cual no deber ser violada. En particular, un objeto puede solamente
cambiar estado, conducta, ser manipulado o estar en relacin con otros objetos de manera apropiada a este objeto.
Actualmente, el Anlisis Orientado a Objetos (AOO) va progresando como mtodo de anlisis de requisitos por
derecho propio y como complemento de otros mtodos de anlisis. En lugar de examinar un problema mediante el
modelo clsico de entrada-proceso-salida (flujo de informacin) o mediante un modelo derivado exclusivamente de
estructuras jerrquicas de informacin, el AOO introduce varios conceptos nuevos. Estos conceptos nuevos le
parecen inusuales a mucha gente, pero son bastante naturales.
Una clase es una plantilla para objetos mltiples con caractersticas similares. Las clases comprenden todas esas
caractersticas de un conjunto particular de objetos. Cuando se escribe un programa en lenguaje orientado a
objetos, no se definen objetos verdaderos sino se definen clases de objetos.
Una instancia de una clase es otro trmino para un objeto real. Si la clase es la representacin general de un
objeto, una instancia es su representacin concreta. A menudo se utiliza indistintamente la palabra objeto o instancia
para referirse, precisamente, a un objeto.
En los lenguajes orientados a objetos, cada clase est compuesta de dos cualidades: atributos (estado) y mtodos
(comportamiento o conducta). Los atributos son las caractersticas individuales que diferencian a un objeto de otro
(ambos de la misma clase) y determinan la apariencia, estado u otras cualidades de ese objeto. Los atributos de un
objeto incluyen informacin sobre su estado.
Los mtodos de una clase determinan el comportamiento o conducta que requiere esa clase para que sus
instancias puedan cambiar su estado interno o cuando dichas instancias son llamadas para realizar algo por otra
clase o instancia. El comportamiento es la nica manera en que las instancias pueden hacerse algo a s mismas o
tener que hacerles algo. Los atributos se encuentran en la parte interna mientras que los mtodos se encuentran en
la parte externa del objeto (figura 2).

Representacin visual de un objeto como componente de software


figura 2
Para definir el comportamiento de un objeto, se crean mtodos, los cuales tienen una apariencia y un
comportamiento igual al de las funciones en otros lenguajes de programacin, los lenguajes estructurados, pero se
definen dentro de una clase. Los mtodos no siempre afectan a un solo objeto; los objetos tambin se comunican
entre s mediante el uso de mtodos. Una clase u objeto puede llamar mtodos en otra clase u objeto para avisar
sobre los cambios en el ambiente o para solicitarle a ese objeto que cambie su estado.

22/09/2015 23:17

Qu es UML

2 de 4

http://profesores.fi-b.unam.mx/carlos/aydoo/conceptos_oo.html

Cualquier cosa que un objeto no sabe, o no puede hacer, es excluida del objeto. Adems, como se puede observar
de los diagramas, las variables del objeto se localizan en el centro o ncleo del objeto. Los mtodos rodean y
esconden el ncleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables de un objeto
con la proteccin de sus mtodos se le llama encapsulamiento. Tpicamente, el encapsulamiento es utilizado para
esconder detalles de la puesta en prctica no importantes de otros objetos. Entonces, los detalles de la puesta en
prctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.
Esta imagen conceptual de un objeto un ncleo de variables empaquetadas en una membrana protectora de
mtodos es una representacin ideal de un objeto y es el ideal por el que los diseadores de sistemas orientados
a objetos luchan. Sin embargo, no lo es todo: a menudo, por razones de eficiencia o la puesta en prctica, un objeto
puede querer exponer algunas de sus variables o esconder algunos de sus mtodos.
El encapsulamiento de variables y mtodos en un componente de software ordenado es, todava, una simple idea
poderosa que provee dos principales beneficios a los desarrolladores de software:
Modularidad, esto es, el cdigo fuente de un objeto puede ser escrito, as como darle mantenimiento,
independientemente del cdigo fuente de otros objetos. As mismo, un objeto puede ser transferido alrededor
del sistema sin alterar su estado y conducta.
Ocultamiento de la informacin, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden
utilizar para comunicarse con l. Pero el objeto puede mantener informacin y mtodos privados que pueden
ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.
Los objetos proveen el beneficio de la modularidad y el ocultamiento de la informacin. Las clases proveen el
beneficio de la reutilizacin. Los programadores de software utilizan la misma clase, y por lo tanto el mismo cdigo,
una y otra vez para crear muchos objetos.
En las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y procedimientos que se
pueden llevar a cabo con estos datos. Esto encapsula los datos y los procedimientos. La realidad es diferente: los
atributos se relacionan al objeto o instancia y los mtodos a la clase. Por qu se hace as? Los atributos son
variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada
variable, diferente al que tienen para esa misma variable los dems objetos. Los mtodos, por su parte, pertenecen
a la clase y no se almacenan en cada objeto, puesto que sera un desperdicio almacenar el mismo procedimiento
varias veces y ello va contra el principio de reutilizacin de cdigo.
Otro concepto muy importante en la metodologa orientada a objetos es el de herencia. La herencia es un
mecanismo poderoso con el cual se puede definir una clase en trminos de otra clase; lo que significa que cuando
se escribe una clase, slo se tiene que especificar la diferencia de esa clase con otra, con lo cual, la herencia dar
acceso automtico a la informacin contenida en esa otra clase.
Con la herencia, todas las clases estn arregladas dentro de una jerarqua estricta. Cada clase tiene una
superclase (la clase superior en la jerarqua) y puede tener una o ms subclases (las clases que se encuentran
debajo de esa clase en la jerarqua). Se dice que las clases inferiores en la jerarqua, las clases hijas, heredan de
las clases ms altas, las clases padres.
Las subclases heredan todos los mtodos y variables de las superclases. Es decir, en alguna clase, si la superclase
define un comportamiento que la clase hija necesita, no se tendr que redefinir o copiar ese cdigo de la clase
padre (figura 3).

22/09/2015 23:17

Qu es UML

3 de 4

http://profesores.fi-b.unam.mx/carlos/aydoo/conceptos_oo.html

figura 3
De esta manera, se puede pensar en una jerarqua de clase como la definicin de conceptos demasiado abstractos
en lo alto de la jerarqua y esas ideas se convierten en algo ms concreto conforme se desciende por la cadena de
la superclase.
Sin embargo, las clases hijas no estn limitadas al estado y conducta provistos por sus superclases; pueden
agregar variables y mtodos adems de los que ya heredan de sus clases padres. Las clases hijas pueden,
tambin, sobreescribir los mtodos que heredan por implementaciones especializadas para esos mtodos. De igual
manera, no hay limitacin a un slo nivel de herencia por lo que se tiene un rbol de herencia en el que se puede
heredar varios niveles hacia abajo y mientras ms niveles descienda una clase, ms especializada ser su conducta.
La herencia presenta los siguientes beneficios:
Las subclases proveen conductas especializadas sobre la base de elementos comunes provistos por la
superclase. A travs del uso de herencia, los programadores pueden reutilizar el cdigo de la superclase
muchas veces.
Los programadores pueden implementar superclases llamadas clases abstractas que definen conductas
"genricas". Las superclases abstractas definen, y pueden implementar parcialmente, la conducta pero gran
parte de la clase no est definida ni implementada. Otros programadores concluirn esos detalles con
subclases especializadas.
Ventajas de la metodologa orientada a objetos
En sntesis, algunas ventajas que presenta son:
Reutilizacin. Las clases estn diseadas para que se reutilicen en muchos sistemas. Para maximizar la
reutilizacin, las clases se construyen de manera que se puedan adaptar a los otros sistemas. Un objetivo
fundamental de las tcnicas orientadas a objetos es lograr la reutilizacin masiva al construir el software.
Estabilidad. Las clases diseadas para una reutilizacin repetida se vuelven estables, de la misma manera
que los microprocesadores y otros chips se hacen estables.
El diseador piensa en trminos del comportamiento de objetos y no en detalles de bajo nivel. El
encapsulamiento oculta los detalles y hace que las clases complejas sean fciles de utilizar.
Se construyen clases cada vez ms complejas. Se construyen clases a partir de otras clases, las cuales a
su vez se integran mediante clases. Esto permite construir componentes de software complejos, que a su vez
se convierten en bloques de construccin de software ms complejo.
Calidad. Los diseos suelen tener mayor calidad, puesto que se integran a partir de componentes probados,
que han sido verificados y pulidos varias veces.
Un diseo ms rpido. Las aplicaciones se crean a partir de componentes ya existentes. Muchos de los
componentes estn construidos de modo que se pueden adaptar para un diseo particular.
Integridad. Las estructuras de datos (los objetos) slo se pueden utilizar con mtodos especficos. Esto tiene

22/09/2015 23:17

Qu es UML

4 de 4

http://profesores.fi-b.unam.mx/carlos/aydoo/conceptos_oo.html

particular importancia en los sistemas cliente-servidor y los sistemas distribuidos, en los que usuarios
desconocidos podran intentar el acceso al sistema.
Mantenimiento ms sencillo. El programador encargado del mantenimiento cambia un mtodo de clase a la
vez. Cada clase efecta sus funciones independientemente de las dems.
Una interfaz de pantalla sugestiva para el usuario. Hay que utilizar una interfaz de usuario grfica de modo
que el usuario apunte a iconos o elementos de un men desplegado, relacionados con los objetos. En
determinadas ocasiones, el usuario puede ver un objeto en la pantalla. Ver y apuntar es ms fcil que
recordar y escribir.
Independencia del diseo. Las clases estn diseadas para ser independientes del ambiente de
plataformas, hardware y software. Utilizan solicitudes y respuestas con formato estndar. Esto les permite
ser utilizadas en mltiples sistemas operativos, controladores de bases de datos, controladores de red,
interfaces de usuario grficas, etc. El creador del software no tiene que preocuparse por el ambiente o
esperar a que ste se especifique.
Interaccin. El software de varios proveedores puede funcionar como conjunto. Un proveedor utiliza clases
de otros. Existe una forma estndar de localizar clases e interactuar con ellas. El software desarrollado de
manera independiente en lugares ajenos debe poder funcionar en forma conjunta y aparecer como una sola
unidad ante el usuario.
Computacin Cliente-Servidor. En los sistemas cliente-servidor, las clases en el software cliente deben
enviar solicitudes a las clases en el software servidor y recibir respuestas. Una clase servidor puede ser
utilizada por clientes diferentes. Estos clientes slo pueden tener acceso a los datos del servidor a travs de
los mtodos de la clase. Por lo tanto los datos estn protegidos contra su corrupcin.
Computacin de distribucin masiva. Las redes a nivel mundial utilizarn directorios de software de objetos
accesibles. El diseo orientado a objetos es la clave para la computacin de distribucin masiva. Las clases
de una mquina interactan con las de algn otro lugar sin saber donde residen tales clases. Ellas reciben y
envan mensajes orientados a objetos en formato estndar.
Mayor nivel de automatizacin de las bases de datos. Las estructuras de datos (los objetos) en las bases
de datos orientadas a objetos estn ligadas a mtodos que llevan a cabo acciones automticas. Una base de
datos OO tiene integrada una inteligencia, en forma de mtodos, en tanto que una base de datos relacional
bsica carece de ello.
Migracin. Las aplicaciones ya existentes, sean orientadas a objetos o no, pueden preservarse si se ajustan
a un contenedor orientado a objetos, de modo que la comunicacin con ella sea a travs de mensajes
estndar orientados a objetos.
Mejores herramientas CASE. Las herramientas CASE (Computer Aided Software Engineering, Ingeniera de
Software Asistida por Computadora) utilizarn las tcnicas grficas para el diseo de las clases y de la
interaccin entre ellas, para el uso de los objetos existentes adaptados a nuevas aplicaciones. Las
herramientas deben facilitar el modelado en trminos de eventos, formas de activacin, estados de objetos,
etc. Las herramientas OO del CASE deben generar un cdigo tan pronto se definan las clases y permitir al
diseador utilizar y probar los mtodos recin creados. Las herramientas se deben disear de manera que
apoyen el mximo de creatividad y una continua afinacin del diseo durante la construccin.
Tabla de Contenido

22/09/2015 23:17

Vous aimerez peut-être aussi