Robert Jack Peter Kehagias Scott Fagen Christan Grant Design Document Every US citizen is required to collect and process their personal financial information each year to calculate the amount of taxes that they owe the government. Most people have a rough knowledge of the tax code and consequently spend a lot of time and money calculating their taxes. Because the tax code is set of pre-defined rules that are used to process each person’s financial information, it is possible to automate the processing of taxes with software. This tax software will help individual US citizens collect, store, calculate, report, and pay their taxes. It will take the user’s personal tax information as input, store the information locally on the user’s hard drive, process the information based off of the US tax code, output the results to the user, and allow the user to print the resulting output for submission to the IRS. This software will use an encryption algorithm to encode the input information before it is stored on the hard drive for security purposes. Due to the constraints of the project specification, we will not be utilizing a database management system or a web based interface to build this software. Instead, we will be using a stand-alone GUI application written in java. We will use the java swing package to build the software installation wizard, login screen, data input forms, data output screens, and an interface for program settings and configuration. For printed output, we will be using a java PDF package to construct printable PDF files for the tax software output. For data storage, all data will be encrypted and stored on the user’s hard disk or outputted to a proprietary file format designed to contain our encrypted user data and processed tax forms. The high level design of this software consists of a user management and access control component, a GUI component, a tax program logic component, a storage component, a security component, and a program installation component. The user management and access control component will restrict access to the tax software by requiring users to enter a pre-defined login name and password before accessing the software or the encrypted data contained within it. These login and password combinations will be defined by the user during the program installation wizard and can be modified in the program configuration portion of the GUI component. The GUI component will be responsible for interfacing the user with all aspects of the system. There will be GUI screens for user login, data input, data output, printing, program settings and configuration, documentation, help, and installation wizard. The tax program logic component will contain functions for processing all required user input data. The methods by which this logic will work will depend on the US tax code defined by the IRS and the US government. This portion of the software may interface with a centralized server over the internet to ensure that the software is always using the most up-to-date tax information, however, if this functionality were implemented, an additional network component would be needed. The storage component will coordinate the storage of userinput and processed data into data structures on the hard disk. This component will call on functions from the security component, which will be responsible for encrypting all data that is collected from the user and stored on the hard drive. The program installation component will consist of a wizard that will collect information from the user, guiding them through the installation and initial configuration. By including all of the above functionality in a stand-alone GUI application, this software will make it much easier for an individual US citizen to collect, store, calculate, report, and pay their taxes. In addition, this software has the potential to increase the accuracy of each user’s tax filings, saving them time and money in the process. High Level Framework This is the high level representation of the tax processing system. The tax processing system contains four dynamic functionalities the first being the Graphical User Interface (GUI). The purpose for the GUI is to provide an aesthetics interface between the user and backend processes. Back-end processes include the encryption engine, tax computator, printer, and file system mediums. The encryption engine encrypts user information providing a high-level security and safety. The tax computator is the module which intelligently calculates tax information and also provided user with tips on how to increase their deductions. Both printer and file system mediums provide the user a manner in which to revisit their calculated information. Requirements #req Proposed by Creation date Description Rationale Target completion 001 Christan Grant 9/1/2006 All user information shall be converted into the certified 1040-CEN form. Assuring accurate calculations according to government standards and produce a quality tax document that may be printed out. 5 days 002 Scott Fagen 9/1/2006 Peter Kehagias 9/1/2006 004 Christan Grant 9/9/2006 Personal information is required to process a quality tax form. User should not have to enter their information multiple times. Provide The User with a safe and secure log-in experience. 4 days 003 005 Christan Grant 9/11/2006 This is to facilitate easy entering of complicated items. 6 days 006 Peter Kehagias 9/13/2006 Provides field to allow the user to easily enter their personal information such as: name, address, income, SSN... Allow the user to store their data so they can continue the process of entering information during different session. The system shall start up with a log in screen. From this screen the user will have the capability to login, register with their precreated password, or exit the program/ The program shall provide the user with a drop down list of previously entered values in a scroll list as they type in values to the screen. This includes but is not limited to the fields containing employment, money earned, and others. The system will temporarily save changes to the user's information, once every five minutes, in a temporary save file. 8 days 007 Peter Kehagias 9/13/2006 The system will present the user with important dates for filing forms with the IRS. 008 Scott Fagen 9/13/2006 009 Scott Fagen 9/13/2006 When exiting the program the user is queried as to if they would like the changes they have made to be updated. Documentation. Each part of the software that requires user interaction should have a form of assistance in the program. This will prevent the loss of data in the event of a system crash, power loss, or other misfortune. To make sure the user knows how much time they have left to complete their tasks involving taxes. A feature to help improve usability and to prevent loss of data. Full explanations will allow the user to get their worth from the software. 010 Peter Kehagias 9/18/2006 The user will be allowed to load their previously saved data and continue where they left off. 7 days 011 Christan Grant 9/18/2006 Information saved by the user will be encrypted into the file system. This allows saving the information to be effective. If you can save it, but not load it, you can’t use it. This allows the both safety and security from any unauthorized access to the users CPU. Peter Kehagias 10/3/2006 The user will be allowed to export the calculated data to an easily printed text file. To allow the user to fill out their tax form wherever they want, or possibly bring the information to a tax consultant to consider more advanced deductions. 1 day 10 days 2 days 1 days 3 days 9 days 3 days 012 013