## 1.1 Purpose

The purpose of this Software Requirements Specification (SRS) is to describe the functional and nonfunctional requirements for the System Administration Module of an Integrated Library System (ILS). This module is designed to replace and enhance the current capabilities of commercially available ILSes, as well as to introduce new functionalities. The requirements outlined in this document are specifically developed for the King County Library System but are expected to be applicable to other large, urban, multiple-branch, centralized library systems.

## 1.2 Scope

The software product to be produced is the System Administration Module of an Integrated Library System (ILS). This module is designed to facilitate the management of various aspects of the ILS, including configuring the system to support library management processes, monitoring and controlling server and application performance, managing user accounts and privileges, and handling software installations and updates. The System Administration Module aims to replace and enhance the capabilities of existing ILS solutions while introducing new functionalities.

The application of this software is specifically tailored for large, urban, multiple-branch, centralized library systems, such as the King County Library System. The module supports activities like database backups, server performance monitoring, and user management, providing significant benefits in terms of operational efficiency and system reliability. The primary objectives are to streamline library management processes, ensure system stability, and enhance user experience through improved system administration capabilities.

### 1.3.1 Product perspective

The System Administration Module is a component of a larger Integrated Library System (ILS) designed to manage various aspects of library operations. It is intended to replace and enhance the capabilities of existing commercial ILS solutions while introducing new functionalities. The module is specifically developed for the King County Library System but is adaptable for other large, urban, multi-branch, centralized library systems.

#### System interfaces
The System Administration Module interfaces with other components of the ILS, such as Acquisitions, Serials Management, Circulation, and Cataloging modules. It also interacts with external vendor websites through published APIs and automated data file transfers (e.g., USMARC21, EDIFACT). Additionally, it interfaces with a patron interface known as the Online Public Access Catalog (OPAC).

#### User interfaces
The module is accessible through a web browser or a Windows-compatible client, supporting Microsoft Internet Explorer (v.6.0 and later) and Mozilla Firefox (v.2.0 and later). It is designed to be accessible with screen-reading and screen-magnification software, ensuring usability for users with disabilities.

#### Hardware interfaces
The System Administration Module operates on Linux or Solaris servers. It supports various hardware configurations, including server and client software installations, upgrades, and updates.

#### Software interfaces
The module relies on a fully relational, SQL-based database system, allowing SQL queries and ODBC access. It supports secure protocols such as SFTP, SSL, and SSH for data transfers. The module also integrates with third-party backup software like EMC NetWorker for data recovery operations.

#### Communications interfaces
The module supports SNMP for system monitoring and can send alerts via administrative dashboards, email, and text messages. It also supports SMTP for email transport.

#### Memory constraints
[N/A]

#### Operations
The module supports both interactive and unattended operations, including real-time processing and live incremental and full backups. It provides tools for monitoring and managing system performance, server processes, and application dashboards.

#### Site adaptation requirements
The module allows for site-specific configurations, such as user and group account management, security roles, and privileges. It provides a development and training environment with migration capabilities to a production environment.

#### Interfaces with services
The System Administration Module interacts with various services, including vendor APIs and cloud-based data transfers, to facilitate library operations and data management.

### 1.3.2 Product functions

The System Administration Module of the Integrated Library System (ILS) is designed to facilitate the management of various aspects of library operations. The major functions include:

- **Configuration Management**: Configuring the ILS to support features and processes necessary for managing library branches, patrons, collections, and circulation transactions.

- **Performance Monitoring and Troubleshooting**: Monitoring, troubleshooting, and controlling server, database, and application performance, as well as services, ports, and application programming interfaces.

- **User and Privilege Management**: Managing user and group accounts and privileges to ensure secure and efficient access to the system.

- **Software Management**: Overseeing server and client software installation, upgrades, and updates to maintain system integrity and performance.

- **Data Backup**: Backing up databases, configuration files, log files, and other critical data to prevent data loss and ensure recovery.

These functions are essential for the effective administration of a large, urban, multiple-branch library system, ensuring that all components of the ILS operate smoothly and efficiently.

### 1.3.3 User characteristics

The intended users of the System Administration Module include a diverse group with varying levels of expertise and responsibilities:

- **Patrons**: These are customers of the King County Library System, who may or may not possess a library card. They utilize library services both on-site and remotely, accessing print materials, media, and electronic resources.

- **Staff**: This group encompasses managers, librarians, library technicians, library assistants, and library pages. They are involved in designing and providing library services and may have varying levels of technical expertise.

- **System Administrators**: These users are responsible for managing servers, databases, applications, services, ports, and APIs related to the Integrated Library System (ILS). They are expected to have a high level of technical expertise.

