|
|
pl:miw:2009:hekate_case_telco [2009/07/02 09:40] jsi08 |
pl:miw:2009:hekate_case_telco [2019/06/27 15:50] |
====== Hekate Case Telco ====== | |
Paweł Grzesiak, [[p2grzesiak@gmail.com]] | |
| |
:!: Find, analyze, reverse engineer some telco billing/services systems. Model rules using the HeKatE process. | |
| |
Examples: | |
| |
* Plus | |
| |
====== Meetings ====== | |
| |
===== 20090305 ==== | |
* Research PlusGSM | |
* [[hekate:hekate_case_thermostat]] | |
====== Problems ====== | |
<del>:?: :!: How to describe (**ARD** chart as well as **original rules**) services management - __dependency__ between time, duration, payment and **packets**? </del> | |
| |
<del>:?: :!: Concept of **ARD** diagram</del> | |
| |
====== Project ====== | |
===== VARDA / ARD+ Research ===== | |
Read available materials and documentation about VARDA and ARD+ which are to be found here: | |
* ARD+ syntax [[hekate:bib:hekate_bibliography#gjn2008flairs-ardformal]] | |
* Varda description [[hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog]] | |
| |
| |
| |
===== VARDA Installation ===== | |
| |
Installation according to the instructions available [[hekate:varda|here]] was successfully conducted on a machine running Microsoft® Windows Vista™ Business 64-bit. | |
| |
The only problem to overcome was that the Windows installer available on the official **Graphviz** website [[http://www.graphviz.org/]] does not add the folder where these tools are installed (e.g. C:\Program Files\Graphviz 2.21\bin) to the Windows **%PATH%** environmental variable so I could not run **dot.exe** directly from the command line. | |
| |
The solution was as follows: | |
| |
* Right-click on My Computer | Properties | Advanced | Environment Variables | |
* Find and edit the **Path** environmental variable in that dialog | |
* Add the full path of the //Graphviz\bin// folder (should be appended to the value of the Path variable, preceded by a semicolon (;)) | |
| |
===== HQEd Installation ===== | |
| |
Compillation according to the instructions available [[hekate:hqed|here]] was successfully conducted under Kubuntu 9.04 32-bit. | |
| |
===== HJEd ===== | |
| |
Use HJEd tool to build **ARD+** and **TPH** diagrams for **PlusGSM Case** | |
| |
| |
===== Conceptualization ===== | |
==== Attributes ==== | |
=== Day === | |
*Type: **symbolic** | |
*Description: **Respresents day of week** | |
*Acceptable values: | |
* **mon** for monday | |
* **tue** for tuesday | |
* **wed** for wednesday | |
* **thu** for thurstday | |
* **fri** for friday | |
* **sat** for saturday | |
* **sun** for sunday | |
| |
=== Hour === | |
*Type: **decimal** | |
*Description: **Respresents full hour of start time of the service** | |
*Acceptable values: | |
* **0** to **23** for 24h time format | |
| |
=== Today === | |
*Type: **symbolic** | |
*Description: **Respresents type of the day** | |
*Possible values: | |
* **weekend** | |
* **workday** | |
| |
=== Daytime === | |
*Type: **symbolic** | |
*Description: **Respresents part of the day** | |
*Possible values: | |
* **day** | |
* **night** | |
| |
=== Operator === | |
*Type: **symbolic** | |
*Description: **Respresents operator of the receiver of the service** | |
*Possible values: | |
* **PLUS** | |
* **P4** | |
* **ERA** | |
* **ORANGE** | |
| |
=== ServiceType === | |
*Type: **symbolic** | |
*Description: **Respresents type of the service** | |
*Possible values: | |
* **SMS** | |
* **MMS** | |
* **CALL** | |
| |
=== Duration === | |
*Type: **decimal** | |
*Description: **Respresents duration of the service (seconds for CALL / amount for MMS or SMS)** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
| |
=== Tariff === | |
*Type: **symbolic** | |
*Description: **Respresents the tariff** | |
*Possible values: | |
* **TS25** for Taryfa Syberyjska 25 | |
* **TS40** for Taryfa Syberyjska 40 | |
* **TS55** for Taryfa Syberyjska 55 | |
* **TS75** for Taryfa Syberyjska 75 | |
* **TS90** for Taryfa Syberyjska 90 | |
* **TS120** for Taryfa Syberyjska 120 | |
| |
=== Packets === | |
*Type: **symbolic** | |
*Description: **Respresents set of packets used to cover the service** | |
*Possible values: | |
* **FreeSMS** for Free SMS Packet | |
* **FA** for Free to All Packet | |
* **FWP** for Free to All in Plus on Weekends and Evenings Packet | |
* **FP** for Free to All in Plus Packet | |
* **None** for no packet | |
* any combinantion like **FP+FA** or **FWP+FP+FA** which indicates that more than one packet is capable of covering service cost | |
| |
| |
=== DurationToCover === | |
*Type: **decimal** | |
*Description: **Respresents part of the service that packets cannot cover and for which charge will be calculated** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
=== Charge === | |
*Type: **decimal** | |
*Description: **Respresents calcualted charge for the service** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
=== FA === | |
*Type: **decimal** | |
*Description: **Respresents amount of free calls (in seconds) for Free to All Packet** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
=== FS === | |
*Type: **decimal** | |
*Description: **Respresents amount of free messages for Free SMS Packet** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
=== FWP === | |
*Type: **decimal** | |
*Description: **Respresents amount of free calls (in seconds) for Free to All in Plus on Weekends and Evenings Packet** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
=== FP === | |
*Type: **decimal** | |
*Description: **Respresents amount of free calls (in seconds) for Free to All in Plus Packet** | |
*Possible values: | |
* **decimal >= 0** values | |
| |
| |
| |
==== Rules ==== | |
| |
<code> | |
Rule: 1 | |
if Hour is between 18 and 23 | |
or Hour is between 0 and 5 | |
then Daytime is night | |
| |
Rule: 2 | |
if Hour is between 6 and 17 | |
then Daytime is day | |
| |
Rule: 3 | |
if Day is mon | |
or Day is tue | |
or Day is wed | |
or Day is thu | |
or Day is fri | |
then Today is workday | |
| |
Rule: 4 | |
if Day is sat | |
or Day is sun | |
then Today is weekend | |
| |
Rule: 5 | |
if ServiceType is MMS | |
then Packets is None | |
| |
Rule: 6 | |
if ServiceType is SMS | |
then Packets is FreeSMS | |
| |
Rule: 7 | |
if ServiceType is CALL and Operator is not PLUS | |
then Packets is FA | |
| |
Rule: 8 | |
if ServiceType is CALL and Operator is PLUS and Today is weekend | |
then Packets is FWP;FP;FA | |
| |
Rule: 9 | |
if ServiceType is CALL and Operator is PLUS and Daytime is night | |
then Packets is FWP;FP;FA | |
| |
Rule: 10 | |
if ServiceType is CALL and Operator is PLUS and Today is not weekend and Daytime is not night | |
then Packets is FP;FA | |
| |
Rule: 11 | |
if Packets is None and Duration > 0 | |
then DurationToCover is Duration | |
| |
Rule: 12 | |
if Packets is FreeSMS and Duration > 0 and FS >= 0 | |
then DurationToCover is ((FS – Duration) * -1) | |
| |
Rule: 13 | |
if Packets is FA and Duration > 0 and FA >= 0 | |
then DurationToCover is ((FA – Duration) * -1) | |
| |
Rule: 14 | |
if Packets is FP;FA and Duration > 0 and FA >= 0 and FP >= 0 | |
then DurationToCover is (((FA+FP) – Duration) * -1) | |
| |
Rule: 15 | |
if Packets is FWP;FP;FA and Duration > 0 and FA >= 0 and FP >= 0 and FWP >= 0 | |
then DurationToCover is (((FWP+FA+FP) – Duration) * -1) | |
| |
Rule: 16 | |
if ServiceType is MMS | |
then Charge is (DurationToCover * 0.4) | |
| |
Rule: 17 | |
if ServiceType is SMS and DurationToCover > 0 | |
then Charge is (DurationToCover * 0.18) | |
| |
Rule: 18 | |
if ServiceType is CALL and DurationToCover > 0 and Operator is P4 | |
then Charge is (DurationToCover * (0.72 / 60)) | |
| |
Rule: 19 | |
if ServiceType is CALL and DurationToCover > 0 and Operator is not P4 and (Tariff is TS25 or Tariff is TS40) | |
then Charge is (DurationToCover * (0.58 / 60) | |
| |
Rule: 20 | |
if ServiceType is CALL and DurationToCover > 0 and Operator is not P4 and (Tariff is TS55 or Tariff is TS75 or Tariff is TS90 or Tariff is TS120) | |
then Charge is (DurationToCover * (0.48 / 60) | |
</code> | |
| |
===== Design ===== | |
| |
==== ARD+ Diagram ==== | |
{{:pl:miw:2009:hekate_case_telco:gsm2-ard.png|}} | |
| |
==== TPH Diagram ==== | |
{{:pl:miw:2009:hekate_case_telco:gsm2-tph.png|}} | |
| |
==== XTT Diagram ==== | |
{{:pl:miw:2009:hekate_case_telco:gsm2-xtt.png|}} | |
| |
==== Logical Design ==== | |
{{:pl:miw:2009:hekate_case_telco:xtt.png|}} | |
| |
====== Project Files ====== | |
* [[hekate:hjed]] project {{:pl:miw:2009:hekate_case_telco:gsm2.xml|XML file}} | |
* Generated by [[hekate:hjed]] {{:pl:miw:2009:hekate_case_telco:gsm2.pl|PL file}} for [[hekate:varda]] usage | |
* Generated by [[hekate:varda]] {{:pl:miw:2009:hekate_case_telco:gsm2.xttml|XTTML file}} for [[hekate:hqed]] usage | |
* [[hekate:hqed]] project {{:pl:miw:2009:hekate_case_telco:gsm2u.xml|HML file}} - due to wiki file restrictions please change the extension to **HML** after downloading the file | |
| |
====== Materials ====== | |
* Official Graphviz website http://www.graphviz.org/ | |
* PlusGSM Taryfy Syberyjskie http://www.plus.pl/oferta_indywidualna/plus_abonament/taryfy/taryfy_syberyjskie/ | |