Académique Documents
Professionnel Documents
Culture Documents
2013
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
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
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
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.
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)
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