Está en la página 1de 15

TECNOLÓGICO NACIONAL DE MÉXICO

Unidad 1: Introducción a la Programación


. Orientada a Objetos
Trabajo de Investigación

Contenido

Programacion Orientada a Objetos..........................................................................3


Paradigma de la POO...............................................................................................3
Programa "Hola Mundo" en Simula 67:....................................................................4
Evolución...................................................................................................................4
Lenguajes de programación......................................................................................6
Programación Visual.................................................................................................8
¿Qué es la programación visual?.............................................................................8
Lenguajes de programación visual...........................................................................8
Clasificación de los lenguajes visuales...................................................................10
Principales conceptos de los lenguajes visuales....................................................10
Elementos del modelo de objetos...........................................................................11
Bibliografía…...…………………………………………………………………………. 13

Los lenguajes de programación proporcionan mecanismos para implementar una


filosofía o paradigma de programación. Un paradigma es una forma de entender y
representar la realidad: un conjunto de teorías, estándares y métodos que, juntos,
representan un modo de organizar el pensamiento, es decir, un modo de ver el
mundo. Cada nuevo paradigma responde a una necesidad real de nuevas formas
de afrontar problemas. A menudo un nuevo paradigma es creado como respuesta
a las deficiencias de paradigmas anteriores.

Un paradigma de programación es una forma de conceptualizar en qué consiste la


ejecución de un programa y cómo deben de estructurarse y organizarse las tareas
que se llevaran a cabo en esa ejecución.

Programación Orientada a Objetos

Paradigma de la POO

El paradigma orientado a objetos (OO) define los programas en términos de


comunidades de objetos. Los objetos con características comunes se agrupan en
clases (un concepto similar al de tipo abstracto de dato (TAD)). Los objetos son
entidades que combinan un estado (es decir, datos) y un comportamiento (esto
es, procedimientos o métodos). Estos objetos se comunican entre ellos para
realizar tareas. Es en este modo de ver un programa donde este paradigma difiere
del paradigma imperativo o estructurado, en los que los datos y los métodos están
separados y sin relación. El paradigma OO surge para solventar los problemas
que planteaban otros paradigmas, como el imperativo, con el objeto de elaborar
programas y módulos más fáciles de escribir, mantener y reutilizar. Entre los
lenguajes que soportan el paradigma OO están Smalltalk, C++, Delphi (Object
Pascal), Java y C#Historia

La programación orientada a objetos


(POO) nace en los años 60's en el
Norwegian Computing Center con la
implementación de dos lenguajes de
programacion de simulacion: Simula
1 y Simula 67, desarrollados por Kristen
Nygaard y Ole Johan Dahl. Simula
67 introdujo por primera vez los
conceptos de clases, objetos, herencia,
subclases, corrutinas y funciones
virtuales. Es por esta razón
que Simula es considerado el primer
lenguaje orientado a objetos.

Programa "Hola Mundo" en Simula 67:


El mensaje está codificado en el bloque de código de la clase Saludos. Este
bloque de código se ejecuta solamente cuando existe una instancia o variable de
tipo Saludos, lo que ocurre efectivamente al crear una instancia por medio de la
instrucción New. En Simula, los objetos siempre son manejados por medio de
referencias. Existe un recolector de basura que se encarga de eliminar de la
memoria los objetos que se han quedado sin referencias a ellos. Una de estas
referencias la vemos con variable objeto. Utilizamos el operador:- para asignar
referencias. A diferencia de muchos lenguajes modernos, Simula entiende de dos
tipos de objetos:

 Activos: Son aquellos objetos que aún no han completado su bloque


asociado begin/end.
 Inactivos: Son aquellos que han completado su bloque de instrucciones.
Tanto de unos como de otros, es posible ejecutar los procedimientos
miembros y consultar los atributos en cualquier momento.

Evolución

Años después del desarrollo de Simula 67 casi todos los lenguajes de


