# 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). It is intended to guide software project managers and developers in implementation and to support library managers and staff in reviewing and refining requirements.

## 1.2 Scope
The System Administration Module is the enterprise system administration component of the Integrated Library System for a large, urban, multi-branch library system (developed for King County Library System but suitable for similar systems). It will:
- Enable configuration of the ILS to support the management of branches, patrons, collections, and circulation transactions.
- Monitor, troubleshoot, and control server, database, application, services, ports, and API performance.
- Manage user and group accounts and privileges.
- Manage server and client software installation, upgrades, and updates.
- Support backup and data recovery of databases, configuration files, log files, and other artifacts.

The module replaces and enhances current capabilities of commercially available ILSes and adds new functionality. The current specification presupposes the general functionality and data structures of an ILS and emphasizes system administration functionality. Data structures and user interfaces will require further specification and development using an iterative, prototype-oriented methodology.

## 1.3 Product overview
[NULL]

### 1.3.1 Product perspective
The System Administration Module is part of an enterprise-level ILS. It relies on and interfaces with other ILS modules (e.g., Acquisitions, Cataloging), an Online Public Access Catalog (OPAC), and vendor systems through APIs and standard data formats.

#### System interfaces
- Interfaces to other ILS modules (Acquisitions, Cataloging) and to the OPAC for end-to-end operational management.
- Interfaces to vendor websites and services via published APIs and automated transfer of standard-format data files (e.g., USMARC21, EDIFACT).
- Support for SIP2/NCIP2 and similar protocols/APIs for access to patron and item records (including self-check and staff terminals).
- Support for SNMP for system resource monitoring (disk, CPU, memory, processes, interfaces, ports).
- Support for SMTP for email transport and configuration.
- Support for secure transfer and session protocols (SFTP, SSL, SSH).
- Support for ODBC access to the database.

#### User interfaces
- Accessible via a web browser or a Windows-compatible client.
- If web-based, accessible through Microsoft Internet Explorer (v6.0 and later) and Mozilla Firefox (v2.0 and later).
- Accessible with screen-reading software, screen-magnification software, and other assistive technologies.
- Administrative dashboards and consoles for system monitoring, configuration, and management.
- User-friendly query and reporting interfaces, including report templates and permissions.

#### Hardware interfaces
- [N/A]

#### Software interfaces
- Fully relational SQL-based database backend with ODBC access and support for running SQL queries.
- Interaction with client management tools (e.g., VNC, Remote Desktop) for client software management.
- Support for Windows printers (receipt, standard, label, forms).
- Standards-compliant HTML output.

#### Communications interfaces
- Support for SNMP, SMTP, SFTP (active and passive modes), SSL, SSH, SIP2/NCIP2.

#### Memory constraints
- [N/A]

#### Operations
- Support for normal operations in a large, centralized, multi-branch environment (50 locations; high circulation volumes).
- Real-time processing for operational activities (e.g., up-to-date pull lists; live shelf reading and weeding).
- Ability to run searches and reports during open hours without disrupting other system functions (highly desirable).
- Backup and recovery operations: live incremental and full backups; logging and rollback of data changes; cluster failover capability.
- Job scheduling for maintenance tasks, reports, imports/exports, and updates (including sequencing and permissions).

#### Site adaptation requirements
- Configurable business rules (loan, requesting, suppression rules).
- Configurable data validation, default values, automatic formatting, and required fields.
- Configurable account creation templates for staff and patrons.
- Configurable dashboards, alert thresholds, and email settings.
- Role/privilege-based access controls at individual and group levels.

#### Interfaces with services
- Interfaces with vendor services and websites via published APIs and standard data exchange formats.
- Email services via SMTP for notifications and administrative alerts.

### 1.3.2 Product functions
- ILS configuration and system administration
  - Manage user/group accounts and privileges; support individual and shared logins.
  - Access and manage configuration files, log files, and root shell (where permitted).
  - Configure email services and transport.