- **Managers**: This category includes management staff who oversee library processes. They may have a moderate level of technical expertise and are involved in decision-making processes.

- **Library Managers**: Cluster and Site Managers fall under this category. They provide input into the design and implementation of library services and may have a moderate level of technical expertise.

- **Library Directors**: Members of the Library Executive Team who plan and direct library services and priorities. They are likely to have a strategic focus with varying levels of technical expertise.

These user groups may have different educational backgrounds and experience levels, which can influence the usability of the System Administration Module. The system is designed to be accessible and user-friendly to accommodate these diverse user characteristics.

### 1.3.4 Limitations

- **Regulatory Requirements and Policies**: [N/A]
- **Hardware Limitations**: The System Administration Module shall operate on a Linux or Solaris server and be accessible through a web-browser or a Windows-compatible client.
- **Interfaces to Other Applications**: The System Administration Module interfaces with a variety of vendor websites via published APIs and/or automated transfer of standard-format data files (e.g., USMARC21, EDIFACT).
- **Parallel Operation**: [N/A]
- **Audit Functions**: User rights and privileges will be controlled through security groups and/or "roles" that allow access control for individuals, workgroups, and arbitrary staff groups.
- **Control Functions**: [N/A]
- **Higher-Order Language Requirements**: [N/A]
- **Signal Handshake Protocols**: [N/A]
- **Quality Requirements**: It is highly desirable that searches and reports can be processed during open hours without disrupting other system functions.
- **Criticality of the Application**: The System Administration Module is part of an enterprise-level Library Automation System.
- **Safety and Security Considerations**: System supports secure protocols, including SFTP, SSL, and SSH. Patron data is secure in all transfers to and from the system.
- **Physical/Mental Considerations**: System Administration shall be accessible with screen-reading software, screen-magnification software, and other software programs designed to increase accessibility.
- **Limitations from Other Systems**: 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 provides real-time processing capabilities.

