コンテンツにスキップ

ソフトウェア要求仕様書 (SRS)

sounya — ペット健康管理アプリケーション

項目内容
ドキュメントバージョン0.1.0 (Draft)
作成日2026-02-12
規格準拠IEEE 830-1998
ステータス概要レベル(段階的に詳細化予定)

目次


1. はじめに

1.1 目的

本ドキュメントは、ペット健康管理アプリケーション「sounya」のソフトウェア要求仕様を定義する。本書はIEEE 830-1998に準拠し、開発チーム・ステークホルダー間で要件の共通認識を確立することを目的とする。

現在は概要レベルとして主要機能と全体像を定義し、開発の進行に伴い各セクションを段階的に詳細化する。

1.2 スコープ

sounya は、ペット(初期フェーズでは猫)の健康情報を一元管理するアプリケーションである。

本システムは以下の4つのコンポーネントから構成される:

コンポーネント概要対象ユーザー
サーバー (API)バックエンド REST API-
Web 管理画面運用管理パネル運用担当者
Web (PWA)プログレッシブ Web アプリ飼い主
Flutter アプリモバイルネイティブアプリ飼い主

スコープ内:

  • 猫の健康管理機能(体重・食事・通院・ワクチン・症状・投薬)
  • 飼い主向けのペット情報管理
  • 家族間のデータ共有
  • 通知・リマインド機能
  • 運用管理画面

スコープ外(将来検討):

  • 猫以外のペット対応(犬、小動物など)
  • 獣医・動物病院スタッフ向け機能
  • 収益化機能(課金・サブスクリプション)
  • 外部サービス連携(動物病院システム等)

1.3 用語定義・略語

用語定義
PWAProgressive Web App。ブラウザ上で動作し、ネイティブアプリに近い体験を提供する Web アプリケーション
SRSSoftware Requirements Specification(ソフトウェア要求仕様書)
マジックリンクメールで送信される認証用の一時的なログインリンク(現時点では採用せず、6桁ワンタイムコード方式を採用)
ワンタイムコードメールで送信される6桁の認証コード。有効期限は10分
ペットオーナーペットの飼い主。本システムの主要エンドユーザー
家族メンバーペットオーナーによって招待され、同一ペットのデータを共有するユーザー
運用担当者管理画面を通じてシステムを運用・管理するスタッフ

1.4 参考文献

  • IEEE Std 830-1998 — IEEE Recommended Practice for Software Requirements Specifications
  • IEEE Std 29148-2018 — Systems and software engineering — Life cycle processes — Requirements engineering
  • RFC 9457 — Problem Details for HTTP APIs(エラーレスポンス形式)

1.5 概要

本書のセクション2では製品の全体像、セクション3では具体的な要件を記述する。現在は概要レベルの記述であり、各セクションは開発フェーズの進行に合わせて詳細化される。


2. 全体説明

2.1 製品の位置づけ

sounya は独立した新規プロダクトである。外部システムとの連携は初期フェーズでは行わない。

2.1.1 システム構成図

┌─────────────────────────────────────────────────┐
│ クライアント │
│ │
│ ┌─────────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ Web 管理画面 │ │ Web(PWA) │ │ Flutter App │ │
│ │ (運用担当者) │ │ (飼い主) │ │ (飼い主) │ │
│ └──────┬──────┘ └────┬─────┘ └──────┬──────┘ │
│ │ │ │ │
└─────────┼──────────────┼───────────────┼──────────┘
│ │ │
└──────────────┼───────────────┘
│ HTTPS (REST API)
┌──────────────────────────────┐
│ API サーバー │
│ Bun + Hono + OpenAPI │
└──────────────┬───────────────┘
┌──────────────────────────────┐
│ PostgreSQL │
│ (Drizzle ORM) │
└──────────────────────────────┘

2.1.2 技術スタック

レイヤー技術
ランタイムBun
Web フレームワークHono
バリデーションZod
API 仕様OpenAPI
ORMDrizzle
データベースPostgreSQL
コンテナDocker
モバイルFlutter
Web (PWA / 管理画面)TBD

2.2 製品機能の概要

2.2.1 認証・アカウント管理

  • メールアドレス + 6桁ワンタイムコードによるパスワードレス認証
  • 登録とログインの統一フロー(未登録メールは自動登録)
  • セッションCookieによるセッション管理(マルチデバイス対応)

2.2.2 ペット管理

  • ペットプロフィールの登録・編集・削除
  • 1ユーザーにつき複数ペットの登録
  • 猫の基本情報(名前、品種、生年月日、性別、避妊/去勢状態、写真など)