- Monitoring, dashboards, and consoles
  - System performance monitoring with SNMP and configurable alerting (dashboards, email, SMS).
  - Dashboards for system performance, application status, circulation KPIs, logs, and configuration files.
  - Consoles for server operations (start/stop/restart), client session management, and job scheduling.
  - Record lock administration (identify, list, and unlock locked records; thresholds for lock duration).
- Business rule management
  - Create and modify loan rules, requesting rules, and suppression rules.
  - Define data validation, defaults, formatting, and required field status.
- Data management and recovery
  - Import/export MARC bibliographic and authority records (batch and single), including overlays and selection lists.
  - Create and manage record sets for batch operations and scoped queries; batch update/delete with logging and undo.
  - System backup (live incremental/full) and data rollback/revision control (where available).
  - Cluster servers for failover.
- Client management and deployment
  - Centrally manage client software installation and updates (including streaming updates), with targeting of specific clients.
  - Maintain server-based client configurations; export/import configurations; manage with remote tools.
  - Ensure accounts are independent from specific workstations.
- Queries and reporting
  - User-friendly query tool across all record types with pick lists, regex, and Boolean operations; admin-controlled access by table/field.
  - Report templates; fine-grained report permissions; customizable report format and outputs (display, print, email, CSV, Excel, other formats).
  - Record numbering and counts by record type; control over access to record numbers.
  - Printer support (receipt, standard, label, forms) and multiple print output options (file, FTP, email, printer), with selectable fields and ordering.

### 1.3.3 User characteristics
- Patrons: Customers of the library system, on-site or remote, with or without library cards, using print, media, or electronic resources.
- Staff: Managers, librarians, technicians, assistants, and pages involved in designing and providing services.
- System Administrators: Staff responsible for managing servers, databases, applications, services, ports, and APIs related to the ILS.
- Managers: Management staff overseeing library processes.
- Library Managers: Cluster and site managers contributing to service design and implementation.
- Library Directors: Executive team members setting services and priorities.

Assumptions: Readers have a general understanding of library services and terminology. Software development is expected to be collaborative and iterative with user review of prototypes.

### 1.3.4 Limitations
- Platform and browser constraints: Operate on Linux or Solaris servers; accessible via web browser (IE 6+ and Firefox 2+) or Windows-compatible client.
- Interfaces to other applications: Relies on Acquisitions and Cataloging modules and interacts with the OPAC; interfaces with vendor systems via APIs and standard formats.
- Access control constraints: Security groups/roles govern rights and privileges.
- Scale constraints: Must support a large, multi-branch system (approx. 50 locations; high annual circulation and item processing volumes).
- Regulatory, safety, or other policy limitations: [N/A]
- Memory, timing, or hardware limitations: [N/A]
- Quality requirements (e.g., reliability levels): [N/A]
- Safety and security considerations beyond stated requirements: [N/A]

## 1.4 Definitions
[N/A]

# 2 References
- Compliance
  - King County Library System specifications for Acquisitions and Serials Management, Circulation, and Cataloging modules. Title/report/date/publisher/source: [N/A]
- Guidance
  - Requirements for OPAC and web services (under development). Title/report/date/publisher/source: [N/A]
  - Standard data formats and protocols referenced (USMARC21, EDIFACT, SIP2, NCIP2). Title/report/date/publisher/source: [N/A]

# 3 Requirements
[NULL]

## 3.1 Functions
- Access and concurrency
  - Req 5323 (Priority 3): Field and record sharing. Multiple staff and patrons can simultaneously access and update patron and item records (including staff/self-check terminals, via SIP2/NCIP2 and similar APIs). Staff see all fields per privileges; patrons see selected fields. Reasonable conflict handling with prompts when records change since display.
  - Req 6513 (Priority 3): Record lock management. Staff can identify for any patron/item record where it is in use (location, user, timestamp).
  - Req 7302 (Priority 3): Record lock administration. Set thresholds for lock duration; list locked records for all record types; unlock one or more records from the console. (Related to 6513)
  - Req 2492 (Priority 2): Individual and shared staff login accounts. Access to modules via roles/privileges; individual logins support user-level preferences and audit trail.
