Software Requirement Specification Employee Tracking System Software Engineering I CS524 Professor Dr. Liang Sheldon X. Liang Team Members Seung Yang, Nathan Scheck, Ernie Rosales Page 1
Software Requirements Specification SRS 1.0 Introduction The purpose of the Software Requirements Specification (SRS) is to specify the functionality, performance and interface requirements of the software project. All of the required features of the software project expressed by the client and agreed upon by the development team shall be expressed in this document. Additional requirements of the client shall first be agreed upon by the development team. The formal release version of the project shall meet every requirement listed in this document. 1.1 Goals and Objectives The goal of this project is to develop an Employee Tracking System to be able to track employee s time, mileage and job progress. The Employee Tracking system works using Visual Basic Graphical User Interface asking employee to input basic information like First name, Last name, Employee id, client name, start time, end time, billable hour, mileage, problems, solutions and notes. The data will be stored into a database that will be accessed later on to produce different reports. The objective of this project is to conveniently track employee s time, mileage and job progress easily through the world wide web for ease of access. This is a group project for CS524, Software Engineering 1, a nine weeks course in the graduate computer science program at Azusa Pacific University, Spring 2007, Dr. Sheldon Liang, Ph.D., instructor. 1.2 Statement of Scope The Employee Tracking System software is a 32-bit Windows application. The users of this tool will be employees and management inputting their First name, Last name, Employee id, client name, start time, end time, billable hour, mileage, problems, solutions and notes of overall status of the project. The purpose of this software tool is to be able to input Page 2
information and produce a report. The tool allows the users (employee and management) to enter and change hours, mileage and status of a project. The software also allows users to view and print the report. The scope of this document is limited to providing the designers of this tool the requirements of this software. This document is the reference for the design team and quality assurance team. This document describes the correspondence of the client s product requirements (verbal and written) to the software requirements of this software along with the features, constraints and interfaces of the Employee Tracking System Software. 1.3 Software context The overall goal is to produce software that employees and management can access to input their First name, Last name, Employee id, client name, start time, end time, billable hour, mileage, problems, solutions and notes of overall status of the project. The software objective is to make this process easily accessible using the power of the world web for ease of access. The users can access this web application and be able to input their information and also get the necessary report. 1.4 Major Constraints Employee Tracking System shall be designed to run on an IA-32 or 100% compatible computer running a 32 bit version of the Microsoft Windows XP operating system. The minimum requirements of the computer shall be 512 MB of RAM, 2 GB of free hard drive space and a web browser capable of displaying HTML 4.01 files. The source code for the display shall be written in Visual Basic 6.0. The source code for the engine shall be written in Visual C++ 6.0. The data output shall be stored in an Access 2003 database using the ADO database connection library. The output reports shall be saved as HTML 4.01 files using the Transitional DTD as defined by the World Wide Web Consortium. 2.0 Usage Scenario Page 3
2.1 User Profiles The Employee Tracking System uses two user types to define access to data and reports. 2.1.1 ADMIN The admin user type has access to view all tickets, create tickets, and view all reports. There is one admin account that is shared by all of management. 2.1.2 EMPLOYEE Each employee will have his or her own account in the system, and will log in with their name. Employee accounts have access to create new tickets with themselves designated as the responsible employee, and also view any ticket in the system that lists them as the responsible employee. 2.2 Use-Case The following use cases detail the processes behind the major interactions of the user with the Employee Tracking System. This is not an exhaustive list, but all categories will be explained. similar functions may be extrapolated. 2.1.2 User logs in to Employee Tracking System (ETS) Brief Description: All users must log into the secure ETS website using their login name and password before they can access the system. Step-by-Step Description: 1. User enters the URL into an appropriate web browsing application (see section 2.3). 2. User enters login name and password. 3. If the name/password combination is not found in the system, the user is asked to try again. If it is, the available list of tickets (see 2.2.2) is displayed. 2.1.3 The ticket list page is displayed Brief Description: All users can view a list of tickets that apply to them. Normal users can only view tickets that are assigned to them, and admin users can view all tickets. Step-by-Step Description: 1. System or user requests the ticket list page. Page 4
2. The ticket listing function checks the user type. 3. The ticket listing function makes a database call for all tickets applicable to that user (admin users can view all, others can only view those that are assigned to them.) 4. The ticket function prints out the table of tickets, each having a link to edit that ticket. 2.1.4 User requests to create a ticket Brief Description: Users can create new tickets by clicking a button in the main menu. This will provide an empty ticket for to fill out. Step-by-Step Description: 1. The ticket editing function generates an empty ticket form and displays it to the user. 2. After the user fills out the form (partially or completely), it can be saved clicking the save button. 3. When the user initiates the save, the ticket editing function verifies the data and writes it to the database. 4. The user is returned to the ticket list. (2.2.2) 2.1.5 User requests to edit a ticket From the ticket list page, the user may select a ticket to edit. Step-by-Step Description: 1. The ticket editing function checks to make sure that user is assigned to the ticket. If not, an error is displayed. 2. The ticket editing function makes a call to the database to retrieve the current information for the ticket being edited. 3. The ticket editing function displays the ticket 2.1.6 User request a monthly financial report The admin account has the ability to a financial report for the month, which includes all costs associated with tickets completed during that month. Step-by-Step Description: 1. User requests to view a monthly financial report. 2. The report generator function checks to make sure the user has admin permissions, and fails with an error message if the user does not. 3. The report generator function makes a call to the database to retrieve all tickets completed within the current month, along with any client and employee data belonging to them. 4. The report generator function creates the report page, with an option for the user to change the current report month. Page 5
2.2 Special Usage Considerations The Employee Tracking System is web-based, allowing for easy access from any webenabled computer. It does, however, require a modern, standards-compliant web browser, such as Internect Explorer 6+, Safari, or Mozilla Firefox. 3.0 Data Model and Descriptions 3.1 Data Description Three data tables are required: 3.1.1 ETS_TICKET Contains all data relevant to a work ticket, including a mandatory employee id and client id to allow linkage with the other two tables. 3.1.2 ETS_EMPLOYEE Stores employee information, such as first and last names, id, and commission percentage. 3.1.3 ETS_CLIENT Stores client information, such as id and name 3.2 Relationships ETS_TICKET to ETS_EMPLOYEE: many to one ETS_TICKET to ETS_CLIENT: many to one 3.3 Complete Data Model Page 6
3.4 Data Dictionary (provided in SQL format) create sequence "ets_ticket_seq" start 1 increment 1 minvalue 1 maxvalue 2147483647 cache 1; create sequence "ets_employee_seq" start 1 increment 1 minvalue 1 maxvalue 2147483647 cache 1; create sequence "ets_client_seq" start 1 increment 1 minvalue 1 maxvalue 2147483647 cache 1; CREATE TABLE ETS_TICKET ( id INTEGER NOT NULL PRIMARY KEY, emp_id INTEGER NOT NULL, client_id INTEGER NOT NULL, start_time TIMESTAMP NOT NULL, end_time TIMESTAMP, billable_hours INTEGER, mileage INTEGER, problem TEXT, solution TEXT, notes TEXT, edited_time TIMESTAMP NOT NULL, is_complete BOOLEAN ); CREATE TABLE ETS_EMPLOYEE ( id INTEGER NOT NULL PRIMARY KEY, first_name CHARACTER VARYING(128), last_name CHARACTER VARYING(128), commission_pct INTEGER ); CREATE TABLE ETS_CLIENT ( id name ); INTEGER NOT NULL PRIMARY KEY, CHARACTER VARYING(256) Page 7
4.0 Functional Model and Description 4.1 Specific Function Descriptions 4.1.1 Log In The Log In function is handled automatically by the web server, and is not within the scope of this project. Users will not be allowed to access the system until a valid username/password pair is supplied. 4.1.2 List Tickets The List Tickets function displays a table containing all tickets that the user is able to interact with. For admin users, this is all tickets. For any other, it is only those tickets that are assigned to them. 4.1.2.1 Processing Narrative Is the user an admin? If so, select all tickets from the database. If not, select only tickets assigned to the user from database. Display selected tickets in a table, each with a link to edit it. 4.1.3 New/Edit Ticket The New/Edit Ticket function handles all data modification for tickets, whether it s a new ticket, or an existing one. 4.1.3.1 Processing Narrative 4.1.4 Save Ticket Is a ticket being edited? If so, load its information from the database. If not, use default/blank data. Display a form containing the editable data from the previous step. The Save Ticket function verifies the entered ticket data and writes it to the database 4.1.4.1 Processing Narrative Verify each field of the ticket data to be sure it conforms with the data dictionary standards. Page 8
For each incorrect field, display an error message. Is a new ticket being saved? If so, create a new entry in the database with the new ticket information. If not, update the current ticket s entry in the database with the given information. Display save successful message. 4.1.5 Display Monthly Report The Display Monthly Report function shows one of three types of reports: financial, employee, or client for the current month, or any specific month for which there is available data. 4.1.5.1 Processing Narrative Is the user an admin? If not, send user back to the List Tickets page. Has the user chosen a report type? If not, use the default. Based on the chosen type, get the appropriate list of items to show. Select those items from the database. Display a table of all pertinent data, along with the option to choose a different report type. 4.2 Software Interface Design 4.2.1 External Machine Interface No external machine interfaces are required. 4.2.2 External System Interface Both the executable application and database will be housed on a remote web server, requiring a standard web browsing application for access. All system interfacing is handled automatically by the web browser, and need not be considered within the scope of this project. 4.2.3 Human Interface The user interface will be displayed as standard HTML web pages, using standard HTML forms and hyperlinks for data entry and navigation, respectively. As mentioned in 4.2.2, a web browsing application is required. Page 9
4.3 Control Flow Description Since web-based applications are primarily stateless, with the exceptions including the use of cookies and user authentication, control is not much of a technical concern except for the aforementioned user authentication. Each functional component ( page ), when initiated, performs its function and then essentially terminates the program, leaving the user with the output. When the user chooses another page, that function is activated and output is produced in another completely separate instantiation. Only the user authentication information is kept between instantiations, so the user does not need to log in each time. 5.0 Behavioral Model and Description 5.1 Description of Software Behavior Following is a detailed description of the major events and states. Refer to section 5.2 for information on how they interact. 5.1.1 Events Invalid Name/Password Valid Name/Password Global Menu Choice Ticket is Selected to Edit Ticket is saved Change Date User enters the wrong combination of username and password at the login screen. User enters a valid combination of username and password at the login screen. Almost any state (page) can be jumped to by choosing it from the global menu. From the Ticket List Page state, a ticket can be chosen to be edited. From the Edit Ticket Page and New Ticket Page states, saving a ticket writes its info to the database. (Admin only) From any of the report page states (Financial, Employee, or Client), sets a different date for which to display that form. Page 10
5.1.2 States Log In User must supply a valid name/password combination before being allowed access to the system. Ticket List Page The applicable list of tickets is shown, along with the global menu. Admin users can see all tickets, other users can only see tickets that are assigned to them. New Ticket An empty form for creating a new ticket is shown, Page along with the global menu. Edit Ticket A form with the currently-selected ticket s Page information available for editing is shown, along with the global menu. Monthly (Admin only) Financial Financial information is displayed for the current Report Page month with the option to change months, along with the global menu Monthly (Admin only) Employee Employee information is displayed for the current Report Page month with the option to change months, along with the global menu Monthly Client (Admin only) Report Page Client information is displayed for the current month with the option to change months, along with the global menu Page 11
5.1 State Transition Diagram Page 12
5.3 Control Specification Since web-based applications are primarily stateless, with the exceptions including the use of cookies and user authentication, control is not much of a technical concern except for the aforementioned user authentication. The system will simply be responding to user commands which can perform an action or move the system between states. 6.0 Restrictions, Limitations, and Constraints Only valid users are allowed to access the Employee Tracking System. The users access are limited by the host server, client PC and media bandwidth. 7.0 Validation Criteria 7.1 Classes of Tests Login Test = this will test the security login to access the Employee Tracking System. A test name and password will be supplied before being allowed access to the system. Ticket List Page Test = the applicable list of tickets is tested, along with the global menu. Admin users will test all tickets for their proper information. New Ticket Page Test = an empty form for creating a new ticket is shown, along with the global menu. User should be able to input information and store the information. Monthly Financial Report Page Test = (Admin only) Financial information will be tested for the current month with the option to change months, along with the global menu. Monthly Employee Report Page Test = (Admin only) Employee information will be tested for the current month with the option to change months, along with the global menu. Monthly Client Report Page Test = (Admin only) Client information will be for the current month with the option to change months, along with the global menu. 7.2 Expected Software Response Login Test Result = with the proper name and password supplied users should be able to access the main page. If the incorrect name and password is supplied an access denied screen will be displayed. Ticket List Page Result = the applicable list of tickets will be compared with a hard copy of Page 13
tickets to verify accuracy. New Ticket Page Result = new information will be verified within the database. Monthly Financial Report Page Result = (Admin only) Financial information will be verified for the current month comparing the result to current monthly financial information. Monthly Employee Report Page Result = (Admin only) Employee information will be verified for the current month comparing the result to current monthly employee information. Monthly Client Report Page Result = (Admin only) Client information will be verified for the current month comparing the result to current monthly client information. 7.3 Performance Bounds Employee Tracking System performance is based on the performance and specification of the host server, the client PC and the media bandwidth. 8.0 Appendices 8.1 System Traceability Matrix A matrix that traces stated software requirements back to the system specification. 8.2 Product Strategies If the specification is developed for a product, a description of relevant product strategy is presented here. 8.3 Analysis Metrics to be Used A description of all analysis metrics to be used during the analysis activity is noted here. 8.4 Supplementary Information (as required) Page 14