A Software requirements specification report basically describes and environment for software/application under development. It completely describes the yield, cost, nature of the software/application.
Generally the report will be prepared with following format.
3.1 Functional Requirements
3.2 Non- Functional Requirements
3.2.1 Safety Requirements….
3.2.2 Security Requirements…
3.2.3 Software Quality Attributes…
3.3 Hardware Requirements..
3.4 Software Requirements….
3.5 WaterFall Model..
3.6 Feasibility Study.
3.6.1 Economic Feasibility..
3.6.2 Technical Feasibility….
3.6.3 Operational Feasibility.
4 . System Architecture…..
4.1 Client-Server Architecture..
5 . Design and Implementation….
5.1 Product Features.
5.2 class diagram design..
5.3 Use case diagram..
5.4 Sequence diagram..
5.5 E-R Diagram and Normalisation…
5.5.1 E-R Diagram. ..
7 Testing And Results..
7.1 Unit Testing..
7.2 Black Box Testing.
7.3 White Box Testing…
7.4 Integration Testing….38
7.5 Validation Testing.38
7. 6 Acceptance Testing..39
The following software requirements specification report has been prepared for a project named eAdministration of computer labs.
The project e-Administration of computer labs is an automated system for lab management. It eases the tasks of administrator, instructors, HODs of various departments, technical staff and students.
The main Objective of this project is to provide the solution for an organization which involve computing facilities such as Computers, Printers, LCDs, Digital Boards, ACs etc. on a 24×7 bases to carryout academic experiments for all the branches with all the equipments in good working conditions and also with all the necessary softwares installed and configured. This software also helps the administrator and instructor(s) to maintain proper documentation of the computing systems.
This software is a web based application and can be hosted on the Internet. It also provides clean and user friendly interface to the users.
Our college has 10 computer labs. Each lab is managed by an instructor. It is difficult for the administrator and newly hired instructor to know the entire information (such as number of computers, softwares installed in each system, vendors etc.) of each individual lab. It is also difficult for administrator to integrate the entire information of all labs in college. Our software solves these problems.
The e-Administration of Computer Labs is a new attempt to speed up the process of managing Computer Labs in an educational institute. The existing systems are time consuming and there are many difficulties faced by administrator to get information about each labs within organization. Presently in labs, most of the tasks are carried on manually such as lodging complaints, extra lab requests etc. There are many difficulties faced by instructors, HODs of various departments for carrying out any lab related activities.
This software provides a solution to these problems. It provides interactive user interface and helps users in an organization to get information immediately at that instant of time. The different users of the system are the administrator, the heads of various department, technical staff and lab instructor. These users are assigned with different privileges based on level of administration.
This system helps the technical staff, instructor and head of various departments to register specific complaint and to view the status of their complaint. Here the instructor gets SMS on expiry of specific software. The head of the department can send the extra lab request and can also view complaints associated with the respective department. This software establishes a smooth communication between different users and user admin.
- Helps the administrator and instructor to keep track of the detailed information of the labs.
- Assists in the smooth interaction between different users.
- Proper maintenance of available Resources.
- Speed up the Activities to overcome the problems associated with lab.
- Helps Technical staff/instructor to lodge complaints.
- Automate the task of assigning complaints to specific technical staff based on the nature of problem.
- Helps the HODs of various departments to send an extra lab request to administrator.
3.1 Functional Requirements
- It should provide schedule/time-table without any of clashes among faculties, day, time and room that must be visible to all.
- It should generate report about registered complaint to the admin and response report to the user who have submitted his queries.
- Secure registration and profile management facilities for different users.
- It should provide details like e-learning facilities, server room details, software installation procedures etc. to students.
- It should generate alerts via SMS.
3.2 Non- Functional Requirements
3.2.1 Safety Requirements
If there is extensive damage to a wide portion of the database due to catastrophic failure, such as a disk crash, the recovery method restores a past copy of the database that was backed up to archival storage (typically tape) and reconstructs a more current state by reapplying or redoing the operations of committed transactions from the backed up log, up to the time of failure.
3.2.2 Security Requirements
Security systems need database storage just like many other applications. However, the special requirements of the security market mean that vendors must choose their database partner carefully.
3.2.3 Software Quality Attributes
Since we are hosting our project on the server it will be available all the time.
The system should generate appropriate report about different activities of the lab and should keep track of all records.
The system should maintain correct schedules of labs and the documentation of all lab equipments.
The system should satisfy maximum number of users needs.
3.3 Hardware Requirements
- Pentium IV or higher, (PIV-300GHz recommended)
- 256 MB RAM
- 1 Gb hard free drive space
3.4 Software Requirements
- PHP (front end)
- MS Word 97 or later
- Web Browser: Microsoft Internet Explorer 4.0,Mozilla ,Google Chrome or later
- MySQL Server (back end)
- Operating System: Windows XP / Windows7/ Windows Vista
3.5 WaterFall Model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Analysis, Requirement Specification, Design, Implementation, Testing and Integration and Operation and Maintenance.
If in the beginning of the project failures are detected, it takes less effort (and therefore time and money) for this error. In the waterfall model phases to be properly sealed first before proceeding to the next stage. It is believed that the phases are correct before proceeding to the next phase. In the waterfall model lay the emphasis on documentation. It is a straightforward method. The way of working ensures that there are specific phases. This tells you what stage it is. One can use this method of milestones. Milestones can be used to monitor the progress of the project to estimate.
In our Project, all the requirements are clear and well known and the project is large. All the activities in our project are carried out in above mentioned phases of waterfall model.
3.6 Feasibility Study
The prime focus of the feasibility is evaluating the practicality of the proposed system keeping in mind a number of factors. The following factors are taken into account before deciding in favor of the new system.
3.6.1 Economic Feasibility
Report generation in the proposed system in precise that is reports are generated as per user requirements, which reduces the use of papers and manual labor.
3.6.2 Technical feasibility
Keeping in view the above fact, nowadays all organizations are automating the repetitive and monotonous works done by humans. The key process areas of the current system are nicely amenable to automation and hence the technical feasibility is proved beyond doubt.
3.6.3 Operational Feasibility
The present system has automated most of the manual tasks. Therefore the proposed system will increase the operational efficiency of the administrator and instructors.
4.1 Clint-Server Architecture
The clientserver model of computing is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server machine is a host that is running one or more server programs which share their resources with clients.
Client-server software architecture is versatile and flexible in todays fast-changing IT landscape. It is modular in structure and relies on messaging services for communication between components. They were designed to improve flexibility, usability, scalability, and interoperability. Software flexibility implies the ability for a program to change easily according to different users and different system requirements.
The admin creates different users. Admin can generate lab assignment and assigns instructor to specific complaint or any problem and checks the report to ensure whether the complaints responded or pending.
Users includes Technical staff and Instructors. The user can register complaint pertaining to any lab equipments. The registered complaints will be sent to Admin. Instructor maintains documentation of software, hardware and he also provides the report of equipment conditions to the admin. He performs the tasks assigned by admin. He gets alert via sms about the warranty of product if it is out of date.
Another profile in our project is HODs profile. Here HODs can see the complaints lodged by his/her department users. HOD can also request for extra labs to the Admin. Based on the available slots , admin defines the slots and send a reply to HOD.
This software also facilitates students in getting syllabus copy, software installation procedures, different lab related softwares etc.
Design and Implementation
5.1 Product Features
The major features of e-administration of computer lab system are as listed below.
- Unauthorized access is prevented. Because only authorized user can address the complain and access the resources.
- It helps the administrator to keep track of the detailed information of the labs such as maintaining each users profile, number of available resources etc.
- It helps instructors to dump the softwares into server to facilitate students to take the required softwares.
- It increases the availability of lab resources by their proper maintenance.
- A smooth communication link establish between different users and user admin.
By achieving above features, Responsiveness and hence outcomes of each lab increases.
5.2 class diagram design
- User admin
Creates user, assigns access rights ,authenticates users, checks report, and assigns task. These functions are used to keep track of various activities in labs.
- Service complaint
It includes complaint registration, assigning task to insturctor, addressing complain. These functions may be used to register a complain about improper conditions of devices (in lab) to admin in order to get response/service.
- Report generation
This module generates service report and reports for working condition of the equipments in the lab.
- Software or hardware maintenance
This module checks warranty of particular software, generates alert messages and helps in proper documentation of available softwares or hardwares in labs.
- Lab Assignment:
This module defines slots, generates charts, assigns instructors, and would specify alternate instructor to particular labs.
5.3 Use case diagram
Admin Creates user, checks report and assigns task to user. These functions are used to keep track of various activities in labs.
5.4 Sequence diagram
5.5 E-R Diagram and Normalization
- E-R Diagram constitute a technique for representing the logical structure of a database in a pictorial manner. This analysis is then used to organize data as a relation, normalizing relation and finally obtaining a relation database.
- ENTITIES : Which specify distinct real-world items in an application.
- PROPERTIES/ATTRIBUTES : Which specify properties of an entity and relationships.
- RELATIONSHIPS : Which connect entities and represent meaningful dependencies between them.
Here the Entities are LAB,EMPLOYEE, COMPLAINT,DEPARTMENT and EQUIPMENT.
- The basic objective of normalization is to be reduce redundancy which means that information is to be stored only once. Storing information several times leads to wastage of storage space and increase in the total size of the data stored.
- If a Database is not properly designed it can give rise to modification anomalies. Modification anomalies arise when data is added to, changed or deleted from a database table. Similarly, in traditional databases as well as improperly designed relational databases, data redundancy can be a problem. These can be eliminated by normalizing a database.
- Normalization is the process of breaking down a table into smaller tables. So that each table deals with a single theme. There are three different kinds of modifications of anomalies and formulated the first, second and third normal forms (3NF) is considered sufficient for most practical purposes. It should be considered only after a thorough analysis and complete understanding of its implications. Here We have Normalized up to 3NF.
a) Home page
This is the home page of e-Administration of computer labs. Through this page, students, tech staff and non tech staff can access information partaining to different labs.
TESTING AND RESULT
The reason behind testing was to find errors. Every program or software has errors in it, against the common view that there are no errors in it if the program or software is working. Executing the programs with the intention of finding the errors in it is therefore testing; hence a successful test is one which finds errors. Testing is an activity, however it is restricted to being performed after the development phase is complete, but is carried parallel with all stages of system development, starting with requirement specification.
Test cases were devised with purpose in mind. A test case is a set of the data that a system will process as normal input. The software units developed in the system are modules and routines that are assembled and integrated to perform the required function of the system. Test results once gathered and evaluated, provide a qualitative indication of the software quality and reliability and serve as basis for design modification if required. In this phase testing is done at different levels. Actually testing phase of the implementations works accurately and efficiently before live operation commences.
The unit testing was done after the coding phase was done. The purpose of the unit testing was to locate errors on the module, independent of he other modules. Some changes in the coding were done during the testing. Finally all the modules were individually tested from bottom up starting with smallest and lowest modules and proceeding one at a time.
7.2 Black Box Testing
This method of software testing tests the functionality of an application as opposed to its internal structures or working(i.e. white box testing). Specific knowledge of the application’s code/internal structure and programming knowledge in general is not required. Test cases are built around specifications and requirements, i.e., what the application is supposed to do. It uses external descriptions of the software, including specifications, requirements, and design to derive test cases. These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid inputs and determines the correct output. There is no knowledge of the test object’s internal structure.
7.3 White Box Testing
This method of software testing tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal perspective of the system, as well as programming skills, are required and used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs.
7.4 Integration Testing
Once the unit was over, all the modules were integrated for integration testing. External and internal interfaces are implemented and work as per design, the performance of the module is not degraded.
7.5 Validation Testing
At the culmination of integration testing, software is said to be completely assembled as a package; interfacing errors have been uncovered and corrected. Then as a final series of software test, validation tests were carried out.
7. 6 Acceptance Testing
This is the final stage in the testing process before the system is accepted for operational use. Any requirement problem or requirement definition problem revealed from acceptance testing are considered and made error free.
e-Administration of a computer labs is an automated system for lab management. It eases the tasks of administrator, instructors, technical staff, HODs of various departments and students.
Administrator creates different users and assigns specific privileges to users. He is responsible for handling most of the tasks such as extra lab requests, assigning tasks to instructors etc. Here the user lodges a complaint for improper functioning of the lab equipments. This complaint will be automatically assigned to technical staff based on the nature of the problem.
The instructor maintains the documentation of software, hardware and also reports the condition of equipments to the admin. He also get alerts via SMS about the warranty or expiry of product, if it is out dated.
HODs of the various departments can also send a request for extra lab. Based on the available slots , admin defines the slots and send a reply to HOD. This software also facilitates students in getting syllabus copy, software installation procedures, different lab related softwares etc.
1) Programming the Word Wide Web, 4th Edition, by Robert Sebesta
2) PHP 6 and MySQL 5 for Dynamic Web Sites by Larry Ullman
4) Programming PHP by Rasmus Lerdorf, Kevin Tatroe, and Peter MacIntyre
5) Beginning PHP and MySQL by W.J .Gilmore