~~SLIDESHOW~~
====== MIW 2009 XTT_DROOLS ======
* Zrealizował: [[sfrenkel@student.bez-spamu.agh.edu.pl|Szymon Frenkel]] (4RI) \\ \\
===== Cel projektu =====
Zamodelowanie systemu regułowego Drools przy pomocy XTT2:
* Wyszukanie istniejących systemów Drools
* Implementacja i testy
* Zamodelowanie diagramów
===== Wyszukiwanie przykładowych systemów =====
* liczba dostępnych systemów Drools nie okazała się bardzo duża
* przykładowe systemy w dokumentacji Drools nie były systemami wspomagającymi podejmowanie decyzji
* znaleziono kilka odpowiadających wymaganiom systemów Drools
===== Przykład reguł =====
rule "Platinum Priority"
when
c : Customer( subscription == "Platinum" )
t : Ticket( customer == c, status == "New" )
then
t.setStatus( "Escalate" );
modify ( t ) {setStatus( "Escalate" )}
end
===== Przykład reguł w XML-u =====
StockOffer
stockOffer.getRecommendPurchase() == null
stockOffer.getStockPrice() < 100
stockOffer.setRecommendPurchase(YES);
===== Testowanie =====
* instalacja pluginu Drools do Eclipse'a
* uruchomiono i przetestowano przykładowe systemy w celu sprawdzania poprawności działania
* po ewentualnych drobnych modyfikacjach wszystkie testowane systemy działały poprawnie
===== Przykładowe błędy =====
* wcześniejsza wersja Drools - inne nazwy funkcji:
< WorkingMemory wm = ruleBase.newWorkingMemory();
< wm.assertObject(la);
< wm.assertObject(la.getBorrower());
< wm.assertObject(la.getProperty());
---
> WorkingMemory wm = ruleBase.newStatefulSession();
> wm.insert(la);
> wm.insert(la.getBorrower());
> wm.insert(la.getProperty());
===== Przykładowe błędy - ścieżka do pliku =====
\\
< logger.setFileName( "log/trouble_ticket" );
---
> logger.setFileName( "/tmp/log_trouble_ticket" );
===== Modelowanie diagramów =====
* wybrano średnio złożony system (9 reguł: 1 jedno-atrybutowa, 6 dwu-atrybutowych, 2 trój-atrybutowe)
* użyto program HJed
===== Diagram ARD =====
{{:pl:miw:2009:miw09_xtt_drools:ard.png?700|}}
===== Diagram TPH =====
{{:pl:miw:2009:miw09_xtt_drools:tph.png?700|}}