SlideShare una empresa de Scribd logo
1 de 26
Paradigmas de
Programación
UNIDAD 1
ING. ALVARO ENRIQUE RUANO
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
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.
https://www.youtube.com/watch?v=TMk1ZuTJEFs
Paradigma
¿Qué es un paradigma de
programación?
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.
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
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.
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.
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)
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.
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
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
PROGRAMACIÓN
ORIENTADA A OBJETOS
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.
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.
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
Objeto
Clase
● Es una abstracción de la realidad.
● Estructura que me permite crear objetos.
● Familia de elementos similares
● Una clase puede definir muchos objetos.
Clase
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.
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.
Notación de la POO
○ Representación Gráfica
Notación
completa
Notación
abreviad
a
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/
Gracias por su atención

Más contenido relacionado

La actualidad más candente

Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
yoiner santiago
 

La actualidad más candente (20)

Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Recursividad
RecursividadRecursividad
Recursividad
 
Fundamentos de Programación - Unidad III Control de Flujo
Fundamentos de Programación - Unidad III Control de FlujoFundamentos de Programación - Unidad III Control de Flujo
Fundamentos de Programación - Unidad III Control de Flujo
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Programacion Funcional
Programacion FuncionalProgramacion Funcional
Programacion Funcional
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
1 introduccion a la programacion 1
1 introduccion  a la programacion 11 introduccion  a la programacion 1
1 introduccion a la programacion 1
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Razonamiento monotono
Razonamiento monotonoRazonamiento monotono
Razonamiento monotono
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
 
Estructura de datos presentacion y sesion 1
Estructura de datos presentacion y sesion 1Estructura de datos presentacion y sesion 1
Estructura de datos presentacion y sesion 1
 

Similar a Paradigmas de programación

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
vnslgars
 
Paradigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a ObjetosParadigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a Objetos
Jose Sanchez
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
Libertad25
 
UNIDAD I Introduccion POO Daniel Rodriguez cruz
UNIDAD I Introduccion POO Daniel Rodriguez cruzUNIDAD I Introduccion POO Daniel Rodriguez cruz
UNIDAD I Introduccion POO Daniel Rodriguez cruz
Danny Rodriguez
 

Similar a Paradigmas de programación (20)

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
conceptos de la poo
conceptos de la pooconceptos de la poo
conceptos de la poo
 
Paradigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a ObjetosParadigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a Objetos
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Introducción al POO
Introducción al POOIntroducción al POO
Introducción al POO
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Programacion Orientada a Objetos con c++
Programacion Orientada a Objetos con c++Programacion Orientada a Objetos con c++
Programacion Orientada a Objetos con c++
 
Programación orientada-a-objetos
Programación orientada-a-objetosProgramación orientada-a-objetos
Programación orientada-a-objetos
 
Objetos: 1. paradigmas de programación
Objetos: 1. paradigmas de programaciónObjetos: 1. paradigmas de programación
Objetos: 1. paradigmas de programación
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 
Clase No.01.pptx
Clase No.01.pptxClase No.01.pptx
Clase No.01.pptx
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
 
UNIDAD I Introduccion POO Daniel Rodriguez cruz
UNIDAD I Introduccion POO Daniel Rodriguez cruzUNIDAD I Introduccion POO Daniel Rodriguez cruz
UNIDAD I Introduccion POO Daniel Rodriguez cruz
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
Introducción poo
Introducción pooIntroducción poo
Introducción poo
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 

Más de Alvaro Enrique Ruano

Más de Alvaro Enrique Ruano (18)

Resumen caso Enron
Resumen caso EnronResumen caso Enron
Resumen caso Enron
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y Shell
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...
 
Solución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareSolución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de software
 

Paradigmas de programación

  • 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.
  • 5. Paradigma ¿Qué es un paradigma de programación?
  • 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.
  • 20. Clase
  • 21.
  • 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/
  • 26. Gracias por su atención