Este documento describe los paradigmas de programación algorítmica y estructurada, así como orientada a objetos. Explica las características de un algoritmo estructurado como ser finito, eficiente, legible y modular. También cubre conceptos como encapsulación, herencia, polimorfismo y jerarquía que son fundamentales en el paradigma orientado a objetos.
2. Programación Estructurada
• Programación estructurada:
– consiste en un conjunto de reglas para escribir programas de tal
manera que sean legibles y fáciles de modificar.
• Reglas a seguir para la programación estructurada:
a) Características de algoritmos estructurados
b) ¿Cómo construir un algoritmo estructurado?
c) Estructuras algorítmicas estructuradas
3. a) Características de un algoritmo
estructurado
• Finito: El algoritmo debe tener un número finito
de pasos.
• Eficientes: Deben ocupar la mínima memoria y
minimizar el tiempo de ejecución.
• Legibles: El texto que lo describe debe ser claro,
de forma que permita entenderlo y leerlo
fácilmente.
• Modificables: Estarán diseñados de modo que
sus posteriores modificaciones sean fáciles de
realizar, incluso por programadores diferentes a
sus propios autores.
4. Características de un algoritmo
estructurado
• Modulares:
– La filosofía utilizada para su diseño debe favorecer la división del
problema en módulos pequeños.
• Único punto de entrada, único punto de salida:
– A los algoritmos y a los módulos que lo integran, se entra por un solo
punto (inicio) y se sale por un solo punto (fin)
5. b) ¿Cómo construir algoritmos
estructurados?
– Definición y análisis del problema: datos de entrada y
salida (resultados)
– Aplicar la técnica de: “divide y vencerás”, que consiste en
descomponer el problema en subproblemas más sencillos
– Resolución de los subproblemas: realización de los
algoritmos correspondientes a los subproblemas
– Depurar (prueba de validez) el algoritmo resultante
6. c)Estructuras algorítmicas o de control
• Secuenciales: cada acción se realiza una sola
vez y en un determinado orden
• Condicionales (selectivas): permiten
seleccionar una acción a realizar entre varias
alternativas
• Iterativas (repetitivas): una determinada
acción se realiza más de una vez
7. Ejemplo
• Calcular la media de una serie de números
positivos, suponiendo que los datos se leen desde un
terminal.
• Un valor de cero —como entrada— indicará que se ha
alcanzado el final de la serie de números positivos.
• El primer paso a dar en el desarrollo del algoritmo es
descomponer el problema en una serie de pasos
secuenciales.
• Para calcular una media se necesita sumar y contar los
valores. Por consiguiente, el algoritmo en forma
descriptiva sería
8. • algoritmo media
• inicio
• variables
• entero: n, c, s;
• real: media;
• C← 0;
• S←0;
• Hacer
• leer(N)
• Si N <> 0 Entonces
• S←S+N;
• C←C+1;
• fin si
• Mientras N <>0
• si C>0 entonces
• media ← S/C
• escribe(media)
• sino
• escribe('no datos')
• fin si
• fin
9. Paradigma Orientado a Objetos
• La programación orientada a objetos aporta
un nuevo enfoque a los retos que se plantean
en la programación estructurada cuando los
problemas a resolver son complejos. Al
contrario que la programación procedimental
que enfatiza en los algoritmos, la POO enfatiza
en los datos. En lugar de intentar ajustar un
problema al enfoque procedimental de un
lenguaje, POO intenta ajustar el lenguaje al
problema.
10. • Los lenguajes orientados combinan en una única
unidad o módulo, tanto los datos como las
funciones que operan sobre esos datos. Tal
unidad se llama objeto. Si se desea modificar los
datos de un objeto, hay que realizarlo mediante
• las funciones miembro del objeto. Ninguna otra
función puede acceder a los datos. Esto simplifica
la escritura, depuración y mantenimiento del
programa.
11. Principios Básicos de Orientación a
Objetos
Orientación a Objetos
Encapsulación
Polimorfismo
Modularidad
Abstracción
Jerarquía
12. ¿Qué es Abstracción?
• Es el proceso de capturar los detalles
fundamentales de un objeto mientras se
suprimen o ignoran otros detalles.
– • Se enfatizan características comunes que
interesan
– • Se ignoran otras características
14. ¿Qué es Encapsulación?
• Es la capacidad de esconder los detalles de
como funciona un objeto (la
implementación), detrás de una interface
– • Solo se necesita conocer la interface para poder
usar el objeto
– • El usuario no se ve afectado si se cambia o
mejora el funcionamiento interno del objeto,
mientras se mantenga la interface
17. ¿Que es Polimorfismo?
Es la habilidad de esconder diferentes
implementaciones tras una sola interface
18. • Ejemplo2: Operación “Abrir”
Puerta Cuenta Puerto Plazo
Abrir() Abrir() Abrir() Abrir()
Permite al analista hablar el lenguaje del cliente.
Evita asignar identificadores artificiosos para distinguir las
operaciones.
Contribuye a la reutilización de código.
19. ¿Qué es Modularidad?
• Es la capacidad de particionar algo complejo
y difícil de manejar, en partes más sencillas y
fáciles de manejar
23. ¿Qué es Herencia?
• Es la capacidad de los elementos de una
jerarquía, de transmitir sus características
desde los niveles mas abstractos a los más
concretos
24. Herencia
• Uno puede hacer
Animal representaciones
generales de un objeto y
Mamífero Ovíparo después relacionarlas con
otros objetos, para que
cada uno tenga
Canino Felino Reptil
características mas
especificas
Firulais Garfield
• Estas son las relaciones
que puede tener un
Lassie Felix objeto
26. ¿Qué es un Objeto?
Informalmente, un objeto representa a una
entidad, ya sea física, conceptual o software
27.
28. Una definición más formal
• Un objeto es un concepto, abstracción o cosa
con fronteras definidas y con sentido para
una aplicación
• Un objeto es algo que tiene:
– Estado
– Comportamiento
– Identidad
29. Un Objeto tiene Estado
• El estado de un objeto es una de las posibles condiciones en
que un objeto puede existir
• El estado de un objeto normalmente cambia con el tiempo
• El estado de un objeto es usualmente implementado por un
conjunto de propiedades llamadas atributos, mas los enlaces
que el objeto pueda tener con otros objetos
• El estado lo establecen los valores de los atributos
30.
31. Un objeto tiene comportamiento
• El comportamiento determina como un objeto actúa y
reacciona.
• El comportamiento define la manera en la que un objeto
responde a las peticiones de otros objetos.
• El comportamiento visible de un objeto se modela con un
conjunto de mensajes a los que el puede responder
• Los mensajes se implementan como las operaciones del
objeto.
32.
33. Un objeto tiene identidad
• Cada objeto tiene una identidad única, aun si
su estado en un momento dado, es idéntico
al de otros objetos
34.
35. Ejemplo:
• Objeto: Televisor
Atributos: Pantalla, Antena, Color, Marca, Bocina,
Sintonizador.
Comportamiento (métodos): Encender, Apagar,
Cambiar canal
Estado de un atributo: Marca=sony.
El estado es la asignación de un valor a un atributo.
36. ¿Qué son Clases?
Cuando se han identificado muchos objetos en un
dominio, decimos que una clase es una abstracción
que describe un grupo de objetos que tienen:
– • propiedades en común (atributos)
– • comportamiento en común (operaciones)
– • relaciones comunes con otros objetos (asociaciones)
– • semántica en común (descripción breve)
• Una clase es una abstracción porque:
– • enfatiza características relevantes al sistema
– • suprime otras características
38. La Relación entre Clases y Objetos
• Una clase en una definición abstracta de un objeto
– Define la estructura y comportamiento de cada objeto en
la clase
– Sirve como una plantilla para crear objetos
• Un objeto es una instancia concreta de una clase
– • Los objetos pueden agruparse en clases
41. Vehículo
Platero:Animal
Animal
Punto
Figura (1,3)
(5,2.5)
(2,2)
(2,1)
42.
43. Ejercicio
• Identifique los elementos de la siguiente lista, indicando cuales son objetos y cuales son clases. En el
caso de los objetos, indicar cual sería la clase a la que pertenecen.
• Contestador telefónico de Mario
• Caja de Ahorro
• Servidor FTP
• Misil nuclear
• Botón de llamado al ascensor
• Máquina de Fax del Depto. de Ventas
• Vehículo Espacial Ariadne
• Apollo XIII
• Fondo de contingencia de la compañía
• Lanzador espacial Columbus
• Teléfono rojo de la oficina oval de la Casa Blanca
• Registro de Impuestos Federales
44. Ejercicio 2
• En la siguiente lista, identificar cuales son atributos y cuales son clases. Intente asociar los atributos
con las clases a las que podrían pertenecer.
• Autopista
• Nombre
• Población
• Número
• Paciente
• Tratamiento
• Cantidad adeudada
• Enfermedad
• Período orbital
• País
• Coordenadas
• Ultima Fecha de paso
• Satélite
45. Otro ejemplo:
• Clase Objetos Responsabilidades
• Nombre
• Edad
• Niño Alejandro • Juguetes
• Cepillarse los dientes
• Avisar que tiene sueño
• Nombre
• Mamá Gloria • Dormir al niño
• Papá Alexis • Nombre
• Arrancar el carro
• Leer el periódico
• Cuidar a los niños
46. Actividades:
1. Identifique una clase que agrupe todos estos objetos
2. Agrupe diversos objetos en distintas clases
RB - 2004 46
49. Métodos
• Los métodos de una clase son funciones ó
procedimientos propios de la clase que pueden tener
acceso a los atributos de la misma para realizar las
operaciones para los que son programados.
• Cada método recibe ciertos parámetros y retorna su
resultado en un dato de cierto tipo, dependiendo de
estos parámetros que recibe el método y el tipo del
dato que retorna, podemos tener métodos con el
mismo nombre y serán diferenciados por el tipo de sus
parámetros (polimorfismo).
50. • Los parámetros o argumentos son una forma de
intercambiar información con el método. Pueden servir
para introducir datos para ejecutar el método (entrada)
o para obtener o modificar datos tras su ejecución
(salida).
• En <tipo retorno dato> se indica cuál es el tipo de dato
del objeto que el método devuelve, y si no devuelve
ninguno se ha de escribir void en su lugar.
• Como nombre del método se puede poner en
<nombreMétodo> cualquier identificador válido.
51. Definición de métodos en
Pseudocódigo
• Nombre_Método (parámetros): Tipo retorno dato
• Cuerpo del método
• Ejemplo:
• Método calcularFactorial (numero : entero) : entero
• Declaraciones Variables
• fac, i, numero:Entero
• Fac<-1;
• Para i<- 1 hasta numero hacer
• fac = fac * i
• FinFor
• retornar fac
• Fin Método calcularFactorial
52. Funciones en el paradigma
estructurado
• Nombre_funcion (lista_parametros): tipo de dato retorno
• Inicio
• declaración de variables.
• sentencias;
• ;
• ;
• regresa valor o expresión;
• Fin
53. Ejemplo
• CalcularFactorial(numero : entero) : entero
• Inicio
• Declaraciones Variables
• fac, i, numero:Entero
• Fac<-1;
• Para i<- 1 hasta numero hacer
• fac = fac * i
• FinFor
• retornar fac
• Fin calcularFactorial
54. Programación Orientada a Objetos
vs
Programación Estructurado
Los lenguajes de programación estructurada:
• Están orientados a acciones.
• La unidad de programación es la función.
La programación orientada a objetos:
• Encapsula datos (atributos) y métodos (comportamiento) en
objetos que están relacionados entre sí.
• La unidad de programación es la clase.