prog pom







Programy pomocnicze




Programy pomocnicze



PROGRAM POMOCNICZY DO ANALIZY SKŁADNIOWEJ,
MODELOWANIA I ANALIZY DZIEDZINY

Program ten dokonuje analizy składniowej kodu źródłowego, tworzy bazy wiedzy i
analizuje oprogramowanie. Korzysta on z gramatyki która łączy w sobie
obiektowy model dziedziny wyrażony w języku wynikowym,
formalny opis syntaktyczny oparty na definicjach obiektu i jego właściwości (na
ogół w formie rozszerzonej gramatyki BNF) oraz
analizator leksykalny, który rozpoznaje poszczególne znamiona (symbole, literały,
hasła, znaki przestankowe itd.) w języku wynikowym.
Mając te komponenty, analizator składniowy może przetłumaczyć dany program na
abstrakcyjne drzewko syntaktyczne. Komponenty te umożliwiają również ponowne
wygenerowanie z abstrakcyjnych drzewek syntaktycznych, zmodyfikowanego lub
przekształconego programu. Dla każdego języka programowania należy stworzyć model
dziedziny pod kątem języka i analizator składniowy oraz dostosować je do dowolnego
dialektu językowego. Do modelowania oprogramowania wszystkie modele obszaru i analizatory
składniowe wykorzystują tę samą językowo neutralną reprezentację wiedzy.


PROGRAM POMOCNICZY DO ANALIZY DZIEDZINY
Program ten analizuje kod odnośnie użycia identyfikatorów daty w modelowych klasach
dziedziny, związkach międzyklasowych oraz operacjach i wzorach dotyczących użycia dat.
W tym celu korzysta z heurystycznych technik wyszukiwania i słownika dziedziny, który
przejmuje i przekazuje wiedzę dziedziny pomiędzy częściami programu użytkowego.
Zanim użytkownik wykona analizę dziedziny musi on zdefiniować charakterystyczne
kryteria dziedziny. Na przykład użytkownik może wyszczególnić testy i ścieżki
przeszukiwania w celu dokonania lokalizacji zmiennych daty i literałów lub szablonów
czy częstych wyrażeń, które charakteryzują struktury danych i utarty język (klisze)
programowania.
Większość systemów rzeczywiście używa dat w specyficzny sposób, ale są wzory
syntaktyczne i konwencje nazewnictwa, które umożliwiają dokonywanie efektywnych i
stosunkowo dokładnych przeszukiwań wielosystemowych ukierunkowanych na zawężenie.
Po wyszczególnieniu kryteriów użytkownik może przypisać każdemu kryterium wagę
zgodnie ze swoim przeświadczeniem lub statystycznie wyliczonym znaczeniem danego
kryterium (zmierzonym przez środek pomocniczy i podanym do mechanizmu przeszukującego).
Po zdefiniowaniu kryteria mogą być, oczywiście, dostosowywane i rozbudowywane przez
użytkownika. Tworzą one podstawę heurystycznych technik przeszukiwania, w skład
których wchodzi rozpoznanie wzoru, podciągu, literału i kliszy oraz intensywna
propagacja przepływu danych.
W czasie analizy interfejs Revolution 2000 wyświetla elementy spełniające kryteria w
różnych zakresach kontekstowych. Na przykład kontekst elementu pokazuje identyfikatory,
literały i konstrukty syntaktyczne; kontekst instrukcji wyświetla konstrukty należące
do kontekstu instrukcji; kontekst jednostki wyświetla konstrukty w ramach większych
jednostek, takich jak akapity czy rejestry danych. Różne te formaty pomagają
użytkownikowi pośredniczyć między analizą a transformacją, interpretować i
weryfikować wyniki analizy dziedziny oraz (w późniejszej fazie) wartościować ocenę i
korekcje jak również opracowywać plany testów. Program pomocniczy do analizy dziedziny
prezentuje też elementy należące do indeksu klasteru, który klasyfikuje konstrukty pod
względem typu, kompozycji i struktury syntaktycznej. Prezentując elementy w kontekście,
uszeregowane według formy syntaktycznej, środowisko pomaga użytkownikom szybciej
atestować znaczenie każdego elementu daty.
Produktem ubocznym analizy dziedziny jest szkic słownika dziedziny, który zawiera
element, jego definicję, kryteria doboru oraz wykaz odnalezionych pseudonimów.
Następnie użytkownik bada każdy element w kontekście i wskazuje do jakiego stopnia
odpowiada on definicji. Taki proces likwidacji niejednoznaczności ułatwia szybkie
wartościowanie kandydatów i bliskich odpowiedników orz umożliwia użytkownikowi pewną
manipulację kryteriami w celu uzyskania jak największej zgodności. Użytkownik może
również powiększać definicję o pełniejsze opisy (nazwa, typ, pseudonimy, krótkie i
długie opisy, zakresy wartości oraz znaczenie przyporządkowań wartościom literowym).
Tego rodzaju informacja jest bardziej "wgłębna" niż analiza zbiorów
oferowana przez większość programów narzędziowych. Tworzenie słownika dziedziny nie
powinno zająć dużo czasu, użytkownik może bowiem w ciągu około godziny stworzyć
słownik dziedziny dla poddziedziny takiej jak rok i pola daty na małej reprezentatywnej
próbce języka Cobol (20000 wierszy). Słownik dziedziny służy następnie jako
"wyrocznia" przy rozpoznawaniu użycia dziedziny w pozostałych częściach
systemu (setkach tysięcy wierszy kodu)

