==================================================発行部数800======
     AutoCADカスタマイズ入門講座              No.7 1999/05/22
===================================================================
  AutoCADカスタマイズ入門講座第7号をお送りします。
最近暖かい(というよりは暑い)日が多いですね。寒いよりは暑い日のほうが
私は好きなのですが、それでも朝満員電車に乗ったりすると、それで1日が
終わってしまう感じです(まだ5月なのに)。冬の間は、「早く夏がこないか
なぁー」と思ったりしていましたが、まったく人間は(私だけ?)身勝手なも
のです。

--------------------------------------------------------------------
 1.プログラム作りのプロセス
--------------------------------------------------------------------
 今回から簡単なプログラムを作りながら、プログラム作りのプロセスを学
んでいきたいと思います。プログラム作りのプロセスなどというと難しそう
ですがそんな事はありません。しかしながら、プログラムを作る前にちょっ
とだけ頭の中で物事を整理するだけでよりよいプログラムが作れるようにな
ります。

プログラム作りの簡単な流れは、
1.仕様を考える
2.実現方法を考える
3.プログラムを書く
4.テストする

という感じでしょうか。プログラム作りに詳しい人には笑われそうですが、
自分(または会社内など)で使うプログラムを作る限りこの位で十分でしょう。
さて、今回は3Dサーフェイスを用いて6面体(サイコロ)を作るプログラムを考えてみます。

--------------------------------------------------------------------
 2.仕様を考える
--------------------------------------------------------------------
 仕様を考える、つまりどの様なプログラムを今回作成するのかを考えます
。お客さんがいる場合には、ここでお客さんからどの様なプログラムを要求
されているのかを、お客さんとディスカッションして煮詰めます。今回のよ
うに自分用のツールを作るのであればこの部分を省略してもかまいませんが
、せっかくプログラムを作るのであれば、より良いものを作りたいものです
。いま、頭の中で(漠然と)考えている(作りたい)プログラムの内容を紙など
にかき出してみましょう(もちろん、ワープロでもOK(^O^)。例えば、

○6面体を作るプログラムの仕様1
 6面体を作る

 上記の様にあなたは今回作るプログラムの仕様を紙に書き出したとします
。直球、そのままですね。さて、ちょっと考えてみてください。もし、あな
たがお客さんから上記の仕様を見せられて、「この仕様でプログラムを作っ
てくれ」と言われたら作れるでしょうか?。例えば、ユーザ(プログラムを
使う人)はどの様に6面体の大きさを指定するのでしょうか?。上記の仕様か
らは全く知る事は出来ません。という訳で、...

○6面体を作るプログラムの仕様2
 1.6面体を作る
 2.ユーザは底辺の対角線上の2点を指定する事により、底辺を定義する
 3.ユーザは6面体の高さをコマンドラインから指定する

 仕様1に比べて、仕様2では値の入力方法が指定されています。何となく、
どの様なプログラムを作ればいいのか見えてきました。しかし、上記の仕様
にも、もう少しという点があります。
 あなたはこの仕様でプログラム作成を何方かに頼んだとします。出来上が
ってきたプログラムを動かしてみてがっかりしてしまいました。それは、底
辺の2点の指示方法がコマンドラインから座標(x,y)を指示するようになって
いた為です。本当はマウスで指定したかったのに...。こんな事にならな
いようにもう少し仕様をまとめてみましょう。

○6面体を作るプログラムの仕様3
 1.6面体を作る
 2.ユーザは底辺の対角線上の2点をマウスで指定する事により、底辺を定義
 する
 3.ユーザは6面体の高さをコマンドラインから指定する
 ま、こんな感じでしょうか?。最終的には以下の様にしたいと思います。

○6面体を作るプログラムの仕様4
 1.6面体を作る(ワイヤーフレームでなく、3Dサーフェイスで面を作る)
 2.ユーザは底辺の対角線上の2点をマウスで指定する事により、底辺を定義
 する。2点はXY平面と平行な同一平面上なあるものとする。2点は同一の
 X座標、Y座標を取る事は無い。上記条件が満たされない場合は、エラーメ
 ッセージを出力しプログラムを終了する。
 3.ユーザは6面体の高さをコマンドラインから指定する
 4.入力タイプと異なる入力が合った場合(数値入力なのに文字入力をされた
 等)は、コマンドラインへのプロンプトを繰り返す。
 5.コマンドラインへのプロンプト出力は以下の通りとする。
 
 始点:
 もう一方の点:
 高さ:

 6.ESC,Ctrl+C(CtrlキーとCキーを同時に)キーなどでプログラムを中断でき
 るようにする。

 仕様4では仕様3に加え、エラー処理など細かいところを付け加えてみまし
た。自分用のツールを作る場合はここまで決める必要はないと思いますが、
もし他の人にプログラム作成を頼む場合には仕様4でも問題(出来たプログラ
ムがあなたの思っていたものと違う事)が出てくる事はあるでしょう。

--------------------------------------------------------------------
 3.まとめ
--------------------------------------------------------------------
 今回はプログラムの仕様について学びました。重要な点は、頭の中で漠然
と考えている仕様を実際に紙などに書き出し、第3者の始点で眺めてみる事
です。プログラムを作る人の立場に立ったり、ユーザの立場に立ったりしな
がら、頭の中でそれぞれの立場に立った作業をシミュレーションしていきま
す。そのようにしていると仕様に何が必要で何が不必要かが見えてくると思
います。もちろんほとんどの方が自分用にプログラムを作られると思います
ので、好き勝手に作って頂いてかまわないのですが、この様なプロセスを踏
むとちょっとプログラムの出来が違うと思いますよ (^O^)//。

 蛇足ですが...
 皆さんの中にもきっと、CADシステムや社内システムなどを社内の情報シ
ステム担当の方や外注の方に頼んだ経験のある方がおられると思います。そ
のシステムが成功したか、失敗したかは解りませんが、今後その様な機会が
あれば、ぜひ今回説明したような手順で仕様を考えてみてください。仕様を
まめてから打ち合わせなどを行う事でスムーズに議事が進みますし、トラブ
ル事も少ないと思います。その様に考えて頂ける方が増えれば、SEもプログ
ラマも、そして皆さんも幸せになれると思います(たぶん)。

 次回は2.実現方法を考えるから、出来ればプログラムを作るところまで進
みたいと思います。それではお楽しみに。

====================================================================
●バックナンバーは下記のURLで参照する事が出来ます。
http://www2u.biglobe.ne.jp/~Saturn5/alisp.htm
====================================================================
■登録/解除の方法
http://www2u.biglobe.ne.jp/~Saturn5/alisp.htm
「AutoCADカスタマイズ入門講座」は、上記URLよりいつでも
登録/解除可能です。
====================================================================
●広告の問い合わせ
広告のお問い合わせは以下のメールアドレスへお願いします。
wankichi@mba.nifty.ne.jp
ただし、CAD関連に限ります。
====================================================================
■「AutoCADカスタマイズ入門講座」No.7
発行責任者 :わんきち(wankichi@mba.nifty.ne.jp)
発行システム:インターネットの本屋さん『まぐまぐ』
              http://www.mag2.com/
              マガジンID:0000011579
====================================================================
戻る