programación modernos comenzaron a utilizar los principios de orientación a
objetos. Así fue como se popularizaron términos como clases, objetos, instancias,
herencia, polimorfismo, etc. Un ejemplo significativo fue el nacimiento del
lenguaje Java, uno de los lenguajes orientados a objetos con mayor
reconocimiento a nivel mundial.
Ventajas
 Una buena abstracción de las clases, objetos y atributos nos brinda una
implementación más detallada, puntual y coherente.
 Reutilización de código: Cuando se han diseñado adecuadamente las
clases, se pueden usar en distintas partes del programa y en numerosos
proyectos (herencia). Lo cual pemite:
o Rápido desarrollo.
o Alta calidad del código.
o Bajo costo en fases de desarrollo.
 Modificabilidad: La facilidad de añadir o suprimir nuevos objetos nos
permite hacer modificaciones de una forma muy sencilla.
 Encapsulamiento: Nos permite proteger la integridad de los datos.
 Fiabilidad: Al dividir el problema en partes más pequeñas podemos
probarlas de manera independiente y aislar mucho más fácilmente los
posibles errores que puedan surgir.
 Bajo acoplamiento y alta cohesión: Las clases son independientes entre sí,
y hacen las tareas específicas para las cuales fueron diseñadas.
 Beneficios de diseño
 Mantenimiento de software
 Amplia documentación

Como se puede visualizar en la imagen, si se hace un buen diseño y una


abstracción adecuada, se pueden generar diferentes módulos a partir de una
clase base. En este ejemplo, la clase Figura brinda la posibilidad de crear muchas
más formas geométricas como el círculo, el rombo, la estrella, el polígono y
demás mediante su extensión.

Desventajas
 Curva de aprendizaje: La necesidad de utilizar bibliotecas de clases obliga
a su aprendizaje y entrenamiento.
 La ejecución de programas orientados a objetos es más lenta.
 Se hereda código que no se usa en la clase hija cuando se extiende de una
clase padre.
 Tiempo en fase de diseño.
 Tamaño del programa.

Lenguajes de programación
Un lenguaje de programación es orientado a objetos si cumple con las siguientes
condiciones:
 Soporta objetos que son abstracciones de datos con una interfaz de
operaciones con nombre y un estado local oculto.
 Los objetos tienen un tipo asociado (la clase).
 Los tipos (clases) pueden heredar atributos de los supertipos (superclases).

Algunos de los lenguajes que son orientados a objetos son los siguientes:

o ActionScript: Es el lenguaje de programación de la plataforma Adobe


