# 1 Introduction
[NULL]

## 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).

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

The System Administration Module will facilitate the management of every aspect of the Integrated Library System. It will replace and enhance the current capabilities of commercially available ILSes, as well as add new functionality.

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

## 1.3 Product overview
[NULL]

### 1.3.1 Product perspective
The System Administration Module is part of an enterprise-level Integrated Library System. The requirements in this SRS presuppose the general data structures and functionality of a full-fledged ILS, including Acquisitions and Cataloging modules.

*   **System interfaces**: The module interacts with a patron interface, also known as an Online Public Access Catalog (OPAC).
*   **User interfaces**: The module shall be accessible through a web-browser (Microsoft Internet Explorer v.6.0 and later; Mozilla Firefox v.2.0 and later) or a Windows-compatible client. It shall also be accessible with screen-reading software, screen-magnification software, and other accessibility programs.
*   **Hardware interfaces**: The module shall operate on a Linux or Solaris server.
*   **Software interfaces**: The module 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 supports secure protocols, including SFTP (in active and passive modes), SSL, and SSH. It also supports SMTP for email transport.
*   **Memory**: [N/A]
*   **Operations**: The system provides for live incremental and full backups of data and transaction logs and supports the use of third-party backup software. System administration processes are consolidated at a central location.
*   **Site adaptation requirements**: [N/A]
*   **Interfaces with services**: [N/A]

### 1.3.2 Product functions
The System Administration Module supports the following activities:
*   Configuring the ILS to enable and support features and processes required for management of the Library branches, patrons, collections, and circulation transactions.
*   Monitoring, troubleshooting, and controlling server performance.
*   Monitoring, troubleshooting, and controlling 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, log files, etc.

### 1.3.3 User characteristics
*   **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**: Includes managers, librarians, library technicians, library assistants, and library pages who are involved in designing and providing services for the Library.
*   **System Administrators**: Staff with responsibility for managing servers, databases, applications, services, ports, and APIs related to the ILS.
*   **Managers**: Management staff who oversee Library processes.
*   **Library Managers**: Cluster and Site Managers who provide input to the design and implementation of Library services.
*   **Library Directors**: Members of the Library Executive Team who plan and direct Library services and priorities.

### 1.3.4 Limitations
The current specification presupposes the general functionality of an ILS and specifies only those requirements that directly or indirectly relate to management activities. Specifications for Acquisitions and Serials Management, Circulation, and Cataloging modules have been previously published. Requirements for OPAC and web services are currently under development. The current specification is focused on functional characteristics; data structures and user interfaces will require further specification and development.

## 1.4 Definitions
This SRS is intended for library managers, staff, software project managers, and developers. It is assumed that the reader has a general understanding of Library services and processes and does not require definition of common Library terminology.

# 2 References
[N/A]

# 3 Requirements
[NULL]

## 3.1 Functions
*   **Systems: General**
    *   The system runs on a fully relational, SQL-based database system, with the ability to run SQL queries against any table and access the database as an ODBC source. All data tables and data storage are fully accessible.
    *   The system provides real-time processing. For example, pull lists are up to date at the time of viewing or printing.
    *   Multiple staff members and patrons can simultaneously access and update patron and item records. Record changes are applied in a reasonable way, with prompts to warn when a record has been changed since it was displayed.
    *   For any patron or item record, staff can identify where it is in use (location, user, date and time placed).
    *   The system supports individual and shared staff login accounts. Access to modules is granted by use of "roles" or "privileges".
    *   System documentation is library-specific, web-based, indexed, organized by function, and easily searchable.
    *   System upgrades and updates include written guidelines for updating servers and clients, including a list of new, changed, and removed features.
    *   The system provides access to all configuration files.
    *   The system provides full access to all log files, which can be reviewed without stopping the system. Logs can be enabled, disabled, and set to a specific retention threshold.
    *   The system provides access to the root shell.
*   **Systems: Consoles and Dashboards**
    *   The system supports the creation of custom dashboards that display current and historical data about system performance, record creation, and circulation transactions.
    *   The system provides full support for SNMP and monitoring of system resources. Alert thresholds are configurable and can be sent via dashboards, email, or text messages.
    *   The system provides the ability to set thresholds on the length of time records are locked and to view and unlock records in a sustained use/locked condition.
    *   The system provides a performance monitoring dashboard showing process ID, owner, IP address, CPU utilization, memory utilization, and run time.
    *   The system provides a server management console including utilities for software and server shutdown, startup, and restart.
    *   The system provides an administrative dashboard displaying backup status, reboot history, software version, pending transactions, log file sizes, record counts, and database utilization.
    *   The system provides a management console displaying workstations running client software and utilities for managing and killing client sessions.
    *   The system provides a circulation dashboard showing key performance indicators such as check-outs per hour, which can be limited to a single branch or set to systemwide.
    *   The system provides a single console with access to all configuration files, with read/write permissions assignable to users and groups.
    *   The system provides a dashboard for locating and viewing log files.
    *   The system provides a single interface for reviewing and controlling scheduled tasks.
    *   The system provides the ability to access and edit email configuration.
    *   The system supports SMTP for email transport.
