Metodologia Orientada a Objetos

Page 1

METODOLOGÍA ORIENTADA A OBJETOS

Autor: Andrés José Rodríguez Valery

C.I: V-30.057.656

¿Qué es? ------------------------------------------------------------1 Origen y conceptos ---------------------------------------------1 Objetos ------------------------------------------------------1 Atributos -----------------------------------------------------2 Métodos -----------------------------------------------------2 Mensajes ----------------------------------------------------2 ¿Cómo uso la metodología? ---------------------------------3 El ejemplo del reloj ----------------------------------------------3 Paso 1: Reconocer el “todo” --------------------------------4 Paso 2: Reconocer objetos ---------------------------------4 Paso 3: Reconocer los atributos ----------------------------5 Paso 4: Reconocer los métodos ----------------------------6 Paso 5: Reconocer los mensajes ---------------------------7 Entonces… --------------------------------------------------8 Los 4 Principios Fundamentales ---------------------------9 Abstracción ----------------------------------------------------10 Encapsulación -------------------------------------------------11 Herencia --------------------------------------------------------13 Polimorfismo ---------------------------------------------------14 Ventajas y desventajas ---------------------------------------15 Ventajas --------------------------------------------------------15 Desventajas ----------------------------------------------------16 Usos ----------------------------------------------------------------17 El Análisis Orientado a Objetos (Análisis OO) --------------17 El Diseño Orientado a Objetos (Diseño OO) -----------------18 ÍNDICE

ÍNDICE (Cont)

Aaaaaaaaaaaaaaaaaaaaaa ----------------------------------19 Aaaaaaaaaaaaaaaaaaaaaaa ------------------------------19 El Análisis y Diseño Orientado a Objetos (Análisis Y Diseño OO) La Programación Orientada a Objetos (Programación OO) Referencias -------------------------------------------------------23

¿Qué es?

La Metodología Orientada a Objetos es un modelo aplicado para simplificar la comprensión de un proceso o sistema complejo. Si bien se puede acortar la Metodología Orientada a Objetos por el acrónimo MOO, en el desarrollo de esta revista se va a acortar a Metodología OO (…Orientada a Objetos).

Origen y conceptos

La Metodología OO no tiene un creador definido, más bien es resultado de unir y aplicar varios conceptos desarrollados en el Instituto de Tecnología de Massachusetts (MIT) entre los finales de 1950 y los principios de 1960 dentro de los departamentos relacionados con la programación, entre los varios conceptos heredados a la Metodología OO, existen 4 que son de gran importancia:

Objetos

• Es todo ser o cosa real o abstracta. Este término fue usado en diversos del MIT, aunque unos de los primeros fue el grupo de inteligencia artificial, que usaba el término “objeto” para referirse a los elementos dentro del lenguaje de operación que usaban.

1

Atributos

Son aquellas características propias de los objetos. Este término fue usado por el grupo de inteligencia artificial, junto al de objeto.

Métodos

• Son aquellas acciones que puede realizar el objeto, sin interactuar con otros objetos. Comúnmente los métodos se basan en alterar atributos del propio objeto que los realiza. Por ejemplo, si el objeto es una persona, uno de sus métodos puede ser el dormir, porque altera el atributo “despierto” a “dormido” . Fue usado por primera vez por el grupo de programación del MIT.

Mensajes

OBJETO A

• Son aquellas acciones que puede realizar el objeto, donde interactúa con otro objeto, afectando los atributos de otro objeto y/o indicando que debe realizar un método definido. El mensaje posee 3

características:

• El objeto emisor

• Un objeto destinatario

OBJETO B

• Una indicación de que método debe realizar el objeto destinatario y/o de que atributo debe cambiar el objeto destinatario.

2

¿Cómo uso la Metodología OO?

Con todo lo anterior tenemos claro que la Metodología OO simplificar la comprensión de un proceso o sistema complejo y que usa los conceptos de “objeto”, “atributos”, “métodos” y “mensaje” para hacer esto, la verdad es que esto no deja muy en claro su utilidad. Así que se va a usar un ejemplo para demostrar su utilidad, usando la siguiente situación “define el funcionamiento de un reloj analógico (solo las agujas)”

