Vous êtes sur la page 1sur 10

UNIVERSIDAD DE CUENCA

PARADIGMA DE PROGRAMACION ACTUALES


Lenguajes de Programacin
Nombre: Adrin Anguisaca Profesor: Ing. Magali Meja

2013

[Escriba la direccin de la compaa]

Introduccion:
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente. Todos estos lenguajes pueden ser clasicados en una jerarqua de familias a partir del modelo que siguen para denir y operar informaciones decir, que pueden ser jerarquizados segn el paradigma que siguen. Los paradigmas de programacin actuales tales como el Visual, el orientado a eventos y el orientado aspectos que analizaremos en este trabajo se encuentran dentro de la categora de programacin declarativa

Paradigma de Programacion Visual


Definicin
La programacin visual (visual programming) se refiere al desarrollo de software donde las notaciones grficas y los componentes de software manipulables interactivamente son usados principalmente para definir y componer programas. La programacin visual se define comnmente como el uso de expresiones visuales(tales como grficos, animacin o iconos) en el proceso de la programacin, pueden ser utilizadas para formar la sintaxis de los nuevos lenguajes de programacin visuales que conducen a los nuevos paradigmas tales como programacin por la demostracin; o pueden ser utilizadas en las presentaciones grficas del comportamiento o de la estructura de un programa.

Objetivo
El objetivo de la programacin visual es mejorar la comprensin de los programas y simplificar la programacin en s. Ms all, la programacin visual deber fomentar a los usuarios finales a construir sus propios programas, que de otra forma deben ser escritos por programadores profesionales

Ventajas
Mucha gente piensa y recuerda cosas en trminos de cuadros. Ella se relaciona con el mundo de una manera intrnsecamente grfica y utiliza imgenes como componente primario del pensamiento creativo Adems, los lenguajes de programacin textuales han demostrado ser algo difciles para que mucha gente creativa e inteligente aprenda utilizar con eficacia. La reduccin o eliminacin de la necesidad de traducir ideas visuales en representaciones textuales puede ayudar a atenuar este problema de la curva del aprendizaje. Adems, una variedad de aplicaciones, incluyendo la visualizacin cientfica y la simulacin interactiva se prestan bien a los mtodos visuales de desarrollo

Clasificacin
Lenguajes puramente visuales Sistemas hbridos de texto y elementos visuales Sistema de programacin por ejemplo (Programming-by-example) Sistemas orientados a restricciones (Constraint-oriented systems) Sistemas basados en formas (entradas tipo hoja de clculo animada)

Ejemplos
Dentro de lenguajes de programacin que hacen uso de este paradigma estn: Visual Basic.Net, Borland Delphi, visual caf, visual fox, java

Paradigma de Computacion en Nube


Definicin

Programacion

Por computacin en nube se entiende a aquella tecnologa que permite ofrecer servicios de computacin a travs de Internet, de manera que todo aquello que puede ofrecer un sistema informtico es ofrecido como servicio, al cual pueden a su vez acceder los usuarios sin que tengan conocimientos en la gestin de los diversos recursos que utilizan. Se puede concebir el cloud computing, especialmente desde un punto de vista algo ms tcnico, como un modelo de aprovisionamiento rpido de recursos IT que potencia la prestacin de servicios IT y servicios de negocio, facilitando a fin de cuentas la operativa del usuario final y del prestador del servicio.

Caractersticas

Auto-aprovisionamiento elstico:

Capacidad de computacin adicional siempre disponible cuando surgen las necesidades. En otras palabras, las capacidades de los servidores son

elsticas y pueden alquilarse o eliminarse en cualquier momento, auto-escalando de acuerdo a la carga necesaria.

Agilidad:

La agilidad del negocio es la habilidad de ste para adaptarse rpidamente y con un coste efectivo y responder a los cambios en el entorno del negocio. Computacin en la nube permite a los lderes del negocio disfrutar un nivel ms alto de TI y agilidad del negocio a la vez que mantienen la capacidad de re-aprovisionar infraestructura tecnolgica. Esquema orientado a servicios de TI: La computacin en la nube est orientada a las TI y a los servicios de negocio, en contraste con los sistemas tradicionales que estn orientados a los modelos de servidores. En vez de hundirse por la complejidad de la administracin de red de un entorno, la nube otorga agilidad al negocio y los usuarios podrn realizar las tareas administrativas ms rpido. Fiabilidad y tolerancia a fallos: Los entornos en la nube tienen redundancia interna ya implementada gracias al gran nmero de servidores que los constituyen. Beneficindose de la geo-redundancia, los servidores estn situados de forma estratgica en distintos lugares geogrficos para paliar los efectos de interrupcin del servicio. Pago basado en el consumo: Los usuarios slo pagan por los servicios que consumen, basndose tanto en subscripciones como en nmero de transacciones.
Guiado por SLAs:

