Página principal

Paradigma de programación a nivel de valores


Descargar 37.35 Kb.
Fecha de conversión18.07.2016
Tamaño37.35 Kb.

Tendencias de Desarrollo del Software Guía 04 –Paradigmas de Desarrollo de Software Guía 04 –Paradigmas de Desarrollo de Software Tendencias de Desarrollo del Software

16

En la práctica, la diferencia entre una función matemática y la noción de una "función" utilizada en la programación imperativa es que las funciones imperativas pueden tener efectos secundarios, al cambiar el valor de cálculos realizados previamente.



Los lenguajes de programación funcional, especialmente los que son puramente funcionales, han sido enfatizados en el ambiente académico principalmente y no tanto en el desarrollo de software comercial. Sin embargo, lenguajes de programación importantes tales como Scheme, Erlang, Objective Caml y Haskel, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones. La programación funcional también es utilizada en la industria a través de lenguajes de dominio específico como R (estadística), Mathematica (matemáticas simbólicas), J y K (análisis financiero), F# en Microsoft.NET y XSLT (XML).

Paradigma de programación a nivel de valores

La programación a nivel de valores es unos de los dos paradigmas identificados por John Backus en su trabajo sobre los Programas como objetos matemáticos, siendo el otro la programación a nivel funcional. El término inicialmente utilizado por Backus fue el de programación a nivel de objetos, pero en la actualidad ese término traería confusión con la programación orientada a objetos. Los programas a nivel de valores describen como combinar diferentes valores (por ejemplo, números, caracteres, etc.) para formar nuevos valores hasta obtener el resultado final. Los nuevos valores se obtienen como resultado de la aplicación de operaciones que transforman valores en otros valores, como por ejemplo, la suma, la concatenación, la inversión de matrices, etc. Los lenguajes que siguen el estilo de von Neumann son de nivel de valores: las expresiones a la derecha de una asignación tienen por objeto la creación del nuevo valor a asignar.



Paradigma de programación orientada a componentes

La programación orientada a componentes (que también es llamada basada en componentes) es una rama de la ingeniería del software, con énfasis en la descomposición de sistemas ya conformados en componentes funcionales o lógicos con interfaces bien definidas usadas para la comunicación entre componentes.

Se considera que el nivel de abstracción de los componentes es más alto que el de los objetos y por lo tanto no comparten un estado y se comunican intercambiando mensajes que contienen datos.

Paradigma de la computación en la nube

Este paradigma requiere capítulo aparte y si algo define la computación mas moderna es la propuesta de colocar “todo” en la nube: los sistemas operativos, los programas y los datos.

Actualmente las nubes –dropbox, megacloud, google drive, skydrive, mega, etc. se usan como soporte de copias (backup) y menos en su sentido integral definido por Sun/Oracle: “la nube es el computador”.
13

Paradigmas Avanzados de Desarrollo de Software

Introducción

Se consideran como paradigmas avanzados, aquellos que prescinden definitivamente de la programación basada en órdenes (imperativo) en declaraciones (declarativos) o estructuras (estructurados).

El paradigma como un «modelo» de la realidad, requiere adaptaciones dinámicas que tienen complejidades y niveles de dificultad y adaptación de la empresa, la industria y la academia del software a cambios radicales (costosos).

Paradigma de programación orientada a objetos, Paradigma de programación dirigida por eventos, Paradigma de programación modular, Paradigma de programación orientada a aspectos, Paradigma de programación con restricciones, Paradigma de programación a nivel funcional (John Backus), Paradigma de programación a nivel de valores (John Backus)Paradigma de programación orientada a componentes y La computación en la nube



Paradigma de programación orientada a objetos

El problema

En la actualidad, la programación utiliza un paradigma orientado a objetos, este se popularizo a principios de 1990 y consiste en organizar los programas de modo que reflejen la forma en que los objetos en el mundo real se encuentran organizados. 

