0% encontró este documento útil (0 votos)
19 vistas

IMPLEMENTACIÓN DE PROGRAMACIÓN EN AutoCAD

1. ASPECTOS GENERALES DE LA PROGRAMACIÓN ORIENTACIÓN A OBJETOS 2. FUNDAMENTOS TÉCNICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETO 3. MODOS DE IMPLEMENTACIÓN DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (POO) 4. PROCESO DE EJECUCIÓN DE LA POO (DESDE CERO) 5. BIBLIOGRAFÍAS

Cargado por

Jose Gutierrez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas

IMPLEMENTACIÓN DE PROGRAMACIÓN EN AutoCAD

1. ASPECTOS GENERALES DE LA PROGRAMACIÓN ORIENTACIÓN A OBJETOS 2. FUNDAMENTOS TÉCNICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETO 3. MODOS DE IMPLEMENTACIÓN DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (POO) 4. PROCESO DE EJECUCIÓN DE LA POO (DESDE CERO) 5. BIBLIOGRAFÍAS

Cargado por

Jose Gutierrez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 26

ANEXO 2

FUNDAMENTOS DE LA
PROGRAMACIÓN “ORIENTADA A
OBJETOS”

63
INDICE DEL CONTENIDO

1. ASPECTOS GENERALES DE LA PROGRAMACIÓN ORIENTACIÓN A OBJETOS


1.1 UN NUEVO PARADIGMA DE PROGRAMACIÓN: POO
1.2 CARACTERISTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
1.3 CLASIFICACIÓN DE LOS LENGUAJES ORIETADOS A OBJETOS
1.4 RAZONES QUE ESTAN INFLUYENDO EN LA IMPORTANCIA DE LA POO
2. FUNDAMENTOS TÉCNICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETO
2.1. CONCEPTOS QUE DEBEN TENERSE EN CUENTA EN EL MANEJO DE LOS DATOS:
EL USO DE LAS VARIABLES GLOBALES Y LOCALES..!!
3. MODOS DE IMPLEMENTACIÓN DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
(POO)
3.1. LA IMPLEMENTACIÓN DE LAS CLASES: PARA QUÉ SIRVEN..??
3.2. DESCRIPCIÓN DE LOS ELEMENTOS PARA LA IMPLEMENTACIÓN DE LA POO..!!
4. PROCESO DE EJECUCIÓN DE LA POO (DESDE CERO)
4.1. PASO A PASO..!!
5. BIBLIOGRAFÍAS

64
1. ASPECTOS GENERALES DE LA PROGRAMACIÓN ORIENTACIÓN A OBJETOS

El aprendizaje y dominio de la programación orientada a objetos (POO) requiere de una


comprensión clara y completa de sus conceptos ó PROPIEDADES FUNDAMENTALES. La
divulgación de estos conceptos es esencial para construir un basamento fuerte en esta área
del software. Cualquier lenguaje que soporte POO debe soportar estos conceptos
fundamentales.

Afortunadamente, el aprendizaje eficiente de la POO consiste simplemente en el aprendizaje de


un conjunto de características que están presentes en muchos lenguajes usados
frecuentemente, tales como: Eiffel, Smalltalk, C++, Java, etc. Este tipo de lenguaje es un vehículo
que nos puede ayudar a expandir proyectos informáticos actuales, si se dispone de una buena
base de conocimientos teóricos de concepto de OBJETOS.

1.1. UN NUEVO PARADIGMA DE PROGRAMACIÓN: POO

El significado de paradigma en su en un sentido amplio, significa: Un conjunto de teorías,


estándar y métodos que juntos representan un medio para organización del conocimiento, es
decir; un medio de visualizar el mundo. En este sentido, la programación orientada a objetos es
UN NUEVO PARADIGMA. La Orientación a Objetos FUERZA a reconsiderar nuestro pensamiento
sobre la computación, sobre lo que significa realizar computación y sobre cómo se estructura la
información dentro de la computación.

LA ORIENTACIÓN A OBJETOS modela el mundo real de un modo más fácil ajustándolo a la


perspectiva del usuario; en contraposición al planteamiento del modelo tradicional. La
orientación a objetos proporciona mejores técnicas para construir componentes de software
reutilizables y bibliotecas ampliables de módulos de software. Esta característica mejora la
extensibilidad de los programas desarrollados a través de metodologías de orientación a
objetos. Los usuarios finales, programadores de sistemas y desarrolladores de aplicaciones, se
benefician de las tecnologías de modelado y programación orientada a objetos.

LOS CONCEPTOS FUNDAMENTALES QUE SUSTENTAN LAS TÉCNICAS PROGRAMACIÓN


ORIENTACIÓN A OBJETOS, SON:

 TIPOS ABSTRACTO DE DATOS (TAD): Ver Cap. 2 del libro POO por Luis J. Aguilar de
McGraw-Hill con ISBN: 9788448120153
 LAS CLASES Y LOS OBJETOS. Ver Cap. 3 del libro POO por Luis J. Aguilar de McGraw-Hill
con ISBN: 9788448120153
 CARACTERÍSTICAS DE LOS OBJETOS: Ver Cap. 1 del libro POO por Luis J. Aguilar de
McGraw-Hill con ISBN: 9788448120153
Esenciales: ENCAPSULAMIENTO, MODULARIDAD, ABSTRACCIÓN, JERARQUÍA, Y
POLIMORFISMO
Suplementarias: CONCURRENCIA, PERSIS TENCIA, MANEJO DE OBJETOS
COMPUESTOS Y MANEJO DE EXCEPCIO NES
 COMPORTAMIENTO DE LAS CLASES: Ver capítulos 3 y 5 del libro POO por Luis J. Aguilar
de McGraw-Hill con ISBN: 9788448120153

65
Esenciales: HERENCIA, (GENERALIZACIÓN / ESPECIALIZACIÓN), INSTANCIACIÓN,
POLIMORFISMO, AGREGACIÓN, ASOCIACIÓN Y ANULACIÓN/SUSTITUCIÓN
Suplementarias: SOBRECARGA, LIGADURA D INÁMICA Y REUTILIZ ACIÓN
DE PROGRAMAS (DIFERE NTE A LA HERENCIA) .

1.2. CARACTERISTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS

La orientación a objetos puede describirse como el conjunto de disciplinas (Ingeniería) que


desarrollan y modelizan softwares que facilitan la construcción de sistemas complejos a partir
de ciertos componentes elementales: llámense Objetos y Clases.

El atractivo de la orientación a objetos es que proporciona conceptos y herramientas con las


cuales se modela y representa el mundo real tan fielmente como sea posible. Las ventajas de la
orientación a objetos son muchas en PROGRAMACIÓN Y MODELADO DE DATOS. Como
apuntaban Ledbetter y Cox (1985)

“La programación orientada a objetos permite una representación más directa del modelo del
mundo real con el código”. El resultado es que el proceso de transformación normalmente
llevado a cabo desde los requisitos del sistema (definidos ciertamente en términos de usuario)
hasta la especificación del sistema (definidos en términos de crear, expresar y traducir al
lenguaje de la computadora una solución); se reduce considerablemente.

Los conceptos y herramientas orientadas a objetos son tecnologías que permiten que los
problemas del mundo real sean expresados de modo fácil, natural e intuitivo. Las técnicas
orientadas a objetos proporcionan mejoras y metodologías para construir sistemas de software
complejas a partir de unidades de software modularizado y reutilizable, que en este caso
vendrían a ser las clases y objetos.

Se necesitó un nuevo enfoque para construir software que se adaptaran a los requerimientos
de la actualidad. Este nuevo enfoque debió ser capaz de manipular tanto sistemas grandes como
pequeños y debió crear sistemas fiables que fuesen flexibles, mantenibles y capaces de
evolucionar para cumplir las necesidades de cambio.

La tecnología orientada a objetos puede cubrir estos cambios y algunos otros más en el futuro.

La orientación a objetos trata de cumplir las necesidades de los usuarios finales, así como la de
los desarrolladores de productos software. Estas tareas se realizan mediante la modelización del
mundo real. El soporte fundamental aquí es el MODELO OBJETO. Las cuatro propiedades más
importantes de este modelo son:

 ABSTRACCIÓN
 ENCAPSULAMIENTO
 MODULARIDAD
 JERARQUIA

Como sugiere Booch, si alguno de estos elementos no existe se dice que el modelo no es
orientado a objetos.

66
ABSTRACCIÓN: La abstracción es uno de los medios más importantes mediante el cual nos
enfrentamos con la complejidad inherente al problema durante la creación de un software. La
abstracción es la propiedad que permite representar las características esenciales de un objeto,
sin preocuparse de las restantes características (no esenciales).

