Indus

Skjermbilde programvare:
Indus
Prog.varedetaljer:
Versjon: 0.8
Last opp dato: 3 Jun 15
Lisens: Gratis
Popularitet: 14

Rating: 5.0/5 (Total Votes: 1)

Indus er et forsøk på å gi en samling av Programmet analyserer og transformasjoner implementert i Java for å tilpasse og tilpasse Java-programmer. Indus er ment å fungere som en paraply for:
* Statiske analyser som peker til analyse, rømme analyse, og avhengighet analyser,
* transformasjoner som program slicing og programspesialisering via delvis evaluering, og
* All programvare modul som leverer analyser / transformasjoner i et bestemt program, for eksempel Bandera eller plattform som Eclipse.
I dag er det 3 moduler som inngår i Indus. Flere moduler er forventet å bli tilsatt i løpet av tiden. Vi gir deg oversikt over hensikten med hver modul som er tilgjengelige i dag.
Indus er en modul som huser gjennomføringen knyttet til algoritmer og datastrukturer felles for analyser og transformasjoner som er en del av eller er planlagt å være en del av Indus. Denne modulen inneholder grensesnitt definisjon felles for de fleste analyser og transformasjoner for å gi en ramme der ulike implementeringer av analyser / transformasjoner kan kombineres for å danne systemer med letthet. Derfor er denne modulen oppdatert når en ny form for analyse / transformasjon er implementert som en modul i Indus. Imidlertid vil en ny gjennomføring av en analyse / transformasjon ikke påvirke denne modulen som det vil gjennomføre en eksisterende grensesnitt.
StaticAnalyses modulen er ment å være samlingen av statiske analyser som objektstrømningsanalyse, rømme analyse, og avhengighet analyser. Analysene i denne modulen bruke felles grensesnitt og implementeringer fra Indus og kan definere / gi nye grensesnitt / implementeringer som er spesifikke for nye analyser. Eksisterende analyser er nevnt nedenfor.
* Object-flow analyse (OFA) er et poeng-analyse for Java. Hver fordeling sted i systemet analyseres blir behandlet som et abstrakt objekt og dets strømning gjennom systemet spores å antyde de mulige typer en mottaker ved et telefon stedet for å muliggjøre bygging av en presis samtale-grafen. Presisjonen i analysen kan varieres i forhold til flow-overfølsomhet for metode lokale variabler og objekt overfølsomhet for eksempel felt.
* Flukt analyse er en utvidet implementering av flukt analysen foreslått av Ruf i den hensikt å beskjæring forstyrrelser og klar avhengighet kanter. Utvidelsene er i form av sømløse tillegg av verdien likeverdighet til analyse for å forbedre deteksjonen av motstridende felt leser / skriver som forekommer i forskjellige tråder utover bare å bruke typen likestilling mellom primærvalg av tilgangs uttrykk. Analysen benytter også objektoppstilling ortogonalt for ytterligere å forbedre presisjonen.
* Avhengighet Analyser er en samling av avhengighet analyser: entry-basert kontroll, exit-basert styring, identifikasjonsbaserte data, referansebaserte data, interferens, klar, synkronisering og divergens, som kreves av analyser / transformasjoner slikt program slicing og delvis evaluering . Forstyrrelser og Ready avhengighet analyser avhengig av siste flukt analyse mens referansebaserte data og synkronisering avhengighet analyser er avhengig av informasjon objekt-flow og den beregnede samtale-graf informasjon. Noen analyser har varierende grad av presisjon som kan varieres via en godt definert grensesnitt.
* Bivirkning Analyse gir fremgangsmåten nivå bivirkning informasjon. Brukeren kan spørre om noen av argumentene / parametre til en samtale-site / metoden vil bli påvirket enten direkte (umiddelbare medlemmer) eller indirekte (rekursivt nås medlemmer). På samme måte kan brukeren gi datatilgang bane forankret på argumenter / parametre til en samtale-site / metode og spørring hvis endepunktet for datatilgang banen påvirkes av samtalen / metoden.
* Monitor anlaysis er en enkel analyse som gir monitor / lock grafen informasjon for gitt system.
* Safe Lock Analyse er en analyse som konservativt oppdager hvis en lås (skjermer) ikke vil bli holdt på ubestemt tid. Denne informasjonen blir brukt i forbindelse med time dependences steming for Object.wait () og Object.notify () / Object.notifyAll () som det er gjort i klar avhengighet.
* Atomicity Analysis gir informasjon om atomiteten i gitt system. Gjeldende implementering er avhengig av flukt analyse for å forutsi om en uttalelse kan bli henrettet atomically. Denne informasjonen blir brukt til å oppdage atom regionen koder. Denne informasjonen er nyttig i applikasjoner som modell sjekke for å redusere størrelsen på staten plass, dermed forbedre ytelsen.
Noen analyser kan være store nok til å utgjøre modul på egen hånd og slike analyser vil bli holdt i forskjellige moduler i Indus stedet for å bli konsumert av denne modulen.
Java Program Slicer modulen inneholder kjernen implementeringen av Java-program høvelen sammen med adaptere som leverer den høvelen i andre applikasjoner som Bandera og Eclipse. Implementeringen er bygd som et bibliotek snarere enn som et program for å lette gjenbruk av det er underdeler. Kjernen er uavhengig av søknaden; Hver søknad krav om stykket kan være fornøyd med koding opp implementeringer av post-prosessering grensesnitt og hekte i disse implementeringer for å danne en tilpasset høvelen.
Denne modulen er veldig avhengig av informasjon fra avhengighet analyser og også samtale grafen levert av OFA via veldefinerte grensesnitt som gjør at eksterne implementeringer som skal brukes til kutting.
Denne implementeringen av slicer leveres til Eclipse med et intuitivt brukergrensesnitt via Kaveri plugin.
Funksjoner: o
Bakover og forover skive generasjon. Komplett skiver (forening av bakover og fremover
skiver som starter fra de samme kriterier skive) kan genereres.
* Støtte til residualize (aktuelle) skivene i kjør class-filer.
* Støtte for kontekstavhengig slicing via sammenheng rik skive kriterier spesifikasjonen.
* Støtte for å begrense stykket til en bestemt del av systemet ved omfanget spesifikasjoner.
* Støtte til serial skive kriterier, slicer konfigurasjoner, og skiver.
Alle modulene i Indus prosjektarbeid på Jimple, en mellom representasjon av Java, levert av Soot verktøykasse fra Sable gruppe i McGill University. Hver modul i prosjektet vil bli avslørt som en eller flere Eclipse plugins dersom gitt informasjon er nyttig for brukeren og mottagelig for brukeren forbruk via et grafisk brukergrensesnitt.
Software Engineering Filosofi
Hver modul i dette prosjektet vil gi akkurat den nødvendige funksjonaliteten via veldefinerte grensesnitt som kan iverksettes for å sette sammen et tilpasset system med egnede utvidelser som oppfyller spesifikke krav. Som grensesnittet er tydelig atskilt fra gjennomføringen, kan hvilken som helst ekstern implementering som gir den nødvendige grensesnitt sømløst brukes med moduler fra dette prosjektet.
Bakgrunn
Gjennomføringen av de fleste av analysene ble drevet av kravene i Java-programmet høvelen kreves av Bandera. Men som programmet høvelen kunne brukes utenfor Bandera og analysene kan brukes til å aktivere andre transformasjoner som program spesialiseringen via delvis evaluering, vi flyttet analysene og transformasjoner i et nytt prosjekt kalt Indus.

Kommentarer til Indus

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!