System Design for Modern Library Management System
A complete system analysis and design case study for a modern library platform — context diagram, two-level DFDs, a normalised ERD and a use-case diagram.

Summary
- Model a real-world library platform completely before any code is written — borrowing, returns, overdue handling, fines and inventory — for students, librarians and the university registration centre, whose overlapping roles create competing data-access patterns.
- Requirements elicitation followed by iteratively refined models — a context diagram, Level-1 and Level-2 data flow diagrams, a normalised entity relationship diagram and a use-case diagram — kept logically consistent as operational rules were added.
Course Background
This system design project was completed during ICT213 System Analysis and Design under the supervision of Dr. Herison Surbakti. The objective was to move beyond classroom theory by producing a complete, publication-ready system design case study for a real-world library platform.
The project emphasized how analysis and design decisions made before a single line of code is written determine usability, maintainability, and operational efficiency at scale.
UML and System Modeling
The deliverable covered four diagram types: context diagrams (system boundary and external actors), two-level data flow diagrams (process decomposition and data stores), entity relationship diagrams (normalized database structure), and use-case diagrams (actor interactions and system behaviors).
These artifacts modeled the full operational scope of the library platform: book circulation, member registration, inventory management, overdue handling, fine processing, and reporting — covering both student-facing and librarian-facing workflows.




Design Process
The process began with requirements elicitation and gradually evolved into detailed workflow and database modeling. Each diagram was refined iteratively to maintain logical consistency as additional operational rules were introduced — mirroring how real software architecture evolves during the analysis phase.
Particular care was taken in designing process flows for borrowing, returns, overdue detection, and inventory updates, where overlapping actor roles (student, librarian, university registration centre) created competing data access patterns that needed clean separation.
Learning Outcome
The project built concrete skills in software architecture documentation — the ability to represent a complete system’s logic, data, and behavior visually before implementation begins. These skills directly support data engineering and ML pipeline work, where understanding system structure and data flow is as important as writing the code.
It also provided practical experience in communicating technical architecture to non-technical stakeholders through diagrams — a skill that applies directly to data science roles where translating model logic into business-readable formats is expected.