Una abstracción se centra en la vista externa de un objeto, de modo que sirva para separar el
comportamiento esencial de un objeto de su implementación. Definir una abstracción significa
describir, de una forma particular, una entidad del mundo real, sin importa lo compleja que
pueda ser, y a continuación, utilizar esta descripción en un programa.

El elemento más representativo de la programación orientada a objetos es la CLASE. Una clase


se puede definir como una descripción abstracta de un grupo de objetos, cada uno de los cuales
se diferencia por su estado específico y por la posibilidad de realizar una serie de operaciones.

La idea de escribir programas definiendo una serie de abstracciones no es nueva, pero el uso de
clases para gestionar dichas abstracciones en lenguajes de programación ha facilitado
considerablemente su aplicación.

ENCAPSULAMIENTO: El encapsulamiento es la propiedad que permite asegurar que el


contenido de la información de un objeto esté oculto al mundo exterior; el objeto A no conoce
lo que hace el objeto B. y viceversa. La encapsulación (QUE TAMBIÉN SE CONOCE COMO
OCULTACIÓN DE LA INFORMACIÓN), en esencia, es el proceso de ocultar todos los secretos de
un objeto que no necesariamente contribuyen a representar las características esenciales del
mismo.

La encapsulación permite la división de un programa en módulos. Estos módulos se


implementan mediante clases, de forma que una clase representa la encapsulación de una
abstracción. En la práctica, esto significa que cada clase debe tener dos partes: UN INTERFAZ Y
UNA IMPLEMENTACIÓN.

El interfaz de una clase captura sólo una (1) vista externa y la implementación contiene la
representación de la abstracción, así como los mecanismos que realizan el comportamiento
deseado.

MODULARIDAD: La Modularidad es la propiedad que permite subdividir una aplicación en


partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente
como sea posible de la aplicación en sí y de las restantes partes. La modularización, como indica
Liskov, consiste en dividir un programa en módulos que se puedan compilar por separado, pero
que tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan
la Modularidad de diversas formas. La Modularidad es la propiedad de un sistema que permite
su descomposición en un conjunto de módulos cohesivos y débilmente acoplados.

JERARQUIA: La jerarquía es una propiedad que permite una ordenación de las abstracciones.
Las dos jerarquías más importantes de un sistema complejo son: ESTRUCTURA DE CLASES
(jerarquía “es-un” (is-a); generalización /especialización) y la ESTRUCTURA DE OBJETOS
(jerarquía “parte-de” (part-of) agregación).

No se debe confundir el concepto de clases con el de los atributos de los objetos de una misma
clase: Un coche rojo y un coche azul no son objetos de clases diferentes, sino objetos de la
misma clase con atributos diferentes.

67
Las jerarquías de generalización / especialización se conocen como HERENCIA. Básicamente, la
herencia define una relación entre clases, en donde una (1) clase comparte la estructura o
comportamiento definido en una ó más clases (herencia simple y herencia múltiple,
respectivamente).

AGREGACIÓN: Es el concepto que permite el agrupamiento físico de estructuras relacionadas


lógicamente. Así, un camión se compone de ruedas, motor, sistema de transmisión y chasís; en
consecuencia, camión es una agregación, y ruedas, motor, transmisión y chasís son agregados
de camión.

POLIMORFISMO: La quinta propiedad significativa de los lenguajes de programación orientados


a objetos es el polimorfismo. Esta propiedad no suele ser considerada como fundamental en los
diferentes modelos de objetos propuestos, pero dada su importancia, no tiene sentido
considerar un modelo objeto que no soporte esta propiedad.

Polimorfismo, como se indica literalmente, es una propiedad que hace referencia a la posibilidad
de que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite
referirse a los objetos de clases diferentes mediante el mismo recurso de programa y cuyos
resultados se manifiesten de diferentes formas, según sea el objeto al que se hace referencia en
ese momento.

Por ejemplo, cuando se describe la clase mamíferos se puede observar que la operación comer
es una operación fundamental en la vida de los mamíferos, de modo que cada tipo de mamífero
debe poder realizar la operación, o función comer. Por otra parte, una vaca ó una cabra que
pastan en el campo, un niño que se come un caramelo y un león que se devora a otro animal
son diferentes formas que utilizan los distintos mamíferos para realizar la misma función: comer.

El polimorfismo implica la posibilidad de tomar un objeto de cualquiera de la clase o sub-clases


de un tipo (Por ejemplo: mamífero), e indicarle que ejecute comer, esta acción se ejecutara de
diferentes formas, según sea el objeto mamífero sobre el que se aplica.

El polimorfismo adquiere su máxima expresión en la derivación o extensión de clases, es decir,


cuando se obtiene una clase a partir de una clase ya existente. Mediante la propiedad de
derivación de clases o herencia. Así, por ejemplo, si se dispone de una clase base llamada figura
que está conformada por un grupo figuras genéricas, cada una con su respectiva sub-clase; se
puede enviar un mensaje tanto a un tipo derivado (elipse, circulo, cuadrado, etc.) como el tipo
base.

Por ejemplo, cualquier sub clase figura puede aceptar los mensajes dibujar, el resultado de esta
tarea será distinto según que la clase sea un triángulo, un cuadrado o una elipse. Esta propiedad
es el polimorfismo que permite que una misma función se comporte de diferente forma según
sea la clase sobre la que se aplica. La función dibujar se aplica igualmente a un circulo, a un
cuadrado o a un triángulo y el objeto ejecutara el código especificado dependiendo del tipo de
objeto especificado.

OTRAS PROPIEDADES:

El MODELO DE POO IDEAL no sólo debe tener las propiedades anteriormente citadas al principio
del apartado, sino que es conveniente que soporte, además estas otras propiedades:

68
 CONCURRENCIA (Multitarea): Es conveniente que el lenguaje soporte la creación de
procesos paralelos independientes del sistema operativo. Esta propiedad simplificará la
transportabilidad de un sistema de tiempo real de una plataforma a otra.

 PERSISTENCIA: Los objetos deben poder ser persistentes; es decir; los objetos han de
poder permanecer después de la ejecución del programa.

 GENERICIDAD / ESPECIFICIDAD: Las clases parametrizadas (mediante plantillas –


templates ó unidades genéricas) sirven para soportan un alto grado de reusabilidad
(reutilización). Estos elementos genéricos se diseñan con parámetros formales, que se
instanciarán con parámetros reales, para crear instancias de módulos que se compilan
enlazan, y ejecutan posteriormente.

Muchos lenguajes de programación soportan todas estas propiedades y otros sólo algunas de
ellas.

NOTA: Defínase el término propiedad dentro de este contexto como la concurrencia de


dos o más características o atributos..!!

Antes de seguir ahondando sobre las diversas facetas o vertientes desarrolladas en el ámbito de
la programación orientados a objetos, vale la pena hacer referencia sobre cuáles son los
mecanismos ó características más sobresalientes que debe poseer un programa para ajustarse
al funcionamiento de los conceptos orientados a objetos:

 ENCAPSULAMIENTO Y OBJETOS: Que agrupen juntos atributos de datos y acciones


(métodos) que procesen esos datos.
 INSTANCIACIÓN: Usando las Clases como plantillas o patrones de objetos.
 AGREGACIÓN: Como medio de agrupar clases con propiedades comunes.
 LIGADURA DINÁMICA (POLIMORFISMOS): Para permitir a las clases de objetos que
tengan interfaces idénticos y propiedades que se puedan intercambiar.
 EXCEPCIONES: Se debe poder detectar, informar y manejar condiciones excepcionales
cuando se esté utilizando construcciones del lenguaje. Esta propiedad, añadida al
soporte de tolerancia a fallos del software, permitirá una estrategía de diseño eficiente.

ATRIBUTOS ADICIONALES:
 TIPIFICACIÓN ESTRICTA (FUERTE): Tipificación es el proceso de declarar el tipo de
información que puede contener una variable. Los errores de programación
relacionados con el número de parámetros e interfaces de módulos, se podrán detectar
durante las fases de diseño o implementación a través de este método en lugar de que
sea en los tiempos de ejecución.
 COMPILACIÓN INCREMENTAL: Característica en el desarrollo de sistemas grandes, en
los que las porciones del sistema se crean e implementan de un modo sistemático (poco
a poco, etapa a etapa). Esta característica complementa la característica previa de
tipificación estricta; que soporta partes independientes de implementación y especifica.
 PASO DE MENSAJES: El lenguaje es conveniente que soporte paso bidimensional de
mensajes entre módulos, lo que implicara módulos débilmente acoplados y diseños
flexibles. Esto significa que se deben poder pasar señales entre módulos (SÓLO
MENSAJES), sin necesidad de tener que pasar realmente ningún dato.

69
 DATOS COMPARTIDOS: Los módulos se deben poder comunicar mediante memoria
compartida, además del paso del mensaje.
 VERIFICACIÓN ESTÁTICA DE TIPOS: Que se realiza durante el proceso de compilación
