Indus

Screenshot Software:
Indus
Detalii soft:
Versiune: 0.8
Incarca data: 3 Jun 15
Licenţă: Gratuit
Popularitate: 14

Rating: 5.0/5 (Total Votes: 1)

Indus este un efort de a oferi o colecție de analize program și transformări implementate în Java pentru a personaliza și adapteze programele Java. Indus este destinat pentru a servi ca o umbrelă pentru:
* Analizează cum static ca puncte-analizei, analiza de evacuare, si analize dependență,
* transformări, cum ar fi felierea program și specializare programul prin evaluare parțială și
* Orice modul software care ofera analizele / transformările într-o anumită aplicație, cum ar fi Bandera sau platforma, cum ar fi Eclipse.
În prezent, există 3 module care fac parte din Indus. Se așteaptă ca mai multe module pentru a fi adăugate în decursul timpului. Noi oferim o imagine de ansamblu asupra intenția fiecărui modul, care sunt disponibile în prezent.
Indus este un modul care găzduiește implementarea referitoare la algoritmi și structuri de date comune analize și transformări care fac parte din sau sunt planificate pentru a fi parte a Indus. Acest modul conține definiție interfață comună pentru majoritatea analizelor și transformări pentru a oferi un cadru în care diferite implementări ale analizelor / transformări pot fi combinate pentru a forma sisteme cu usurinta. Prin urmare, acest modul este actualizat atunci când o nou tip de analiză / transformare este implementat ca un modul în Indus. Cu toate acestea, o nouă punere în aplicare a unei analize / transformare nu va afecta acest modul cum va implementa o interfață existentă.
Modulul StaticAnalyses se dorește a fi colectarea statice analize precum analiza flow-obiect, de evacuare analiză și analize dependență. Analizele din acest modul folosesc interfețe comune și implementări din Indus și pot defini / oferi noi interfete / implementari specifice noi analize. Analizele existente sunt menționate mai jos.
* Analiza-flow Object (OFA) este un puncte-analizei pentru Java. Fiecare site de alocare în sistemul analizat este tratată ca un obiect abstract și fluxul său prin sistemul este urmărită deduce posibile tipuri de un receptor la un site apel pentru a permite construirea unei precis apel grafic. Precizia analizei poate varia în funcție de fluxul de-sensibilitate pentru metoda variabile locale și obiect-sensibilitate pentru câmpurile exemplu.
* Escape Analiza este o implementare extinsă a analizei evacuare propusă de Ruf pentru a interferențelor tăiere și margini de dependență gata. Extensiile sunt sub forma de supliment fără sudură de valoare echivalenta cu analiza pentru a imbunatati detectarea câmpului conflict citește / scrie: apar la subiecte diferite dincolo de doar folosind tip egalitatea primare ale expresii de acces. Analiza foloseste de asemenea, informații cu flux obiect perpendicular pentru a îmbunătăți precizia.
* Analizele Dependența este o colecție de dependență analize: control pe bază de intrare, control bazat pe ieșire, datele de identificare bazate pe-, date pe baza de referință, interferență, gata, sincronizarea și divergență, cerute de analize / transformări, cum ar felierea și evaluarea programului parțial . Interferențe și dependența Ready analize depinde de analiza anterioară de evacuare în timp ce datele pe bază de referință și a dependenței de sincronizare analize depinde de informații de curgere obiect și calculat informațiile call-grafic. Unele analize au niveluri de precizie, care pot fi modificate prin intermediul unei interfețe bine definite diferite.
* Efect secundar Analiza furnizează la nivel de metodă informații efect secundar. Utilizatorul poate interoga dacă oricare dintre argumente / parametrii unui apel site-ul / metoda va fi afectat fie direct (membri imediate) sau indirect (recursiv membri accesibil). În mod similar, utilizatorul poate oferi o cale de acces la date înrădăcinat la argumente / parametri unui apel site / metodă și de interogare, dacă punctul final al calea de acces la date este afectată de apel / metoda.
* Monitor anlaysis este o simplă analiză care oferă monitor / informații grafic blocare pentru sistemul dat.
* Safe Lock Analiza este o analiza care descoperă în mod conservator, dacă un sistem de blocare (monitoare) nu vor avea loc pe termen nelimitat. Aceste informații sunt utilizate în combinație cu dependențe temporale steming pentru Object.wait () și Object.notify () / Object.notifyAll () așa cum se face în dependență gata.
* Analiza Atomicitate oferă informații despre atomicitatea în sistemul dat. Implementarea actuală se bazează pe analiza de evacuare a prezice dacă o declarație poate fi executat atomic. Aceste informații sunt utilizate pentru a detecta regiune atomic de coduri. Această informație este utilă în aplicații cum ar fi modelul de verificare pentru a reduce dimensiunea spatiului de stat, prin urmare, pentru a îmbunătăți performanța.
Unele analize poate fi suficient de mare pentru a constitui modul pe cont propriu și astfel de analize va fi gazduit si diferite module în Indus, mai degrabă decât să fie consumate de acest modul.
Modulul program Java Slicer contine implementarea de bază a programului Java slicer, împreună cu adaptoare care ofera divizorului în alte aplicații, cum ar fi Bandera si Eclipse. Punerea în aplicare este proiectat ca o bibliotecă, mai degrabă decât ca o cerere pentru a facilita reutilizarea capitole sai. Miezul este independentă cererii; Cerința fiecare aplicare a tranșa poate fi îndeplinită prin codare până implementări de interfețe de post-procesare și a lobat în aceste implementari, pentru a forma un divizor personalizat.
Acest modul se bazează foarte mult pe informațiile furnizate de dependență analizează și, de asemenea, apel Graficul furnizate de OFA prin interfețe bine definite, care permite implementări externe să fie utilizate pentru feliere.
Această implementare a slicer este livrat la Eclipse cu o interfață intuitivă prin Kaveri plugin.
Caracteristici: o
Generație felie înapoi și înainte. Felii complete (uniune de înainte și înapoi
felii pornind de la aceleași criterii felie) poate fi generat.
* Suport pentru residualize felii (corespunzatoare) în fișiere executabile de clasă.
* Suport pentru contextual felierea prin context bogat specificații criterii felie.
* Suport pentru a limita felia de o anumită parte a sistemului de specificațiile domeniul de aplicare.
* Suport pentru serializa criterii felie, configurații feliere, și felii.
Toate modulele din munca de proiect Indus pe Jimple, o reprezentare intermediară de Java, oferite de funingine set de instrumente de grup Sable în Universitatea McGill. Fiecare modul în proiect va fi expus ca unul sau mai multe plugin-uri Eclipse dacă informațiile furnizate sunt utile pentru utilizator și supuse consumului utilizator prin intermediul unei interfețe grafice de utilizator.
Software Engineering Filosofie
Fiecare modul în acest proiect va oferi doar funcționalitatea necesară prin interfețe bine definite, care pot fi implementate pentru a asambla un sistem personalizat cu extensii adecvate, care îndeplinesc cerințe specifice. Ca interfata este clar separată de la punerea în aplicare, orice implementare externă care oferă interfața necesară poate fi folosit perfect cu module de la acest proiect.
Fundal
Punerea în aplicare a majorității analizelor a fost determinată de cerințele de program Java divizor cerute de Bandera. Cu toate acestea, deoarece divizorul program ar putea fi utilizate în afara Bandera și analizele ar putea fi folosite pentru a permite alte transformări, cum ar fi specializarea de program prin evaluare parțială, ne-am mutat analizele și transformările într-un nou proiect numit Indus.

Comentarii la Indus

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!