# 1 Introduction
## 1.1 Purpose
This Software Requirements Specification (SRS) describes the functional and nonfunctional requirements for the System Administration Module of an Integrated Library System (ILS). The module will replace and enhance the current capabilities of commercially available ILSes, as well as add new functionality.

## 1.2 Scope
The software product to be produced is the System Administration Module.

The module will facilitate the management of every aspect of the Integrated Library System. The application of the software is to support activities such as configuring the ILS, monitoring and controlling server and application performance, managing user accounts, managing software updates, and backing up data.

The requirements were developed for the King County Library System but are intended to be suitable for many large, urban, multiple-branch, centralized library systems.

## 1.3 Product overview
### 1.3.1 Product perspective
The System Administration Module is a component of a larger, enterprise-level Integrated Library System (ILS). It presupposes the general data structures and functionality of a full-fledged ILS, including Acquisitions and Cataloging modules.

*   **System interfaces**: The module interfaces with other ILS modules (Acquisitions, Cataloging), a patron interface (Online Public Access Catalog), and various vendor websites.
*   **User interfaces**: The module shall be accessible through a web-browser or a Windows-compatible client. If web-browser based, it shall be accessible through Microsoft Internet Explorer (v.6.0 and later) and Mozilla Firefox (v.2.0 and later). The interface shall be accessible with screen-reading software, screen-magnification software, and other accessibility programs.
*   **Hardware interfaces**: The system shall support the definition and selection of receipt printers, standard printers, label printers, and forms printers. All Windows printers are supported.
*   **Software interfaces**: The module shall operate on a Linux or Solaris server. It will interface with a variety of vendor websites via published APIs and/or automated transfer of standard-format data files (e.g. USMARC21, EDIFACT).
*   **Communications interfaces**: The system shall support secure protocols, including SFTP (in both active and passive modes), SSL, and SSH. It shall also support SMTP for email transport.
*   **Memory constraints**: [N/A]
*   **Operations**: The system shall provide the capability to perform live incremental and full backups of data and transaction logs, and support the use of third-party backup software.
*   **Site adaptation requirements**: The module shall provide a development and training environment with the ability to migrate configurations to a production environment.

### 1.3.2 Product functions
The System Administration Module provides a summary of the following major functions:
*   Configuring the ILS to support management of Library branches, patrons, collections, and circulation.
*   Monitoring, troubleshooting, and controlling server, database, and application performance.
*   Monitoring, troubleshooting, and controlling services, ports, and application programming interfaces.
*   Managing user and group accounts and privileges.
*   Managing server and client software installation, upgrades, and updates.
*   Backing up databases, configuration files, and log files.

### 1.3.3 User characteristics
The intended users of the product fall into the following classes:
*   **Patron**: A customer of the library system.
*   **Staff**: Includes managers, librarians, and library assistants involved in providing library services.
*   **System Administrators**: Staff responsible for managing servers, databases, applications, and services related to the ILS.
*   **Managers**: Management staff who oversee Library processes.
*   **Library Managers**: Cluster and Site Managers who provide input to service design.
*   **Library Directors**: Members of the Library Executive Team who plan and direct services.

It is assumed that the reader has a general understanding of Library services and processes.

### 1.3.4 Limitations
The development of the System Administration Module is limited by the following factors:
*   The specification presupposes the general functionality of an existing ILS and specifies only requirements related to management activities.
*   The specification is focused on functional characteristics. Data structures and user interfaces will require further specification and development.
*   The module shall use a fully relational database back-end.
*   The module shall produce standards-compliant HTML.
*   User rights and privileges will be controlled through security groups and/or roles.

## 1.4 Definitions
*   **Patron**: A customer of King County Library System, either possessing a library card or not, either on site of a community library or not, using either print materials, media materials, or electronic resources.
*   **Staff**: Include managers, librarians, library technicians, library assistants, and library pages who are involved in designing and providing services for the Library.
*   **System Administrators**: Include staff with responsibility for managing servers, databases, applications, services, ports, and APIs related to the ILS.
*   **Managers**: Include management staff who oversee Library processes.
*   **Library Managers**: Include Cluster and Site Managers who provide input to the design and implementation of Library services.
*   **Library Directors**: Include members of the Library Executive Team who plan and direct Library services and priorities.

# 2 References
*   King County Library System specifications for Acquisitions and Serials Management, Circulation, and Cataloging modules.
*   Process flowcharts indicating the current approach to System Administration at King County Library System.

