Indus

Software captura de pantalla:
Indus
Detalles de software:
Versión: 0.8
Fecha de carga: 3 Jun 15
Licencia: Libre
Popularidad: 14

Rating: 5.0/5 (Total Votes: 1)

Indus es un esfuerzo por proporcionar una colección de programa analiza y las transformaciones implementadas en Java para personalizar y adaptar los programas de Java. Indo está destinado a servir como un paraguas para:
* Estática analiza tales como puntos a análisis, escapan análisis, y analiza la dependencia,
* transformaciones tales como rebanar programa y especialización programa a través de la evaluación parcial y
* Cualquier módulo de software que ofrece los análisis / transformaciones en una aplicación concreta, como la Bandera o plataforma como Eclipse.
En la actualidad, hay 3 módulos que forman parte del Indo. Se espera que se añaden en el transcurso de tiempo de más módulos. Ofrecemos una visión general de la intención de cada módulo que están disponibles en la actualidad.
Indus es un módulo que alberga la aplicación relacionada con los algoritmos y estructuras de datos comunes a los análisis y las transformaciones que son parte o están previstas para ser parte del Indo. Este módulo contiene definición de interfaz común a la mayoría de los análisis y transformaciones para proporcionar un marco en el que varias implementaciones de análisis / transformaciones se pueden combinar para formar sistemas con facilidad. Por lo tanto, este módulo se actualiza cuando un nuevo tipo de análisis / transformación se implementa como un módulo en Indus. Sin embargo, una nueva aplicación de un análisis / transformación no afectará a este módulo, ya que implementará una interfaz existente.
StaticAnalyses módulo está destinado a ser la colección de estática análisis tales como análisis de objeto de flujo, análisis de escapar, y analiza la dependencia. Los análisis de este módulo utilizan interfaces e implementaciones comunes de Indo y pueden definir / proporcionar nuevas interfaces / implementaciones específicas para nuevos análisis. Los análisis existentes se mencionan a continuación.
* Análisis de objetos de flujo (OFA) es un puntos de análisis para Java. Cada sitio de la asignación en el sistema analizado es tratado como un objeto abstracto y su flujo a través del sistema se realiza un seguimiento para inferir los tipos posibles de un receptor en un sitio llamado para permitir la construcción de una llamada-gráfico preciso. La precisión del análisis se puede variar en términos de flujo-sensibilidad para las variables locales del método y objeto-sensibilidad para los campos de instancia.
* Análisis de Escape es una implementación extendida del análisis de escape propuesto por Ruf con el propósito de interferencia poda y bordes de dependencia listos. Las extensiones están en la forma de la adición perfecta de la equivalencia de valor en el análisis para mejorar la detección de campo conflictivo lecturas / escrituras que ocurren en diferentes hilos más allá de sólo utilizando el tipo de la igualdad de las primarias de las expresiones de acceso. El análisis también utiliza la información de los objetos de flujo ortogonal para mejorar aún más la precisión.
* Análisis de dependencia es una colección de dependencia análisis: control basado en la entrada, el control basado en la salida, los datos basados ​​en identificador, los datos de base de referencia, la interferencia, listo, sincronización, y la divergencia, requeridos por análisis / transformaciones tales corte en lonchas y evaluación del programa parcial . Interferencia y dependencia Listo análisis depende del análisis de escape anterior, mientras que los datos de base de referencia y la dependencia de la sincronización de los análisis depende de la información objeto de flujo y la información de llamada-gráfico calculado. Algunos análisis tienen diferentes niveles de precisión que se pueden variar a través de una interfaz bien definida.
* Side-Effect Analysis proporciona información a nivel de método de efectos secundarios. El usuario puede consultar si alguno de los argumentos / parámetros a una llamada de sitio / método se verán afectados directamente (miembros inmediatos) o indirectamente (de forma recursiva miembros alcanzables). Del mismo modo, el usuario puede proporcionar un camino de acceso a datos con raíz en argumentos / parámetros a una llamada-site / método y consulta si el punto final de la ruta de acceso de datos se ve afectado por la llamada / método.
* Monitor de anlaysis es un análisis simple que ofrece el monitor / información gráfica de bloqueo para el sistema dado.
* Análisis Safe Lock es un análisis que descubre de manera conservadora si un bloqueo (monitores) no se llevará a cabo de forma indefinida. Esta información se utiliza en conjunción con dependencias temporales steming para Object.wait () y Object.notify () / Object.notifyAll () como se hace en dependencia listo.
* Análisis atomicidad proporciona información acerca de la atomicidad en el sistema dado. Aplicación actual se basa en el análisis de escape de predecir si una declaración puede ser ejecutada atómicamente. Esta información se utiliza para detectar región atómica de códigos. Esta información es útil en aplicaciones tales como modelo de comprobación para reducir el tamaño del espacio de estado, por lo tanto, mejorar el rendimiento.
Algunos análisis pueden ser lo suficientemente grande como para constituir módulo por su cuenta y esos análisis serán alojados como los diferentes módulos en Indo en lugar de ser consumida por este módulo.
Módulo Java Programa Slicer contiene la implementación del núcleo del programa de la máquina de cortar de Java junto con adaptadores que entregan la máquina de cortar en otras aplicaciones como la Bandera y Eclipse. La implementación se Architected como una biblioteca de más que como una aplicación para facilitar la reutilización de la misma de las subpartes. El núcleo es independiente de la aplicación; Los requerimientos de cada aplicación de la rebanada puede ser satisfecha mediante la codificación de hasta implementaciones de interfaces de post-procesamiento y enganchando en estas implementaciones para formar una máquina de cortar a medida.
Este módulo se basa en gran medida en la información proporcionada por la dependencia de análisis y también la llamada-gráfico proporcionado por OFA a través de interfaces bien definidas que permiten implementaciones externas que se utilizarán para cortar.
Esta aplicación de la máquina de cortar se entrega a Eclipse con una interfaz de usuario intuitiva a través de Kaveri plugin.
Características: o
Generación rebanada hacia atrás y hacia adelante. Rebanadas completas (unión de atrás y hacia adelante
rebanadas a partir de los mismos criterios de división) se pueden generar.
* Apoyo a residualize rebanadas (apropiados) en archivos ejecutables de clase.
* Soporte para rebanar contextual a través de ricos especificación de criterios rebanada contexto.
* Soporte para restringir el corte a una parte particular del sistema por las especificaciones de alcance.
* Soporte para serializar criterios rebanada, configuraciones de la máquina de cortar, y rodajas.
Todos los módulos de trabajo del proyecto Indus en Jimple, una representación intermedia de Java, proporcionados por toolkit hollín de grupo Sable en la Universidad McGill. Cada módulo en el proyecto será expuesto como uno o más plugins de Eclipse si la información proporcionada es útil para el usuario y susceptible para el consumo del usuario a través de una interfaz gráfica de usuario.
Ingeniería de Software Filosofía
Cada módulo en este proyecto proporcionará sólo la funcionalidad requerida a través de interfaces bien definidas que se pueden implementar para montar un sistema personalizado con extensiones adecuadas que cumplan con el requisito específico. A medida que la interfaz está claramente separada de la aplicación, cualquier aplicación externa que proporciona la interfaz requerida se puede utilizar sin problemas con los módulos de este proyecto.
Fondo
La aplicación de la mayoría de los análisis se vio impulsado por las exigencias del programa de la máquina de cortar de Java requeridos por Bandera. Sin embargo, como la máquina de cortar el programa podría ser utilizado fuera de Bandera y los análisis podría utilizarse para habilitar otras transformaciones como la especialización programa a través de la evaluación parcial, nos trasladamos los análisis y transformaciones en un nuevo proyecto llamado Indo.

Comentarios a la Indus

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!