Spis treści

Środowisko prototypowania systemów regułowych.

Jakub Turoboś jakub.turobos@gmail.com

Przegląd istniejących rozwiązań

HJEd (Java)

Varda/GVarda (Prolog)

Podsumowując, preferowanym rożwiązaniem na chwilę obecną jest Varda. W zależności od postępu prac, rozwijane być może będą oba rozwiązania.

BUGS

Scenariusze refaktoring'u

refactoring w teorii ARD+

Finalizacja

Zmiana nazwy atrybutu

Niezależnie od diagramu (ARD, TPH) oraz poziomu szczegółowości istnieją dwa przypadki, w zależności od edytowanej własności:

  1. Complex Property (PC) - należy z niej wybrać jedną z zawartych w niej własności, po czym postępujemy jak w następnym przypadku
  2. Simple Property (PS) - niezależnie od tego czy własność jest conceptual czy phisical następuje algorytm zmiany nazwy atrybutu opisany poniżej

Usuwanie atrybutu

Podobnie jak w poprzednim przypadku, istnieją tylko dwa przypadki, w zależności od usuwanej własności, niezależne od diagramu ani poziomu szczegółowości:

  1. usuwanie jednego z atrybutów należących do własności (w przypadku PC)
  2. usuwanie całej własności

niezależnie od przypadku następuje algorytm usuwania atrybutu opisany poniżej

Dodawanie atrybutu

Przy dodawaniu nowego atrybutu na poziomie niższym niż aktualny poziom szczegółowości istnieje tylko jedno rozwiązanie - użytkownik musi wybrać (na diagramie TPH) jedną z istniejących transformacji finalizacji i tam dodać nowy atrybut, a następnie tworzyć kolejne transformacje do momentu kiedy:

Wersja minimalna - użytkownik musi wybrać (na diagramie TPH) jedną z istniejących transformacji finalizacji i tam dodać nowy atrybut, a następnie zdefiniować zależności funkcyjne związane z dodanym atrybutem na najbardziej szczegółowym poziomie. Tak dodany atrybut może być dalej rozwijany, jeżeli nie jest on atrybutem fizycznym.

Podział

Modyfikacja zależności funkcyjnych

Zależności funkcyjne dowolnego niższego od aktualnego poziomu szczegółowości wygenerować można wykorzystując diagram TPH oraz zależności funkcyjne zdefiniowane na aktualnym poziomie szczegółowości. Proces odwrotny natomiast, czyli wygenerowanie zależności funkcyjnych przy przejściu na wyższy poziom szczegółowości wymaga w przeważającej ilości przypadków ingerencji użytkownika. Dlatego też optymalnym rozwiązaniem wydaje się pozostawienie użytkownikowi swobody modyfikacji zależności funkcyjnych jedynie na najwyższym poziomie szczegółowości diagramu ARD.

Modyfikacja przydziału atrybutu do własności

Przy modyfikacji przydziału atrybutu do własności w ramach podziału danego PC mogą zajść następujące warianty:

opisy algorytmów powyższych modyfikacji znajdują się poniżej.

Modyfikacja bieżącego poziomu

Modyfikacja zależności funkcyjnej

Modyfikacja zależności funkcyjnej może polegać na jej:

opisy algorytmów powyższych modyfikacji znajdują się poniżej.

Modyfikacja atrybutów

Algorytmy refactoring'u

Finalizacja

Zmiana nazwy atrybutu

  1. rekurencyjne przeszukanie zbiorów P, D, V dla zadanej nazwy atrybutu
  2. zmiana nazwy każdego ze znalezionych atrybutów; przerwanie w przeciwnym przypadku

Usuwanie atrybutu

  1. utworzenie kolejki/listy lub kilku list własności/atrybutów, zależności oraz pochodnych do usunięcia lub akcji do wykonania (FILO)
  2. znalezienie takiej pochodnej V = [P1, P2] w zbiorze V, gdzie usuwany atrybut X należy do P2 i nie należy do P1, czyli szukana jest finalizacja, z której pochodzi usuwany atrybut; przerwanie w przeciwnym przypadku
  3. dopisanie atrybutu X z własności P2 do listy
  4. znalezienie takiej pochodnej VX = [P2, PX] w zbiorze V, gdzie PX jest PS, czyli szukana jest transformacja podziału dla własności P2 i atrybutu X; przerwanie w przeciwnym przypadku
  5. dopisanie własności PX oraz pochodnej VX do listy
  6. znalezienie pochodnych VN = [PX, PN] w zbiorze V
  7. jeżeli w poprzednim kroku znaleziono pochodne, to dla każdej z nich:
    1. dopisać PN oraz VN do listy
    2. zastąpić własność PX własnością PN
    3. wrócić do kroku 6.
    • czy jeżeli istnieją zależności funkcyjne DN,X oraz DX,M, to czy można przy usuwaniu własności X stworzyć zależność DN,M?
  8. dla każdej z własności/atrybutu X znajdującego się na liście do usunięcia znaleźć w zbiorze D zależności fukcyjne
    DN,X = [PN, PX] oraz DX,M = [PX, PM], gdzie PX zawiera X

Dodawanie atrybutu

Analiza istniejących rozwiązań - ewentualne ich wykorzystanie/modyfikacja

Podział

Modyfikacja przydziału atrybutu do własności

Modyfikacja bieżącego poziomu

Modyfikacja zależności funkcyjnej

Todo

Spis treści

  1. wstep (zgodnie z Howto jak_pisac_prace_dyplomowa
  2. Podstawy teoretyczne
    1. atrybutowe systemy regułowe (prof.Ligeza, Logical Foundations for Rule-Based Systems)
    2. projektowanie syst. reg. (Mulawka, Systemy Ekspertowe)
  3. Projekt
    1. specyfikacja wymagań:
      • głóny cel,
      • porównanie technlogii (hjed, varda, gvarda),
      • przypadki użycia (scenariusze do każdego rodzaju refaktoringu)
    2. Projekt
      • Jakie technologie i dla czego (uzasadnienie wyboru, na podstawie analizay varda/gvarda/hjed)
      • predykaty
      • GUI
  4. Implementacja
    • co zostało zaimplementowane: predykaty, GUI
    • Szczegóły implementacyjne
    • Problemy z implementacją
    • jak zostały spełnione wymagania.
  5. Użycie/Testy
    • realizacja przypadkow użycia, zastosowanie predykatow, GUI w akcji, diagramy.
  6. Podsumowanie

Termin obrony: czerwiec.