CS623 Fall Â’09 Project One

Retirement Planning Calculator

American Savings Education Council provides a method, known as Ballpark Estimate, for the user to determine the annual amount of money one needs to save in order to meet his/her financial objectives at retirement. See the worksheet for the detail. Additional information can be found on their Web page at http://www.choosetosave.org/ballpark/. Although the method is quite easy to follow, one must perform the calculation by hand. Here, you are asked to develop a Java applet for helping the user use this method. Basically your program will take input from the user, perform calculation, and display the result. Note that the Ballpark Estimate method described in the worksheet can be used for both a single and married couple. In this project, you will only take a single into consideration.

Requirements for this project are given as follows:

1. When started in a Web browser, your applet should roughly look like the one shown above. The html file that brings up the above window is given as follows.

    <HTML>

    <HEAD> <TITLE> CS623 Project Two </TITLE> </HEAD>

    <BODY>

    <CENTER><H1><B>Retirement Planning Calculator</B></H1></CENTER>

    <CENTER><P><B>Ballpark Estimate by American Savings Education Council</B><P></CENTER>

    <CENTER><APPLET ARCHIVE = calculator.jar CODE ="calc.class" WIDTH=400 HEIGHT=250></APPLET></CENTER>

    </BODY>

    </HTML>

2. A panel (that is, a JApplet) shown in the page takes input from the user. User input includes user's name, birthday, as well as other data required by the Ballpark Estimate method. Do not ask the user to provide any value that can be calculated from what is available. For example, the social security income can be calculated from the user's current annual income according to the rules stated in the worksheet. Your application should ask the user for his/her annual income and do the calculation for the user, rather than having the user to do oneself. Also allow the user to select a value for a data field, instead of typing it, wherever appropriate. If there are different ways to determine the value for a field such as the expected annual income in retirement, give the user the maximum flexibility.
3. Remember that when the user uses your application, they do not need to refer back to the worksheet, meaning that they can base solely on what your user interface provides to work out a retirement saving plan. Hence, your application's user interface should provide adequate information for the user to understand how to proceed step by step. Also your application may provide additional information so as to make it convenient for the user to plan for retirement, for example, displaying both the annual amount and monthly amount that the user needs to save.
4. Provide three buttons, Calc, Print, and Reset, in the panel. Button Calc performs calculation according to the method and displays the result in the panel. Button Print brings up a read-only dialog showing a summary of the resulting plan in a printable form. For completeness (since it will be used as a standalone document), the summary should include all relevant information. Button Reset either sets a data fields to its default value if any or leaves it blank.
5. Perform field validation for input data. Provide a tooltip for each of the key components in the panel. Also highlight the value in a data field when the data field receives the focus in order to make it easier for the user to change that value.
6. Use the MVC architecture to implement this program.

You need to understand the Ballpark Estimate method and decide what input would be necessary before selecting appropriate screen element and working out the layout. Use appropriate design techniques, such as grouping, to enhance your programÂ’s usability.

You should take the following steps in this project:

1. Develop an applet according to the requirements as described above and turn in the html document and jar file for your program via Blackboard on Oct. 6.

2. Find two different persons and let them use your program. You can discover usability issues via observation on the users using your program and discussion with them after they are done. You may give the user a brief introduction to your program at the beginning and then allow the user to proceed on oneÂ’s own. In order to find which part of the user interface does not work for the user, do not provide additional help when the user is using your program.Â

3. Redesign the user interface of your program according to what you learn from the usability evaluation.

4. Write a report on the usability evaluation that you performed. Your report needs to describe characteristics of the users, discuss usability issues you found, explain conclusions you came up with, and redesign decisions you made. Be prepared to share your findings with your classmates in class.

5. Turn in a hardcopy of selected screenshots, the source code, and the report in class on Dec. 8. And also turn in the html document and jar file for your project via Blackboard.