martes, 29 de julio de 2014

ABAP OBJECTS. Introducción

La programación orientada a objetos (POO) es una filosofía de diseño y desarrollo de software donde el modelo informático es un reflejo de las entidades del mundo real. A diferencia de los lenguajes tradicionales, donde existen procedimientos por un lado y datos por el otro, la POO permite a los programadores representar cada entidad del problema como un objeto “encapsulado” que contiene tanto sus datos y cómo los “comportamientos” gestionan sobre ellos.

Valiéndose de un lenguaje y entorno que respete los principios de la teoría de objetos, los objetos se crean a partir de una definición ”abstracta” de los mismos, denominada “clase”, que describe sus características y comportamientos. Los objetos concretos luego serán  “ejemplares” o “instancias” de esa "plantilla" abstracta que es la clase. Por ejemplo, clases y objetos típicos del entorno de negocios son "Clientes", "Materiales", "Ordenes de compra", etc.

La teoría de objetos se estructura alrededor en un conjunto de propiedades y paradigmas conceptuales (que exceden el alcance de este artículo), implementados luego en los distintos entornos de programación. Existen, numerosas y probadas ventajas asociadas a la programación orientada objetos que incluyen el encapsulamiento de la complejidad, la reusabilidad del código, la modularidad, entre otros.

La programación orientada a objetos representó una verdadera revolución en el universo del desarrollo de software, impulsando a programadores, analistas y arquitectos de sistemas a re-aprender su forma de concebir código y aplicaciones. En una primera instancia, lenguajes como C++, y luego JAVA, se convirtieron en los entornos de programación OO más emblemáticos.

En el mundo SAP, el instrumento que disponemos en ABAP para trabajar de acuerdo a este paradigma son los "ABAP Objects".

La introducción de ABAP Objects en el Release 4.6 representó un avance fundamental para incorporar técnicas de programación contemporáneas en un lenguaje tradicionalmente procedural. Sin embargo, la plena materialización del paradigma de objetos en el mundo SAP, llegó recién a partir de la versión 6.10, con el advenimiento del Web Application Server como sucesor de SAP Basis.

El concepto de ABAP Objects representa dos cosas distintas en el mundo SAP. Por un lado, designa a la concepción de toda la plataforma de ejecución como un nuevo paradigma de trabajo. Por otro lado, designa a la nueva extensión del lenguaje ABAP.

El propósito de este “tip”, el primero de la serie de Tutoriales de ABAP Objects, es entender  conceptualmente cómo se refleja el paradigma de objetos en el mundo SAP. No es el propósito de este tutorial definir en detalle la teoría de objectos en su vasta dimensión, sino discutir su implementación en el universo de ABAP Objects.

Los paradigmas de Orientación a Objetos en ABAP Objects

Como se dijo anteriormente, el lenguaje ABAP y el entorno de programación SAP, logra a partir de una nueva versión con extensión orientada a objetos, el diseño de nuevas aplicaciones, basadas en la teoría de objetos.

Comparado con otros, ABAP no es un lenguaje “puro” orientado a objetos. El runtime de ABAP soporta tanto el modelo de programación procedural como el de ABAP Objects en cualquier programa ejecutable, módulos o funciones.

Esto permite la utilización de nuevas técnicas basadas en ABAPsin necesidad de re-escribir todo el código.

Propiedades de un paradigma orientado a objetos

Son precisamente las propiedades del paradigma de objetos lo que le otorga su singularidad y todas las ventajas de modularidad cuando se plasman en la programación.

Encapsulamiento: Es el término que define formalmente la fusión dentro del mismo objeto de sus datos y métodos (comportamiento). Los objetos son tratados como “caja negra”, de manera que sólo sus métodos pueden actuar sobre sus datos, brindando independencia en la implementación de los mismos..

Abstracción: Permite a un objeto comunicarse y desconocer el forma en que se lleva a cabo el mensaje.

Polimorfismo: Capacidad que tienen objetos de distintas clases de responder a un mismo método y obtener diferentes reacciones.

Herencia: Se produce cuando una clase (la subclase) comparte la estructura (atributos) y el comportamiento (métodos) definidos en una o más clases (superclases). (Nota: En ABAP sólo está permitida la herencia simple.)

Obviamente, estas propiedades se ven reflejadas en la implementación de POO que hace ABAP Objects.

Es interesante contrastar las capacidades de ABAP Objects con las de otros lenguajes OO populares, en términos de cómo se ciñe al modelo POO. En la siguiente imagen veremos una comparativa con otros lenguajes.


En el siguiente post detallaremos la sintaxis utilizada por ABAP para trabajar con orientación a objetos.

No hay comentarios:

Publicar un comentario