# 3 Requirements
## 3.1 Functions
*   **General System Functions**
    *   The system runs on a fully relational, SQL-based database, allowing SQL queries against any table and access to the database as an ODBC source.
    *   The system provides real-time processing for tasks like pull lists, shelf reading, and weeding.
    *   Multiple staff and patrons can simultaneously access and update patron and item records. The system will manage record changes and warn users if a record has been changed since it was displayed.
    *   For any locked patron or item record, staff can identify the location, user, and time it was locked.
    *   The system supports both individual and shared staff login accounts, with access to modules controlled by roles or privileges.
    *   System documentation is library-specific, web-based, indexed, searchable, and organized by function.
    *   System upgrades and updates include written guidelines and a list of new, changed, and removed features.
    *   The system provides access to all configuration files and log files. Log files can be reviewed without stopping the system and can be enabled, disabled, and set to a retention threshold.
    *   The system provides access to the root shell.
*   **Consoles and Dashboards**
    *   The system supports the creation of custom dashboards for displaying system performance, record transactions, and circulation data.
    *   The system provides full support for SNMP and monitoring of system resources (disk space, CPU, memory, etc.) with configurable alert thresholds and multiple notification methods (dashboards, email, text).
    *   An administrative console allows setting thresholds for record lock times and provides tools to view and unlock locked records.
    *   A system performance dashboard identifies processes with their ID, owner, IP address, CPU/memory utilization, and run time, and flags runaway processes.
    *   A server management console includes utilities for software and server shutdown, startup, and restart.
    *   An application dashboard displays key system information like backup status, reboot history, software version, pending transactions, log file sizes, record counts, and database utilization.
    *   A client management console displays workstations running client software and provides utilities for managing client sessions.
    *   A circulation dashboard shows key performance indicators like check-outs per hour, which can be filtered by branch or system-wide.
    *   The system provides a single console for accessing all configuration files, with permissions assignable to users and groups.
    *   A dashboard is provided for locating and viewing log files.
    *   A job scheduling console allows for reviewing and controlling all scheduled tasks.
    *   The system provides the ability to access and edit email configuration and supports SMTP for email transport.
*   **Business Rules Management**
    *   The system supports restrictions based on business rules, such as preventing the deletion of item records that are currently checked out.
    *   The system provides customizable 'Rules of Suppression' to control the visibility of authority, bibliographic, order, and item records in staff and public interfaces.
    *   The system allows the creation and modification of requesting rules that determine if a patron can place a hold on an item based on criteria like patron type, item type, and account balance.
    *   The system allows the creation and modification of loan rules that determine check-out eligibility, loan periods, and renewal limits based on various criteria.
    *   The system provides the ability to specify default values, data validation, automatic formatting, and required status for any field.
*   **Data Recovery**
    *   The system provides the capability to perform live incremental and full backups of data and transaction logs and supports third-party backup software.
    *   The system logs data changes and provides "undo" functionality or revision control.
    *   The system supports the ability to cluster servers for failover capability.
*   **Security Management**
    *   Patron data must be secure in all transfers to and from the system.
    *   System administrative staff have full visibility and control of user privileges.
    *   The system supports secure protocols, including SFTP, SSL, and SSH.
*   **System Maintenance**
    *   MARC bibliographic and authority records can be imported and exported, singly and in batch.
    *   The system supports an unlimited number of record sets for batch operations like field updates and record deletions.
    *   The system provides dedicated interfaces with configurable templates for creating new staff and patron accounts.
    *   The system supports scheduling of maintenance tasks, reports, and data exports. Jobs can be scheduled in sequence, and system administrators can manage jobs scheduled by other staff.
    *   The system supports administrator-programmable and user-programmable macros and keyboard shortcuts, which are centrally managed.
*   **Client Management**
    *   Staff and group accounts are independent of workstations.
    *   Client software installation and updates are centrally managed, allowing for streaming updates from the server to specific clients.
    *   All client configuration files are server-based and can be exported and imported between clients.
*   **Queries and Reports**
    *   The system allows for full customization of the layout and appearance of reports, with output options including display, print, email, CSV, and Excel.
    *   A user-friendly interface is provided for designing queries against all record types, with access to tables and fields controlled by administrators.
    *   System administrators can create report templates for use by front-line staff.
    *   The system provides fine-grained permissions to control which staff can run specific reports.
    *   The system can report the current record number, total records, deleted records, and purged records for each record type.
    *   The system supports printing to a file, FTP, email, or a physical printer from any part of the application.

