Orientación a objetos: Introducción

admin

February 9, 2010

UML

No Comment

¿Qué es la orientación a objetos? Es una forma de modelar y desarrollar software la cual se basa en la creación de componentes reutilizables y tiene como principal característica la simulación de objetos reales.
Ok, muy bonito, pero ¿Qué es eso? Pues bien, para conocer realmente la orientación a objetos tenemos que determinar sus principios básicos.

“Un objeto es la instancia de una clase”
Este enunciado quiere decir dos cosas: 1) Todos los objetos son clasificables y 2) Todos los objetos son particulares.

Sé que estas pensando “Me dejas en las mismas, compadre”, pues trataré de redimirme ejemplificando:
Para clasificar un objeto cualquiera, determinamos su funciones (lo que hace) y definimos sus propiedades que lo caracterizan. Luego pues, mentalmente le ponemos una etiqueta, es decir, ya esté clasificado, sabemos a qué clase pertenece, pero lo estamos visualizando particularmente, es decir, tratamos con el objeto en particular; ejemplo:

Tu computadora personal, sabes que es una computadora, la clasificas como tal, sabes que tiene ciertas características (procesador, RAM, HD) y ciertas funciones,  el objeto que tratamos es particular, es “tú” computadora.

Pues allí tienes, todos los objetos son clasificables y todos los objetos son particulares, y puedes simular estos objetos en un programa computacional, uno  orientado a objetos.
Con lo anterior matamos tres pájaros de un tiro, ya que aplican y de hecho determinados a partir de ello otros dos principios:

“Una clase es una categoría de objetos” y “Una clase, y por ende, un objeto tiene estructura: atributos y operaciones”. Pero, continuemos:

“Un objeto tiene abstracción
Esto significa que objetos pueden ser “genéricos”, es decir, es posible eliminar de la estructura del objeto (atributos y acciones) aquello que nos estorbe, para concentrarnos en lo que nos sirve, creando un objeto particular abstracto de una clase.

Ejemplo: El anterior ejemplo de la computadora, es un ejemplo “genérico”, solo incluí en los atributos procesador, RAM y HD, aunque existen muchos más, como marca, modelo, peso, dimensiones, tarjeta gráfica, etc. El ejemplo de la computadora personal es una abstracción de la clase “Computadora”

”Un objeto tiene herencia
Un objeto tiene la estructura de la clase a la que pertenece, es decir, sus atributos y sus operaciones, por tanto, “hereda” la estructura de la clase.

Un objeto además, puede heredar estructura de otra clase, a la que pertenezca la clase de la cual proviene el objeto. En el ejemplo de la computadora, una  subclase sería “Laptop”, que hereda las características y operaciones de la clase “Computadora” y además tiene las suyas, por lo que los objetos de dicha clase “heredaran” la estructura de “Computadora” al igual que la de “Laptop”.

“Los objetos son capaces de efectuar encapsulamiento
Los objetos tiene la capacidad de ocultar las funciones que internamente efectúan las operaciones, es decir, pueden “encapsular” los comportamientos.

Un ejemplo: El refrigerador; mantiene fríos los alimentos y la mayoría de los mortales no sabemos como lo hace, ni nos importa, solo queremos que funcionen. Los que nos los venden nos proporcionan esa información, solo la que queremos saber (voltaje, garantía, vida útil, costo) y encapsulan el resto desde la fábrica.

“Los objetos son capaces de efectuar poliformismo
Esto significa que el funcionamiento de las operaciones es particular a cada clase, y por lo tanto, podemos utilizar las mismas palabras en diferentes clases para efectuar diferentes operaciones.

Por ejemplo: Una clase “Persona” tiene la operación de escribir(), y una clase “Computadora”, también. La Persona escribe con lápiz y papel y la Computadora en discos magnéticos. Hacen diferentes cosas, no obstante, la operación tiene el mismo nombre. A esta capacidad se le llama “poliformismo”.

“Los objetos se comunican por medio de mensajes”
Pues es muy explicito realmente, un  objeto puede enviar un mensaje a otro para activar una operación en este último.

Por ejemplo, un objeto de clase Persona puede enviar un mensaje a través de un botón al objeto Computadora para encenderla, otro para iniciar un programa en específico, por ejemplo, un bloc de notas, le envía muchos mensajes para enviarle texto y otro para que lo grabe. Los objetos se comunican por medio de mensajes.

“Los objetos son capaces de relacionarse entre sí”
Los objetos pueden relacionarse de distintas formas, por ejemplo:
Una asociación es aquella en que un objeto se une a otro a través de una interfaz común, por medio de un mensaje.

En el ejemplo de la Persona y la Computadora, la asociación de una vía es puede ser “encendido” y “apagado”. La de dos vías es la de consulta, por ejemplo a una base de datos, ya que la Persona consulta y la Computadora responde con algo que la Persona puede interpretar.
Y pueden existir objetos con más de una asociación entre sí.

La agregación es la forma en que dos o más objetos forman otro objeto. La Computadora es un ejemplo claro, está formada por tarjeta madre, gráfica, procesador, tarjetas RAM, disco duro, gabinete, etc.

La composición es un tipo especial de agregación, en la cual, los componentes no pueden existir sin el objeto al cual forman parte, por ejemplo: una Silla, se compone de asiento, respaldo, patas, etc. Si eliminas la silla, el respaldo por sí solo no tiene utilidad significativa.

La multiplicidad: Se refiere a la cantidad de objetos de cierta clase que se relacionan con otro objeto de otra clase en particular, tal y como en los diagramas de entidad relación, el ejemplo clásico es el de la escuela, un maestro tiene muchos alumnos y los alumnos solo un maestro, la relación es de 1 a n para el maestro y de n a 1 para los alumnos.

Aprendiendo estos básicos principios y practicándolos regularmente, serás capaz de modelar correctamente sistemas de la vida real en sistemas informáticos. Por ahora es todo, nos leeremos pronto.

Related Posts

Casos de Uso

admin

April 19, 2016

UML

No Comment

Los Casos de Uso Los Casos de Uso son los escenarios que se pueden presentar en el sistema, son el corazón del diseño y se obtienen de la especificación funcional. La especificación funcional es platicada, cómo contarle a un colega como funciona el sitema. Los Casos de Uso son tables, separando esta plática en partes, […]

Read More

Diagrama de clases: Introducción

admin

February 9, 2010

UML

1 Comment

¿Qué es una clase? Estrictamente hablando, es una abstracción de una entidad, pero más sencillamente, podemos pensar en una clase como una plantilla, utilizada para categorizar o clasificar (de allí su nombre) alguna cosa en particular. Vale, pero ¿Cómo hago esto? Pues simplemente como lo harías con cualquier cosa, ¿Cómo clasificarías un auto? Veamos: Me […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *