Homework Assignment #1
CS 350: Software Design
Fall 2009
DUE DATES ARE Friday NIGHTS
Three part Assignment: Due Wednesday October 14th, Wednesday October 21st,
and October 28th at 11:59 PM the day its due!
Your task is to develop a generic survey/test taking system. The system is to be written in JAVA. The following system requirements must be met.
1) Develop a system that allows a survey/test to be entered, modified, stored, and taken. The survey should be stored in a flat file system, you may use an XML format, but do not have to. Each survey should be stored in an individual file.
2) A survey/test can be composed of any combination of: True/False, Multiple Choice, short answer, essay answer, matching, rank the choices. Each question can accept a single answer or if appropriate, multiple answers. Obviously a True/False question would not accept multiple answers.
3) Some surveys could have correct answers and therefore could be graded.
4) A results module should be developed that indicates the totals for a particular survey.
This assignment will be given in three parts.
The first part is to design and draw your class structure in Dia. You will be graded on the completeness of your design and your UML.
The second part is to develop the system that allows a survey/test to be entered, modified, and stored, store a correct answer if possible.
The third part is to complete the assignment by allowing people to take the survey, get graded if appropriate, and total the results.
Grading Guidelines:
Part 1:
Quality and Completeness of Design, includes reasonable use of inheritance and
aggregation/composition. 50%
Quality and Completeness of UML, 50%.
Part 2:
Entering the survey: 50%
True/False 5%
Multiple Choice 5%
short answer 5%
essay answer 5%
rank the choices 5%
Handles improper input %5
Multiple answers per each question 10%
Main driver 10%
Modifying an existing survey: 25%
True/False 3%
Multiple Choice 3%
short answer 3%
essay answer 3%
rank the choices 3%
matching 3%
Handles improper input 3%
Multiple answers per each question – part of each section
Main driver 7%
Storing a survey: 15%
True/False 2%
Multiple Choice 2%
short answer 2%
essay answer 2%
rank the choices 2%
Matching 2%
Multiple answers per each question – part of each section
Main driver 3%
Overall style of code & comments: 10%
Part 3:
Take a survey: 45%
Grade a survey: 20%
Total results: 25%
Overall style of code and comments: 10%
A FINAL NOTE: If your code does not compile or does not work properly, you must indicate to the TA what works and what does not or you will be docked additional points.
Questions/Answers
1. When the user is under the survey mode, is he allowed to give a null answer, to any question, regardless of the type of question, whether it be multiple choice, short answer or matching? Or, should the admin be given the option to make certain questions not require an answer? Or should the overall design allow for such a change to take place in the future? (I guess I’m asking whether each question regardless of type has a default answer or not.)
No null answers are permitted.2. Under the testing mode (or survey mode), is the user allowed to skip questions and return to them later? That is, should the user be allowed to return to previously answered questions before the final submission and modify any of his responses?
You are not allowed to skip questions.3. Should the user be allowed to quit the test or survey before
completion? If the user does decide to quit, should his previous responses be saved so that he can resume the test at a later time by selecting from a bank of saved but incomplete tests?You should not allow a survey to be quit in the middle.4. If at all grading is a future requirement, should the design allow for such a change to be implemented down the line?
Yes, it should be a complete design.
5. Is the main class, the driver of the application, in the UML, and
if so is it specified in a special way?Yes, and not special way.
6. If one were to implement a Java interface, and have classes
implement the interface, how is this represented in UML?See the following link. They just add the word interface in the class.http://www.awprofessional.com/articles/article.asp?p=29224&seqNum=2&rl=1
7. Can a question, say Matching or Multiple-Multiple choice, be
partially right, and if so should partial credit be given for that question proportionate to the percentage correct?No, keep it simple. All right or all wrong.8. Can different questions be weighted differently? e.g. A test has 10 questions, are all always worth 10% each, or can the first 5 be worth
15% and the last 5 be worth 5%?No, keep it simple and all the same.9. Also, essays and short answers obviously can't be graded
automatically. Should the final score when grading ignore the essays? e.g. I have a test with 10 questions and 2 additional essays, all 12 are weighted equally. The 10 questions can be graded automatically and are all right. Should the grade displayed be a 100% with a note about
needing to grade the essays, or should the grade be an 83.3 with a note about needing to grade the essays?Short answers can be graded automatically. Don’t grade the essays. Use 100% and a note about the essays.
10.I was just wondering if you wanted us to set up our classes like we did in class, and have each type of question have its own class. I was thinking about combining some of them. For example, making a WrittenAnswer class and giving it a max length attribute that defaults to no maximum, or giving the multiple choice class a choices attribute that defaults to True/False. Or is there something bad about this I'm not seeing?
You are free to design the assignment however you wish. Just keep in mind that you will be graded on your design.
11.Also, was it decided that more than one choice can be chosen for multiple choice questions, or was that just for ranking/matching? Multiple choice, short answer, and essays can all have multiple answers.12. Who decides the number of questions that should be there in the test/survey? Is it the admin?
Admin
13. How many T/F or MC or other types of questions should be present in both the survey and the test?
The admin of the test/survey decided how many questions are added to the survey.
14. We are suppose to make up the questions on our own? The program allows the admin to make up any questions they wish.15. And exactly what should we display as an output?
The program needs to be menu-based allowing you to access all the functionality discussed. You do not turn in output. You turn in a functional program.