# 1 Introduction
[NULL]

## 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 intended to replace and enhance the current capabilities of commercially available ILSes, as well as add new functionality, specifically for the King County Library System. However, it is also believed to be suitable for many large, urban, multiple-branch, centralized library systems. The System Administration Module aims to facilitate the management of every aspect of the ILS, supporting activities such as configuring the system, monitoring performance, managing user accounts, and ensuring data backup and security.

## 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, specifically for large, urban, multiple-branch, centralized library systems like the King County Library System. The System Administration Module will replace and enhance the current capabilities of commercially available ILSes and introduce new functionalities.

The module will support activities such as configuring the ILS to enable and support features and processes required for managing library branches, patrons, collections, and circulation transactions. It will also monitor, troubleshoot, and control server, database, and application performance, manage user and group accounts and privileges, handle server and client software installation, upgrades, and updates, and back up databases and configuration files.

The application of this software is focused on improving the efficiency and effectiveness of library management activities. It aims to provide a robust and flexible system that can adapt to the evolving needs of library services, ensuring seamless operations across multiple branches. The objectives include enhancing system performance, ensuring data security, and providing comprehensive management tools for library staff and administrators.

## 1.3 Product overview
[NULL]

### 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 dashboards for system performance monitoring and management, as well as job scheduling for maintenance tasks and data exports.

#### Site adaptation requirements
The module allows for site-specific configurations, such as user and group account management, security roles, and privileges. It provides configurable templates for staff and patron account setups, supporting field validation and required fields.

#### 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 operational aspects are managed efficiently and securely.

### 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**: These are Cluster and Site Managers who contribute to the design and implementation of library services. They are likely to have a good understanding of library operations and some technical knowledge.

- **Library Directors**: Members of the Library Executive Team who plan and direct library services and priorities. They are expected to have a strategic understanding of library operations and may have limited technical expertise.

The usability of the System Administration Module may be influenced by the varying levels of technical expertise and responsibilities of these user groups. The system should be designed to accommodate users with different educational backgrounds and experience levels, ensuring accessibility and ease of use for all.

### 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**: The system supports secure protocols, including SFTP, SSL, and SSH.
- **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**: 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
[N/A]

# 2 References
[N/A]

# 3 Requirements
[NULL]

## 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 management activities, including configuring the ILS, monitoring server and application performance, managing user accounts, and backing up databases. These operations are supported by a SQL-based database system, allowing real-time processing and simultaneous access by multiple users.

- **Responses to Abnormal Situations**:
  - **Overflow**: [N/A]
  - **Communication Facilities**: The system supports secure protocols, including SFTP, SSL, and SSH, ensuring secure data transfers.
  - **Hardware Faults and Failures**: The system provides 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 creation and modification of business rules, such as loan and requesting rules, which evaluate various parameters like patron type and item status to determine system behavior.

- **Relationship of Outputs to Inputs**:
  - **Input/Output Sequences**: The system supports the import and export of MARC records, allowing for batch processing and manipulation of data.
  - **Formulas for Input to Output Conversion**: [N/A]

The functional requirements are organized into sub-functions, such as system monitoring, dashboard configuration, and job scheduling, to facilitate specific management tasks within the library system.

