SRS on Online Exam Registration System

download SRS on Online Exam Registration System

of 30

description

For Anna university CS/IT OOAD Lab

Transcript of SRS on Online Exam Registration System

IEEE Software Requirements Specification Template

23

Software Requirements SpecificationforEXAM REGISTRATION SYSTEM

SVCE20.03.2014

ii

Table of Contents

1. Introduction11.1 Purpose 11.2 Document Conventions11.3 Product Scope11.4 References22. Overall Description22.1 Product Perspective22.2 Product Functions22.3 Operating Environment32.4 Design and Implementation Constraints32.5 Assumptions and Dependencies33. External Interface Requirements33.1 User Interfaces33.2 Hardware Interfaces33.3 Software Interfaces43.4 Communications Interfaces44. Functional Requirements45. Other Non-functional Requirements55.1 Performance Requirements55.2 Safety and Security Requirements55.3 Business Rules5

Software Requirements Specification for Page 3

IntroductionExaminations used to test the understandability of the Student and his ability to recollect it, using it in apt situation, reasoning and Analytics. Now a days, Instead of conducting examinations in papers, mostly everything is done online. Starting from question paper setting and till the report of statistical score is submitted online. Hence, we have developed an automatic exam registration system.

Purpose The developed product is a web-based examination registration system. It assists an examiner to create an exam by adding and modifying questions, supplying possible results of a question and selecting the intended group of students. Moreover the examination will have an overview of the results of an exam by student, group or other factors. A student can solve exams for which they are enrolled and view results and corrections of previous exams. The product benefits the examiner by simplifying and speeding up the work of creating and correcting an exam and provides an easy way to follow the results of a student or group of students. An administrator will setup and maintain the enrolments and courses. The product will be entirely accessed by a user-friendly web-interface which means that a minimum amount of computer knowledge is required to interact with it. Authentication: Every user (examiner, Administrator etc.) is authenticated before allowing to login.Study-materials: study material is available on line and is accessible depending on modules cleared.Result Analysis: Various results are prepared and also in-build functionality is available for analysis of results.Monitoring: Expert system can monitor students performance. The rules are added/modified by experts when and as required.Document ConventionsERS: Exam Registration System

HTTP: Hyper Text Transfer Protocol

GUI: Graphical User Interface

WWW: World Wide WebProduct ScopeThe developed project is supposed to have the following features

1. There are different kinds of Users (Administrator, Examiner, etc.) can log on to website and access it.2. There is a secure authentication system for different types of user access the website.3. Each every user has own privilege to access the site.4. Course materials are also available for different type of courses for which the student applies.5. It is used to create or modify the exam, which is done by the examiner6. It is also possible for the examiner to view the result of the student, department, College or university.7. Administrator is the one who takes care of the admissions, dates of examination and maintaining the results of examination.8. Administrator will register and authenticate the user before appearing for examination.9. A secure examination system can be established through which the risk factors in examination and mal practices during the examination can be avoided.10. Results and statistics are published then and there in a fraction of time.11. The results of previous examination and exams to be covered in future are also displayed.12. All the above can be accessed in a user friendly interface for which very basic knowledge about the computer is enough for understanding.ReferencesCraig Larman, Applying UML and Patterns, An Introduction to Object-Oriented Analysis and Design and iterative Development

Overall DescriptionProduct PerspectiveThe online exam registration system which includes registration, examinations and publishing results. This will improve the effectiveness of the examination and also reduce the work load of examiner by allocating the examination schedule based on the modules covered, allocating time table of examination based on the chapter and subjects. Allowing access for various types of users like Administrator, examiner, students, etc. Product FunctionsThe examination registration system is a real time examination system which is used for registering for the exam according to the available slots. More or less many product functions are explained in the product perspective itself. Now let us see about the functional components.

1. Administrator is provided with the ultimate authority of read, edit, modify and delete all the contents.2. Examiner is privileged to add, change, edit, modify and update the date of the examination if slots are available.3. The student users are allowed to access the catalogue which consists of study materials for many modules.4. The student is also privileged to cancel or reschedule an examination on account of payment5. A transaction slip is generated by the administrator after the registration

