150415101080_TP_V

あなたがシステム開発会社に仕事を依頼した場合、その会社の担当者が「開発するシステムの仕様書」を作成します。仕様書は、専門的な用語も多く使われるため専門知識を持たない一般の人には理解しにくい面もあります。

ここでは、仕様書を理解するうえで最も重要となるデータベース設計についてお話しします。データベースとは、情報システムで扱うデータをプログラムから切り離してひとまとめにしたものです

これまで、データベースのことをまったく知らない人であっても、ここに書かれた内容を理解することにより、システムの仕様書ならびにシステムそのものへの理解を深めることができるようになります。そして、コスト削減へとつなげれるようになります。

仕様設計では、変わるものと変わらないものを区別する

あなたが、システム開発の担当者からどのような機能が必要かのヒアリングを受けているとします。そこであなたは、その担当者に対して時間の経過に伴い「変わるもの」と「変わらないもの」を正確に伝えなければなりません。とくに変わるものについては、どのようにどの範囲で変わることがあるのか、明確に伝えてください。

「変わるもの」というのは、たとえば「顧客情報」や「製品の種類」、「製品の価格」といった情報になります。それに対して「変わらないもの」とは、帳票でいえば「見積書」や「請求書」といったタイトル、罫線(枠をあらわす線)の位置や太さ、会社名を印字する位置といった情報になります。

ほかに変わらないものの例として、加減乗除(足し算、引き算、掛け算、割り算)の演算処理などが挙げられます。

業務上の規則や制約事項などは、一見変わらないように見えますが実は変わるものもあります。たとえば、ある商品の検査を行ってOKかNGかを記録する場合に、1日の終わりに1回だけ検査を行う規則が、あとになって商品を作るたびに毎回検査を行うように変更されるというようなことが起こります。

変わるものはデータベースに、変わらないものはプログラムに組み込む

システム開発において、変わるものはデータベースに保存し、変わらないものはプログラムに組み込むようにするのが基本です。そうすることで、時間経過に伴い変わった部分についてはデータベースを変更することによりシステムが対応できます。変わらない部分は、プログラムにしたがいシステムが正確に処理を実行します。

したがって、システム仕様設計においてはのちに変わる可能性がある部分をいかにデータベース化するかにかかっています。つまり、データベース全体の設計が最も重要なポイントになるのです

これを間違えると大変なことになります。たとえば、薬品の管理システムにおいて購入済みの薬品をリストアップする画面があるとします。このリストでは、使用期限を過ぎた薬品に対して「期限切れ」と表示することにします。

ある薬品の使用期限が購入後2ヶ月だったとき、システムの開発段階で、その薬品の使用期限が2ヶ月であることをプログラムに組み込んだとします。このシステムは、その薬品の使用期限が2ヶ月で変わらない間、正しく動作します。

しかし、品質に問題があるために早く使わないといけないことが判明し、後になって使用期限が1ヶ月に変わったとします。そうなると、使用期限の情報がプログラムに組み込まれたこのシステムは、正しい警告が出なくなって使えなくなります。再び使えるようにするには、お金をかけてアプリを修正するしかありません。

ここで述べたのは簡単な例にすぎません。自分が開発担当者だったならば、薬品の使用期限をプログラムに組み込むようなことはしないと思われるかもしれません。しかし実際に、このようなことはよく起こっています。システムの開発段階において、変わるものと変わらないものを明確に意識することは難しいのです

このように、情報システムの仕様設計を行ううえで、変わるものと変わらないものを区別することはとても重要になります。

変わらないものをデータベースにしてしまうと、開発コストが高くなり実現性が薄れます。しかし、変わるものをプログラムに組み込んでしまうと、今度はシステムの柔軟性が失われて少しの変更でもアプリの改修費用がかかってしまいます。

変わるものと変わらないものを区別すること、そして変わるものについては正しくデータベース化されていることを仕様書で確認することにより、コストパフォーマンスも柔軟性も高い情報システムを作り上げることができるようになります。