Setelah memahami teori dasar akuntansi, kita bisa mulai merancang domain model. Domain model merupakan model konseptual atas objek-objek yang terlibat di dalam sebuah problem domain.
Banyak cara yang dapat digunakan untuk menentukan domain model, misalnya dengan menuliskan proses bisnis yang terjadi lalu mengidentifikasi subjek dan objek dari setiap kejadian bisnis. Dalam kasus ini, proses bisnis yang terjadi adalah sebagai berikut:
Satu jenis transaksi melibatkan dua akun
Akun-akun yang terlibat dan posisi debit kreditnya dikonfigurasikan berdasarkan jenis transaksinya
Setiap transaksi akan dicatat dalam sebuat jurnal
Pada setiap entri jurnal jumlah debit dan kredit haruslah seimbang
Selain akun-akun yang terlibat, jurnal juga mencatat tanggal posting
Berikut ini adalah domain modelnya:
Class Account merepresentasikan sebuah akun. Sebuah akun memiliki atribut kode, nama dan tipe. Misalnya akun Kas memiliki kode ‘ASSET01’ dengan nama ‘Kas’ dan tipe ‘Asset’.
Class TransactionType merepresentasikan jenis transaksi yang mungkin terjadi di sistem, misalnya transaksi ‘Penjualan Tunai’. Setiap jenis transaksi melibatkan dua akun. Konfigurasi akun-akun yang terlibat didefinisikan pada field involvedAccounts.
Class Transaction merupakan kejadian bisnis yang memperngaruhi akun-akun tertentu.
Class AccountConfig merupakan class yang digunakan untuk mendefinisikan posisi sebuah akun di dalam sebuah jenis transaksi.
Class Journal digunakan untuk merekam satu transaksi.
Class JournalEntry berisi detil entri dari sebuah jurnal.
Enum DebitCredit mendefinisikan dua konstanta yang digunakan untuk menentukan bertambah/berkurangnya sebuah akun.
Enum AccountType mendefinisikan jenis-jenis akun yang merupakan komponen utama dalam persamaan akuntansi.