- Administration dashboards and consoles
  - Req 6520 (Priority 3): Dashboard configuration. Create custom dashboards for current/historical data (system performance, record creation/modification, circulation transactions, etc.); grant access to selected users/groups.
  - Req 6501 (Priority 3): System monitoring. Full SNMP support; monitor disk, CPU, memory, processes, interfaces, ports; configurable alert thresholds; alerts via dashboards, email, text; unlimited recipients.
  - Req 2467 (Priority 3): System performance dashboard. Show process ID, owner, IP (if applicable), CPU/memory utilization, run time; identify runaway processes; visual status indicators.
  - Req 2466 (Priority 3): Server console. Software shutdown/startup; server shutdown/restart utilities.
  - Req 2464 (Priority 3): Application dashboard. Show backup status (full/incremental), last planned/unplanned reboot, last software upgrade, current version, transactions pending, log sizes, record counts by type, database utilization.
  - Req 2430 (Priority 3): Client management console. Display clients, names, IPs; manage/kill client sessions.
  - Req 6503 (Priority 3): Circulation dashboard. KPIs such as check-outs/hour, check-ins/hour, holds placed/hour, holds paged/day; scope by branch or systemwide.
  - Req 6517 (Priority 3): Configuration file console. Single console to access all configuration files; assign read/write permissions by user/group.
  - Req 2433 (Priority 3): Log-file dashboard. Locate and view log files.
  - Req 6521 (Priority 3): Job scheduling console. Review and control scheduled tasks (staff-scheduled tasks, automated reports, imports/exports, software updates).
  - Req 6515 (Priority 3): Email configuration. Access/edit email configuration with quick menu of common settings (masquerading, log retention, bounce management).
  - Req 6516 (Priority 3): SMTP support. Support SMTP for email transport.
- Business rules and validation
  - Req 2445 (Priority 3): Business rules. Enforce restrictions (e.g., prohibit deleting checked-out items; prohibit deleting bibliographic records with existing holds).
  - Req 5278 (Priority 3): Suppression rules. Customizable visibility rules for authority, bibliographic, order, and item records across staff and OPAC; scope by workgroup, location, or systemwide. (Related to 5057, 5190)
  - Req 5190 (Priority 3): Requesting rules. Determine hold placement eligibility based on patron/item attributes (e.g., type, counts, balances, status, owning and checkout locations); allow staff overrides per privilege. (Related to 5057, 5278)
  - Req 5057 (Priority 3): Loan rules. Determine checkout eligibility, loan periods, renewal limits based on patron/item attributes and locations; consider open/closed schedules for due dates; allow staff overrides per privilege. (Related to 5190)
  - Req 5328 (Priority 3): Data validation. Specify defaults, validation, auto-formatting, and required status for any field.
- Maintenance and data operations
  - Req 1716 (Priority 3): MARC import/export. Import/export MARC bibliographic and authority records (single/batch; all/selected fields) to/from vendors (including OCLC); overlay short/full bibliographic records; maintain imported batches as selection lists (see 3004).
  - Req 6518 (Priority 3): Record sets. Unlimited record sets; batch import/export of members; base batch field updates on sets; limit query scopes; delete original records with review, error logs, and undo.
  - Req 2420 (Priority 3): Staff account setup. Dedicated interface; configurable templates; granular privileges for creation/modification/deletion.
  - Req 2419 (Priority 3): Patron account setup. Dedicated interface; configurable templates; field validation; required fields; configurable defaults.
  - Req 6507 (Priority 3): Job scheduling. Schedule maintenance tasks, reports, exports; sequence jobs (start B after A); modify/cancel prior to start.
  - Req 6508 (Priority 3): Job scheduling management. Delegate scheduling permissions; system admins can view/manage jobs scheduled by others.
  - Req 2220 (Priority 3): Keyboard macros and shortcuts. Admin/user-programmable macros/shortcuts; assign keys to macros/text; centrally managed on server; import/export to users; restrict use/edit via permissions.
