Paradigmas de Prog
Paradigmas de Prog
Paradigmas de Prog
Programación
Orientada a
Objetos
PARADIGMAS DE PROGRAMACIÓN
Procedural / también :
Diseño de arriba hacia abajo.
Reutiliza código
Complejiza el código de la
aplicacion
Clasificación de Paradigmas
Ejemplo de lenguajes
Definición de Paradigma
Un paradigma de programación es un modelo básico de
diseño e implementación de programas, que permite
desarrollar software conforme a ciertos principios o
fundamentos específicos que se aceptan como válidos.
Otra definición lo expresa como un marco conceptual
que determina los bloques básicos de construcción de
software y los criterios para su uso y combinación.
En otras palabras, es una colección de modelos
conceptuales que juntos modelan el proceso de diseño,
orientan la forma de definir los problemas y, por lo
tanto, determinan la estructura final de un programa.
Nos sirven para:
Plantear modelos cercanos a la realidad que permitan abstraerse de
las especificaciones computacionales y lograr una relación lo más fluida
posibles entre el dominio de aplicación y el programa.
Diseñar implementaciones de manera que puedan ser extendidas y
modificadas con el mínimo impacto en el resto de su estructura, ante
cambios en la realidad o nuevos requerimientos.
Dar flexibilidad a las soluciones para que puedan ser reutilizadas en
múltiples contextos, incluso diferentes a los que les dieron origen.
Diseñar una articulación funcional adecuada de las diferentes entidades
que conforman el sistema.
Desarrollar un código claro, simple y compacto.
Construir soluciones genéricas que permitan abstraerse de las
particularidades propias de cada tipo de entidad de software y a la vez
atender a la especificidad de cada una de ellas.
Focalización de las funcionalidades y componentes del sistema para
poder trabajar sobre eficiencia.
Primeros paradigmas
Metodología Lenguaje
Estructurada Fortran, C, Pascal, Basic
Orientada a objetos (OOP) C++, Java, Smalltalk
Orientada a eventos VisualBasic
Programación Orientada a
Objetos
Definición:
La Programación Orientada a Objetos (OOP) es un
método de programación en el cual los programas se
organizan en colecciones cooperativas de objetos,
cada uno de los cuales representa una instancia de
alguna clase, y cuyas clases son, todas ellas,
miembros de una jerarquía de clases unidas mediante
relaciones de herencia.
Comentarios:
Usamos objetos en lugar de algoritmos como bloque fundamental
Cada objeto es una instancia de una clase
Las clases están relacionadas entre sí por relaciones tan
complejas como la herencia
Ventajas de la POO
Objeto:Clase Clase
Atributo1=valor Atributos
Atributo2=valor
... Operaciones
Conceptos OOP: Abstracción
Nos permite trabajar con la complejidad del mundo real
Resaltando los aspectos relevantes de los objetos de una clase
Ocultando los detalles particulares de cada objeto
Separaremos el comportamiento de la implementación
Es más importante saber qué se hace en lugar de cómo se
hace:
Un sensor de temperatura
Se define porque...
mide la temperatura
nos muestra su valor
se puede calibrar...
No sabemos... (no nos importa)
cómo mide la temperatura
de qué está hecho
cómo se calibra
Conceptos OOP: Abstracción
La abstracción no es única:
Estructura de objetos:
Jerarquía “parte de”
Relaciones de agregación
Está implementada de manera genérica en la estructura de clases
Conceptos OOP: Jerarquía
Ejemplo: Figuras planas y diagramas
Herencia múltiple
Un gráfico es algo que se
puede dibujar en 2D es una figura
es un gráfico
Un diagrama es un conjunto Agregación
de cuadrados y círculos
Conceptos OOP: Tipo
Figura plana
Escaleno
Herencia simple
Rectángulo Cuadrado
Superclase Subclase
Relación de Agregación
Ruedas
Relación de Instanciación
VectorColores VectorEnteros
<Color> <int>
Representaciones gráficas
Nos sirven para comunicarnos con otros usuarios o
desarrolladores.
Documentan nuestro sistema
Hay múltiples vistas y tipos de diagramas:
Estáticos
Diagramas de clases Los de los ejemplos
Diagramas de objetos
...
Dinámicos:
Diagramas de estado: Muestra el ciclo de vida de los objetos,
sistemas, etc...
Diagramas secuenciales: Muestra como los objetos interaccionan
entre ellos
...