para proporcionar seguridad en tiempo de ejecución y para la manipulación externa de
los atributos de los objetos.

1.3. CLASIFICACIÓN DE LOS LENGUAJES ORIETADOS A OBJETOS

Retomando el tema en cuanto a cómo operan los límites de designación de un lenguaje de


programación con respecto a la LPOO; podemos decir que por ejemplo, en el caso del lenguaje
Ada éste fue diseñado específicamente para la implementación de sistemas en tiempo real.
Aunque Ada no cumple las propiedades importantes de un LPOO (por ejemplo: herencia y
ligadura dinámica), soporta un enfoque de diseño orientado a objetos y se le conoce usualmente
como Basado en Objetos.

En este punto cabe la necesidad de dar información acerca de cómo están estructurados los sub-
lenguajes de programación dentro del ámbito de la programación orientada a objetos.

Una taxonomía de lenguajes de programación con propiedades de orientación a objetos fue


creada por Wegner. La clasificación incluye los siguientes grupos:

1. BASADO EN OBJETOS: Un lenguaje de programación es basado en objetos si su sintaxis


y semántica soportan la creación de objetos que tienen las propiedades descritas arriba.
2. BASADO EN CLASES: Si un lenguaje de programación es basado en objetos y soporta
además la creación de clases, se considera basado en clases.
3. ORIENTACIÓN A OBJETOS: Un lenguaje de programación orientado a objetos es un
lenguaje basado en clases que soporta también herencia.
Ejemplos:

Lenguajes basados en objetos: Ada-83, Actor, Clipper 5.2, Visual Basic 4/5/6.

70
Lenguajes basados en clases: Clu

Lenguaje orientado a Objetos: C++, Objetive-C, Java, Object Pascal, Delphi, Visual Object, Object
COBOL, Overon, Eiffel, Smalltalk, Simula, Prolog++, CLOS (Common List Object Sistem que
proviene del programa original LISP) y Ada-95

Esta taxonomía de orientación a objetos proporciona una definición estricta de los lenguajes de
programación orientados a objetos que ha prevalecido en la época actual. Según esta taxonomía
no es suficiente que un lenguaje soporte la creación de objetos. Para ser considerado orientado
a objetos es necesario que existan construcciones de creación de clases y que soporte las
propiedades de herencia adecuadamente para ser catalogado como tal.

LEGUAJES DE POO PUROS FRENTE A HIBRIDOS

Existe un profundo debate entre los usuarios y desarrolladores de POO sobre la decisión del
lenguaje a emplear. Un LPOO puro es un lenguaje diseñado para soportar únicamente el
paradigma orientado a objetos, en el que todo consta de objetos, métodos y clases. Un LPOO
hibrido, por otra parte, soporta otros paradigmas de programación, tales como: Estructurado,
Funcional, etc.), además del paradigma orientado a objetos.

Cada tipo de lenguaje tiene sus ventajas e inconvenientes. Los lenguajes puros pueden ser más
potentes, ya que utilizan todas las ventajas de sus respectivas tecnologías y proporcionan
máxima flexibilidad para cambiar los aspectos esenciales del lenguaje.

Sin embargo, la mayoría de los lenguajes puros no son tan rápidos como los híbridos y son
difíciles de codificar en toda clase de operaciones fundamentales. Esto les hace perder eficiencia
en tiempo de ejecución.

En contraste, los lenguajes híbridos pierden con frecuencia alguna de las características de los
lenguajes puros y normalmente no permiten modificar características de construcción del
lenguaje base; aunque como ya hemos comentado, son normalmente más rápidos para
operaciones construidas en el lenguaje base.

Los lenguajes puros e híbridos difieren también en la facilidad de aprendizaje, si bien esta
facilidad dependerá del nivel de cada persona. Así, para un programador la enseñanza de un
lenguaje puro normalmente es más fácil, ya que es más sencillo; sólo ha de aprenderse un
lenguaje y no dos, como en el caso de un lenguaje híbrido. Sin embargo, para un programador
experimentado, el movimiento o emigración hacia un lenguaje híbrido puede ser más fácil si
está ya familiarizado con el lenguaje base, pues entonces por ejemplo sólo necesitara dominar
las extensiones orientadas a objetos.

1.4. RAZONES QUE ESTAN INFLUYENDO EN LA IMPORTANCIA DE LA POO

Algunas de las razones que están influyendo considerablemente en el notable desarrollo de las
técnicas orientadas a objetos son:

 La OO es especialmente adecuada para realizar determinadas aplicaciones sobre


realización de prototipos y simulación de eventos físicos

71
 Los mecanismos de encapsulación de POO soportan un alto grado de reutilización de
código, que se incrementa por sus mecanismos de herencia.
 En el entorno de las bases de datos, la OO se ajusta bien a los modelos tradicionales,
incluido el modelo relacional.
 Aumento exponencial en la curva de desempeño para el aprendizaje y desarrollo de
aplicaciones informáticas.
 Interfaces de usuario gráfico (por iconos) y visuales. Los interfaces de usuario de una
aplicación manipulan la entrada y la salida para el usuario. Por consiguiente, su función
principal es la comunicación con el usuario final.

Estas razones hacen fundamental que, dentro de las tendencias actuales de la ingeniería de
software, el marco POO se revele como el más adecuado para la elaboración del diseño y
desarrollo de aplicaciones, actualmente.

VENTAJAS AL UTILIZAR LA PROGRAMACIÓN ORIENTADA A OBJETOS EN COMPARACIÓN A LA


PROGRAMACIÓN ESTRUCTURADA ..??

MODIFICABILIDAD: La facilidad de manipular, es decir; añadir, suprimir ó modificar nuevos


objetos haciendo esa gestión una labor mucho más sencilla para el programador

FIABILIDAD: Al dividir el problema en partes más pequeñas podemos probarlas de manera


independiente y aislar mucho más fácilmente los posibles errores que pudieran surgir

En términos generales, la POO se utiliza en grandes bases de código, mientras que la


programación estructurada es principalmente útil para proyectos sencillos.

OBSERVACIÓN:

CONSULTAR EN EL ANEXO 1 EL DIAGRAMA GENERAL DEL PROCESO DE TRANSFORMACIÓN DE


LOS LENGUAJES BASADOS EN EL PARADIGMA IMPERATIVO

2. FUNDAMENTOS TÉCNICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS

Tal y como hemos mencionado en los capítulos previos, lo que se buscó en cada una de las
etapas de desarrollo de los MECANISMOS que sustentan la gestión de los datos dentro de los
Lenguajes de Programación; a lo largo de todo este tiempo fue Primero: Optimizar el
desempeño de los componentes físicos que permiten operar a un computador y Segundo: Hacer
que las acciones del sistema operativo fuesen mas simples y con un menor tiempo de respuesta;
en la medida en que se desarrollaban programas más detallados y extensos en su composición.

Antes de adentrarnos en el siguiente tema, vale la pena señalar ciertos conceptos y aspectos
referentes al funcionamiento de los elementos que componen el computador y de cómo
deben de ser empleados para que desempeñen de forma eficiente su labor en función del
proceso de desarrollo de un programa informativo; donde la CUESTIÓN PRIORITARIA es como
gestionar los TIPOS DE DATOS con que se cuenta.

72
2.1 CONCEPTOS QUE DEBEN TENERSE EN CUENTA EN EL MANEJO DE LOS DATOS: EL USO DE
LAS VARIABLES GLOBALES Y LOCALES..!!

Al momento de referirnos al almacenamiento de los datos en un programa debemos señalar


que para poder acceder a dichos recursos debemos hacerlo bien sea de una manera explícita
por medio del empleo de bases de datos o bien a través del uso de variables operacionales que
fungen como elementos conectores hacia las BB.DD.

Para detallar más al respecto, a continuación, describiremos ciertos conceptos y aspectos


referentes al funcionamiento de los elementos que componen el computador y de cómo operan
entre sí al momento de gestionar la información (Las variables) en el ámbito de la programación
y de cómo la apropiada designación de ellas sirve para mejorar el desempeño de las funciones
de un programa informático.

¿Qué es una variable en programación?

La empresa mundialmente conocida como IBM, propone el siguiente concepto de variable de


programación:

“Una variable en programación, es un elemento de datos cuyo valor puede (Pero no siempre,
como en el caso de las variables predefinidas; que explicaremos más adelante); cambiar durante
el curso de la ejecución de un programa”. Más aún, los expertos afirman que “el nombre de la
variable debe seguir el convenio de denominación de un identificador (carácter alfabético o
número y el signo de subrayado).”

En palabras más sencillas, si queremos explicar qué es una variable en programación podemos
decir que es una unidad de almacenamiento y recuperación de datos con valores que pueden
(De forma eventual) cambiar, la cual se identifica con un nombre único en el código del
programa.