2.2.3 健康記録

  • 体重管理 — 体重の記録・推移グラフ表示
  • 食事記録 — フード種類・量・時間の記録
  • 通院履歴 — 受診日・病院・診察内容・費用の記録
  • ワクチン履歴 — 接種日・種類・次回予定日の記録
  • 症状・体調記録 — 日々の体調変化・気になる症状の記録
  • 投薬管理 — 薬の種類・用量・投薬スケジュールの管理

2.2.4 通知・リマインド

  • ワクチン接種時期のリマインド通知
  • 投薬スケジュールのリマインド通知
  • 通院予定のリマインド通知

2.2.5 データ共有

  • 家族メンバーの招待・管理
  • 同一ペットのデータを家族間で共有
  • 共有メンバーの権限管理(閲覧/編集)

2.2.6 管理画面(運用担当者向け)

  • ユーザー管理(一覧・詳細・停止)
  • システム統計・ダッシュボード
  • マスタデータ管理(品種、ワクチン種類等)
  • お知らせ・通知管理

2.3 ユーザー特性

ユーザー種別特性技術レベル
ペットオーナー(飼い主)猫の飼い主。日常的にペットの健康を気にかけている。スマートフォンを日常的に使用する。一般(非エンジニア)
家族メンバーペットオーナーに招待された家族。同居/別居を問わない。一般(非エンジニア)
運用担当者システムの運用・管理を担当するスタッフ。中程度(基本的なWebアプリ操作が可能)

2.4 制約条件

  • 初期フェーズは猫のみを対象とする
  • パスワードレス認証(6桁ワンタイムコード)のみを採用する
  • 獣医・動物病院スタッフ向け機能は初期スコープに含まない(将来的に統合可能と判断された場合に検討)
  • サーバーサイドは Bun + Hono エコシステムで構築する

2.5 前提条件と依存関係

  • ユーザーはメールアドレスを保有していること
  • モバイルユーザーは iOS / Android デバイスを使用すること
  • PWA ユーザーはモダンブラウザ(Chrome, Safari, Firefox, Edge の最新2バージョン)を使用すること
  • メール送信のための外部サービス(SendGrid, AWS SES 等)が利用可能であること
  • プッシュ通知のための外部サービス(FCM 等)が利用可能であること

3. 具体的要件

注記: 本セクションは現在概要レベルで記述している。各要件は開発フェーズの進行に合わせてIEEE 830の完全なフォーマット(要件ID、優先度、検証方法等)に詳細化する。

3.1 外部インターフェース要件

3.1.1 ユーザーインターフェース

プラットフォーム要件概要
Web (PWA)レスポンシブデザイン。スマートフォンでの利用を主とし、タブレット・PCにも対応。オフライン時の基本閲覧機能。
Flutter アプリiOS / Android ネイティブ対応。OS標準のUIガイドラインに準拠。プッシュ通知対応。
Web 管理画面デスクトップブラウザでの利用を主とする。レスポンシブ対応は必須ではない。

3.1.2 ソフトウェアインターフェース

インターフェース概要
REST APIOpenAPI 仕様に準拠。JSON形式でのリクエスト/レスポンス。
データベースPostgreSQL。Drizzle ORM を介してアクセス。
メール送信外部メール送信サービス(TBD)との連携
プッシュ通知Firebase Cloud Messaging (FCM) 等(TBD)との連携

3.2 機能要件

FR-001: ユーザー登録 / FR-002: ログイン

メールアドレス + 6桁ワンタイムコードによるパスワードレス認証。登録とログインは同一フロー(未登録メールは自動登録)。

詳細: specs/auth.md | DB: design/db-schema.md

FR-003: ペット登録

ユーザーは1匹以上の猫を登録できる。登録情報には名前、品種、生年月日、性別、避妊/去勢状態、写真を含む。

詳細: specs/pet.md | DB: design/db-schema.md

FR-004: 体重記録

ユーザーはペットの体重をグラム単位(整数)で日時とともに記録できる。1日に複数回の記録が可能で、記録にはメモを添えられる。記録された体重は一覧APIで日付範囲を指定して取得でき、クライアント側で時系列グラフを描画する。

詳細: specs/weight.md | DB: design/db-schema.md

FR-005: 食事記録

ユーザーはペットの食事内容(フード名、種類、量、時間)を記録できる。

詳細: specs/meal.md | DB: design/db-schema.md

