====== Opis ====== __**Projekt zakończony**__ Magdalena, Pluta, BizRulesVocabularies :!: It is a common visual notation used in the Business_Process_Modeling that is a modeling/design problem in the Business_process_management. The BPMN is officially standarized by OMG. Some possible areas of investigation(at 1st sight): * input * relation between BPMN and UML, e.g. see Use of UML and Model Transformations for Workflow Process Definitions * how could we use Business_Process_Execution_Language * the general idea of workflow and tools such as yawl is worth digging in... * SBVR * output Extended ARD. Operujemy na poziomie //słownika// reguł (zbiór pojęc i zależności między nimi, pytanie //jakiego typu// zależności), czyli dla reguły: JEZELI pogoda=pada WTEDY samopoczucie=kiepskie atrybuty: ''pogoda'', ''sampopoczucie'' metody BizRulesVocabularies wspierają budowanie i strukturalizowanie takich słowników. na czym opiera się struktura: relacje OO (całość/część, gen/spec), inne semantyczne? ard modeluje relacje zleżn. funkcyjnej, abstr/specyf ====== Spotkania ====== ===== 08.03.04 ===== * jakiego typu relacje modeluje się w: UML (diag. ko), SBVR ===== 080318 ===== * przykłady słowników w UML, SBVR * jak się ma SBVR do UML jako język? MOF? ===== 080415 ===== * zapis termostatu w SBVR, wizualnie, structured english * narzędzia? * SBVR a ARD? ===== 080429 ===== * co to jest sbvr? krótki opis, wprowadzenie, źródła * opis structured english * szczegółowość spec atrybutów? * //ogólny alg! 2kieru// * źródła!!! * opis zależności ===== 080527 ===== * w.w. opis ====== Projekt ====== === opis thermostatu w SBVR === * [[pl:miw:miw08_bizrulesvocabularies2:thermostat|thermostat sbvr]] ====== Sprawozdanie ====== ===== Wprowadzenie ===== SBVR jest jednym z głównych komponentów MDT (Model Development Tools¬) stworzonym w celu budowania modeli odzwierciedlających pewną badaną branżę poprzez dostarczanie prostych narzędzie bazujących na regułach i słownikach biznesowych (Business Vocabulary and Business Rules ). SBVR został opracowany przez OMG (Object Management Group). SBVR (The Semantics of Business Vocabulary and Business Rules) definiuje słowniki i reguły przeznaczone do opisu semantyki słowników biznesowych, faktów i reguł, jak również metamodeli CMOF i schematów XMI wspomagających wymianę słowników i reguł pomiędzy organizacjami oraz oprogramowaniem. SBVR jest integralną częścią MDA (Model Driven Architecture) opracowanego przez OMG. Rysunek poniżej przedstawia pozycję SBVR w Model Driven Architecture. {{:pl:miw:miw08_bizrulesvocabularies2:sbvr.png|sbvr}} Jednym z kluczowych zadań SBVR jest opis reguł i słowników charakteryzujących daną dziedzinę pozwalającą na szczegółowy opis procesów i struktur organizacyjnych w niej panujących. ===== Kluczowe pojęcia SBVR ===== ==== Semantyka ==== Semantyka to dyscyplina badająca relacje pomiędzy znakami a przedmiotami, do których się one odnoszą. Semantyka zajmuje się badaniem znaczenia słów, czyli interpretacją znaków oraz interpretacją zdań i wyrażeń języka. W SBVR znak może przyjmować jedną z wielu postaci: słowa, frazy, kodu, liczb, ikon itp. SBVR zawiera dwa wyspecjalizowane słowniki: * SBVR “Vocabulary for Describing Business Vocabularies” - słownik ten dotyczy terminów oraz ich znaczeń * SBVR “Vocabulary for Describing Business Rules” - słownik dotyczy specyfikacji znaczenia reguł biznesowych i bazuje na słowniku Vocabulary for Describing Business Vocabularies Są to dwa oddzielne słowniki w związku z tym Vocabulary for Describing Business Vocabularies może być używany niezależnie np. jako podstawa dla słowników definiujących semantykę słownictwa i reguł biznesowych. ==== Business Vocabulary ==== Business Vocabluary zawiera wszystkie wyspecjalizowane terminy i określenia, nazwy, typy faktów, pojęcia opisujące w pełni daną branżę, pozwalając na swobodną komunikacje pomiędzy poszczególnymi elementami systemu. Pełny opis Business Vocabluary dostarcza odpowiednich relacji pomiędzy semantyką, relacji pomiędzy innymi słownikami, ich definicjami i informacjami o nich. ==== Business Rule ==== SBVR definiuje „business rule” jako: //"rule that is under business jurisdiction"// Co oznacza, że dana branża samodzielnie kształtuje, uchwala i przestrzega reguł w niej panujących. SBVR dostarcza prostego narzędzia pozwalającego na formalny zapis tych reguł. Jeżeli dana reguła nie należy do zbioru reguł oznacza to, że nie opisuje ona precyzyjnie badanej rzeczywistości. Np. oczywistym jest fakt, że prawo grawitacji nie jest regułą handlową ani tez matematyczną. Reguły są postrzegane jako pewnego rodzaju przewodnik dla podejmowanych decyzji, muszą także dostarczać aktualnych kryteriów dla określenia kolejnych decyzji. Innymi słowy reguły dostarczają ważnych kryteriów dla podejmowania decyzji. ==== Rules and Formal Logic ==== Dodatkowym i nie mniej ważnym elementem w reprezentacji reguł SBVR jest połączenie ich z logiką formalną. Należy zwrócić tu uwagę że prawidłowa interpretacja reguł pociąga za sobą pewne zobowiązanie lub wymóg konieczności. Konsekwentnie w SBVR reguły są elementami które przedstawiają zobowiązania lub konieczności. Wyróżniamy dwie fundamentalne kategorie reguł: * Structural Rule - są to reguły określające sposób organizacji zarządzania elementami, których one dotyczą, uzupełniają one definicje i tak dla wypożyczali samochodów stan klienta jest określany jako jeden z poniższych: * dokonał rezerwacji * wypożyczył auto (jest w stanie posiadania auta) * wypożyczenie zakończone w przeszłości * Operative Rule są to reguły rządzące zachowaniem działalności. W przeciwieństwie do reguł strukturalnych, reguły operacyjne są jedynymi które mogą być bezpośrednio zmieniane przez ludzi zaangażowanych w danej działalności, np w wypożyczali samochodów: //Klientowi który zjawia się pod wpływem alkoholu lub narkotyków nie zostanie wydany w posiadanie wypożyczany samochód//. ===== Ogólne spojrzenie na SBVR ===== SBVR można przedstawić jako pięć głównych aspektów zilustrowanych na rysunku poniżej: {{:pl:miw:miw08_bizrulesvocabularies2:sbvrov.png|sbvr}} ===== Notations for Business Vocabulary and Business Rules ===== ==== Kilka uwag na temat notacji ==== Notacja używana w SBVR opracowana przez OMG oznacza język używany do reprezentacji semantyki i abstrakcyjnej składni. Notacja może być werbalna, graficzna lub kombinacją wyżej wymienionych. Jako elementy notacji należy wymienić gramatykę, składnię oraz konkretną powierzchnię składniową. ==== SBVR Structured English ==== SBVR Structured English jest jedną i zarazem najczęściej stosowaną notacją używaną do reprezentacji metamodeli SBVR i jednocześnie wyznacza pewien standard. Dalsze uzupełnienie i wzbogacanie różnych części SBVR Structured English jest mile widziane i w pełni popierane. Wyróżniamy dwa style SBVR Structured English: - Prefixed Rule Keyword Style - Embedded (mixfix) Rule Keyword Style Prefix Style reprezentuje reguły poprzez wypisywanie oświadczeń ze słowami kluczowymi reprezentowanymi przez odpowiednie znaczniki. Przykłady pewnej ilości prefiksów są przedstawione w tablicy poniżej. {{:pl:miw:miw08_bizrulesvocabularies2:tabela1.png|znaczniki}} Prefix Styl jest używany do opisu reguł w wielu dyscyplinach biznesowych przez kilkanaście ostatnich lat. Przez wiele osób uważany jest za bardzo naturalną, przyjazną i intuicyjną notację reguł. ===== Wyrażenia używane w SBVR Structured English ===== Najbardziej rozpowszechnionym sposobem wyrażenia definicji i reguł biznesowych jest zapis ich w formie wyrażeń. Alternatywnym sposobem może być zapis w postaci diagramów. Jednakże najczęściej są one wykorzystywane do obserwacji powiązań pomiędzy poszczególnymi elementami reprezentowanego systemu. Diagramy okazały się dość niepraktyczne w obszarze definiowania słowników i reguł. SBVR SE wykorzystuje zwroty i wyrażenia języka angielskiego do opisu słownictwa oraz definiowania reguł. ==== Kluczowe słowa i frazy wykorzystywane dla logicznych sformułowań ==== * Quantification ^^ Quantification ^^ | each | universal quantification | |some | existential quantification | ||at least one| existential quantification| |at least n |at-least-n quantification| |at most one |at-most-one quantification| |at most n |at-most-n quantification| |exactly one| exactly-one quantification| |exactly n| exactly-n quantification| |at least n and at most m| numeric range quantification| |more than one| at-least-n quantification with n = 2| * Logical Operations ^^ Logical Operations ^^ |it is not the case that p| logical negation| |p and q| conjunction| |p or q| disjunction| |p or q but not both| exclusive disjunction| |if p then q| implication| |q if p| implication| |p if and only if q| equivalence| |not both p and q |nand formulation| |neither p nor q| nor formulation| |p whether or not q| whether-or-not formulation| * Modal Operations ^^ Modal Operations^^ |it is obligatory that p |obligation formulation| |it is prohibited that p |obligation formulation embedding a logical negation| |it is necessary that p |necessity formulation| |it is impossible that p| necessity formulation embedding a logical negation| |it is possible that p |possibility formulation| |it is permitted that p| permissibility formulation| * Other Keywords ^^ Other Keywords^^ |the | |a, an | |another | |a given| |that | |who| |what| ==== Przykład ==== Reguła: It is obligatory that each rental car is owned by exactly one branch. Wyodrebnione elmenty: {{:pl:miw:miw08_bizrulesvocabularies2:sbvrprzyklad.png|przyklad}} ===== Business Process Modeling Notation ===== Specyfikacja BPMN dostarcza graficznej notacji dla wyrażenia procesów biznesowych w postaci Busines Process Diagram (BPD). Celem BPMN jest wspieranie procesu zarządzania procesami biznesowymi zarówno przez użytkowników technicznych jak i biznesowych przez dostarczanie notacji która jest intuicyjna dla handlowych użytkowników a zarówno jest zdolna przedstawiać kompleksowo semantykę języka. Business Process Management Initiative (BPMI) rozwinął standard BPMN. Głównym zadaniem stawianym przed BPMN jest dostarczenie notacji która jest łatwo czytelna przez wszystkich biznesowych użytkowników począwszy od handlowych obserwatorów które tworzą początkowe (inicjał) projekty procesów do technicznych wykonawców odpowiedzialny za uzupełnienie technologii która będzie wypełniać tamte procesy i w końcu dla osób które są odpowiedzialne za kierowanie i kontrolowanie tamte procesy. Dlatego tez BPMN tworzy standaryzowany pomost pomiędzy procesem projektowania a procesem implementacji i wdrażania. Główne elementy graficzne wykorzystywane w BPMN: * fact type General {{:pl:miw:miw08_bizrulesvocabularies2:sbvr1.png|bpmn}} * variable is unitary {{:pl:miw:miw08_bizrulesvocabularies2:sbvr2.png|bpmn}} * concept1 specializes concept2 (Synonymous Form: concept2 generalizes concept1) {{:pl:miw:miw08_bizrulesvocabularies2:sbvr3.png|bpmn}} * thing is in set (Synonymous Form: set includes thing or set has element) {{:pl:miw:miw08_bizrulesvocabularies2:sbvr4.png|bpmn}} * fact type has fact in fact model {{:pl:miw:miw08_bizrulesvocabularies2:sbvr5.png|bpmn}} ===== Szczegółowość specyfikacji atrybutów ===== SBVR pozwala na szczegółowy opis badanej branży, przykładem może być przedstawiony opis wypożyczalni samochodów {{:pl:miw:miw08_bizrulesvocabularies2:08-01-06.pdf|Anex E}}. Przedstawione poniżej diagramy w sposób szczegółowy przedstawiają specyfikę badanego zagadnienia. {{:pl:miw:miw08_bizrulesvocabularies2:car1.png|rentalcar}} {{:pl:miw:miw08_bizrulesvocabularies2:car2.png|rentalcar}} {{:pl:miw:miw08_bizrulesvocabularies2:car3.png|rentalcar}} ===== Opis termostatu w SBVR ===== ==== Opis słownika i reguł ==== === Słownik === * day * hour * operation * season * thermostat_seting * season_group * day_group === Reguły === * The summer is January or February or December * The autumn is March or April or May * The winter is June or July or August * The spring is September or October or November * The workday is Monday or Tuesday or Wednesday or Thursday or Friday * The weekend is Saturday or Sunday * The season_group is summer or autumn or winter or spring. * The day_group is workday or weekend. * It is necessary that season has exactly one season_group * It is necessary that day has exactly one day_group * If the operation is on_business_hours it is necessary that day include workday of day_group and hours is between ‘9 am and 5 pm’ * If the operation is not_on business_hours it is posibility that day include weekend of day_group. * If the operation is not_on business_hours it is posibility that day include workday of day_group and hours is before ‘9 am’ * If the operation is not_on business_hours it is posibility that day include workday of day_group and hours is after ‘9 am’ * It is necessary that in spring on business_hours thermostat_setting is ’20 degree’. * It is necessary that in spring on not_on_business_hours thermostat_setting is ’15 degree’. * It is necessary that in summer on business_hours thermostat_setting is ’24 degree’. * It is necessary that in summer on not_on_business_hours thermostat_setting is ’27 degree’. * It is necessary that in autumn on business_hours thermostat_setting is ’20 degree’. * It is necessary that in autumn on not_on_business_hours thermostat_setting is ’16 degree’. * It is necessary that in winter on business_hours thermostat_setting is ’18 degree’. * It is necessary that in winter on not_on_business_hours thermostat_setting is ’14 degree’. ==== Graficzna reprezentacja reguł ==== {{:pl:miw:miw08_bizrulesvocabularies2:thermostat1.jpg|thermostat}} ==== Zapis thermostatu w ARD ==== {{:pl:miw:miw08_bizrulesvocabularies2:ard.jpg|thermostatard}} Wykresy zostały sporządzone przy pomocy graficznego programu Dia. Plik źródłowy diagramu {{:pl:miw:miw08_bizrulesvocabularies2:ardindia.tar|ard}}. ===== Algorytm zamiany SBVR <-> ARD ===== Na podstawie oryginalnych [[hekate:hekate_case_thermostat|reguł]] opisujących działanie termostatu zostały zapisane reguły w SBVR. Tak zapisane reguły zostały przedstawione w sposób graficzny przy pomocy diagramu SBVR. Te same oryginalne reguły stały się punktem wyjścia dla stworzenie diagramu ARD. Porównując oba diagramy nasuwa się wniosek, że są one niemalże identyczne. Po usunięciu elementów dotyczących szczegółowego opisu sezonu, pór roku, dni tygodni w tym dni pracujących i wolnych, otrzymujemy diagram identyczny z diagramem ARD. Reguły SBVR opisujące tę część diagramu ograniczają się do reguł: * It is necessary that in spring on business_hours thermostat_setting is ’20 degree’. * It is necessary that in spring on not_on_business_hours thermostat_setting is ’15 degree’. * It is necessary that in summer on business_hours thermostat_setting is ’24 degree’. * It is necessary that in summer on not_on_business_hours thermostat_setting is ’27 degree’. * It is necessary that in autumn on business_hours thermostat_setting is ’20 degree’. * It is necessary that in autumn on not_on_business_hours thermostat_setting is ’16 degree’. * It is necessary that in winter on business_hours thermostat_setting is ’18 degree’. * It is necessary that in winter on not_on_business_hours thermostat_setting is ’14 degree’. ====== Materiały ====== UML: (diagramy struktur-> class diagram, object diagram, diagramy dynamiki-> use case, activity, state) Przykłady schematów w UML: * http://portal.etsi.org/mbs/Languages/UML/uml_example.htm * http://www.visual-paradigm.com/VPGallery/diagrams/index.html * http://jeffsutherland.com/oopsla98/pavel.html Semantics of Business Vocabulary and Business Rules Specification * http://www.omg.org/cgi-bin/apps/doc?smsc/08-01-06 * http://wiki.eclipse.org/MDT-SBVR-Proposal#Introduction * http://www.hendryxassoc.com/html/SBVR_Story.html Business Process Modeling Notation * http://www.ilog.com/products/jviews/diagrammer/bpmnmodeler/article.cfm * http://www.visual-paradigm.com/documentation/bpmnspec.jsp * http://www.dmreview.com/issues/20050701/1031172-1.html * http://www.bpmn.org/exampleIndex.htm Modelowanie słowników * [[http://student.agh.edu.pl/~plutka/SBVR.pdf| UML, SBVR modelowanie słowników]] Transformacja kodu SBVR->UML * [[http://portal.acm.org/citation.cfm?id=1342211.1342221&coll=Portal&dl=GUIDE&CFID=59641205&CFTOKEN=86539360]] * [[http://student.agh.edu.pl/~plutka/UseOfUMLAndModel.pdf|Use of UML and Model Transformations for Workflow Process Definitions]] Reprezentacja Business Rules przy użyciu diagramów UML * http://www.dulcian.com/papers/ODTUG/2001/RepresentingStructuralBusinessRules.htm Business Rules reprezentacja wiedzy metodologie * http://qrdn.brmsblog.com/2007/04/12/the-business-rules-development-cycle-an-introduction/ * http://bizrules.info/page/methodologies.htm