Shinfield

マンガマーケティングのシンフィールドへ
マンガ小冊子 / システム・ツール BtoB 商品・サービス説明

0164

日本ナショナルインスツルメンツ株式会社(NI) 様
  • < 一覧に戻る
  • 脱初心者動画でわかるLabVIEW
  • インテックソロジー株式会社(計測器製造業)
さて... 先日、 クライアントより 発注いただいたい データロガー だが...。
今回は...藤沖君! キミに 作って もらうよ。え。 僕ですか。
機能はこれでインターフェースはあれを使ってそれからもし。
が ... がんばり ます...。
どうしよう... 僕に一 できるかな...。
とりあえず LabVIEWを 基礎から一 学びなおそう。
それから数日間僕はLabVIEWを基礎から勉強した。
よし基礎もわかったしサンプルプログラムも紹介してもらったからバッチリだぞ
  • 紹介してもらったサンプルプログラムを元にデータブロガーを作るか。
よかったちゃんと動いてるこれをベースに編集するぞ。
ああーだめだ。わけわからん。停止ボタンがいっぱいあるのに停止しないしメチャクチャだぁ。
  • あれ。プログラムも随分とスパゲッティね。
あれ神埼さんLabVIEWを知ってるんですか。どうしてこんなにスパゲッティになっちゃったの。
トレーニングもきちんと受けたしバッチリだと思ったんですけど。
基礎や操作方法はわかっているみたいだけどLabVIEWは何も考えずに作るとこんなにスパゲッティコードになっちゃうんだよね。
実は何から手をつければいいかわからなくなってて適当に作業していたら。
よしわたしが手伝ってあげよっか。
ホントですか。
  • プログラミングに 取り掛かる前に要件を整理してからはじた?
部長の要求をまとめたノートならありますけど。要求と要件は違うのよ。
要求を要件にせいりするためにまずは画面の全体図をホワイトボードに書き出して整理するべきだよね。よして書き出した画面の全体図をもとに機能を整理したメモを活用するのよ。
なるほどホワイトボードか。
最初に要件をきちんと整理するつことがこのさきのプログラミングに大きく影響するわ。アプリケーションの機能を考えればおのずと画面構成もきまってくるわ。
わかりました。
よしこんな感じか。
1.要件の整理を動画でみてみる。
藤沖くんの要件書のPDF
QRコード
  • じゃあこれで何をつくればいいかイメージできたかな。イメージはつきましたが画面操作とプログラミングの動きをどうやって連携させればいいですか。
そういうときはイベントストラクチャをつかえばいいのよ。こちらをみて。
2.イベントストラクチャで操作と動作を一対一に。
すごい。イベントストラクチャって画面操作とプログラムの動きを結びつけるのにすごく便利ですね。
これで藤沖くんもスパゲッティから卒業ね。
スパゲッティは大好物ですから食べますよ。
そういう意味じゃ。
それで次はどうすればいいですか?
  • ボタンを押した時の動きを考えてみような。
動き。プログラムのループが動くとか止まるとかですか。
そうじゃなくて機能がどう動くかという観点で考えるの。プログラムを進める前に図にするといいわ。
3.フローチャートでプログラムの動きをイメージ化。
あまり綺麗にかけませんでしたが図で描くことで画面を操作したときの機能の動きが理解できました。
綺麗かどうかは問題じゃないわ図をみて動きが分かるかどうかが重要なのよ。
  • ちなみにこの図はアクティビティ図って言うの時間のある時にでも勉強すると良いわね。アクティビティ図。
じゃあ次はこれを元に実際にプログラムで書いてみようか。
はい。なんだか僕にもできそうな気がしてきたぞ。
じゃあ実際に構成画面を作れば良いんだな。
中身の機能はこの構成ケースの内容だから新しくVIを作ってコピーすれば良いのか。
ここに何を追加すればいいんだろう。
実装の仕方は色々あつけどこんな方法もいいわよ。
  • できた。感動。