## 3.2 Performance requirements
- The system must support a library system with 50 locations and handle 20 million circulations annually, processing and purchasing 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 support multiple staff members and patrons to simultaneously access and update patron and item records, including on staff check-in and check-out terminals, on self check-out stations, through SIP2/NCIP2 and similar protocols and APIs, and in OPAC.
- The system must provide full support for SNMP and monitor system resources, including disk space, CPU load, memory load, system processes, system interfaces, and ports, with configurable alert thresholds.
- The system should allow for the scheduling of maintenance tasks, reports, and data exports, with the ability to modify or cancel jobs prior to starting.
- The system must support scheduling of jobs in sequence, such as starting job B when job A finishes.
- The system should provide the 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 must support server clustering for failover capability.
- The system should ensure that patron data is secure in all transfers to and from the system.
- The system must support secure protocols, including SFTP, SSL, and SSH, with SFTP supported in both active and passive modes, configurable per vendor.
- The system should support the import and export of MARC bibliographic and authority records, singly and in batch, to and from vendors including OCLC, with the ability to overlay existing records and maintain imported batches as selection lists.
- The system should support an unlimited number of record sets, with the ability to import and export set members in batch, and use record sets as a limiting scope for queries or to delete original records with review and undo capabilities.
- The system should provide a user-friendly interface for designing queries against all record types, allowing staff to select fields to query, select values from a picklist, and use a full range of Boolean operators.
- The system should provide fine-grained permissions to allow or disallow staff to run specific reports or ad hoc reports on specific sets of data.
- The system should support administrator-programmable and user-programmable macros and/or keyboard shortcuts, centrally managed on the server, and importable/exportable to individual users.
- The system should support client software installation and updates, centrally managed, allowing streaming updates from the server, and managed with VNC and Remote Desktop.
- The system should provide access to all configuration files and log files, with the ability to review logs without stopping the system, and set retention thresholds.
- The system should provide a dashboard for performance monitoring and management tools, with visual indicators for system status and identification of runaway processes.
- The system should provide a management console displaying workstations running client software, with utilities for managing and killing client sessions.
- The system should provide a circulation dashboard showing key performance indicators, such as check-outs per hour and holds placed per hour, with indicators limited to a single branch or set to systemwide.
- The system should provide a single console with access to all configuration files, with read and write permissions assigned to users and groups.
- The system should provide a dashboard for locating and viewing log files.
- The system should provide a single interface for reviewing and controlling scheduled tasks, including staff-scheduled tasks, automated reports, scheduled imports and exports, and software updates.
- The system should support SMTP for email transport.
- The system should support restrictions based on business rules, such as restrictions on deleting item records in checked-out status or bibliographic records with existing holds.
- The system should provide customizable 'Rules of Suppression' for record visibility in staff and public interfaces.
- The system should allow creation and modification of requesting rules for placing holds on items, evaluating criteria such as patron type and item status.
- The system should allow creation and modification of loan rules for check-out of items, evaluating criteria such as patron type and item status.
- The system should provide data validation capabilities, specifying default values, automatic formatting, and required status for fields.
- The system should provide the ability to specify specific clients to be updated and manage client configurations server-based, with export/import capabilities between clients.
- The system should provide the ability to fully customize the layout and appearance of reports, with options to display, print, email, or save reports to standard formats including CSV and Excel.
- The system should provide report templates available to front-line staff, with the ability to run as is or modify to specific needs.
- The system should provide record number reports for each record type, with access controlled at the user/group level.
- The system should support defining and selecting four types of printers: receipt, standard, label, and forms printers, with support for all Windows printers.
- The system should support multiple print output options, including printing to a file on the server, FTP, email, or printer from any part of the application, with the ability to select record fields and control order when printing.

## 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 sets can be used for batch field updates, queries, and deletion with review capabilities.

- **Integrity Constraints:**
  - Record changes are applied with prompts to warn when a record has been changed since it was displayed.
  - The system supports data validation, allowing specification of default values, automatic formatting, and required status for any field.

- **Security:**
  - Patron data is secure in all transfers to and from the system.
  - User rights and privileges are controlled through security groups and/or roles, allowing access control for individuals, workgroups, and arbitrary staff groups.

- **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.

[N/A] for frequency of use.

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

## 3.7 Software system attributes
a) **Reliability**: [N/A]

b) **Availability**: The system supports live incremental and full backups of data and transaction logs, ensuring data recovery and system availability. It also supports server clustering for failover capability.

c) **Security**: 
   - Patron data is secure in all transfers to and from the system.
   - System supports secure protocols, including SFTP, SSL, and SSH, with SFTP configurable per vendor.
   - System administrative staff has full visibility and control of user privileges.

d) **Maintainability**: 
   - The System Administration Module shall use a fully relational database back-end.
   - System upgrades and updates include written guidelines for updating servers and clients, with a list of new, changed, and removed features.
   - The system provides a dedicated interface for creating new staff and patron accounts, with configurable templates and granular privileges.

e) **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).
   - Client software installation and updates must be centrally managed, allowing streaming updates from the server.

## 3.8 Supporting information
[N/A]

# 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
- **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