El ejemplo del reloj

Para poder definir el funcionamiento de un reloj analógico (el reloj de agujas) vamos a usar la Metodología OO, donde se descompondrá aquel sistema (el reloj) que deseamos simplificar o que llamaremos “todo” (el término “todo” no es usado para la metodología, pero dentro de esta revista se usará para referirse a aquello que se desea simplificar usando la metodología). Dicha descomposición se hará siguiendo un conjunto de pasos recomendados para este proceso, 1) Reconocer cual es el “todo; 2) Reconocer cuales son los objetos dentro del “todo”; 3) Reconocer que atributos diferencia a cada objeto; 4) Reconocer que métodos realiza cada objeto; y 5) Reconocer cuales son los mensajes realizados entre objetos y cuáles son sus características.

3

Paso 1: Reconocer el “todo”

Debido a que se nos pidió definir el funcionamiento de un reloj analógico, podemos reconocer que el “todo” en este caso es el reloj analógico

Paso 2: Reconocer objetos

Debido a que se nos pidió trabajar con las agujas, y consideramos al reloj como “todo”, podemos reconocer 3 objetos, la aguja de los segundos, la aguja de los minutos y la aguja de las horas

La aguja de los segundos La aguja de los minutos

La aguja de las horas

4

Paso 3: Reconocer los atributos

Para reconocer los atributos de cada aguja, solo hay que ver que diferencia a una aguja de otra y categorizarlo; en términos mas simples, vemos que caracteriza a cada aguja y lo agrupamos bajo una misma cualidad, siendo esta nuestro atributo. En este caso usaremos 4 atributos: forma, color, anchura y longitud; donde:

• En la aguja de los segundos:

o Forma: Alfiler

o Color: Negro

o Anchura: Delgada

o Longitud: Largo (alcanza las lineas al borde del reloj)

• En la aguja de los minutos

o Forma: Flecha

o Color: Rojo

o Anchura: Gruesa

o Longitud: Largo

• En la aguja de las horas

o Forma: Flecha

o Color: Rojo

o Anchura: Gruesa

o Longitud: Corta

Como se observa, el atributo de cada objeto se llenó con una característica, denominada “dato” .

5

Paso 4: Reconocer los métodos

Ahora hay que reconocer que proceso realiza cada aguja por separado, en este caso se observa que:

• En la aguja de los segundos:

o La aguja se mueve 6 grados a la derecha (para apuntar a la siguiente línea en el borde del reloj). El método se realiza cada segundo mientras el estado sea activo.

• En la aguja de los minutos

o La aguja se mueve 6 grados a la derecha. El método se realiza cada segundo mientras el estado sea activo.

6

• En la aguja de las horas

o La aguja se mueve 30 grados a la derecha (cada vez que se mueva apuntará a uno de los números al borde del reloj). El método se realiza cada segundo mientras el estado sea activo.

Paso 5: Reconocer los mensajes

Ahora hay que reconocer que interacción realiza cada aguja con otra, en este caso se observa que:

• En la aguja de los segundos:

o Cuando la aguja realice su método 60 veces (indicando que pasaron 60 segundos), dando una vuelta completa al reloj, enviará un mensaje a la aguja de los minutos, indicando que debe realizar su método. De esta forma, cada vez que pasen 60 segundos, la aguja de los minutos se moverá, indicando que pasó un minuto

7

• En la aguja de los minutos:

o Cuando la aguja realice su método 60 veces (indicando que pasaron 60 minutos), dando una vuelta completa al reloj, enviará un mensaje a la aguja de las horas, indicando que debe realizar su método. De esta forma, cada vez que pasen 60 minutos, la aguja de las horas se moverá, indicando que paso una hora

• En la aguja de las horas:

o No realiza un mensaje.

Entonces

Con este proceso se ha logrado definir el funcionamiento de cada aguja dentro del reloj, incluyendo como reconocerlas, que función cumplen de forma independiente y como interactúan entre sí para lograr un correcto funcionamiento. Claro, fue una explicación algo larga para lo que a primera vista son agujas que se mueven cada cierto tiempo, sin embargo, hay que