Además, una variable en programación se puede entender como un nombre que representa
un valor y se utiliza de forma periódica para almacenar diversos tipos de datos, los cuales se
utilizarán en las operaciones posteriores de codificación.

Si utilizáramos una analogía para describir este concepto, diríamos que una variable en
programación es la base de la pirámide, ya que sostiene los componentes fundamentales de
todos los programas computacionales.

Por otra parte, Sergio Agamez Negrete, experto en programación web, describe qué es una
variable en programación en el curso online de Fundamentos de Javascript: una variable en
Java es como una caja en donde podemos almacenar lo que queramos, como, por ejemplo,
nombres, números, funciones, etc.

Asimismo, recalca que las variables en programación son útiles, sobre todo, para asignar valores
complejos y evitar volver a colocar los mismos datos una y otra vez, haciendo el código del
programa o aplicación de Javascript innecesariamente largo.

Lo mismo aplica para los diversos tipos de lenguajes de programación, ya que todos tienen
variables que cumplen la misma función.

Para qué sirven las variables en Términos de Programación..??

73
Las variables son elementos simbólicos en los que se permiten almacenar ciertos valores con el
fin de ser utilizados en operaciones sistemáticas y recurrentes. Las variables constituyen los
elementos fundamentales de las operaciones que se realizan al momento de ejecutar un
programa. A cada variable suelen asignárseles sus respectivos segmentos de memoria en
función del tipo de datos que contengan según las características y condición de los tipos de
datos a los que estén asociados; con el fin de poder identificarlos y acceder a ellos de manera
directa en los casos en que se amerite.

Esta manera de gestionar la información resulta muy útil a la hora de llevar a cabo el desarrollo
de los análisis de los mismo ya que a la hora de formular y verificar las correspondientes
operaciones de cálculo o evaluación dentro de los Códigos del programa (Basadas en las
funciones inherentes, de usuario o aplicaciones externas); podemos recurrir a ellos tantas veces
como sea necesario, con tan solo invocar e incorporar los símbolos o expresiones que los
designan.

“Particularmente, los valores que son asignados a los Argumentos de una


función de usuario en la mayoría de los casos son variables que han de
APORTAR información rel evante dentro del proceso de análisis y evaluación
del programa a desarrollar por lo que se debe prestar mucha atención al
momento de designarlos para evitar cargar información innecesaria; lo que
acarrearía las desventajas de ocupar más espacio de memo ria del que
realmente sea necesario y un mayor tiempo de respuesta por parte del
sistema operativo”. Propia

En resumen, ¿qué es una variable de programación? En pocas palabras, se puede decir que es
un elemento que funciona tanto para guardar datos, así como para asignar y representar
valores en una expresión de programación. Sin embargo, el objetivo principal de una variable
en programación es facilitar la tarea del programador.

NO CONFUND IR LO QUE SON: LAS VARIABLES C ON LOS ARGUMENTO S..!!

Los ARGUMENTOS son valores de algunos parámetros (Datos) FUNDAMENTALES que hacen
posible poder llevar a cabo el análisis en la función de usuario y debido a su relevancia dentro
del orden secuencial de las operaciones de análisis, ameritan que sean almacenados de forma
al menos temporal, en la mayoría de los casos “COMO” una variable global o local (De Símbolo)
para su posterior uso itinerante en cálculos o comparación de valores. PERO como ya
mencionamos al ser parámetros pudieran adquirir valores constantes, como es el caso de PI con
3,1416.

Este mecanismo permite que se pueda acceder o invocarlos de forma EXPEDITA, ya que por su
naturaleza se encuentran: O fuera del ámbito de la función (Son datos que corresponden al
ámbito de ejecución del programa receptor) o corresponden a parámetros que SOLO deben
ser designados por el Usuario.

Por ejemplo; las VARIABLES del tipo (SETQ); pueden ser Fundamentales (o globales como PI) o
COMPLEMENTARIAS (locales), es decir; declaradas dentro de las funciones de usuario y que al
invocarlas sirven para llevar a cabo operaciones que empleen sus datos dentro de las funciones
inherentes del Lenguaje de Programación.

74
ES DECIR; NO TODOS LOS ARGUMENTOS NECESARIAMENTE TIENEN UN VALOR VARIABLE..!!

Ahora que ya sabes qué es una variable en programación, te contaremos cuáles son sus
características.

¿Cuáles son los aspectos que definen a una variable en programación?

La plataforma de investigación, Lifeder, reconoce que las variables en programación cuentan


con tres características principales. A continuación, te explicamos qué implican cada una de ellas
para que puedas entender mejor qué es una variable en programación:

Asignación de memoria

Cuando definimos qué es una variable de programación, hicimos énfasis en que es un elemento
del coding para guardar información, como valores y datos. En programación, la computadora
le asigna a la variable una posición en su memoria, en función al tipo de datos que almacene
la misma.

En otras palabras, una variable en programación es un lugar en la memoria del ordenador, ya


que, cuando este ejecuta un programa o una aplicación, la variable tendrá acceso a este bloque
de memoria.

Declaración

Cuando hablamos de cómo declarar una variable en programación, nos referimos a asignarle un
nombre y un tipo; de esta manera, el sistema le podrá otorgar una abstracción de la memoria
para almacenar los datos y su valor.

Asimismo, esto dependerá del tipo de lenguaje de programación que se esté utilizando, ya que
la clasificación de la variable antes de usarla es diferente en cada uno. Por ejemplo, en el caso
de Javascript y Lenguaje C, sí se necesita declarar; sin embargo, en lenguajes de programación
como Python, esto no es necesario.

Alcance

Según las características de las variables en programación, por medio del alcance se podrá
determinar hasta dónde se puede leer o manipular la información o el valor de una variable.

Por ejemplo, en el caso de las variables globales, se tendrá mayor alcance, pues tienen la
capacidad de funcionar a lo largo de todo el programa. Por otro lado, en cuanto a las variables
locales, el alcance solo llega a su propia función. Asimismo, es importante recalcar que el
alcance actúa de forma jerárquica siguiendo un orden descendente.

A continuación, hablaremos más a profundidad sobre estos tipos de variables en programación

¿Cuáles son los tipos de variables en programación?

Por otra parte, IBM presenta la clasificación de las variables en programación. En este caso, se
dividen en dos grupos: globales y locales.

75
Variables globales

Las variables globales son aquellas que no están declaradas dentro de la definición de
función. Estas están visibles y disponibles para todas las sentencias de un script. Pero, ¿qué es
un script?

Según Rootear, portal especializado en programación web, un script “es un código de


programación, usualmente sencillo, que contiene comandos u órdenes que se van ejecutando de
manera secuencial". Comúnmente, se utilizan para controlar el comportamiento de un
programa en específico.”

Entonces, una variable en programación global se puede utilizar en cualquier parte del código
de un programa o aplicación, inclusive fuera del campo de cualquier función. Usualmente, se
colocan al comienzo del programa y todas las funciones que lo componen pueden acceder a ésta
para leerlas y escribir en ellas.

Sin embargo, no se recomienda usar variables globales en exceso, ya que pueden generar
efectos colaterales, como alteraciones no deseadas en el código, además que atentan contra los
principios de la programación.

Variables locales

Por otro lado, ¿qué es una variable local en programación? Cualquier variable en programación
que se encuentre dentro de las llaves de una función se puede denominar una variable local.

Por el contrario de las globales, las variables locales pertenecen al parámetro de una sola función
específica, de modo que solo se pueden visualizar y utilizar dentro de la misma.

Asimismo, las variables locales sólo se pueden manipular dentro de la función a la que
pertenecen. Aunque los nombres de variables y sus identificadores deben ser exclusivos, es
válido nombrar una variable local con el mismo nombre que una variable local de otra función,
así como con el nombre de una variable global.

Ya que conoces qué es una variable en programación, sus características y sus tipos, te
enseñaremos cómo declarar una variable de programación.

Cuadro comparativo

BASE DE
VARIABLE LOCAL VARIABLE GLOBAL
COMPARACIÓN

Las variables se declaran dentro de Las variables se declaran fuera de


Declaración
una función. cualquier función.

Dentro de una función, dentro de la


Alcance Durante todo el programa.
cual se declaran.

76
La variable local no inicializada da La variable global no inicializada
Valor como resultado el almacenamiento almacena cero de forma
del valor de basura. predeterminada.

Accedido solo por las declaraciones,


Accedido por cualquier declaración
Acceso dentro de una función en la que
en todo el programa.
están declaradas.

Compartir datos No provisto Facilitado

Permanecer en existencia durante


Se crea cuando se ingresa al bloque
Vida todo el tiempo que su programa se
de funciones y se destruye al salir.
esté ejecutando.

Las variables locales se almacenan


Almacenado en una ubicación fija
Almacenamiento en la pila a menos que se
decidida por un compilador.
especifiquen.

No es necesario para variables


