It is also easy to undo them. It is easy to decide that a business rule will change as of a certain date. This makes month-end closing much simpler. The major disadvantage is that the model implies that all processing takes place when an account's attribute is read, and this is too inefficient. Thus, the actual implementation must process transactions differently than implied by the model.
Accounts has a graphical user interface for specifying business transaction processing system.
A typical application can be built entirely with this interface, without programming. We have not tried it out on a real business yet, but we hope that the combination of visual language for most applications, and extensibility for the rest, will make it both easy to use and powerful. Interaction between models Any model is an approximation of reality. A complete picture of an application requires many interacting models. One of the problems with describing complex systems is making sure that the various models used to describe it are consistent.