Indus on pyrkimystä tarjota kokoelma Ohjelma analysoi ja muutoksia toteutetaan Java muokata ja mukauttaa Java-ohjelmia. Indus on tarkoitus toimia sateenvarjo:
* Staattinen analyysit, kuten pistettä-analyysi, paeta analyysi, ja riippuvuus analyysit,
* Muunnokset kuten ohjelman paloittelu ja ohjelma erikoistuminen kautta osittainen arviointi, ja
* Ohjelmistoja moduuli, joka toimittaa analyysit / muunnokset osaksi tietyn sovelluksen, kuten Bandera tai alustalla, kuten Eclipse.
Tällä hetkellä on 3 moduulia, jotka ovat osa Indus. Useampia moduuleita odotetaan lisättiin mittaan. Tarjoamme yleiskatsaus tarkoituksen kunkin moduulin, joka on tällä hetkellä käytettävissä.
Indus on moduuli, joka taloa täytäntöönpano liittyvät algoritmien ja tietorakenteiden yhteisiä analyysejä ja muutoksia, jotka ovat osa tai on tarkoitus olla osa Indus. Tämä moduuli sisältää Rajapintamääritys yhteisiä useimmille analyysejä ja muutoksia tarjota puitteet, joissa eri toteutuksissa analyysejä / muunnoksia voidaan yhdistää muodostamaan järjestelmiin helposti. Siksi tämä moduuli päivittyy, kun uudenlaista analyysiä / muutos toteutetaan moduulin Indus. Kuitenkin, uusi täytäntöönpano analyysin / muutos ei vaikuta tämä moduuli, koska se toteuttaa olemassa olevan rajapinnan.
StaticAnalyses moduuli on tarkoitus olla kokoelma staattisia analyyseja, kuten olio-flow analysis, paeta analyysi, ja riippuvuus analyysit. Analyysit Tämän moduulin käyttämään yhteisiä rajapintoja ja toteutukset peräisin Indus ja voivat määritellä / tarjota uusia rajapintoja / toteutukset erityisiä uusia analyyseja. Olemassa olevat analyysit on mainittu alla.
* Object-flow analyysi (OFA) on kohtia, jotta analyysia varten Java. Jokainen jako sivusto analysoi järjestelmässä käsitellään abstrakti esine ja sen järjestelmän läpi seurataan päätellä erityyppisistä vastaanotin call-sivusto, jotta rakentamisen tarkkaa call-kuvaaja. Tarkkuus analyysi voidaan vaihdella kannalta flow-herkkyyden menetelmälle paikallisia muuttujia ja objekti-herkkyys esimerkiksi kenttien.
* Escape Analyysi on laajennettu täytäntöönpanon paeta analyysin ehdottama Ruf varten karsimisesta häiriöiden ja valmiina riippuvuutta reunat. Laajennukset ovat muodossa saumaton arvon lisääminen vastaavuutta analyysin parantamiseksi havaitsemisen ristiriitaisten kentän lukee / kirjoituspyyntöjen esiintyvät eri langalla kuin vain käyttämällä tyyppistä yhdenvertainen esivaaleissa on pääsy ilmaisuja. Analyysi käyttää myös kohde-flow tietoa orthogonally parantaa tarkkuutta.
* Riippuvuus Analyysit on kokoelma riippuvuus analyysien: entry-pohjainen ohjaus, exit-pohjainen ohjaus, tunniste-pohjainen data, viite perustuvia tietoja, häiriöitä, valmiina, synkronointi, ja eroja, edellyttämät analyysit / muunnokset tällainen ohjelma viipalointi ja osittainen arviointi . Häiriöt ja Ready riippuvuutta analysoi riippua aikaisemmasta paeta analyysi taas viitataan perustuvia tietoja ja synkronointia riippuvuus analyysit riippuvat objektin virtauksen tietoa ja laskettu call-kuvaaja tietoa. Jotkut analyysit ovat eriasteisesti tarkkuus voidaan vaihdella kautta hyvin määritelty käyttöliittymä.
* Side-Effect Analysis tarjoaa menetelmän tason sivuvaikutus tietoa. Käyttäjä voi kysellä jos jokin argumentteja / parametreja call-sivusto / menetelmä vaikuttaa joko suoraan (välitön jäsentä) tai välillisesti (rekursiivisesti tavoitettavissa jäsentä). Vastaavasti käyttäjä voi tarjota tietoja pääsypolkua juuret klo argumentteja / parametreja call-sivusto / menetelmä ja kysely, jos loppupiste tietojen käytön polku vaikuttaa puhelun / menetelmällä.
* Monitor anlaysis on yksinkertainen analyysi, joka tarjoaa monitori / lock kuvaajan tiedot tietyn järjestelmän.
* Safe Lock analyysi on analyysi, joka konservatiivisesti havaitsee, jos lukitus (monitorit) ei järjestetä loputtomiin. Tätä tietoa käytetään yhdessä ajallisesti riippuvuudet steming for Object.wait () ja Object.notify () / Object.notifyAll (), koska se on tehty valmiiksi riippuvuutta.
* Atomicity Analysis tietoja atomisuuden tietyn järjestelmässä. Nykyinen täytäntöönpano riippuu paeta analyysi ennustaa, jos selvitys voidaan suorittaa atomisesti. Tätä tietoa käytetään havaitsemaan atomi alueelle koodeja. Tämä tieto on hyödyllinen sovelluksissa, kuten malli tarkkailun pienentää kokoa tila-avaruuden, siten parantaa suorituskykyä.
Joidenkin analyysien voi olla riittävän suuri muodostamaan moduuli omasta ja tällaiset analyysit juontaa kuten eri moduuleista Indus sijaan kuluttaman tässä moduulissa.
Java Ohjelma Slicer moduuli sisältää keskeiset täytäntöönpano Java-ohjelman viipaloijan sekä sovittimia, jotka tarjoavat viipaloijaa muissa sovelluksissa, kuten Bandera ja Eclipse. Toteutus on architected kirjastoksi pikemminkin kuin sovellus helpottaa uudelleenkäyttöä se on lukujen. Ydin on riippumaton sovelluksen; Jokainen sovelluksen vaatimus viipaleen voidaan tyydyttää koodaus jopa toteutusten jälkikäsittely käyttöliittymät ja koukkaamalla näissä toteutuksissa muodostaen räätälöityjä viipaleet.
Tämä moduuli on voimakkaasti riippuvainen toimittamien tietojen riippuvuus analysoi ja call-kaavion tarjoama OFA kautta hyvin määritelty rajapinnat, joiden avulla ulkoiset toteutuksia voidaan käyttää viipalointiin.
Tämä täytäntöönpano viipaloijan toimitetaan Eclipse intuitiivinen käyttöliittymä kautta Kaveri plugin.
Ominaisuudet: o
Taaksepäin ja eteenpäin siivu sukupolvi. Täydellinen viipaletta (liitto taaksepäin ja eteenpäin
viipaleita alkaen samasta siivu kriteerejä) voidaan muodostaa.
* Tuki residualize (tarvittaessa) viipaleiksi suoritettavia class tiedostoja.
* Tuki tilannekohtainen viipalointi kautta yhteydessä rikas siivu kriteerien määrittely.
* Tuki rajoittaa siivu tiettyyn osaan järjestelmän laajuuden erittelyt.
* Tuki sarjanumeroinnissa siivu kriteereihin, viipaleet kokoonpanoissa, ja viipaleet.
Kaikki moduulit Indus projektityö Jimple, väli- edustus Java, tarjoamien Noki Toolkit peräisin Sable ryhmä McGill University. Kukin moduuli hankkeessa on alttiina yhtenä tai useampana Eclipse laajennuksia, jos annettuja tietoja on hyödyllistä käyttäjälle ja alistaa käyttäjän kulutukseen kautta graafisen käyttöliittymän.
Software Engineering Filosofia
Kukin moduuli tähän projektiin antaa juuri tarvittavan toiminnallisuuden kautta hyvin määritelty rajapintoja, jotka voidaan toteuttaa koota räätälöityjä järjestelmään sopivia laajennuksia, jotka täyttävät erityiset vaatimukset. Koska käyttöliittymä on selvästi erotettu toteuttamisesta, ulkoiset täytäntöönpano, joka antaa tarvittavan käyttöliittymän voidaan saumattomasti käyttää moduuleita tämän projektin.
Tausta
Täytäntöönpano useimpien analyysien johtui vaatimukset Java-ohjelma viipaloijan vaatimat Bandera. Koska ohjelma viipaleet voitaisiin käyttää ulkona Bandera ja analyysejä voitaisiin käyttää, jotta muut muunnokset, kuten ohjelman erikoistuminen kautta osittainen arviointi, muutimme analyyseja ja muutoksia uuteen hankkeeseen nimeltä Indus.
Ohjelmiston tiedot:
Versio: 0.8
Lähetyksen päivämäärä: 3 Jun 15
Lupa: Vapaa
Suosio: 14
Kommentteja ei löytynyt