UNIVERSIDAD DEL TOLIMA
ELEMENTOS DE PROGRAMACION ORIENTADA A OBJETOS
DOCENTE: ALFREDO ALEXIS GONZALES ORDOÑEZ
DANNA SOFIA GAHONA
Programa: INGENIERIA DE SISTEMAS
Semestre 2
Grupo 4
2023
"Programación Orientada a Objetos y el Paradigma Proactivo en el
Desarrollo de Software"
Resumen:
En este artículo de revisión, se explora la importancia de la Programación
Orientada a Objetos (POO) en el desarrollo de aplicaciones de software. Se
abordan conceptos fundamentales de la POO, como objetos, clases, herencia y
encapsulamiento, y se introduce el paradigma proactivo como una alternativa para
resolver problemas incrementales mediante la interacción entre objetos. Además,
se discuten desafíos y enfoques en la computación proactiva, el diseño de
patrones y las ventajas y desafíos del paradigma proactivo en el desarrollo de
software.
Palabras clave:
Programación Orientada a Objetos, POO, paradigma proactivo, desarrollo de
software, herencia, encapsulamiento.
Introducción:
La Programación Orientada a Objetos (POO) es un paradigma de programación
ampliamente utilizado en el desarrollo de software. Su importancia radica en su
capacidad para organizar y modularizar el código, facilitando la reutilización y
mantenimiento del mismo. En este artículo, exploraremos los conceptos básicos
de la POO y presentaremos el paradigma proactivo como una perspectiva
innovadora para resolver problemas de manera incremental y eficiente en el
contexto de la POO.
Contenido:
1. Conceptos Básicos de la Programación Orientada a Objetos:
La Programación Orientada a Objetos (POO) es un paradigma esencial en la
ingeniería de software. Se basa en la idea de que el mundo puede modelarse
como una colección de objetos que interactúan entre sí. Un objeto es una entidad
que puede contener datos y métodos que operan sobre esos datos. Las clases,
por otro lado, son plantillas o moldes para crear objetos. La POO se centra en la
reutilización de código, la organización y la simplificación del mantenimiento del
software.
1.1 Contexto de la Programación Orientada a Objetos (POO):
La POO se rige por el principio "Don't Repeat Yourself" (DRY), que aboga por no
duplicar código innecesariamente. Al organizar el código en objetos y clases, se
promueve la eficiencia y la coherencia en el desarrollo de software. La
encapsulación y la abstracción son conceptos clave en la POO. La encapsulación
oculta los detalles internos de un objeto y expone solo lo necesario, lo que protege
los datos y garantiza que no se acceda directamente a ellos. La abstracción
simplifica la complejidad al permitir que los desarrolladores interactúen con objetos
de alto nivel sin preocuparse por los detalles internos.
1.1 Definición de objetos y clases:
En la POO, un objeto es una instancia de una clase que contiene atributos y
métodos. Las clases definen las características comunes de los objetos y cómo
interactúan.
1.2 Definición de objetos y clases:
En la POO, un objeto es una instancia de una clase que contiene atributos y
métodos. Las clases definen las características comunes de los objetos y cómo
interactúan.
1.3 Herencia y su papel en la POO:
La herencia permite que las clases hereden atributos y métodos de otras clases, lo
que fomenta la reutilización de código y la organización jerárquica.
1.4 Polimorfismo y su flexibilidad:
El polimorfismo permite que un objeto pueda tomar diferentes formas y responder
de manera adecuada a diferentes situaciones. Facilita la creación de código
flexible y adaptable.
1.5 Encapsulamiento y ocultamiento de detalles:
El encapsulamiento protege los datos y los métodos de una clase, permitiendo un
control preciso sobre el acceso a ellos. Esto mejora la seguridad y la
mantenibilidad del código.
2. Historia y Evolución de la Programación Orientada a Objetos
La Programación Orientada a Objetos (POO) tiene sus raíces en la década de
1960 y ha evolucionado significativamente desde entonces. Comenzando como un
enfoque para la simulación en el lenguaje Simula 67, su desarrollo y expansión
continuaron a lo largo de las décadas.
2.1. Orígenes en Simula 67
En 1967, Ole-Johan Dahl y Kristen Nygaard, del Centro de Cómputo Noruego en
Oslo, diseñaron el lenguaje Simula 67. Este lenguaje se creó inicialmente para
realizar simulaciones.
La necesidad de lidiar con la complejidad de las simulaciones, en particular con las
interacciones entre diferentes elementos, fue el catalizador para el desarrollo de la
POO.
Simula 67 introdujo la idea de agrupar objetos en clases, donde cada clase definía
sus propios datos y comportamientos. Esto allanó el camino para la encapsulación
y la reutilización de código, pilares de la POO.
2.2. Evolución en Smalltalk y Xerox PARC
La evolución de la POO continuó en Smalltalk, que se desarrolló en Simula en el
Xerox Palo Alto Research Center (PARC).
Smalltalk se destacó por su dinamismo, permitiendo la creación y modificación de
objetos en tiempo de ejecución, lo que hizo que los sistemas fueran altamente
flexibles.
Esta flexibilidad y capacidad dinámica allanaron el camino para aplicaciones como
las interfaces gráficas de usuario (GUI), donde la POO se convirtió en una
elección natural.
2.3. Dominación en los Años 1980
La POO comenzó a dominar el panorama de programación en los años 1980, en
gran parte debido a la influencia de C++, una extensión del lenguaje C.
La consolidación de la POO fue impulsada por la creciente popularidad de las
interfaces gráficas de usuario, donde la POO demostró ser altamente eficaz.
Se introdujo la programación dirigida por eventos, un enfoque en el que la POO se
destacó.
2.4. Expansión a Otros Lenguajes
La POO se extendió a otros lenguajes de programación existentes en ese período,
como Ada, BASIC, Lisp y Pascal, a través de la adición de características
orientadas a objetos.
Sin embargo, esta integración a menudo resultó en problemas de compatibilidad y
mantenimiento del código.
2.5. Lenguajes Orientados a Objetos Puros y la Era de Internet
Se realizaron intentos para crear nuevos lenguajes basados en métodos
orientados a objetos, que permitieran algunas características imperativas de
manera segura.
El lenguaje Eiffel de Bertrand Meyer fue uno de los primeros ejemplos de estos
intentos, aunque fue reemplazado en gran medida por Java.
La llegada de Internet y la implementación de la máquina virtual Java en la
mayoría de los navegadores web impulsaron la popularidad de la POO.
PHP, en su versión 5, también evolucionó para admitir completamente la
programación orientada a objetos, lo que le permitió seguir siendo relevante en la
era digital.
3. Lenguajes de Programación Orientados a Objetos
La Programación Orientada a Objetos (POO) es un enfoque que se ha
incorporado en diversos lenguajes de programación a lo largo de los años. Estos
lenguajes cumplen con ciertas condiciones que definen su orientación a objetos:
3.1. Características de un Lenguaje Orientado a Objetos
Para ser considerado orientado a objetos, un lenguaje debe cumplir con ciertas
características clave:
Soporta objetos como abstracciones de datos con una interfaz de operaciones con
nombre y un estado local oculto.
Los objetos tienen un tipo asociado, lo que se conoce como una clase.
Los tipos (clases) pueden heredar atributos de los supertipos (superclases), lo que
fomenta la reutilización de código y la organización lógica.
3.2. Ejemplos de Lenguajes Orientados a Objetos
3.2.1. ActionScript
ActionScript es el lenguaje de programación utilizado en la plataforma Adobe
Flash. Fue lanzado públicamente en 1997 y ofrece un sólido modelo de
programación orientada a objetos que es familiar para los desarrolladores con
conocimientos básicos en este paradigma.
3.2.2. C++
C++ se originó en la década de 1980 y fue diseñado por Bjarne Stroustrup. Su
objetivo era extender el lenguaje C para permitir la manipulación de objetos. Se
convirtió en un lenguaje ampliamente utilizado en el desarrollo de sistemas y
aplicaciones de software.
3.2.3. C#
C# fue desarrollado por Microsoft como parte de su plataforma .NET. Diseñado
por Anders Hejlsberg y un grupo de desarrolladores, se introdujo en enero de
1999. C# se ha convertido en un lenguaje importante para el desarrollo de
aplicaciones en el entorno Windows y más allá.
3.2.4. Java
Java, creado por James Gosling de Sun Microsystems y publicado en 1995, es
conocido por su capacidad de ser multiplataforma y su énfasis en la seguridad. Se
utiliza ampliamente en el desarrollo de aplicaciones empresariales y en la
programación de dispositivos móviles.
3.2.5. Objective-C
Originalmente creado como un superconjunto de C, Objective-C se convirtió en un
lenguaje principal de programación para sistemas como Mac OS X, iOS y
GNUstep. Ha sido complementado por el lenguaje Swift en el desarrollo de
aplicaciones para dispositivos Apple.
3.2.6. Perl
Perl, diseñado por Larry Wall en 1987, es conocido por su flexibilidad y su
capacidad para realizar diversas tareas de procesamiento de texto y manipulación
de archivos. Aunque no es un lenguaje puramente orientado a objetos, admite la
programación orientada a objetos a través de módulos y bibliotecas.
3.2.7. PHP
PHP, inicialmente creado por Rasmus Lerdorf en 1995, es ampliamente utilizado
para el desarrollo web del lado del servidor. Si bien comenzó como un lenguaje de
secuencias de comandos, en su versión 5 se agregaron características de
programación orientada a objetos, lo que lo convirtió en una herramienta versátil
para el desarrollo web.
3.2.8. Python
Python es un lenguaje de programación interpretado que enfatiza la legibilidad del
código. Es multiparadigma y multiplataforma, lo que lo hace adecuado para una
variedad de aplicaciones. Guido van Rossum creó Python a fines de la década de
1980.
3.2.9. Ruby
Ruby es un lenguaje dinámico y de código abierto que enfatiza la simplicidad y la
productividad. Fue creado por Yukihiro "Matz" Matsumoto en 1993 y es conocido
por su elegante sintaxis.
3.2.10. Smalltalk
Smalltalk es uno de los primeros lenguajes de programación orientados a objetos
y se caracteriza por su tipado dinámico. Se considera un "mundo virtual de
objetos" donde todo se modela como un objeto.
3.2.11. Scala
Scala es un lenguaje de programación orientado a objetos puro, donde cada valor
es un objeto. Utiliza clases y traits para describir el tipo y el comportamiento de los
objetos.
Conclusiones:
La Programación Orientada a Objetos (POO) ha desempeñado un papel
fundamental en la evolución de la informática y el desarrollo de software. Desde su
origen en Simula 67 hasta su adopción generalizada en lenguajes como C++, Java
y Python, la POO ha demostrado ser un paradigma versátil y poderoso que facilita
la resolución de problemas complejos.
Además, la presencia de lenguajes de programación orientados a objetos en la
industria tecnológica, como Java, C#, Python y otros, subraya la importancia de la
POO en el ámbito profesional. Los programadores que dominan este paradigma
tienen una ventaja competitiva en el mercado laboral y pueden aplicar buenas
prácticas de programación en proyectos del mundo real.
En conjunto, la Programación Orientada a Objetos continúa siendo un elemento
central en la informática moderna. Su historia rica y sus diversas aplicaciones en
la educación y la industria confirman su relevancia perdurable en el mundo de la
tecnología y el desarrollo de software.
Bibliografía
Pérez S. (26 de Noviembre de 2021) QUÉ ES LA PROGRAMACIÓN
ORIENTADA A OBJETOS. Intelequia. https://intelequia.com/blog/post/qu
%C3%A9-es-la-programaci%C3%B3n-orientada-a-objetos
Guasca Sofia (1 de Agosto de 2020) HISTORIA Y EVOLUCIÓN DE LA
PROGRAMACIÓN ORIENTADA A OBJETOS. WordPress
https://sofia5909.wordpress.com/2020/08/01/historia-y-evolucion-de-la-
programacion-orientada-a-objetos/
Laura Álvarez, Helmer Avendaño, Yeison García, Sebastián Morales,
Edwin Bohórquez, Santiago Hernandez, Sebastián Moreno, Cristian Orjuela
(UNAL 2017). GitHub https://ferestrepoca.github.io/paradigmas-de-
programacion/poo/poo_teoria/index.html#advantage_disadvantage