- Client management
  - Req 6514 (Priority 3): Accounts independent from workstation. Staff/group accounts independent of workstations; client install not tied to a location.
  - Req 6504 (Priority 3): Client software updates. Centrally manage installation/updates via network tools; stream updates from server; target specific clients; manage with VNC and Remote Desktop.
  - Req 6519 (Priority 3): Client configurations. Server-based client configuration files; export/import between clients.
- Queries, reporting, and output
  - Req 5624 (Priority 3): Query tool. User-friendly interface to design queries against all record types; pick lists, regex options, full Boolean; admins control access to tables/fields.
  - Req 5607 (Priority 3): Report templates. Admin-created templates available to staff; run as-is or modified.
  - Req 5617 (Priority 3): Reports permissions. Fine-grained permissions to allow/disallow specific reports and ad hoc reports on specific data sets.
  - Req 2197 (Priority 2): Report format and output. Fully customize layout/appearance; display, print, email, or save to standard formats (CSV, Excel) and customizable formats.
  - Req 2465 (Priority 3): Record number report. For each record type (patron, bibliographic, item, order, invoice, etc.): current record number, count, deleted count, purged count; access controlled by user/group.
  - Req 2441 (Priority 3): Printer support. Define/select receipt, standard, label, and forms printers; support all Windows printers.
  - Req 2439 (Priority 3): Multiple print output options. Print to file on server, FTP, email, or printer from any part of the application; when applicable, select fields and control order when printing.
- Administrative access to system artifacts
  - Req 2479 (Priority 3): Configuration file access. Access to all configuration files.
  - Req 2474 (Priority 3): Log file access. Full access to all log files; view without stopping system; enable/disable logs; set retention thresholds.
  - Req 2470 (Priority 3): Root shell access. Access to root shell (subject to policy/permissions).

## 3.2 Performance requirements
- OE-1: Support a large, multi-branch system with approximately 50 locations, 20 million circulations, and purchasing/processing over 500,000 items per year.
- Req 5615 (Priority 3): Real-time processing. Pull lists are current at time of viewing/printing; supports live shelf reading and weeding.
- It is highly desirable that searches and reports can be processed during open hours without disrupting other system functions.

## 3.3 Usability requirements
- OE-5: Accessible with screen-reading software, screen-magnification software, and other assistive technologies.
- Req 5624: User-friendly query interface with pick lists, regex menus, and Boolean operators.
- Req 2220: Support for keyboard macros and shortcuts to improve efficiency; centrally managed with permissions.
- Req 2428 (Priority 3): System documentation is library-specific, version-specific, web-based, indexed, organized by function, and searchable.
- UD-3: Online, hierarchical, cross-linked HTML help covering all system functions.

## 3.5 Logical database requirements
- Req 6512 (Priority 3): Fully relational, SQL-based database; ability to run SQL queries against any table; database accessible as an ODBC source; full accessibility to all data tables and storage.
- Data entities and types: Authority records, bibliographic records, order records, item records, hold/request records, patron records, and others maintained or accessed by the module (UD-1).
- Accessing capabilities: Admin-controlled table/field access (Req 5624); role/privilege-based access to records and fields (Req 2492; Req 6509); record visibility controlled by suppression rules (Req 5278).
- Integrity constraints: Data validation, defaults, formatting, and required fields configurable for any field (Req 5328).
- Relationships and sets: Record sets support batch operations, query scoping, import/export, and safe deletion with review, error logs, and undo (Req 6518).
- Data retention: Log retention thresholds configurable (Req 2474); rollback/revision control for data changes where available (Req 6505).
- Security: Patron data secure in all transfers (Req 6510); secure protocols for data transfer (Req 6511).