## 3.2 Performance requirements
*   The system must support a library system with 50 locations, 20 million circulations, and the purchasing and processing of over 500,000 items per year.
*   The system provides real-time processing.
*   It is highly desirable that searches and reports can be processed during open hours without disrupting other system functions.

## 3.3 Usability requirements
*   The system shall be accessible with screen-reading software, screen-magnification software, and other software programs designed to increase accessibility.
*   The system supports administrator-programmable and user-programmable macros and/or keyboard shortcuts.
*   The SRS aims for a high level of readability for a non-technical audience.

## 3.5 Logical database requirements
*   The System Administration Module shall use a fully relational, SQL-based database back-end.
*   The system must provide the ability to run SQL queries against any table in the database and access the database as an ODBC source.
*   All data tables and data storage must be fully accessible.
*   The software developer shall provide complete data specifications for authority records, bibliographic records, order records, item records, hold/request records, and other records maintained or accessed by the module.

## 3.6 Design constraints
*   The system shall operate on a Linux or Solaris server.
*   The system shall be accessible through a web-browser (Microsoft Internet Explorer v.6.0+ and Mozilla Firefox v.2.0+) or a Windows-compatible client.
*   The module shall use a fully relational database back-end.
*   The module shall produce standards-compliant HTML.
*   The module shall provide a development and training environment with the ability to migrate configurations to a production environment.
*   User rights and privileges will be controlled through security groups and/or “roles”.

## 3.7 Software system attributes
*   **Reliability**: The system logs data changes to provide "undo" functionality and supports server clustering for failover capability.
*   **Availability**: The system provides the capability to perform live incremental and full backups of data and transaction logs. It also supports server clustering for failover.
*   **Security**: Patron data must be secure in all transfers. System administrators have full control of user privileges, which are managed through roles or security groups. The system supports secure protocols, including SFTP, SSL, and SSH.
*   **Maintainability**: System upgrades include written guidelines. The system provides access to all configuration and log files. The developer shall provide complete data specifications, high-level process descriptions, and an online, hierarchical help system.
*   **Portability**: The system shall operate on a Linux or Solaris server and be accessible via a Windows-compatible client or specified web browsers, indicating a degree of platform independence.

## 3.8 Supporting information
*   The system shall provide an online, hierarchical, and cross-linked help system in HTML that describes and illustrates all system functions.
*   The software developer shall provide complete data specifications for all records maintained or accessed by the module.
*   The software developer shall provide a thorough high-level description of major processes.
*   Requirements include references to process flowcharts which provide contextual information about current operations.

# 4 Verification
## 4.1 Functions
[N/A]

## 4.2 Performance requirements
[N/A]

## 4.3 Usability requirements
[N/A]

## 4.5 Logical database requirements
[N/A]

## 4.6 Design constraints
[N/A]

## 4.7 Software system attributes
[N/A]

# 5 Appendices
## 5.1 Assumptions and dependencies
*   **Assumptions**
    *   The System Administration Module is part of an enterprise-level Library Automation System.
    *   System Administration processes are consolidated at a central location and provide services to multiple locations.
*   **Dependencies**
    *   The module relies on the data structures and functionality of an enterprise-level Library Automation System, including Acquisitions and Cataloging modules.
    *   The module will interface with a variety of vendor websites, via published APIs and/or automated transfer of standard-format data files.
    *   The module interacts with a patron interface, also known as an Online Public Access Catalog (OPAC).

## 5.2 Acronyms and abbreviations
*   **API**: Application Programming Interface
*   **CSV**: Comma-Separated Values
*   **HTML**: HyperText Markup Language
*   **ILS**: Integrated Library System
*   **MARC**: Machine-Readable Cataloging
*   **NCIP**: NISO Circulation Interchange Protocol
*   **ODBC**: Open Database Connectivity
*   **OCLC**: Online Computer Library Center
*   **OPAC**: Online Public Access Catalog
*   **SFTP**: Secure File Transfer Protocol
*   **SIP**: Standard Interchange Protocol
*   **SMTP**: Simple Mail Transfer Protocol
*   **SNMP**: Simple Network Management Protocol
*   **SQL**: Structured Query Language
*   **SRS**: Software Requirements Specification
*   **SSH**: Secure Shell
*   **SSL**: Secure Sockets Layer
*   **VNC**: Virtual Network Computing