8

denotar 2 cosas:

1. Si bien el proceso de análisis aplicado con la metodología OO es más complejo que otros medios de análisis más convencionales, si se aplica correctamente, pocas veces deja espacios para interpretación, cada elemento (objeto) del “todo” analizado puede ser identificado fácilmente, y se conocen que hace y cuál es su importancia dentro del “todo”; siendo un análisis muy útil para análisis detallados

2. La forma de utilizar la Metodología OO depende de la propia habilidad del que la aplica y del motivo por el cual lo usa, esto resulta en que 2 personas que usen la Metodología OO para simplificar un mismo “todo”, pueden dar resultados ligeramente distintos

Los 4 Principios

Fundamentales

“Si eso no importante, fingiré que no existe”

Abstracción

Miau

Haz un ruido

Encapsulación Herencia

Polimorfismo

Guau!

9

La Metodología OO posee ciertas propiedades conocidas como los principios, entre los cuales destacan 4, que son conocidos como los 4 Principios Fundamentales y el nombre no es en vano, debido a que por lo general cada vez que se usa la Metodología OO se aplicará por lo menos uno de estos principios. Los principios son:

Abstracción

Abstracción

Este principio se puede definir en una sola frase “Si eso no es importante, fingiré que no existe”, lo que suena bastante tonto, pero es así como funciona. Es decir, cuando designamos cuales son los objetos, atributos, métodos y mensajes presentes en el “todo” a simplificar, solo hay que usar aquellos que son de nuestro interés según el propósito de la simplificación; esto resulta en que ignoremos detalles que no son importantes para nuestro propósito.

Por ejemplo, si consideramos el ejemplo del reloj, se ignoró la longitud exacta de cada aguja (y se uso algo tan general como “largo” o “corto”), considerar la fuente de energía y el fondo del reloj como objetos, o trabajar a mayor profundidad el cómo la aguja de los segundos ejecuta su método cada segundo; estos detalles no son importantes en este caso, debido a que la Metodología OO se usó para crear un ejemplo simple, y por extensión no requiere de datos tan detallados.

10
“Si eso no es importante, fingiré que no existe”

Para reconocer que información ignorar, es recomendado previamente meditar a profundidad para que se van a utilizar los resultados del uso del Modelo OO, y la conclusión de dicha meditación se debe mantener en mente a cada paso de la ejecución del modelo

Encapsulación

Encapsulación

Donde el principio de la abstracción se basa en ignorar la existencia de detalles de poca importancia, el principio de la encapsulación se basa en limitar la interacción con estos detalles y/o asegurar que estos detalles sean ignorados por ciertas personas. Existen características de ciertos objetos que no deben cambiar sin importar que o si pueden ser cambiados, se debe hacer usando un método específico, si esto es necesario se deben encapsular estas características, limitando la capacidad de otros objetos a enviar un mensaje que les afecte (si bien aún es posible, se suelen requerir algún tipo de condición para poder usar un mensaje).

Por otro lado, si se requiere que cierto grupo de personas no puedan acceder a ciertas características de uno o más objetos, también se deben encapsular dichas características, limitando el acceso a dicho grupo a esta información

11

Claro, ahora sabes cuando debes encapsular, sin embargo, nunca explica “como debes encapsular” y esto es debido a que no existe una regla de para poder realizar un encapsulamiento perfecto, sino que es algo que varía según que característica debe ser encapsulada, por cual motivo y cuáles son los medios disponibles para cumplir con ello. Por ejemplo, si usamos el reloj anterior, su creador tuvo que inventar un mecanismo que permitiera el giro de cada aguja de forma adecuada, y si venderá dicho reloj a sus clientes, estos no deben ser capaces de afectar fácilmente al mecanismo interno del reloj (porque lo podrían dañar por accidente) y tampoco es necesario que lo vean, así que la solución más simple, es cubrir este mecanismo, de forma que no sea afectado fácilmente.

