Indus

Szoftver screenshot:
Indus
Szoftver adatai:
Változat: 0.8
Feltöltés dátuma: 3 Jun 15
Engedély: Ingyenes
Népszerűség: 14

Rating: 5.0/5 (Total Votes: 1)

Indus egy erőfeszítés, hogy a gyűjtemény a program elemzi és átalakulások végrehajtani Java szabni, és alkalmazkodni a Java programok. Indus hivatott szolgálni, mint egy esernyő:
* Statikus elemzések, mint a pontok-elemzés, menekülni elemzése, és a függőség elemzések,
* Átalakítások, például a program szeletelés és a program specializáció útján részleges értékelésének, valamint
* Bármilyen szoftver modul, mely az elemzések / átalakítások egy adott alkalmazás, például Bandera, vagy platform, mint Eclipse.
Jelenleg van 3 modulok, amelyek részei a Indus. További modulok várhatóan alatt hozzáadunk az idő folyamán. Áttekintést nyújtunk a szándékkal, minden modul, amely jelenleg is kapható.
Indus egy modul, amely otthont ad a végrehajtás kapcsolatos algoritmusok és adatszerkezetek közös elemzések és átalakulások, amelyek egy részét, vagy a tervek szerint része Indus. Ez a modul felület meghatározása, amelyek a legtöbb elemzések és transzformációk, hogy egy keretet, amelyben különböző megvalósításai elemzések / transzformációk alkot rendszerek könnyedén. Ezért, ez a modul akkor frissül, amikor egy új típusú analízis / átalakulás megvalósítása egy modult Indus. Azonban egy új végrehajtásának elemzését / átalakulás nem befolyásolja ezt a modult, hogy végrehajtja a meglévő felületet.
StaticAnalyses modul célja, hogy a gyűjtemény a statikus elemzések, mint az objektum-flow elemzés, menekülni elemzése, és a függőség elemzések. Az elemzés a modul használja a józan interfészek és megvalósítások származó Indus és meghatározhatják, / hogy új interfészek / implementációk jellemző új elemzéseket. A meglévő elemzések alább.
* Object-flow elemzés (OFA) egy pont-elemzés a Java. Minden allokációs helyszínen a vizsgált rendszer kezelik, mint egy absztrakt objektum és a levegő áramlását a rendszer nyomon következtetni a lehetséges típusok a vevő a call-site ahhoz, hogy az építkezés egy pontos call-gráf. Az elemzési pontosságának változtatható szempontjából flow-érzékenysége a módszer a helyi változók és objektumok túlérzékenység például mezőket.
* Menekülési Elemzés egy kiterjesztett végrehajtása a menekülési elemzés által javasolt Ruf céljából metszés interferencia és a kész függőség élek. A kiterjesztések formájában zökkenőmentes hozzáadásával érték egyenértékűség az elemzés hatékonyabb észlelése egymásnak ellentmondó mező olvasás / írja előforduló különböző szálak nem csupán a típusú egyenlő a primer a hozzáférési kifejezéseket. Az elemzés arra is használ objektum-flow merőlegesen, hogy tovább javítsa a pontosság.
* A függőség elemzések gyűjteménye függőség elemzések: belépés alapú vezérlés, exit-alapú vezérlés, azonosító-alapú adatok, referencia alapú adatokat, zavaró, készen, szinkronizálás, és a divergencia, előírt elemzések / átalakítások ilyen programot szeletelése és részleges értékelésének . Interferencia és a Ready függőség elemzések függhet az előző menekülési elemzés közben referencia alapú adatok és a szinkronizálás függőség elemzések függ objektum-flow és a számított call-gráf információkat. Egyes elemzések különböző szintű pontossággal melyek változatos keresztül egy jól meghatározott interfészen keresztül.
* Side-Effect Analysis nyújt a módszer szintű mellékhatása információkat. A felhasználó lekérdezheti, ha az érvek / paraméterek egy call-site / módszert fogja érinteni, akár közvetlenül (közvetlen tagok) vagy közvetve (rekurzív megközelíthető tagok). Hasonlóképpen, a felhasználó tud nyújtani egy adat elérési út gyökerű érveket / paraméterek egy call-site / módszer és a lekérdezés, ha végpontja az adatok elérési út befolyásolja a hívás / módszer.
* Monitor Anlaysis egy egyszerű elemzés, amely monitor / zár grafikon információkat az adott rendszerre.
* Safe Lock elemzés egy elemzés, amely konzervatív felfedezi, ha a zár (monitorok) nem kerül megrendezésre a végtelenségig. Ezt az információt használják együtt időbeli függőségek steming számára Object.wait () és a Object.notify () / Object.notifyAll (), mivel ez történik kész függőséget.
* Atomicity Analysis információt nyújt atomicitás az adott rendszerben. Jelenlegi végrehajtása támaszkodik menekülési elemzés megjósolni, hogy egy nyilatkozatot lehet végrehajtani atomically. Ez az információ kimutatására használják atomi régió kódok. Ez az információ hasznos olyan alkalmazásokban, mint modell ellenőrzésére, hogy csökkentse a méretét az állam tér, így a teljesítmény javítása érdekében.
Egyes elemzések nagy lehet ahhoz, hogy minősülnek modul a saját és az ilyen elemzések lesz a házigazdája a különböző modulok Indus ahelyett, hogy fogyasztott ezt a modult.
Java Program szeletelő modul tartalmazza az alapvető végrehajtása Java program szeletelő együtt adapterek, amelyek a szeletelő más alkalmazások, mint például Bandera és az Eclipse. A végrehajtás architektúrája, mint egy könyvtár nem pedig az alkalmazás megkönnyítése újrafelhasználását ez a alrészekre. A mag az alkalmazástól függetlenül; Minden alkalmazás követelménye a szelet teljesíthető kódolási fel megvalósítások utófeldolgozásának interfészek és összejönni ezekben megvalósítások alkotnak egy testreszabott szeletelő.
Ez a modul nagymértékben támaszkodik által szolgáltatott információk függőség elemzések, valamint a call-gráf által nyújtott OFA-n keresztül jól meghatározott interfészek amely lehetővé teszi külső megvalósítások használt szeletelő.
Ez végrehajtása szeletelő szállítják az Eclipse intuitív felhasználói felület révén Kaveri plugin.
Jellemzők: o
Előre és hátra szelet generáció. Komplett szelet (uniója előre és hátra is
szeleteket kiindulva az azonos szelet kritériumok) is előállítható.
* A támogatás a residualize (megfelelő) szeleteket futtatható class fájlokat.
* A támogatás környezetfüggő szeletelés keresztül összefüggésben gazdag szelet kritériumok specifikáció.
* A támogatás korlátozzák a szelet, hogy egy bizonyos részét a rendszer hatálya előírásoknak.
* A támogatás sorosításához szelet kritériumokat, szeletelő konfigurációk, és szeletekre.
Az összes modul Indus projekt munka Jimple, köztes képviselete Java által biztosított Korom eszközkészlet a Sable csoport McGill Egyetemen. Minden modul a projektben lesz kitéve, mint egy vagy több Eclipse plugin, ha a szolgáltatott információ hasznos a felhasználó és vonzóbb felhasználói fogyasztás keresztül a grafikus felhasználói felület.
Software Engineering Filozófia
Minden modul ebben a projektben nyújt csak a szükséges funkciókat keresztül jól meghatározott interfészek, hogy végre lehessen hajtani, hogy összeállít egy testreszabott rendszer megfelelő kiterjesztések, amelyek megfelelnek konkrét követelmény. Mivel a felület világosan elválik a végrehajtás, bármilyen külső végrehajtása, amely biztosítja a szükséges felület lehet zökkenőmentesen használható modulokat ezt a projektet.
Háttér
Végrehajtásának legtöbb elemzések hajtotta követelményeinek Java program szeletelő által megkövetelt Bandera. Azonban, mivel a program szeletelő lehetne használni kívül Bandera és az elemzések lehetne használni, hogy ezáltal más átalakítások, például a program specializáció útján részleges értékelésének, akkor költözött az elemzések és transzformációk egy új projekt az úgynevezett Indus.

Hozzászólások a Indus

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!