260 likes | 450 Views
Verslo taisyklių formalizavimas Object-Z. autoriai dokt. Darius Diglys dokt. Mindaugas Zaleckis. Object-Z. “Object-Z yra Z išplėtimas , skirtas palengvinti specifikavimą objektiškai orientuotu stiliumi”. Graeme Smith. 2008 metų gegužės mėnesio 14 diena.
E N D
Verslo taisyklių formalizavimas Object-Z autoriai dokt. Darius Diglys dokt. Mindaugas Zaleckis
Object-Z • “Object-Z yra Z išplėtimas, skirtas palengvinti specifikavimą objektiškai orientuotu stiliumi”. • Graeme Smith 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 2
Object-Z klasių schema 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 3
Eilės formalizavimas Z ir Object-Z 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 4
Object-Z paveldėjimas (specializavimas, išplėtimas) 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 5
Object-Z pavyzdys Mygtukų perjunginėjimo žaidimas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 6
Formalizavimas Object-Z 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 7
Formalizavimas Object-Z 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 8
Verslo taisyklių samprata • Verslo taisyklės – tai apribojimai atliekant verslo veiksmus. • Verslo taisykles sutelktos į (verslo) protokolus, kuriuos įgyvendina agentai priklausomai nuo konteksto. • Agentas, verslo taisyklių formalizavime – programinis komponentas kuris: • Reaguoja į stimulus • Turi pakankamai žinių kaip pritaikyti verslo taisykles • Bendrauja su kitais agentais ir verslo objektais 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 9
Verslo modelis • Verslo sistemą galima formaliai apibrėžti kaip trijų aibių rinkinį: • BM = (B,R,A) • , kur B yra aibė verslo objektų, R – verslo taisyklių aibė, A – agentų aibė. • Kiekviena verslo taisyklė r – predikatas. • Tada verslo veiksmą galima apibrėžti kaip signalą: • S = (A,o,r) • , kur A - agentas kuris gauna taisyklę r ir operacijos objektą o. 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 10
Objektinių koncepcijų formalizavimas • Trys koncepcijos: • Verslo objektai • Verslo taisyklės • Agentai • Verslo modelį ( aibes ir taisyklių predikatus) galima formalizuoti naudojant klasikinę Z formalizavimo kalbą, tačiau tai patogiau padaryti formalizavimo kalba kuri palaiko objektines koncepcijas. 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 11
BTOZ • Business Transaction Object-Z • Kalbos specifikacija išskaidyta į tris sluoksnius: • Veiksmų • Taisyklių • Agentų • Veiksmai, taisyklės ir agentai pateikiami kaip Object-Z klasės. • Taisyklės pateikiamos kaip specifikacijos schemos predikatai, kurios pritaikomos agentų veiksmų objektams. 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 12
BTOZ pavyzdys – autoremonto įmonė • Įmonė veikia pagal tokias verslo taisykles: • Darbas vyksta tik darbo dienomis. • Automobiliai priimami tarp 7 valandos ryto ir 2 valandos dienos. • Automobiliai atiduodami tarp 3 ir 6 valandos po pietų. • Jei kaštai viršija $1000, vadybininkas turi patvirtinti remontą. • Būtina apmokėti atsiėmimo metu. • Mokėjimas atliekamas kredito kortele arba čekiu. • Pavėluoto atsiėmimo baudų sistema. 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 13
Veiksmų sluoksnio specifikacijos (1) 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 14
Veiksmų sluoksnio specifikacijos (2) 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 15
Taisyklių sluoksnio specifikacijos 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 16
Agentų sluoksnio specifikacijos 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 17
Klasių diagramų formalizavimas KlasėsAtributaiOperacijosRyšiaiAgregacija ir kompozicijaAsociacijų klasėsGeneralizacija 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 18
Klasių diagramų formalizavimas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 19
Klasės Account OCL apribojimai context Account inv: balance + overdraftLimit >= 0 context Account::withdraw(float amount): void pre: amount <= balance + overdraftLimit post: balance = balance@pre – amount context Account::deposit(float amount): void post: balance = balance@pre + amount context Account::fundsAvailable(): float fundsAvailable post: result = balance + overdraftLimit 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 20
Klasės Account formalizavimas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 21
Objektų kolekcijų OCL apribojimų formalizavimas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 22
Objektų kolekcijų OCL apribojimų formalizavimas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 23
Klasės Person OCL apribojimai context Person inv: totalBalance = account->sum(balance) context Person::addAccount(Account a): void pre: not(account->includes(a)) post: account = account@pre->including(a) context Person::removeAccount(Account a): void pre: account->includes(a) post: account = account@pre->excluding(a) context Person inv: account->exists(a | a.balance >= 0) --negalima vienu metu viršyti kreditą visose sąskaitose context Person inv: account->forAll(a | a.overdraftLimit <= maxLimit) --kiekvienai žmogaus sąskaitai galioja maksimalus skolinimosi limitas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 24
Klasės Person formalizavimas 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 25
Klausimai 2008 metų gegužės mėnesio 14 diena Verslo taisyklių formalizavimas Object-Z 26