## 3.6 Design constraints
- CO-1: Use a fully relational database backend.
- CO-2: Produce standards-compliant HTML.
- CO-3: Provide development and training environments with ability to migrate configurations to production.
- CO-4: Control user rights/privileges through security groups/roles for individuals, workgroups, and arbitrary staff groups.
- OE-2: Operate on Linux or Solaris server.
- OE-3 and OE-4: Accessible via web browser (IE 6+ and Firefox 2+) or Windows-compatible client.
- Protocol and interface constraints: Support SNMP (Req 6501); SMTP (Req 6516); SFTP (active/passive), SSL, SSH (Req 6511); ODBC (Req 6512).
- Client management tools: Client software manageable with VNC and Remote Desktop (Req 6504).
- Printer environment: Support for Windows printers (Req 2441).

## 3.7 Software system attributes
- Reliability and availability
  - Req 2462: Server clustering for failover capability.
  - Req 6502: Live incremental and full backups of data and transaction logs; support third-party backup software (e.g., EMC NetWorker).
  - Req 6505: Log data changes and provide undo functionality; ideally provide revision control.
  - Req 6501/2467: Monitoring of system resources with alerts; identification of runaway processes.
  - Req 6521/6507/6508: Central job scheduling with sequencing and administrative management.
- Security
  - Req 6510: Patron data secure in all transfers.
  - Req 6511: Support SFTP (active/passive), SSL, SSH.
  - Req 6509: Full visibility and control of user privileges by system administrators.
  - Req 2492/CO-4: Role- and group-based access control; support for individual and shared accounts with audit trails.
  - Req 5278/5190/5057: Business rules governing visibility, requesting, and loans, with staff overrides per privilege.
- Maintainability
  - Req 2479/6517: Centralized access and permissions for configuration files via a single console.
  - Req 2474/2433: Log access and dashboards with configurable retention; view logs without stopping the system.
  - Req 2466/2464: Server and application consoles for operational control and status insights.
  - Req 6504/6519/2430: Central client software/update management; server-based configurations; client session management.
  - CO-3: Separate development/training environments and configuration migration to production.
  - Req 2431: Written guidelines for system upgrades/updates, including lists of new/changed/removed features.
  - Req 2428/UD-2/UD-3: Comprehensive documentation, process descriptions, and online help.
  - Req 2220: Centrally managed macros/shortcuts with import/export and permissions.
- Portability
  - OE-3/OE-4: Support for web browsers (IE 6+, Firefox 2+) and Windows-compatible client.
  - Req 6514: Accounts independent of specific workstations; client install not tied to a location.
  - Req 6512: ODBC access; SQL-standard database usage.

## 3.8 Supporting information
- Document conventions: Requirements may reference process flowcharts for context; these flowcharts reflect current practices and provide context but do not prescribe or constrain software development.

# 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 serve multiple locations.
- DE-1: Relies on the data structures and functionality of an enterprise-level Library Automation System, including Acquisitions and Cataloging modules.
- DE-2: Interfaces with vendor websites via published APIs and/or automated transfer of standard-format data files (e.g., USMARC21, EDIFACT).
- DE-3: Interacts with a patron interface, also known as an Online Public Access Catalog (OPAC).

## 5.2 Acronyms and abbreviations
- ACQ: Acquisitions
- API: Application Programming Interface
- EDIFACT: Electronic Data Interchange For Administration, Commerce and Transport
- HTML: HyperText Markup Language
- ILS: Integrated Library System
- KCLS: King County Library System
- MARC / USMARC21: Machine-Readable Cataloging (United States MARC 21 standard)
- NCIP2: NISO Circulation Interchange Protocol version 2
- ODBC: Open Database Connectivity
- OPAC: Online Public Access Catalog
- SIP2: Standard Interchange Protocol version 2
- SMTP: Simple Mail Transfer Protocol
- SNMP: Simple Network Management Protocol
- SFTP: Secure File Transfer Protocol
- SSL: Secure Sockets Layer
- SSH: Secure Shell
- VNC: Virtual Network Computing