Las nubes se gestionan dinmicamente basndose en SLAs (acuerdos de nivel de servicio) que definen polticas como los parmetros de distribucin, costes y otros factores adicionales.
APIs:

Las nubes virtualizan los recursos en un servicio, lo cual implica la necesidad de una API (interfaz de programacin de aplicaciones), desde la cual se controlarn y gestionarn los recursos.

Ventajas
Integracin probada de servicios Red. Por su naturaleza, la tecnologa de cloud computing se puede integrar con mucha mayor facilidad y rapidez con el resto de las aplicaciones empresariales (tanto software tradicional como Cloud Computing basado en infraestructuras), ya sean desarrolladas de manera interna o externa.3 Prestacin de servicios a nivel mundial. Las infraestructuras de cloud computing proporcionan mayor capacidad de adaptacin, recuperacin completa de prdida de datos (con copias de seguridad) y reduccin al mnimo de los tiempos de inactividad. Una infraestructura 100% de cloud computing permite al proveedor de contenidos o servicios en la nube prescindir de instalar cualquier tipo de hardware, ya que ste es provisto por el proveedor de la infraestructura o la plataforma en la nube. Un gran beneficio del cloud computing es la simplicidad y el hecho de que requiera mucha menor inversin para empezar a trabajar. Implementacin ms rpida y con menos riesgos, ya que se comienza a trabajar ms rpido y no es necesaria una gran inversin

Actualizaciones automticas que no afectan negativamente a los recursos de TI. Al actualizar a la ltima versin de las aplicaciones, el usuario se ve obligado a dedicar tiempo y recursos para volver a personalizar e integrar la aplicacin.

Desventajas
La centralizacin de las aplicaciones y el almacenamiento de los datos origina una interdependencia de los proveedores de servicios. La disponibilidad de las aplicaciones est ligada a la disponibilidad de acceso a Internet. Los datos "sensibles" del negocio no residen en las instalaciones de las empresas, lo que podra generar un contexto de alta vulnerabilidad para la sustraccin o robo de informacin. La confiabilidad de los servicios depende de la "salud" tecnolgica y financiera de los proveedores de servicios en nube. Empresas emergentes o alianzas entre empresas podran 4 crear un ambiente propicio para el monopolio y el crecimiento exagerado en los servicios. La disponibilidad de servicios altamente especializados podra tardar meses o incluso aos para que sean factibles de ser desplegados en la red.

Ejemplos
Dentro de las aplicaciones que hacen uso de este paradigma estn:
Dropbox - desarrollado por Dropbox Google Drive - desarrollado por Google SkyDrive - desarrollado por Microsoft

Paradigma de Programacion Orientada a Aspectos


Definicin
La Programacin Orientada a Aspectos (POA) es un paradigma de programacin relativamente reciente cuya intencin es permitir una adecuada modularizacin de las aplicaciones y posibilitar una mejor separacin de conceptos. Gracias a la POA se pueden encapsular los diferentes conceptos que componen una aplicacin en entidades bien definidas, eliminando las dependencias entre cada uno de los mdulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersin del cdigo y las implementaciones resultan ms comprensibles, adaptables y reusables. Varias tecnologas con nombres diferentes se encaminan a la consecucin de los mismos objetivos y as, el trmino POA es usado para referirse a varias tecnologas relacionadas como los mtodos adaptivos, los filtros de composicin, la programacin orientada a sujetos o la separacin multidimensional de competencias.

Objetivo

La idea central de la POA es permitir que un programa sea construido describiendo cada concepto (o incumbencia) separadamente. El soporte para este nuevo paradigma se logra a travs de una nueva clase de lenguajes, llamados lenguajes orientados a aspectos (LOA), los cuales brindan mecanismos para capturar y declarar aquellos elementos que se diseminan por todo el sistema (aspectos). Los LOA deben satisfacer varias propiedades deseables, entre las que se pueden mencionar: Cada aspecto debe ser claramente identificable. Cada aspecto debe auto contenerse. Los aspectos deben ser fcilmente modificables. Los aspectos no deben interferir entre ellos. Los aspectos no deben interferir con los mecanismos usados para definir y evolucionar la funcionalidad principal, como la herencia.

