In this article we will discuss what are the various issues involved when you set out to develop a accounting software or database software. To develop an accounting software, you need to be familiar with using Visual Studio (language can be either VB or C#) and SQL Server. Additionally, you need to have accounting domain knowledge.
Programming knowledge includes proficiency in Forms: creating forms, naming them, associating events with forms, Form controls, Master data, Transactions, Database design, Reports, Stored procedures and Triggers.
We can categorize Forms: creating forms, naming them, associating events with forms, Form controls under presentation layer, Master data and Transactions as inputs and reports as output from the system and Database design, Stored procedures and Triggers under data layer.
Visual Studio offers two types of forms. Windows forms and Web forms. Windows forms are to be used for desktop clients and web forms are for web apps.
A Form (Windows forms or Web forms) is a specially designed screen, presented to the user, through which a user can interact with the database software. A form can contain different types of controls, each control having a specific purpose and the ability to interact with the user. Programmers write Code and associate it with form events. Two such events are form load or form close.
Controls are programming objects which are placed on forms to enable interaction with the user. Some examples of form controls are date control, text box control etc. A date control enables display of date to the user. A text box control allows a user to enter text data. Programmers can use the controls to display data from a data base or other sources. Similar to form events, Visual studio provides Control events which can be used to determine how the application should react when a particular event happens.
When we say controls can be used for data acceptance, an immediate need arises that is data being accepted needs to be validated. This is to ensure that data integrity is maintained. Note that validations can be enforced at the control level or at the processing stage.
Master data refers to that data which is permanent in nature. All data can be permanent but master data is that data which is not updated on a regular basis but is recorded at the commencement or introduction of an entity into an organization. Common examples are Employee details such as date of joining, age etc, or a new product name. In an accounting software this data can be bank details, account details etc.
Transaction data refers to that data which occurs on a daily basis. For instance purchase of a particular item or sales data, or expenses. Note that forms are used to record both master data and transaction data.
Database design is a must have skill for effective product development. While this might seem intimidating to beginners, database design is a challenging and satisfying area of software development. While designing a database for the accounting software, a programmer needs to be knowledgeable about the chart of accounts. The chart of accounts is a list of accounts used by accountants to categorize the accounts of a company and helps to track the financial transactions in a company. Note that every transaction should involve a minimum of two accounts.
The database for an accounting software has to implement the relationships as specified in an organization’s chart of accounts. The relationships are standardized and can be procured by discussing with an professional accountant. The tree view control can enhance the user experience when using your accounting software. The special feature of the tree view control is that it can display unlimited number of levels and sub levels.
The strength of an accounting software lies in its ability to prepare financial statements periodically. Reports such as Trial balance, Balance sheet, General Ledger and Cash book are vital for the management of a company. A good database design goes a long way in providing flexibility while generating reports.
Stored procedures are SQL programs stored at the server side providing the real step towards multi client accounting software usage. A stored procedure is directly associated with the database server and executes at the database level and not at the form level. So, whichever client saves data, into a central database the relevant stored procedure kicks in. There are many improvements and innovations in using stored procedures.
A core logic of any accounting software is the double entry system. Implementing the double entry system is a challenge. A successful double entry implementation will ensure that the data stored is consistent and is of integrity. What are the key issues of implementing a double entry system? The developer should be aware of
Double entry is an equation which when adopted while implementing financial transactions in an organization, ensures that the accounts are correctly updated and reflects the financial health accurately.
To implement the double entry system, a programmer should be aware of the implications of every financial transaction and ensure that whenever any transaction occurs all the relevant accounts and fields are updated. If suppose for some all the updations are not complete, the rollback feature has to be programatically implemented. When this feature is implemented either all the accounts are updated or none. This rollback feature can be implemented in .Net using the ADO.Net transaction object in the data server layer or in the data layer using stored procedures.
A more recent technological innovation is the concept of using a ‘tier’ approach when designing a database application for the network or for the web. Most applications today all over the world are being designed using this concept. Under this approach a database application is divided into a presentation layer, data access layer and data layer. If you are aware of the software trends today, you will appreciate how this concept is useful in developing applications for today’s needs. A layered or a tier approach will enable you to use the programs of your application for both the web and client server environments.
This is a very short summary of issues of accounting software development.