Para eso el creador pudo usar el armazón común de un reloj y ajustarlos con tornillos, de esta forma encapsuló el mecanismo interno de forma que el cliente no podrá afectarlo de forma accidental, sino que requerirá de un equipo (destornillador) para acceder a este (limitando la interacción) y a la vez, el mecanismo no será visible hasta que se retire el armazón (haciendo que la mayoría de los clientes ignoren la existencia del mecanismo); es decir que, realizó un encapsulamiento que se ajustaba a la situación de un reloj.

12

Este principio establece que se pueden agrupar un conjunto de propiedades (atributos, métodos y mensajes) en un modelo denominado “clase”, este modelo puede ser aplicado en uno o varios objetos, los cuales “heredan” las propiedades de la clase y pasan a ser conocidos como “instancias” de la clase. Una clase también puede heredar de otra clase, si se hace esto, esta pasa a ser la “clase hija” y la otra clase pasa a ser una “superclase” o “clase padre”.

Este principio es usado para facilitar el reconocimiento de las propiedades de varios objetos con diversas similitudes. Por ejemplo, digamos que se usa la Metodología OO para organizar la construcción de un conjunto de automóviles, todos pueden ser de marcas distintas, pero más de una vez, van a compartir ciertos atributos, tales como la “marca”, sin usar las clases, se debe mencionar la marca de cada auto sin importar cuantas veces se repite.

13
Herencia
Herencia
Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota Marca: Toyota
Marca: Toyota

Para facilitar esto, se crea una clase denominada “Toyota” y establecemos que la clase posee el atributo “Marca: Toyota”, ahora podemos volver a todos los carros (los objetos) con este atributo en instancias de “Toyota”

Toyota

Atributos:

• Marca: Toyota

Con la clase “Toyota” se ahorra marcar de forma individual el atributo “Marca: Toyota” y solo se debe declarar a cada objeto como una instancia de la clase con este atributo.

Como detalle, cada objeto que sea instancia de una clase o clase hija, puede poseer sus propios atributos, métodos y/o mensajes no heredados.

Polimorfismo

Haz un ruido

Guau! Miau

Polimorfismo

Este principio trabaja es una propiedad de los métodos y los mensajes, donde según el contexto donde son ejecutados, estos se ejecutan de forma distinta según el contexto. Por ejemplo, si tenemos 2 objetos, uno es un perro y otro es un

14

gato, y ambos poseen un método que sea “hacer un ruido”, si este se ejecutara en ambos objetos, el perro ladraría y el gato maullaría, es decir, a pesar de ser el mismo método, como el contexto del objeto que lo realizaba era distinto, la ejecución del método fue distinta.

Ventajas y desventajas

La Metodología OO tiene ciertas ventajas y desventajas en su aplicación, y es importante conocer las más destacables, para saber cuándo sería mejor o peor usarla. Comenzaremos con…

Las ventajas

• Es perfecto para planificar: Todo proceso de planificación suele trabajar con conceptos como “pasos” y “trabajo en equipo” ¿Y qué tienen estos en común? Un conjunto de partes que trabajan en conjunto para cumplir una función en común (un sistema), el área de especialidad de la Metodología OO, y con su uso se pueden generar pasos de forma organizada y cuyo orden de ejecución es clara, distribuir trabajos entre miembros de un equipo de forma eficaz, etc.

15

• Es muy útil para notar errores: Debido a que se separa un “todo” en sus elementos más simples y sus propiedades, si el “todo” falla, solo hay que tomar cada elemento por separado y comprobar si cumplen su función correctamente, y de esta forma, se encuentra uno o varios elementos que fallan, seguramente se habrá encontrado la raíz del fallo.

• Adaptabilidad: La Metodología OO, a pesar de ser llamado “metodología”, no sigue un conjunto de pasos o instrucciones definidas para cumplir su función, sino que es la aplicación de ciertos conceptos y la forma en la cual esto se realiza depende del que lo use; esto resulta en que la Metodología OO es muy adaptable, donde se puede usar como sea necesario para lograr el objetivo de su usuario.

Las desventajas