POMOCNICZY PROGRAM DOKUMENTUJĄCY
Korzystając ze słownika dziedziny program dokumentujący generuje wydruki programu, w
których każda zmienna literału nazwy lub kliszy ma odnośnik do definicji słownikowej.
Element uznawany jest za jednoznaczny tylko wtedy, gdy został zdefiniowany w słowniku
danych. Powstałe wydruki programu z odnośnikami ułatwiają użytkownikowi
interpretację wszystkich lub niektórych akronimów w programie. Program dokumentujący
generuje wiele innych raportów i rodzajów prezentacji w formie graficznej lub tekstowej.

POMOCNICZY PROGRAM STRUKTURALNY
Program ten wspiera szczegółową klasyfikację elementów i ich kontekstów pod
względem kompozycji i składni. Grupowanie pokrewnych elementów ułatwia manipulację
(wyświetlanie, przekształcanie i dokumentowanie) podobnych strukturalnie elementów
dziedziny. Wspomaga również definiowanie reguł transformacji ogólnego przeznaczenia w
przypadku tych konstruktów, które mają podobną składnie. Reguły mogą być stosowane
z dużą dokładnością pod warunkiem, że zostaną dokładnie zdefiniowane warunki
wstępne ich stosowania. Przykłady jednorodnych operacji to rozbudowa typów, redakcja
literowa oraz wstawianie logiki z oknami.

POMOCNICZY PROGRAM WPŁYWU ZMIANY
W programie tym wykorzystano modyfikowany szablon mający formę składniową jednostki
programowej do przeszukiwania czegokolwiek przystającego do szablonu. Identyfikuje on
miejsca prawdopodobnego wpływu (części kodu podlegające działaniu, ale nie zmienione)
oraz miejsca korekcji (części kodu podlegające działaniu i zmienione). Szablony
służą jako lewostronne reguły, definiując przyśpieszające przeszukiwanie kryteria
rozpoznania typów i wzorów. Szablony generowane są automatycznie z kodu źródłowego i
modyfikowane przez użytkownika w celu oczyszczenia procesu przeszukiwania.

POMOCNICZY PROGRAM PONOWNEGO UŻYCIA
Program ten może być stosowany do rozpoznawania, opisywania oraz dokumentowani
przypadków więcej niż jednokrotnego użycia w systemie standardowych programów o
większej ziarnistości, logiki daty oraz procedur daty. Program ponownego użycia działa
na dowolnym poziomie syntaktycznego zamknięcia i stosować go można do konstruktów
językowych każdego typu. Może on różnicować porównywalne jednostki, wykrywać
operacje wycinania i wklejania oraz lokalizować zbędne definicje w dużych próbkach
kodów w czasie w przybliżeniu liniowym (350000 wierszy C przetworzono w ciągu siedmiu
minut). Urządzenia te przyspieszają oczyszczanie istniejącego kodu z redundancji
czyniąc go bardziej efektywnym.

