~~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|}}