基本設計を書く目的
システムの目的を満たすための動作や振る舞い、構造を決定記述することです。
基本設計では実装方法についてはあまり触れません。
プログラム(実現手段ではない)については配慮せずデータの入出力/格納を記述する。
外部から見える「動作、振る舞い」を記述する。
ブラックボックス的とも、ソフトウェア、フレームワークに依存しない。
インプットとなる資料
概念設計
成果物
外部連携一覧
# | 連携元システム名 | 連携先システム名 | 連携対象データ |
---|---|---|---|
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
個人開発目次