Artículo Facilidad de Creación en POO

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

La programación orientada a objetos

facilidad para crear


- Object-oriented programming: easy to create
Mag. Eilen Lorena Pérez Montero (1)
Corporación Universitaria del Huila-CORHUILA, Colombia
[email protected]
Mag. Flor de María Hernández Pérez (2)
Servicio Nacional de Aprendizaje- Tecnoparque Nodo
Neiva, Colombia
[email protected]

Fecha de Recepción: 23 de Octubre de 2019 / Fecha de Aprobación: 3 de Noviembre de 2019

Resumen: En este artículo se presenta un estudio inicial relacionado con el concepto de programación y la
relación directa con el entorno real. También da a conocer conceptos de herencia y como aplicarlo por medio de
un ejemplo sencillo, así como también se explora una línea de tiempo de los lenguajes de programación hasta el
año 1995 y el auge de la parte móvil en estos tiempos. El documento está estructurado de la siguiente manera,
se inicia con una introducción, posteriormente se estudia el concepto de la programación como proceso, para
luego hablar específicamente sobre el Paradigma Orientado a Objetos POO, el Concepto de Herencia en POO y
los Lenguajes de Programación y se finaliza con unas conclusiones al respecto.
Palabras clave: Herencia, Lenguajes de programación, Programación orientada a objetos.

Abstract: This article presents an initial study related to the concept of programming and the direct relationship
with the real environment. It also introduces concepts of inheritance and how to apply it through a simple
example, as well as exploring a timeline of programming languages up to 1995 and the rise of the mobile part in
these times. The document is structured in the following way, it begins with an introduction, then the concept
of programming as a process is studied, and then specifically talks about the Object Oriented Paradigm POO,
the Concept of Inheritance in POO and the Programming Languages and It ends with some conclusions in this
regard.
Keywords: Inheritance, Object-oriented programming, Programming languages.

1. Introducción: desarrollo de sistemas o software, con el objetivo de


proporcionar al usuario el manejo de la información y
La programación expande la mente, ayuda a pensar en un número variable de tareas ejecutadas con un ahorro
forma sistémica y ordenada, permitiendo que las personas significativo de tiempo, dando pronta respuesta a las
mejoren y automaticen tareas que realizan en sus trabajos exigencias que se originan en las más variadas esferas de
de la vida diaria. Es una actividad que implica un proceso la sociedad.
mental, generalmente complejo y creativo que exige
inteligencia, conocimiento, habilidad y disciplina [1]. Dentro de la evolución de los lenguajes de programación,
Este acto de programar parte de un problema expresado se tienen los de muy bajo nivel con dificultades de
en lenguaje natural, que enuncia límites y modela una entendimiento y de migración de datos a otra máquina,
solución en un lenguaje computacional. hasta llegar a los de alto nivel de fácil integración de datos,
La implementación de los lenguajes computacionales comprensión y más parecido al lenguaje natural humano.
demanda un grado de rigurosidad en la concepción de
los proyectos de desarrollo, debido a la importancia del Intentando solventar estas deficiencias y la facilidad
diseño de software y a la ingeniería de requerimientos para leer y comprender el problema a la hora de
(funcionales y no funcionales) generando beneficios en programar, surge alrededor de los años 60 el modelo de
la codificación y en la disminución de riesgos [3]. la programación orientada a objetos por Kristen Nygaard
y Ole-Johan Dahl, formada por una colección de objetos
Es evidente que la innovación tecnológica conduce que interaccionan conjuntamente para representar y
a evolucionar los lenguajes computacionales en el solucionar algún problema. Este paradigma difiere de la
(1) Ingeniera de Sistemas y Magíster en Tecnologías de la Información aplicadas a la Educación de la Universidad Pedagógica Nacional, Especialista en Edumática de la Universidad Autónoma.
Actualmente, es Docente de la Corporación Universitaria del Huila CORHUILA y pertenece al Grupo de Investigación Procing de la misma Universidad.
(2) Ingeniera de Sistemas, Magister en Computación, Especialista en Soluciones y Desarrollo Informático de la Universidad del Cauca. Gestora de la línea de tecnologías virtuales del Tecnoparque
nodo Popayán e integrante del Grupo de Investigación IDIS de la Universidad de Cauca.

96 I+T+C Investigación, Tecnología y Ciencia / ISSN 1909-5775 / Enero - Diciembre / 2019


La programación orientada a objetos: facilidad para crear
Eilen Pérez, Flor de María Hernández / pp 96 - 101

