Programación Orientada A Objetos Clase 1 PDF

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

Programación

Orientada a Objetos

LICENCIATURA EN SISTEMAS

FCAD - UNER
Programación Orientada a Objetos

Presentación de la asignatura
Unidad 1
Introducción.
Conceptos generales.
Programación Orientada a Objetos

Docentes
Titular
Elizabeth Silva

J. T. Prácticos
Juan Aguirre
Patricia Balbuena
Características Generales de
Actividades del Año
Duración Anual

Temas Generales Características Generales del Paradigma de


Objetos
Modelo de Objetos
Programación Orientada a Objetos
Lenguaje de Programación Java

Evaluaciones 2 pruebas parciales


Trabajos Prácticos
1 Taller Integrador

Horarios Martes 16 a 18 hs. – Clases Teóricas


Martes 18 a 20 hs. – Clases Prácticas
Miércoles 18 a 20 hs. – Clases Prácticas
Características Generales de
Actividades del Año
Matriculación en campus e inscripción en curso

http://www.campus.uner.edu.ar/

Instructivo

http://www.campus.uner.edu.ar/file.php?file=/1/Manuales/Registro_y_Matriculacion.pdf
Unidad 1
Introducción.
Evolución de los Lenguajes de Programación.
Concepto de Ingeniería de Software.
Etapas en el proceso de desarrollo de sistemas.
Calidad del Software.
Modularización. Criterios de buena modularización.
Principios en la construcción del software.
Programación y Abstracción. Tipos Abstractos de Datos.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Algoritmo
¿De dónde proviene la palabra algoritmo?
El término algoritmo proviene de la deformación del nombre Al-Khuwarizmi,
que fue desde un punto de vista cronológico la primera figura de la
matemática árabe en la Edad Media.
De su obra más importante es que se asientan los primeros principios de lo
que hoy se conoce como álgebra, palabra que deriva de la primera palabra del
título de esta obra: "aljabar wa-al-muqabala“.

Definición
Conjunto de pasos o instrucciones que se deben seguir para realizar
una determinada tarea.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Algoritmo
Reglas a ser cumplidas por estas instrucciones:

Ser un conjunto finito de instrucciones y que se realicen en un tiempo


finito.
Debe tener un número finito (0 .. N) de datos de entrada y un número
finito (0 ... M) de datos de salida (resultados).
Frente a un mismo conjunto de datos de partida se debe llegar siempre a
un mismo conjunto de resultados.

Definición (RAE)
Conjunto ordenado y finito de operaciones que permite hallar la
solución de un problema.
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Algoritmo computacional

Es un algoritmo que puede ser ejecutado por una computadora. Por


ejemplo, el algoritmo de Euclides.

Algoritmo no computacional

Por ejemplo, el algoritmo para instalar el equipo de sonido.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Pseudocódigo

El pseudocódigo (o falso lenguaje) es una descripción de alto


nivel compacta e informal de un programa informático o algoritmo.

Utiliza las convenciones estructurales de un lenguaje de


programación real, pero está diseñado para la lectura humana, y con
independencia de cualquier otro lenguaje de programación.

No existe una sintaxis estándar para el pseudocódigo.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Algoritmo en pseudocódigo
Ejemplo

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales
Un algoritmo expresado en un determinado lenguaje de programación
se denomina programa.

Un programa es la implementación de un algoritmo en un determinado


lenguaje de programación siguiendo las reglas establecidas por el
lenguaje elegido.

Un programa es una secuencia de instrucciones que especifica cómo


realizar un cálculo.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Lenguaje Natural: Es la lengua o idioma hablado o escrito por
humanos para propósitos generales de comunicación

Lenguaje Formal: Son lenguajes diseñados por las personas para una
aplicación específica.
◦ Ejemplo: La notación matemática realizada por los matemáticos,
la representación química de la estructura de las moléculas
realizada por los químicos, etc.

Los lenguajes de programación son representaciones formales


utilizadas para expresar cálculos (computacionales).

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Definición

Los lenguajes de programación son herramientas que nos permiten


crear programas, normalmente llamados software.

Al igual que el lenguaje natural, consta de una serie de normas


(gramática y sintaxis) que permite, por medio de símbolos, generar
instrucciones que una computadora interprete.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales
Programación se utiliza para designar la creación de programas a
pequeña escala, el desarrollo de sistemas complejos se suele
denominar Ingeniería de Software.