Otro objetivo importante del paradigma orientado a aspectos es la separacin de las funcionalidades dentro del sistema: Por un lado funcionalidades comunes utilizadas a lo largo de la aplicacin. Por otro lado, las funcionalidades propias de cada mdulo.

Elementos del paradigma


Un lenguaje para definir la funcin bsica, este se conoce como lenguaje base. Suele ser un lenguaje de propsito general como java o C++ etc. Uno o varios lenguajes de aspectos, un lenguaje de aspectos define la forma de los mismos Un tejedor de aspectos. El tejedor se encargara de combinar los lenguajes

Caractersticas
Resuelve problemas utilizando la separacin de incumbencias. AOP ofrece otra forma de estructurar los programas por medio del ensamblaje de cdigo que implementa cada incumbencia dentro de su propio mdulo Permiten la encapsulacin de los detalles de implementacin de las incumbencias. Separa la lgica de esas incumbencias de tal forma que no se mezcle con la lgica funcional propia de una aplicacin.

Ventajas
Ayuda a superar los problemas causados por el Cdigo Mezclado y Cdigo Diseminado Implementacin modular izada: POA logra separar cada concepto con mnimo acoplamiento, resultando en implementaciones Esto lleva a un cdigo ms limpio, menos duplicado, ms fcil de entender y de mantener. Mayor evolucionabilidad: La separacin de conceptos permite agregar nuevos aspectos, modificar y o remover aspectos existentes fcilmente. Uno puede retrasar las decisiones de diseo sobre requerimientos actuales o que surjan en el futuro, ya que permite, luego, implementarlos separadamente

Mayor reusabilidad: Al ser implementados separadamente, tiene mayores probabilidades de ser reusados en otros sistemas con requerimientos similares.

Desventajas
Posibles choques entre el cdigo funcional (expresado en el lenguaje base) y el cdigo de aspectos (expresados en los lenguajes de aspectos) Posibles choques entre los aspectos. Posibles choques entre el cdigo de aspectos y los mecanismos del lenguaje.

Paradigma de restricciones.
Definicin

programacion

con

Es un paradigma de la programacin en informtica, donde las relaciones entre las variables son expresadas en trminos de restricciones (ecuaciones). Actualmente es usada como una tecnologa de software para la descripcin y resolucin de problemas combinatorios particularmente difciles, especialmente en las reas de planificacin y programacin de tareas (calendarizacin). Este paradigma representa uno de los desarrollos ms fascinantes en los lenguajes de programacin desde 1990 y no es sorprendente que recientemente haya sido identificada por la ACM (Asociacin de Maquinaria Computacional) como una direccin estratgica en la investigacin en computacin. Se trata de un paradigma de programacin basado en la especificacin de un conjunto de restricciones, las cuales deben ser satisfechas por cualquier solucin del problema planteado, en lugar de especificar los pasos para obtener dicha solucin. La programacin con restricciones se relaciona mucho con la programacin lgica y con la investigacin operativa. De hecho cualquier programa lgico puede ser traducido en un programa con restricciones y viceversa

Dominios de aplicacin
Algunos dominios de aplicacin de este paradigma son: Dominios booleanos, donde solo existen restricciones del tipo verdadero/falso. Dominios en variables enteras y racionales. Dominios lineales, donde slo se describen y analizan funciones lineales. Dominios finitos, donde las restricciones son definidas en conjuntos finitos. Dominios mixtos, los cuales involucran dos o ms de los anteriores.

Ejemplos

La programacin con restricciones puede ser implementado como un lenguaje propio o como bibliotecas para ser usadas en algn lenguaje de programacin imperativo. Algunos lenguajes populares de programacin con restricciones son:
B-Prolog (Basado en Prolog, propietario) CHIP V5 (Basado en Prolog, tambin existen bibliotecas en C y C++, propietario) Ciao Prolog (Basado en Prolog, software libre: GPL/LGPL)

ECLiPSe(Basado en Prolog, software libre)


Mozart ( Basado en Oz, software libre: X11)

Paradigma de programacion dirigida por eventos


