Back to Portfolio
Software Engineering · Design Documentation · Spring 2026

Library Information & Administration System

A complete object-oriented design and documentation for LIAS — a centralized management system for a private college library. The project carried the full software development lifecycle from requirements through use cases, UML class diagrams, communication diagrams, and C++ implementation skeletons.

Object-Oriented Design UML C++ Use Case Modeling Communication Diagrams System Architecture
Download Documentation PDF · 45 pages · 6 MB
Course
CS 3500 — Software Engineering
Institution
William Paterson University
Role
Engineer · Team 04 (of 3)
Scope
6 use cases · 9 classes

Overview

The Brief

Replace a library's manual paperwork with a single system that handles everything — catalog, checkouts, holds, reserves, fines, subscriptions, and reporting.

A private liberal-arts college needed to retire its manual processes for tracking books, media, magazines, and patrons. LIAS was designed as the interface between library users, the physical collection, and the institution's own data systems.

The system authenticates two patron groups and a privileged administrator role, enforces the library's real business rules, and integrates with three external systems: the Employee Information System (EIS), the Student Information System (SIS), and a nearby public library for interlibrary loans.

System Goals

05 Objectives
01
Automate Core Operations
Let patrons search the catalog, check out resources, place holds, and renew items online — no manual staff intervention, less processing time, fewer errors.
02
Enforce Business Rules
Patron-type checkout periods, $0.25/day overdue fines, reserve restrictions, diploma holds for students with unpaid fines, and in-library-use-only enforcement for reserved materials.
03
Integrate Institutional Systems
Connect to EIS and SIS for authentication and account management, and to a nearby public library system to fulfill interlibrary loan requests.
04
Empower Administrators
Full control over the catalog, patron accounts, magazine and journal subscriptions, and a suite of reports on collection statistics, resource usage, and subscription expirations.
05
Architectural Integrity
Built on object-oriented design principles for a scalable, maintainable, and fully documented software structure.

Use Cases

06 Modeled Flows
UC 1
Logon
Authenticates users against EIS or SIS, resolves their role, and locks the session after five failed attempts.
UC 2
Search Catalog
Browse resources by author, subject, keyword, title, or Dewey call number, with live availability status.
UC 3
Manage Circulation
Checkout, check-in, renewals, holds, fine calculation, overdue reminders, and the re-shelving queue.
UC 4
Manage Library Resources
Acquire, edit, and retire resources; renew subscriptions; and manage patron accounts synced with EIS/SIS.
UC 5
Manage Reserves
Faculty place library-owned or personal "foreign" materials on one-semester, in-library-only reserve.
UC 6
Generate Reports
Admin-only reports: subscription expirations, collection by category, book usage, and library statistics.

Architecture

09 Classes
Screen
All UI rendering and input capture — logon, catalog, dashboards, reports — forwarding input to system classes.
DB_Interface
The data-access layer: authenticates users, runs catalog queries, and persists every transaction.
LIAS
Central coordinator for sessions, role-based access, email notifications, and the SIS diploma-hold integration.
Patron
Account lifecycle for faculty/staff and students — profiles, fine balances, and diploma-hold enforcement.
Catalog
Inventory of every resource; tracks status and enforces reference-only and in-library-only restrictions.
Circulation
The core engine: checkouts, check-ins, renewals, holds, fines, and the re-shelving queue.
ReserveManager
Lifecycle of reserve records, expiration monitoring, and the one-semester in-library-only rule.
ResourceManager
Acquisition purchase orders, subscription renewals, and annual binding of periodicals into volumes.
ReportGenerator
Compiles and exports the four administrative report types from the LIAS database.

Every class was derived directly from operations identified across all six use case descriptions.

Approach

Methodology

Design first.
Then code.

Requirements & Actors
Distilled a narrative brief into actors, business rules, and external-system boundaries before any modeling began.
Use Case & Sequence Modeling
Six use cases with pre/post-conditions, dialog flows, and scenario sequences mapping every alternate path.
Communication Diagrams
Object interactions numbered and traced across collaborating classes for each scenario.
UML Class Diagrams
Nine classes with full attributes, operation signatures, and visibility, derived from the use case operations.
C++ Implementation Skeletons
Each class translated into documented C++ headers — public interfaces, private members, and intent comments.
Circulation.h
class Circulation {
public:
  date   assign_checkout_period(string patronType, string resourceType);  // due date by patron + resource type
  dollar calculate_fine(date dueDate, date returnDate);              // $0.25 / day overdue
  void   place_hold(int patronID, int resourceID);                    // queue a hold request
  date   grant_renewal(int patronID, int resourceID);                 // extend if no hold exists
  void   check_overdue_resources();                                    // scan + trigger reminders
private:
  int    transactionID;
  date   dueDate, returnDate;
  dollar fineAmount = 0.00;
};

Team 04

Collaborators
Semih Aksehirli
Software Engineer
Nihat Karahan
Software Engineer · Me
Mohammed Mostofa
Software Engineer

See the rest of my work.

Download PDF Back to Portfolio →