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 user-
input 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
#req Proposed by Creation Description Rationale Target
001 Christan Grant 9/1/2006 All user information shall be converted into Assuring accurate 5 days
the certified 1040-CEN form. calculations according
to government standards
and produce a quality
tax document that may
be printed out.
002 Scott Fagen 9/1/2006 Provides field to allow the user to easily Personal information is 4 days
enter their personal information such as: required to process a
name, address, income, SSN... quality tax form.
003 Peter Kehagias 9/1/2006 Allow the user to store their data so they can User should not have to 10 days
continue the process of entering information enter their information
during different session. multiple times.
004 Christan Grant 9/9/2006 The system shall start up with a log in Provide The User with a 2 days
screen. From this screen the user will have safe and secure log-in
the capability to login, register with their pre- experience.
created password, or exit the program/
005 Christan Grant 9/11/2006 The program shall provide the user with a This is to facilitate easy 6 days
drop down list of previously entered values entering of complicated
in a scroll list as they type in values to the items.
screen. This includes but is not limited to the
fields containing employment, money
earned, and others.
006 Peter Kehagias 9/13/2006 The system will temporarily save changes to This will prevent the 8 days
the user's information, once every five loss of data in the event
minutes, in a temporary save file. of a system crash, power
loss, or other
007 Peter Kehagias 9/13/2006 The system will present the user with To make sure the user 1 days
important dates for filing forms with the IRS. knows how much time
they have left to
complete their tasks
008 Scott Fagen 9/13/2006 When exiting the program the user is queried A feature to help 3 days
as to if they would like the changes they improve usability and to
have made to be updated. prevent loss of data.
009 Scott Fagen 9/13/2006 Documentation. Each part of the software Full explanations will 9 days
that requires user interaction should have a allow the user to get
form of assistance in the program. their worth from the
010 Peter Kehagias 9/18/2006 The user will be allowed to load their This allows saving the 7 days
previously saved data and continue where information to be
they left off. effective. If you can
save it, but not load it,
you can’t use it.
011 Christan Grant 9/18/2006 Information saved by the user will be This allows the both 3 days
encrypted into the file system. safety and security from
any unauthorized access
to the users CPU.
013 Peter Kehagias 10/3/2006 The user will be allowed to export the To allow the user to fill 1 day
calculated data to an easily printed text file. out their tax form
wherever they want, or
possibly bring the
information to a tax
consultant to consider