*   **Systems: Business Rules**
    *   The system supports restrictions based on business rules, such as restrictions on deleting item records that are in checked-out status.
    *   The system provides customizable 'Rules of Suppression' that specify whether patrons and staff can view authority, bibliographic, order, and item records in staff and public interfaces.
    *   The system allows creation and modification of requesting rules that determine whether a patron can place a hold on an item based on various criteria.
    *   The system allows creation and modification of loan rules that allow or disallow check-out of items, calculate loan periods, and determine 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.
*   **Systems: Data Recovery**
    *   The system provides the capability to perform live incremental and full backups of data and transaction logs and supports the use of third-party backup software.
    *   The system logs data changes and provides "undo" functionality, ideally with revision control.
    *   The system provides the ability to cluster servers for failover capability.
*   **Systems: Security**
    *   Patron data is secure in all transfers to and from the system.
    *   System administrative staff has full visibility and control of user privileges.
    *   The system supports secure protocols, including SFTP, SSL, and SSH.
*   **Systems: Maintenance**
    *   MARC bibliographic and authority records can be imported and exported, singly and in batch.
    *   The system supports an unlimited number of record sets, with the ability to import and export set members in batch for purposes like batch field updates or record deletion.
    *   The system provides a dedicated interface with configurable templates for creating new staff accounts.
    *   The system provides a dedicated interface with configurable templates, field validation, and defaults for creating new patron accounts.
    *   The system supports scheduling of maintenance tasks, reports, and data exports. Jobs can be scheduled in sequence and managed.
    *   System administration staff can view and manage jobs scheduled by other staff.
    *   The system supports administrator-programmable and user-programmable macros and/or keyboard shortcuts.
*   **Systems: Client Management**
    *   Staff and group accounts are independent from workstations; client installation is not tied to a specific location.
    *   Client software installation and updates must be centrally managed, allowing streaming updates from the server to specified clients.
    *   All client configuration files are server-based, and configurations can be exported and imported between clients.
*   **Systems: Queries and Reports**
    *   The system provides the ability to fully customize the layout and appearance of reports and output them to standard formats including CSV and Excel.
    *   The system provides a user-friendly interface for designing queries against all record types, with administrators controlling access to tables and fields.
    *   System administrators can create report templates that are available to front-line staff.
    *   The system provides fine-grained permissions to allow or disallow staff to run specific reports.
    *   The system reports for each record type: current record number, current number of records, number deleted, and number purged.
    *   The system supports defining and selecting receipt, standard, label, and forms printers. All Windows printers are supported.
    *   The system provides the ability to print to a file on the server, FTP, email, or a 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 purchasing and processing over 500,000 items per year.
*   Searches and reports should be processable during open hours without disrupting other system functions.
*   The system provides real-time processing for functions like generating pull lists.

## 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 shall provide an online, hierarchical, and cross-linked help system in HTML that describes and illustrates all system functions.
*   System documentation shall be web-based, indexed, organized by function, and easily searchable.
*   The system supports administrator-programmable and user-programmable macros and/or keyboard shortcuts.
*   The system provides a user-friendly interface for designing queries.

## 3.5 Logical database requirements
*   The system 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 all record types maintained or accessed by the module, including authority, bibliographic, order, item, and hold/request records.
*   The system must provide the ability to specify default values, data validation, automatic formatting, and required status for any field in the database.

## 3.6 Design constraints
*   The system shall operate on a Linux or Solaris server.
*   The system shall be accessible through a web-browser or a Windows-compatible client.
*   If web-browser based, the system shall be accessible through Microsoft Internet Explorer (v.6.0 and later) and Mozilla Firefox (v.2.0 and later).
*   The system shall use a fully relational database back-end.
*   The system shall produce standards-compliant HTML.
*   The system shall provide a development and training environment with the ability to migrate configurations to a production environment.

## 3.7 Software system attributes
*   **Reliability**: [N/A]
*   **Availability**: The system shall provide the ability to cluster servers for failover capability.
*   **Security**:
    *   User rights and privileges will be controlled through security groups and/or “roles” that allow access control for individuals and groups.
    *   System administrative staff has full visibility and control of user privileges.
    *   Patron data must be secure in all transfers to and from the system.
    *   The system must support secure protocols, including SFTP, SSL, and SSH.
*   **Maintainability**:
    *   System upgrades and updates must include written guidelines for updating servers and clients.
    *   Client software installation and updates must be centrally managed, allowing streaming updates from the server.
*   **Portability**:
    *   The system shall operate on a Linux or Solaris server.
    *   The system shall be accessible through a web-browser or a Windows-compatible client.

## 3.8 Supporting information
*   The software developer shall provide complete data specifications for all record types and a thorough high-level description of major processes.
*   The system shall provide an online, hierarchical, and cross-linked help system in HTML.
*   System documentation shall be library-specific, web-based, indexed, organized by function, and easily searchable.
*   System upgrades and updates shall include written guidelines and a list of new, changed, and removed features.
*   Process flowcharts indicating the current approach to System Administration at King County Library System are available to give contextual information.

# 4 Verification
[NULL]

## 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
[NULL]

## 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 accept input and provide services to multiple locations.
*   **Dependencies**
    *   The System Administration Module relies on the data structures and functionality of an enterprise-level Library Automation System, including Acquisitions and Cataloging modules.
    *   The System Administration Module will interface with a variety of vendor websites, via published APIs and/or automated transfer of standard-format data files.
    *   The System Administration 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
*   **ODBC**: Open Database Connectivity
*   **OPAC**: Online Public Access Catalog
*   **SFTP**: Secure File Transfer 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
