TradeSim/docs/dev.org

103 lines
2 KiB
Org Mode

#+TITLE: Fejlesztői Dokumentáció
* TODO Követelmények
* TODO Use-cas-ek
* TODO Struktúrális leírás
** Osztály diagram
#+BEGIN_SRC plantuml :file class-diagram.png :exports result
@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
#+END_SRC
#+RESULTS:
[[file:class-diagram.png]]
* TODO Viselkedés leírása