Operating EnvironmentThe ERS Software is developed to work on all Java enabled web browsers. Itll work on all Operating systems and requires an Internet connection. Design and Implementation Constraints1. The university information & communication system must be compatible with all the Web browser, Internet Applications and platform independent.2. The software should be connected to web server which runs 24x7.3. The user accessing the system from any computer must have an internet connection with all browsing capabilities.4. GUI is available only in EnglishAssumptions and Dependencies1. The users have sufficient knowledge of computers.2. The remote computer should have Internet connection and Internet server capabilities.3. The users know the English language, as the user interface will be provided in English.

External Interface RequirementsUser Interfaces1. LoginLog into the system as a Student or Examiner2. Course RegistrationRegister for a course3. Write ExamAnswer questions, traverse between questions, submit answers4. ResultsResults of previously written exams5. Study MaterialsDownload notes and other study materials6. Feed QuestionsFeed questions and answers into the database7. ReportsReports of student results8. Administer CoursesAvailability, fee, add and remove courses9. Administer StudentsAdd, remove, manage studentsHardware InterfacesSince the application does not have any designated hardware, it does not have any direct hardware interfaces. The physical servers are managed by the servers OS. The hardware connection to the database server is managed by the underlying operating system on the application server and the system.

Software InterfacesThe system shall interface with an Oracle or MSSQL or MySQL database.Communications InterfacesThe communication between the different parts of the system is important since they depend on each other. However, in what way the communication is achieved is not important for the system and is therefore handled by the underlying operating systems for both the application and the web portal. Required protocols - HTTPS, FTP etc.

Functional RequirementsUse Case 1: AuthenticatePrimary Actor: Student/FacultyPre-Condition: Nil Post-Condition: Fetch and load the details of the userMain Scenario:1. Start the application. User prompted for login and password.2. User gives the login and password.3. System does authentication.4. Selection screen is displayed. Alternate Scenario:5(a). Authentication fails5(a)1. Prompt user about wrong password5(a)2. Allow user to re-enter the password.

Use Case 2: RegistrationPrimary Actor: Student/FacultyPre-Condition: Student/Faculty selected the desired course.Post-Condition: Store details in database.Main Scenario:1. Student/Faculty fills in the other details2. Registers for the selected course. Alternate Scenario:3(a).Registration fails.3(a)1. System asks the user to re-enter the details. 4(a). Connection gets terminated.4(a)1.System redirects the user to Login or Selection Page.

Use Case 3: Take TestPrimary Actor: Student, SystemPre-Condition: Student enrolled in that coursePost-Condition: Store details in databaseMain Scenario:1. Questions are selected randomly and given to the student2. Student submit the answers3. System evaluates the answers4. System displays result of the student Alternate Scenario:None

Use Case 4: Feed QuestionsPrimary Actor: Faculty, SystemPre-Condition: Faculty selected the desired course.Post-Condition: Store details in database.Main Scenario:1. Faculty Provides the questions and answers to the questions2. System stores the details in database Alternate Scenario:NoneOther Nonfunctional RequirementsPerformance RequirementsPerformance requirements define acceptable response times for system functionality.1. The load time for user interface screens shall take no longer than two seconds.2. The log in information shall be verified within two seconds.3. Queries shall return results within five seconds.Security and Safety RequirementsSecurity: The files in which the information regarding securities and portfolios should be secured against malicious deformations.Fault Tolerance: Data should not become corrupted in case of system crash or power failure.Business RulesServer Administrator: under extreme circumstances the administrator has the privileges to back up the datas but cant modify the contents.User: has the rights to claim the payment made if the ticket is under waiting list on the date of the journey but 10% will be deducted. The user will be able to book for just 6 persons at a time.Analysis Models:USECASE DIAGRAM:It defines scenarios what are the functions used in the project and mention the participant or actors involved in project and it should be a verb. Use case is represented as an eclipse with a name inside it. It may contain additional responsibilities.

ACTIVITY DIAGRAM:

An Activity diagram shows sequential and parallel activities in a process they are useful for modeling business process Authenticate

Take TestView Result

