概念設計の目的
概念設計とは、システム全体で解決すべき課題をどのような概念で解決するかを表すものです。
インプットとなる資料
特になし
成果物
1.課題
タスク管理アプリHabiticaについて以下の課題がある
・タスクを開始~終了までの日数が記録に残らない。
記録に残らないため、将来的に作業の工数を振り返れない。
・完了したタスクは30日以上経過すると削除されて記録に残らない
2.改善方法
・Habiticaのタスク情報を、自前のデータベースに保存する。
・データベースに保存した情報を活用するためにBIツールを活用する。
3.配置図
4.ユースケース記述
ユースケース記述とは
アクターの目的を達成するために、システムが実行する(すべき)振る舞いを文章で記述したもの。
ユースケースでは、画面遷移や具体的なシステムの実現方法にはできるだけ言及しません。
書籍:はじめての設計をやりぬくための本 p98
ユースケースの粒度
粒度はユーザ目的レベルにする
ユーザー目的レベル:
一番重要で基本になる。システムの利用者が仕事を完了させるための目的を表したレベル。
具体的な例としては、「その仕事が終わったらコーヒーブレイクできる、それが終わると一息入れられる仕事の単位」
一人の人間が中断無しに行える仕事です。
書籍:はじめての設計をやりぬくための本 p105-p106
ユースケース記述の各項目
項目名 | 説明 |
---|---|
ユースケース名 | -- |
主アクター | ユースケースを実行する人 |
事前条件 | ユースケースが始まる前に真であると保証されていること |
主シナリオ | ユースケースを完了するための手順 |
ビジネスルール | 業務を遂行するには従わなければないルールユースケースを補足するもの |
Haibitica標準機能
Habiticaの機能をそのまま使います。
タスクを作成する
項目 | 説明 |
---|---|
ユースケース名 | タスクを作成する |
主アクター | 私 |
事前条件 | 無し |
主シナリオ | 1.私はタスクTodoを作成する。2.私はタイトル、チェックリスト、難易度を入力する3.私はタグに「未着手」を選択する |
ビジネスルール | 無し |
タスクに着手する
項目 | 説明 |
---|---|
ユースケース名 | タスクに着手する |
主アクター | 私 |
事前条件 | タスクを作成 |
主シナリオ | 1.私はタグから「未着手」を外す。2.私はタグに「着手」を選択 |
ビジネスルール | 無し |
タスクを完了する
項目 | 説明 |
---|---|
ユースケース名 | タスクを完了する |
主アクター | 私は |
事前条件 | タスクに着手する |
主シナリオ | 1.1.私はタグから「着手」を外す。2.私はタグに「完了」を選択 |
ビジネスルール | 無し |
自前で実装する機能
バッチ処理
abiticaのタスクをデータベースに書き込む
項目 | 説明 |
---|---|
ユースケース名 | Habiticaのタスクをデータベースに書き込む |
主アクター | サーバー |
事前条件 | ・Habiticaから 現在の |
主シナリオ | 1.HabiticaAPIからタスクのデータを取得する2.取得したデータをデータベースに保存する。 |
ビジネスルール | バッチ実行頻度ルール |
項目 | 説明 |
---|---|
ビジネスルール | 外部連携実行頻度 |
内容 | ・1日1回実行・13:00に実行する |
BIツール側
タスクの着手開始時間と完了時間を確認する
項目 | 説明 |
---|---|
ユースケース名 | タスクの着手開始時間と完了時間を確認する |
主アクター | 私 |
事前条件 | ・Habiticaとデータベース連携 ・タスクを完了する |
主シナリオ | 1.タスクを一覧から検索2.タスクの実績を確認 |
5.データのライフサイクル
データのライフサイクルとは
ライフサイクルが変化するデータに対しては、変化するときのイベント、変化後のデータの状態を明示しておく必要あります。
タスクデータには「未着手」、「着手中」、「完了」の3種類のライフサイクルがあるので記しておきます。
図
状態 | 条件 |
---|---|
1.タスク作成 | タグ=未着手 |
2.タスク着手中 | タグ=着手中 |
3.タスク完了 | タグ=完了,チェックボタンを押す |
参考
Habitica
概念設計について
書籍:システム設計の謎を解く p12
ユースケース記述
書籍:はじめての設計をやりぬくための本
p101-109
データのライフサイクル
書籍:システム設計の謎を解く p55
個人開発の目次