El Cinco - Trouble Ticket System
Software Requirements Specification
Prepared for
CS 4311 Senior Project Design
Authored by
Kevin Harper
Ian Jenson
Kevin Kreutz
Mark Romero
John Sanders
Table of Contents
1. Business Requirements. 3
1.1. Introduction. 3
1.2. Scope. 3
1.3. Goals. 3
2. Domain Requirements. 4
2.1. Terminology. 4
2.2. Actors. 4
2.3. Domain Analysis. 4
2.4. Data Objects. 5
3. Design Specifications. 9
3.1. Use Case Analysis. 9
3.2. Non-Functional Requirements. 16
4. Risk Management. 17
5. Associated Figures. 17
1. Business Requirements
A Software Requirements Specification includes three distinct sections - business requirements, domain requirements, and design specifications. The business requirements describe the high-level goals and scope of the project. The domain requirements represent the user acceptance criteria and document the functionality that the system must support. Finally, the design specifications define the details that the developers must build into the product to enable users to accomplish their tasks, thereby satisfying the business requirements.
1.1. Introduction
The purpose of this system is to have an efficient, organized, and productive environment for keeping track of and completing trouble tickets. This software system will be utilized by corporations that have an IT support staff for hardware and software issues related to computers used within the organization.
1.2. Scope
The intended scope of this project is to:
1: Provide a well organized help desk solution software
2: Provide an easy interface for both technicians and customers
3: Have enough capability to make an established helpdesk more efficient
1.3. Goals
2. Domain Requirements
The domain requirements of the system identify the features without defining all the details. These follow from the previous business requirements and represent the acceptance criteria for the product.
2.1. Terminology
The following is a list of terms that are non obvious or have specific meaning when used in this document.
Help Desk -
A help desk is an information and assistance resource that troubleshoots problems with computers or similar products.
Trouble Ticket-
A trouble ticket is an issue with software or hardware realated to a customers trouble ticket computer, or other technologies.
Trouble Ticket System
A trouble ticket system is a computer software package that manages and system maintains lists of issues, as needed by an organization.
2.2. Actors
Customer:
Any person within an organization who is experiencing hardware or software difficulties.
Technician:
Support staff who resolves the problem in a submitted trouble ticket.
Administrator:
Support staff who has complete access to the system.
Staff:
Technicians and administrators.
2.3. Domain Analysis
The high level domain requirements are grouped by high level functional requirements.
FA 001: System Access
Provide authentication services and permissions for each user group
· DOM-001-001: Access to the site will be restricted by membership in the domain
· DOM-001-002: A system administrator shall be able to modify a user's group
FA 002: Front End
Provide interface for customer
· DOM-002-001: A customer shall be able to submit a service request ticket
· DOM-002-002: A customer shall be able to view all their active service request tickets
· DOM-002-003: A customer shall be able to edit all their active service request tickets
FA 003: Back End
Provide interface for technician’s ability to process trouble tickets, and allow the system administrator the ability to maintain the system
· DOM-003-001: A staff member shall be able to submit a service request ticket
· DOM-003-002: A staff member shall be able to view all active service request tickets
· DOM-003-003: A staff member shall be able to edit all active service request tickets
· DOM-003-004: A staff member shall be able to assign active service request tickets to other technicians
· DOM-003-005: A staff member shall be able to access a knowledge base where pervious solutions will be found
· DOM-003-006: A staff member shall be able to send a canned message to an active service request ticket
· DOM-003-007: A staff member shall be able to attach any file that is pertinent to the solution of the service request ticket
· DOM-003-008: A staff member shall be able to change the status of an active service request
· DOM-003-009: A staff member shall be able to change the priority of an active service request
FA 004: Email subsystem
Provides email piping notification within the system
· DOM-004-001: Email notification, ability to set email preferences
· DOM-004-002: Email piping
2.4. Data Objects
The following list of data objects were discovered in the analysis.
Data Class: Canned Messages
Description: Stores pre-defined replies to a ticket
Examples:
· Common Answers
· Requests for more information
Attributes:
· id: unsigned integer - Unique canned message identifier
· title: string of max length 255 - The title of the canned message
· text: string may contain HTML - The body of the canned message
· cat: unsigned integer - Id of category that the canned message (foreign key)
· active: unsigned integer - 1 if canned message can be used, 0 if not
· created: datetime - The date and time the canned message was created
· modified: datetime - The date and time the canned message was last modified
Data Class: Category
Description: A group of related tickets that is selected by the customer when submitting a ticket.
Examples:
· Service outage
· Internet connectivity issues
Attributes:
· id: unsigned integer - Unique category identifier
· name: string of max length 64 - Name of the category
· desc: string, may contain HTML - Description of the category
· active: unsigned integer - If 1, tickets can be created in or moved to the category, 0 otherwise
· published: unsigned integer - If 1, customers will be able to select the category on the frontend, 0 if only selectable by technicians
Data Class: Fields
Description: Custom form fields that the customer or technician fills in on the ticket
Examples:
· URL
· Operating System
· Version
Attributes:
· id: unsigned integer - Unique group identifier
· name: string of max length 128 - Name of the group
· desc: text - Description of the group
· active: unsigned integer - 1 if user group can be used, 0 if not
· created: datetime - Date and time user group was created
· modified: datetime - Date and time user group was last modified
Data Class: Groups
Description: Stores user group information
Examples:
· Network Support
· Level 1 Software Support
· Level 2 Software Support
Attributes:
· id: unsigned integer - Unique group identifer
· name: string of max length 128 - Name of the group
· desc: text - Description of the group
· active: unsigned integer - 1 if user group can be used, 0 if not
· created: datetime - Date and time user group was created
· modified: datetime - Date and time user group was last modified
Data Class: Message
Description: Stores ticket communication information
Examples:
· Initial message of ticket
· Reply to a ticket
Attributes:
· id: unsigned integer - Unique message identifier
· text: string may contain HTML - The body of the message
· ticket: unsigned integer - Id of the ticket the message belongs to (foreign key)
· user: unsigned integer - User if of the message creator (foreign key)
· isStaff: unsigned integer - 1 if the user is a technician, 0 otherwise
· internal: unsigned integer - if 1 only technicians can view the message, if 0 customer can view message
· created: datetime - The date and time the message was created
· modified: datetime - The date and time the message was last modified
Data Class: Priority
Description: Stores category specific data about custom priorities
Examples:
· High
· Medium
· Low
Attributes:
· id - unsigned integer, Unique priority identifier
· name - string of max length 64, The name of the priority
· ordering - unsigned integer, The order the priority should appear in
· cat - unsigned integer, The id of the category the priority belongs (foreign key)
Data Class: Staff
Description: Stores staff information
Examples:
· Technicians
· System Administrators
Attributes:
· id: unsigned integer - Unique staff user id identifier
· username: string of max length 64 - Username of staff member, used for login
· password: string of max length 81 - Concatenation of password hash, ':', and
· password salt.
· firstName: string of max length 128 - First name of staff member
· lastName: string of max length 128 - Last name of staff member
· email: string of max length 255 - Email address of staff member
· active: unsigned integer - 1 if staff member is login, 0 if not
· lastlogin: datetime - The date and time the staff member last logged in
· created: datetime - The date and time the staff member's account was created.
Data Class: Status
Description: Stores category specific data about custom statuses.
Examples:
· Open
· Closed
· In Progress
· On Hold
Attributes:
· unsigned integer - Unique status identifier
· name: string of max length 64 - Name of the status
· ordering: unsigned integer - Order the status should appear in
· cat: unsigned integer - Id of the category the status belongs to (foreign key)
Data Class: Ticket
Description: Stores general information for the ticket
Examples:
· Active Tickets
· Closed Tickets
Attributes:
· id - unsigned integer, Unique ticket identifier
· title - string of max length 255, The title of the ticket as entered by customer
· creator - unsigned integer, User id of ticket's creator (foreign key)
· priority - unsigned integer, Priority Id (foreign key)
· status - unsigned integer, Status Id (foreign key)
· escalated - unsigned integer, 1 if ticket is escalated, 0 other wise
· cat - unsigned integer, Category id (foreign key)
· created - datetime, The date and time the ticket was created
· modified - datetime, The date and time the ticket was last modified
3. Design Specifications
Use cases shift the perspective of requirements development from the expected system performance, to a discussion of what users need to accomplish. By ensuring that each use case lies within the defined project scope, the resulting set of use cases will encompass all the desired system functionality.
3.1. Use Case Analysis
The use cases are grouped by high level functional requirements.
UC-001
Name: User Login
Summary: The user logs into the system and is sent to his/her homepage.
Actors: Customer, Technician, Administrator, External Authentication System
Preconditions: The user has a web browser open, has navigated to the system's URL, and no valid authentication token is present.
Description:
1. Redirect the user to the external authentication system.
PostConditions: An authentication token is obtained from the external authentication system or the user does not return to the system.
UC-002
Name: Customer Create Ticket
Summary: All customers can create a ticket in the system.
Actors: Customer
Preconditions: The customer has logged into the system and is viewing his/her homepage.
Description:
1. Click to view a new, blank ticket.
2. Add a title and description of the problem to be addressed by the ticket.
3. Select a category to which the ticket will be associated.
4. Click to submit the ticket to the system for storage.
5. The customer receives an email stating that a new ticket has been opened.
PostConditions: The new ticket is saved in the system, the customer has an email stating that the ticket is open.
UC-003
Name: Staff Create Ticket
Summary: All staff members can create a n ticket in the system.
Actors: Technician, Administrator
Preconditions: The staff member has logged into the system and is viewing his/her homepage.
Description:
1. Click to view a new, blank ticket.
2. Add a title and description of the problem to be addressed by the ticket.
3. Enter the username of the customer associated with this ticket.
4. Alter any settings associated with the ticket that the user is able to alter based on his/her permissions level.
5. Select a category to which the ticket will be associated.
6. Click to submit the ticket to the system for storage.
7. The customer receives an email stating that a new ticket has been opened.
PostConditions: The new ticket is saved in the system, the customer has an email stating that the ticket is open.
UC-004
Name: Staff Edit Ticket
Summary: Staff members can edit information pertaining to a ticket.
Actors: Technician, Administrator
Preconditions: The staff member is logged into the system and viewing a list of available tickets for that particular user.
Description:
1. Select the desired ticket.
2. If desired, add a message to the ticket.
3. If desired, change any settings associated with the ticket.
4. If desired and authorized, enable email notification for the update.
5. Click to submit the changes to the system.
PostConditions: Any changes to the ticket are saved. If enabled, an email is set to the customer containing information on the update.
UC-005
Name: Customer Edit Ticket
Summary: Customers can edit information pertaining to a ticket.
Actors: Customer
Preconditions: The customer is logged into the system and viewing a list of available tickets for that particular user.
Description:
1. Select the desired ticket.
2. If desired, add a message to the ticket.
3. Click to submit the changes to the system.
PostConditions: Any changes to the ticket are saved.
UC-007
Name: View User
Summary: The administrator can search for information on a particular user.
Actors: Administrator
Preconditions: The administrator is logged in and viewing his/her dashboard.
Description:
1. Click to view a list of all users.
2. The administrator can optionally filter users by doing any or all of the following:
a. Selecting a user group from a list.
b. Selecting a user type from a list.
c. Typing in a specific user name.
3. Click to view information about desired user.
PostConditions: Information about the selected user is displayed.
UC-008
Name: Edit User Group
Summary: An administrator can change which user group each user belongs to.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of all users.
2. Select the user.
3. Select a different user group from the list of user groups.
4. Click to apply the changes.
PostConditions: The selected user is in the specified group.
UC-009
Name: Enable Disable Email Notification
Summary: An administrator may enable or disable the email notification feature for a particular group.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing the administrator dashboard. This feature requires hosting that supports SMTP for outgoing email messages.
Description:
1. The administrator must select the group from the group list, and add (or remove) a check mark to the box labeled 'email notification' to enable (or disable) this feature.
2. Additionally, when enabling this feature, the administrator must enter a valid outgoing mail server and sender's address in the appropriate fields provided on the dashboard.
3. The changes will go into effect after the administrator clicks on the apply button.
PostConditions: The email notification feature is either enabled or disabled for the specified group.
UC-010
Name: Enable Disable Email Piping
Summary: An administrator may enable or disable the email piping feature for a particular group.
Actors: Administrator
Preconditions: The administrator is logged into the system and viewing the dashboard. This feature requires hosting that supports POP3 for incoming email messages.
Description:
1. The administrator must select the group from the group list.
2. Add (or remove) a check mark to the box labeled 'enable email piping' to enable (or disable) this feature.
3. When enabling this feature, the administrator must enter a valid incoming mail server, email address, and authentication information in the appropriate fields provided on the dashboard.
4. The system verifies the mail server settings entered.
5. Click apply to save these changes.
PostConditions: Email Piping is enabled or disabled.
UC-011
Name: Filtering Tickets
Summary: Staff members may filter pending and closed trouble tickets based on priority, status, technician, ticket Id, customer Id, and open/close date.
Actors: Technician, Administrator
Preconditions: Staff member is logged into the system and viewing the list of all open tickets.
Description:
1. Technicians and administrators can choose to filter by priority and/or status by selecting the desired values from two separate drop down menus, or can manually enter technician, ticket, and customer Ids in the appropriate fields along with the open date or the close date of the tickets to be searched for. Any combination of the aforementioned items may be used for ticket filtering.
2. When the desired fields are set, the staff member must click the search button to view the resulting list of tickets.
PostConditions: The staff member is viewing the filtered list of tickets.
UC-012
Name: Reply Using Canned Response
Summary: Staff members may reply to a trouble ticket request using a canned response.
Actors: Technician, Administrator
Preconditions: Staff member is logged into the system and viewing a ticket.
Description:
1. The ticket to be replied to is selected from a list of tickets.
2. Below the reply text box should be a drop down list of all canned responses.
3. When a canned response is selected from the drop down, the reply box should be populated with text of the canned response.
4. Click to send the response and store the changes in the system.
PostConditions: The system has been updated with the reply and the customer is sent an email containing the canned response if email notification is enabled.
UC-013
Name: Attach Files
Summary: Customers and staff members can attach files to a ticket.
Actors: Customer, Technician, Administrator
Preconditions: Customer or staff member is logged into the system and viewing a ticket.
Description:
1. Below the reply box should be a file upload box with a browse button.
2. When the browse button is click a file select dialog should be displayed.
3. After the file is uploaded, the file name should show up in the file upload box.
4. Reply text should be entered in the reply box before the ticket with attachment can be saved.
5. Click to save changes and update the system.
PostConditions: The system has stored any updates and contains the file(s) which was attached.
UC-014
Name: Create Canned Response
Summary: Administrators can create new canned responses for each category.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of canned responses.
2. Click to view a blank canned response.
3. Select a category for this canned response.
4. Enter the text of the canned response.
5. Click to save the canned response.
PostConditions: The system associates the new canned response with the selected category.
UC-015
Name: Edit Canned Response
Summary: Administrators can edit all canned responses in the system.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of canned responses.
2. Click to view the desired canned response.
3. Edit information pertaining to the canned response.
4. Click to save the canned response.
PostConditions: The system reflects the changes to the canned response.
UC-016
Name: Delete Canned Response
Summary: Administrators can delete any existing canned response.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of canned responses.
2. Click next to the desired canned response to delete it.
3. Click to save changes.
PostConditions: The system has removed the canned response from the database and will no longer be available.
UC-017
Name: Escalation of Ticket
Summary: Escalating a ticket is assigning the ticket onto a higher level technician
Actors: Staff
Preconditions: Staff has attempted to solve the issue, and no solution was found and is then escalated.
Description:
1. Select the desired ticket.
2. If desired, add a message to the ticket.
3. Reassign the ticket to a higher level technician.
4. Click to submit the changes to the system.
PostConditions: Which ever staff member escalated the ticket will no longer be able to edit that ticket.
UC-018
Name: Assignment of ticket
Summary: Assigning a ticket to a technician
Actors: Staff
Preconditions: Tickets are created and are open
Description:
1. Select the desired ticket.
2. If desired, add a message to the ticket.
3. Reassign the ticket.
4. Click to submit the changes to the system.
PostConditions: The technician is now documented to have worked on the ticket.
UC-019
Name: Create Custom Field
Summary: Administrators can create new custom fields for any category.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of all custom fields in the system.
2. Click to view a new, blank custom field.
3. Select which category this custom field will be associated with.
4. Enter a name and description of this custom field.
5. Select whether this custom field will be a drop-down list, text box, radio button, etc.
6. If required, enter default values for this custom field.
7. Click to submit the changes to the system.
PostConditions: A new custom field is created and is associated with the selected category.
UC-020
Name: Disable Custom Field
Summary: Administrators will be able to disable any custom fields in the system.
Actors: Administrators
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of all custom fields in the system.
2. Click next to the desired custom field in order to disable the custom field.
3. Click to submit changes to the system.
PostConditions: The selected custom field is now disabled and will not appear on any new tickets.
UC-021
Name: View Knowledge Base
Summary: View knowledge base for solutions, or previous tickets
Actors: Staff
Preconditions: The staff member is logged into the system and is viewing his/her dashboard.
Description:
1. Click the knowledge base.
2. Filter ticket by desired category.
3. Click the desired ticket to view.
PostConditions: None
UC-022
Name: Add Category
Summary: The administrator can add new categories to the system.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of existing categories.
2. Click to view a new, blank category.
3. Add in the category's name and description.
4. Decide if the category will be published to the customer.
5. Click to save the changes.
PostConditions: A new category exists in the system and is visible to customers if published.
UC-023
Name: Edit Category
Summary: The administrator can edit information associated with each category.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of existing categories.
2. Select a category to edit.
3. Edit any fields associated with the category.
4. Click to save changes.
PostConditions: The system is updated with the changes.
UC-024
Name: Disable Category
Summary: The administrator can disable any category.
Actors: Administrator
Preconditions: The administrator is logged into the system and is viewing his/her dashboard.
Description:
1. Click to view a list of existing categories.
2. Click next to a category to disable it.
3. Click to save changes.
PostConditions: The system no longer allows any tickets to be associated with this category.
UC-025
Name: Change Category of Ticket
Summary: All staff members can change the category of a ticket.
Actors: Technician, Administrator
Preconditions: The staff member is logged into the system and is viewing his/her dashboard.
Description:
1. Select an existing ticket to view its information.
2. Select a new category from the list of existing categories.
3. Click to save changes.
PostConditions: The ticket is now associated with the selected category.
UC-026
Name: Customer Reopens a Ticket
Summary: A customer can reopen a ticket via email piping by replying to an email pertaining to the ticket.
Actors: Customer
Preconditions: The ticket status is set to closed and the customer has an email pertaining to the ticket.
Description:
1. Click reply to the email.
2. Do not alter the subject line (if the email client adds Re:, this is fine).
3. Add any new information above all other text in the body of the email.
4. Send the email.
5. The system will add the new message to the ticket and change the ticket's status to open.
PostConditions: The system will add the new message to the ticket and its status will be listed as open.
3.2. Non-Functional Requirements
This section lists the quality or non-functional requirements of the system.
NFR-001: The application shall be web based and written in PHP
NFR-002: The application database should utilize mysql
NFR-003: The application should use cascading style sheets to centralize style designs
NFR-004: The minimum browser requirements should be FireFox 3.x, IE 7.x, safari 1.x, or
Chrome 3.x
4. Risk Management
These are the identified risks involved with building the trouble ticket system and the continued secured operation of the system and the solutions to those risks:
|
Risk Identification |
Risk Type |
Risk Reduction Strategy |
|
Team member unable to continue work |
Intolerable (Schedule) |
Plan to complete work about one week before deadline. If team member is unable to continue, split up the work among remaining team members. |
|
SQL Injection Attack |
ALARP |
Input validation on frontend and backend. Escape or remove all dangerous input (opening script tags, single quotes, etc) from data supplied by user and database. |
|
Cross Site Scripting Attack |
ALARP |
Properly encode and escape all HTML output. Also, same measures as SQL Injection. |
|
Cross Site Request Forgery Attack |
ALARP |
Same as Cross Site Scripting. |