UML CLASS DIAGRAM:It includes class diagrams to illustrate classes, interfaces and their associations .They are used for static object modeling.

UML INTERACTION DIAGRAM:

Sequence Diagram:

Sequence diagrams are used as a notation that can illustrate actor interactions and the operations initiated by them.

COMMUNICATION DIAGRAM:

Communication diagram is another form of interaction diagram. It represents the structural organization of a system and the messages sent/received. Structural organization consists of objects and links.The purpose of communication diagram is similar to sequence diagram. But the specific purpose of collaboration diagram is to visualize the organization of objects and their interaction.

UML STATE MACHINE DIAGRAM:

Any real time system is expected to be reacted by some kind of internal/external events. These events are responsible for state change of the system.State machine diagram is used to represent the event driven state change of a system. It basically describes the state change of a class, interface etc.Login

Take Test

UML COMPONENT DIAGRAM:

Component diagrams are used to describe the physical artifacts of a system. This artifact includes files, executables, libraries etc.

DEPLOYMENT DIAGRAM:

Deployment diagrams are used to visualize the topology of the physical components of a system where the software components are deployed. So deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams consist of nodes and their relationships.

Java ImplementationSystem.Java:import java.lang.*;import java.util.Set;import javax.swing.*;

/** * @author ita1143 * @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */public class System {/** * @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private static Student student;

/** * @uml.annotations for examiner * collection_type="Examiner" * @generated "UML to Java V5.0 (com.ibm.xtools.transform.uml2.java5.internal.UML2JavaTransform)" */private static Set examiner;

private static LoginForm loginForm;

public static boolean Authenticate(int type, String id, String password) {if(type == 2) {if(id.equals("Kirupakaran") && password.equals("qwerty")) {student = new Student();StudentMainForm.init(student);loginForm.setVisible(false); }}else if(type == 1) {if(id.equals("Kirupakaran") && password.equals("12345")) {Examiner e1 = new Examiner();ExaminerMainForm.init(e1);loginForm.setVisible(false);}}return false;}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {loginForm = new LoginForm();loginForm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);loginForm.setVisible(true);}});}}

LoginForm.Java:import javax.swing.SwingUtilities;

import java.awt.BorderLayout;

import javax.swing.ButtonGroup;import javax.swing.JPanel;import javax.swing.JFrame;

import java.awt.FlowLayout;

import javax.swing.JLabel;import javax.swing.JTextField;

import java.awt.Insets;import java.awt.Rectangle;

import javax.swing.JRadioButton;import javax.swing.JButton;import javax.swing.JPasswordField;

public class LoginForm extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JPanel panel = null;

private JLabel login = null;

private JTextField loginField = null;

private JLabel pwd = null;

private JRadioButton studentRadiobtn = null;

private JLabel jLabel = null;

private JRadioButton examinerRadiobtn = null;

private JLabel jLabel1 = null;private ButtonGroup bg1;

private JButton submit = null;private JPasswordField pwdField;

/** * This method initializes panel * * @return javax.swing.JPanel */private JPanel getPanel() {if (panel == null) {panel = new JPanel();panel.setLayout(new GridBagLayout());panel.setBounds(new Rectangle(292, 16, 0, 150));}return panel;}

/** * This method initializes loginField * * @return javax.swing.JTextField */private JTextField getLoginField() {if (loginField == null) {loginField = new JTextField(50);loginField.setBounds(new Rectangle(134, 58, 133, 22));}return loginField;}

