本記事は 書籍管理システム設計(全4回)シリーズの ② です。
📚 シリーズ全記事(全4回)
- 【ASP.NET Core Web API + React + TypeScript(vite)】書籍管理システム設計 ① 環境構築手順書
- 【ASP.NET Core Web API + React + TypeScript(vite)】書籍管理システム設計 ② 要件定義書(この記事)
- 【ASP.NET Core Web API + React + TypeScript(vite)】書籍管理システム設計 ③ 基本設計書(外部設計)
- 【ASP.NET Core Web API + React + TypeScript(vite)】書籍管理システム設計 ④ 詳細設計書(内部設計)
| 項目 |
内容 |
| 文書名 |
要件定義書 |
| システム名 |
書籍管理システム(Book Manager) |
| 版数 |
1.0 |
| 作成日 |
2026-07-24 |
改訂履歴
| 版 |
日付 |
改訂内容 |
作成者 |
| 1.0 |
2026-07-24 |
初版作成(実装済みシステムに基づく) |
— |
1. はじめに
1.1 本書の目的
本書は「書籍管理システム」の要件を定義し、開発関係者間で合意すべき機能要件・非機能要件・制約条件を明確化することを目的とする。
1.2 対象読者
1.3 システムの位置づけ
書籍の蔵書情報を一元管理し、登録・編集・削除および貸出状態の管理を行う小規模な Web アプリケーションである。学習・検証用途を主目的とした最小構成(MVP)とする。
1.4 用語定義
| 用語 |
説明 |
| 書籍 |
管理対象となる本の情報(タイトル・著者・出版年・貸出状態) |
| CRUD |
Create(登録)/Read(参照)/Update(更新)/Delete(削除)の総称 |
| 貸出状態 |
書籍が貸出中か在庫ありかを表すフラグ(IsBorrowed) |
| API |
バックエンドが提供する REST 形式の HTTP インターフェース |
| SPA |
Single Page Application。単一ページで動作するフロントエンド構成 |
| シードデータ |
システム初期状態で投入される初期データ |
2. システム概要
2.1 背景・目的
蔵書情報を紙や表計算ソフトで管理する場合、検索性・一貫性・同時更新に課題がある。本システムは書籍情報をデータベースで一元管理し、ブラウザから簡便に登録・編集・削除・貸出管理を行えるようにする。
2.2 システム化の範囲
本システムは以下を対象とする。
- 書籍情報の登録・一覧参照・編集・削除
- 書籍の貸出/返却状態の切替
- 初期データ(サンプル書籍)の提供
2.3 想定利用者・利用環境
| 項目 |
内容 |
| 想定利用者 |
蔵書を管理する担当者(単一利用者を想定) |
| 利用端末 |
PC(モダンブラウザ) |
| 想定同時利用数 |
少数(開発・検証レベル) |
| 稼働環境 |
開発用ローカル環境(Linux / WSL2) |
3. 業務要件
3.1 業務の流れ
書籍を入手 → 登録 → (必要に応じ)情報を編集 → 貸出 / 返却で状態更新 → 廃棄時は削除
3.2 管理対象データ(書籍)
| 項目 |
説明 |
例 |
| タイトル |
書籍の題名(必須) |
吾輩は猫である |
| 著者 |
著者名 |
夏目漱石 |
| 出版年 |
出版された西暦年 |
1905 |
| 貸出状態 |
貸出中/在庫ありの区分 |
在庫あり |
4. 機能要件
4.1 機能一覧
| ID |
機能名 |
概要 |
優先度 |
| FR-01 |
書籍一覧表示 |
登録済み書籍を一覧で表示する |
高 |
| FR-02 |
書籍登録 |
タイトル・著者・出版年を指定して新規登録する |
高 |
| FR-03 |
書籍編集 |
既存書籍のタイトル・著者・出版年を更新する |
高 |
| FR-04 |
書籍削除 |
指定した書籍を削除する |
高 |
| FR-05 |
貸出/返却切替 |
書籍の貸出状態を切り替える |
中 |
| FR-06 |
初期データ提供 |
初期状態でサンプル書籍5件を表示する |
低 |
4.2 機能詳細
FR-01 書籍一覧表示
- 登録済みの全書籍を一覧表示する。
- 表示項目:タイトル、著者、出版年、貸出状態、操作(編集・削除)。
- データが0件の場合はその旨を案内する。
FR-02 書籍登録
- タイトル・著者・出版年を入力して登録する。
- タイトルは必須とし、未入力時は登録不可とする。
- 出版年が未入力の場合は当年を既定値とする。
- 登録直後の貸出状態は「在庫あり」とする。
- 登録後は一覧を最新化する。
FR-03 書籍編集
- 一覧上で対象書籍を編集モードにし、タイトル・著者・出版年を更新する。
- 「保存」で確定、「取消」で編集を破棄する。
- 更新後は一覧を最新化する。
FR-04 書籍削除
- 一覧上で対象書籍を削除する。
- 削除後は一覧を最新化する。
FR-05 貸出/返却切替
- 一覧上の状態バッジをクリックすることで、貸出中⇔在庫ありを切り替える。
FR-06 初期データ提供
- 初回のデータベース構築時にサンプル書籍5件を自動投入する(うち2件は貸出中)。
5. 非機能要件
| 分類 |
ID |
要件 |
| 性能 |
NFR-01 |
一覧取得・登録・更新・削除は数百件規模で体感遅延なく応答すること |
| 可用性 |
NFR-02 |
開発用途のため常時稼働は求めない。手動起動で動作すること |
| セキュリティ |
NFR-03 |
本バージョンでは認証・認可を対象外とする(ローカル利用前提) |
| 拡張性 |
NFR-04 |
貸出履歴・検索・認証などの機能追加が容易な構成であること |
| 保守性 |
NFR-05 |
バックエンド/フロントエンドを分離し、責務が明確であること |
| データ整合性 |
NFR-06 |
データはリレーショナルDBで永続化し、スキーマ変更はマイグレーションで管理すること |
| 移植性 |
NFR-07 |
SQLite を用い、追加のDBサーバ構築なしで動作すること |
| 国際化 |
NFR-08 |
日本語(マルチバイト文字)を正しく保存・表示できること |
6. 前提条件・制約条件
| 分類 |
内容 |
| 前提 |
.NET 10 SDK、Node.js(v24 系)、npm がインストール済みであること |
| 前提 |
フロントエンドとバックエンドは同一ホスト上で起動すること |
| 制約 |
通信は開発用に HTTP とし、Vite プロキシ経由でアクセスする(HTTPS証明書設定・CORS設定を不要化) |
| 制約 |
データベースは SQLite(単一ファイル books.db)とする |
| 制約 |
単一利用者利用を前提とし、排他制御・同時更新競合の考慮は最小限とする |
7. 対象範囲外(スコープ外)
以下は本バージョンの対象外とする。
- 利用者認証・権限管理
- 貸出履歴・返却期限管理
- 書籍検索・絞り込み・ページング
- 入力値の高度なバリデーション(重複チェック等)
- 本番環境向けのデプロイ・HTTPS・スケーリング
8. 今後の拡張候補(優先度順)
- 更新(編集)機能のバリデーション強化(DataAnnotations 等)
- 貸出/返却ロジックの拡充(貸出履歴テーブル、貸出者・返却期限)
- 検索・ページング(クエリパラメータ対応)
- 状態管理ライブラリ(TanStack Query 等)によるキャッシュ・再取得
- 認証(JWT または ASP.NET Core Identity)