2005年07月08日

60.システム設計は、例外設計とエラー対処

今日は朝に書いてます。おはようございます!

久々にシステムの話。

特にシステム設計に携わる人に知っておいていただきたいことなんですが、
基幹業務システム(※1)のプログラムを作るときのこと。

※1:会社の基幹となる業務のシステムのことです。
   例えば、製品の受注、出荷、売上を管理するための「販売システム」、
   皆さんの給料を計算する、「給与計算システム」なんかが、
   基幹システムにあたり、ないと日々の業務に支障があります。
   コレに対して、文書管理システムなんかは、普通は基幹システムとは
   呼びません。

昔、プログラムを作るとき(まだ経験が浅かったとき)は、意図したとおりの
動きをいかにさせるか、ということばかり考えてしまうものなんですね。

「えーと、ユーザ(システムを使う人)はこの画面で、こういう入力をすると、
 次の画面でコレが表示されて、だからその次の画面では、こういうことを
 入力してもらおう」 とか。

でも、やっていくにしたがって分かったのは、ユーザって、こちらの意図した
通りには、
 ・画面操作をやってくれない

 ・マニュアルを読んでくれない

 ・分からないといろんなボタンを押そうとする


ってこと。

これって、皆さんにも経験ありませんか?
エクセルやパワーポイントを使っていて、

・分からなくても、とりあえずやってみる。

・分からないボタンがあれば、押してみる。

・他のソフトのデータや画像、ファイルなんかを、(できるかどうか調べないで)
 とりあえず貼り付けてみる


・・・こういうのって、ユーザからすると当たり前なんですよね。

でも、作るほうになってみると、ユーザって、ちゃんとこっちの意図した
使い方をする(させる)つもりになるから不思議です。

というわけで、システムは、実現できる機能も大事なのですが、
例外処理やエラー処理、リカバリ処理が非常に大事 なんですね。^^;

作ってみたプログラムを見て分かるのは、
 ・エラーチェック機能や、
 ・間違いが起こらないようにする機能、
 ・間違いが起こったときでも、なんとかシステムが止まらないようにする機能、

なんかが、下手をすると、そのシステムで実現できる機能が書いてある
プログラムの、3倍〜5倍!! というのも珍しくないこと!

(もっと多い場合すらありますよ。(^.^)

これって考えてみれば当たり前なんです。

原子炉設計では、どんなことが起こっても事故にならないように設計する。
(それでも事故がおきますよね。)
ゲームソフトだって、どのタイミングでどのボタンを押しても、おかしな
動作をすることがない。

これは、事前に、あらゆる例外処理、エラーパターンを想定して、その対処を
組み込んでいる 
からなんですね。

システム設計でもまったく同じ。

自分で使うだけのツールとしてなら、そこまでやる必要もないんですが、不特定
多数の人が使うものほど、何が起きるかをすべて考えてプログラムを作っておか
ないと、トンでもないことになります。

ユーザの後ろで、自分の作ったソフトが、どう使われるかを見てたことが
ありますが、本当にびっくりしました。

「そこでそれを押すなよー」とか、
「そんなに、ボタンを何度もクリックしたら困る」とか、
「え?その項目を入れないで終わるの?」とか、そんなのばっか。^^;

だから作ったプログラムのテストをやる時だって、ほとんど例外処理や
エラー処理をやったときの動作になるんですね。

システム設計は、エラー対処処理、例外処理が大事!って覚えておいてください。
(やったことのある人には、当たり前なんですねー。)

<こんな行動いかがでしょう?>
  今日の仕事で1つ、あなたの思った通りにいかない場合の、
  安全装置(そのときどうするか)を考えてみる



---------------
今日もお役に立ちましたら、下記クリックをお願いしまーす。^^;

人気blogランキング


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/fastwork/27468129