User talk:Jungledrew64/CS 1530 Software Engineering Document

Software Plan
--Scope--

SOTEC is a comprehensive testing center for students and instructors. Through secure RSA encryption it provides students with the ability to take mock exams as well as actual exams. The software provides valuable feedback to the student by allowing them to view their progress on practice exams and saves the instructor valuable time by auto-grading the students' actual exams.

---Functions---

The testing center will be able to:
 * Verify a students identity and log them into the system
 * Display a list of courses which the student is enrolled
 * Display a list of real and mock exams available to the student
 * Lock real exams until a specific time and re lock them once the time has expired
 * Grade submitted exams based on the exam keys stored in the database
 * A method for the teacher to manually regrade the students assignments and give partial credit.

---Performance---

will be able to handle five hundred users at any given time. It can also house approximately one hundred thousand user profiles. The software will be able to process data and transfer between screens almost instantly and will be able to load in a few seconds. Hence, it can practically enable any size class to use this software for examinations with any significant delays.

---Limitations---

The testing center will not provide:
 * A means of teacher student communication. ex E-Mail, Discussion Boards, Posts, etc.
 * A means of sharing documents or files. ex Syllabi, Written Assignments, Programs, etc.
 * A means of student student communication.

--Tasks--

This project requires two primary tasks. We must develop a server program and a client program.

---Server---

The server will house all of the necessary databases. As of now those databases are: The Student database will be required to store the answer keys to all of the exams the student has taken and the classes the student is enrolled in. The answer keys will be a sequence of code in the following format:
 * Valid Students
 * Valid Professors
 * Classes
 * Practice Exams
 * Real Exams

Question Pointer | Student's Answer | Correctness Percentage

The Teacher database will be required to store references to the exams the teacher has made and the classes the teacher teaches.

The classes database is simple and only keeps track of teachers, students, and exams registered to that class.

The exams databases will store questions in relation to the exams they are from. This way the exam questions can appear in different orders and the practice exams can be entirely different each time they are taken.

---Client---

The client should be one program that distinguishes, upon logon, a student from a teacher and launches the appropriate User Interface.

Teacher

The teacher UI must provide the teacher with the possibility to:
 * Add exams to the database.
 * Add classes to the database.
 * Add students to the database.
 * Add other teachers to the database.
 * Lookup and regrade a student's submitted assignment.

Student

The student UI must provide the student with the possibility to:
 * View enrolled classes.
 * View\Take available assignments.
 * View graded assignments.

--Resources--

This project will require each team member to have access to a computer running Windows XP or Vista.

---Hardware---

The minimum hardware that the program will be tested on will be:
 * 1.7GHz Intel Celeron Processor
 * 512 MB of RAM

No accelerated graphics cards will be required.

---Software---

Required Software is:
 * Microsoft Windows XP
 * Java Run Time Environment for Windows
 * A text editor or IDE for writing code

---People---

Ryan/Mike - GUI

Ryan/Mike - Networking

Josh - Documentation

Shey/Andrew - Utility Classes, Databases/Programming

Group - Testing and Documentation

--Cost--

This project will cost the designers 3 credit hours worth of tuition per person. Current tuition rates are $534 per credit hour. So total cost to be billed will be: $534 * 3 credits * 5 students = $8,010

--Schedule--

This project is to be completed by December 2, 2008. Project due dates: Milestone 1 - Thursday, September 18 Milestone 2 - Thursday, September 25 Milestone 3 - Thursday, October 2 Milestone 4 - TBA Milestone 5 - Thursday, November 13 Milestone 6 - Thursday, November 20 Presentation - Tuesday, December 2

Outline
This a general outline expanding on the program details given to us. Please feel to make changes to this and expand it.

Regarding Authenticating the Student:

- Store the details of the Student in a Table including FirstName, User ID, Password,courses etc..

- Check if the user ID, course and password entered by the student matches the values in the database.

- if the details match User is prompted to the home screen.

- if values are filled in these fields are partially correct then different messages should be prompted. Ex: if the User enters the user name and password correct, but course value wrong then a message such as "User found but the selected course is invalid for the current user".

Accessing the test from test Database:

- Test Questions and their answers are stored in Test Database.

- Probably, different types of questions are stored in different tables.For example, Multiple choices are stored in one table and True or False are stored in other table.

- The Tables should contains fields to indicate which course a question belongs to.

- Answers to the questions should also be included in separate fields in those tables.

- Different options for multiple-choice questions should also be included in the database.

- The test questions could be populated randomly or using difficulty criteria.

- Using the values in the database, test questions are displayed in line as student answers questions until the last question or until the time runs out.

Grade the test:

- After the test is completed the answers entered by the students are compared with answers in the database.

- A counter is used to gather the score if the answer of the student matches the answer in the database.

- Possibility: Storing the answers of the student in the database could be useful if in-depth analysis of the results is needed. Ex: comparing the results from other students graphs etc..

- The score is stored into a table called student grades which is linked to student table.

Learning Mode:

- Mock test database is similar to the real test database.

- The process replicates that of a student taking a real test. However, there two main differences.

- The values entered by the student must be stored in a table. So, that student can compare the answers he entered to the correct answers for the questions after the test.

- The scores in the learning mode are not stored into a student grades table. —Preceding unsigned comment added by 71.61.242.54 (talk) 01:43, 9 September 2008 (UTC)

Sample Software Plan:

1.0 Scope:

The program is to create a Student Testing Center. The testing center can let students take tests, grade their tests, add the results of the tests to the student grade book.

1.1 Functions:

Authenticate the student to enter the Testing Center based on the user name and password. An Authorized student has the ability to take a test on a appropriate course. The test has set of True or False and Multiple choice questions. Test questions are displayed in a series until the last question is answered or until the time runs out. Depending on the answers given by the student, the grade of the test is calculated after the test is completed and the grade of the test is shown to the student. The grade of the test is entered back into student grade records and overall grade for the student is updated. At the end of the test, student has the ability to review his answers. The student has a learning mode where he is subjected to practice questions that represent the Actual test. In the learning mode student has the ability to see correct answers to questions he made mistakes on. Student also has the ability to communicate with the teacher during the test to ask questions.

1.2 Performance:

1.3 Limitations:

This test can only provide multiple-choice and true or false questions since they can be grade instantly. The testing center does not register a student for a course, it only authenticates registered users. The student cannot pause the test. Student should finish the test in the specified time.

2.0 Tasks: Programmer: Creating the user Interface and Gui's.       Creating the programming code to drive the program. Linking to the database to retrieve and update data. Database Programmer: Design the tables and forming relationships between tables. Entering data into tables. Provide support for Data Maintenance and Integration.

Tester: Test the code for bugs and Enhancements. Provide suggestions for improvements to the program.

User Interface Designer: Design the user interface for the program. Provide changes to the user interface based on the programmer. Documenter: Edit and review the documentation provided by other team mates. Provide Documentation for User Manual,Design Spec etc..

Manage: Making sure the tasks are completed before the deadline to provide time for review among the group. Making changes to different tasks based to team consensus.

3.0 Resources:

 3.1 Hardware: Processor: Server: 3.2 Software: Operating System:  (Windows since almost any body has it) Programming Language: Java Database:   (Microsoft Access or MySql)  3.3 People: Ryan/Mike - GUI Ryan/Mike - Networking Josh - Documentation Shey/Andrew - Utility Classes,Databases/Programming Group - Testing