/** * This method initializes submit * * @return javax.swing.JButton */private JButton getSubmit() {if (submit == null) {submit = new JButton("Login");submit.setBounds(new Rectangle(169, 195, 66, 28));submit.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent e) {if(studentRadiobtn.isSelected())System.Authenticate(2, loginField.getText(), String.valueOf(pwdField.getPassword()));else if(examinerRadiobtn.isSelected())System.Authenticate(1, loginField.getText(), String.valueOf(pwdField.getPassword()));//System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked()}});}return submit;}

/** * This is the default constructor */public LoginForm() {super();initialize();}

/** * This method initializes this * * @return void */private void initialize() {this.setSize(448, 321);this.setContentPane(getJContentPane());this.setTitle("Login");}

/** * This method initializes jContentPane * * @return javax.swing.JPanel */private JPanel getJContentPane() {if (jContentPane == null) {jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(261, 157, 74, 26));jLabel1.setText("Examiner");jLabel = new JLabel();jLabel.setBounds(new Rectangle(134, 157, 61, 27));jLabel.setText("Student");pwd = new JLabel();pwd.setBounds(new Rectangle(55, 107, 70, 16));pwd.setText("Password");login = new JLabel();login.setText("Login ID");login.setBounds(new Rectangle(55, 61, 59, 16));jContentPane = new JPanel();studentRadiobtn = new JRadioButton();studentRadiobtn.setBounds(new Rectangle(104, 157, 21, 21));studentRadiobtn.setSelected(true);examinerRadiobtn = new JRadioButton();examinerRadiobtn.setBounds(new Rectangle(226, 154, 17, 24));bg1 = new ButtonGroup();bg1.add(studentRadiobtn);bg1.add(examinerRadiobtn);jContentPane.setLayout(null);jContentPane.add(login, null);jContentPane.add(getPanel(), null);jContentPane.add(getLoginField(), null);jContentPane.add(pwd, null);jContentPane.add(studentRadiobtn, null);jContentPane.add(jLabel, null);jContentPane.add(examinerRadiobtn, null);jContentPane.add(jLabel1, null);jContentPane.add(getSubmit(), null);pwdField = new JPasswordField();pwdField.setBounds(134, 105, 133, 21);jContentPane.add(pwdField);}return jContentPane;}}

StudentMainForm.java:import java.awt.BorderLayout;import java.awt.EventQueue;

import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JLabel;import javax.swing.JButton;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;