programación imperativa o estructurada donde los datos otros lenguajes que perecieron durante el proceso.
y los métodos están separados y sin relación alguna,
haciendo uso de los procedimientos y el mantenimiento Este nuevo escenario de programación simplifica la
de tantas líneas de código [12]. escritura, mantenimiento y la reutilización, razón por la
cual este escrito expone las posibilidades de la Herencia
en la POO. Para ello es importante señalar que a la hora de
2. La programación como proceso: resolver un problema con el modelo de la programación
orientada a objetos se debe inicialmente hacer un análisis
Teniendo en cuenta que la programación permite para tener claridad de los datos de entrada, proceso y
encontrar diversas maneras de abordar problemas y de salida; seguidamente se identifica los objetos presentes
plantear soluciones, que necesitan un proceso de diseño y y sus relaciones en el dominio del problema. La idea
de requerimientos, existen lenguajes computacionales de fundamental es jerarquizar clases, equiparándose con
alto nivel que implementan el modelo de programación las utilidades que debe proporcionar cada objeto que lo
orientado a objetos como una propuesta adecuada compone, en especial aquellos que el usuario debe usar
surge la siguiente pregunta ¿Por qué no enseñar a que más; así la funcionalidad logra tener elementos comunes;
estas nuevas generaciones construyan sus propias para especializar o extender la funcionalidad de una clase,
herramientas con el modelo de programación orientado derivando de ellas nuevas clases.
a objetos para dar solución a los problemas? Este De esta manera, la jerarquización hace parte de un todo,
contexto es por lo tanto, un importante desafío donde los objetos derivados son objetos descendientes con
se hace necesario implementar la programación de las características y procedimientos en común [11]. Este
computadoras y la combinación de metodologías en el principio se denomina Herencia y su beneficio se centra
desarrollo de software; herramientas fundamentales en en la transmisión de código entre unas clases y otras.
las diferentes ramas del conocimiento, y particularmente En otras palabras, es la relación entre dos o más clases
en la ingeniería. donde una es la principal superclase y otras son
secundarias llamadas clases, donde al mismo tiempo los
objetos adquieren las propiedades de los otros.
3. Programación orientada a objetos: Para argumentar el concepto de herencia, se tiene un
ejemplo concreto de una empresa compuesta por dos
El modelo de programación orientado a objetos grupos de empleados que devengan su salario de dos
denominado POO expresa un programa como un formas distintas: por hora laborada y de forma integral o
conjunto de objetos que colaboran entre sí para realizar asalariado. Al diseñar la estructura de clases (diagrama 1)
tareas [4]. Un objeto es una entidad, sujeto o cosa que se se tiene dos objetos: uno denominado EmpleadoporHora
encuentra en situaciones o problemas de nuestro mundo con los datos nombre del empleado, departamento
real, formados por datos que representan la estructura del en el que labora, cargo que desempeña, número de
objeto y los métodos que implementan las operaciones horas laboradas, valor de la hora trabajada, salario
que se debe realizar sobre los datos [5]. mensual horas (nombreEmp, deptoEmp, cargoEmp,
Un conjunto de objetos se representa abstractamente por nhoraslab, vhoraslab,salmensualH) y otro objeto llamado
una Clase, que tienen en común una misma estructura EmpleadoAsalariado con los datos nombre del empleado,
y un mismo comportamiento, las clases se parecen a departamento en el que labora, cargo que desempeña,
moldes donde se definen la forma de los objetos. Lo que salario mensual asalariado (nombreEmp, deptoEmp,
significa que un objeto es un ejemplar de una clase. Así cargoEmp,salamensualS).
mismo el modelo de programación orientada a objetos
presenta características de encapsulamiento, herencia y
polimorfismo [9].

Entre los lenguajes que soportan el modelo de


programación orientada a objetos están Smalltalk, C++,
Delphi (Object Pascal), Java y C#, lenguajes que han
incorporado al mercado y han ido creciendo y mejorando
poco a poco utilizando y desechando características de Fig. 1.
Estructura de clases EmpleadoporHora y EmpleadoAsalariado

97
Es notorio visualizar en el diagrama 1 que los dos objetos la herencia, unifica características propias que tienen
tienen en común los datos nombreEmp, deptoEmp, ciertos objetos, permitiendo que el código no se aplique
cargoEmp, conduciendo a dos clases relacionadas de en un solo caso, sino que sea reutilizable, y al ser una
la misma manera, lo que permite construir el diagrama manera de programar permite su implementación en las
de jerarquía de objetos y crear una tercera clase llamada distintas tecnologías de programación.
Empleado. Esta clase se le conoce como superclase y Por consiguiente, se concluye que la tecnología orientada
se derivan dos clases, denominadas subclases que son a objetos ofrece múltiples ventajas al desarrollo del
EmpleadoporHora y EmpreladoAsalariado (Diagrama 2). software resaltando el concepto de herencia que permite
mitigar dificultades relacionadas con la gestión en el
proceso de desarrollo cuando se realiza una correcta
jerarquía de clases coherente en las etapas de análisis y
diseño de un sistema.

