CS 350 Software Design / SE 310 Software Architecture

Posted nameptyhon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS 350 Software Design / SE 310 Software Architecture相关的知识,希望对你有一定的参考价值。


CS 350 Software Design / SE 310 Software Architecture I
Homework Assignment - Part 1
NOTE: this is a very demanding project and it will require a lot of effort and a substantial amount of time. For part 1 of this project, spending a just few hours or submitting just the outline we will do in class will not be sufficient and will earn you a very low grade.
Instructions
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, loaded, taken and tabulated/graded. The survey should be stored in a file system, you may use an XML or a binary 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, and 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. Each test question, aside from essays, should have some sort of correct answer. This implies that each question can therefore be graded.
4. A results module should be developed that indicates the totals for a particular survey or test.
This assignment will be given in four parts.
For Part I, turn in a PDF or very high-resolution jpg/png of your UML generated from a computer program. Please DO NOT hand write your UML You will be given no credit if you do.
It is important that you read the instructions for parts 2 and 3 of this project before you start designing your UML so you have complete picture of the scope of the project. You can find instruction for parts 2 and 3 in Bb Learn and we also will review them in lecture.
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. Also, note that if you cannot get portions of this program to function properly, you will not pass the course, regardless of your grades in the midterm and final exam. Successfully completing this assignment is a key part of this class.
TIPS:
Many students get themselves in trouble not because they do not code well, but because of their approach. This is a large, yet not complex, assignment for students at your level. With a good approach, you will save a lot of time. Therefore, please follow these hints to improve your chances of successfully completing the project on time.
1.Learn how to use serialization. It is usually easier than other file saving methods. Many students nod and wave when we mention this then code their programs and add the file saving later. When a bug arises, they do not know if it is in their main code or file saving/loading code. Instead, create a vector of objects; serialize it to a file, and the load it back into memory. If you understand the syntax and subtleties of serialization before you start, you will be far better off. Do this before you do your UML, so you understand what needs to be in your UML for file saving.
2.Students sometimes complain that when we give this assignment out we have thrown them in the deep end at the beginning of class. However, you don‘t have to feel like you are desperately trying to tread water. If this assignment was given and you were just asked to code, many of you would not think about it, code in a spaghetti manner, and just trudge through. Then like many projects, when you are done, you will say I wish I had coded it this way or that way. Now is your chance to think it through before you start. Still, it could be intimidating, so try to work on a slice of the program. Create a survey that just does true / false and multiple-choice questions. Allow it to create questions, display them, take them, save them, load them, etc. Learn from writing the smaller program. Then design your UML, make any changes to the original program (or throw it out altogether), and then code the program in its entirety.
Past Questions/Answers
*** READ this section before asking your own questions!
1.When the user is under the survey mode, is he/she allowed to give a null answer, to any question, regardless of the type of question, whether it be multiple choice, short answer or matching? On the other hand, 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 am asking whether each question regardless of type has a default answer or not.)
No null answers are permitted.

代做CS 350作业、代写Software Design作业、代做JAVA课程设计作业
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 later 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, shown in the UML 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.informit.com/articles/article.aspx?p=29224&seqNum=2
http://www.agilemodeling.com/style/classDiagram.htm
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 of them worth 10% each, or can the first 5 be worth 15% and the last 5 be worth 5%?
No, keep it simple. All questions are weighted equally.
9.Because essays and short answers obviously cannot 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 as we did in class, and have each type of question have its own class. I was thinking about combining some of them. For example, makingaWrittenAnswerclassandgivingitamaxlengthattributethatdefaultsto 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 decides how many questions are added to the survey.
14. Are we are supposed 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.

Homework Assignment - Part 2: Creating, Displaying and Storing a Survey/Test to a File
Main driver 10%
Your program should operate from a text menu with options. For Part 2, you must have an option to create a new survey and add new question of types: true/false, multiple choice, short answer, essay, rank the choices, and matching.
i.e. Menu 1
1) Survey
2) Test
i.e Survey Menu 2
1) Create a new Survey
2) Display a Survey
3) Load a Survey
4) Save a Survey
5) Quit
i.e Survey Menu 2
1) Create a new Test
2) Display a Test
3) Load a Test
4) Save a Test
5) Quit

