このチャプターの目次
その機能によって、ユーザーが行うことができる処理と、それに伴ってサービスが裏側でする処理を決めていきます。
例えばTwitterですと、ユーザーが「あいう」と投稿すると、サービスは裏側でその投稿した「あいう」とユーザー名を保存してくれます。
なぜ機能設計が必要なのか?
-
その画面でユーザーとサービスがする処理を明確にすることで、実装がスムーズになる
-
画面設計の抜け漏れに気づける
実装がスムーズになるのは、画面設計と同じですが、機能設計を行うことで、コードを書く前により具体的に実装をイメージできます。
また、画面設計でこのボタンが必要だった...等、抜け漏れに気づくことができます。
機能設計のやり方
以下の項目に従って、機能設計をしていきました。
- 機能名
- ユーザーの操作内容
- サービス側の処理内容
具体的にアカウント操作画面ではこんな感じで機能設計できます。
アカウント作成画面
ユーザーの操作内容
- フォームに入力
- 次へ進むをクリック
- SNSログインをクリック
- ログインをクリック
サービス側の処理内容
- 入力フォームからユーザー情報を受取る
- 受け取った情報をDBに保存
- SNSログインページに移動
- ログインページに移動
目標変更画面
ユーザーの操作内容
- 目標削除ボタンをクリック
- 各種ナビゲーションバーのページへ移動
サービス側の処理内容
- 目標をDBから削除する
- 目標設定ページに移動する
- 各種ナビゲーションバーのページへ移動
機能設計をしている段階で、画面設計の抜け漏れが出てくると思うので、適宜変更しながら行くといいと思います。
完成したら、gituhubのREADME.mdに追加するといいかもです。
次回のチャプターでは、クラス設計について説明します。