5. Lenguajes de programación:

Al observar e interactuar con un lenguaje de


programación se puede deducir que simplemente es
un conjunto que contiene elementos gramaticales y
semánticos que sirven para definir estructuras validas
para dar solución a un problema específico. La tecnología
avanza, lo que indica que los lenguajes de programación
han ido evolucionando, lo que es positivo por la mejoras
Fig. 2. en arquitectura, facilidad en procesos de conexión con
Diseño del diagrama de clases con herencia gestores de base de datos, autoayuda para procesos,
generación de código automático, etc. El avance ha
En este ejemplo se especifica que las clases sido significativo, porque si se analiza y haciendo una
EmpleadoporHora y EmpreladoAsalariado heredan trazabilidad de los primeros lenguajes comprados con los
de la clase Empleado, es decir, EmpleadoporHora y de los últimos tiempos, las diferencias son abismales, pero
EmpreladoAsalariado podrán acceder a las características la lógica para programarlos no cambia, los conceptos
y métodos de Empleado. de la programación son los mismos, a continuación el
diagrama 3 muestra la línea de tiempo de los lenguajes
de programación hasta el año de 1995. [13]
4. Concepto de herencia en Poo:

La herencia constituye un valioso concepto en el


modelamiento de la programación orientada a objetos
debido a la organización de las acciones en diferentes
clases, permitiendo a los objetos ser definidos y creados
como tipos especializados de objetos preexistentes. El
nuevo objeto puede definir nuevos atributos, nuevas
operaciones, y redefinir las operaciones heredadas si se
considera necesario.

Se hace entonces necesario que el desarrollador incorpore


el modelo orientado a objetos por su flexibilidad para
expresar y dar soluciones a innumerables situaciones
que de otra forma se habrían convertido en un reto.
Como valor agregado para el programador se incluye la Fig. 3.
Línea de tiempo de los lenguajes de programación
reducción de los tiempos de desarrollo ya que al integrar

98 I+T+C Investigación, Tecnología y Ciencia / ISSN 1909-5775 / Enero - Diciembre / 2019


La programación orientada a objetos: facilidad para crear
Eilen Pérez, Flor de María Hernández / pp 96 - 101

Son años de evolución, y los cambios significativos en aplicaciones móviles para sistemas operativos Andorid
cada lapso recorrido como se detallará a continuación y Ios , pero que al igual utilizan conceptos básicos de
[13]: programación como son los tipos de datos, herencia
polimorfismo, recursividad, funciones y procedimientos
A. Autocode (1952): “Sistemas de codificación en fin. Lo mimos se aplica para desarrollos de aplicaciones
simplificados” creado en la década de 1950 exclusivo para web y todo esto se enmarca en la utilización de framework,
computadoras digitales en Manchester, Cambriedge y lenguaje híbridos o multiplataforma que han logrado
Londres. minimizar el trabajo en ciertos procesos y combina
A. Fortran (1957): un lenguaje de programación arquitecturas adecuadas para obtener productos de
diseñado para computación numérica y informática calidad.
científica. IBM lo diseño en 1957 para el desarrollo de
soluciones científicas y de ingeniería.
B. Angol 68 (1968): Algorithmic Languaje, un 6. Conclusiones:
lenguaje sucesor de Algol 60, que demostró características
mas amplias de aplicación y con sintaxis mas rigurosa, Se analiza la importancia de la programación durante
este es uno de los lenguajes que primero fue definido la formación del ingeniero de sistemas y profesiones a
antes de ser implementado. fines, teniendo que en la programación se debe incluir
C. Pascal (1970): desarrollado por Niklaus Wirth, el manejo de conceptos fundamentales que permiten o
un lenguaje que permitió definir tipos de datos y facilitan el desarrollo.
facilitando la creación de estructuras de datos dinámicas
y recursivas (listas, árboles y gráficos). Su nombre se debe Se define la evolución de los lenguajes de programación,
al matemático Blaise Pascal. y que esa evolución refleja la adaptación a los diferentes
D. C (1972): Un lenguaje diseñado para programación tipos de necesidades en cada desarrollador.
estructurada, que incluye el terminador de código (punto
y coma), ha sido base para muchos otros lenguajes e El programador debe poseer habilidades de lógica de
incluye llaves para el agrupamiento de bloques de código. programación, habilidades que se deben fortalecer por
E. C++ (1980): creado con propósitos de programación medio de desarrollo de pensamiento en la resolución de
del sistema, pero su funcionalidad se extendió para ser problemáticas del entorno real.
utilizado en el desarrollo de aplicaciones de escritorio.
Su sintaxis se heredo de C, e incluye características de El lenguaje de programación es muy importante. El
programación imperativas y orientadas a objetos. lenguaje es quien entrega al programador los elementos
F. Perl (1987): un lenguaje de alto nivel y propósitos para plasmar sus ideas y hace que el computador las
generales, hereda características de otros lenguajes como entienda la tarea que se le ha asignado.
C, AWK , poco sofisticado porque constaba de una pagina
manual que sufrió varios cambios y lanzó varias versiones. Que las técnicas de enseñanza deben ir evolucionando,
G. Phyton (1991): centrado en la legibilidad, una porque la evolución de las tecnologías esta es constante
versión para reemplazar al lenguaje ABC, utiliza un crecimiento.
sintaxis mas corta, omite el punto y coma y las llaves para
bloques de código. Es un trabajo inicial que busca dar respuesta a malas
H. Java (1995): un lenguaje de programación diseñado prácticas en programación, explorando cada unos de los
para solucionar el tema de dependencia al momento factores que influyen en el proceso inicial de aprendizaje
de implementar, un lenguaje para desarrollo web y de al que se enfrente los estudiantes de ingeniería de
escritorio. sistemas y afines.
I. PHP (1995): un lenguaje del lado del servidor
(scripting) para desarrollo web y desarrollos de propósitos
generales, logra combinarse con HTML, motores de
plantillas y marcos web.