Paso de parámetros Necesariamente requerido
globales.

Cualquier modificación en una Los cambios aplicados en la variable


Cambios en el valor
variable local no implícita ni afecta global de una función reflejan los
de una variable
las otras funciones del programa. cambios en todo el programa.

Problemas de las variables globales

Al tener la oportunidad de cambiar el valor de una variable en cualquier lugar, podemos cometer
un error, cambiando accidentalmente el valor de la variable en diferentes partes del programa.
Si esto sucede, tendremos que revisar todo nuestro código buscando todos los casos en que
usamos la variable global que nos dá el error.

También tendremos que tener en cuenta cómo afectarán los cambios que hagamos en una
variable global en las diferentes partes del programa. Este problema se presenta por lo general
en grandes proyectos donde tenemos muchas líneas de código, funciones y bloques.

Otro problema específico con el uso de variables globales en arduino es la memoria. Como
sabes, los controladores Arduino están limitados en cantidad de memoria. En proyectos reales
se debe tener muy en cuenta que uso le damos a cada byte.

¿Cómo se comportan las variables globales?

Como ya mencionamos, las variables locales se crean dinámicamente y desaparecen de la


memoria RAM tras la finalización de la función, liberando espacio en la memoria; las globales
por el contrario, ya que sus valores deben estar disponibles en todo el programa y todo el
tiempo, por lo general ocupan espacio en memoria constantemente. Y si tenemos muchas
variables globales en el código, también necesitaremos mucha memoria para ellas, lo que puede
causar problemas.

77
Cómo trabaja la memoria RAM con el procesador..??

La memoria RAM (memoria de acceso aleatorio) es la encargada de recolectar y almacenar de


forma temporal los datos de los programas que el dispositivo esté procesando en el momento
que se mantenga encendido. En otras palabras, es la delegada de administrar el empleo de
programas, datos y la información que estos arrojen, creando así una base de datos inmediata.

La RAM es la memoria a corto plazo de un ordenador, donde se almacenan los datos que el
procesador está utilizando en ese momento

La memoria RAM tiene dos características que la diferencian del resto de tipos de
almacenamiento. Por una parte, tiene una enorme velocidad, y por la otra los datos sólo se
almacenan de forma temporal. Esto quiere decir que cada vez que reinicies o apagues tu
ordenador, lo normal es que los datos que haya almacenados en la RAM se pierdan

Teniendo en cuenta que la RAM sirve para que el ordenador o dispositivo móvil gestione los
datos de las aplicaciones en funcionamiento, la cantidad de datos que tengas allí afecta
directamente al rendimiento de tu dispositivo.

Cuanta más RAM tengas más aplicaciones podrás gestionar a la vez, y de ahí su importancia
porque si no hay suficiente el ordenador puede ir lento.

Cómo funciona el ciclo de ejecución de una instrucción en un procesador..??

Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode


execute en inglés) es el período que tarda la Unidad Central de Proceso (CPU) en ejecutar una
instrucción de lenguaje máquina.

Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar
cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU, puede
requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está
formado por uno o más ciclos máquina.

Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo: un
ordenador) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea
(programa) primero se debe buscar cada instrucción en la memoria principal ó RAM y luego
ejecutarla.

La memoria de acceso aleatorio (RAM) es la memoria de la computadora que almacena la


información que un programa necesita mientras se ejecuta. La RAM permite que el ordenador
realice la mayor parte de tareas cotidianas, como cargar aplicaciones, buscar en internet, editar
una hoja de cálculos o disfrutar del último juego. La memoria también permite cambiar
rápidamente entre estas tareas y le recuerda dónde se encuentra en cada una de ellas. Con una
RAM más rápida, aumenta la velocidad a la que la memoria transfiere información a otros
componentes. Es decir, su procesador rápido ahora tiene una forma igualmente rápida de hablar
con los otros componentes, lo que hace que su computadora sea mucho más eficiente.

La memoria RAM tiene dos características que la diferencian del resto de tipos de
almacenamiento: tiene una enorme velocidad y los datos solo se almacenan de forma temporal.
Esto quiere decir que cada vez que reinicies o apagues tu dispositivo, es normal que los datos
que estén almacenados en la RAM se pierdan.

78
Por otro lado, un procesador sigue un funcionamiento mecánico diferenciado por una serie de
etapas comunes: captación, decodificación y ejecución. Aunque cada una de las arquitecturas
(diseños de procesadores) ejecuten esas etapas de modo diferente, la intencionalidad general
es siempre la misma. Además, los procesadores actuales pueden tener varios núcleos.

En cuanto a la interacción de ambos elementos; cabe destacar que, para cada instrucción, un
procesador repite un conjunto de cuatro operaciones básicas, las cuales comprenden un ciclo
de computadora: (1) búsqueda, (2) decodificación, (3) ejecución y (4) almacenamiento.

Secuenci a de acciones del ciclo de instr ucción

1. Buscar la instrucción en la memoria principal

Se vuelca el valor del contador de programa sobre el bus de direcciones. Entonces la CPU pasa
la instrucción de la memoria principal RAM a través del bus de datos al (MAR). A continuación,
el valor del MAR es colocado en el Registro de Dirección de Memoria Registro de Instrucción
Actual (CIR), un circuito que guarda la instrucción temporalmente de manera que pueda ser
decodificada y ejecutada.

2. Decodificar la instrucción

El decodificador de instrucción interpreta e implementa la instrucción. El registro de instrucción


(IR) mantiene la instrucción en curso mientras el contador de programa (PC, program counter)
guarda la dirección de memoria de la siguiente instrucción a ser ejecutada.

 Recogida de datos desde la memoria principal RAM


 Se accede al banco de registros por los operandos (solo si es necesario)
 Se calcula el valor del operando inmediato con extensión de signo (solo si es necesario)

También se lee la dirección efectiva de la memoria principal si la instrucción tiene una dirección
indirecta, y se recogen los datos requeridos de la memoria principal RAM para ser procesados y
colocados en los registros de datos

3. Ejecutar la instrucción

A partir del registro de instrucción, los datos que forman la instrucción son decodificados por la
Unidad de Control (UC). Ésta interpreta la información como una secuencia de señales de control
que son enviadas a las unidades funcionales relevantes de la CPU para realizar la operación
requerida por la instrucción poder terminarla y seguir así.

4. Almacenar o guardar resultados

El resultado generado por la operación es almacenado en la memoria principal RAM o enviado


a un dispositivo de salida dependiendo de la instrucción. Basándose en los resultados de la
operación, el contador de programa se incrementa para apuntar a la siguiente instrucción o se
actualiza con una dirección diferente donde la próxima instrucción será recogida.

Los pasos 1 y 2 del ciclo de instrucción se conocen como ciclo de búsqueda. El ciclo de búsqueda
procesa la instrucción a partir de la palabra de instrucción.

79
Los pasos 3 y 4 del ciclo de instrucción se conocen como ciclo de ejecución. Estos pasos
cambiarán con cada tipo de instrucción.

El primer paso del ciclo de ejecución es el proceso de memoria, en que los datos se transfieren
entre el módulo de entrada/salida (I/O) y la CPU. A continuación, se produce el proceso de datos,
que usa operaciones aritméticas, así como lógicas en referencia a los datos. Después tiene lugar
el paso de alteraciones centrales, que son una secuencia de operaciones, por ejemplo, una
operación de salto. El último paso es una operación combinada de todos los otros pasos.

En resumen, la ejecución de una instrucción consiste de dos fases: Una Fase de búsqueda y otra
fase de ejecución. La fase de búsqueda va a consistir en obtener ó extraer la instrucción (que se
quiere ejecutar) de la memoria y llevarla a la Unidad de Control (UC). La fase de ejecución va a
consistir en ejecutar propiamente dicha instrucción.

Cómo se almacenan los programas en la memoria..??

La memoria almacena físicamente los programas y los datos que se tienen que procesar.

Cuando se ejecuta un programa, este pasará del soporte de almacenamiento masivo a memoria
externa, es decir; de donde estuvo almacenado de forma permanente a cargarse en memoria
principal para la operación de lectura.

Donde se almacenan a largo plazo los programas..??

Para realizar una tarea específica, los sistemas operativos de los ordenadores cargan los datos
del disco duro en la memoria RAM para procesarlos. Cuando termina de trabajar activamente
con esos datos, el ordenador los convierte de nuevo en almacenamiento a largo plazo

Es decir, el Disco Duro es el centro de almacenamiento de datos del computador. Aquí es donde
se instala el software y donde se almacenan los documentos y todo tipo de archivos. El disco
duro guarda y protege los datos a largo plazo, lo que significa que quedarán guardados incluso
si se apaga el computador.

EN LA MEDIDA EN QUE LA MEMORIA RAM FUNCIONE DE FORMA EFICIENTE TANTO LOS


