Este documento describe los conceptos fundamentales de la programación orientada a objetos. Explica que un objeto es una colección de datos y funciones asociadas, y que las clases son plantillas que definen la estructura de los objetos. También cubre propiedades clave como la encapsulación, herencia y polimorfismo. Finalmente, destaca las ventajas de este paradigma de programación como su flexibilidad, reusabilidad y cercanía a la forma en que pensamos los humanos.
4. Clasificación del Software
Sistemas 1. Multitarea Windows, Unix
Multiusuario
Operativos 2.
Unix
3. Multiproceso
4. Línea Comando Unix
5. Interfaz Gráfica MS DOS
Windows, Macintosh
Lenguajes de 1. Bajo Nivel Ensamblador
Nivel Medio
Programación 2. Visual Basic, C
3. Alto Nivel
Aplicación De 1. Proc. Textos Word
Hoja Cálculo
Uso General 2. Excel
3. Base datos
Acces, SQL server
4. Presentación
Power point
Aplicación De
1. Antivirus Autocad, Corel, Flash,
Uso Especifico 2. Compresores etc.
3. Diseño. Etc.
Nominas , Inventarios, Sistemas de Bancos
Desarrollados a etc.
la Medida.
5. Categorías de los Lenguajes de
Programación
Según su Nivel de Abstracción
1. Lenguaje máquina (lenguaje de bajo nivel)
• Es el que entiende la computadora.
• Las instrucciones se expresan en forma
binaria.
• Los programas creados en lenguaje
máquina solo pueden ejecutarse en los
procesadores para los que fueron creados.
7. Categorías de los Lenguajes de
Programación
2. Lenguaje Ensamblador (lenguaje de nivel medio)
Emplea representación simbólica y utiliza
procedimientos mnemotécnicos de
funciones matemáticas. Los datos se
identifican con nombres y permiten la
introducción de comentarios para entender
el programa con mayor facilidad y optimiza
los recursos del hardware.
8. Categorías de los Lenguajes de
Programación
3. Lenguaje de alto nivel
• Lenguajes más acorde con el lenguaje humano.
• Utilizan palabras y frases (por lo general en inglés).
• Permiten modificar los códigos de los programas
con facilidad.
• Son independientes de la estructura física de la
computadora, contando con instrucciones de uso
frecuente como las funciones matemáticas.
• Son lenguajes de programación alejados del
lenguaje máquina lo cual necesitan ser traducidos
antes de ejecutarse y esta tarea se realiza por
medio de los intérpretes o los compiladores:
10. Línea de tiempo histórica de los lenguajes
de programación.
Primera Generación: lenguaje de máquina 1940-1950.
Consistía en sucesiones de dígitos binarios. Aún en la
actualidad, es el único lenguaje interno que entiende la
computadora; los programas se escriben en lenguajes de
mayor nivel y se traducen a lenguaje de máquina.
Segunda Generación: lenguajes ensambladores fines 1950.
En lugar de usar códigos binarios, las instrucciones se
representan con símbolos fáciles de reconocer, conocidos
como mnemotécnicos. Aún se utilizan estos lenguajes
cuando interesa un nivel máximo de eficiencia en la
ejecución o cuando se requieren manipulaciones
intrincadas.
11. Tercera Generación: Años '60. Los lenguajes de esta
generación se dividen en tres categorías, según se
orienten a: Procedimientos: la forma en la que se
programan. Problema: El problema que intentan
resolver. Objeto: Como se encarara el objeto a
desarrollar. Lenguajes como COBOL, FORTRAN y Basic
son los ejemplos de esta generación
Cuarta Generación: Las características generales de
los lenguajes de cuarta generación son: Uso de frases
y oraciones parecidas al inglés para emitir
instrucciones.
Quinta Generación: o Lenguajes naturales
Esta generación incluye la inteligencia artificial y
sistemas expertos. En lugar de sólo ejecutar un
conjunto de órdenes, el objetivo de estos sistemas es
“pensar” y anticipar las necesidades de los usuarios.
Estos sistemas se encuentran aún en desarrollo.
13. Evolución de la programación
Programación lineal
Programación Modular
Programación Estructurada
Programación Orientada a
Objetos
14. Programación lineal
• Los lenguajes de programación lineal (BASIC,
COBOL Y FORTRAN) no tenían facilidad para
reutilizar el código existente de programas. De
hecho se duplicaban segmentos de software cada
vez más en muchos programas. Los programas se
ejecutaban en secuencias lógicas, haciendo la
lógica difícil de comprender. El control de
programas era difícil y se producían continuos
saltos a lo largo del referido programa. Aún más,
los lenguajes lineales no tenían capacidad de
controlar la visibilidad de los elementos llamados
datos
15. Programación Modular
• El soporte más elemental de la programación Modular llegó
con la aparición de la subrutina. Una subrutina ha creado una
secuencia de instrucciones a las que se les da un nombre
independiente; una vez que se ha definido, la subrutina se
puede ejecutar simplemente incluyendo el nombre del
programa siempre que se requiera. Las subrutinas
proporcionan una división natural de las tareas; diferentes
programas utilizan. Aunque las subrutinas proporcionan el
mecanismo básico de la programación Modular, se necesita
mucha disciplina para crear software bien estructurado.
• Un módulo es cada una de las partes de un programa que
resuelve uno de los subproblemas en que se divide el
problema complejo original.
16. Programación Estructurada
• Un concepto importante en campo de la programación
Estructurada: Abstracción, ya que la Abstracción se
puede definir como la capacidad de examinar algo sin
preocuparse de los detalles internos. En un programa
estructurado, es suficiente conocer que un
procedimiento sea fiable, para que se pueda utilizar sin
tener que conocer cómo funciona su interior. Esto se
conoce como una Abstracción funcional y es el núcleo
de la programación estructurada. Hoy casi todos los
lenguajes de programación tienen construcciones que
facilitan la programación estructurada.
• La programación estructurada sigue tres reglas: la
secuencia, la iteración y la decisión.
17. Programación Orientada a
Objetos ( POO , OOP)
• Se basa en la idea natural de la existencia de un
mundo lleno de objetos y que la resolución del
problema se realiza en términos de objetos. Un
lenguaje se dice que está basado en objetos si
soporta como una característica fundamental del
mismo.
• El elemento fundamental de la (POO) es, como su
nombre lo indica, el objeto.
• La programación orientada a objetos (POO) toma
como modelo a los objetos reales para elaborar su
contraparte en software.
18. • La programación orientada a objetos nos brinda una
forma natural de ver el proceso de programación, a
saber, mediante el modelado de objetos reales, sus
atributos y comportamiento. La programación
orientada a objetos proporciona también
comunicación entre los objetos. Tal como las
personas se envían mensajes entre sí, los objetos
también se comunican mediante mensajes.
• La programación orientada a objetos encapsula
datos (atributos) y funciones (operaciones) en
paquetes llamados objetos; los datos y las funciones
de un objeto están íntimamente ligados.
19. Propiedades de la Programación
Orientada a Objetos
• La orientación a objetos trata de cumplir las necesidades de
los usuarios finales, así como las propias de los
desarrolladores de productos software. Estas tareas se
realizan mediante la modelización del mundo real. El soporte
fundamental es el modelo objeto. Las propiedades más
importantes de este modelo son:
• Abstracción
• Encapsulamiento
• Modularidad
• Jerarquía
• Polimorfismo
• Otras propiedades: concurrencia (multitarea), persistencia,
genericidad, manejo de excepciones.
21. Ventajas de POO
La OOP proporciona las siguientes ventajas sobre otros lenguajes
de programación
• Uniformidad. Ya que la representación de los objetos lleva
implica tanto el análisis como el diseño y la codificación de los
mismos.
• Comprensión. Tanto los datos que componen los objetos,
como los procedimientos que los manipulan, están agrupados
en clases, que se corresponden con las estructuras de
información que el programa trata.
• Flexibilidad. Al tener relacionados los procedimientos que
manipulan los datos con los datos a tratar, cualquier cambio
que se realice sobre ellos quedará reflejado automáticamente
en cualquier lugar donde estos datos aparezcan.
22. Ventajas de POO (Cont)
• Estabilidad. Dado que permite un tratamiento diferenciado
de aquellos objetos que permanecen constantes en el tiempo
sobre aquellos que cambian con frecuencia permite aislar las
partes del programa que permanecen inalterables en el
tiempo.
• Reusabilidad. La noción de objeto permite que programas
que traten las mismas estructuras de información reutilicen
las definiciones de objetos empleadas en otros programas e
incluso los procedimientos que los manipulan. De esta forma,
el desarrollo de un programa puede llegar a ser una simple
combinación de objetos ya definidos donde estos están
relacionados de una manera particular.
23. Ventajas del Modelo orientado a objetos
con respecto al modelo estructurado:
• Un modelo de objetos es más cercano a la realidad que un
modelo funcional.
• Un desarrollo realizado con el modelo orientado a objetos es
más fácil de mantener y de reutilizar.
• El modelo orientado a objetos evita la redundancia en los
procesos luego los códigos son más entendibles y resumidos.
• La integridad que dan los objetos a los datos evita
ambigüedades en su uso, dando mayor seguridad en los
resultados.
• El modelo orientado a objetos facilita la integridad de
módulos que hallan sido realizados por separado sin correr
riesgos en el manejo de los datos.
24. Qué es un objeto
• Los objetos son como los tipos abstractos de datos.
• Un objeto es una colección de datos, junto con las
funciones asociadas, utilizadas para operar sobre
esos datos.
• La potencia real de los objetos reside en las
propiedades que soportan: herencia, encapsulación
(o encapsulamiento) y polimorfismo junto con los
conceptos de objetos, clases, métodos y mensajes.
• Los humanos pensamos en términos de objetos. La
abstracción nos permite ver imágenes u objetos del
mundo real.
26. Características de los Objetos
• Se agrupan en tipos denominados clases.
• Contienen datos internos que definen su estado
actual.
• Soportan ocultación de datos. (El usuario de una
clase en particular no necesita saber cómo están
estructurados los datos dentro de ese objeto)
• Pueden heredar propiedades de otros objetos.
• Pueden comunicarse con otros objetos enviando o
pasando mensajes.
• Tienen métodos que definen su comportamiento.
27.
28. Qué es una Clase
• Una clase es un tipo definido por el usuario
que determina las estructuras de datos y las
operaciones asociadas con ese tipo.
• Son como plantillas o modelos.
• Cuando se construye un objeto de una clase,
se crea una instancia de clase.
• Instancia de clase = objeto
29. • Una clase es la estructura de un objeto, es decir, la
definición de todos los elementos de que está hecho
un objeto. Un objeto es, por lo tanto, el "resultado"
de una clase. En realidad, un objeto es una instancia
de una clase, por lo que se pueden intercambiar los
términos objeto o instancia (o incluso evento).
• Una clase se compone de dos partes:
• Atributos (denominados, por lo general, datos
miembros): esto es, los datos que se refieren al
estado del objeto
• Métodos (denominados, por lo general,
funciones miembros): son funciones que
pueden aplicarse a objetos