La importancia de reflexionar sobre la diferencia entre Programación Orientada a Objetos y Metodología de la Programación Orientada a Objetos. Puede solicitar informacion adicional a luiseduardo.pelaez@gmail.com
U1T2 - El concepto de la programación Vs el concepto de la MetodologíaU1 t2 el concepto de la programación y la metodología
1. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
UNIDAD I – TEMA II
EL CONCEPTO DE LA PROGRAMACIÓN Vs EL CONCEPTO DE METODOLOGÍA: ALGUNOS
APORTES QUE PUEDEN INICIAR LA DISCUSIÓN ALREDEDOR DE SU DIFERENCIA.
El presente documento pretende entregar algunos aportes que servirán para
promover la diferencia y la reflexión entre los conceptos: programación de
computadoras y la metodología de programación de computadores. Algunos
aportes, unos aislados, otros coherentes, tienen fundamento en autores con
amplia trayectoria en el campo. Finalmente, lo que se busca es sentar posición
entre la diferencia que hay alrededor de ambos conceptos y las competencias que
cada sujeto debe tener para llevar a cabo cualquiera de ellas: programación o
metodología.
LA PROGRAMACIÓN ORIENTADA A OBJETOS: ALGUNOS APUNTES,
REFLEXIONES E HISTORIA SOBRE EL PARADIGMA.
Después de la programación secuencial, la programación lineal, la programación
estructurada o enfocada a los datos y otras más fruto de mezclas entre las
anteriores, aparece la Programación
Orientada a Objetos (POO), tal vez
reconocida como el paradigma1 de
programación más utilizado en la
disciplina de la ingeniería del
software en los últimos años.
La POO configura una serie de
nuevos enfoque a los retos que se plantean en la programación estructurada
1
RAE. paradigma. (Del lat. paradigma, y este del gr. παράδειγμα). 1. m. Ejemplo o ejemplar. 2. m. Ling.
Cada uno de los esquemas formales en que se organizan las palabras nominales y verbales para sus
respectivas flexiones. 3. m. Ling. Conjunto cuyos elementos pueden aparecer alternativamente en algún
contexto especificado; p. ej., niño, hombre, perro, pueden figurar en El -- se queja.
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
2. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
cuando los problemas a resolver son complejos. Al contrario que la programación
procedimental que enfatiza en los algoritmos, la POO enfatiza en los datos y las
acciones que estos requieren para ser manipulados. En lugar de intentar ajustar
un problema al enfoque procedimental de un lenguaje, POO intenta ajustar el
lenguaje al problema. La idea es diseñar formatos de datos que se correspondan
con las características esenciales de un problema. (BROOKSHEAR, 2006)
Desde su concepción y a través de su historia, la POO ha tenido como objetivo
central, facilitar la modelación y/o simulación del mundo real en un mundo
computacional. En el mundo real cada elemento se puede reconocer como un
OBJETO y un grupo de objetos que comparten características y/o propiedades se
pueden identificar como una CLASE.
Así, La POO permite fabricar
programas de forma más parecida
al pensamiento humano. De hecho
simplifica el problema dividiéndolo
en objetos y permitiendo centrarse
en cada objeto, para de esa forma
eliminar la complejidad. Cada objeto
se programa de forma autónoma y
esa es la principal virtud. Al aparecer la programación orientada a objetos (1980’s.
Aunque se reconoce la aparición de Simula 67 como sus primeros pasos, es en
esta época donde oficialmente se le reconoce como paradigma), aparecieron
varios lenguajes orientados a objetos y también se realizaron versiones orientadas
a objetos (o semi—orientadas a objetos) de lenguajes clásicos. (Sánchez, 2004).
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
3. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
Resulta adecuado reconocer que la aparición de la programación orientada a
objetos tuvo eco algunos años después de su aparición, porque se empezaron a
comprobar las bondades que sus antecesores tenían como problemas:
Un código enmarañado (código spaghetti2) por un código más organizado y
comprensible.
La independencia de los conceptos: antes, quien hacía un programa
también debía diseñar los datos que soportarían los flujos de ese programa.
Ahora hay independencia absoluta entre los procesos, las acciones, los
eventos y los almacenes de datos a los que llegará la información
resultante (Ullman., 1994).
La reusabilidad: en los paradigmas anteriores a la POO cada necesidad
tenía que ser programada, aunque entre requisito y requisito existiera una
mínima diferencia. Lo máximo que lograban los programadores para
ahorrar tiempo erra copiar el código de una función o un procedimiento en
otro nuevo para hacer los cambios del nuevo proceso. Ahora, con la
reusabilidad se permite que un componente pueda ser utilizado para varios
sistemas sin que requiera modificación. Entre otros.
Es importante destacar que cuando hacemos referencia a la POO no estamos
hablando de unas cuantas características nuevas añadidas a un lenguaje de
programación. Estamos hablando de una nueva forma de pensar acerca del
proceso de descomposición de problemas y de desarrollo de soluciones de
programación.
La programación orientada a objetos surge en la historia como un intento para
dominar la complejidad que, de forma innata, posee el software. Tradicionalmente,
2
El código spaghetti es un término peyorativo para los programas de computación que tienen una estructura
de control de flujo compleja e incomprensible. Un programa que se escribe a medida que se hace una
solicitud o se detecta un problema; sin control de documentación, sin metodología, sin reglas.
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
4. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
la forma de enfrentarse a esta complejidad era empleando lo que se conoce como
programación estructurada, que consiste en descomponer el problema objeto de
resolución en subproblemas y más subproblemas hasta llegar a acciones muy
simples y fáciles de codificar. Se trata de descomponer el problema en acciones,
en verbos. En el ejemplo de un programa que resuelva ecuaciones de segundo
grado, descomponíamos el problema en las siguientes acciones: primero, pedir el
valor de los coeficientes a, b y c; después, calcular el valor del discriminante; y por
último, en función del signo del discriminante, calcular ninguna, una o dos raíces.
Como podemos ver, descomponíamos el problema en acciones, en verbos; por
ejemplo el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular…
(Izquierdo, 2007)
La POO es otra forma de descomponer
problemas. Este nuevo método de
descomposición es la descomposición en
objetos; fijarse no en lo que hay que hacer
en el problema, sino en cuál es el escenario
real del mismo, e intentar simular ese
escenario en nuestro programa. (Idem)
Los lenguajes de programación tradicionales no orientados a objetos, como C,
Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto de
procedimiento o función. Una función es simplemente un conjunto de instrucciones
que operan sobre unos argumentos y producen un resultado. De este modo, un
programa no es más que una sucesión de llamadas a funciones, ya sean éstas del
sistema operativo, proporcionadas por el propio lenguaje, o desarrolladas por el
mismo usuario (M. Abadi, 1996).
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
5. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
En el caso de los
lenguajes orientados a
objetos, como es el caso
de C++, PHP y Java, el
elemento básico no es la
función, sino un ente
denominado precisamente
objeto. Un objeto es la
representación en un
programa de un concepto,
y contiene toda la
información necesaria
para abstraerlo: datos que
describen sus propiedades y operaciones que pueden realizarse sobre los
mismos. La programación orientada a objetos es una nueva forma de pensar, una
manera distinta de enfocar los problemas.
En resumen, la programación orientada a objetos es la acción de programar
computadoras que aparece por la trascendencia que debían tener los lenguajes
secuenciales, estructurados, imperativos, etc., para resolver los problemas que
cada vez se iban presentando con mayor complejidad. De ahí que su nombre
siempre especifique que es ORIENTADA; lo que quiere decir que tuvo una
concepción inicial de paradigmas tradicionales, pero que poco a poco se fue
acomodando a los objetos. Así, podemos reconocer entonces que también existe
un paradigma de objetos, el que no es orientado porque su filosofía de creación
siempre fueron las clases y los objetos.
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
6. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
En su texto (Aragon M., 2005) asegura
que ―los lenguajes orientados a objetos,
en algún momento partieron de un
lenguaje base que era de paradigmas
lineales y estructurados, y a medida que
iban incorporando mejoras que
permitieran aplicar el paradigma orientado
a objetos, se iban convirtiendo en
lenguajes orientados a objetos. Con base
en este argumento podemos decir, por
ejemplo, que Java no es orientado a
objetos sino un lenguaje de objetos; pues
desde su concepción se pensó en esta filosofía como el estándar del mismo. Java
es lenguaje de un solo paradigma: el de clases y objetos.‖
LA METODOLOGÍA DE LA PROGRAMACIÓN: DIFERENCIACIÓN CON
LA ACCIÓN DE CODIFICIAR O PROGRAMAR.
Hablar de metodología3 resulta confuso, engorroso y un término que es más fácil
evadir que enfrentar, sobre todo en programas donde la norma es hablar de TICs
(Tecnologías de Información y Comunicación).
El concepto hace referencia a los métodos de investigación que permiten lograr
ciertos objetivos en una ciencia. La metodología también puede ser aplicada al
arte, a la ingeniería, en fin, a todas las disciplinas que requieran en su quehacer
3
RAE metodología. (Del gr. μέθοδος, método, y -logía). 1. f. Ciencia del método. 2. f. Conjunto de métodos
que se siguen en una investigación científica o en una exposición doctrinal.
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
7. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
una observación rigurosa. Por lo tanto, la metodología es el conjunto de métodos
que rigen una investigación científica o en una exposición doctrinal.
En otras palabras la metodología es una etapa o conjunto de etapas específicas y
detalladas que precede a las acciones necesarias para concretar un proceso o
producto, y que procede de una posición teórica, analítica, epistemológica.
Así, hablar de PROGRAMACIÓN es comúnmente un llamado a la acción de
codificar, de interactuar con la máquina a través de una serie de símbolos o
instrucciones que, al escribirse, permiten que una computadora lleve a cabo
determinadas tareas. Esta acción de codificar no lleva inmerso el concepto del
profundo análisis de la necesidad, ni el estudio de las herramientas adecuadas, ni
la estimación del esfuerzo para lo que se va a generar, de tal manera que la
mayoría de las acciones quedan disponibles a lo que ocurra con la aplicación del
ensayo y error. No hay planeación previa de las acciones, por lo tanto, no se
puede medir si los resultados son o eran los esperados. Visto de esta forma,
puede ser una competencia del hacer que se logra desarrollar mediante estudios
técnicos y/o tecnológicos,
niveles a quienes está
encomendado el hacer y el
saber hacer.
Sin embargo, hablar de
METODOLOGÍA lleva a
trabajar en una serie de
estrategias organizadas que
permiten visualizar, desde el
todo hasta el detalle, la forma
en que la solución a un
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
8. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
problema tuvo su concepción, su análisis, su modelación, su desarrollo. Esta si es
una competencia que requiere una formación más exigente que el nivel técnico.
Por ello es un llamado a que el personal dedicado a la ingeniería, logre desarrollar
dicha competencia y logre evidenciar diferencias entre la solución que resulta de
un problema abordado por profesionales y un problema abordado por personas
que no alcanzan dicho nivel de formación.
Una metodología de programación es un conjunto o sistema de métodos,
principios y reglas que permiten enfrentar de manera sistemática el desarrollo de
un programa que resuelve un problema algorítmico. Estas metodologías
generalmente se estructuran como una secuencia de pasos que parten de la
definición del problema y culminan con un programa que lo resuelve (Giraldo &
Niño, 2009). A continuación se presenta de manera general, no tan compleja, los
pasos de una metodología de programación:
El diálogo, estudio de campo o establecimiento de requisitos: con la cual se
busca comprender totalmente el problema a resolver
La especificación, validación o educción: con la cual se establece de
manera precisa las entradas, salidas y las condiciones que deben cumplir
El diseño o la modelación: en esta etapa se construyen los elementos o
artefactos necesarios para que respondan de manera coherente a la
solución (algoritmos, modelos, etc).
La codificación o programación: la acción de traducir el diseño o la
modelación a un lenguaje de programación
Prueba y verificación: se realizan pruebas del programa codificado con el
objetivo de encontrar errores que no han sido detectados previamente.
Documentos: sistematización de la documentación requerida para su
implementación.
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia
9. FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
Ingeniería de Sistemas y Telecomunicaciones
METODOLOGÍA DE LA PROGRAMACIÓN
De esta forma, resulta importante seguir reflexionando y permitiendo el debate
entre la Programación Orientada a Objetos y la Metodología de la Programación.
BIBLIOGRAFÍA
Aragon M., F. (2005). Introducción a la Programación Orientada a Objetos. Madrid.
BROOKSHEAR, J. G. (2006). Computer Science, Eigth ed. Boston (USA): Pearson/Addison-
Wesley.
Giraldo, G., & Niño, L. (03 de 09 de 2009). Universidad Nacional de Colombia, Dirección
Nacional de Servicios Académicos Virtuales. Recuperado el 26 de 11 de 2010, de
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/index.html
Izquierdo, L. (2007). Resources for computer modelling. Recuperado el 23 de 01 de 2011,
de http://luis.izqui.org/resources.html
M. Abadi, L. C. (1996). A Theory of Objects (Paradigma Orientado Objeto). Springer.
Sánchez, J. (2004). JAVA 2. Madrid: Sánchez, Jorge. Bajo Lic. Creative Commons.
Ullman., J. D. (1994). ML Programming. (Paradigma Declarativo Funcional, ML). Prentice
Hall.
Metodología de la programación
Prof. Luis Eduardo Peláez Valencia