まず始めにお断り
BHT-BASIC自体はオブジェクト指向言語ではありません。
それでも、オブジェクト指向のような考え方で作ってみるとどうなるか?を探求してみたいと思ってこの記事を書きました。UML&オブジェクト指向の勉強中でかなりの初心者です。図が正しくかかれているかわかりません。UMLの利用していく順番とかも適当です。なので、個人的メモレベルとおもってかるーくご覧ください。
全てのUML作成にスパークシステムズジャパンのエンタープライズアーキテクト9.1を使いました。使いやすく素晴らしいソフトだと思います。ただ、プロパティを開く動作が遅くてイライラするのが難点で、しかもプロパティはよく使う機能デス・・・(泣)
仮想ストーリー
UMLの勉強を兼ねて仮の会社を想定して次のようなシナリオをシステム化して解決していきたいと思います。要求事項
現在は目視で客先ラベルと社内ラベルを照合しています。しかし、どうしても作業者のポカミスを減らすことができません。そこで、バーコードを使って照合をしたいと考えています。- 客先ラベルには2次元バーコードが入っています。
- 社内ラベルには1次元バーコードが入っています。
- 社内品番と客先品番は同じものもあれば、違うものもあります。
現在のシステム化対象の作業
- 作業者が客先ラベルを手に取り対象の製品の箱に付いている社内ラベルと目視で照合
- 同一の場合に客先ラベルを添付するという作業をしています。
- これを客先ラベル分繰り返します。
目標?
1日におよそ1500箱の出荷を行い5人の作業者で行っています。しかし経営的にも苦しく現状の5人作業から3人作業にして2名の作業者を別の作業に割り当てることを考えています。客先要求事項
客先からトレーサビリティについて要求されていますが、現状では履歴がなく全く要求に答えることができていません。システム化にあたって前提条件
- 数量の照合はオプショナルとして将来的には対応したいが当面は考慮しない。
- 全ての照合対象に品番が入ったバーコードが付いている
いきなりUMLの登場です ユースケース図
ハンディターミナルとPCの機能をユースケース図を書いてみました。このような感じでしょうか? ユースケース図の目的は「システムが提供する機能を表すダイアグラム」 ですからこんな程度で細かいことは書いてなくてもいいのかな?
ユースケース記述
次に、[1対1の品番照合する]をユースケース記述にしました。実際には繰り返し作業になりますが、こんな程度で考えます。 なお、ユースケース記述自体はUMLではありませんので、それに近い機能のシナリオを利用しています。
クラス図
それでは、クラス図にいきたいところですが、その前に今回の実装環境は- ハンディターミナル : DENSO BHT-600QW
- HT開発言語 : BHT-BASIC4.0
- PC : Windowsマシン
- PCアプリケーション : BHT-BASIC4.0 Transfer Utility
- もしハンディターミナルがBHT-600Qからエンドユーザーの要求でBHT-300Qに変更になったら?
- ラベルのQRの内容が変わったら?種類が増えたら?
画面周りはBHT-600とBHT-300ではかなり違うので、インターフェイスで仕様をきめておいて実装で変化させればいいかなと考えました。 ラベルはいろいろなラベルに対応する要求があるかもしれないので、インターフェイスを決めておきました。 しかし、インターフェイスを実現できる言語ではありません。ここでは概念として扱います。 このクラス図は初期設計段階なので作るうちに変化するでしょう。
最初から完璧なんてのは偶然で、仕様や要求は実装中にも変化していくものと割りきって考えないと早い時代の流れには対処できない。とどこかのHPに書いてあったような気がします。
シーケンス図
続いて同じ処理のシーケンス図を書いてみました。現時点では重複する処理がありますが、ここはとりあえずそういうものとして書いてあります。 ところどころ細かく書いてあったり、逆に詳細が無かったりしますが、こちらも、最初から完璧はないの理論でいきます。
今回はここまでで終了
次回はできそうなところから実装しちゃうことにします。
0 件のコメント:
コメントを投稿