Después de 1995 han surgido nuevas tecnologías


de programación, el auge en este tiempo esta en las

99
REFERENCIAS / REFERENCES:

[1] Eslava Muñoz, V. J. (2012). Aprendiendo a programar paso a paso con


C. ISBN eBook en PDF: 978-84-686-1062-7. Obtenido de http://www.
bubok.es/libros/215408/Aprendiendo-a-programar-paso-a-paso-con-C.
[2] Alarcón, M., María, C., Rotger, V., Herrera, M., & Olivera, J. (2011).
Aplicación Web para el Área de Ingeniería Clínica. XVIII Congreso
Argentino de Bioingeniería SABI 2011, (págs. 1-10). Mar del Plata.
[3] Arias Chaves, M. (2007). La ingeniería de requerimientos y su
importancia en el desarrollo de proyectos de softwar. InterSedes, 1-13.
[4] Booch, G. (1996). Análisis y diseño orientado a objetos con
aplicaciones. Pearson.
[5] Durán, F., Gutiérrez, F., & Pimentel, E. (2007). Programación orientada
a objetos con Java. Madrid: Thomson.
[6] Fernández Romero, Y., & Díaz González, Y. (2012). Patrón Modelo-
Vista-Controlador. Revista Telem@tica, 11(1), 47-57.
[7] Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (2002). Patrones de
diseño: elementos de software orientado a objetos reutilizable. Pearson
Educación.
[8] García Molina, J., Menárguez Tortosa, M., & Moros Valle, B. (2015). Una
propuesta para organizar la enseñanza de la. Depto. de Informática y
Sistemas Universidad de Murcia. Murcia.
[9] López Román, L. (2013). Metodologia de La Programacion Orientada
a Objetos. México: Alfaomega.
[10] Merlino, H. (2006). Patrón de Diseño de Vistas Adaptables. Buenos
Aires: Laboratorio de Sistemas Inteligentes. Facultad de Ingeniería.
Universidad de Buenos Aires.
[11] Trueba Espinosa, A., Camarena Sagredo, J., Martínez Reyes, M., &
López García, M. (2012). Automation of the Codification of the Model-
View-Controller Pattern (MVC Pattern) in Projects Oriented to the Web.
CIENCIA ergo-sum, 19(3), 239-250.
[12] Vélez Serrano, J., Peña Abri, A., Gortázar Bellas, F., & Sánchez Calle,
Á. (2011). Diseñar y programar, todo es empezar.: Una introducción
a la programación orientada a objetos usando UML y JAVA. Madrid:
Dykinson.
[13] Deitel. H.M, Deitel P.J. C, How to program. Prentice Hall. 2010.

100 I+T+C Investigación, Tecnología y Ciencia / ISSN 1909-5775 / Enero - Diciembre / 2019

También podría gustarte