素人が2020年までの1ヶ月でLINE BOTに挑戦する毎日note.【Day 4:フローチャート編 part 1】
こんにちは。"くろ"です。
素人が2020年まで残り1ヶ月で、ゼロからLINE BOTを作る企画ですが、今日で4日目になります。
↓初めての方はこちらから概要読めます。↓
4日目です。よろしくお願いします。
昨日の機能一覧をエンジニアに見せた所、「普通に1ヶ月じゃ間に合わないんじゃないかな。」とバッサリ言われてしまったので、機能を減らすことも視野に入れながら仕様をFIXさせていきたいと思います。
今日は昨日洗い出した機能一覧をフローチャートに落とし込む
ということをしていきたいと思います。
師匠から次のステップとして、下記のようなお題を頂きました。
動作の主体を明確にしていかないと、システム構造を描けないので、次はフローチャートを書こう。
Actorを下記として、誰が何を行うのかを考えてみて。
- ユーザ
- Webサーバ
- LIFFサーバ
- Botサーバ
- Batchサーバ
ということで、今日は師匠のお題を元にGoogle先生にも頼りながら、描く目的や方法を理解することにフォーカスして1部分を描いてみる所まで行きたいと思います。
そもそもフローチャートとは?
※下記師匠とGoogle先生から教わったことを自分なりに解釈して記載しております。
まずフローチャットって何?なぜ必要なの?といった所をざっと理解するために、下記記事などを読ませて頂きました。
フローチャートは、プログラムの一連の流れを図解化したもので、
種類や定義はめちゃくちゃいっぱいあるみたいですが、
今の所は主に下記の3つを理解しておけばよさそうです。
1,システムの概要フローチャート:使用されるActorと動作を識別し整理
2,システムの詳細フローチャート:プログラムの詳細なロジックを整理
3,業務フローの設計、可視化:業務のプロセスなどを整理
こういうやつですね。
画像出典:https://it-koala.com/flowchart-2241
また、一般的には上記の設計を行う際に、
以下3つのような目的で利用されるものになります。
1,プログラム構造の整理
2,プランニングの効率化
3,プログラム品質の向上
そして、フローチャートには色々ルールがあることもわかりましたが、
あまりに詳細に解説すると長くなるので、
ぜひ上記記事をチェックしてみて下さい。
今回作成するフローチャート
師匠からこういったことを言われています。
今回のフローチャートの目的は
どうやって目的を達成するかをロジカルに考えること
必要なアプリケーションはなにか?を明確化すること
なので、それがわかる粒度でOK
作成の際には誰が(動作の主体=Actor)何を行うのか?を明確化することを意識
自分なりに上記の記事なども踏まえて、
"それがわかる粒度"というのは上記でいう所の
「1,システムの概要フローチャート」に近しいと解釈したので、
これを参考に作ってみます。
フローチャートの作成方法
https://cacoo.com/ja/resources/flowchart-guide/ によると
1,ツールを選択する
フローチャート作成ですが、手書きで書いてもいいみたいですが、当方字が汚いことや共有の観点からWEBツールを利用していきたいと思います。いくつか記事を読んでいくと、cacooとdraw.ioなどが有名みたいです。
なので、今回は無料で使えるdraw.ioを使ってみます。
2,フローチャートに記載する項目をリストアップ
要素や項目を1つの画面にリストアップできたら、暫定的にフローチャートを作成します。この時、テンプレート機能などを使うとスムーズです。
次に、以下の基準をもとにして、作成したフローチャートに欠けている条件がないか確認してみましょう。
・フローの開始、中、終了ははっきりしているか
・プロセスを踏むためにはどのようなアクションや要因が必要か
・流れを止めないために途中でどのような決定が必要か
・フローでつながっていない部分がないかか
という感じみたいなので、このステップでは前回洗いだしたものをベースにしつつ、一度暫定的にフローチャートを作成する作業をしていきながらブラッシュアップしていくのがよさそうです。
3,記号・図形を追加する
リストアップした各要素や項目を、前述した記号に基づいて、それぞれの図形で表しましょう。基本的に、図記号は「開始/終了」記号から始めます。次に「処理」や「判断」の記号を追加し、流れの方向を示す矢印でつなげます。最後に専門的な図形を追加し、全体を整理します。
4,フローを最適化する
矛盾点やボトルネックポイントを洗い出す。チームメンバーにレビューしてもらって、最適化していく。
実際にやってみる
draw.ioに良さげなテンプレートがあったので、こちらを利用してみます。
前回洗い出した機能を見ながら、まずは日程調整依頼をかける所を暫定的に作ってみました。フローチャートのルール部分とか粒度とどこまで細分化したり分岐させたりするか?がちょっと曖昧ですが、一旦こんな感じで仕上がりました。
この先を作っていく前に、一度師匠にこちらを見て頂いて、
粒度として合っているか?などのフィードバックをもらいたいと思います。
今日のまとめと明日やること
全然修正点だらけのアウトプットだと思うので恥ずかしいですが、作ってみて分かったこととしては、たしかに主体者を分けて順を追って機能を書いていくと、誰がどこで何をするのか?が明確になるし、これがないと確かに作り始められないなという実感を得ることはできました。
今日はざっくりフローチャートを理解することと、ツールになれることで精一杯だったので、定義をもう少し明確にしつつ、明日は本格的に作成作業に入りたいと思います。
この記事が参加している募集
よろしければサポートお願いします! 頂いたサポートはクリエイター活動に活用させて頂きます。