Entry

Excelで仕様書と画面設計とデータベースを兼ねたデータを作成する構想

最近連チャンで出張してたので、更新はできないわ、レコーダの録画が凄いことになってるわで大変です。この仕事もう嫌だー。勘弁して…。

それはさておき、そんな出張中に色々考えた事。Windows & VisualStudioを使用して、GUIを持つソフトウェアを作成する際、1.仕様書で画面と処理内容を設計して、2.画面のソースを編集して画面構成を決定し、3.画面パーツに対する処理を設定する(1と2,3は順番が入れ替わる事もしばしば…)という作業をする。
この時、以下の点を何とかしたい。

  • プログラムは何度か流用する。ただしその都度、特定のエリアに描画される内容が異なる場合がある。
  • 流用毎にバージョンを割り当てると管理が煩雑なので、画面の変更に対してソースコードの変更が発生しないようにしたい(一律のバージョンで管理したい)。そのため、IDEによる画面編集ではなく、画面構成を外部設定として定義したい。
  • コストがかかるので、画面設定を作成するために特別なツールの開発を行いたくない。更に言えば、自分以外でも設計できて手軽に作れると良い。
  • ついでに、各画面のパーツに対する挙動も設定したい。
  • 画面設計をそのまま仕様書に反映できるようにしたい。

というわけで、出張行ってる間にあれこれ考えて、以下のような形で作れないかと考えた。
まず、画面の設計を以下の形で行う。

  • 画面作成はExcelのオートシェイプで行う。
  • オートシェイプの各パーツに対して名前を割り当てる。
  • 名前を割り当てたパーツのリストをExcelの別シートに作成し、パラメータを割り当てる。
  • このExcelファイルを、画面仕様書とプログラムの外部設定を兼ねたものとする。

イメージとして以下のような感じ。

20091216_excel1.png
オートシェイプ1に名前を定義。

20091216_excel2.png
オートシェイプ2に名前を定義。

20091216_excel3.png
名前を割り当てたパーツのパラメータを定義。

次に、プログラム側で以下の設定を行う(C#を想定)。

  • COMを利用し、作成したExcelシートからオートシェイプを読み込む。
  • 読み込んだオートシェイプを画像にして、ウィンドウに描画する。その際、オートシェイプの名前とパラメータも取得する。
  • リフレクション等によりパラメータに応じた処理を割り当てる。

以上の作業により、プログラムの設定ファイルとしてExcel仕様書を放り込むと、そのままプログラムの画面と動作が決定される。次のシステムに流用する際は、その都度作成した仕様書を放り込む、という感じ。

まー、これはまだ構想の段階なので、実際に作成できるかどうかは不明。まぁ、多分できる。
これができれば、仕様書と画面作成の二度手間も無くなるし、仕様書=プログラム設定になるので、仕様書とプログラムの同一性を確認する必要も無くなる。
また、Excelという汎用的なツールを利用するので、開発環境の確保の容易さ、導入コスト・学習コストの低さも利点。一度作ってしまえば、次以降の流用は他人にお任せしてしまえばいい。
デメリットは、開発環境にExcelが必須となる点、Microsoftに依存しまくりな点か。まぁ、頑張ればOpenOffice辺りを使っても実現できるとは思うけれど…。

もっともこれは、自分が思いつく程度の事なのだから、こういった手法はどこかで実施されているか、あるいはデメリットがあって、あまり実施されていないのかもしれない。
まぁ、実験や評価、学習を兼ねてやってみるつもりだけれど。


Comments (0 件)

コメントを残す

メールアドレスが公開されることはありません。