Definicin
La programacin dirigida por eventos es un paradigma de programacin en el que tanto la estructura como la ejecucin 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 programacin dirigida por eventos, podemos oponerla a lo que no es: mientras en la programacin secuencial o estructurada es el programador el que define cul va a ser el flujo del programa, en la programacin dirigida por eventos ser el propio usuario y lo que sea que est accionando el programa el que dirija el flujo del programa. Aunque en la programacin secuencial puede haber intervencin de un agente externo al programa, estas intervenciones ocurrirn cuando el programador lo haya determinado, y no en cualquier momento como puede ser en el caso de la programacin dirigida por eventos.

Caractersticas
Al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar bloqueado hasta que se produzca algn evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasar a ejecutar el cdigo del correspondiente administrador de evento. Puede emplearse tambin para desarrollar interfaces entre componentes de Software o mdulos del ncleo. La programacin orientada a eventos permite interactuar con el usuario en cualquier momento de la ejecucin.

Los programas creados bajo esta arquitectura se componen por un bucle exterior permanente encargado de recoger los eventos, y distintos procesos que se encargan de tratarlos

Patrones Usados
Los elementos estructurales de este patrn son: un flujo de datos llamados eventos, un despachador de eventos y un conjunto de manejadores. La funcin del despachador es tomar cada uno de los eventos que van llegando a l, analizar cada evento para determinar su tipo y finalmente enviar cada uno de stos a los respectivos manejadores quienes realizan alguna funcin de acuerdo al tipo de evento que estos puedan procesar. El despachador debe procesar un flujo de eventos entrantes, por lo que en la lgica de ste se debe incluir un bucle continuo para que el despachador pueda obtener cada evento que arribe, atenderlo y regresar al bucle para obtener y procesar el siguiente flujo de eventos entrante. Algunos sistemas software tales como aquellos que controlan hardware pueden tratar efectivamente flujos de eventos continuos infinitos. Sin embargo en la mayora de los sistemas dirigidos por eventos, los flujos de eventos son finitos

Problemtica
La programacin orientada a eventos supone una complicacin aadida con respecto a otros paradigmas de programacin, debido a que el flujo de ejecucin del software escapa al control del programador. En cierta manera podramos decir que en la programacin clsica el flujo estaba en poder del programador y era este quin decida el orden de ejecucin de los procesos, mientras que en programacin orientada a eventos, es el usuario el que controla el flujo y decide. Pongamos como ejemplo de la problemtica existente, un men con dos botones, botn 1 y botn 2. Cuando el usuario pulsa botn 1, el programa se encarga de recoger ciertos parmetros que estn almacenados en un fichero y calcular algunas variables. Cuando el usuario pulsa el botn 2, se le muestran al usuario por pantalla dichas variables. Es sencillo darse cuenta de que la naturaleza indeterminada de las acciones del usuario y las caractersticas de este paradigma pueden fcilmente desembocar en el error fatal de que se pulse el botn 2 sin previamente haber sido pulsado el botn 1. Aunque esto no pasa si se tienen en cuenta las propiedades de dichos botones, haciendo inaccesible la pulsacin sobre el botn 2 hasta que previamente se haya pulsado el botn 1.

Ejemplos
Web: JavaScript Escritorio Windows: Visual Basic, Visual C++ NET Framework (Escritorio Windows y Web): Visual Basic .NET, Visual C#, Visual J# y
Lxico

Conclusiones
Como conclusiones del siguiente trabajo podemos rescatar lo siguiente: Los lenguajes de programacin actuales no son del todo populares y usados hoy por hoy pero sin duda son los

paradigmas del futuro que irn remplazando poco a poco a los ms usados y comunes en la actualidad. Ha habido pequeos avances significativos en el desarrollo de metodologas y lenguajes de programacin, sin embargo estas metodologas han sido validadas nicamente con experimentos controlados, pero es importante recordar, que todos los paradigmas en un tiempo fueron bases para desarrollar nuevos y ms avanzados paradigmas los cuales hoy en da hacen ms fcil la comprensin y el desarrollo del lenguajes cualquiera que se utilice.

Bibliografa
http://www.buenastareas.com/ensayos/Paradigmas-De-Programaci%C3%B3nActuales/1726843.html http://es.scribd.com/doc/2469975/El-paradigma-de-la-programacion-visual http://www.buenastareas.com/ensayos/Programacion-Dirigida-Por-Eventos/4618913.html http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_nube

Vous aimerez peut-être aussi