• Inexactitud: Al igual que la Metodología OO es adaptable y puede usarse como requiera el usuario por su falta de instrucciones, esto también resulta en que una inexactitud en lo referente a cómo aplicarla, de tal forma que, si una persona inexperta intenta aplicar esta metodología, lo más probable es que falle en el proceso o que los resultados no sean los deseados. Para usar la Metodología OO es requerido tener experiencia, ya sea de forma práctica y viendo ejemplos de sus usos (forma teórica).

16

• Ineficiencia: La Metodología OO es muy útil para sistemas complejos, por lo general, su uso en sistemas simples es poco recomendado, debido a que el proceso a seguir suele ser más complicado que el de otras metodologías, tal como la metodología del enfoque de sistemas (cuyo uso es parecido)

Usos

Por lo general, la Metodología OO suele ser usada en la creación y análisis de software y hardware, donde tiene 4 usos especializados dentro de estos: El Análisis Orientado a Objetos (Análisis OO)

Este uso, tal y como indica su nombre, está especializado en aplicar la Metodología OO para comprender propiedades, funcionamiento, composición, etc. del “todo” simplificado. El Análisis OO suele ser aplicado en el desarrollo de software, debido a que entre los pasos en la creación de este se ubican 2 etapas denominadas “Requerimientos” donde se comprende que requiere el cliente (la persona u organización a la cual se le creará el software) en el software y “Análisis” donde se

17

decide qué características debe poseer el software para cumplir con los intereses del cliente.

En las etapas de Requerimientos y Análisis se puede llegar a tener que analizar y comprender no solo los intereses del cliente, sino también que uso se le va a dar al software y como se le haría más útil a la empresa, y para ello, el Análisis OO llega a ser usada para simplificar todo esto y poder analizar el resultado para obtener claro que requerirá el software.

El Diseño Orientado a Objetos (Diseño OO)

Este uso está especializado en aplicar la Metodología OO para crear algo nuevo, dependiendo de un análisis previo, el cual usa para diseñar el cómo funcionar un “todo” nuevo, hay que destacar que el Diseño OO solo trabaja lo teórico del “todo” a crear, no se realiza ningún proceso de creación, solo la planificación.

Comúnmente se observa su uso en la creación de software, debido a que después de la etapa de Análisis, se pasa a la etapa de “Diseño”, donde, tras conocer que debe poseer el software a crear, el equipo procede a planificar como el software cumplirá con todas las características reconocidas,

18

y por su especialidad en la planificación, el Diseño OO suele usarse en esta etapa

El Análisis y Diseño Orientado a Objetos (Análisis y Diseño OO)

Como se comentó anteriormente, el Diseño OO depende de un análisis previo del “todo” a crear, lo que abre la puerta a usar previamente un Análisis OO; si ambos se usan en conjunto, se denomina a proceso completo como Análisis y Diseño OO y como se puede deducir, suele ser usado en las etapas de Requerimientos, Análisis y Diseño de software.

La Programación Orientada a Objetos (Programación OO)

La Programación OO es algo denominado “Paradigma de programación”, un modelo creado para lenguajes de

19

programación (que son lenguajes usados por los programadores para hacer que las máquinas sigan una serie de instrucciones, siendo estas el código del software).

La Programación OO es bastante famosa, hasta el punto de que este paradigma de programación es más famoso que la propia Metodología OO y se ubica entre los padigmas de programación más utilizadas. Esto se debe a que es bastante útil de usar en código, y además, varios de los lenguajes de programación que usa son de los más famosos, por ejemplo, dentro de los lenguajes de programación que usan el paradigma de Programación OO, podemos mencionar a:

• Java: Es uno de los lenguajes de programación más usados en todo el mundo, si no; el más usado en el mundo, el cual a pesar de su antigüedad (fue hecho en 1995), se ha vuelto famoso por su versatilidad, permitiendo programar todo tipo se software. Este es el lenguaje de programación usado para crear videojuegos como Minecraft y Pokémon Go.

20

