Lenguaje+Rapide


 * Grupo Nº 5**


 * = //**Nombre y Apellido**// ||= //**Cédula de Identidad**// ||
 * = José Rangel ||= 15308753 ||
 * = Mayra Márquez ||= 17863939 ||
 * = Yesenia Pérez ||= 14712502 ||
 * = Yunnio Herrera ||= 14550243 ||



El lenguaje Rapide fue propuesto por la ARPA (Advanced Research Projects Agency) en 1990 como el diseño de un lenguaje para la producción de prototipos de sistemas, con herramientas de soporte para la simulación y el análisis. Rapide es un lenguaje de simulación basado en eventos de soporte para la adición y eliminación dinámica de componentes predeclarados; Rapide es un lenguaje orientado a objetos concurrente basado en eventos diseñado para simular y analizar el comportamiento de arquitecturas de sistemas distribuidos. Las especificaciones Rapide están compuestas por especificación de tipos para interfaces de componentes, especificaciones arquitectónicas para aquellas conexiones permitidas entre los componentes del sistema. Caracterizado como un lenguaje de descripción de sistemas de propósito general que permite modelar interfaces de componentes y su conducta observable. Sería tanto un ADL como un lenguaje de simulación. La estructura de Rapide es sumamente compleja, y en realidad articula cinco lenguajes: el lenguaje de tipos describe las interfaces de los componentes; el lenguaje de arquitectura describe el flujo de eventos entre componentes; el lenguaje de especificación describe restricciones abstractas para la conducta de los componentes; el lenguaje ejecutable describe módulos ejecutables; y el lenguaje de patrones describe patrones de los eventos. Los diversos sub-lenguajes comparten la misma visibilidad, scoping y reglas de denominación, así como un único modelo de ejecución.En Rapide una arquitectura consiste de un conjunto de especificaciones de módulos (llamadas interfaces), un conjunto de reglas de conexión que definen la comunicación directa entre las interfaces y un conjunto de restricciones formales que definen los patrones legales y / o ilegales de comunicación.

**Objetivo Principal.**

Simulación y determinación de la conformidad de una arquitectura.

**Interfaces.**

En Rapide los puntos de interfaz de los componentes se llaman constituyentes.

**Conectores.**

Siendo lo que Medvidovic (1996) llama un lenguaje de configuración //inline//, en Rapide (al igual que en Darwin) no es posible poner nombre, sub-tipear o reutilizar un conector.

**Semántica.**

Mientras muchos lenguajes de tipo ADL no soportan ninguna especificación semántica de sus componentes más allá de la descripción de sus interfaces, Wright y Rapide permiten modelar la conducta de sus componentes. Rapide define tipos de componentes (llamados interfaces) en términos de una colección de eventos de comunicación que pueden ser observados (acciones externas) o iniciados (acciones públicas). Las interfaces de Rapide definen el comportamiento computacional de un componente vinculando la observación de acciones externas con la iniciación de acciones públicas. Cada especificación posee una conducta asociada que se define a través de conjuntos de eventos parcialmente ordenados (posets); Rapide utiliza patrones de eventos para identificar posets, de manera análoga a la del método match de las expresiones regulares de .NET Framework. Para describir comportamientos Rapide también implementa un lenguaje cuyo modelo de interfaz se basa en Standard ML, extendido con eventos y patrones de eventos.

**Análisis y Verificación Automática.**

 En Rapide, el monitoreo de eventos y las herramientas nativas de filtrado facilitan el análisis de arquitectura. También es posible implementar verificación de consistencia y análisis mediante simulación. En esencia, en Rapide toda la arquitectura es simulada, generando un conjunto de eventos que se supone es compatible con las especificaciones de interfaz, conducta y restricciones. La simulación es entonces útil para detectar alternativas de ejecución.

 Rapide también proporciona una caja de herramientas específica para simular la arquitectura junto con la ejecución de la implementación. Sin embargo (como ha señalado Medvidovic en su survey) un proceso de ejecución solamente provee una idea del comportamiento con un juego particular de variables (un poset en particular), antes que una confirmación de la conducta frente a todos los valores y escenarios posibles. Esto implica que una corrida del proceso de simulación simplemente testea la arquitectura, y no proporciona un análisis exhaustivo del escenario. Nada garantiza que no pueda surgir una inconsistencia en una ejecución diferente. En general, la arquitectura de software mantiene una actitud de reserva crítica frente a la simulación. Escribe Paul Clements: “La simulación es inherentemente una herramienta de validación débil en la medida que sólo presenta una sola ejecución del sistema cada vez; igual que el testing, sólo puede mostrar la presencia antes que la ausencia de fallas. Más poderosos son los verificadores o probadores de teoremas que son capaces de comparar una aserción de seguridad contra todas las posibles ejecuciones de un programa simultáneamente”.