こういう感じで動くと嬉しいでしょ。
これぞプログラマーって感じですね。
いぱ、プログラマーだし。
4.先輩から教わったテクニックで設定画面を作ってみよう。
  • 実はあの後ボタン押しても反応しなくなっちゃって、何回押してもダメなんです。
これはイベントストラクチャ内のプログラムが動作している間ユーザーインタフェース画面がロックされてしまうことで起こる現象よ。
ボタンを押して一瞬で終わるプログラムならいいけど。連続的にデータを収集して表示するものにはイベントストラクチャは使えないんですか?
これはユーザインタフェースとプログラムで起きる事を切り分けることで解決できるわ。
5.柔軟に対処する秘訣は、キューにあり。
キューアールコード。
  • ユーザインタフェースと実際のアクションを行うループを分けることでそれぞれ独立して動作できるんだ。
ループで区切られているとユーザーインタフェースとアクションパートのどちらか一方を変更する場面や別々の担当者で開発する時にはやりやすくなるわ。
ところでこのVIはちゃっと気持ち悪いわね。
VIが気持ちわるい。
ループが二重構造になってるし停止ボタンが各ループに一つずつあるでしょ。それってだめなんですか。だめじゃないわ気持ち悪いの。
プログラムの構造としては機能ごとにしっかり整理されて別れていたほうが。何かあったときに柔軟に対処できるでしょ。
それってどうやったらできるんですか。じゃあ説明するね。
6.自分で次の処理をきめたい。
QRコード
  • キューを消費するループ自身がそのキューに書き込むことでが繰り返し処理が 可能になるんですね。
これでプログラムの枠組みは完成だ。
それぞれのアクティビティの中身を作るけどゼロからじゃなくてサンプルプログラムを利用して見ようか。
サンプルプログラムですか。前にそれであの画面になっちゃったんですけど。
無計画にサンプルプログラムを合体させていくからスパゲッティになるのよ。今はプログラムの骨格もできているしもんだいないわよ。
単機能の動作確認ならそのままでもいいんだけど。サンプルプログラムを使うにはちょっと工夫が必要なのプログラムの骨格に合わせて分解して利用すれば良いわ。
7.サンプルコードを有効活用しよう。
QRコード
  • 早速やってみます。そうですこんな感じになりました。
いい感じじゃない。
今度はどうしたの?ボタンを押せないようにする機能も必要なんですけどどうすればいいのかわからなくて。
それトレーニングで学んだでしょ。プロパティノードを使えばいいのは分かるんですけどどんな感じで今のプログラムに入れたら良いのかわからなく。
  • まだメモを見ながら作成してるの。プログラムをかくときは要件ではなくアクティビティ図を見なさい。せっかく一緒に作ったでしょ。
8.アクティビティ図でイメージ通に動作を実装
QRコード。
アクティビティ図とケースストラクチャが対応しているので実装が楽にできますね。
プログラムは開発の流れと全体の構造が大切で設計が肝なの。
やったプロフラムをユーザーさんに納品だ。
大丈夫かしら。
  • 数週間後。
僕が納品したソフトが動かない。失礼ですが画面はどんな感じになっていますか?はい。ボタンを押してもグラフが表示れれません。
センサやcDAQは繋いでいますか。繋いでいますよ。なにやらメッセージが出てきましたが。
わからないのでスクリーンショットで送りますね。
全くわからんエラーコードでググって見るがでてこない。
それはこう解決するのよ。
9.エラー処理を実装しよう。
QRコード
  • すごいじゃないか藤沖くん。よくやってくれた。
いつも神埼さんは部長のムチャぶりで苦労されていたんですね。まぁねでも今回のように要件をしっかりまとめて開発の流れを押さえていれば大丈夫。
藤沖くんもがんばったわね。スパゲッティ卒業おめでとう。
次は日本語を教えようかしら。

※最適なマンガ広告の表現上、コマ枠線を描写していない場合がございます。

お問い合わせはこちら