• C++: Este lenguaje es una extensión de “C” (otro lenguaje de programación), que fue hecho para trabajar con Programación OO. Este es otro de los lenguajes más usados del mundo, y fue usado para crear los juegos, Among Us y Pokémon Go (junto a Java)

• Python: Es uno de los lenguajes de moda, y uno de los motivos (más allá de la publicidad de Next U) es que es un lenguaje multiparadigma, es decir, trabaja con varios paradigmas de programación, incluyendo la programación orientada a objetos. Este lenguaje fue usado para programar Instagram.

21

Otros lenguajes de programación:

o C#: Uno de los lenguajes más populares del mundo, pero suele ser usado por el público.

o Ruby: Es un lenguaje multiparadigma.

o Objective C: Uno de los principales lenguajes usados para crear el software de Apple.

o PHP: Es multiparadigma, aunque se suele usar para codificar con Programación OO.

22

Referencias

209.157.137.xxx (2001). Object-oriented programming. Recuperado el 19 de septiembre de 2023 en: https://en.wikipedia.org/wiki/Object-oriented_programming Admin (2018). Análisis y diseño orientados a objetos. Recuperado el 21 de septiembre de 2023 en: https://diagramasuml.com/analisis-y-diseno-orientados-aobjetos/

Anónimo (2014). Metodología de la Programación Orientada a Objetos (POO) con C++. Recuperado el 19 de septiembre de 2023 en:

https://www.bibliadelprogramador.com/2014/02/metodologiade-la-programacion.html

Anónimo (2020). Los 10 lenguajes de programación más utilizados en 2020. Recuperado el 22 de septiembre de 2023 en:

https://codespaceacademy.com/blog/10-lenguajesprogramacion-utilizados/

23

Anónimo (sin fecha). 3.3 Descripción de Metodologías orientadas a objetos. Recuperado el 19 de septiembre de 2023 en: https://cursos.clavijero.edu.mx/cursos/178_pds/modulo3/cont enido/tema3.3.html?opc=2

Anónimo (sin fecha). Ciclo de vida del software. Recuperado el 21 de septiembre de 2023 en: https://ciclodevida.net/delsoftware

Anónimo (sin fecha). Mensajes y métodos. Recuperado el 19 de septiembre de 2023 en: http://profesores.fib.unam.mx/carlos/java/java_basico3_2.html

Calderon, I (2021). Los 4 Principios de la Programación Orientada a Objetos. Recuperado el 20 de septiembre de 2023 en: https://medium.com/streamelopers/los-4-principiosde-la-programaci%C3%B3n-orientada-a-objetosfeccc61ff5e0

Edgar (2002). Programación orientada a objetos. Recuperado el 19 de septiembre de 2023 en: https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada _a_objetos

24

FritzSolms (2005). Object-oriented analysis and design. Recuperado el 21 de septiembre de 2023 en: https://en.wikipedia.org/wiki/Objectoriented_analysis_and_design

Iammalf (sin fecha). Los 4 principios fundamentales de la programación orientada a Objetos POO. Recuperado el 20 de septiembre de 2023 en: https://webdesigncusco.com/los4-principios-fundamentales-de-la-programacion-orientada-aobjetos-poo/

López, L (2021). Videojuegos populares y el lenguaje en el que desarrollaron. Recuperado el 22 de septiembre de 2023 en: https://www.berlitz.com/es-mx/blog/videojuegospopulares-y-el-lenguaje-en-el-que-desarrollaron Marcos (sin fecha). Programación orientada a objetos:

¿Qué es y para qué sirve?. Recuperado el 22 de septiembre de 2023 en:

https://v1.apx.school/blog/programacion-orientada-a-objetos

Marker, G (sin fecha). Lenguajes de programación orientada a objetos. Recuperado el 22 de septiembre de 2023 en: https://www.tecnologia-informatica.com/lenguajes-deprogramacion-orientada-a-objetos/

25

Román, C (sin fecha). CONCEPTOS DE LA METODOLOGÍA

ORIENTADA A OBJETOS. Recuperado el 19 de septiembre de 2023 en: http://profesores.fib.unam.mx/carlos/aydoo/conceptos_oo.html

26

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.