✒️ABAP POO Introducción a la POO
ABAP POO Introducción a la POO
Unidad-1-Leccion-4: Introducción a la POO
1) ¿Que es la Programación Orientada a Objetos (POO)?
Método de desarrollo de software basado en el comportamiento de los objetos en el mundo real.
No es un lenguaje, o tecnología, sino una forma de programar o manera de plantearse la programación. No es la única, ni mejor ni peor que las otras, pero se ha constituido en una de las formas de programar más populares. Muchos de los lenguajes de hoy día lo soportan y/o están diseñados bajo este modelo.
Con la POO se debe pensar distinto; para poder escribir nuestros programas en términos de objetos, propiedades, métodos, etc.
Los Objetos ABAP son un conjunto de sentencias orientadas a objetos que han sido introducidas dentro de ABAP, a partir de la versión 4.0, y como se basa en el lenguaje ya existente, es compatible con él.
En ABAP se pueden usar objetos en programas existentes, de igual manera, se pueden usar sentencias ABAP convencionales en programas ABAP orientados a objetos.
NOTA: Los conceptos de orientación de los Objetos ABAP son esencialmente los mismos de otros lenguajes modernos orientados a objetos, tales como C++ o Java. Sin embargo, un número pequeño de conceptos de POO que no son provechosos en estos lenguajes, no se han incluido en los Objetos ABAP.
Por otro lado, los Objetos ABAP poseen elementos muy útiles del lenguaje, que C++ y Java no poseen.
AUDIO TIP 1: Etapas de los orígenes de la POO:
1. Surgimiento de los lenguajes ensambladores, en donde la unidad de programación es la instrucción compuesta de un operador y los operandos. Aquí, el nivel de abstracción aplicado es muy bajo.
2. Surgimiento de los lenguajes como Fortran, ALGOL y COBOL donde los objetos y operaciones del mundo real se podían modelar mediante datos y estructuras de control separadamente. En esta etapa, el diseño del software se enfoca sobre la representación del detalle procedimental y en función del lenguaje elegido. Conceptos como refinamiento progresivo, modularidad, procedimientos y programación estructurada, son básicos en esta etapa. Aquí existe una mayor abstracción de los datos.
3. Surgimiento del concepto de abstracción y ocultamiento de la información.
4. A partir de los años 70 se trabaja sobre una nueva clase de lenguajes de simulación y sobre la construcción de prototipos como el Simula 70, el cual llevó al SmallTalk. En estos lenguajes la abstracción de datos es de gran importancia y los problemas del mundo real se representan mediante objetos de datos a los cuales se le añade el correspondiente conjunto de operaciones asociados a ellos. Términos como abstracción de datos, objeto, encapsulación, entre otros, son conceptos básicos sobre los cuales se fundamenta la POO.
2) ¿Cómo se piensa en la POO?
Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un auto para tratar de modelarlo en un esquema de POO. Diríamos que el auto es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha o parar.
En un esquema POO el auto sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2.
La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.
Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestión de un taller de autos utilizarás objetos auto. Los Programas Orientados a Objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de autos será un objeto que utilizará objetos auto, herramienta, mecánico, reparaciones, etc.
3) Conceptos claves de la POO OBJETO:
Es solo una porción de código fuente que contiene datos y proporciona servicios.
Los objetos en programación se usan para modelar objetos o entidades del mundo real (el objeto hijo, madre, o ¿farmacéutica?, por ejemplo).
Un objeto es, por lo tanto, la representación en un programa de un concepto y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.
Los datos constituyen los atributos del objeto. Los servicios que proporciona el objeto se conocen como métodos y se asemejan en su funcionamiento a las funciones. Normalmente los métodos operan con los datos privados del objeto, es decir, con datos que son sólo visibles para los métodos del objeto.
De esta manera, los atributos de un objeto no pueden ser cambiados directamente por el usuario del objeto, sólo pueden ser cambiados por los métodos de ese objeto. Así se garantiza la consistencia interna del objeto.
CLASE:Conjunto de objetos que tienen la misma estructura y comportamiento.
Cuando decimos “ave”, sabemos que nos referimos a “algo” con plumas, pico, dos patas, etc. No importa realmente si hemos visto un ave o no, o si tenemos un ave frente a nosotros; entendemos claramente que la palabra “ave” se refiere a alguna cosa que cumple con características específicas, se comporta de una forma concreta, etc. No es más que una palabra, pero nos permite clasificar las cosas.
Por ejemplo, sabemos que una gallina es un ave y que un perro no es un ave.
La clasificación es algo que hacemos todos los días, a cada momento (entre otras cosas, nos libra de utilizar medias como guantes o bañarnos en el comedor en vez de en la ducha). Cada vez que decimos que algo es alguna cosa, estamos clasificándolo, asociándolo a una clase.
Sin embargo, sabemos que la palabra ave no se refiere a un animal concreto, sino a una serie de animales. Ave es la palabra que usamos para identificarlos en un grupo, pero no podemos decir hoy haré volar la palabra “ave” ,en tal caso siempre nos referiremos a esta o aquella ave, siempre hablaremos de un animal concreto. La palabra es lo que conocemos como un concepto, una abstracción.
En la POO una clase no es más que una serie de código que define a todos los elementos relacionados con ella. Así, podríamos escribir la clase ave colocando en ella todas las características que tienen las aves (pico, color, alto, ancho, patas, etc.) las cuales llamaremos atributos.
Pero la cosa no termina allí, resulta que las aves tienen también ciertos mecanismos específicos, como volar, comer, dormir, reproducirse, etc. Estos mecanismos los llamamos métodos.
Por último, también sabemos que las aves reaccionan ante ciertos sucesos, como peligro, atracción, defensa. A estos los llamaremos eventos.
INSTANCIA:Objeto de una clase en particular creado en tiempo de ejecución
Una clase simboliza la definición de un objeto, pero no es el objeto en sí, del modo como una idea no es una cosa física. Así que para sentarnos necesitaremos convertir esa idea en algo, en un objeto real; a ese objeto lo llamamos instancia.
Cada vez que creamos una nueva instancia, ésta adquiere atributos, métodos y eventos de la clase a la que pertenece, sin embargo, cada instancia es independiente de las otras. Esto nos da dos ventajas:
- · Si hago algún cambio en la clase, todas las instancias de esta clase se actualizarán automáticamente; esto nos permite hacer cambios sin tener que ir a cada una de las instancias.
- · Al ser independientes de las otras instancias, puedo darles valores diferentes sin que afecten a las demás (como tener una silla negra, una roja, una más alta, etc.). Aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.
Las principales ventajas de la programación orientada a objetos son:
· En un sistema correctamente diseñado con orientación a objetos es posible realizar cambios al nivel de las clases, sin tener que realizar cambios en ningún otro punto del sistema. Esto reduce significativamente el costo total del mantenimiento necesario.
· La cantidad de trabajo en revisión y mantenimiento del sistema se reduce debido a que muchos problemas pueden ser detectados y corregidos en la fase de diseño.
AUDIO TIP 2:
A pesar de que las ventajas de la POO son mayores que sus limitaciones, podemos encontrar algunas características no deseables en esta; algunas de ellas son:
- · Las limitaciones para el programador: Aun cuando la POO no es nueva, una gran cantidad de programadores no están familiarizados sus conceptos. En otras palabras, la programación estructurada sigue siendo el método predominante en la gran mayoría de los desarrolladores de software. Al explorar la POO, nos queda claro que esta nos requiere una lógica de pensamiento totalmente distinta a la de la programación estructurada.
- · El tamaño excesivo en las aplicaciones resultantes: La gran mayoría de los equipos de computación cuentan con capacidades tanto de almacenamiento como de memoria, lo suficientemente buena como para ejecutar la mayoría de las aplicaciones que puedan desarrollarse con la POO. No obstante, existen casos en los cuales lo anterior no se cumple.
- · Herencia: Cuando se heredan clases a partir de clases existentes, se heredan de forma implícita todos los miembros de dicha clase, aun cuando no todos se necesitan. Esto puede resultar en aplicaciones muy grandes que no siempre encajan en los sistemas con los que se dispone.
- · Relacionado al punto anterior, una aplicación innecesariamente grande, puede resultar en una ejecución más lenta que una aplicación conformada solamente por los módulos necesarios.
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para el Máster ABAP POO.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez