Conceptos Oo
Conceptos Oo
El modelado es una parte central de todas las actividades que conducen a la producción de
buen software.
¿Qué es un modelo?
Las dos formas más comunes de enfocar un modelo en el software son la perspectiva
orientada a objetos y la perspectiva algorítmica.
La visión tradicional del desarrollo de software toma una perspectiva algorítmica, basada en el
procedimiento o función. Esta visión tiende a producir sistemas difíciles de mantener.
La visón actual del desarrollo de software toma una perspectiva orientada a objetos (OO). En
este enfoque, el principal bloque de construcción de los sistemas es el objeto.
Para la mayoría de las personas, la forma de pensar OO es más natural que las técnicas del
análisis y el diseño estructurado. Después de todo el mundo está formado por objetos.
Comenzamos a aprender sobre ellos desde la infancia (al agitar un sonajero nos damos cuenta de
que hace ruido) y descubrimos que tienen cierto comportamiento. Si se piensa un poco, esto tiene
sentido porque desde muy temprana edad categorizamos los objetos y descubrimos su
comportamiento.
Antes que nada definimos a un objeto como una instancia de una clase o categoría:
Como objetos de la clase Persona, usted y yo contamos con los siguientes atributos:
altura, peso, edad, color, etc.
También realizamos actividades (operaciones): comer, leer, hablar, escribir, etc.
Si tuviéramos que crear un sistema que manejara información acerca de las personas, como
una nómina de un sistema de Recursos Humanos, sería muy probable que incorporáramos
algunos de estos atributos y operaciones a nuestro software.
1
Otros conceptos:
Pero la OO se refiere a algo más que a clases y objetos (con sus atributos y operaciones),
también considera otros aspectos como la abstracción , herencia, polimorfismo,
encapsulamiento, etc.
Todo objeto es único, sin embargo, mediante la abstracción, desde pequeños, eliminamos
algunas diferencias para poder ver aspectos comunes entre los objetos. Así llegamos al
concepto de árbol, botella, etc. Sin la abstracción, sólo sabríamos que cada cosa es diferente
de las demás. Con la abstracción se omiten de manera selectiva varias características
distintivas de dos o más objetos, lo que nos permite concentrarnos en las características que
comparten.
Un objeto es una instancia de una clase, por lo tanto, hereda sus características.
Un objeto a través del encapsulamiento oculta lo “que hace” a los otros objetos y al mundo
exterior. Por ese motivo al encapsulamiento también se lo conoce como ocultamiento de la
información.
2
Pero un objeto tiene que presentar un rostro al mundo exterior para poder iniciar sus
operaciones, por ejemplo los botones, perillas y control remoto de la televisión. Este “rostro” se
conoce como interfaz.
Interfaz: colección de operaciones que se utiliza para especificar el servicio de una clase.
Envío de mensajes: en un sistema los objetos trabajan en conjunto. Esto se logra mediante
el envío de mensajes entre ellos.
Un objeto envía a otro un mensaje para realizar una operación y el objeto receptor
ejecutará la operación.
Un televisor y su control remoto, puede ser un ejemplo muy intuitivo del mundo que nos
rodea. Cuando desea ver un programa de TV, busca el control remoto y presiona el botón de
encendido. ¿Qué ocurre? El control remoto le envía literalmente un mensaje al televisor para
que se encienda. El televisor recibe el mensaje, lo identifica como una petición para
encenderse y así lo hace. Cuando desea ver otro canal, presiona el botón correspondiente del
control remoto, el cual envía otro mensaje al televisor para cambiar de canal. El control remoto
puede enviar otros mensajes, como bajar el volumen, aumentar brillo, etc.
Muchas de las cosas que hace el control remoto también las puedo hacer desde el panel
frontal del televisor.
Las interfaces que la televisión presenta (conjunto de botones y perillas) no es la misma que
muestra al control remoto (un receptor de rayos infrarrojos).
¿Qué queremos decir con esto? Los objetos se relacionan entre sí de alguna forma. Por
ejemplo: cuando enciende su televisor, en términos de OO, usted se asocia con su televisor. La
asociación de “encendido” es en una sola dirección. Pero hay otras asociaciones en dos
direcciones, como el matrimonio, por ejemplo.
Indica la cantidad de objetos de una clase que se relacionan con un objeto en particular de
la clase asociada. Por ejemplo, un curso escolar, sólo lo imparte un instructor, por lo tanto el
curso y el instructor están en una relación uno a uno. En cambio en un curso tipo seminario hay
varios instructores, o sea que entre el curso y el instructor están en una relación uno a muchos.
Agregación: forma especial de asociación que especifica una relación del tipo “todo-parte”
entre el agregado (todo) y la parte.
Un tipo de agregación trae consigo una estrecha relación entre un objeto agregado y sus
componentes. A esto se lo conoce como composición.
3
del propio compuesto, pero una vez creadas viven y mueren con él. Tales partes pueden ser
eliminadas antes que el compuesto.
En ocasiones un objeto compuesto no tiene el mismo tiempo de vida que sus componentes.
Las hojas de un árbol pueden morir antes que el árbol. Si se destruye el árbol, también morirán
las hojas.
Todos estos conceptos que hemos visto hasta ahora de la OO, nos ayudan a comprender el
área de conocimiento de su cliente.
Es para esa área de conocimiento que existe el Lenguaje Unificado de Modelado (UML).
• visualizar
• especificar
• construir
• documentar