IMPLEMENTACIÓN DE PROGRAMACIÓN EN AutoCAD
IMPLEMENTACIÓN DE PROGRAMACIÓN EN AutoCAD
FUNDAMENTOS DE LA
PROGRAMACIÓN “ORIENTADA A
OBJETOS”
63
INDICE DEL CONTENIDO
64
1. ASPECTOS GENERALES DE LA PROGRAMACIÓN ORIENTACIÓN A OBJETOS
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) .
“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.
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.
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.
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).
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.
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.
Muchos lenguajes de programación soportan todas estas propiedades y otros sólo algunas de
ellas.
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:
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.
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.
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.
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.
Algunas de las razones que están influyendo considerablemente en el notable desarrollo de las
técnicas orientadas a objetos son:
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.
OBSERVACIÓN:
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..!!
“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.
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.
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.
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.
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.
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.
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?
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
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.
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.
77
Cómo trabaja la memoria RAM con el procesador..??
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.
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 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.
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
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í.
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.
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.
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.
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.
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.
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.
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:
¡¡..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.
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.
“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.
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
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.
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.
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.
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.
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…!!!!
“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”.
5. BIBLIOGRAFÍAS:
88