Flash. Fue lanzado públicamente en el año 1997. Ofrece un modelo de
programación robusto que resulta familiar a los desarrolladores con
conocimientos básicos sobre programación orientada a objetos.
o C++: Fue diseñado a mediados de los años 1980 por Bjarne Stroustrup con
la intención de extender el lenguaje de programación C a mecanismos que
permitieran la manipulación de objetos.
o C#: Fue desarrollado y estandarizado por Microsoft como parte de su
plataforma .NET. El nombre C Sharp fue inspirado por la notación musical,
donde '#' (sostenido, en inglés sharp). Diseñado por Anders Hejlsberg y un
grupo de desarrolladores, surgió en enero de 1999 con el nombre de Cool,
pasando un tiempo después al nombre de C# por problemas de marca.
o Java: Es un lenguaje de programación de propósito general, concurrente y
multiplataforma que fue diseñado específicamente para tener pocas
dependencias de implementación. Fue originalmente desarrollado por
James Gosling de Sun Microsystems y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems.
o Objective-C: Fue creado creado como un superconjunto de C para que
implementase un modelo de objetos parecido al de Smalltalk.
Originalmente fue creado por Brad Cox y la corporación StepStone en
1980. Actualmente se usa como un lenguaje principal de programación
para Mac OS X, iOS y GNUstep, además de Swift.
o Perl: Es un lenguaje de programación diseñado por Larry Wall en 1987.
Toma características del lenguaje C, del lenguaje interpretado bourne shell
(sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de
programación y adicionalmente, soporta herencia múltiple.
o PHP: Es un lenguaje de programación de uso general de código del lado
del servidor originalmente diseñado para el desarrollo web de contenido
dinámico. Fue creado originalmente por Rasmus Lerdorf en el año 1995.
Actualmente el lenguaje sigue siendo desarrollado con nuevas funciones
por el grupo PHP.
o Python: Es un lenguaje de programación interpretado cuya filosofía hace
hincapié en una sintaxis que favorezca un código legible, usa tipado
dinámico, es multiparadigma y multiplataforma. Fue creado a finales de los
80's por Guido van Rossum en el Centro para las Matemáticas y la
Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos,
como un sucesor del lenguaje de programación ABC.
o Ruby: Lenguaje de programación dinámico y de código abierto enfocado
en la simplicidad y productividad. Su elegante sintaxis es cómoda al leerla y
fácil al escribirla. Fue creado por el programador japonés Yukihiro "Matz"
Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó
públicamente en 1995.
o Smalltalk: Fue uno de los primeros lenguajes de programación orientado a
objetos con tipado dinámico. Es considerado un "mundo virtual de objetos"
donde cualquier entidad es modelada como un objeto.
o SCALA: Scala es un lenguaje de programación orientado a objetos puro,
en el sentido de que cada valor es un objeto. El tipo y comportamiento de
los objetos se describe por medio de clases y traits. La abstracción de
clases se realiza extendiendo otras clases y usando un mecanismo de
composición basado en mixins como un reemplazo limpio de la herencia
múltiple.
o Muchos más...

Programación Visual
¿Qué es la programación visual?
El concepto de programación visual es un poco confuso ya que
actualmente se le considera programación visual a los lenguajes de
programación textual que tienen una interfaz gráfica para poder visualizar
lo que uno esta desarrollando. Este concepto en programación visual es
erróneo ya que este es aquel que por medio de iconos puedes ir creando
programas sin tener un lenguaje textual atrás de él.
La programación visual (visual programming) se refiere al desarrollo de
software donde las notaciones gráficas y los componentes de software
manipulables interactivamente son usados principalmente para definir y
componer programas.
La programación visual se define comúnmente como el uso de
expresiones visuales (tales como gráficos, animación o iconos) en el
proceso de la programación, pueden ser utilizadas para formar la sintaxis
de los nuevos lenguajes de programación visuales que conducen a los
nuevos paradigmas tales como programación por la demostración; o
pueden ser utilizadas en las presentaciones gráficas del comportamiento
o de la estructura de un programa.
El objetivo de la programación visual es mejorar la comprensión de los
programas y simplificar la programación en sí. Más allá, la programación
visual deberá fomentar a los usuarios finales a construir sus propios
programas, que de otra forma deben ser escritos por programadores
profesionales.

Lenguajes de programación visual


La programación visual se basa en el uso de lenguajes visuales (LVP). Un
lenguaje de programación visual puede definirse como:

 Un lenguaje de programación que usa una representación visual


(tal como gráficos, dibujos, animaciones o iconos, parcial o
completamente).
 Un lenguaje visual manipula información visual o soporta
interacción visual, o permite programar con expresiones visuales.
 Un lenguaje visual es un conjunto de arreglos espaciales de
símbolos de texto y gráficos con una interpretación semántica que
es usada para comunicar acciones en un ambiente.
 Los LVPs son lenguajes de programación donde se usan técnicas
visuales para expresar relaciones o transformaciones en la
información.

Por ejemplo, un objeto visual que representa un proceso de adición


(suma) toma dos entradas y produce una salida. En un LVP típico de flujo
de datos, el usuario simplemente selecciona un valor de entrada y
selecciona un puerto de entrada al objeto para establecer una relación
entre los datos y el proceso.
El génesis de los LPV vino en 1975 con la publicación de David Canfield
Smith “Pygmalion: A Creative Programming Environment''. Por ejemplo,
Pygmalion incorporó un paradigma de programación basado en iconos en
el cual los objetos creados podían ser modificados, y conectados juntos,
con las características definidas para realizar cómputos.
Muchos LPV modernos emplean un acercamiento basado en iconos
como el de Smith. Pygmalion también hizo uso el concepto de
programación, por ejemplo, en donde el usuario muestra al sistema cómo
realizar una tarea en un caso específico y el sistema utiliza esta
información para generar un programa el cuál realiza la tarea en casos
generales.
¿Por qué insistimos en comunicarnos con las computadoras usando
lenguajes de programación textuales? ¿No sería mejor comunicarnos con
las computadoras usando una representación que aproveche nuestra
naturaleza visual?
Obviamente, los autores de los lenguajes de programación visuales (LPV)
discuten que la respuesta a ambas preguntas es sí. Las principales
motivaciones para la mayoría de la investigación en LPV son:

 Mucha gente piensa y recuerda cosas en términos de cuadros.


 Ella se relaciona con el mundo de una manera intrínsecamente
gráfica y utiliza imágenes como componente primario del
pensamiento creativo.
 Además, los lenguajes de programación textuales han demostrado
ser algo difíciles para que mucha gente creativa e inteligente
aprenda utilizar con eficacia.
 La reducción o eliminación de la necesidad de traducir ideas
visuales en representaciones textuales puede ayudar a atenuar
este problema de la curva del aprendizaje.
 Además, una variedad de aplicaciones, incluyendo la visualización
científica y la simulación interactiva se prestan bien a los métodos
visuales de desarrollo.
Un LPV NO es un ambiente integrado de desarrollo (o IDE). La diferencia
es que un VPL debe ser capaz de llevar a cabo todas las tareas de
programación de forma visual, sin tener que recurrir a la representación
textual.
Clasificación de los lenguajes visuales

Los lenguajes visuales se dividen en las siguientes categorías:


 Lenguajes puramente visuales
 Sistemas híbridos de texto y elementos visuales
 Sistema de programación por ejemplo (Programming-by-example)
 Sistemas orientados a restricciones (Constraint-oriented systems)
 Sistemas basados en formas (entradas tipo “hoja de cálculo” animada)

Aunque los LPVs comunican la información de una manera más visual


que los lenguajes textuales tradicionales, el texto aún tiene su lugar en la
programación visual. Hay 3 áreas que ilustran la superioridad del texto en
algunas situaciones:
 documentación
 asignar nombres para distinguir entre elementos de un mismo tipo, y
 expresar conceptos bien conocidos y compactos que son
inherentemente textuales (p.ej. fórmulas algebraicas)

Principales conceptos de los lenguajes visuales


Los principales conceptos relativos a los lenguajes visuales son:

 Abstracción procedural (descomposición del programa en módulos)


 Abstracción de datos, consiste en encapsular los tipos de datos
abstractos definidos por el usuario, permitiendo su acceso solo por
medio de operaciones definidas.
 Sistema de tipos
 Control de flujo
 Estructuras de control (selección, iteración)
 Formatos y estándares. Se refiere a la definición de reglas que
permitan especificar los elementos del LPV (p.ej. GXL, XGMML,
GML)
 Gramáticas de lenguajes visuales. Los lenguajes visuales se
especifican por una tripleta (ID, G, B), donde:
 ID es el diccionario de iconos, el cual es un conjunto de iconos
generalizados, cada uno representado por un par (Xm,Xi) , donde
Xm es la parte lógica (significado) y Xi es la parte física (imagen).
 G es una gramática que especifica como pueden construirse
objetos compuestos a partir de iconos simples usando operadores
de relación espaciales.
 B es una base de conocimiento de dominio específico, la cual
contiene la información necesaria para construir el significado de la
sentencia visual (nombres de eventos, relaciones, referencias a los
objetos, etc)
Elementos del modelo de objetos
Para entender el paradigma de Programación Orientado a Objetos es necesario
conocer sus elementos, las características y funciones de los propios, ya que
estos son los que le dan las características, propiedades, funciones y el potencial
a un programa orientado a objetos.
Al conocer sus elementos, entenderemos mejor el funcionamiento de cada una de
las partes en que se divide un programa orientado a objetos para asi poder
implementar de manera más eficaz un programa y aprovechar todo el potencial
que nos brinda este paradigma o método de programación.
Clase:
Son los datos y operaciones comunes a un conjunto de objetos que comparten
características.

Objetos:
Entidad compuesta de datos y operaciones que realizan sobre esos datos.
Mantienen unas características en una o más variables e implementan su
comportamiento con métodos.

Herencia:
Una herencia puede heredar sus variables y métodos a varias subclases (la clase
que hereda es llamada súper clase o clase padre)

Abstracción:
Consiste en captar las características esenciales de un objeto, así como sus
comportamientos, es decir, es un método por el cual obtenemos una determinada
entidad de la realidad; sus características y funciones que desempeñan, estos son
representados en clases por medios de atributos y métodos de dicha clase.

Encapsulamiento:
Es el ocultamiento de información que no es necesario saber un determinado
usuario, la utilidad del encapsulamiento va por la facilidad para manejar la
complejidad, donde solo se conoce el comportamiento pero no los detalles
internos, aquí lo que interesa es ¿Qué hace la clase? Pero no el ¿Cómo lo hace?

Modularidad:
Es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto
de módulos cohesivos y vagamente convexos, cada módulo se puede compilar
separadamente aunque tenga conexiones con otros módulos.
En un diseño estructural, modularizacion comprende el agrupamiento significado
de subprogramas en diseño orientado a objetos, la modularidad debe ceñirse a la
estructura lógica elegida en el proceso de diseño.
Dividir un programa en componentes individualizados reduce en alguna manera
su complejidad; C++ separa los módulos interface de los módulos con
implementación.
Polimorfismo:
Se basa en utilizar varios métodos con el mismo nombre y con diferente
funcionalidad, un objeto polimorfismo es una entidad que puede contener valores
de diferentes tipos durante la ejecución de un programa.
Bibliografía

Alvarez, L. (2017). Paradigma de la programación orientada a objetos. Programación

Orientada a Objetos. https://ferestrepoca.github.io/paradigmas-de-

programacion/poo/poo_teoria/index.html

POO: El paradigma Orientado a Objetos. (2015, 12 julio). Plataforma Educativa.

Universidad de Antioquia.

http://aprendeenlinea.udea.edu.co/lms/men_udea/mod/page/view.php?id=19537

Hernández, J. (2008, 8 abril). El paradigma de la programación visual. Scribd.

https://es.scribd.com/doc/2469975/El-paradigma-de-la-programacion-

visual#download

1&1 IONOS Inc. (2020, 30 septiembre). Programación visual. IONOS Digital Guide.

https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/programacion-

visual/

Elementos del modelo de objetos. (2013, 8 febrero). Programación Orientada a Objetos.

http://rz-programacion-orientada-a-obj.blogspot.com/2013/02/elementos-del-

modelo-de-objetos.html
MATERIA: PROGRAMACIÒN AVANZADA.

RUBRICA: Trabajo de investigación.

UNIDAD I. INTRODUCCIÒN A LA PROGRAMACIÒN ORIENTADA A OBJETOS.

NOMBRE DEL ALUMNO: _SANZ FERNANDEZ LUZ ZULEYMA___________________________

REVISOR: ING. ROMO MEDINA MARCO ALBERTO.

Categoría Bueno Suficiente Insuficiente Puntos Total


(100%) (50%) (0%)

Introducción La introducción presenta a La introducción muestra cierta La introducción no orienta a la


grandes rasgos el tema y estructura, pero no aclara el audiencia hacia el tema a 5
captura la atención de la tema a continuación. Puede continuación.
audiencia con preguntas o estar sobre detallada o
relaciona el tema a los incompleta y no atrae la
intereses de la audiencia. atención de la audiencia.
Comandos El listado de comandos El “Storyboard” no muestra El “Storyboard” no provee
usados en la “Storyboard” muestra la orden lógico secuencial y la información, ni orden lógico. 5
estructura de la presentación información está incompleta
presentación
en cada plantilla incluyendo:
título, fondo a color o pre-
diseñado, tamaño correcto de
dibujos o gráficos, tamaño,
color y tipo de letra para cada
título y texto, navegaciones
(Hyperlinks), sonidos (si
algunos). Existe una
secuencia lógica en la
presentación del material.
Uso de Las gráficas, sonido y/o Algunas gráficas, sonido y/o Las gráficas, sonido y/o
Dibujos, animaciones contribuyen a la animaciones no se relacionan animaciones no están 5
presentación del tema y con el tema y no contribuyen a relacionadas al contenido.
Sonidos y/o
establecen una conexión resaltar conceptos principales
Animaciones visual o auditiva que permiten :as gráficas no facilitan la
comprender conceptos e Imágenes de tamaños muy comprensión del contenido y/o
ideas del tema presentado. grandes o pequeños con contienen decoraciones que
Uso de imágenes originales colores o resoluciones pobres sobre cargan la plantilla y/o
apropiadas en tamaño y distraen o alejan a la audiencia
resolución para resaltar el del tema principal.
contenido. Existe un tema o
conexión visual apropiada y
consistente
Presentación La presentación es agradable La presentación muestra alguna La presentación está
a la audiencia en el aspecto estructura, pero la información congestionada, confusa, mala 5
estético y contribuye a llevar aparece aglomerada, mal distribución de espacios que
el mensaje del tema o se distribuida y/o el fondo o afectan la legibilidad.
relaciona con el mismo plantilla distrae la atención de la
audiencia.
Contenido El Contenido está escrito de El contenido es vago, no El contenido carece de un punto
manera clara y concisa con comunica punto de vista alguno de vista claro y secuencia lógica 60
un desarrollo lógico y y no muestra sentido alguno. del desarrollo de la
progresivo de ideas información.Incluye poca
sustentadas por las fuentes Incluye poca información información y uno o dos datos
de información. persuasiva y pocos relacionados al tema.
datos.Algunos datos no
La información es exacta, concuerdan entre sí.La fuente Información incompleta, pasada
reciente y proviene en su de información primaria no está de fechas y/o incorrecta.
mayor parte de una fuente clara. Secuencia de ideas no clara.
primaria de información.
Elementos Los tipos de letras escogidos Se dificulta la lectura con El texto es extremadamente de
del Texto son fáciles de leer y sus párrafos extensos, demasiados difícil de leer con textos extensos 10
tamaños varían tipos de letras diferentes, letras muy grandes o muy
apropiadamente en títulos y fondos congestionados, uso pequeñas, contraste inapropiado
textos. Uso de itálicas, excesivo o falta de negrillas y de colores, pobre uso de
negrillas e indentados facilitan otros indicadores de texto negrillas, itálicas, bullets, etc
la lectura. (Bullets).

Los textos poseen el tamaño


apropiado para impactar a la
audiencia. El fondo o plantilla
y los colores permiten la
lectura del texto
Gramática, El texto está escrito sin Errores gramaticales y el uso Errores gramaticales y el uso
signos de errores gramaticales, uso inapropiado de: mayúsculas, inapropiado de: mayúsculas, 5
puntuación, apropiado de mayúsculas, signos de puntuación y palabras signos de puntuación, palabras
uso de signos de puntuación y escritas incorrectamente escritas incorrectamente y
mayúsculas, palabras escritas dificultan la lectura del material. repetidas frecuentemente
etc. correctamente. interfieren con la lectura. Se
requiere edición y revisión del
material ha ser presentado. (más
de 5 errores)
Referencias Las fuentes de información Algunas veces la información No existe forma de verificar la
o fuentes de están apropiadamente no está citada y/o documentada validez de la información. 5
citadas, la audiencia puede apropiadamente
información
determinar la credibilidad y
autoridad de la información.
Todas las fuentes de
información están claramente
identificadas usando los
manuales APA .

TOTAL 100

También podría gustarte