Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_ardcase_cs:biletomat [2008/04/15 09:39]
miw
pl:miw:miw08_ardcase_cs:biletomat [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Analiza biletomatu i design ====== ====== Analiza biletomatu i design ======
 +
 +
 +
 ==== Wybrany przykład: ==== ==== Wybrany przykład: ====
-[[http://​student.agh.edu.pl/​~makamin/​MiW/​TPa%b3osz,​MMazur%20-%20Automat.pdf|Well documented Vending Machine Model by T. Pałosz, M. Mazur (AiR IV)]] {{:​pl:​miw:​miw08_ardcase_cs:​tpa_b3osz_mmazur_-_automat.pdf|localcopy}}+{{:pl:​miw:​miw08_ardcase_cs:​tpa_b3osz_mmazur_-_automat.pdf|Well documented Vending Machine Model by T. Pałosz, M. Mazur (AiR IV) <localcopy}}
  
 == Pozostałe przykłady == == Pozostałe przykłady ==
Linia 11: Linia 14:
  
 ===== Description ===== ===== Description =====
-W udostępnionym przykładzie zamodelowanym w UML możliwe jest jedynie kupowanie biletu, w niniejszym modelu rozważone będzie także doładowanie KKM (Krakowska Karta Miejska ; to lokalizuje rozwiązanie ale w skali światowiej ​nie jest to bardzo innowacyjne rozwiązanie,​ więc można to zrobić bez straty ​ogłolności)+W udostępnionym przykładzie zamodelowanym w UML możliwe jest jedynie kupowanie biletu, w niniejszym modelu rozważone będzie także doładowanie KKM (Krakowska Karta Miejska ; to lokalizuje rozwiązanie ale w skali światowej ​nie jest to bardzo innowacyjne rozwiązanie,​ więc można to zrobić bez straty ​ogólności)
  
 Użycie biletomatu polega na wybraniu opcji - zakup biletu bądz doładowanie karty okresowej. Po wybraniu opcji należy wrzucić odpowiednią ilość pieniędzy - jak w use-case. Jeśli przez zbyt długi czas użytkownik nie wpłaci pieniędzy aby sfinalizować transakcje przyjęte pieniądze są oddawane. Użycie biletomatu polega na wybraniu opcji - zakup biletu bądz doładowanie karty okresowej. Po wybraniu opcji należy wrzucić odpowiednią ilość pieniędzy - jak w use-case. Jeśli przez zbyt długi czas użytkownik nie wpłaci pieniędzy aby sfinalizować transakcje przyjęte pieniądze są oddawane.
Linia 18: Linia 21:
  
 ===== Conceptualization ===== ===== Conceptualization =====
-ninejszym ​rozdziale następuje próba specyfikacji wejść, wyjść, atrybutów, oraz reguł w systemie+niniejszym ​rozdziale następuje próba specyfikacji wejść, wyjść, atrybutów, oraz reguł w systemie
  
  
Linia 26: Linia 29:
 Wyjście: Potwierdzenie/​reszta/​komunikat Wyjście: Potwierdzenie/​reszta/​komunikat
  
-Stany wewnętrzne??+Elementy wiedzyAkcja wybrana przez użytkownika (dziedzina: bilet/​karta),​ typ biletu/dane do karty, czy istnieje możliwość drukowania, czy biletomat może wydać resztę. 
  
-Elementy wiedzy: Akcja wybrana przez uzytkownika (dziedzina: bilet/​karta),​ typ biletu/dane do karty, czy istnieje możliwość drukowania, czy biletomat może wydać resztę. 
  
 ==== Original Rules ==== ==== Original Rules ====
-Reguły: ​+Reguły: 
 +  
 - Jeśli akcją jest zakup biletu to należy wybrać typ biletu ​ - Jeśli akcją jest zakup biletu to należy wybrać typ biletu ​
 +
 - Jeśli akcją jest doładowanie karty to należy podać dane - Jeśli akcją jest doładowanie karty to należy podać dane
 +
 - Należy wpłacić pieniądze - Należy wpłacić pieniądze
 +
 - Jeśli wpłacono to drukowanie biletu/​wydanie reszty, jeśli nie to po pewnym czasie zwrot pieniędzy - Jeśli wpłacono to drukowanie biletu/​wydanie reszty, jeśli nie to po pewnym czasie zwrot pieniędzy
  
Linia 41: Linia 49:
  
  
 +===== Conceptual design =====
  
 +Poziom 0: Biletomat
  
 +Poziom 1: Finalizacja Biletomatu na: Czas, Pieniądze, Dostępność,​ Aktywność biletomatu
  
-===== Conceptual design ===== +Poziom 2Split: Czas -> Aktywność biletomatu, Pieniądze -> Aktywność biletomatu, Dostępność -> Aktywność biletomatu
-**TBCCzy to nie za skromny model? Co dodac? Czemu na ARD pomimo finalizacji nie zaszła finalizacja (widac to na tph ; na ARD dużymi literami atrybuty)? Czy czas jakos dzielic na czas rozpoaczecia kupowania i czas ktory uplywa (zwykle jak sie nie wplaci pieniedzy przez okolo minute to wyrzuca dotychczas wplacone)**+
  
-Poziom ​0Biletomat+Poziom ​3Finalizacja Czas na : Czas obecny, Czas rozpoczęcia,​ przekroczenie limitu czasu
  
-Poziom ​1 Czas, DostepneSrodki(ile bankomat ma pieniedzy na reszte), WyborDzialania(bilet czy karta), WplaconeSrodki,​ FizycznaMozliwoscWyplaty(czy jest papier/​tusz),​ Cennik, Dzialanie+Poziom ​4: Split: Czas obecny -> przekroczenie limitu czasuCzas rozpoczęcia -> przekroczenie limitu czasu
  
-Poziom ​2: Czas + DostepneSrodki + WyborDzialania + WplaconeSrodki + FizycznaMozliwoscWyplaty + Cennik ​-> Dzialanie+Poziom ​5,6Finalizacja ​Czas obecny ​-> czas obecny ; Czas rozpoczęcia -> czas rozpoczęcia
  
-Poziom ​3finalizacje (TBCnie wiem czemu nie zaszly?)+Poziom ​7Finalizacja Dostępność naPieniądze w biletomacie,​ (znacznikWystarczająca ilość pieniędzy do wydania reszty
  
-==== General Conceptual Design ====+Poziom 8: Split: Pieniądze w biletomacie -> Wystarczająca ilość pieniędzy do wydania reszty, Wystarczająca ilość pieniędzy do wydania reszty -> Aktywność biletomatu
  
 +Poziom 9: Finalizacja Pieniądze na: Wpłacona kwota, Cena do zapłacenia,​ Reszta
  
 +Poziom 10: Split: Cena do zapłacenia -> Reszta, Wpłacona kwota -> Reszta, Reszta -> Aktywność biletomatu
  
 +Poziom 11: Finalizacja Cena do zapłacenia na: Wybrany produkt, Lista cen, Cena
  
 +Poziom 12: Split: Wybrany produkt -> Cena, Lista cen -> Cena, Cena -> Reszta
  
 +Poziom 13-20: Finalizacja Pieniądze w biletomacie -> pieniądze w bletomacie, Wybrany produkt -> wybrany produkt, Wpłacona kwota -> wpłacona kwota, Wystarczająca ilość pieniędzy do wydania reszty -> wystarczająca ilość pieniędzy do wydania reszty, Reszta -> reszta, Lista cen -> lista cen, Cena -> cena, Aktywność biletomatu -> aktywność biletomatu
  
 +Poziom 21: Ręczne dodanie zależności pieniądze w biletomacie -> aktywność biletomatu (konieczne do wyznaczenia działania biletomatu)
  
 +Poziom 22: Ręczne dodanie zależności reszta -> wystarczająca ilość pieniędzy do wydania reszty (konieczne do ustalenia czy mamy tyle pieniędzy)
 +
 +Poziom 23: Ręczne dodanie zależności pieniądze w biletomacie -> pieniądze w biletomacie (konieczne do pomniejszenia ilości pieniędzy po ich wydaniu)
 +
 +Poziom 24: Ręczne dodanie zależności cena -> pieniądze w biletomacie (konieczne do pomniejszenia ilości pieniędzy po ich wydaniu)
 +
 +Poziom 25: Ręczne dodanie zależności aktywność bilatomatu -> pieniądze w biletomacie (konieczne do pomniejszenia ilości pieniędzy po ich wydaniu)
 +
 +==== General Conceptual Design ====
 +
 +
 +
 +
 +
 +==== V3 ====
  
 ==== Directed Conceptual Design ==== ==== Directed Conceptual Design ====
  
-=== Full ARD Model === +Kody w PROOGu, kod .dot i rysunki ARD/TPH i XTT wygenerowane przez VARDA dostępne dodatkowo pod linkiem poniżej
-Kody w PROOGu, kod .dot i rysunki ARD/TPH i XTT wygenerowane przez VARDA dostępne dodatkowo pod linkiem poniżej ​(update 13.04 - still working on it ; na razie brak kopii lokalnej)+
  
-http://student.agh.edu.pl/​~makamin/​MiW/​Graph/​biletomat/​+{{:pl:​miw:​miw08_ardcase_cs:​vendingmachine_v3.pl|Kod w PROLOGu}} 
 + 
 +{{:​pl:​miw:​miw08_ardcase_cs:​vendimgmachine-ard_v3.dot|Plik ​.dot ARD}} 
 + 
 +{{:pl:​miw:​miw08_ardcase_cs:​vendimgmachine-tph_v3.dot|Plik .dot TPH}} 
 + 
 +=== Full ARD Model ===
  
 ARD: ARD:
  
-<​graphviz+<​graphviz ​file="pl:​miw:​miw08_ardcase_cs:​vendimgmachine-ard_v3.dot">
-digraph G { +
- ​rankdir=LR +
- node [shape=box, fontsize=9, height=0.1, width=0.05 ] +
- edge [arrowsize=0.5,​ len=0.1] +
-"​minute\n"​ +
-"​second\n"​ +
-"​fundsInMachine\n"​ +
-"​chosenProduct\n"​ +
-"​remittance\n"​ +
-"​enoughCashToChange\n"​ +
-"​pricelist\n"​ +
-"​activity\n"​ +
-"​second\n"->"minute\n"​ +
-"​fundsInMachine\n"​->"​enoughCashToChange\n"​ +
-"​minute\n"​->"​activity\n"​ +
-"​chosenProduct\n"​->"​activity\n"​ +
-"​remittance\n"​->"​activity\n"​ +
-"​enoughCashToChange\n"​->"​activity\n"​ +
-"​pricelist\n"​->"​activity\n"​ +
-"​fundsInMachine\n"​->"​activity\n"​ +
-"​pricelist\n"​->"​enoughCashToChange\n"​ +
-"​remittance\n"​->"​enoughCashToChange\n"​ +
-"​chosenProduct\n"​->"​enoughCashToChange\n"​ +
-}+
 </​graphviz>​ </​graphviz>​
  
 TPH: TPH:
  
-<​graphviz+<​graphviz ​file=":​pl:​miw:​miw08_ardcase_cs:​vendimgmachine-tph_v3.dot">
-digraph G { +
- ​rankdir=LR +
- node [shape=box, fontsize=9, height=0.1, width=0.05 ] +
- edge [arrowsize=0.5,​ len=0.1] +
-"​Vendingmachine\n"->"Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​ +
-"​Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​->"​Time\n"​ +
-"​Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​->"​ChosenProduct\n"​ +
-"​Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​->"​Remittance\n"​ +
-"​Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​->"​FundsInMachine\nEnoughCashToChange\n"​ +
-"​Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​->"​Pricelist\n"​ +
-"​Time\nChosenProduct\nRemittance\nFundsInMachine\nEnoughCashToChange\nPricelist\nActivity\n"​->"​Activity\n"​ +
-"​FundsInMachine\nEnoughCashToChange\n"​->"​FundsInMachine\n"​ +
-"​FundsInMachine\nEnoughCashToChange\n"​->"​EnoughCashToChange\n"​ +
-"​Time\n"​->"​Minute\nSecond\n"​ +
-"​Minute\nSecond\n"​->"​Minute\n"​ +
-"​Minute\nSecond\n"​->"​Second\n"​ +
-"​Minute\n"​->"​minute\n"​ +
-"​Second\n"​->"​second\n"​ +
-"​FundsInMachine\n"​->"​fundsInMachine\n"​ +
-"​ChosenProduct\n"​->"​chosenProduct\n"​ +
-"​Remittance\n"​->"​remittance\n"​ +
-"​EnoughCashToChange\n"​->"​enoughCashToChange\n"​ +
-"​Pricelist\n"​->"​pricelist\n"​ +
-"​Activity\n"​->"​activity\n"​ +
-}+
 </​graphviz>​ </​graphviz>​
  
-XTT: 
  
-<​graphviz>​ + 
-digraph G{  node [shape=record,​ fontsize=9, height=0.1, width=0.05];​ edge [style=dashed,​ arrowsize=0.5,​ len=0.1] ​ + 
-subgraph "​cluster_Vendingmachine"​ { +==== Refined Conceptual Design ​==== 
-"​[[second]]|[[minute]]"​ +==== V2 ==== 
-+ 
-subgraph "​cluster_Time"​ { + 
-"​[[second]]|[[minute]]"​ +==== Directed Conceptual Design ​==== 
-+ 
-subgraph "​cluster_Vendingmachine"​ { +Kody w PROOGu, kod .dot i rysunki ARD/TPH i XTT wygenerowane przez VARDA dostępne dodatkowo pod linkiem poniżej 
-"​[[fundsInMachine],​ [pricelist],​ [remittance],​ [chosenProduct]]|[[enoughCashToChange]]"​ + 
-+{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine_v2.pl|Kod w PROLOGu}} 
-subgraph "​cluster_Vendingmachine"​ { + 
-"​[[minute],​ [chosenProduct],​ [remittance],​ [enoughCashToChange],​ [pricelist],​ [fundsInMachine]]|[[activity]]"​ +{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine-ard_v2.dot|Plik .dot ARD}} 
-+ 
-subgraph "​cluster_Vendingmachine"​ { +{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine-tph_v2.dot|Plik .dot TPH}} 
-label="​Vendingmachine"​ + 
-color=blue +=== Full ARD Model === 
-fontcolor=blue + 
-fontsize=+ARD: 
-fontname=sans + 
-labeljust=+<​graphviz file="pl:​miw:​miw08_ardcase_cs:​vendingmachine-ard_v2.dot">
-subgraph "​cluster_Time"​ { +
-label="​Time"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=+
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_ChosenProduct"​ { +
-label="​ChosenProduct"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=+
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Remittance" ​{ +
-label="​Remittance"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine" ​{ +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Pricelist"​ { +
-label="​Pricelist"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-} +
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Activity" ​{ +
-label="​Activity"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine" ​{ +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Minute"​ { +
-label="​Minute"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-} +
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Second" ​{ +
-label="​Second"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine" ​{ +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_minute"​ { +
-label="​minute"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-} +
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=+
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_second"​ { +
-label="​second"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_chosenProduct"​ { +
-label="​chosenProduct"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_remittance"​ { +
-label="​remittance"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_FundsInMachine"​ { +
-label="​FundsInMachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_EnoughCashToChange"​ { +
-label="​EnoughCashToChange"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_fundsInMachine"​ { +
-label="​fundsInMachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_enoughCashToChange"​ { +
-label="​enoughCashToChange"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_pricelist"​ { +
-label="​pricelist"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Vendingmachine"​ { +
-label="​Vendingmachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_activity"​ { +
-label="​activity"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Time"​ { +
-label="​Time"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Minute"​ { +
-label="​Minute"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Time"​ { +
-label="​Time"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_Second"​ { +
-label="​Second"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Time"​ { +
-label="​Time"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_minute"​ { +
-label="​minute"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Time"​ { +
-label="​Time"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_second"​ { +
-label="​second"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_FundsInMachine"​ { +
-label="​FundsInMachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_fundsInMachine"​ { +
-label="​fundsInMachine"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_ChosenProduct"​ { +
-label="​ChosenProduct"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_chosenProduct"​ { +
-label="​chosenProduct"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Remittance"​ { +
-label="​Remittance"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_remittance"​ { +
-label="​remittance"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_EnoughCashToChange"​ { +
-label="​EnoughCashToChange"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_enoughCashToChange"​ { +
-label="​enoughCashToChange"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Pricelist"​ { +
-label="​Pricelist"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_pricelist"​ { +
-label="​pricelist"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Activity"​ { +
-label="​Activity"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_activity"​ { +
-label="​activity"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Minute"​ { +
-label="​Minute"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_minute"​ { +
-label="​minute"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-subgraph "​cluster_Second"​ { +
-label="​Second"​ +
-color=blue +
-fontcolor=blue +
-fontsize=8 +
-fontname=sans +
-labeljust=l +
-subgraph "​cluster_second"​ { +
-label="​second"​ +
-color=blue +
-fontcolor=blue +
-fontsize=10 +
-fontname=sans +
-labeljust=l +
-+
-+
-"​[[second]]|[[minute]]"->"[[minute], [chosenProduct],​ [remittance],​ [enoughCashToChange],​ [pricelist],​ [fundsInMachine]]|[[activity]]"​ +
-"​[[fundsInMachine],​ [pricelist],​ [remittance],​ [chosenProduct]]|[[enoughCashToChange]]"​->"​[[minute],​ [chosenProduct],​ [remittance],​ [enoughCashToChange],​ [pricelist],​ [fundsInMachine]]|[[activity]]"​ +
-}+
 </​graphviz>​ </​graphviz>​
  
-Wstępna wersja xtt (nie wrzucana na wiki, ponieważ jest wstępna) tutajhttp://student.agh.edu.pl/​~makamin/​MiW/​Graph/​biletomat/​MiW-vendingmachine-xtt.pdf+TPH: 
 +<​graphviz file="​pl:miw:​miw08_ardcase_cs:​vendingmachine-tph_v2.dot">​ 
 +</graphviz>​ 
 + 
 +==== Refined Conceptual Design ==== 
 + 
 +==== V1 ==== 
 + 
 + 
 + 
 + 
 + 
 + 
 +==== Directed Conceptual Design ==== 
 + 
 +Kody w PROOGu, kod .dot i rysunki ARD/TPH i XTT wygenerowane przez VARDA dostępne dodatkowo pod linkiem poniżej 
 + 
 +{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine.pl|Kod w PROLOGu}} 
 + 
 +{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine-ard.dot|Plik ​.dot ARD}} 
 + 
 +{{:pl:​miw:​miw08_ardcase_cs:​vendingmachine-tph.dot|Plik .dot TPH}} 
 + 
 +=== Full ARD Model === 
 + 
 +ARD: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​vendingmachine-ard.dot">​ 
 +</​graphviz>​ 
 + 
 +TPH: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​vendingmachine-tph.dot">​ 
 +</​graphviz>​
  
 ==== Refined Conceptual Design ==== ==== Refined Conceptual Design ====
Linia 622: Linia 181:
  
 ===== Structuralization ===== ===== Structuralization =====
 +
  
  
Linia 630: Linia 190:
  
 ===== Logical design ===== ===== Logical design =====
-Wynikowe ​dzialanie ​biletomatu ​zalezy ​od nastepujacych ​rzeczy:+ 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +==== V3 ==== 
 +{{:​pl:​miw:​miw08_ardcase_cs:​vendimgmachine-xtt_v3.dot|Plik .dot XTT}} 
 + 
 +XTT: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​vendimgmachine-xtt_v3.dot">​ 
 +</​graphviz>​ 
 + 
 +Plik HQED {{vendingmachine-xttml_v3.xttml|XTTML}} 
 + 
 + 
 + 
 +==== V2 ==== 
 +{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine-xtt_v2.dot|Plik .dot XTT}} 
 + 
 +XTT: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​vendingmachine-xtt_v2.dot">​ 
 +</​graphviz>​ 
 + 
 +Plik HQED {{vendingmachine_v2.xttml|XTTML}} 
 + 
 + 
 + 
 +==== V1 ==== 
 + 
 +{{:​pl:​miw:​miw08_ardcase_cs:​vendingmachine-xtt.dot|Plik .dot XTT}} 
 + 
 +{{:​pl:​miw:​miw08_ardcase_cs:​miw-vendingmachine-xtt.pdf|Nieoficjalna (bez użycia HqEd) wersja XTT}} 
 + 
 + 
 +XTT: 
 + 
 +<​graphviz file="​pl:​miw:​miw08_ardcase_cs:​vendingmachine-xtt.dot">​ 
 +</​graphviz>​ 
 + 
 + 
 + 
 +==== V0 - opis ogólny ==== 
 +Wynikowe ​działanie ​biletomatu ​zależy ​od następujących ​rzeczy:
  
 - co zostało wybrane (jaka akcja) - co zostało wybrane (jaka akcja)
Linia 638: Linia 245:
 - fizyczna możliwość wypłaty (czy jest tusz do drukowania/​pieniądze do wydania reszty) - fizyczna możliwość wypłaty (czy jest tusz do drukowania/​pieniądze do wydania reszty)
  
 +
 +
 +
 +===== Ostatnie zmiany =====
 +24.05.2008 - usunięcie linków zewnętrznych,​ dodane kopii lokalnych, drobne zmiany
 +
 +28.04.2008 - od poprzedniej wersji ARD/XTT (v1) przy użyciu nowej wersji VARDA wygenerowano poprawione ARD, a za pomocą HQed XTT (v2). Ważne - w wersji v1 w tabelach reguł występowały działania, które należało wyeliminować. W tym celu wprowadzono nowy atrybut - reszta. Po zmianach okazało się, iż aby wyliczyć, w jakiej kwocie należy wydać resztę należy odjąć atrybut - cena produktu (priceList[chosenProduct]),​ od atrybutu wpłacona przez klienta kwota (remittance). Reszta=wpłata-cena. Tak powstały atrybut należy dalej wykorzystać do sprawdzenia,​ czy biletomat posiada środki do wydania reszty. Powoduje to porównanie atribute2atribute,​ które może zostać zapisane niejednoznacznie tj. gdy fundsInMachine<​change lub change>​fundsInMachine atrybut enoughCashToChange jest prawdą, aby nie powodować reguł redundantnych koniecznym wydaje się przyjęcie jednolitej konwencji np w postaci ustalania jednego (np. skrajnie prawego w tabeli) jako dowolnego/​stałego i dopasowywanie prawego jako większego/​mniejszego niż prawy. Pytanie co stanie się przy większej ilości atrybutów
 +
 +18.05.2008 - modyfikacja modelu, nowe ARD,XTT - na chwile obecna link do strony, wieczorem wklejenie localcopy etc
 +
 +19.05.2008 - poprawa(uaktualnienie) opisu, dodanie kopii lokalnych plików, usunięcie starych uwag, dodanie nowych uwag do sprawozdania
pl/miw/miw08_ardcase_cs/biletomat.1208245142.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0