**Interfaz Gráfica.**

<span style="color: #000000; display: block; font-family: 'times new roman',times,serif; font-size: 120%; text-align: justify;">Rapide soporta notación gráfica.

<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; text-align: center;">**Soporte de Lenguajes.**

<span style="display: block; font-family: 'times new roman',times,serif; font-size: 120%; text-align: justify;"> Rapide soporta construcción de sistemas ejecutables e specificados en VHDL, C. C++, Ada y Rapide mismo. <span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; line-height: 24px; text-align: center;">** Ejemplos. **

<span style="display: block; font-family: 'times new roman',times,serif; font-size: 120%; line-height: 24px; text-align: justify;">El siguiente es un ejemplo próximo a nuestro caso de referencia de tubería y filtros, sólo que en este caso es bidireccional, ya que se ha definido una respuesta de notificación. Rapide no contempla estilos de la misma manera que la mayor parte de los otros ADLs. Nótese que Rapide establece tres clases de conexiones; el conector correspondiente a una conexión de tipo pipe es:





<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; text-align: center;">**Generación de Código****.**

<span style="color: #000000; display: block; font-family: 'times new roman',times,serif; font-size: 120%; text-align: justify;">Rapide puede generar código C, C++ y Ada.

<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; text-align: center;">**Observaciones.**

<span style="color: #000000; display: block; font-family: 'times new roman',times,serif; font-size: 120%; text-align: justify;">En materia de evolución y soporte de sub-tipos, Rapide soporta herencia, análoga a la de los lenguajes OOP.

<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; text-align: center;">**Implementación de Referencia.**

<span style="color: #000000; display: block; font-family: 'times new roman',times,serif; font-size: 120%; text-align: justify;">Aunque se ha señalado su falta de características de escalabilidad, Rapide se ha utilizado en diversos proyectos de gran escala. Un ejemplo representativo es el estándar de industria X/Open Distributed Transaction Processing.

<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; text-align: center;">**Disponibilidad de Plataforma.**

<span style="color: #000000; display: block; font-family: 'times new roman',times,serif; font-size: 120%; text-align: justify;">Rapide ha desarrollado un conjunto de herramientas que sólo se encontraba disponible para Solaris 2.5, SunOS 4.1.3. y Linux. Este //toolset// no ha evolucionado desde 1997, y tampoco ha avanzado más allá de la fase de prototipo.

<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: 'times new roman',times,serif; font-size: 130%; text-align: center;">**Comparación de ADLs Rapide con otros ADLs.**



<span style="color: #000000; display: block; font-family: 'times new roman',times,serif; font-size: 19.2px; text-align: justify;">//**REFERENCIAS.**//
 * 1) ======Lenguaje Rapide======
 * 2) ======Lenguaje Rapide1======
 * 3) ======<span style="font-family: 'Times New Roman',Times,serif; font-size: 120%;">Lenguaje Rapide2 ======
 * 4) ======ADLs Rapide======
 * 5) ======ADLs Rapide1======
 * 6) ======ADLs Rapide2======



media type="custom" key="15440104" align="right" media type="custom" key="15440566" align="right"

media type="custom" key="15441400"

media type="custom" key="15440768" align="left"
media type="facebooklike" key="http%3A%2F%2Farquitecturasoftwareunellez.wikispaces.com%2FLenguaje%20Rapide" width="360" height="64" align="center"





=<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: Arial,Helvetica,sans-serif; text-align: center;"> **Prototipo de un Sistema de Análisis de Consumo del Departamento de Incremento en Ventas de Corpoelec Zona Barinas.** =

<span style="background-color: #c0c0c0; color: #0000ff; display: block; font-family: Arial,Helvetica,sans-serif; text-align: center;"> **Descripción del Sistema**
 * = //**Nombre y Apellido**// ||= //**Cédula de Identidad**// ||
 * = José Rangel ||= 15308753 ||
 * = Mayra Márquez ||= 17863939 ||
 * = Yesenia Pérez ||= 14712502 ||
 * = Yunnio Herrera ||= 14550243 ||

Este sistema se utulizó tanto en la oficina de Incremento en Ventas como en la oficina Comercial de Corpoelec-Barinas, su función era analizar los estados de consumo eléctrico de sus usuarios, con el fin de detectar anomalias tanto en el servicio como en la conexión del suscriptor, a través de reportes generados por la herramienta, tambien fue de gran utilidad dentro del programa de actualización de datos de suscriptores como instrumento de captación de data de usuarios.