Programación e Ingeniería de Software son complementarios entre sí.

Para el desarrollo de grandes sistemas informáticos se divide el trabajo


en tareas que diversos programadores desarrollarán. Al terminar se
unen las piezas como en un puzzle para completar el sistema en sí. Así
pues, la programación también se aplica para el desarrollo de grandes
sistemas en la ingeniería de software.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Cuando se habla de lenguajes de programación, se suele hacer una
distinción general, diferenciando según su nivel, en:

Lenguajes de BAJO NIVEL

Lenguajes de ALTO NIVEL

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Lenguajes de BAJO NIVEL

Son aquellos cuyas instrucciones ejercen un control directo sobre el


hardware y están condicionados por la estructura física de la
computadora que lo soporta.
Con este término de denominan al Lenguaje Máquina y al Lenguaje
Ensamblador.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Lenguajes de ALTO NIVEL

Son lenguajes independientes del tipo de procesador en que se


ejecutan, y de mayor nivel de abstracción que los lenguajes de bajo
nivel.
Son fácilmente legibles y entendibles por las personas, acercándose a
la abstracción de los lenguajes naturales usados por los seres
humanos.
Los lenguajes de programación de alto nivel, o lenguajes simbólicos,
facilitan la tarea de programación, ya que disponen de formas
adecuadas que permiten ser leídas y escritas por personas y resultan
independientes del modelo de computadora utilizada.
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Lenguajes de ALTO NIVEL

Existen diversas estrategias que permiten ejecutar en una


computadora un programa realizado en un lenguaje de programación
simbólico.
Los procesadores del lenguaje son los programas que permiten el
tratamiento de la información en forma de texto, representada en los
lenguajes de programación simbólicos.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Lenguajes de ALTO NIVEL

Los Lenguajes de Programación pueden ser:


Compilados
Interpretados

Pasaje de programas de alto nivel a bajo nivel:


Intérpretes
Compiladores

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Intérprete

Lee un programa en alto nivel y lo ejecuta, lo que significa que


hace lo que el programa dice.
Procesa el programa un poco por vez, alternativamente leyendo
líneas y realizando cálculos.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales

Lenguajes de Programación
Compilador

Lee un programa y lo traduce completamente antes que el


programa comience a correr. En este caso el programa de alto
nivel es llamado código fuente, y el programa traducido es
llamado código objeto o ejecutable.
Luego de que un programa es compilado, el mismo puede ser
ejecutado reiteradamente sin futuras traducciones.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación
Conceptos Generales

ALGORITMO
PROBLEMA PROGRAMA
PSEUDOCÓDIGO
PROGRAMA-
LENGUAJE CIÓN
LENGUAJE NATURAL
LENGUAJE LENGUAJE DE
FORMAL PROGRAMACIÓN

BAJO NIVEL ALTO NIVEL

COMPILADO INTERPRETADO

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Conceptos Generales
Paradigmas
Concepto
Un paradigma de programación es un estilo de desarrollo de
programas. Es decir, un modelo para resolver problemas computacionales.

Existen diversas estrategias que permiten ejecutar en una computadora un


programa realizado en un lenguaje de programación simbólico.

Paradigma de Software

Representa un enfoque particular o filosofía para la construcción del


software.
No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.
También hay situaciones donde un paradigma resulta más apropiado que
otro.
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma Imperativo

Paradigma Orientado a Objetos

Paradigma Lógico

Paradigma Funcional

Paradigma orientado a Aspectos

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma imperativo o procedimental


ALGORITMO + ESTRUCTURA DE DATOS = PROGRAMAS

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma imperativo o procedimental


La programación imperativa, es un paradigma de programación que
describe la programación en términos del estado del programa y
sentencias que cambian dicho estado.
Su esencia es el cálculo iterativo, paso a paso, de valores y su
asignación a posiciones de memoria.

ALGORITMO + ESTRUCTURA DE DATOS = PROGRAMAS

Lenguajes imperativos: Pascal, Fortran, Algol, C, etc.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma orientado a objetos


La programación orientada a objetos es un paradigma de
programación que define los programas en términos de “clases de
objetos”, objetos que son entidades que combinan estado (es decir,
datos), comportamiento (esto es, métodos) e identidad (propiedad del
objeto que lo diferencia del resto).
La programación orientada a objetos expresa un programa como un
conjunto de estos objetos, que colaboran entre ellos para realizar
tareas. Esto permite hacer los programas y módulos más fáciles de
escribir, mantener y reutilizar.

