Evolución de la Programación
Programación Secuencial
Un programa secuencial se refiere a cuando en un programa una orden se ejecuta tras otra hasta el término del programa.
Programación Estructurada
Es una forma de escribir programas de ordenador de manera clara. Para ello utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).
El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
- Secuencia
- Instrucción condicional
- Iteración (bucle de instrucciones) con condición al principio
Programación Orientada a Objetos
Es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.
La POO difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada sólo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
Programación Orientada a Eventos
Es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. Para entender la programación dirigida por eventos, podemos oponerla a lo que no es: mientras en la programación secuencial (o estructurada) es el programador el que define cuál va a ser el flujo del programa, en la programación dirigida por eventos será el propio usuario —o lo que sea que esté accionando el programa— el que dirija el flujo del programa.
Instancia
La palabra Instancia significa: Solicitud o Insistencia. Una instancia de un programa es una copia de una versión ejecutable del programa que ha sido escrito en la memoria del computador. Una instancia de un programa es creada típicamente por el clic de usuario en un icono de una interfaz Gráfica para usuarios GUI (interfaz gráfica del usuario) o por la entrada de un comando en una interfaz de línea de comandos CLI y presionando la tecla ENTER. Instancias de programas pueden ser creadas por otros programas.
Constructor
Los constructores son métodos o funciones que existen dentro de todos los objetos, y que se activan solamente en el momento de la creación del objeto. Los constructores sirven para definir los valores iniciales de las propiedades del objeto. También se dice que un constructor es una operación que crea un objeto y/o inicializa su estado.
Destructor
Es un método que se activa cuando el objeto desaparece. El destructor es único y sirve para que un objeto ejecute una acción (o grupo de acciones) antes de terminar su ciclo vital. Normalmente los objetos dejan de existir cuando salen de su ámbito (entorno) en donde fueron creados. Los destructores son importantes porque se activan automáticamente, y eximen al programador de la tarea de liberar los recursos tomados por el objeto, ya que normalmente esta es la tarea ejecutada por el destructor.
Objeto
Estructura compleja para el almacenamiento temporal de datos y su administración. Combina Atributos (Espacios de almacenamiento) y Métodos (rutinas para su administración).
Objeto Visual
Atributos Datos + Atributos de configuración (visible, posición…) + Métodos + Instancia gráfica.
Clases
Los objetos están organizados en familias claramente delimitadas. Una familia se reconoce porque reúne un grupo de objetos que heredan elementos entre sí. El modelo de programación visual, al igual que la naturaleza, organiza los objetos en clases (familias), así una clase es el conjunto de objetos que pertenecen a una misma familia.
Principios de la POO
Encapsulamiento
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Ocultamiento
Se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita. Esto da dos ventajas iniciales: Lo que hace el usuario puede ser controlado internamente (incluso sus errores), evitando que todo colapse por una intervención indeseada.
Polimorfismo
Se dice que el polimorfismo es la propiedad que indica literalmente, la posibilidad de que una entidad tome muchas formas, en términos prácticos el polimorfismo permite referirse a objetos de clases distintas mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento.
Herencia
Un objeto es heredero de otro cuando posee todas sus propiedades y todos sus métodos y reconoce todos sus eventos, aunque pueda disfrutar de propiedades, métodos y eventos adicionales. Se define la herencia como la característica que tienen los objetos de derivarse unos de otros. Por otra parte la herencia supone una clase base y una jerarquía de clases que contienen las clases derivadas de la clase base, así las clases derivadas pueden heredar las propiedades y métodos de una clase base, añadiendo sus propios métodos y propiedades, incluso cambiar aquellos elementos de la clase base que necesiten sean diferentes.
Política
Pase de mensajes
El mensaje es esencialmente una orden que se envía a un objeto para indicarle que realice alguna acción. También se define mensaje como la información completa que un objeto emisor transmite hacia un objeto receptor.
Un mensaje contiene tres elementos: el objeto receptor, el tipo de evento y los datos necesarios para el receptor.