PROGRAMAS COMO LAS RESPUESTAS DE ELLOS SERAN MAS RAPIDAS Y VARIADAS es decir
mejorara el RENDIMIENTOS

En nuestro caso en particular nos referiremos a la forma en que se almacena o gestiona la


información y específicamente las variables durante la ejecución de un programa informático.

La gestión de la información en el proceso de ejecución de un programa es de suma importancia


ya que la forma en que organicemos, como por ejemplo a través de la declaración de variables;
la información nos permitirá acceder gestionar y responder a ella por parte tanto de la misma
memoria RAM como del procesador de la mejor manera.

Como ya hemos indicado, la RAM (memoria de acceso aleatorio) es la memoria a corto plazo de
un ordenador, donde se almacenan los datos que el procesador está utilizando en ese momento

La RAM es el módulo de memoria que se comunica con el resto del ordenador mediante el
controlador de memoria de la unidad central de procesamiento (también conocida como CPU o
procesador) usando un bus. Algunos controladores de memoria cuentan con varios canales

80
La memoria RAM almacena dicha información y le envía al procesador los datos que necesitan
ser procesados, por lo tanto, mientras la memoria posea mayor velocidad de transmisión y
mayor capacidad de almacenamiento, el usuario podrá utilizar más programas simultáneamente
y de manera más rápida.

Esta relación simbiótica entre la memoria RAM y el procesador es la que sustenta la ejecución
de tareas que conllevan a la ejecución de los programas informáticos en un computador. De allí
la importancia de saber administrar las potencialidades y recursos de ambos elementos al
momento de designar sus cargas de trabajo (FUENTES DE DATOS).

Las variables se crean en la memoria RAM, pero cuando un programa está inactivo la memoria
que utiliza puede ser movida a la memoria secundaria (al disco duro) para liberar memoria para
otros programas. Al activarse de nuevo esta memoria es retornada a la RAM. Este proceso es
hecho por el sistema operativo

Es por ello que el surgimiento de las herramientas o técnicas de los Lenguajes de Programación
Basados en la Orientación a Objetos brindan un gran aporte al funcionamiento de tal relación
(Simbiótica) ya que contribuye a facilitar el DESEMPEÑO tanto de la memoria RAM como del
procesador a la hora de ejecutar los programas informáticos ya que la información o datos fluyen
entre la memora RAM y el procesador con mayor flexibilidad, movilidad e inmediatez de
respuesta.

3. MODOS DE IMPLEMENTACIÓN DE LA PROGRAMACIÓN ORIENTADA A OBJETOS (POO)

3.1 LA DEFINICIÓN DE LOS OBJETOS Y LA IMPLEMENTACIÓN DE LAS CLASES: PARA QUÉ


SIRVEN..??

La programación busca crear soluciones prácticas a problemas o incertidumbres del mundo real
a través de la aplicación sistemática de técnicas y procedimientos matemáticos, estadísticos y
lógicos; a un conjunto de datos representativos de un elemento o suceso. Para ello requiere de
la identificación de un algún TIPO DE DATO sobre el que se realicen LAS OPERACIONES de
cálculos y por supuesto de LAS VARIABLES que contenga ese tipo de dato.

En la actualidad se ha impuesto un nuevo modelo de planteamiento de problema. En los


modelos iniciales de análisis, un programa estaba compuesto de procedimientos y datos. Como
ya hemos explicado anteriormente; pero debido a la complejidad y a las continuas exigencias
que emergieron al momento de intentar expandir las capacidades de tales modelos para
incorporar y manipular ciertos datos al proceso de análisis; fue necesario plantear un nuevo
concepto que evolucionara hasta desembocar en un modelo más flexible y amplio con el que
fuese posible representar un nuevo tipo de dato, denominados específicamente; Tipos
Abstractos de Datos (TAD).

Dentro de este contexto, el concepto de CLASE constituye un elemento fundamental dentro de


ese nuevo modelo. La clase constituye la herramienta que instrumentaliza el manejo de ese
nuevo tipo de dato. Ya que, se logra a través de dicha figura, dar origen al concepto de
encapsulamiento de datos, donde se pueden manipular de forma práctica, no solamente los
datos representativos de un patrón de dato sino los procedimientos (funciones) particulares que
podrán operar sobre dichos datos. Además de facilitar los procesos de almacenamiento y
gestión de tales datos (Ver apartado Beneficios de la Tecnología de Objetos TO del Curso Propio).

81
Dicho principio de gestión podría aplicarse a cualquier ámbito de análisis de información en el
que tan solo con definir las características representativas de un elemento (ó suceso) y un
conjunto de operaciones particulares que los operen; se podrían simplificar y expandir las
posibilidades de análisis de cualquier problema y, por consiguiente, acceder a su resolución.

Estableciendo un paralelismo entre lo que son las clases y el intento de conceptualizar los
patrones o sucesos del mundo real, los cuales se caracterizan por sus respectivos detalles y los
procedimientos o funciones que rigen su comportamiento; no queda duda que con el aporte de
tal herramienta facilita en mucho el desarrollo de tales rutinas (Códigos) de evaluación
matemática, estadística o lógica.

Se podría indicar que tanto el termino CLASE como OBJETO poseen “cierta” equivalencia, ya
que representan dos (2) caras de la misma moneda: FACILITAR LA GESTIÓN DE LOS DATOS;
BIEN SEA PARA REPLICARLOS O SINO PARA CLASIFICARLOS.

Para el PRIMERO, se utiliza las ventajas de SINTETIZAR, es decir; captar y procesar las
características elementales de algunos patrones particulares para así poder definir la creación
de un nuevo patrón que los represente;

Y para el SEGUNDO, se vale del recurso de la ABSTRACCIÓN para crear una estructura que
albergue los datos de una forma más práctica y flexible a los requerimientos de manipulación y
procesamiento por parte de agentes externos.

En términos generales;

La programación orientada a objetos (POO) trata de amoldarse al modo de pensar del hombre
y ajustarse a su forma de analizar y gestionar los problemas. Los lenguajes de programación
orientado a objetos representan un entorno de comunicación que se vale de la utilización de los
recursos que ofrece la implementación de los TAD para facilitar a los humanos el proceso de
creación de programas informáticos que resuelvan problemas de ámbito general.

Para lograrlo, habrá que definir la naturaleza de los elementos sobre los que se constituirá el
desarrollo del programa y segundo habrá que definir la naturaleza de las interacciones que se
dan entre ellos para que puedan ser expresadas de forma de funciones relativas entre ellos.

Además, ha de contarse con toda la información posible al momento de realizar el análisis de


las características del problema a resolver. Dicha información debe estar enmarcada en una
descripción de los elementos reales vs las representaciones de los mismos a través de TIPOS DE
DATOS Y FUNCIONES que los definan dentro del lenguaje seleccionado para que sus
interacciones puedan ser expresadas de forma plena y clara.

La programación orientada a objetos permite a los lenguajes poder crear programas


informáticos en donde los elementos centrales estén representados, en el nivel más básico; en
este caso por los OBJETOS de primera instancia y luego por sus representaciones colectivas; a
través de las CLASES.

El hecho de crear una CLASE nos permite también, ir estructurando a voluntad varios tipos de
relaciones colectivas entre los elementos que la integran, a medida que van interactuando con
otras clases para logra efectuar una labor en particular dentro del programa.

82
Podemos definir una CLASE como “un conjunto de cosas (físicas o abstractas) que tienen el
mismo comportamiento y características; y que a través de la instanciación se pueden
representar otros elementos derivados que posean las mismas características (atributos) de los
elementos que la integran.

Una CLASE es una caracterización abstracta de un conjunto de objetos; por lo tanto, “A una clase
determinada solo han de pertenecer objetos similares”. Por ejemplo, un conjunto de objetos
tales como cuadros, triángulos, círculos, líneas, etc.; pertenecen a una clase figura.

Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento
e interfaz común y se crean u organizan para modelar el mundo real a través de las siguientes
relaciones:

1. Herencia (Generalización / Especialización)


2. Agregación
3. Asociación
4. Uso

¡¡..EN PERSPECTIVA…! !!

Un OBJETO es una “ENTIDAD CONCRETA” que almacena Datos (Variables) y cuenta con un
tiempo definido de existencia dentro del sistema que lo crea y utiliza. Además, constituye un
paquete de variables que definen dicho objeto y las operaciones las funciones que las operaran
en un momento dado. Cada variable del objeto habrá de interactuar con otras variables similares
cuando sea necesario.

Por otra parte, una CLASE es solo una ABSTRACCIÓN, o mejor dicho es SOLO un elemento
ENUNCIATIVO; que nunca existe de forma concreta ya que constituye un recurso empleado,
solamente; para Definir las “Características Generales” del grupo de Objetos que la integran y
para Crear/Manipular “Nuevos Objetos” a partir de la información que aportan los primeros.