Quizá diariamente estamos en contacto con un equipo de cómputo, usando sus aplicaciones y programas, para facilitar nuestras tareas. Pero pocas veces nos ponemos a pensar en la forma que fue creado y programado dicho software.

La contratación de “los 3 amigos” por las grandes empresas de Software de EEUU: Jacobson Ikvar y Booch con la finalidad de estudiar y crear OMG (Object Management Group) y cuyo propósito, basado en conceptos y estudios previos de cada una de sus empresas se resume en generar un nuevo paradigma de programación, denominado OOP.



La Programación Orientada a Objetos expresa un programa como un conjunto de objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar. Está basado en varias técnicas, incluyendo miembros (métodos, datos y valores) y principios (herencia, modularidad, polimorfismo y encapsulamiento). 

Objetos


Clases

Miembros (métodos, datos y valores)

Principios(herencia, modularidad, polimorfismo y encapsulamiento). 

Paradigma de programación dirigida por eventos

La programación dirigida por 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:



14

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.

Aunque en la programación secuencial puede haber intervención de un agente externo al programa, estas intervenciones ocurrirán cuando el programador lo haya determinado, y no en cualquier momento como puede ser en el caso de la programación dirigida por eventos.

El creador de un programa dirigido por eventos debe definir los eventos que manejarán su programa y las acciones que se realizarán al producirse cada uno de ellos, lo que se conoce como el administrador de evento. Los eventos soportados estarán determinados por el lenguaje de programación utilizado, por el sistema operativo e incluso por eventos creados por el mismo programador.

Ejemplo de programa orientado a eventos en pseudo lenguaje:

mientras (verdadero){

Switche (evento){

caso mousse_button_down:

caso mouse_click:

caso keypressed:

caso Else:

}

}



Paradigma de programación modular

La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que ésta puede resolver.

Al aplicar la programación modular, un problema complejo debe ser dividido en varios sub problemas más simples, y estos a su vez en otros sub problemas más simples. Esto debe hacerse hasta obtener sub problemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down).

Un módulo es cada una de las partes de un programa que resuelve uno de los sub problemas en que se divide el problema complejo original. 

Paradigma de programación orientada a aspectos

La Programación Orientada a Aspectos (POA) es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de incumbencias. Gracias a la POA se pueden encapsular los diferentes conceptos

15

que componen una aplicación en entidades bien definidas, eliminando las dependencias entre cada uno de los módulos.

De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersión del código y las implementaciones resultan más comprensibles, adaptables y reusables.

Varias tecnologías con nombres diferentes se encaminan a la consecución de los mismos objetivos y así, el término POA es usado para referirse a varias tecnologías relacionadas como los métodos adaptativos, los filtros de composición, la programación orientada a sujetos o la separación multidimensional de competencias.

Paradigma de programación con restricciones

La Programación por restricciones  es un paradigma de la programación en informática, donde las relaciones entre las variables son expresadas en términos de restricciones (ecuaciones).

Actualmente es usada como una tecnología de software para la descripción y resolución de problemas combinatorios particularmente difíciles, especialmente en las áreas de planificación y programación de tareas (calendarización).

Este paradigma representa uno de los desarrollos más fascinantes en los lenguajes de programación desde 1990 y no es sorprendente que recientemente haya sido identificada por la ACM (Asociación de Maquinaria Computacional) como una dirección estratégica en la investigación en computación.

Se trata de un paradigma de programación basado en la especificación de un conjunto de restricciones, las cuales deben ser satisfechas por cualquier solución del problema planteado, en lugar de especificar los pasos para obtener dicha solución.

La programación con restricciones se relaciona mucho con la programación lógica y con la investigación operativa.

De hecho cualquier programa lógico puede ser traducido en un programa con restricciones y viceversa. Muchas veces los programas lógicos son traducidos a programas con restricciones debido a que la solución es más eficiente que su contraparte.
Paradigma de programación a nivel funcional

En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los 1930s 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.


www.dariolara.com www.dariolara.com


La base de datos está protegida por derechos de autor ©espanito.com 2016
enviar mensaje