Generations of business experience have gone into the nature of double-entry accounting. Driving forces for this form of accounting include: a) the isolation and prevention of entry errors, as well as b) documentation of the origin, path through the company and ultimate disposition of all moneys. The former is simple Quality Control; this latter entity is the Audit Trail.
The earliest data systems were heavily represented in the accounting and financial sectors. As a result database programming often necessitated systems designers and programmers get a firm grasp of basic accounting practices. Developing and studying an open source accounting system and good documentation is an excellent way to get a handle on this domain for any programmer.
Any accounting system consists of a series of business transactions, a journal (which records the transactions),
ledger (chart of accounts) (which group transactions by account) and a collection of standard accounting reports (which retrieve transactions,
group them by account, or summarize the activities by account or account type showing the relationships of the totality of the activities over
an accounting period) eg. "trial balances”. Also other free-form, ad hoc or optional (special) reports may be included.
All system activities fall into a general set of function:
Activities to be presented as a flow of activity are in the early conceptual stage of development as the Use Case is being explored. This will be documented here as it proceeds.
This system lends itself very well to object-orientation as the components of the system, the account entities render well as objects.