PROGRAM POMOCNICZY DO WYKONYWANIA KOREKCJI
Dokonuje on automatycznego przekształcenia dat poprzez zastosowanie reguł transformacji
na bazie wzoru. Lewe strony zasad transformacji są automatycznie definiowane przez
abstrahowanie (z konstruktów w próbkach kodu docelowego) szablonów składniowych
języka wynikowego. Szablony składniowe używane do definiowania lewej strony reguły
transformacji są automatycznie ograniczane do jednostek nadających się do tworzenia
reguł. Zaczynając od składniowego zamknięcia dowolnego rozmiaru korekcyjny program
pomocniczy systematycznie generuje zasady transformacji i systematycznie definiuje zestaw
reguł dla całkowitego zamknięcia na każdym poziomie abstrakcyjnego drzewka
syntaktycznego. Program korekcyjny automatycznie generuje "transformację
idempotent", która przekształca każdą instrukcję z powrotem w to, czym jest.
Użytkownik modyfikuje prawe strony reguł transformacji w celu zdefiniowania korekcji,
zmian lub tłumaczenia. Po zdefiniowaniu reguł transformacji są one przechowywane w
bibliotece reguł transformacji, z której można korzystać w przypadku dowolnego
programu użytkowego w języku wynikowym, którego dotyczą reguły.

GENERUJĄCY PROGRAM POMOCNICZY
Urządzenie to, wciąż zresztą opracowywane, stworzy logikę pomostową poprzez
półautomatyczne wyprowadzanie z modeli kodów. Programy pomostowe często podobne są do
siebie, a różnice wynikają ze struktury danych na których działają. Mechanizm,
który planujemy wykorzystać w urządzeniu generującym podobny jest do tego w programie
korekcyjnym z tym wyjątkiem, że będzie on działać na pionowych zamknięciach
składniowych dowolnego rozmiaru a nie na poziomych segmentach kompaktowych abstrakcyjnego
drzewka syntaktycznego z programu korekcyjnego. Ustawione na tryb pracy
"idempotent" automatycznie wygeneruje klon każdej jednostki, którą otrzyma.
Użytkownik dokona modyfikacji prawej strony reguły, aby sformułować parametrową
makroinstrukcję, która przy naprowadzaniu przez użytkownika wygeneruje specjalizowane
jednostki programowe.

PROGRAM POMOCNICZY DO WERYFIKACJI I TESTOWANIA
Program ten wspiera proces testowania i weryfikacji, w którym korzysta się z analizy
regresji do identyfikacji zasięgu i natury zmiany oraz specyfikacji do testowania
funkcjonalnego i strukturalnego oraz warunków weryfikacji. Wspomaga on pięć form
testowania strukturalnego powszechnie stosowanego w testach avionics i obejmuje
instrukcje, decyzje, decyzje-warunki, zmodyfikowane decyzje-warunki oraz przepływ danych.
Wspomaga on również modelowanie przyczynowe dorysowując grafy przyczyna-skutek,
których używa się do konstruowania specyfikacji funkcjonalnych i specyfikacji testów
funkcjonalnych. Korzysta się również z reguł transformacji do definiowania
oprzyrządowania testującego ułatwiającego przeprowadzenie różnych ukierunkowanych
dynamicznych testów łącznie z zapisem danych pośrednich i wstawianiem oprzyrządowania
określającego stopień testu.

PROGRAM POMOCNICZY DO PUBLIKACJI NA BAZIE SIECI
Program ten generuje hiperłączoną dokumentację nadającą się do publikacji
bezpośredniej. Sieć ta umożliwia wielu użytkownikom dostęp do dobrze zorganizowanych
kolekcji wytworów pracy pośredniej.






Wyszukiwarka

Podobne podstrony:
Mat pom Prog rentownosci
Ad egz Proj&Prog
prog aga kor
Wykres czasowy dla 10 pom
Wyklad 3 Pomiary posr rezystancji i pom napiec i pradow?
ptrace prog (2)
Pom Tensometryczne
zalozenia do nowej ustawy o pom społ
Dane pom
Bash Prog Intro HOWTO

więcej podobnych podstron