Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Introducción a los paradigmas de programación
Creado por Ing. Alvaro Enrique Ruano
2. Contenido
● Paradigmas de programación
o Imperativos(procedimentales)
o Declarativos
o Orientados a objetos
● Metodologías de programación
o Programación estructurada
o Programación orientada a objetos
3. Paradigma
● Conjunto de unidades que pueden sustituir a otra en un mismo
contexto porque cumplen la misma función.
● Una forma de hacer las cosas
● Término de origen griego, "paradigma", que significa modelo o
patrón.
● Es el resultado de los usos, y costumbres, de creencias establecidas y
aceptadas a través del tiempo.
● Forma en la que observamos el mundo.
6. Paradigmas de Programación
● Conjunto de métodos y herramientas que
se utilizan en todo el proceso de
construcción de un programa (diseño,
codificación, etc).
● Nos indican las formas que han sido
aceptadas como estilos para resolver
problemas a través de la programación.
7. Paradigmas de Programación
● Un paradigma de programación representa un
enfoque particular o filosofía para diseñar
soluciones.
● Tipos de Paradigma:
o Imperativo
o Declarativo
o Estructurado
o Computación en la Nube
o Programación Orientada a Aspectos
o Orientado a Objetos
8. Imperativa
● Define la programación como: Desarrollo de una
secuencia de órdenes (comandos o instrucciones) que
manipulan los datos para producir resultados.
● Las instrucciones se ejecutan una por una, de principio a
fin, de forma secuencial excepto cuando existen
instrucciones de salto de secuencia.
● Enfatizada en los algoritmos.
● Ejemplos de lenguajes: Fortran, Cobol, Pascal, Basic, C.
9. Declarativa
● Solicita al programador que describa o “declare” el
problema (condiciones, proposiciones, afirmaciones,
restricciones, ecuaciones o transformaciones) en lugar de
encontrar una solución algorítmica al mismo.
● Utiliza el principio del razonamiento lógico para responder
a las preguntas o cuestiones consultadas al computador.
10. Declarativa
● El razonamiento lógico se basa en la deducción.
● Existen varios subtipos:
o Programación Funcional (Haskell, F# y Funciones Excel)
o Programación Lógica (Prolog)
o Programación Algebraica (SQL)
● Ejemplo: Prolog, Haskell y SQL (bases de datos)
11. Estructurada
● Es un tipo de programación Imperativa.
● Inicia en las décadas de los 60’s y 70’s.
● Produce programas bien escritos y legibles.
● Se basa en modularización, haciendo uso del
principio de DIVIDE Y VENCERÁS.
12. Estructurada
● El diseño estructurado también se conoce
como:
o Diseño descendente (top-down)
o Diseño ascendente (bottom-up)
o Refinamiento sucesivo
o Programación modular
13. Estructurada
Problemas:
● Al hacerse más grande el programa es difícil
mantener la modularidad.
● Modelo deficiente del mundo real.
● Las funciones tienen acceso ilimitado a las
variables globales.
● Ejemplo: Pascal, C , Borlan
15. POO
● Es el paradigma más utilizado en la actualidad.
● Guarda analogía con la vida real.
● Se basa en diseño y construcción de objetos que
se componen a su vez de datos y operaciones
que manipulan esos datos.
16. POO
● Todo gira en base a la definición de objetos, abstraídos
del mundo real.
● El programa se organiza como un conjunto finito de
éstos objetos, con sus atributos y métodos,
comunicándose entre sí a través de mensajes.
● Ejemplos: C++, C#, Smalltalk, Objective-C y Java.
17. Objeto
● Un objeto es un elemento autosuficiente de un
programa de computadora que representa un
grupo de características relacionadas y diseñado
para cumplir una tarea específica.
● Esta compuesto por:
o Propiedades / Atributos: Características del objeto
o Funciones: Acciones que puede realizar el objeto
19. Clase
● Es una abstracción de la realidad.
● Estructura que me permite crear objetos.
● Familia de elementos similares
● Una clase puede definir muchos objetos.
22. Características de la POO
● Abstracción: Aislar un elemento para seleccionar sus
características más relevantes y comportamientos comunes.
● Encapsulamiento: Reunir a todas las características
pertenecientes a un elemento en un mismo nivel de
abstracción.
● Ocultación de datos: Permite separar los elementos internos
al objeto de los externos, dando acceso externo únicamente
a las funciones del objeto y no a su especificación. Se utiliza
en conjunto con el encapsulamiento.
23. Características de la POO
● Herencia: Las clases se encuentran asociadas,
formando una jerarquía de clasificación. Los objetos
pueden heredar de sus “padres” los atributos y
métodos que contienen, permitiendo el reuso de
código previamente desarrollado.
● Polimorfismo: Se permite que comportamientos
distintos, asociados a distintos tipos de objetos,
sean llamados por un mismo nombre. Así mismo
permite que una misma colección sea compuestas
por objetos de distintos tipos.
24. Notación de la POO
○ Representación Gráfica
Notación
completa
Notación
abreviad
a
25. Notación de la POO
La referencia que se utilizará para la
generación de diagramas de clases, será la
especificada por IBM, ya que no está apegada
a ningún lenguaje de programación específico,
sino que cumple el estándar UML:
● http://www.ibm.com/developerworks/rati
onal/library/content/RationalEdge/sep04/b
ell/