Por otro lado, una CLASE constituye una estructura con un ámbito de maniobra que permite
acceder de forma sistemática (Cuando se haya especificado a través de los métodos
correspondientes); a todas las variables contenidas en cada uno de los Objetos que la integran.

Obviamente, al momento de efectuar dicha interacción entre objetos, se hará a través de


evaluaciones particulares que involucre operaciones sobre variables similares, es decir; comparar
los valores (Variables) correspondientes a un atributo en común que poseen, por ejemplo; dos o
tres objetos diferentes que la integran.

La CLASE viene a constituir Una Base de Datos General que define, subsecuentemente, a otras
Bases de Datos Particulares; formada por las variables que contienen los atributos de cada
Objeto y con la cual se podrá interactuar de forma “indirecta” a través de las operaciones
(Métodos) que posee cada objeto y de forma “directa” a través de los métodos que se designen
para dicha clase, tal forma de representar tal superposición de datos se expresa a través de la
creación de nuevos datos a los que se les conoce como Tipos Abstractos de Datos (TAD).

Un Objeto representa solo una estructura que Almacena y Gestiona (De forma concreta y
sistemática) Cada Una de sus correspondientes Variables.

83
Mientras que, una Clase constituye la capacidad de definir, manipular y crear varios elementos
(Objetos) similares a partir de los Tipos de Variables Convencionales contenidas en Cada Uno de
los Atributos de los Objetos que la Integran. Lo cual viene a constituir la posibilidad de
representar de un TAD, donde tanto el DATO como las OPERACIONES se encuentran vinculadas
de forma modular para que puedan ser empleadas en acciones subsecuentes con otros
elementos similares.

Esta forma de concebir el manejo de la información, a través del uso de los OBJETOS y las CLASES;
facilita la forma de representar los elementos que interviene en la resolución de un problema y
por consiguiente en la elaboración de una solución a través de un programa informático.

En términos estructurales;

Aunque los términos CLASES y OBJETOS se utilizan con frecuencia uno a cambio del otro, existe
una gran diferencia entre ellos: La clase es el tipo de dato, mientras que el objeto es la instancia
del tipo de dato (La Variable propiamente dicha). Una definición muy típica es la siguiente: Una
Clase es una colección de objetos comunes (similares), y un objeto es una instancia de una Clase.
Es la misma diferencia que existe en otros lenguajes de programación entre un tipo de dato y
una variable.

Los OBJETOS en software se pueden comparar a variables en lenguajes de programación


tradicional. Existe una diferencia significativa entre un objeto y una variable ordinaria, en que
una variable ordinaria sólo captura la estructura de los datos, pero no su comportamiento.

“Una CLASE es un entorno estructurado por objetos que permite, primeramente, a través de
una designación ó declaración; “acceder de forma indirecta” a las características COMUNES
(Expresado a través de sus ATRIBUTOS Y METODOS) de cada OBJETO que la integra y segundo,
“producir o recrear nuevos objetos” a partir de la información particular que se obtiene de los
anteriores. Tal Re-Creación viene a representar el nacimiento de un “nuevo” Tipo de Dato, es
decir; un Tipo Abstracto de Dato (TAD).” Propia.

LOS OBJETOS Y LAS CLASES se comparan con las variables y tipos en lenguajes de programación
convencional. Una variable es una instancia de un tipo de dato, como un objeto es una instancia
de una clase. Sin embargo, una clase es más expresiva que un tipo. Una clase describe un grupo
similar de objetos y encapsula “el estado” de cada uno de ellos: Conformado por las
respectivas estructuras de datos y las funciones que las manipulan.

En un lenguaje estructurado, un Tipo: integer, por ejemplo, define la estructura de una


variable entera, por ejemplo, una secuencia de 16 bits y los procedimientos y funciones que se
pueden realizar sobre enteros. De acuerdo a nuestra definición de clases, el Tipo: integer será
una clase. Sin embargo, en estos lenguajes de programación NO es posible agrupar NUEVOS
TIPOS y sus correspondientes nuevas funciones y procedimientos en una única unidad. En un
lenguaje orientado a objetos una clase proporciona este servicio.

Las CLASES son similares a los tipos de datos y equivalen a plantillas que describen como cierto
tipo de datos, que vienen dados por los TAD; se construyen o serán construidos a partir de la
interacción sistemática con elementos de características similares a los que la constituyen,
llamados Objetos.

84
De modo más formal, una Clase define o representa un TAD, que se genera de FORMA
PARTICULAR en cada ocasión que es invocada, empleando tanto el tipo de Variables que
representan a los OBJETOS que la integran; como el tipo de los Funciones que efectúan los
METODOS de gestión de ese conjunto de datos.

ES POR ESO, QUE CADA VEZ que se construye un “Objeto a partir de una Clase”, estamos
creando lo que se llama una Instancia de esa clase. Por consiguiente, los objetos no son más
que instancias de una clase. Una instancia es una variable (Definida o Por definir) del tipo objeto.
Y En general, instancia de una clase y objeto son términos intercambiables.

La razón de ser de una CLASE es que: “Es la única estructura por medio de la cual se puede
interactuar, a través de una evaluación simultánea con uno o más TAD (u OBJETOS); para
representar por medio de abstracciones (Empleando Datos y Operaciones), las características y
el comportamiento de entidades o sucesos del mundo real.” Propia

Al referirnos al término “Instancia” lo hacemos desde la acepción de que eso constituye un


Reflejo (o Producto) del aporte de los elementos de los que proviene o forma parte.

3.2 DESCRIPCIÓN DE LOS ELEMENTOS PARA LA IMPLEMENTACIÓN DE LA POO..!!

El aprendizaje y dominio de la programación orientada a objetos (POO) requiere de una


comprensión clara y completa de conceptos FUNDAMENTALES. La comprensión de estos
conceptos es esencial para construir un basamento fuerte en el mundo del software.

UNA VEZ IDENTIFICADOS LOS CONCEPTOS TEÓRICOS DE LOS OBJETOS Y CLASES, conviene
refrescar la información correspondiente a las características que poseen para poder conocer
la forma de poder implementar dichos recursos en los programas Orientado a Objetos.
Cualquier lenguaje que soporte POO debe soportar los siguientes conceptos fundamentales:

OBJETO: Recordemos que, un objeto es una entidad que se caracteriza por las acciones que
realiza. Con más precisión, un objeto se define como una entidad caracterizada por su ESTADO,
su comportamiento se define por las OPERACIONES que puede realizar; es una INSTANCIA de
una CLASE, identificada por un nombre; posee una visibilidad limitada para otros objetos; en
definitiva, se puede definir un objeto mediante su especificación y su implementación.

Un OBJETO retiene cierta información y conoce cómo realizar ciertas operaciones sobre esos
datos. La ENCAPSULACIÓN de operaciones e información es muy importante. Los métodos de
un objeto, únicamente, pueden manipular los datos asociados a ese objeto. Dicha encapsulación
es la propiedad que permite incluir en una sola entidad, módulo u objeto; tanto la información,
datos, u atributos; como las operaciones, métodos o funciones, que operan sobre esa
información. Los objetos al ser declarado primero, entran en un estado interno de conexión y
segundo, presentan una interfaz para poder interactuar con el exterior.

CLASE: Por otro lado, la clase representa la entidad genérica a la que pertenece un objeto. Una
clase se puede definir como una descripción abstracta de un grupo de objetos, cada uno de los
cuales se diferencia por su estado específico y por la posibilidad de realizar una serie de
operaciones.

Los objetos, al reflejar entidades del mundo real, permiten desarrollar aplicaciones, creando
NUEVAS CLASES Y ENSAMBLÁNDOLAS CON OTRAS EXISTENTES.

85
PROPIEDADES del objeto: Las propiedades son las CARACTERÍSTICAS propias de un objeto, por
ejemplo, imagínese un carro de color rojo, del año 2005, de marca honda y con aros de
magnesio. El carro descrito posee características que definen o proporcionan la apariencia o el
estado físico del objeto. A estas características se le denominan propiedades. Son incorporadas
al momento de declarar el Objeto y no podrán ser manipuladas por el usuario o programador;
una vez realizada dicha declaración. Podrán sólo ser invocadas para conocer el valor de sus
variables en un determinado momento.

ESTADO: Y a los VALORES que poseen dichas PROPIEDADES se les denominan estado del objeto.
El estado de un objeto puede cambiar en Visual Basic, así como el carro mencionado
anteriormente puede ser que cambie de color, en vez de rojo a negro. En este caso, se dice que
el estado de la propiedad Color ha cambiado de valor, y por tal razón también ha cambiado el
estado del objeto, en este caso del carro. Otro ejemplo sería, un botón de comando de color
negro en una aplicación que se comporta de la siguiente manera: cuando el usuario coloca el
puntero del Mouse sobre el botón, entonces el botón cambia de color negro a blanco.

