TradeSim/docs/dev.org

2 KiB

Fejlesztői Dokumentáció

TODO Követelmények

TODO Use-cas-ek

TODO Struktúrális leírás

Osztály diagram

@startuml
Exchange <|--- Binance
Market <--- "-currencies 2" Currency
Exchange "-exchange 1" *--- " #markets 1..*" Market 
Exchange <... Trader
TradeTracker *--- "-exchanges 1...*" Exchange
TradeTracker "-tracker 1" *--- "-traders 0..*" Trader
Market <... TradeTracker 
Market <... Trader

class TradeTracker << (S,#FF7700) Singleton >> {
   -round()
   +start()
   +getExchange(name: String): Exchange
}

abstract class Trader {
   +{abstract} step()
}

note left of Trader::step()
  Itt történik a trader belső logikája
end note

abstract class Exchange {
  -String name
  +getName(): String
  +{abstract} updateAllMarkets()
  +{abstract} updateMarket(id: int)
  +{abstract} updateMarket(name : String)
  +getMarket(id: int): Market
  +getMarket(name: String): Market
  +{abstract} addMarket(m: Market)
}

class Binance {
  -{static} String baseURL
  +updateMarket(id: int)
  +updateMarket(name : String) 
  +updateMarkets()
}

note right of Binance
  Ez csak egy példa, lehetne akár más is
end note

class Market {
  -String name
  -double exchange_rate
  +Market(primary: Currency,secondary: Currency)
  +getName(): String
  +getExchangeRate(): double
  +setExchangeRate(d: double)
  +buy(w: Wallet, amount: double)
  +sell(w: Wallet, amount: double)
}

class Currency {
  -String name
  -String symbol
  +Currency(name: String,symbol: String)
  +getName() : String
  +getSymbol() : String
}

Trader *--- "-wallet 1" Wallet 

class Wallet{
  -Map balances
  +acceptTransaction(t: Transaction)
}

Transaction <... Wallet
Wallet <... Market

class Transaction{
  -String currency_rhs
  -String currency_lhs
  -double amount
  -double price
}

WebAPI <--- Binance

class WebAPI{
 -String baseURL
 +WebAPI(baseURL: String)
 +request(path: String): JsonValue
}
@enduml

/Bazsalanszky/TradeSim/media/branch/master/docs/class-diagram.png

TODO Viselkedés leírása