## 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**: Includes managers, librarians, library technicians, library assistants, and library pages involved in designing and providing services for the Library.
- **System Administrators**: Staff responsible for managing servers, databases, applications, services, ports, and APIs related to the Integrated Library System (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.
- **Integrated Library System (ILS)**: A system that facilitates the management of library operations, including cataloging, circulation, and acquisitions.
- **System Administration Module**: A component of the ILS that manages the configuration, monitoring, and control of the library system's technical infrastructure.
- **OPAC (Online Public Access Catalog)**: A patron interface for accessing the library's catalog and services online.
- **SNMP (Simple Network Management Protocol)**: A protocol used for monitoring and managing network devices.
- **SIP2/NCIP2**: Protocols used for communication between library systems and self-service devices.
- **MARC (Machine-Readable Cataloging)**: A standard format for the representation and communication of bibliographic and related information.
- **SQL (Structured Query Language)**: A programming language used for managing and manipulating relational databases.
- **ODBC (Open Database Connectivity)**: A standard API for accessing database management systems.
- **SFTP (Secure File Transfer Protocol)**, **SSL (Secure Sockets Layer)**, **SSH (Secure Shell)**: Protocols used for secure data transmission over networks.
- **EMC NetWorker**: A third-party backup software used for data protection and recovery.
- **VNC (Virtual Network Computing)**: A graphical desktop-sharing system used to remotely control another computer.
- **Remote Desktop**: A feature that allows a user to connect to and control a computer from a remote location.
- **USMARC21**, **EDIFACT**: Standard formats for data exchange in library and business environments.
- **Cluster**: A group of servers that work together to provide failover capability and ensure high availability.
- **Dashboard**: A user interface that organizes and presents information in an easily readable format, often used for monitoring system performance.
- **Role**: A set of permissions assigned to a user or group to control access to system functions and data.
- **Privileges**: Specific rights granted to users or groups to perform certain actions within the system.
- **Macros**: Automated sequences of actions or commands that can be triggered by a user to perform repetitive tasks efficiently.
- **Record Lock**: A mechanism to prevent simultaneous access to a record by multiple users, ensuring data integrity.
- **Failover**: The capability to automatically switch to a standby system or component upon the failure of the currently active system.
- **Revision Control**: A system that manages changes to documents, programs, and other information stored as computer files.
- **Alert Thresholds**: Configurable limits that trigger notifications when certain system metrics exceed or fall below specified values.
- **Configuration Files**: Files used to set parameters and options for software applications and systems.
- **Log Files**: Files that record events and transactions occurring within a system, used for monitoring and troubleshooting.
- **Root Shell**: A command-line interface with administrative privileges, allowing full control over the system.
- **SMTP (Simple Mail Transfer Protocol)**: A protocol used for sending emails across networks.
- **Business Rules**: Constraints or conditions that govern the operations and decisions within a system, often based on organizational policies.
- **Suppression Rules**: Rules that determine the visibility of records to different user groups within the system.
- **Requesting Rules**: Rules that define the conditions under which patrons can place holds on library items.
- **Loan Rules**: Rules that govern the borrowing and renewal of library items, including loan periods and restrictions.
- **Data Validation**: The process of ensuring that data entered into a system meets predefined criteria for accuracy and consistency.
- **Incremental Backup**: A backup method that saves only the data that has changed since the last backup.
- **Full Backup**: A complete backup of all data and system files.
- **Undo Functionality**: A feature that allows users to reverse recent changes or actions within a system.
- **Job Scheduling**: The process of planning and executing tasks or processes at specified times or intervals.
- **Keyboard Shortcuts**: Key combinations that provide quick access to certain functions or commands within a software application.
- **Client Software**: Software installed on a user's device that interacts with a server to perform specific tasks or access services.
- **Query Tool**: A software feature that allows users to create and execute queries to retrieve specific data from a database.
- **Report Templates**: Predefined formats for generating reports, which can be customized or used as-is by users.
- **Printer Support**: The ability of a system to interface with and manage various types of printers for outputting documents and reports.
- **Print Output Options**: Various methods for delivering printed content, including direct printing, saving to a file, or sending via email or FTP.

# 2 References

[N/A]

## 3.1 Functions

- **Input Validity Checks**: The system supports data validation, allowing specification of default values, automatic formatting, and required status for any field. This ensures that inputs are checked for validity before processing.

- **Sequence of Operations**: The system facilitates various operations such as configuring the ILS, monitoring server and application performance, managing user accounts, and backing up data. These operations are supported through dashboards and consoles that provide real-time data and control over system processes.

- **Responses to Abnormal Situations**:
  - **Overflow**: [N/A]
  - **Communication Facilities**: The system supports secure protocols, including SFTP, SSL, and SSH, ensuring secure data transfer and communication.
  - **Hardware Faults and Failures**: The system supports server clustering for failover capability, ensuring continuity in case of hardware failures.
  - **Error Handling and Recovery**: The system logs data changes and provides "undo" functionality, allowing for data rollback and recovery from errors.

- **Effect of Parameters**: The system allows for the configuration of business rules, such as loan and requesting rules, which determine the behavior of the system based on various parameters like patron type and item status.

- **Relationship of Outputs to Inputs**:
  - **Input/Output Sequences**: The system supports real-time processing, ensuring that outputs like pull lists and circulation data are up-to-date at the time of viewing or printing.
  - **Formulas for Input to Output Conversion**: [N/A]

The functional requirements are supported by various sub-functions, including system monitoring, job scheduling, and client management, which are facilitated through user-friendly interfaces and dashboards.

## 3.2 Performance requirements

- The system must support a library system with 50 locations and handle 20 million circulations annually, processing over 500,000 items per year.
- It is highly desirable that searches and reports can be processed during open hours without disrupting other system functions.
- The system provides real-time processing, ensuring that pull lists are up to date at the time of viewing or printing, and supports live shelf reading and weeding.
- The system should allow multiple staff members and patrons to simultaneously access and update patron and item records, with record changes applied in a reasonable way and prompts to warn when a record has been changed since it was displayed.
- The system supports SNMP for monitoring system resources, with configurable alert thresholds, and alerts can be sent via administrative dashboards, email messages, and text messages to an unlimited number of recipients.
- The system provides a dashboard for performance monitoring, identifying processes with process ID, owner username, IP address, CPU utilization, memory utilization, and run time, with visual indicators for system status.
- The system supports scheduling of maintenance tasks, reports, and data exports, with jobs modifiable or cancellable prior to starting.
- The system provides capability to perform live incremental and full backups of data and transaction logs, supporting third-party backup software such as EMC NetWorker.
- The system supports secure protocols, including SFTP, SSL, and SSH, with SFTP configurable per vendor.
- The system allows for the import and export of MARC bibliographic and authority records, singly and in batch, with the ability to overlay existing records and maintain imported batches as selection lists.
- The system supports an unlimited number of record sets, with the ability to import and export set members in batch, and use record sets for batch field updates, queries, and deletions with review and undo capabilities.
- The system provides a user-friendly interface for designing queries against all record types, with staff able to select fields, values, and use Boolean operators, while administrators control staff access to tables and fields.
- The system provides fine-grained permissions to allow or disallow staff to run specific reports or ad hoc reports on specific data sets.
- The system supports administrator-programmable and user-programmable macros and keyboard shortcuts, centrally managed on the server, and importable/exportable to individual users with permission restrictions.

## 3.3 Usability requirements

[N/A]

## 3.5 Logical database requirements

- **Types of information used by various functions:**
  - The system runs on a fully relational, SQL-based database system, allowing SQL queries against any table.
  - Data types include authority records, bibliographic records, order records, item records, hold/request records, and other records maintained or accessed by the System Administration Module.

- **Accessing capabilities:**
  - The database can be accessed as an ODBC source, and all data tables and data storage are fully accessible.
  - Multiple staff members and patrons can simultaneously access and update patron and item records, with access controlled by assigned privileges.

- **Data entities and their relationships:**
  - The system supports field and record sharing, allowing simultaneous access and updates.
  - Record lock management is available to identify where records are in use and to manage record locks.

- **Integrity constraints:**
  - The system supports data validation, allowing specification of default values, data validation, automatic formatting, and required status for any field.

- **Security:**
  - Patron data is secure in all transfers to and from the system.
  - System administrative staff have full visibility and control of user privileges.

- **Data retention requirements:**
  - Log files can be enabled, disabled, and set to a specific retention threshold.
  - The system provides full access to all log files, which can be reviewed without stopping the system.
  - The system supports live incremental and full backups of data and transaction logs, with support for third-party backup software.
  - Data rollback functionality is available, logging data changes and providing "undo" functionality.

## 3.6 Design constraints

- The System Administration Module shall use a fully relational database back-end.
- The System Administration Module shall produce standards-compliant HTML.
- The System Administration 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" that allow access control for individuals, workgroups, and arbitrary staff groups.
- The system shall support secure protocols, including SFTP, SSL, and SSH, with SFTP supported in both active and passive modes, configurable per vendor.

## 3.7 Software system attributes

### Reliability
[N/A]

### Availability
- The system provides capability to perform live incremental and full backups of data and transaction logs, supporting the use of third-party backup software such as EMC NetWorker.
- The system logs data changes and provides "undo" functionality, ideally offering revision control.

### 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, with SFTP supported in both active and passive modes, configurable per vendor.
- User rights and privileges are controlled through security groups and/or "roles" that allow access control for individuals, workgroups, and arbitrary staff groups.

### Maintainability
- The System Administration Module shall use a fully relational database back-end.
- The system provides access to all configuration files and log files, which can be reviewed without stopping the system. Logs can be enabled, disabled, and set to a specific retention threshold.
- The system supports administrator-programmable and user-programmable macros and/or keyboard shortcuts, centrally managed on the server.

### Portability
- System Administration shall operate on a Linux or Solaris server.
- System Administration shall be accessible through a web-browser or a Windows-compatible client.
- If web-browser based, System Administration shall be accessible through Microsoft Internet Explorer (v.6.0 and later) and Mozilla Firefox (v.2.0 and later).
- The system supports client software installation and updates to be centrally managed, allowing streaming updates from the server. Client software can be managed with VNC and Remote Desktop.
- All client configuration files are server-based; configurations can be exported and imported between clients.

## 3.8 Supporting information

[N/A]

## 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.1 Assumptions and dependencies

- **AS-1**: The System Administration Module is part of an enterprise-level Library Automation System.
- **AS-2**: System Administration processes are consolidated at a central location, and accept input and provide services to multiple locations.
- **DE-1**: The System Administration Module relies on the data structures and functionality of an enterprise-level Library Automation System, including Acquisitions and Cataloging modules.
- **DE-2**: The System Administration Module interfaces with a variety of vendor websites, via published APIs and/or automated transfer of standard-format data files (e.g., USMARC21, EDIFACT).
- **DE-3**: The System Administration Module interacts with a patron interface, also known as an Online Public Access Catalog (OPAC).

## 5.2 Acronyms and abbreviations

- ILS: Integrated Library System
- OPAC: Online Public Access Catalog
- SQL: Structured Query Language
- ODBC: Open Database Connectivity
- SNMP: Simple Network Management Protocol
- SMTP: Simple Mail Transfer Protocol
- SFTP: Secure File Transfer Protocol
- SSL: Secure Sockets Layer
- SSH: Secure Shell
- EMC: Electromagnetic Compatibility
- VNC: Virtual Network Computing
- MARC: Machine-Readable Cataloging
- OCLC: Online Computer Library Center
- CSV: Comma-Separated Values
- SIP2: Standard Interchange Protocol 2
- NCIP2: NISO Circulation Interchange Protocol 2
- USMARC21: United States Machine-Readable Cataloging 21
- EDIFACT: Electronic Data Interchange for Administration, Commerce, and Transport