When option 1 is selected from Menu 2, then a follow up menu is shown.
i.e. Menu 3
1) Add a new T/F question
2) Add a new multiple choice question 3) Add a new short answer question
4) Add a new essay question
5) Add a new ranking question
6) Add a new matching question
Creating the Survey/Test: 27%
True/False 3%
Multiple Choice 3%
Short Answer 3%
Essay Answer 3%
Rank the Choices 3%
Matching 3%
Handles improper input 3%
Single answer per question 3%
Multiple answers per each question 3%
i.e. Test Menu 2
1) Create a new Test 2) Display a Test
3) Load a Test
4) Save a Test
5) Quit
When you enter a new question for a survey or test, you must ask for the appropriate information depending upon the type of question.
i.e T/F is selected from Menu 3
Enter the prompt for your True/False question:
User types their prompt here.
i.e Multiple Choice is selected from Menu 3
Enter the prompt or your multiple-choice question:
User types their prompt here.
Enter the number of choices for your multiple-choice question.
User types the number of choices.
Enter choice #1.
User types choice 1.
Enter choice #2
User types choice 2....
If you were filling out a test instead of a survey, then you would need to add an additional prompt
and query the user for the correct answer. i.e.
Enter correct choice
User types the number of the choice they want to be the correct answer
Reasonable error checking should be included. For example, the application should only allow a valid option to be entered.
Displaying a Survey/Test 16%
When option 2 is selected from Menu 2, the Survey/Test should be displayed to the screen.
This requires that each question have a method to display itself.
True/False 2%
Multiple Choice 2%
Short Answer 2%
Essay Answer 2%
Rank the Choices 2%
Matching 2%
Single answers per question 2%
Multiple answers per question 2%
i.e. Display a Survey is selected from Menu 2 1) This is an example of a T/F question?
T/F
2) This is an example of a multiple-choice question with 3 choices? A) Choice 1 B) Choice 2 C) Choice 3
etc...
i.e. Display a Test is selected from Menu 2
1) This is an example of a T/F question? T/F
The correct answer is T
2) This is an example of a multiple choice question with 3 choices? A) Choice 1 B) Choice 2 C) Choice 3
The correct choice is A) Choice 1
etc...
Loading a Survey/Test: 16%
When option 3 is selected from Menu 2, the Survey/Test must be loaded from a file. You can decide on the file type. Be aware, some types are easier to verify that they work than others. i.e. Serializing vs. XML. You should present a menu of possible files to load and allow the user to select one of the files.
i.e.
Please select a file to load: 1) Survey 1
2) Survey 2
3) Test 1
4) Survey 3
True/False 2%
Multiple Choice 2%
Short Answer 2%
Essay Answer 2
Rank the Choices 2%
Matching 2%
Single answers per question 2%
Multiple answers per question 2%
Saving a Survey/Test: 16%
When option 4 is selected from Menu 2, the Survey/Test must be saved to a file. You can determine the file type. Be aware, some types are easier to verify that they work than others. i.e. serializing vs. XML.
True/False 2%
Multiple Choice 2%
Short Answer 2%
Essay Answer 2%
Rank the Choices 2%
Matching 2%
Single answers per question 2%
Multiple answers per question 2%
Comments and Overall Style: 6%
PLEASE NOTE: You must include the entire project and all its files. Place these files in a Zip not Tar file. Load a single file to Drexel Learn with a ReadMe file that explains any issues, what method you used for saving a file, and where the sample files are located.
Also, your sample files should have a relative address from the binary. Do not use absolute paths as they won‘t work when we are grading them.
YOU MUST have file saving and loading working to submit this assignment. If you are missing a type of question or multiple answers, you can turn it in and you will lose the points for those types of questions. Make sure you create sample files with at least one of each type of question in it.
Handling Improper Input (9%)
Your program should gracefully handle inappropriate input and NEVER crash.