FR-006: 通院履歴管理

ユーザーは通院記録(受診日、病院名、診察内容、費用)を登録・管理できる。次回予定日を記録し、FR-010の通院リマインド起点とする。

詳細: specs/vet-visits.md | DB: design/db-schema.md

FR-007: ワクチン履歴管理

ユーザーはワクチン接種記録(接種日、ワクチン種類、次回予定日)を登録・管理できる。

詳細: specs/vaccination.md | DB: design/db-schema.md

FR-008: 症状・体調記録

ユーザーはペットの日々の体調や気になる症状を記録できる。症状カテゴリ(マスタデータ)または自由入力で症状を分類し、3段階の重症度(軽度/中度/重度)を設定する。

詳細: specs/health-log.md | DB: design/db-schema.md

FR-009: 投薬管理

ユーザーは投薬情報(薬名、用量、頻度、期間)を登録し、投薬スケジュールを管理できる。実際の投与記録(投薬ログ)も記録でき、飲み忘れ防止や通知連携(FR-010)の基礎データとなる。

詳細: specs/medication.md | DB: design/db-schema.md

FR-010: 通知・リマインド

システムはワクチン接種時期、投薬スケジュール、通院予定について、設定されたタイミングでユーザーに通知を送信する。配信チャネルはプッシュ通知(FCM)・アプリ内通知・メール通知の3種類。通知設定はペット×通知タイプ単位でカスタマイズ可能(リマインド日数・送信時刻・チャネルのON/OFF)。

詳細: specs/notification.md | DB: design/db-schema.md

FR-011: 家族共有

ユーザーはメールアドレスで家族メンバーを招待し、ペットデータを共有できる。共有メンバーには閲覧権限または編集権限を付与できる。

FR-012: 管理画面 — ユーザー管理

運用担当者はユーザーの一覧表示、詳細閲覧、アカウント停止を行える。

FR-013: 管理画面 — マスタデータ管理

運用担当者は猫の品種、ワクチン種類などのマスタデータを管理できる。

FR-014: 管理画面 — ダッシュボード

運用担当者はユーザー数、登録ペット数などのシステム統計を確認できる。

3.3 非機能要件

3.3.1 パフォーマンス

  • API レスポンスタイム: 95パーセンタイルで500ms以内(TBD)
  • 同時接続ユーザー数: TBD

3.3.2 セキュリティ

  • 通信は全て HTTPS で暗号化する
  • セッショントークン有効期限: 7日、リフレッシュトークン有効期限: 30日
  • ワンタイムコード有効期限: 10分、最大試行回数: 3回
  • Cookie属性: HttpOnly, Secure, SameSite=Lax, __Host-プレフィックス
  • IPベースのレートリミット: 1分あたり100リクエスト
  • メールアドレスの登録有無を外部に漏らさない設計
  • 個人情報・ペット情報は適切にアクセス制御する

3.3.3 可用性

  • TBD(SLA目標を今後定義)

3.3.4 保守性

  • OpenAPI 仕様によりAPIドキュメントを自動生成する
  • Docker によるコンテナ化で環境の再現性を確保する

3.3.5 移植性

  • Docker コンテナによりクラウド環境を問わずデプロイ可能とする

付録

A. 開発フェーズ(案)

フェーズ内容対象
Phase 1サーバー API + 認証基盤バックエンド
Phase 2ペット登録・健康記録の基本機能API + PWA
Phase 3通知・リマインド機能API + PWA
Phase 4家族共有機能API + PWA
Phase 5Flutter アプリモバイル
Phase 6管理画面Web 管理画面

フェーズ構成は暫定であり、優先度に応じて変更される可能性がある。

B. 今後の拡張候補

  • 猫以外のペット(犬、小動物等)への対応
  • 獣医・動物病院スタッフ向け機能
  • 収益化機能(フリーミアム/サブスクリプション)
  • 外部サービス連携(動物病院システム、ペット保険等)
  • AI による健康アドバイス機能

C. 本ドキュメントの更新計画

本ドキュメントは IEEE 830 の全セクションを段階的に詳細化する。以下のセクションが今後追加・拡充される予定:

  • 3.2 各機能要件の詳細化(要件ID、優先度、入出力、検証方法)
  • 3.3 非機能要件の数値目標確定
  • データモデル定義(ER図)
  • API エンドポイント一覧
  • 画面遷移図・ワイヤーフレーム
  • テスト計画

本ドキュメントは IEEE Std 830-1998 に準拠して作成されています。