システム開発とデータモデル

データモデルの設計が大切なことは、理解できても実践はなかなか難しい。

システムを長くメンテナンスする機会や運用しつつ再構築する経験を積むことがあれば、
データモデルとプログラムが、相互に関係し、修正の困難さ、容易さを意識することができる。

一般的に、システムエンジニアプログラマは単発でシステムを構築することが多い。
兎にも角にも納期を目標に、依頼先の検収を受けるまでが仕事で、運用に関わるのは別な部署である。

実装手法も、流行のOS、言語、予算に振り回されることが多い。

業務ソフトの構築においては、40年も前から、データモデルを適切に設計すれば、
ノンプログラミングでシステムを構築できることが知られている。

日々の仕事に追われ、全体像をを把握・理解することができない。

成功体験を持たないため、納期に向けて手を動かすしかない。

様々な、業務システム開発のノウハウ本もあるが、データモデルの設計が核心であり、
実際に、ノンプログラミングでの開発を経験することが重要である。

私自身、数年データモデルについて学んできた。
IT勉強宴会の資料
http://blog.benkyoenkai.org/

データモデルを設計すれば、コーディングが不要、コーディングが最小限になることを、
実感することができた。

設計と実装は、車輪の両輪であり、最終的には動いてなんぼ、メンテが楽になってなんぼ。

実際に使える、設計ツール、実装ツールが無くては話になりません。
実装の選択肢を2つ紹介する。どちらもオープンソースソフトウェアです。


渡辺幸三氏のXEAD Driver

http://homepage2.nifty.com/dbc/xeadDriver.html

仕様書(XMLファイル)を記述することで、システムを構築できます。
専用の仕様書エディタ、XEAD Editorを使用しGUIで作業します。
クライアントサーバーシステムに対応
プロトタイプのシステムを短時間で構築するために利用しています。


下地忠史氏のRmenu

http://jocc.co.jp/RmenuDoc/

本格的な、Webアプリケーション構築フレームワーク

サーバーはruby、クライアントはJavascriptで動作します。

画面・帳票といった機能ごとにフォルダを作成し、
フォルダ内にJSONファイルを記述することでシステム構築します。
JSONだけで不可能な機能は、RubyJavascriptを使用することができます。

業務で要望される複雑な画面を作成することも可能です。


どちらのソフトウェアも、データモデルを先に設計することで、
画面・帳票とデータベース間のコーディングの工数を減らすことができます。

サンプル画面は、どちらも同じデータベースに接続しています。
両方を組み合わせての開発が日常です。


データモデルの設計ツールとしては、次のツールをお勧めします。
渡辺幸三氏のXEAD Modeler
http://homepage2.nifty.com/dbc/xead.html

A5:SQL Mk-2
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/


データモデルを設計するだけで、システムが動くそんな体験を多くのエンジニアが
することで、効率的なシステム開発が広がるでしょう。

有償・無償の実装フレームワーク・ツールが存在しています。
自分に合ったツールを見つけて効率的に開発を進めて欲しい。