public class StudentMainForm extends JFrame {

private JPanel contentPane;

/** * Launch the application. */public static void init(final Student student) {EventQueue.invokeLater(new Runnable() {public void run() {try {StudentMainForm frame = new StudentMainForm(student);frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}

/** * Create the frame. */public StudentMainForm(Student s) {setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(300, 300, 500, 309);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel lblWelcome = new JLabel("Welcome " + s);lblWelcome.setBounds(20, 11, 159, 14);contentPane.add(lblWelcome);JLabel lblSelectAnOption = new JLabel("Select an Option");lblSelectAnOption.setBounds(30, 44, 115, 14);contentPane.add(lblSelectAnOption);JButton btnWriteExam = new JButton("Write Exam");btnWriteExam.setBounds(56, 95, 123, 23);contentPane.add(btnWriteExam);JButton btnSeeMarks = new JButton("See Marks");btnSeeMarks.setBounds(56, 152, 123, 23);contentPane.add(btnSeeMarks);btnWriteExam.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent e) {WriteExamForm f = new WriteExamForm();f.setVisible(true);}});JButton btnEnrollInAnother = new JButton("Enroll in another course");btnEnrollInAnother.setBounds(254, 95, 171, 23);contentPane.add(btnEnrollInAnother);JButton btnNewButton = new JButton("Check Study Materials");btnNewButton.setBounds(254, 152, 171, 23);contentPane.add(btnNewButton);}}

WriteExamForm.java:import java.awt.BorderLayout;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JLabel;import java.awt.Rectangle;import javax.swing.JRadioButton;import javax.swing.ButtonGroup;import java.awt.Dimension;import javax.swing.JButton;

public class WriteExamForm extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null; // @jve:decl-index=0:visual-constraint="197,61"

private JLabel jLabel = null;

private JLabel jLabel1 = null;

private JRadioButton ans11 = null;

private JRadioButton ans12 = null;

private JRadioButton ans13 = null;

private JRadioButton ans14 = null;

private JLabel jLabel2 = null;

private JLabel jLabel3 = null;

private JLabel jLabel4 = null;

private JLabel jLabel5 = null;

private JButton Submit = null;

/** * This is the default constructor */public WriteExamForm() {super();initialize();}

/** * This method initializes this * * @return void */private void initialize() {this.setSize(500, 500);this.setContentPane(getJContentPane());this.setTitle("JFrame");}

/** * This method initializes jContentPane * * @return javax.swing.JPanel */private JPanel getJContentPane() {if (jContentPane == null) {jLabel5 = new JLabel();jLabel5.setBounds(new Rectangle(242, 229, 105, 16));jLabel5.setText("Bjarne Stroustrup");jLabel4 = new JLabel();jLabel4.setBounds(new Rectangle(102, 229, 87, 16));jLabel4.setText("Bill Gates");jLabel3 = new JLabel();jLabel3.setBounds(new Rectangle(242, 170, 106, 16));jLabel3.setText("Ken Thompson");jLabel2 = new JLabel();jLabel2.setBounds(new Rectangle(102, 170, 89, 16));jLabel2.setText("Dennis Ritchie");jLabel1 = new JLabel();jLabel1.setBounds(new Rectangle(52, 70, 280, 55));jLabel1.setText("Who developed C?");jLabel = new JLabel();jLabel.setBounds(new Rectangle(36, 31, 87, 16));jLabel.setText("Questions");ButtonGroup bg1 = new ButtonGroup();bg1.add(ans11);bg1.add(ans12);bg1.add(ans13);bg1.add(ans14);jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setSize(new Dimension(490, 464));jContentPane.add(jLabel, null);jContentPane.add(jLabel1, null);jContentPane.add(getAns11(), null);jContentPane.add(getAns12(), null);jContentPane.add(getAns13(), null);jContentPane.add(getAns14(), null);jContentPane.add(jLabel2, null);jContentPane.add(jLabel3, null);jContentPane.add(jLabel4, null);jContentPane.add(jLabel5, null);jContentPane.add(getSubmit(), null);}return jContentPane;}

/** * This method initializes ans1 * * @return javax.swing.JRadioButton */private JRadioButton getAns11() {if (ans11 == null) {ans11 = new JRadioButton();ans11.setBounds(new Rectangle(72, 170, 21, 21));}return ans11;}

/** * This method initializes ans12 * * @return javax.swing.JRadioButton */private JRadioButton getAns12() {if (ans12 == null) {ans12 = new JRadioButton();ans12.setBounds(new Rectangle(214, 170, 21, 21));}return ans12;}

/** * This method initializes ans13 * * @return javax.swing.JRadioButton */private JRadioButton getAns13() {if (ans13 == null) {ans13 = new JRadioButton();ans13.setBounds(new Rectangle(72, 229, 21, 21));}return ans13;}

/** * This method initializes ans14 * * @return javax.swing.JRadioButton */private JRadioButton getAns14() {if (ans14 == null) {ans14 = new JRadioButton();ans14.setBounds(new Rectangle(214, 229, 21, 21));}return ans14;}

/** * This method initializes Submit * * @return javax.swing.JButton */private JButton getSubmit() {if (Submit == null) {Submit = new JButton();Submit.setBounds(new Rectangle(177, 299, 105, 44));Submit.setText("Submit");Submit.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent e) {int x;if(ans11.isSelected())x = 1;else x = 0;System.EvaluateResult(x);}});}return Submit;}

}

ExaminerMainForm.java:import java.awt.BorderLayout;import java.awt.EventQueue;

import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.JLabel;import javax.swing.JButton;

public class ExaminerMainForm extends JFrame {

private JPanel contentPane;

/** * Launch the application. */public static void init(final Examiner e) {EventQueue.invokeLater(new Runnable() {public void run() {try {ExaminerMainForm frame = new ExaminerMainForm(e);frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}

/** * Create the frame. */public ExaminerMainForm(Examiner examiner) {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel lbl = new JLabel("Welcome " + examiner);lbl.setBounds(21, 11, 201, 14);contentPane.add(lbl);JButton feedbtn = new JButton("Feed Questions");feedbtn.setBounds(66, 36, 177, 30);contentPane.add(feedbtn);JButton checkStatusbtn = new JButton("Check Result Status");checkStatusbtn.setBounds(66, 107, 177, 30);contentPane.add(checkStatusbtn);}

}

Sample Output:

RESULT: Thus UML models for Exam Registration System have been designed and implementation has been performed successfully using IBM Rational Software Architect.