基本設計を書く目的
システムの目的を満たすための動作や振る舞い、構造を決定記述することです。
基本設計では実装方法についてはあまり触れません。
プログラム(実現手段ではない)については配慮せずデータの入出力/格納を記述する。
外部から見える「動作、振る舞い」を記述する。
ブラックボックス的とも、ソフトウェア、フレームワークに依存しない。
インプットとなる資料
概念設計
成果物
外部連携一覧
| # | 連携元システム名 | 連携先システム名 | 連携対象データ |
|---|---|---|---|
| 1 | タスク管理ツール | BIツール | タスクトランザクション |
| # | 接続方式 | 連携タイミング | 連携データ想定量 | 備考 |
|---|---|---|---|---|
| 1 | Webサービス | 日時処理 | 50件 |
入出力
API側
Habitica API リクエスト
URI:https://habitica.com/api/v3/tasks/user
リクエストパラメーター
| パラメーター名 | 種類 | 備考 |
|---|---|---|
| x-api-user | ヘッダーパラメーター | Habiticaの設定→サイトのデータ→ユーザーで値を確認 |
| x-api-key | ヘッダーパラメーター | Habiticaの設定→サイトのデータ→ユーザーで値を確認 |
| x-client | ヘッダーパラメーター | x-api-user + "-Testing" |
Habitica API レスポンス
| 項目名 | 型 | 例 |
|---|---|---|
| _id | String | 'f8d9468a-991c-42fe-bd9b-5ddc9ec1eaaa', |
| completed | bool | false, |
| collapseChecklist | bool | false, |
| checklist | Array | [ [Object], [Object] ], |
| type | String | 'todo', |
| text | String | 'Habiticaの基本設計', |
| notes | String | '', |
| tags: | Array | [ 'bd52d6af-661b-478f-9dc0-be48f2d20aaa' ], |
| value | Number | -1, |
| priority | Number | 1.5, |
| attribute | String | 'str', |
| challenge | any | {}, |
| group | any | { completedBy: {}, assignedUsers: [] }, |
| reminders | Array | {"time":"2017-01-13T16:21:00.074Z","startDate":"2017-01-13T16:20:00.074Z", |
| "id":"b8b549c4-8d56-4e49-9b38-b4dcde976aaa"} | ||
| byHabitica | bool | false, |
| createdAt | String | '2025-03-27T11:47:52.832Z' |
| updatedAt | String | '2025-03-28T12:55:17.307Z' |
| userId | String | '1045522e-dbb4-4541-9cc7-1b65fb5acaaa' |
| id | String | 'f8d9468a-991c-42fe-bd9b-5ddc9ec1eaaa' |
DB
テーブル定義書 出力
A5SQLから拝借
IDとバッチ処理実行日時を主キーにしています。
正規化とか全く考慮してません!
参考
APIパラメータ種類
Habitica API
外部連携設計
書籍:システム設計の謎を解く p163-164
DB設計
書籍:書籍:システム設計の謎を解く p156
個人開発目次
