Professional Documents
Culture Documents
Spring 2011
Certificate of Approval
It is certify that the semester project of BS (CS) MyCourses-A Course Scheduling System was analyzed and designed by the following mentioned group members using object-oriented techniques under the guidance of Miss Sarah Masood and supervision of Mr. Saif ur Rehman Khan that in their opinions; it is fully adequate, in quality for passing the Software Engineering-II (CSC 392) course of the degree of Bachelors of Science in Computer Sciences. 1. Miss Fareeha Amjad (SP09-BCS-014) 2. Miss Asma Kaleem (SP09-BCS-006)
________________________ (Supervisor)
Table of Contents
1. 2. 3. 4. Executive Summary ............................................................................................................................... 3 Vision Document ................................................................................................................................... 4 Software Requirement Specification .................................................................................................... 8 Software Project Plan: ........................................................................................................................ 16
Brief use-cases: ............................................................................................................. 84 Expanded Use-Cases: ................................................................................................... 85 Use Case Model: ........................................................................................................... 93
1213141516171819CRC Index Cards .............................................................................................................................. 94 Role Play Diagrams (RPD) .............................................................................................................. 109 System Glossary ............................................................................................................................ 139 Conceptual Model ......................................................................................................................... 140 System Operations ........................................................................................................................ 143 Operation Contracts...................................................................................................................... 145 System Sequence Diagrams: ......................................................................................................... 151 UML Diagrams ............................................................................................................................... 156
123456-
Class Diagram ..................................................................................................... 156 Component Diagram ........................................................................................... 157 Deployment Diagram .......................................................................................... 158 Package Diagram ................................................................................................ 159 Activity Diagram ................................................................................................ 160 Sequence Diagram .............................................................................................. 163
1|Page
20-
2|Page
1.
Executive Summary
Course scheduling is a tedious and error-prone task when done manually or semi-manually. For this reason a program that can automatically produce course scheduling with given requirements and constraints is very important. The goal of this project is to develop a course scheduler, MyCourses. MyCourses will make it possible to enter data and requirements in a simple way using a web-based interface, calculate and propose a schedule, enable manual updates, and finally present the schedule for the selected courses. Since different people (students, lecturers, program planners, etc.) will use the program its user friendliness is crucial. An efficient automatic scheduling is also important, but even more important is a possibility to manually reschedule or pre-schedule some courses or course elements (like lectures, labs, etc.). The goal of this project is to develop a course scheduler. Every university each year is facing with the same problem: How to schedule a large number of courses in an optimal way while fulfilling a number of constraints, such as available lecture rooms, limited availability of lecturers, students selections of the courses, and similar. MyCourses makes it possible to enter data and requirements in a simple way using a web-based interface, calculate and propose a schedule, enable manual updates, and finally present the schedule (manually re-schedule or preschedule some courses) for the selected courses. The program should be implemented as a distributed web-based, application, and data should be stored in a database. My Courses will be implemented as an interactive program that enables entering data, calculates and proposes a scheduling for courses, makes it possible to manually update the proposed schedule, but keeping track of the consistent scheduling, and provides a presentation of scheduled courses. The document audience is administrator, manager, faculty and students. A program administrator, who is responsible for management of the programs as the university defines programs. A program manager, when enabled, can enter all details about the program such as If the course is new, then the program manager creates it first, and then creates a new instance of it. The main lecturer defines the details about the course instance he is assigned for.
3|Page
2.
2- Positioning:
2.1- Problem Statement
The problem of Every university faces the problem of course scheduling every semester. Course scheduling is a tedious and error-prone task when done manually or semimanually. This has lead to the following two specific problems: How to schedule a large number of courses in an optimal way. How to schedule the courses while fulfilling a large number of constraints; such as available lecture rooms, limited availability of lecturers, students selections of the courses, etc. A successful solution would be If we create a program with a web-based interface that enables entering data and constraints related to the course scheduling. The program calculates and proposes a scheduling for courses and makes it possible to manually update the proposed schedule, meanwhile keeping track of the consistent scheduling. The program must be user-friendly so that different users can use this program as manual re-scheduling or pre-scheduling of some courses is important.
4|Page
We will create a distributed web-based application, and data should be stored in a database. Since the program is aimed for universities, FLOSS (Free/Libre and Open Source Software) will be used.
Name
Designers
Nominations
Fareeha Amjad Asma Kaleem
Responsibilities
The designers are responsible for designing and maintaining the data format, liaising and working with the project coordinator to ensure that it meets their requirements. The coordinator is responsible to check the work done by the project members is alright or not. The manager checks the work flow and assigns tasks to the project members.
Project Coordinator
Sara Masood
Project Manager
Saif-ur-Rehman
3.2
User Summary:
Name
Program Administrator
Description
They are typically coordinators of a certain department or the HODs. They could also be people from the examination department.
Responsibilities
Stakeholder
He is responsible for management of The designers the programs at the university defined will act as programs. stakeholders
for users.
He identifies the program, its running period (starting and ending year).
these
He enters data about different resources: The available lecture rooms and laboratories in which the courses (or particular elements) will take place, and some other elements such as data 5|Page
about number of available places, or availability of the room is entered. Program Manager They are typically coordinators of a certain department or the HODs. They could also be people from the examination department. He will have the overall responsibility The designers for the will act as Program.
He can enter all details about the program. He defines the details about the course instance he is assigned for.
Main lecturer
Professors
Several users can run a The designers (semi)automatic scheduling process will act as that provides a schedule stakeholders proposal for a course or a set of courses
for users.
these
Users that use They could be the program to professors or present data coordinators or HOD or people from the examination department.
Different users can use the program to The designers present data. For example: Availability will act as and utilization of the facilities; Schedule for of a particular course etc users.
stakeholders these
3.3
User Environment It is recommended that FLOSS tools are used in the project
3.4
This project has been made by many developers and is commercially available as well. It is possible that an alternative or similar format is present in the market. This is a purely academic project and is not available for sale.
4- Product Overview:
6|Page
This is a web-based application. It will perform its main functions as well as the program will be configurable and flexible i.e. that it can be configured with different rules of scheduling (for example definition of semesters, periods of the course execution, and similar). At the same time it is important that the program is user-friendly and that it is easy to import/export data to other systems which the universities can have. The project includes requirements solicitation, requirements specification, design and the Implementation. The program will be implemented as a distributed web-based, application, and the data will be stored in a database. Since the program is aimed for universities, FLOSS (Free/Libre and Open Source Software) will be used.
5- Product Features:
1- User-friendly 2- Standards based 3- Free to use 4- Extensible 5- Able to perform all the required functionalities 6- Able to schedule effectively and efficiently
7|Page
3.
1. Introduction
The system MyCourses-A Course Scheduling System will provide a systematic way to schedule courses which is considered very tedious when done manually or semimanually. It is also subjected to many errors. Therefore, our system will ease its users for scheduling the courses for the semester. In the following pages the reader is likely to find further elaboration of the project, and how it will be carried out and what will be its feature characteristics and in which environment it would likely work. Purpose
The purpose of our system is to ease its user in the most error-prone and tedious of all tasks i.e. course scheduling by providing a user friendly interface and making the application web-based that enables entering data and constraints related to the course scheduling. The program calculates and proposes a scheduling for courses and makes it possible to manually update the proposed schedule, meanwhile keeping track of the consistent scheduling.
It will also enable the user to schedule some courses manually and also alert the user if an error is made. The feature application of this product is to tell the user right there and then when an error is made and also an added accessory is when it proposes a possible schedule.
Scope
Our software will be a web application built on the Java and MySQL platforms. The interface of the software will be clear and intuitive to even non-technical users. We intend to include a number of features that will make our software as useful as possible to users, including: A secure login and registration system which allows only authenticated users to access the product features. A robust search engine which can search all the registered courses including the objectives and course contents of the specific course. Allow the user to see the previous professor who was teaching this courses schedule. A simple administration interface for the manager to perform tasks including user management, updating system settings, and overall maintenance of the system. Integration with all the universitys departments. This will help in indicating error if a teacher from a certain department is not allocated 2 lectures at the same time Entering the available resources such as available lecture rooms, project labs, labs etc. The system must automatically schedule the courses that provide a schedule proposal for a course or a set of courses: the days and time and places should be scheduled. The scheduler is not necessarily an automatic solver- but it allows some manual predefinition of the schedule and manual changes after the proposal is created. And if during the manual scheduling any error occurs the scheduler must alert the user and also propose other options available. Finally the scheduler will be able to present the schedule. 8|Page
References 1. MyCourses-Course Scheduling System Score 2011 Student Contest on Software Engineering- http://score-contest.org/2011/Projects.php#crnkovic 2. M. Dikaiakos, G. Tsouloupas; The Crossgrid SRS Templatehttp://grid.ucy.ac.cy/gridbench/repository/CG2.3-D2.1-v1.0-UCY001-SRS.pdf 3. The IEEE SRS Templatehttp://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org %2Fiel4%2F5841%2F15571%2F00720574.pdf%3Ftp%3D%26isnumber%3D15571 %26arnumber%3D720574&authDecision=-203
Overview
"The requirement document contains the general information and functionality about MyCourses". The scope and boundaries of the project are mentioned in the SRS. The functionality it will perform and the non-functional requirements are also illustrated.
Rest of the document is divided into chapters to enhance better understanding. In chapter 2 the overall description is provided.
9|Page
2.
Overall Description
2.1
Product Perspective
This product is original, self-contained project.
2.2
Product Functions
following
The system is designed to ease the user to schedule the courses. It will have the functions: - Easy log-in - User-friendly interface - Drop-down menu to select department - Automatic Scheduling - Manual Scheduling - Error alerts - Presentation of the schedule for different users - Secure
2.3
User Characteristics
The user must be a part of the COMSATS Institute of Information Technology. He/she could be a professor, a coordinator, a student etc.
2.4
Constraints
TBD
2.5
2.6
Apportioning of requirements
TBD
3. Specific Requirements
3.1 Performance Requirements: 10 | P a g e
The maximum staff connected at the same time will be 10. But it will be designed to be able to connect simultaneously up to 50 users at any time of the day. Interfaces will have an automated system that will allow a maximum response time of 5 seconds.
3.2
Usability Requirements: This product will be very simple and easy to use. The overall system would be easily used by people with basic computer systems training and with little understanding of English. The system should be designed in a way that makes it easy for user to remember the steps they should follow. Ideally, the system should be free of errors, but in case that the users do something wrong the errors messages should be indicated in plain English, in that way, it will be easier for users to understand what they are doing wrong when using the system
3.3
Security Requirements: This is a very safe system; we do not foresee any kind of risk for the people using it, neither to the property nor to the environment. All the staff will have access to the system, but only the Administrator will have rights to either add new users or delete the ones that are leaving. Employees (faculty) will be able to generate reports and update information and student will be able to access the information they are required.
The system will prevent its data from incorrect usage by use of form validations.
Any user who uses the system shall have a Login ID and Password. Any modification (insert, delete, and update) for the Database shall be synchronized and done only by the administrator. Administrators shall be able to view and modify all information.
3.4
Precision requirements: This product has been designed to be the most accurate possible, we should take into consideration that this is a very simple system with no calculation formulae involved.
3.5
Reliability Requirements: It is a very simple product, in which only input of information and generation of reports is involved, our aim is to deliver a very reliable product with minimal degree of failures, and therefore minimal maintenance is required.
3.6
Availability Requirement: The system will be available for use 24 hours per day, 365 days per year.
3.7
Robustness Requirements:
11 | P a g e
The system's ability to continue functioning under abnormal circumstances is great. The system will continue operating in local mode whenever it loses its link to the central server, but only during the time the system gets linked to the backup server that will be set up for this kind of circumstances. Also in case of disaster, there is a ring of staff who will be chosen to connect from their homes either using cable or broadband.
3.8
Scalability or Extensibility Requirements: Due to the nature of the system, the capacity of processing information is indefinite. We are fully aware that the list of visitor will increase, that it is why we are designing our database in MS SQL, which is a very powerful application to keep records.
3.9
Portability Requirements:
The system is web based with its target browser being internet Explorer; however, it would be expected to run across various web browsers. 3.10 Maintainability Requirements: Since this system is web based should be maintained by either via phone or email where technical assistance will be available. The level of support this system will require is very low. The help desk will be able to provide the necessary support. Also it will have some help tab in the main interface. Functions: Following functions must the software include: The system shall tell the user that the password is case-sensitive. The system shall not let a user use the unauthenticated processes. The system shall check a teachers workload and does not assign work more than that. Teachers name shall only be alphabets
3.11
44.1-
System Features:
User Authentication: 4.1.1- Description: For security reasons and data hiding; user authentication is highly prioritized.
12 | P a g e
Actor Action System Response 1: The user shall be able to open the page of the website by entering the correct username and password. 2: The user is connected to the server.
4.1.3- Functional Requirements: FQEQ-1 The system shall be able to provide secure login to its users 4.2Listing all the courses of a department 4.2.1- Description: The user must be able to list all the courses of the chosen department. 4.2.2- Stimulus/ Response Sequence:
Actor Action System Response 1. The user shall be able to choose the department of his/her choice. 2. The page for the department should open. 3. The user; when clicks to list the courses: the courses of that department shall be listed. 4. The system displays the list of all the courses.
4.2.3- Functional Requirements: FQEQ-2 The system shall be able to list the courses offered by the department FQEQ-3 The system shall be able to search the department. FQEQ-4 4.3The system shall be able to provide description of the courses offered.
Edit the course content 4.3.1- Description: The user shall be able to edit the description of a selected course. 4.3.2- Stimulus/ Activity Sequence:
13 | P a g e
Actor Action System Response 1. The user shall be able to open the page to Add Information. 2. The system opens the required page asking for the name of the course and the course ID. 3. The user shall be able to select the ID . 4. The system displays the name of the course automatically. 5. The user shall be able to edit on the area he/she wants editing and clicks Ok when done entering all the desired information. 6. The system updates the information.
4.3.3- Functional Requirements: FQEQ-5 The system shall be able to edit the course content. FQEQ-6 The system shall be able to enable the view of the previous course content. FQEQ- 7 The system shall be able to save the new course content. FQEQ-8 4.4The system shall be able to search the courses
Generating the time-table: 4.4.1- Description: The user shall be able to generate a schedule. 4.4.2- Stimulus/Activity Sequence:
Actor Action System Response 1. The user shall be able to enter the semester for which he/she wants to schedule. 2. The system asks to enter the semester. 3. The user shall be able to enter all the courses for that semester. 4. The user shall be able to pick the teachers. 5. The system schedule. displays the probable
14 | P a g e
4.4.3- Functional Requirements: FQEQ-9 The system shall be able to schedule manually. FQEQ-10 The system shall be able to schedule automatically. FQEQ- 11 The system shall be able to view the schedule. FQEQ-12 The system shall be able to edit the schedule. FQEQ-13 The system shall be able to save the schedule.
15 | P a g e
4.
4.1
The FEMSEC model helps us to find the final cost of the project. First we need to know the size of the project and the formula for finding the size is
=
Where
+4
) [kloc].
( 6000 + 4 ( 3) + 2000).
Now as the final size is given we can find the ideal work load where productivity is 3000 loc/py. 1) Ideal load :
= = 12 = 32.0[PM].
= = =
16 | P a g e
= 2 [P].
3) The shortest duration time.
( r.
r +
) )
=
Where
= 6000 py.
= 2 25.6
= 25600 [$].
This was the final cost of our project. Now we have to find Effort as it is a algorithm critical area so the reliability is HIGH PCAP = HIGH= 0.70 and we will use organic mode to calculate effort. EFFORT = EAF 3.2 EFFORT = 0.70 3.2 EFFORT = 7.92
17 | P a g e
4.2
Software Schedule:
Role
Project Manager On-site Coordinator Developer(s)
Count
1 1(50%time) 2
Names
Saif Ur Rehman Sara Masood Fareeha Amjad Asma Kaleem
Tester(s)
Schedule: Person Performing the task Duration Start Date (days) End Date
Phase
Requirement Collection
Vision Document SRS Cost Estimation Project Plan User Stories Asma Kaleem Fareeha Amjad Asma Kaleem Asma Kaleem Fareeha Amjad Fareeha Amjad Test Cases Asma Kaleem 4 5 14 14 14 14 2nd March, 2011 7th March, 2011 7th March, 2011 7th March, 2011 7th March, 2011 21st March, 2011 7th March, 2011 21st March, 2011 21st March, 2011 21st March, 2011 21st March, 2011 25th March, 2011
Software Design
Fareeha Amjad Z Spec Language Asma Kaleem 3 25th March, 2011 28th March, 2011
18 | P a g e
Fareeha Amjad OOA model Asma Kaleem Fareeha Amjad System Model Asma Kaleem Fareeha Amjad Use Case Diagram Asma Kaleem Fareeha Amjad Conceptual Model Asma Kaleem System Diagram Sequence Fareeha Amjad 7 Asma Kaleem Fareeha Amjad Class Diagram Asma Kaleem Fareeha Amjad Object Diagram Asma Kaleem Fareeha Amjad Component Diagram Asma Kaleem Deployment Diagram Composite Collaboration Diagram Fareeha Amjad 8 Asma Kaleem Fareeha Amjad 7 Asma Kaleem Fareeha Amjad Package Diagrams Asma Kaleem Fareeha Amjad Sequence Diagram Asma Kaleem State Diagram Machine Fareeha Amjad 4 Asma Kaleem 3 7 8 10 10 7 7 7 3
19 | P a g e
Interaction Diagrams
Development
Asma Kaleem
Quality Check
Software Assurance Quality Fareeha Amjad 3 Asma Kaleem 20th May, 2011 23rd May, 2011
Testing
Fareeha Amjad Software Testing Asma Kaleem Fareeha Amjad 4 23rd May, 2011 27th May, 2011
Deployment
Asma Kaleem
10
Requirement Collection (23 days) Design Development Quality Testing Deployment (52 days) (4 days) (3 days) (4 days) (10 days)
Gant Chart:
20 | P a g e
Mar 2011
ID 1 2 3 4 5 6 7 8 9
Task Name Vision Document SRS Cost Estimation Project Plan User Stories Test Cases Z Spec Language OOA model System Model
Start 3/2/2011 3/7/2011 3/7/2011 3/7/2011 3/7/2011 3/21/2011 3/25/2011 3/25/2011 3/28/2011 3/28/2011 4/4/2011 4/4/2011 4/11/2011 4/11/2011 4/21/2011 4/21/2011 4/29/2011 4/29/2011 5/6/2011 5/9/2011 5/13/2011 5/16/2011 5/20/2011 5/23/2011 5/27/2011
Finish 3/7/2011 3/21/2011 3/21/2011 3/21/2011 3/21/2011 3/25/2011 3/28/2011 3/28/2011 4/4/2011 4/4/2011 4/11/2011 4/11/2011 4/21/2011 4/21/2011 4/29/2011 4/29/2011 5/6/2011 5/6/2011 5/9/2011 5/13/2011 5/16/2011 5/20/2011 5/23/2011 5/30/2011 6/6/2011
Duration
2/27 3/6 3/13
.8w 2.2w 2.2w 2.2w 2.2w 1w .4w .4w 1.2w 1.2w 1.2w 1.2w 1.8w 1.8w 1.4w 1.4w 1.2w 1.2w .4w 1w .4w 1w .4w 1.2w 1.4w
10 Use Case Diagram 11 Conceptual Model 12 System Sequence Diagram 13 Class Diagram 14 Object Diagram 15 Component Diagram 16 Deployment Diagram 17 Composite Collaboration Diagram 18 Package Diagram 19 Sequence Diagram 20 State Machine Diagram 21 Interaction Diagram 22 Development 23 Software quality assurance 24 Software Testing 25 Deployment
21 | P a g e
AON Chart:
25th March
52 Design
16th May
25th March
23rd May
S T A R T
2nd March
23
23rd May
Requirements 2 March
nd
27th May
10 Desployment
6th June
6th June
4 Development
th
F I N I S H
4 Testing
16th May
20th May
rd
23 May
27th May
22 | P a g e
5-
3- Introduction:
This is the Master Test Plan for the project MyCourses-A Course Scheduling System. This plan will address all parts of the project. The primary focus of this plan is to ensure that all inputs provide the desired outputs. The project will have three levels of testing; Unit, System/Integration, and Acceptance. The details for each level are addressed in the approach section and will be further defined in the level specific plans. The estimated time line for this project is approximately 2 months. However any delays during the semester schedule of the university may have significant effects on the test plan. The acceptance testing is likely to be taken after each iteration.
4- Test Items(Functions):
We are going to check the functional and non functional requirements of the system.
6- Features to be Tested:
The following is the list of items that are to be focused on during testing of the application. The level of risk scale is :(H for high; M for medium and L for low): - All information regarding all courses; H - Entering the courses parameters; M - No redundant data; H - Documentation; H - Interface to the system; H - Having different views for different users; M - Security; H - Data integrity; H - Server availability; H
8- Approach:
8.1-Testing Levels: The testing for the MyCourses-A course scheduling system will consist of Unit, System/Integration (combined) and Acceptance test levels. It is hoped that there will be at least one full time independent test person for system/integration testing. However, with the time line established; most testing will be done by the development team. UNIT Testing will be done by the developer and will be approved by the project coordinator; Miss Sara Masood. Proof of unit testing (test case list, sample output, and defect information) will be provided by the programmers to the project coordinator before unit testing will be accepted and passed on to the project manager. SYSTEM/INTEGRATION Testing will be performed by the developers and with assistance from the project coordinator as required. No specific test tools are available for this project. Programs will enter into System/Integration test after all critical defects have been corrected.
24 | P a g e
ACCEPTANCE Testing will be performed by the actual end users and/or the project manager with the assistance of the developers. Programs will enter into Acceptance test after all critical and major defects have been corrected. Prior to final completion of acceptance testing all open critical and major defects MUST be corrected and verified by the project manager. 8.2- Meetings: The team will meet once every two weeks to evaluate progress to date and to identify error trends and problems as early as possible. The project coordinator will meet with development and the project manager once every two weeks as well. These two meetings will be scheduled on different weeks. Additional meetings can be called as required for emergency situations. 8.3- Measures and Matrices: The following information will be collected by the Development team during the Unit testing process. This information will be provided to the project manager at program turnover as well as be provided to the project coordinator on a biweekly basis. - Defects by module and severity. - Defect Origin (Requirement, Design, Code) - Time spent on defect resolution by defect, for Critical & Major only. All Minor defects can be totaled together. The following information will be collected by the development team during all testing phases. This information will be provided on a biweekly basis to the project manager and to the project coordinator. Defects by module and severity. Defect Origin (Requirement, Design, Code) Time spent on defect investigation by defect, for Critical & Major only. All Minor defects can be totaled together. Number of times a program submitted to test team as ready for test. Defects located at higher levels that should have been caught at lower levels of testing.
15- Responsibilities:
Developer 1 (Fareeha Amjad) Acceptance Test Plan Test Cases Summary Report Acceptance Testing X X X X X Developer 2 (Asma Kaleem) Project Manager
Miss Fareeha Amjad will make Acceptance Test Plan and Test Cases. Miss Asma Kaleem will make Test Cases and Summary Report. The Project Manager will perform Acceptance Testing. The entire project team will participate in the review of the system and detail designs as well as review of any change requests that are generated by the user/manager or as a result of defects discovered during development and testing
26 | P a g e
16- Schedule:
Following are the testing activities to be performed: A- Review of Requirements document and initial creation of Inventory classes, subclasses and objectives. B- Development of Master test plan. C- Review of the System design document and will further definition the Inventory classes, sub-classes and objectives. D- Development of System/Integration and Acceptance test plans. E- Review of the Detail design document(s) F- Unit test time within the development process.
18- Approvals:
Project Manager Project Coordinator
27 | P a g e
6-
INTRODUCTION This document is the Acceptance Test Plan (ATP) for MyCourses-A Course Scheduling System. The acceptance test verifies that the system works as required and validates that the correct functionality has been delivered. The ATP establishes the acceptance test framework used by the team to plan, execute, and document acceptance testing. It describes the scope of the work performed and the approach taken to execute the tests created to validate that the system performs as required. The details of the ATP are developed according to the requirements specifications, and must show traceability back to those specifications. The system MyCourses-A Course Scheduling System will provide a systematic way to schedule courses which is considered very tedious when done manually or semi-manually. It is also subjected to many errors. Therefore, our system will ease its users for scheduling the courses for the semester. Our software will be a web application built on the Java and MySQL platforms. The interface of the software will be clear and intuitive to even non-technical users. We intend to include a number of features that will make our software as useful as possible to users, including: A secure login and registration system which allows only authenticated users to access the product features. A robust search engine which can search all the registered courses including the objectives and course contents of the specific course. Allow the user to see the previous professor who was teaching this courses schedule. A simple administration interface for the manager to perform tasks including user management, updating system settings, and overall maintenance of the system. Integration with all the universitys departments. This will help in indicating error if a teacher from a certain department is not allocated 2 lectures at the same time Entering the available resources such as available lecture rooms, project labs, labs etc. The system must automatically schedule the courses that provide a schedule proposal for a course or a set of courses: the days and time and places should be scheduled. The scheduler is not necessarily an automatic solver- but it allows some manual predefinition of the schedule and manual changes after the proposal is created. And if during the manual scheduling any error occurs the scheduler must alert the user and also propose other options available. Finally the scheduler will be able to present the schedule.
28 | P a g e
ACCEPTANCE TEST APPROACH The approach we will be using is both the black box testing and the white box testing. The black box testing approach will be used to check if the applications requirements and specifications are according to the customers needs. The white box testing will do the same accept for the fact that it will use the actual code required for the testing. ACCEPTANCE TEST PROCESS The following is the process we will adopt for Acceptance Testing: Establish Acceptance Test Framework The Acceptance Test Plan establishes the acceptance test framework used by the team to plan, execute, and document acceptance testing of system. Industry best practices for acceptance testing and data derived from the acceptance test teams interface with the software development processes form the basis for the AT framework. Plan Acceptance Test Activities A successful acceptance test effort requires plannning. The acceptance test team identifies the tasks that need to be accomplished, including milestones. The functional requirements are the primary drivers for identifying those tasks. The acceptance test schedule is the timeline of acceptance testing activities and deliverable due dates. For each acceptance testing effort, a test schedule is developed identifying the major test preparation, test execution, and test reporting activities, as well as providing interim checkpoints to measure the progress of acceptance testing. Mr. Saif Ur Rehman Khan and Miss Sarah Masood will monitor the acceptance test effort. Exhibit 1: Sample Acceptance Test Schedule Planned Completion Date
11th April 2011
Activity
Plan Acceptance Testing
Deliverable/ Checkpoint
Preliminary Acceptance Test Schedule
Preliminary Acceptance Test Matrix Acceptance Test Environment Inventory Draft Acceptance Test Plan Matrix Completed Test Readiness Review Checklist 29 | P a g e
Activity
Execute Tests Complete Acceptance Testing Document Acceptance Testing
Deliverable/ Checkpoint
Acceptance Test Progress Acceptance Test Summary Report Final Acceptance Test Report
Develop Acceptance Test Cases In the following subsections, the process used to create acceptance test cases is described. Sources for Test Cases The acceptance tests are made from the requirements, user stories, existing documentation, interviews, and research. The team reviews the software documentation, other documentation, and existing software to identify software components and features. The acceptance test team also attends requirements and design meetings and interviews persons involved in the system analysis, development, test, and operations to identify gaps and clarify questions. Structure for Acceptance Test Comprehensive acceptance test materials are a critical component of a successful acceptance test program. The acceptance test team uses a requirements-driven, structured approach to identify acceptance test data. The test casses are grouped into: functional and system test casses. Functional are those test casses that are made via user stories and system test casses are those that are created to check that the systems non functional requirements work properly such as security etc. Test Procedures Development Test procedures provide the testers with precise steps that should be followed to execute a test. Test procedures are essentially the recipe used to perform the test. Test cases are identified and documented as progressively detailed modules. Then they are prioritized on the basis of user stories and then tests are performed as scheduled and documented. Testing Priority Assigning a test priority provides built in mitigation for schedule risks. Therefore, prior to the test effort, the most critical system features are identified and assigned a priority level. The most critical items are tested first, followed by progressively less critical items. This ensures the critical items are tested when insufficient test time is allocated for acceptance testing. This approach also provides immediate feedback on the critical system features early in the acceptance test so the developers can begin addressing serious defects immediately. Any test cases and system features that are not tested are documented and provided in the Acceptance Test Summary Report.
30 | P a g e
We are going to prioritize on the basis of user stroies. The priority given to those user stories will be given to their corresponding test casses. Test Tools We are not going to use any tool. We are going to test manually. Acceptance Test Materials As the acceptance test activities are performed, acceptance test plan materials are created and added to the acceptance test plan as appendices. Each test for a particular release has its own corresponding appendix, which is continously updated throughout the acceptance test. The test casses are documented in another file in detail. Develop Test Traceability Documentation Test traceability is used to verify that functional requirements are accounted for, and tested in the delivered software. It provides traceability between the requirements and the test materials. The acceptance test team develops the traceability from the baselined requirements documents for the software. Each test case is formed from the user stories provided to us at the start of the project. Set Up the Acceptance Testing Environment Environment Preparation In preparation for acceptance testing, the team identifies and addresses missing or incorrectly configured hardware and software components. Preparatory activities involve constructing the actual acceptance test environment and installing the hardware and software, including the software to be tested, in order to ensure the configuration is correct. Changes need to be closely managed and controlled. Prior to an installation or configuration, the team checks and go through the test plan document as well as the acceptance test plan document. Deviations from the planned activities are recorded and reported to the acceptance test team. The test team begins acceptance testing by conducting an initial series of ad hoc, diagnostic tests designed to exercise the acceptance test environment and verify that major system software capabilities are available and functioning. The team also checks the documentation. Hardware/Software Hardware requirements are a fully functional laptop or desktop computer. Software requirements include code, Java IDE etc. Conduct Acceptance Test Readiness Review (ATRR) The ATRR is a critical acceptance testing checkpoint. At this review, Miss Sarah Masood, and the developers jointly review the status of the System Test results and known problems, the
31 | P a g e
developed system and its associated documentation, the planned acceptance testing, the acceptance test environment, and the support environment to determine whether or not to begin acceptance testing. With the Acceptance Test Plan as the guiding document, components reviewed include, but are not limited to: Software components Database Environmental components Documentation Known problems and outstanding issues from the System Test
Inventory of the acceptance test environment If the status of one or more of the components is unsatisfactory, the parties identify corrective actions and schedule another ATRR. If the status is acceptable, then testing will proceed. Execute Tests Acceptance test execution is an iterative process that begins with the initial execution of the planned tests. If no defects are discovered, then the test procedure has passed. If defects are discovered, they are documented, corrected, and retested. Acceptance testing continues until all the acceptance tests are successfully executed. However, if the deadlines are near then team focuses on critical functionality. If test time expires before completion of the acceptance tests, this would be documented. Record Issues/Defects As the issues and defects are identified, they are recorded. For each defect it is documented, area of defect, who found it, where was it found etc is provided and a preliminary assessment of the severity. Retesting Corrected Software After the defect has been detected it is removed and again presented for testing. Accompanying the software correction, an inventory of changed components, and the defects corrected, evidence of unit and/or System Testing, and instructions for installing the correction are also provided and then the testing of these corrected components takes place. Acceptance Regression Testing After receipt of a software correction, the team performs regression testing to ensure the defect or issue has been resolved and previously working software is not impacted. Document Acceptance Test Results At the end of the acceptance test, the acceptance test team produces two reports summarizing the results of the acceptance test. The Test Summary Report is a short report summarizing the test activities, and identifies outstanding deficiencies and issues. The Acceptance Test Final Report is the detailed record of the acceptance test activities. It records which tests were performed, the
32 | P a g e
pass/fail status of each test, and the discrepancies or issues found. In addition, the Acceptance Test Final Report identifies new tests added to the planned tests. Conduct Acceptance Test Status Meetings The acceptance testing will be done periodically to discuss the status of work. This will ensure any major issues or defects are identified in a timely manner so they can be resolved. Acceptance Test Deliverables The following is a list of deliverables produced during the acceptance test phase: Acceptance Test Plan Acceptance Test Summary Report Acceptance Test Final Report Support Client Acceptance The management department of COMSATS is the stakeholder who determines whether to accept or reject the delivered software. Acceptance testing exercises the software and provides data to be used in that decision. The management department of COMSATS will use the acceptance test results from the Acceptance Test Summary Report to determine whether the software, as-built, fulfills their mission requirements. If they determine that the software fulfills the requirements, the will accepts the software and the system is prepared for production. If they determine that the software does not fulfill its requirements, they will make a determination on further action. ACCEPTANCE TEST ENTRANCE / EXIT CRITERIA Acceptance Test Entrance Criteria The following must be completed: A. Acceptance Test Plan updated with the current tests B. Completed System Test Report C. Any open system issues. Acceptance Test Exit Criteria Acceptance Test Exit is based on the following criteria: A. Completion of the Acceptance Test Final Report, which provides the final status of acceptance test activities. REPORTS Interim Status Reporting Exhibit 2: Sample Interim Status Report
33 | P a g e
Date:
Percent Failed Number of tests not tested
Functional Area 1
Functional Area 2
Issue/Defect Reporting Exhibit 3: Issue/Defect Report Sample ISSUE/DEFECT REPORT Tester Name: Area of Software Impacted: Nature of Issue/Defect: What occurred: How did it occur: When did it occur: Describe how to reproduce the error: SCR INFORMATION Assigned SCR Number: Severity: Status: Software Version: Preliminary Severity Assessment:
34 | P a g e
Acceptance Test Final Report Exhibit 5: Acceptance Test Final Report Sample ACCEPTANCE TEST FINAL REPORT System Name: Date:
Unresolved Defects Issue/Defect Impact (H, M, L) Risk Mitigation (If known) Work Around (If known)
RISKS The following are typical, general overall acceptance test risks: 1. Insufficient test time Risk: If the amount of time available is too short, the team may not have enough time to complete acceptance testing or perform regression testing. Mitigation: Develop a critical path of tests, prioritized by importance.
35 | P a g e
7-
Test Cases
Test Case: Enter description of the course , T1 Description: This test case simulates one of the frequently performed actions is which the user enters the course requirements such as the allocation of books, reference books, the schedule of course etc. The user will search the course by course ID, and then modify/add the course description. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click the Add Information button
User_login
2)
Page opens asking for the course name and course ID. The name of the course automatically appears
3)
Click the drop down menu of the course ID and choose the ID Click Ok
4)
Form appears containing the courses description (if already present) Confirms if it must be edited.
Description_ Course
5)
Edit_ Description
Test Case: Enter description of the course, T2 Description: This test case simulates one of the frequently performed actions is which the user enters the course requirements such as the allocation of books, reference books, the schedule of course etc. 36 | P a g e
The user will search the course by course ID, and then modify/add the course description. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click the Add Information button
User_login
2)
Page opens asking for the course name and course ID. The name of the course automatically appears
3)
Click the drop down menu of the course ID and choose the ID Click Ok
4)
Form appears containing the courses description (if already present) Confirms if it must be canceled.(no change)
Description_ Course
5)
Click Edit on the area that needs to be edited; then click CANCEL.
Edit_ Description
Test Case: Enter description of the course, T3 Description: This test case simulates one of the frequently performed actions is which the user enters the course requirements such as the allocation of books, reference books, the schedule of course etc. The user will search the course by course ID, and then modify/add the course description. Data Requirements: {username} username must be unique and valid
37 | P a g e
{password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click the Add Information button
User_login
2)
Page opens asking for the course name and course ID. The name of the course automatically appears
3)
Click the drop down menu of the course ID and choose the ID Click Cancel
4)
Back_to_Main
Test Case: Searching the course, T4 Description: The user will search the course by course ID. The user wants to search the course for various purposes. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Enters the name or course ID
User_login
2)
Course_
38 | P a g e
course.
identification
Test Case: Searching the course, T5 Description: The user will search the course by course ID. The user wants to search the course for various purposes. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Enters the wrong name or course ID on the search bar
User_login
2)
Page opens informing the user to enter the correct course details.
Course_ identification
Test Case: Listing the courses offered by a certain department, T6 Description: The user enters the name of the department to list the courses offered by that department. Data Requirements: {username} username must be unique and valid {password} password must be valid {departmentName} must be unique name for each department Step Number Step Description Expected Result Transaction Name User Think Time
39 | P a g e
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Choose the department from the drop down menu Click the list of courses.
User_login
2)
Page of the chosen department opens. The list of courses offered by the department opens.
3)
Test Case: View the course offered by a certain department, T7 Description: The user enters the name of the department to list the courses offered by that department. Data Requirements: {username} username must be unique and valid {password} password must be valid {departmentName} must be unique name for each department Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Choose the department from the drop down menu Click the list of courses.
User_login
2)
Page of the chosen department opens. The list of courses offered by the department opens. The course details open.
3)
4)
Description_ Course
40 | P a g e
Test Case: Adding a new course, T8 Description: The user adds a new course. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Choose the department from the drop down menu Click Add Course Enter the name, ID and the department it links to then add all the required information then click Ok.
User_login
2)
Page of the chosen department opens. Form appears Confirms the information.
3) 4)
Test Case: Adding a new course, T9 Description: The user adds a new course. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think
41 | P a g e
Time 1) Enter the websites URL and press enter. And log-in with {username} and {password}. Choose the department from the drop down menu Click Add Course Enter the name, ID and the department it links to then add all the required information then click Cancel. Main menu screen is displayed. User_login
2)
Page of the chosen department opens. Form appears Confirms it must be cancelled.(no course added)
3) 4)
Test Case: Auto-Scheduling, T10 Description: The user wants to schedule automatically; the system generates an automatic schedule. Data Requirements: {username} username must be unique and valid {password} password must be valid {courseID} must be unique for every course Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Auto Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available
3)
Enter the semester and department along with the courses offered for that
42 | P a g e
Test Case: Auto-Scheduling, T11 Description: The user wants to schedule automatically; the system generates an automatic schedule. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Auto Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available for a particular course) Conforms the schedule Returns to the previous page
3)
Enter the semester and department along with the courses(drop down menu) offered for that semester Click Schedule. Click Cancel
4) 5)
Auto_Schedule Assign_courses
Test Case: Auto-Scheduling, T12 Description: The user wants to schedule automatically; the system generates an automatic schedule. Data Requirements: {username} username must be unique and valid
43 | P a g e
{password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Auto Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available for a particular course) Returns to main menu
3)
Enter the semester and department along with the courses(drop down menu) offered for that semester Click Cancel.
4)
Back_to_Main
Test Case: Manual-Scheduling, T13 Description: The user wants to schedule manually. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Manual Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple
3)
44 | P a g e
courses(drop down menu) offered for that semester 4) Drag the course and drop it in the table at the place you want it to be. Click Ok and repeat step 4 and 5, then click Done.
teachers are available for a particular course) Conforms the move Manual_Schedule
5)
Assign_courses
Test Case: Manual-Scheduling, T14 Description: The user wants to schedule manually. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Manual Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available for a particular course) Shows up a warning and does not save the move
3)
Enter the semester and department along with the courses(drop down menu) offered for that semester Drag the course and drop it in the table at the wrong place.
4)
Manual_Schedule
45 | P a g e
Description: The user wants to schedule manually. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Manual Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available for a particular course) Shows up a warning and does not save the move
3)
Enter the semester and department along with the courses(drop down menu) offered for that semester Drag the course and drop it in the table at the place that creates a clash
4)
Manual_Schedule
Test Case: Edit Auto-Scheduling, T16 Description: The user wants to schedule automatically; the system generates an automatic schedule but edits it and schedule manually. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
46 | P a g e
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Auto Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available for a particular course) Conforms the schedule Confirms the move.
3)
Enter the semester and department along with the courses offered for that semester Click Schedule. Click edit and move courses manually.
4) 5)
Auto_Schedule Edit_Schedule
Test Case: Edit Auto-Scheduling, T17 Description: The user wants to schedule automatically; the system generates an automatic schedule but edits it and schedule manually. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Auto Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available
3)
Enter the semester and department along with the courses offered for that
47 | P a g e
semester 4) 5) Click Schedule. Click edit and move courses at a wrong place.
for a particular course) Conforms the schedule Shows up a warning and does not save the move. Auto_Schedule Edit_Schedule
Test Case: Edit Auto-Scheduling, T18 Description: The user wants to schedule automatically; the system generates an automatic schedule but edits it and schedule manually. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Auto Schedule
User_login
2)
Page opens that asks for the semester Page opens to choose teachers (if multiple teachers are available for a particular course) Conforms the schedule Shows up a warning and does not save the move.
3)
Enter the semester and department along with the courses offered for that semester Click Schedule. Click edit and move courses at a place that creates a clash.
4) 5)
Auto_Schedule Edit_Schedule
48 | P a g e
Test Case: Presenting the Schedule, T19 Description: The user wants to present the generated schedule. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Show Table
User_login
2)
Page opens that asks for the semester and department. Page opens that displays the schedule of that semester.
3)
Test Case: Presenting the Schedule, T20 Description: The user wants to present the generated schedule. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}.
User_login
49 | P a g e
2)
Page opens that asks to open your schedule Page opens that displays the schedule of the logged in teacher.
3)
Test Case: Saving the Schedule, T21 Description: The user wants to present the generated schedule and save it. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Show Table
User_login
2)
Page opens that asks to open your schedule Page opens that displays the schedule of the logged in teacher. Confirms it and asks for saving destination.
3)
4)
Click save
Save_Schedule
Test Case: Saving the Schedule, T22 Description: The user wants to present the generated schedule and save it.
50 | P a g e
Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Step Description Expected Result Transaction Name User Think Time
1)
Enter the websites URL and press enter. And log-in with {username} and {password}. Click Show Table
User_login
2)
Page opens that asks for the semester and department. Page opens that displays the schedule of that semester. Confirms it and asks for saving destination.
3)
5)
Click save
Save_Schedule
Test Case: Log-in, T23 Description: The user will log-in to his/her account to go to the main menu. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Transaction Name User Think Time
Step Description
Expected Result
1)
Enter_login
2)
Enter_username
51 | P a g e
3) 4)
Enter_password User_login
Test Case: Log-in, T25 Description: The user will log-in to his/her account to go to the main menu. Data Requirements: {username} username must be unique and valid {password} password must be valid Step Number Transaction Name User Think Time
Step Description
Expected Result
1)
Enter the websites URL and press enter Enter wrong {username} Enter {password}
Page is displayed asking for {username} and {password} Display message Incorrect username or password
Enter_login
2) 3)
Enter_username Enter_password
4)
Click Ok
Incorrect_login
Test Case: Log-in, T26 Description: The user will log-in to his/her account to go to the main menu. Data Requirements:
52 | P a g e
{username} username must be unique and valid {password} password must be valid Step Number Transaction Name User Think Time
Step Description
Expected Result
1)
Enter the websites URL and press enter Enter {username} Enter wrong {password}
Page is displayed asking for {username} and {password} Display message Incorrect username or password
Enter_login
2) 3)
Enter_username Enter_password
4)
Click Ok
Incorrect_login
8-
Test Stage:
Specify the testing stage for this Test Summary Report. Test Log Number: T1 Test Case Number: 01 Summary Review Date: 04/22/11
53 | P a g e
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T2 Test Case Number: 02 Summary Review Date: 04/29/11
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T3 Test Case Number: 03 Summary Review Date: 05/6/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS .
55 | P a g e
<Signature>: <Signature>:
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T4 Test Case Number: 04 Summary Review Date: 05/10/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
Interface Performance
Regression
Acceptance
Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T5 Test Case Number: 05 Summary Review Date: 05/14/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T6 Test Case Number: 06 Summary Review Date: 05/18/11
57 | P a g e
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T7 Test Case Number: 07 Summary Review Date: 05/23/11
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T8 Test Case Number: 08 Summary Review Date: 05/28/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS .
59 | P a g e
<Signature>: <Signature>:
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T9 Test Case Number: 09 Summary Review Date: 05/31/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
Interface Performance
Regression
Acceptance
Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T10 Test Case Number: 10 Summary Review Date: 05/31/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T11 Test Case Number: 11 Summary Review Date: 05/31/11
61 | P a g e
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T12 Test Case Number: 12 Summary Review Date: 05/31/11
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T13 Test Case Number: 13 Summary Review Date: 06/02/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS .
63 | P a g e
<Signature>: <Signature>:
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T14 Test Case Number: 14 Summary Review Date: 06/02/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
Interface Performance
Regression
Acceptance
Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T15 Test Case Number: 15 Summary Review Date: 06/02/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T16 Test Case Number: 16 Summary Review Date: 06/06/11
65 | P a g e
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T17 Test Case Number: 17 Summary Review Date: 06/06/11
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T18 Test Case Number: 18 Summary Review Date: 06/06/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS .
67 | P a g e
<Signature>: <Signature>:
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T19 Test Case Number: 19 Summary Review Date: 06/13/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
Interface Performance
Regression
Acceptance
Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T20 Test Case Number: 20 Summary Review Date: 06/13/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T21 Test Case Number: 21 Summary Review Date: 06/13/11
69 | P a g e
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T22 Test Case Number: 22 Summary Review Date: 06/13/11
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T23 Test Case Number: 23 Summary Review Date: 06/20/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS .
71 | P a g e
<Signature>: <Signature>:
GENERAL INFORMATION Test Stage: Unit Interface Performance Functionality Regression Integration Acceptance System Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T24 Test Case Number: 24 Summary Review Date: 06/20/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
Interface Performance
Regression
Acceptance
Pilot
Specify the testing stage for this Test Summary Report. Test Log Number: T25 Test Case Number: 25 Summary Review Date: 06/20/11
TEST SUMMARY Test Summary: Variances: Assessment: Summary of Results: Evaluation: Corrective Action Plan (CAP): APPROVALS <Signature>: <Signature>: . .
73 | P a g e
The names of the sets are TEACHER, COURSE, ROOM, DESCRIPTION, PASSWORD, DEPARTMENT, STUDENT. known is the set of teachers. known2 is the set of courses, known3 is the set of course description, known4 is the set of rooms, known5 is the set of passwords, known6 is the set of department, and known7 is the set of students. inRoom is a function that maps courses with room, teach is a function that maps teacher with course, schedule is a function that maps course with teacher, cdesc is a function that maps course with its description, func is a function that maps teacher with password, dept is a function that maps course with department, func2 is a function that maps student with course, s_course is a function that maps student with course, s_dept is a function that maps student with department and c_student maps course with student. The part of the schema below the line is called the invariants, which are true in every case.
OPERATIONS:
1
This function states the initial state of the system. All sets are initialized to null. This is done to include empty set conditions.
74 | P a g e
______________________________________________________________________________ 2-
REPORT is a variable that consists of exactly two variables: Success and Failure. SuccessR is a function that reports Success and FailureR reports Failure. ______________________________________________________________________________ 3-
AddCourse is a function that adds a new course and its description in the database and reports success if done and failure if course is already present. It takes course name as input that should not belong to the set of courses and course description and outputs report to tell if its a Success or Failure. If the name of the input course exists then the course description is not added. ______________________________________________________________________________ 4-
Schedule_Teacher_with_Course is a function that takes teachers name and courses name as input and as a result saves it and reports success and failure accordingly. ______________________________________________________________________________ 5-
75 | P a g e
WhichRoom is a function that takes course name and room number as an input, if they both exists then that room is assigned to the course and reports success. ______________________________________________________________________________ 6-
FindCourseDesc is a function that takes courses name as input and gives its description as output and reports success if the course is present else reports failure. ______________________________________________________________________________ 7-
FindWhichRoom is a function that takes courses name as input and gives the room number assigned to it as output if courses name exists and reports success. ______________________________________________________________________________ 8-
In this schema we give teachers name as input and get the courses he/she teach as an output. If the teacher exists; success else failure is reported. ______________________________________________________________________________ 9-
76 | P a g e
In this schema we take courses name as input and get the teachers who teach those courses as an output. If the course name exists then success else failure is reported. ______________________________________________________________________________ 10-
In this schema; teachers name and password is taken as an input and if the two exists in the function: func; then success is reported else failure is reported. ______________________________________________________________________________ 11-
In this schema; students name and password is taken as an input and if the two exists in the function: func2; then success is reported else failure is reported. ______________________________________________________________________________ 12-
In this schema; departments name is taken as an input and the courses it offers is given as an output. If the departments name exists then success else failure is reported.
77 | P a g e
______________________________________________________________________________ 13-
This schema is user to edit description of a course or add the description of the course. It takes the courses name as an input if it exists then description is taken as an input and success is notified. Else if the courses name does not exist then failure is notified. ______________________________________________________________________________ 14-
AutoScheduling is a combination of Teacher_Teach_Which_Courses and FindWhichRoom schemas then success of these two schemas will be reported success of AutoScheduling else failure is reported. ______________________________________________________________________________ 15-
ManualScheduling is a combination of Teacher_Teach_Which_Courses and FindWhichRoom schemas then success of these two schemas will be reported success of ManualScheduling else failure is reported. ______________________________________________________________________________ 16-
Students name is taken a s input and if it exists then the list of courses he/she takes is given as an output and is reported success else failure. ______________________________________________________________________________ 17-
78 | P a g e
Courses name is taken as an input and if it exists then all the students who take the course are given as an output and is reported as success else failure. ______________________________________________________________________________ 18-
In this schema students name is taken as an input and the department he/she belongs to is given as an output and is reported success else failure. ______________________________________________________________________________
79 | P a g e
System Attributes:
Attribute Response Time Interface Metaphor Fault Tolerance Details and Boundary Constraints [Boundary Constraint]- The system should not take more than 10 sec for the calculations [Detail]forms-metaphor windows and dialog boxes [Detail] maximize for every keyboard navigation rather than pointer navigation [Boundary Constraint] the user can log-in at anytime of the day and any number of times
80 | P a g e
10Ref# RQ.1
RQ.2
Evident
Must
Must
R2.1
Evident
Must
Must
Must
R2.2
Evident
Must
Must
Must
RQ.3
Search a course
Evident
Must
Must
R3.1
Evident
Response Time
Must
81 | P a g e
Fault Tolerant R3.2 Search a course using a course ID Evident Response Time Fault Tolerant RQ.4 Edit the details of the course Evident Fault Tolerant Interface Metaphor RQ.5 Add a new course Evident Fault Tolerant Response Time Fault Tolerant RQ.7 Schedule manually Evident Fault Tolerant Interface Metaphor
RQ.6
Schedule automatically
Evident
RQ.8
Evident
The user should be logged in to use the functionality System should be able to process the results timely The user should be logged in to use the functionality The user should be logged in to use the functionality The edit window should open up separately The user should be logged in to use the functionality System should be able to process the results timely The user should be logged in to use the functionality The user should be logged in to use the functionality The courses must be placed into the appropriate slots using drag and drop The user should be logged in to use the functionality Colorful The user should be logged in to use the functionality System should be able to process the results timely The user should be logged in to use the functionality The user should be logged in to use the
Must
Must
Must
Must
Must
Must
Must
Must
Must
Must
Must
Want Must
RQ.9
Evident
Must
RQ.10
Evident
Must
RQ.11
Hidden
Must
82 | P a g e
Response Time RQ.12 Delete Course Evident Fault Tolerant Response Time RQ.13 Provide a persistent storage mechanism Detect Errors Hidden Fault Tolerant Fault Tolerant Response Time
RQ.14
Hidden
functionality System should be able to process the results timely The user should be logged in to use the functionality System should be able to process the results timely The user should be logged in to use the functionality The user should be logged in to use the functionality System should be able to process the results timely
Must
Must
Must
Must
Must
Must
83 | P a g e
11-
Use Cases:
Brief use-cases:
1- Login: The user opens the page of the website to enter the correct username and password. The system logs in the user to the server. 2- Listing the courses: The user chooses the department of his/her choice from a drop down menu. The system opens up the page of that department. The user clicks the List all Courses on the page. The system displays the list of all courses of that department. 3- Edit Course Content: The user clicks the button Add information. The system opens the required page asking for the name of the course and the course ID. The user selects the ID from the drop down menu. The system displays the name of the subject automatically. The user clicks ok. The system displays the form of the course having the previous data. The user clicks edit on the area he/she wants editing and clicks ok when finished. The system opens up a new window for the user to edit and it updates the information when ok is pressed by the user. 4- Adding a new Course: The user chooses the department of his/her choice from a drop down menu. The page for the department opens. The user clicks the add a course. The system displays a form. The user assigns the name and ID of the course. The system checks if the ID is not already in use. The user enters the information regarding the course and clicks Ok when done. The system updates. 5- Auto-Scheduling: The user clicks on automatic scheduling tab. The system asks to enter the semester. The user enters the semester for which he/she wants to schedule. The system asks to enter courses. The user enters all the courses for that semester. The system gives a list of teachers to choose from for the entire subjects if there are multiple teachers for a subject. The user picks the teachers. The system displays the probable schedule. 6- Manual-Scheduling: The user clicks on manual scheduling tab. The system asks to enter the semester. The user enters the semester for which he/she wants to schedule. The system asks to enter courses. The user enters all the courses for that semester. The system opens up the table and a drag and drop menu listing the subjects marked by the user. The user drags the subject and drops it in the table where he/she wants it to be. The system displays the schedule. The user clicks ok. The system updates.
84 | P a g e
7- View Schedule: The user clicks on Show Table. The system opens a drop down menu asking to present the time table of: semester, teacher or department. The user chooses one of the options. The system asks to enter semester or teachers id or departments name. The user enters the information. The system displays the schedule. 8- Deleting a course: The user writes the name of the course or course ID on the search bar and press enter. The system opens the page containing the information of that course. The user clicks on delete button. The system reconfirms. The user clicks ok. The course is deleted from the database. 9- Edit Auto-Scheduling: The user clicks on automatic scheduling tab. The system asks to enter the semester. The user enters the semester for which he/she wants to schedule. The system asks to enter courses. The user enters all the courses for that semester. The system gives a list of teachers to choose from for the entire subjects if there are multiple teachers for a subject. The user picks the teachers. The system displays the probable schedule. The user clicks edit. The system makes the subjects drag-able. The user drags the subjects/courses from its original place to the place he/she wants it to be. The user clicks ok when done. The system updates. 10- Saving Schedule: The user after scheduling clicks save. The system asks the location to save the schedule. The user browses the location and clicks ok. The system saves the file in .pdf format.
Expanded Use-Cases:
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference 1 Login Any Authenticated User. Log-in a user to the system server. When any of the users wants to connect, he/she will provide his/her username and password. Primary and real Functions: RQ.1, RQ.14
85 | P a g e
Actor Action Step 1: The user opens the page of the website to enter the correct username and password.
System Response
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
2 Listing the courses Any Authenticated User. For listing the courses. When any of the users wants to list all the courses of a certain department of his/her choice-the list is displayed. Primary and real RQ.2, RQ.14 System Response
NORMAL COURSE OF EVENTS Actor Action Step 1: The user chooses the department of his/her choice from a drop down menu.
Step 3: The user clicks the list of all courses on the page.
ALTERNATE COURSE Step 1: The user could also choose the department from home directly.
USE CASE NO
86 | P a g e
USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
Edit Course Content Any Authenticated User. To edit the content of the description of courses The user wants to enter the details of the course and the system updates the information. Primary and real Functions: RQ.4, RQ.13, RQ.14 System Response
NORMAL COURSE OF EVENTS Actor Action Step 1: The user clicks the button Add Information.
Step 2: The system opens the required page asking for the name of the course and the course ID. Step 4: The system displays the name of the course automatically. Step 6: The system displays the form of the course, having the previous data.
Step 3: The user selects the ID from the drop down menu.
Step 7: The user clicks edit on the area he/she Step 8: wants editing and clicks Ok when done The system updates the information. entering all the desired information. ALTERNATE COURSE Step 3: The user selects the name from the drop down menu and the system displays the course ID automatically.
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type
4 Adding a new Course Any Authenticated User. To add new courses in the database. When any of the users wants to add a new course; the system generates a form and updates the information. Primary and real
87 | P a g e
Cross Reference
NORMAL COURSE OF EVENTS Actor Action Step 1: The user chooses the department of his/her choice from a drop down menu. Step 3: The user clicks the add a course Step 5: The user assigns the name and ID of the course. Step 7: The user enters the information regarding the course and clicks Ok when done.
Step 6: The system checks if the ID is not already in use. Step 8: The system updates.
ALTERNATE COURSE Step 1: The user can click on the icon of the department directly if he/she is on the home page.
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
5 Auto-Scheduling Any Authenticated User. To schedule the time table automatically. When the user wants to schedule automatically; the system generates an automatic schedule. Primary and real Functions: RQ.6, RQ.13, RQ.14
NORMAL COURSE OF EVENTS Actor Action System Response Step 1: The user clicks on automatic scheduling tab. Step 2: The system asks to enter the semester. Step 3: The user enters the semester for which he/she wants to schedule. Step 4: The system asks to enter courses. Step 5:
88 | P a g e
Step 6: The system gives a list of teachers to choose from for the entire subjects if there are multiple teachers for a subject. Step 8: The system displays the probable schedule.
ALTERNATE COURSE Step 1: The user clicks the automatic scheduling button if the user is on the home page.
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
6 Manual-Scheduling Any Authenticated User. To schedule the time table manually. When the user wants to schedule manually; the system generates saves the schedule. Primary and real Functions: RQ.7, RQ.13, RQ.14 System Response Step 2: The system asks to enter the semester.
NORMAL COURSE OF EVENTS Actor Action Step 1: The user clicks on manual scheduling tab. Step 3: The user enters the semester for which he/she wants to schedule. Step 5: The user enters all the courses for that semester. Step 7: The user drags the subject and drops it in the table where he/she wants it to be. Step 9: The user clicks ok. ALTERNATE COURSE Step 1:
Step 4: The system asks to enter courses. Step 6: The opens up the table and a drag and drop menu listing the subjects marked by the user.
Step 8: The system displays the schedule. Step 10: The system updates.
89 | P a g e
The user clicks the manual scheduling button if the user is on the home page.
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
7 View Schedule Any Authenticated User. To show the time table When the user wants to present the schedule; the system presents it. Primary and real Functions: RQ.8, RQ.14 System Response Step 2: The system asks to enter the semester. Step 4: The system displays the schedule.
NORMAL COURSE OF EVENTS Actor Action Step 1: The user clicks on Show Table. Step 3: The user enters the semester.
ALTERNATE COURSE Step 2: The semester chosen by the user isnt yet scheduled; the system displays the corresponding message informing the user.
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
8 Deleting a Course Any Authenticated User. To delete a specific course When the user wants delete a course already present in the database. Primary and real Functions: RQ.12, RQ.13, RQ.14 System Response
NORMAL COURSE OF EVENTS Actor Action Step 1: The user writes the name of the course or
90 | P a g e
Step 2: The system opens the page containing the information of that course. Step 4: The system reconfirms. Step 6: The course is deleted from the database.
Step 3: The user clicks on delete button. Step 5: The user clicks ok.
ALTERNATE COURSE Step 2: The course chosen by the user isnt present in the database; the system displays the corresponding error message informing the user.
USE CASE NO USE CASE NAME PRIMARY ACTOR Purpose Overview Type Cross Reference
9 Edit Auto-Scheduling Any Authenticated User. To edit schedule the timetable that was generated automatically. When the user wants to schedule automatically; the system generates an automatic schedule. And the user wants to edit it. Primary and real Functions: RQ.10, RQ.13, RQ.14
NORMAL COURSE OF EVENTS Actor Action System Response Step 1: The user clicks on automatic scheduling tab. Step 2: The system asks to enter the semester. Step 3: The user enters the semester for which he/she wants to schedule. Step 4: The system asks to enter courses. Step 5: The user enters all the courses for that Step 6: semester. The system gives a list of teachers to choose from for the entire subjects if there are multiple teachers for a subject. Step 7: The user picks the teachers. Step 8: The system displays the probable schedule. Step 9:
91 | P a g e
The user clicks edit. Step 11: The user drags the subjects/courses from its original place to the place he/she wants it to be and clicks ok when done. Step 10: The system makes the subjects drag-able.
ALTERNATE COURSE Step 1: The user clicks the automatic scheduling button if the user is on the home page.
10 Saving the schedule Any Authenticated User. To save schedule the timetable that was generated automatically or manually. When the user wants to schedule automatically or manually; the system generates an automatic schedule. And the user wants to save it. Primary and real Functions: RQ.11, RQ.14 System Response Step 2: The system asks the location to save the schedule.
NORMAL COURSE OF EVENTS Actor Action Step 1: The user after scheduling clicks save.
Step 3: The user browses the location and clicks ok. Step 4: The system saves the file in .pdf format. ALTERNATE COURSE Step 1: If the schedule not complete; the system generates an error message.
92 | P a g e
93 | P a g e
12-
ID: 1
Collaborators
Attributes: FirstName (String) LastName (String) ID (String) Password (String) Relationships: Generalization: Aggregation: Other: Teacher, Student, Admin
94 | P a g e
ID: 2
Type: Concrete, Domain Associated Use Case: 1,2,3,4,8,11 Collaborators Connectivity AddInfo Search
Description: A teacher who is registered. Responsibilities Log in Add Course Desc Search Course/s Show Related Teachers View Schedule Save Schedule Edit Course Content View View Edit
Relationships: Generalization: Person Aggregation: Other: Connectivity, AddInfo, Search, List, View, Edit
95 | P a g e
ID: 3
Type: Concrete, Domain Associated Use Case: 1,2,3,8,11 Collaborators Connectivity Search List View
Description: A student who is registered. Responsibilities Log in Search Course/s List Courses View Course Content
96 | P a g e
ID: 4
Description: A user from administration Responsibilities Log in Add a course Search course/s Schedule Time Table List Courses View Time Table Remove a Course
Attributes:
Relationships: Generalization: Person Aggregation: Other: Connectivity, AddInfo, Search, Schedule, List, View, Remove
97 | P a g e
Class Name: Connectivity Description: To log in a user Responsibilities Check ID Check Pass
ID: 5
Type: Concrete, Domain Associated Use Case: 1 Collaborators Teacher, Student, Admin Teacher, Student, Admin
98 | P a g e
ID: 6
Type: Concrete, Domain Associated Use Case: 4, 5 Collaborators Course Course, Search
Description: To add info of a course or add a new one. Responsibilities Add Description of Course Add a new Course Save
99 | P a g e
ID: 7
Description: To search the registered courses. Responsibilities Search a Course Course Name exists?
100 | P a g e
ID: 8
Type: Concrete, Domain Associated Use Case: 6, 7, 10, 11 Collaborators Course, Teacher, Search, Semester Course, Teacher, Search, Semester Course Edit View List
Responsibilities Manual Schedule Automatic Schedule Is Slot Free? Edit Auto Schedule Save List all courses
Relationships: Generalization: Aggregation: Other: Course, Teacher, Search, Edit, View, List
101 | P a g e
ID: 9
Description: To generate the list of registered courses Responsibilities Search Department List all Courses
102 | P a g e
ID: 10
Type: Concrete, Domain Associated Use Case: 8,11 Collaborators Semester Teacher Department
Description: To view the schedule and/or saving it Responsibilities Search Semester Search Teacher Search Department View Schedule Browse Schedule Save
103 | P a g e
ID: 11
104 | P a g e
ID: 12
Description: To edit the content or edit auto-schedule Responsibilities Search Course Edit Content Edit Auto Schedule Save
Schedule
105 | P a g e
ID: 13
Attributes: CourseName (String) DeptName (String) Teacher (String) Time (String) Details (String) Relationships: Generalization: Aggregation: Other:
106 | P a g e
ID: 14
107 | P a g e
ID: 15
Description: A semester with all the subjects offered. Responsibilities GetInfo Exists?
108 | P a g e
Connectivity
Scenario 1: theGUI
Connectivity 2. ID ok? 3. ok
109 | P a g e
Scenario 1: theGUI
Scenario 1: theGUI
Connectivity
110 | P a g e
Scenario 2: Dr. Saba wants to view all courses offered by the Computer Science department. The courses offered by the Computer Science department are: A, B, and C.
Scenario 1: theGUI
List Courses: A, B, C
Scenario 1: theGUI
List Courses: A, B, C
2. DeptName ok? 3. ok
111 | P a g e
Scenario 1: theGUI
List Courses: A, B, C
2. DeptName ok? 3. ok
Scenario 1: theGUI
5. Done!
List Courses: A, B, C
2. DeptName ok? 3. ok
112 | P a g e
Scenario 3: Dr. Saba wants to search the Software Engineering II Course and see the details of this course.
Scenario 1: theGUI
Search
Scenario 1: theGUI
Search
113 | P a g e
Scenario 1: theGUI
Search
Scenario 1: theGUI
5. Done!
Search
114 | P a g e
Scenario 4: Dr.Saba wants to change the book name of the Software Engineering IIs course details. We assume that the already prescribed book Abc is no longer in need and the new Xyz book should be taught to the students.
Scenario 1: theGUI
1. Edit Course details of Software Engineering II; change book name to Xyz
Edit
Search
Scenario 1: theGUI
1. Edit Course details of Software Engineering II; change book name to Xyz
Edit
Search
115 | P a g e
Scenario 1: theGUI
1. Edit Course details of Software Engineering II; change book name to Xyz
Edit
Search
Scenario 1: theGUI
1. Edit Course details of Software Engineering II; change book name to Xyz
Edit
Search
116 | P a g e
Scenario 1: theGUI
1. Edit Course details of Software Engineering II; change book name to Xyz
Edit
Search
Scenario 1: theGUI
6. Done!
1. Edit Course details of Software Engineering II; change book name to Xyz
Edit
Search
117 | P a g e
Scenario 1: theGUI
1. Add Discrete Structures In the database
AddInfo
Search
Course CourseName:
Scenario 1: theGUI
1. Add Discrete Structures In the database
AddInfo
Search
118 | P a g e
Scenario 1: theGUI
1. Add Discrete Structures In the database
AddInfo
Search
5. Add description
Scenario 1: theGUI
1. Add Discrete Structures In the database
AddInfo
Search
119 | P a g e
5. Add description
Scenario 1: theGUI
1. Add Discrete Structures In the database
AddInfo
6. Save
Search
Scenario 1: theGUI
1. Add Discrete Structures In the database
AddInfo
6. Save
Search
120 | P a g e
Scenario 6: The user wants to auto schedule the time table of the 6th semester using Maths, English and P-St; and Miss Itrat, Mis Sadia and Miss Shela as their teachers respectively. theGUI 1. Schedule timetable for 6th sem Schedule
Teacher
Search
Semester SemName:
Course
theGUI
Schedule
Course
121 | P a g e
theGUI
Schedule
Course
theGUI
Schedule
122 | P a g e
theGUI
Schedule
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
123 | P a g e
Schedule
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
124 | P a g e
Scenario 7: The user wants to schedule manually the time table of the 6th semester using Maths, English and P-St; and Miss Itrat, Mis Sadia and Miss Shela as their teachers respectively. theGUI 1. Schedule timetable for 6th sem Schedule
Teacher
Search
Semester SemName:
Course
theGUI
Schedule
Course
125 | P a g e
theGUI
Schedule
Course
theGUI
Schedule
126 | P a g e
theGUI
Schedule
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
127 | P a g e
Schedule
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
128 | P a g e
Scenario 8: View the schedule of semester 6th. theGUI 1. View Schedule of semester 6th View
Semester
Schedule
theGUI
View
129 | P a g e
theGUI
1. Delete Math
Remove
Course
Search
theGUI
1. Delete Math
Remove
2. Search Math
Course
Search
theGUI
1. Delete Math
Remove
Search
130 | P a g e
Search
5. Delete Remove
Search
131 | P a g e
Scenario 10: Mr. Habib wants to auto schedule the time table of semester 6th using Maths, English and P-St; and Miss Itrat, Mis Sadia and Miss Shela as their teachers respectively. Then he wants to edit the schedule. theGUI 1. Schedule timetable for 6th sem Schedule
Teacher
Search
Semester SemName:
Course
theGUI
Schedule
Course
132 | P a g e
theGUI
Schedule
Course
theGUI
Schedule
133 | P a g e
theGUI
Schedule
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
134 | P a g e
6. Show Teachers 7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela 2. Semester 6th Semester SemName: 6th
theGUI
8. Schedule 9. Edit 10. Save 1. Schedule timetable for 6th sem Schedule 6. Show Teachers
7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela
135 | P a g e
8. Schedule 9. Edit 10. Save 1. Schedule timetable for 6th sem Schedule 6. Show Teachers
7. Mis Itrat, Mis Sadia, Mis Shela Teacher Teachers: Miss Itrat, Mis Sadia and Miss Shela
Scenario 11: After viewing the time table of semester 6th; Mr. Habib wants to save it on his system. theGUI 1. View Schedule of semester 6th View
Semester
Schedule
136 | P a g e
theGUI
View
137 | P a g e
5. Done! theGUI
138 | P a g e
14Term
Format
Alphanumeric Alphanumeric(max 8 characters)
Aliases
Given by the university
Alphabets
Edit
139 | P a g e
15-
Conceptual Model
Conceptual Class Category Conceptual Class keyboard SRS
Physical or tangible objects Specifications, deigns or descriptions of things Places Transactions Transaction line items Roles of people Containers of other things Things in a container Other computer or electro-mechanical systems external to the system Organizations Events
University Schedule Courses, Teachers Student, Teacher, Admin Database Teacher, Student, Admin Comsis
SchedulingPolicy CourseCatalog
Records of work, contracts, legal matters Comsis, Syllabus Manuals, documents, reference papers, books Syllabus, CourseSpecification
140 | P a g e
Concept Association List: Category A is a physical part of B A is a logical part of B Association between Conceptual Classes Keyboard Courses Teachers A is physically contained in/on B A is logically contained in B A is a description for B A is a line item of a transaction or report B A is known/ logged/ recorded/reported/captured in B System System Schedule Schedule University Syllabus Courses
MyCourses
A is a member of B
University University University University MyCourses MyCourses MyCourse Student Teacher Schedule
A communicates with B
Teacher Admin
A is related to a transaction B
Admin
141 | P a g e
AutomaticSchedule
ManualSchedule
MyCourses MyCourses
MyCourses University
142 | P a g e
161-
System Operations
log-in
System1 login()
2-
3-
4-
5-
Auto-Scheduling
System5 event() semester() enterC() enterT()
143 | P a g e
6-
Manual Scheduling
System6 event() semester() enterC() enterT() DragNDrop()
7-
View Schedule
System7 event() search() semester()
8-
Deleting a Course
System8 searchCourse() event()
9-
Edit Auto-Scheduling
System9 event() semester() enterC() enterT() DragNDrop()
10-
Name: Search (deptName : String) 2 Number: Responsibilities: Checks that the entered department name exists in the database or not and if it does opens up that department page System Type: SSD: sd listing the courses, sd adding a new Course , sd saving the schedule Cross Use-Case: 2,4, 10 References: Uses database Notes: If department name does not exist indicate error Exceptions: The departments page opens up Output: Pre-conditions: Department name is known to the system - Department is created (instance created) Post- Courses is created (instance created) Conditions: - Teacher is created (instance created) - Department is associated with Courses (association) - Department is associated with Teachers (association)
Notes:
Event (ActionName : String) 3 Does appropriate function with reference to ActionName System SSD: sd listing the courses, sd edit course description, sd adding a new Course , sd auto scheduling, manual scheduling, sd view schedule, sd deleting a course, sd edit auto scheduling, sd saving the schedule Use-Case: 2, 3, 4, 5, 6, 7, 8, 9, 10 Has many function
145 | P a g e
If the action cannot be performed indicate error The action is done and returns true ActionName is known to the system - actionPerformed is set to true (attribute modification)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
Edit (courseID : String) 4 Determines which course description is to be edited System SSD: sd edit course description Use-Case: 3 Uses database If courseID does not exist indicate error Ready to edit courseID is known to the system - Courses is created (instance created) - Courses is associated with CourseSpecification (association) - CourseSpecification is created (Instance created)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
EditContent (content : String) 5 Performs edit functionality. System SSD: sd edit course description
Use-Case: 3
Uses database If content is null indicate error The edit functionality is achieved courseID is known to the system - Courses is created (instance created) - Courses is associated with CourseSpecification (association) - CourseSpecification is created (Instance created) - CourseSpecification.description is changed (attribute modification)
Save () 6 Saves the content in the database System SSD: sd edit course description Uses database If content cannot be saved indicate an error
Use-Case: 3
146 | P a g e
Content is saved and returns true if done Saved variable is set to true (attribute modification)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
Create (CName : String; CID : String) 7 Adds a new Course with name: CName and ID: CID System SSD: sd adding a new course Use-Case: 4 Uses database If CName and/or CID exists indicate an error A new course is created and added in database and returns true if done CName and CID are new to the system - Courses is created (instance created) - Courses is associated with CourseSpecification (association) - CourseSpecification is created (Instance created) - Department is created (instance created) - Schedule is created (instance created) - Courses is associated with Department (association) - Courses is associated with Schedule (association) - Set Done variable to true (attribute modification)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
New (courseContent : String) 8 Adds Course content to the newly created course System SSD: sd adding a new course Use-Case: 4 Uses database If courseContent is null; indicate an error The new course is saved with its course content and saved CName and CID are created - Courses is created (instance created) - Courses is associated with CourseSpecification (association) - CourseSpecification is created (Instance created) - Department is created (instance created) - Courses is associated with Department (association) - Schedule is created (instance created) - Courses is associated with Schedule (association) - Content variable is modified( attribute modification)
147 | P a g e
Name: Number: Responsibilities: Type: SSD: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
Semester (SemesterName : String) 9 Search if the entered semester is correct or not System sd auto-scheduling, sd view schedule, sd edit auto scheduling, sd saving the schedule Use-Case: 5, 7, 9, 10 Uses database If semsterName doesnt exist; indicate an error Returns true if semester exists SemesterName should be known to the system - Done variable is set to true (attribute modification)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
EnterC (AllCourses : String[]) 10 Checks if the entered lists of courses exists or not System SSD: sd auto-scheduling, sd manual scheduling, sd edit auto scheduling UseCase: 5, 6, 9 Uses database If any course doesnt exist; indicate an error Returns true if all the courses exists All the courses should be known to the system - Schedule is created (Instance created) - If automatic scheduling; auto_schedule is created (instance created) - If manual scheduling; manual_scheduling is created (instance created) - Schedule_Desc is created (instance created) - Schedule is associated with Schedule_Desc (association) - Done variable is set to true (attribute modification)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
EnterT (AllTeachers : String[]) 11 Checks if the entered lists of teachers exists or not System SSD: sd auto-scheduling, sd manual scheduling, sd edit auto scheduling UseCase: 5,6, 9 Uses database If any teacher name doesnt exist; indicate an error Returns true if all the teacher name exists All the teacher names should be known to the system - Schedule is created (Instance created) - If automatic scheduling; auto_schedule is created (instance created) - If manual scheduling; manual_scheduling is created (instance created) - Schedule_Desc is created (instance created)
148 | P a g e
Schedule is associated with Schedule_Desc (association) Done variable is set to true (attribute modification)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
DragNDrop (Courses : String[]) 12 Changes the behavior of course to drag-and-drop System SSD: sd manual-scheduling, sd edit auto scheduling
Use-Case: 6, 9
Change the behavior of courses selected If any courses can not be placed at a place; indicate an error Returns true if the placing of course is possible Atleast one course must be selected - Schedule is created (Instance created) - If automatic scheduling; auto_schedule is created (instance created) - If manual scheduling; manual_scheduling is created (instance created) - Schedule_Desc is created (instance created) - Schedule is associated with Schedule_Desc (association) - Done is set to true if done (attribute is modified)
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
SearchCourse (CourseName : String) 13 Checks if the course exists or not System SSD: sd deleting a course Use-Case: 8 Uses database If course name does not exist indicate error Returns true if it exists Course name is known to the system - Courses is created (instance created) - CourseSpecification is created (instance created) - Schedule is created (instance created) - Department is created (instance created) - Courses is associated with CourseSpecification (association) - Courses is associated with Schedule (association) - Courses is associated with Department (association)
149 | P a g e
Name: Number: Responsibilities: Type: Cross References: Notes: Exceptions: Output: Pre-conditions: PostConditions:
Browse (location : String) 14 Checks if location exists or not System SSD: sd deleting a course, sd saving the schedule
Use-Case: 8, 10
Uses users system If it can not be saved; indicate an error Returns true if location is ok and it can be saved in that location Location must exist - SaveSch is created (instance created) - SaveSch is associated with ViewSch (association) - ViewSch is created (instance created)
150 | P a g e
18-
151 | P a g e
152 | P a g e
153 | P a g e
154 | P a g e
155 | P a g e
191-
UML Diagrams
Class Diagram
156 | P a g e
2-
Component Diagram
157 | P a g e
3-
Deployment Diagram
158 | P a g e
4-
Package Diagram
159 | P a g e
5-
Activity Diagram
160 | P a g e
Schedule:
161 | P a g e
Deleting a Course:
162 | P a g e
6-
Sequence Diagram
Add Course:
Auto-Schedule:
163 | P a g e
Manual Scheduling:
View Schedule:
164 | P a g e
20-
Appendixes
Glossary
Term
Username Password Server Course ID Automatic scheduling Manual scheduling Schedule Search bar Drag and drop menu Edit Save Browse location
Definition
An ID given to the user by the university A code assigned to every user for privacy Database where all the information is stored An ID given to the course by the admin Scheduling done by the system itself by running an algorithm Scheduling done by the user manualy Time table generated for every semester of each department A toolbar in GUI A kind of GUI due to which a user can drag and drop objects with the mouse A function that is used to change the already present content A function which saves the content in the database A function which is used to locate files in the users system
165 | P a g e