Estructurado: es un paradigma de programación orientado a mejorar la claridad,
calidad y tiempo de desarrollo de un programa de computadora, utilizando
únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e
iteración (bucles for y while), considerando innecesario y contraproducente el uso de
la instrucción de transferencia incondicional (GOTO), que podría conducir a "código
espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de
muchos errores de programación.
EJEMPLO
POO: es una forma de programar que trata de encontrar una solución a estos problemas. Introduce
nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos
CARACTERISTICAS
ABSTRACCIÓN: Denota las características esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con
otros objetos en el sistema sin revelar "cómo" se implementan estas características. Los
procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo
están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso
de abstracción permite seleccionar las características relevantes dentro de un conjunto
e identificar comportamientos comunes para definir nuevos tipos de entidades en el
mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a
objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que
permitan modelar la realidad o el problema que se quiere atacar.
HERENCIA: Por ejemplo, herencia de la clase C a la
clase D, es la facilidad mediante la cual la clase D
hereda en ella cada uno de los atributos y
operaciones de C, como si esos atributos y
operaciones hubiesen sido definidos por la
misma D. Por lo tanto, puede usar los mismos
métodos y variables públicas declaradas en C. Los
componentes registrados como "privados"
(private) también se heredan, pero como no
pertenecen a la clase, se mantienen escondidos
al programador y sólo pueden ser accedidos a
través de otros métodos públicos. En el caso de
los componentes registrados como "protegidos"
(protected) también se heredan, pero solo para
esa clase, no para futuras clases heredadas. Esto
es así para mantener hegemónico el ideal de
POO.
ENCAPSULAMIENTO: Significa reunir
todos los elementos que pueden
considerarse pertenecientes a una
misma entidad, al mismo nivel de
abstracción. Esto permite aumentar
la cohesión (diseño estructurado) de
los componentes del sistema.
Algunos autores confunden este
concepto con el principio de
ocultación, principalmente porque
se suelen emplear conjuntamente.
POLIMORFISMO:
Comportamientos diferentes,
asociados a objetos distintos,
pueden compartir el mismo
nombre; al llamarlos por ese
nombre se utilizará el
comportamiento
correspondiente al objeto que
se esté usando. O, dicho de
otro modo, las referencias y las
colecciones de objetos pueden
contener objetos de diferentes
tipos, y la invocación de un
comportamiento en una
referencia producirá el
comportamiento correcto para
el tipo real del objeto
referenciado. Cuando esto
ocurre en "tiempo de
ejecución", esta última
característica se llama
asignación tardía o asignación
dinámica.
CONCEPTOS FUNDAMENTALES:
METODO:: Algoritmo asociado a un objeto (o a una clase de
objetos), cuya ejecución se desencadena tras la recepción de
un "mensaje". Desde el punto de vista del comportamiento,
es lo que el objeto puede hacer. Un método puede producir
un cambio en las propiedades del objeto, o la generación de
un "evento" con un nuevo mensaje para otro objeto del
sistema.
ATRIBUTO: Características que tiene la clase.
CLASE: Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La
instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.
OBJETO: Instancia de una clase. Entidad provista de un conjunto de
propiedades o atributos (datos) y de comportamiento o funcionalidad
(métodos), los mismos que consecuentemente reaccionan a eventos. Se
corresponden con los objetos reales del mundo que nos rodea, o con objetos
internos del sistema (del programa).
Funcional: es un paradigma de programación declarativa basado en el
uso de funciones matemáticas, en contraste con la programación
imperativa, que enfatiza los cambios de estado mediante la mutación de
variables. La programación funcional tiene sus raíces en el cálculo
lambda, un sistema formal desarrollado en los años 1930 para investigar
la definición de función, la aplicación de las funciones y la recursión.
Muchos lenguajes de programación funcionales pueden ser vistos como
elaboraciones del cálculo lambda.