Homework Assignment - Part 3: Modify a Survey/Test, Take a Survey/Test, Tabulate and Grade a Survey/Test
Add to the Menu 2 options to take and to modify a survey/test as well as to tabulate a survey/test and grade a test.
i.e.
i.e. Survey Menu 2
1) Create a new Survey 2) Display Survey
3) Load a Survey
4) Save a Survey
5) Modify an Existing Survey 6) Take a Survey
7) Tabulate a Survey
8) Quit
i.e. Test Menu 2
1) Create a new Test 2) Display a Test
3) Load a Test
4) Save a Test
5) Modify an Existing Test 6) Take a Test
7) Tabulate a Test
8) Grade a Test
9) Quit
Modifying an existing Survey/Test (14%)
Modify your program so that each type of question can be modified not simply deleted and replaced.
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 - 2%
When you select option 5 from Menu 2, prompt the user to ask which survey/test to modify i.e.
What survey do you wish to modify?
Enter existing Survey name
Next, ask what question you wish to modify. i.e.
What question do you wish to modify?
Enter existing question.
If you select multiple choice, the program should first ask you if you wish to modify the prompt and then ask which choices you wish to change.
i.e.
Display the prompt for the existing question Do you wish to modify the prompt?
User response entered
If the Answer is Yes Display the prompt.
Enter a new prompt:
New prompt entered
Do you wish to modify choices?
if the Answer is Yes d isplay the choices
Which choice do you want to modify? A) Choice 1 B) Choice 2 C) Choice 3 Choice is entered
New Value is entered
If instead the user picked to modify a test, your program should have one more prompt. i.e.
Do you wish to modify the correct answer?
If the answer is Yes, prompt:
What choice do you wish to make the new correct answer?
User enters their choice
Filling out a Survey/Test (20%)
After selecting option 6, the user is prompted to enter the name of the survey/test to take and then
the questions are asked and answered i.e.
Enter the name of the test you wish to take: testName
What is your favorite movie? Fletch
What is the most evil team in football?
A) Dallas Cowboys B) New England Patriots C) New York Giants
A
Aspects to consider
Multiple Multiple Choice questions:
If you are taking a multiple multiple choice question, you need to determine how many options the person is going to enter. Please make it obvious.
i.e.
What teams are evil in football? Please give two choices:
A) Dallas Cowboys B) New England Patriots C) Philadelphia Eagles
A B
Multiple essay questions:
Some students questions whether an essay question can have multiple answers. There is no problem with this. Each essay could have two paragraphs.
i.e.
Give two reasons why Star Wars is better than Star Trek:
A) Star Wars has Yoda, Star Trek has Tasha Yar. Nuff said.
B) Star Wars consistently breaks new ground with effects. Star Trek follows suit.
Matching questions:
You should make your Matching questions look presentable. i.e. two columns neatly formatted. This really is not difficult. Then you can enter a letter and number combination on each line.
Match the team with the city
A) Yankees 1) Philadelphia B)Phillies 2)NewYork
C) Red Sox 3) Boston
A2 B1 C3
Note: Whether you choose a test or a survey filling out a survey/test is the same. Results should be automatically saved after completing it. You do not have to worry about people starting and stopping the survey/test in the middle.
Saving the responses of a Survey/Test (15%)
After each survey or test is taken, the results must be stored in a file. You may choose whatever file representation scheme you like.
NOTE: A Test can be both tabulated and graded! Grade a test: 23%
Each test can be graded.
Grading is automatic.
All questions are worth equal points.
Essay questions cannot be graded.
If there are 10 questions, 1 essay question and a student gets 8 of the 9 non essay
questions correct, the program should output 80/90 as the actual grade.
Tabulate a Test/Survey: (23%)
Some questions can be tabulated, others can simply show the responses by responders placed together.
For each test or survey tabulated.
True/False: Output the total True responses and total False responses.
Multiple Choice: Output the total number of responses for each choice.
Short Answer: Output the total number of each response. Do not worry about combining
spelling issues and such.
Essay Answer: Simply list all of the answers
Matching and Ranking: List the number of each permutation submitted and the
Example 5 answers to True/False Questions: Question:
Star Wars is the Greatest Movie Franchise. True / False
Replies:
True
True
False
True
True
Tabulation:
Star Wars is the Greatest Movie Franchise. True: 4
False: 1
permutation.
Example 4 answers to Multiple Choice Questions: Question:
What is A) I B)
Replies:
D E D E
Tabulation:
What is your favorite Star Wars movie? A: 0
B: 0
C: 0
D: 2 E: 2 F: 0
Example 5 answers to Short Answer Questions: Question:
What is your favorite Star Wars movie?
Replies:
IV V V IV V
Tabulation:
What is your favorite Star Wars movie? IV 2
V3
Example 3 answers to Essay Questions: Question:
Why is your Star Wars your favorite movie?
Replies:
Star wars combines a mythos second to none.
Could it get any better than Darth Vader being Luke Skywalkers‘ father? Lucas created a completely new world of special effects.
your favorite Star Wars movie? II C) III D) IV E) V F) VI
Tabulation:
Star wars combines a mythos second to none.
Could it get any better than Darth Vader being Luke Skywalkers‘ father? Lucas created a completely new world of special effects.
Example 3 answers to Ranking Questions: Question:
Rank your three favorite Star Wars movies:
Replies:
V IV VI
V IV II I
V IV VI
Tabulation:
2 V IV VI
1 V IV II I
Example 3 answers to Matching Questions:
Question:
Match the team with the city
A) Yankees B) Phillies C) Red Sox
Replies:
A2
1) Philadelphia 2) New York
3) Boston
B1 C3
A1 B2 C3
A2 B1 C3
Tabulation:
2 A2 B1 C3
1 A1 B2 C3
PLEASE NOTE: You must include the entire project and all its files. Place these files in a Zip NOT Tar file. Load a single file to Drexel Learn with a ReadMe file included that explains any issues, what method you used for saving a file, and where the sample files are located. In addition, your sample files should have a relative address from the binary. Do not use absolute paths, as they will not work when we are grading them. YOU MUST have file saving and loading working to submit this assignment and include a test and survey with all six question types that can be loaded. Also, include at least three sets of responses for each test/survey. If you are missing a type of question or multiple answers, you can turn it in and you will lose the points for those types of questions.
Handling Improper Input (5%)
Your program should gracefully handle inappropriate input and NEVER crash.

 

因为专业,所以值得信赖。如有需要,请加QQ99515681 或邮箱:[email protected] 

微信:codinghelp

以上是关于CS 350 Software Design / SE 310 Software Architecture的主要内容,如果未能解决你的问题,请参考以下文章

Scalable Cross-Platform Software Design

: Software architectural design

: Software architectural design

Software--Architecture--Design DataAccess 数据访问

Top 5 Object Oriented Design Interview Questions for Programmers, Software Engineers

CS231n笔记 Lecture 8, Deep Learning Software