OBJETOS + MENSAJES = PROGRAMAS

Lenguajes orientados a objetos: Smalltalk, Eiffel, Java, etc.


Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma orientado a objetos

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma orientado a objetos

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma lógico
El paradigma asume la definición de un conjunto de hechos y conjunto
de reglas que permiten la deducción de otros hechos.
La programación lógica encuentra su habitat natural en aplicaciones de
inteligencia artificial o relacionadas:

Sistemas Expertos, donde un sistema de información imita las


recomendaciones de un experto sobre algún dominio de
conocimiento.
Demostración Automática de teoremas, donde un programa genera
nuevos teoremas sobre una teoría existente.
Reconocimiento de lenguaje natural, donde un programa es capaz
de comprender (con limitaciones) la información contenida en una
expresión lingüística humana.
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma lógico

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma funcional
Sus orígenes provienen del Cálculo Lambda (o λ-cálculo), una teoría
matemática elaborada por Alonzo Church.

Los programas escritos en un lenguaje funcional están constituidos


únicamente por definiciones de funciones, entendiendo éstas no como
subprogramas clásicos de un lenguaje imperativo, sino como funciones
puramente matemáticas.

Otras características propias de estos lenguajes son la no existencia


de asignaciones de variables y la falta de construcciones estructuradas
como la secuencia o la iteración (lo que obliga en la práctica a que
todas las repeticiones de instrucciones se lleven a cabo por medio de
funciones recursivas).
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación

Paradigma funcional
Primo
; Cálculo de si un número es primo por fuerza bruta
; int -> bool
(defun primo (n)
(if (< n 3)
t
(if (zerop (mod n 2))
nil
(primo-aux 3 (sqrt n) n))))

(defun primo-aux (i lim n)


(if (> i lim)
t
(if (zerop (mod n i))
nil
(primo-aux (+ i 2) lim n))))

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación
Paradigma Orientado a Aspectos
Generalmente, el desarrollo de una aplicación involucra varias tareas
que se deben realizar.

Hay tareas que pueden considerarse “principales”, y que son


típicamente detalladas por los usuarios como parte del análisis
funcional de requerimientos.
También existen tareas que pueden considerarse “servicios comunes”,
generalmente no detalladas en el análisis funcional. Ej. de estos
“servicios comunes” pueden ser la necesidad de generar registros de
auditoria, accesos a BDs, temas relacionados con las seguridad, temas
relacionados con la concurrencia del acceso a cierta información, etc.

Es habitual que esta clase de “servicios comunes” deba ser realizada


en forma similar pero independiente en diversas partes del código.
Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018
Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación
Paradigma Orientado a Aspectos
Cada una de estas tareas es considerada una “incumbencia”
(“concern”, en inglés) – aspectos -, en el entendido que al código que
la implementa le debería “incumbir” solamente esa tarea.

Los conceptos y tecnologías conocidas con el nombre de


“Programación Orientada a Aspectos" (POA) buscan resolver el
problema de la “separación de incumbencias”, de una manera
sistemática, clara y eficiente.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Paradigmas de Programación
Paradigma Orientado a Aspectos
Para tener un programa orientado a aspectos necesitamos definir los
siguientes elementos:
• Un lenguaje para definir la funcionalidad básica. Este lenguaje se
conoce como lenguaje base. Suele ser un lenguaje de propósito
general, tal como C++ o Java.
• Uno o varios lenguajes de aspectos. El lenguaje de aspectos define la
forma de los aspectos.
• Un tejedor de aspectos. El tejedor se encargará de combinar los
lenguajes. El proceso de mezcla puede hacerse en el momento de la
compilación, o puede ser retrasado para hacerse en tiempo de
ejecución.

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1 Evolución de los Lenguajes de Programación

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018


Unidad 1

Bibliografía complementaria

Luis Joyanes Aguilar. Programación Orientada a


Objetos. Mc.Graw Hill, 1996

C. Ghezzi. Fundamental of Software Engineering.


Prentice Hall, 2002

Programación Orientada a Objetos - Fac. Cs. de la Adm. - UNER - 2018

También podría gustarte