EVENTOS: Son ACCIONES estándar de COMUNICACIÓN que ejecuta un individuo a través de los
elementos (Instrumentos) de interfaces física de un computador; para poder de esa manera
INTERACTUAR con una entidad (OBJETO). Cada acción externa u evento; está vinculado a un
llamado (Invocación de una función) requerida sobre dicho objeto y como tal generará una
correspondiente respuesta o reacción interna, definida por un Procedimiento.

PROCEDIMIENETOS: Los procedimientos se encuentran dentro de los módulos, y contienen u


engloba el CONJUNTO DE INSTRUCCIONES (OPERACIONES) que pueden llegar a ejecutarse, cada
vez que el usuario realiza ALGÚN EVENTO sobre el objeto, o cuando estos son llamados por su
nombre.

Los procedimientos son las DECLARACIONES DE LOS MECANISMOS que permiten optar a los
valores de los atributos. Un procedimiento representa la definición o declaración de todas las
FUNCIONALIDADES de un objeto.

Todo OBJETO viene representado por un grupo de procedimientos. Cada procedimiento debe
estar definido, por medio de la DECLARACIÓN DE UN PROGRAMADOR; de dos (2) maneras: De
una forma IMPLÍCITA Y OTRA EXPLÍCITA.

La IMPLÍCITA: La que define el TDA; se manifiesta a través de la declaración de un nombre del


procedimiento y sus argumentos (constantes, variables o expresiones). Algunos procedimientos
sólo vienen representados con un nombre, es decir, sin argumentos, y otros vienen
representados con el nombre del procedimiento, los argumentos y el nombre del evento que
activa dicho objeto.

Y la EXPLICITA: La que define qué hacer con el TDA; se manifiesta cuando el usuario realiza una
acción (evento) sobre el objeto y que se manifiesta e instrumentalizan por medio del código que
compone el cuerpo del procedimiento.

METODOS: Por otra parte; representan un conjunto de “MODOS ESTÁNDAR” de poder definir el
estado en el que se manifiesta: LA APARIENCIA Ó FUNCIONAMIENTO DE UN OBJETO DENTRO
DEL ENTORNO DEL PROGRAMA. Los MÉTODOS son funciones que también son llamadas desde
el programa, pero a diferencia de los procedimientos NO SON CODIFICADOS POR EL
PROGRAMADOR. Al igual que las propiedades, solo se podrán definir al momento de su
declaración.

86
Los MÉTODOS DE UN OBJETO, son llamados desde código en Visual Basic de la misma manera
como se hace referencia a una propiedad del control; más no influyen en el estado de sus
propiedades; cuyos valores sólo pueden ser manipulados por sus respectivos procedimientos.

Cada tipo de objeto o control poseen sus propios métodos, aunque algunos tipos de objetos
tienen métodos comunes

El concepto de MÉTODOS, a pesar de poseer una función única dentro del proceso de creación
y operación de los objetos y las clases; la cual es llevar a cabo las operaciones solicitadas a través
de los mensajes o eventos; en Visual Basic for Applications (VBA), se encuentran diferenciados
de dos (2) maneras: Una a través de los Procedimientos y otra a través de los Métodos,
propiamente dicho.

Para VBA, los PROCEDIMIENTOS como ya hemos dicho son un conjunto de instrucciones (Por
medio de funciones) que se ejecutan cuando el usuario realiza algún evento ó envía un mensaje
al objeto. Son definidos y desarrollados por el programador, que los podrá editar o modificar a
voluntad en el momento que sea oportuno. Por el contrario; en el caso de los métodos a pesar
de ser funciones que también son llamadas requeridas por el programa, no son codificados por
el programador, sino que obedecen a un formato de selección preestablecido por cada lenguaje.

Los métodos en el caso de Visual Basic, son llamados “desde el código” de la misma manera a
como se hace referencia de una propiedad del control. Además, cada tipo de objeto posee sus
propios métodos, aunque algunos tipos objetos tienen métodos comunes.

4. PROCESO DE EJECUCIÓN DE LA POO (DESDE CERO)

Una de las ventajas ineludibles de la ORIENTACIÓN A OBJETO S es la posibilidad de reflejar


o equiparar el comportamiento de individuos o sucesos del mundo real (Definiendo lo qué son
y de lo qué hacen); con los Tipos Abstractos de Datos Extensibles asociados a un Objeto.

Otro aspecto de la CLASE, es que representa una estructura donde no hace falta culminar una
evaluación cíclica de funciones para obtener un resultado, por el contrario, la evaluación se
realiza en tiempo real y no implica una inversión elevada de tiempo y espacio de memoria en
el computador.

Por otro lado, tal como señalamos en la página 21; una CLASE posee dos (2) funciones.

La FUNCIÓN UNO, ES LA DE CLASIFICAR: Ser una descripción o representación sintetizada de las


cualidades de un conjunto de objetos, es decir; que consta de métodos y datos que resumen las
características comunes de un conjunto de objetos. Se pueden definir muchos objetos a partir
de la misma clase. Dicho de otro modo, una clase es la DECLARACIÓN de un tipo objeto. A través
de ella, se puede definir de forma indirecta la condición de los objetos vinculados a esa misma
clase. Y más específicamente, una clase es una mera Declaración / Representación / Re-Creación
de un Nuevo Tipo de Dato (Objeto); formado a partir de los elementales que la integran (Datos
y Funciones).

Las CLASES desde una PERSPECTIVA GENERAL; son las herramientas más útiles al momento de
definir una rutina de análisis de datos dentro del proceso de gestión del programa, ya que brinda
la posibilidad de crear procedimientos extensos sobre cualquier conjunto de datos que puedan
ser representados con tan solo una entidad (La Clase); en la que se sintetice ciertas
características y funciones que los operen.

87
LA FUNCIÓN DOS, ES LA DE REPLICAR: La creación de una CLASE desde una perspectiva
particular; aporta o constituye el ÁMBITO o ESTRUCTURA primordial para generar nuevos
objetos a partir de las especificaciones establecidas por los elementos u objetos que integran
dicha clase. Y específicamente, “Los objetos se crean cuando un mensaje de petición de
creación se recibe por la clase base”.

Las CLASES cada vez que se utilizan como modelos o plantillas, mostrarán o describirán la forma
en que se construirán ciertos tipos de objetos. Cada vez que se construye un objeto a partir de
una clase, estamos creando lo que se llama una INSTANCIA de esa clase. Por consiguiente, los
objetos no son más que instancias de una clase. Una instancia es una variable de tipo objeto. En
general, instancia de una clase y objeto son términos intercambiables.

Habiendo dicho lo anterior; solo resta recordar que una CLASE es un tipo de dato definido por
el usuario que determina: LAS ESTRUCTURAS DE DATOS Y OPERACIONES ASOCIADAS CON ESE
TIPO. Es decir; una clase es una (1) representación de una colección de objetos similares. En la
práctica, una CLASE es un Mecanismo Generador de Instancias, Prototipos de Datos
o Tipos Abstr actos de Datos (TAD); a partir de un conjunto de Datos Base; pero tal
definición (De CLASE) no crea “a priori” ningún objeto en particular, de igual modo que la
declaración de una variable tampoco crea variables de forma automática.

POR LO QUE; UNA DIFERENCIA IMPORTANTE ENTRE UN OBJETO Y UNA CLASE ES QUE, UN
OBJETO TIENE ESTADOS Y LA CLASE NO…!!!!

4.1 PASO A PASO..!!

“Para ahondar sobre todos los aspectos de la implementación de POO; habrá que Revisar la
información de los siguientes Capítulos del Libro “PROGRAMACIÓN ORIENTADA A
OBJETOS” del autor: Luis Joyanes Aguilar y Nro./ISBN: 9788448120153”.

Índice Descripción del Tema


Capítulo 6 C++; Elementos de un Programa
Capítulo 7 Programación Modular; Funciones, Excepciones y Espacios de Nombre
Capítulo 9 Clases y Obj etos en C++
Capítulo 17 Diseño de Sistemas Orientados a Objetos
Capítulo 18 De C a C**
Capítulo 19 Construcción de Pr ogramas en C++/C
Capítulo 20 Puesta a Punto de Programas en C++

5. BIBLIOGRAFÍAS:

5.1. CURSO DE PERSONALIZACIÓN Y PROGRAMACIÓN DE AUTOCAD por Jonathan P.


Rodríguez, (Versión digital)
5.2. THE VISUAL LISP DEVELOPERS BIBLE 2003 EDITION by David M. Stein, (V. Digital)
5.3. PROGRAMACIÓN ORIENTADA A OBJETOS (POO) (ISBN: 9788448120153) y
5.4. PROGRAMACIÓN EN AUTOCAD CON VISUAL LISP (ISBN:9788448136949)

88

También podría gustarte