JavaとDBのデータモデルはナゼすれ違う?JavaのDBアクセスを極める(1)(2/2 ページ)

» 2005年02月10日 00時00分 公開
[諏訪勇紀 著, 安間裕 監修アクセンチュア・テクノロジー・ソリューションズ]
前のページへ 1|2       

開発手法の違いによるインピーダンスミスマッチ

(1)ビジネス要件の複雑化に伴うさまざまな開発手法の出現

 昨今、目まぐるしく変化する顧客やマーケットのニーズに伴い、システムに対するビジネス要件も、その変化は激しさを増しています。そのため、ビジネス要件を満たすのはもちろんのこと、プログラムの機能面での拡張性やメンテナンス性も強く要求されるケースが増加し、それに伴い開発手法もオブジェクト指向開発に代表されるように、拡張性を担保することを意識したさまざまな方法論が生み出されてきました。

 しかし、これらの新しい開発手法だけで、すべてのシステムの実装を、拡張性を持って行えるかというと、そう簡単にはいきません。筆者の私見では、古くからある構造化手法(POA)やDOAなどの開発手法と新しく生み出されたオブジェクト指向による開発手法をうまく共存させ、互いの良い部分をうまく組み合わせていくことが望ましいと考えます。

(2)異なった開発手法の組み合わせによるギャップの発生

 では、実際の開発の現場でどのように開発手法が使われているか、考えてみましょう。それぞれの開発手法に関する文書や書籍は数多くありますが、異なる開発手法を組み合わせて開発を行っていく方法に関しては、あまり明確化されていないようです。ところが、ほとんどの開発プロジェクトでは開発手法を一本化せず、さまざまな開発手法を組み合わせて開発を行っているケースが多いと思います。総合的なEnd To Endの開発手順が明確化されていないまま、異なった開発手法を用いてシステム開発を行っていると、それぞれの開発手法のアプローチの違いからギャップ(溝)が生じてきます。

 例えば、OOAとDOAとを組み合わせた開発を行っているとしましょう。具体的には、ビジネスロジック(データベースを使用するユーザー・アプリケーション)からのアプローチとしてOOAを使用し、データベース(DAO注3 などのデータベース・アクセス処理やテーブルなど、物理的なデータベース)側からのアプローチとしてDOAを使用するとします(図1参照)。図1ではOOAで考えるエンティティ・モデルとDOAで考えるエンティティ・モデルで、明らかにギャップが生じています。

注3 DAO(Data Access Object)
データベースへのアクセスや問い合わせの処理を行うオブジェクト群のこと。または、マイクロソフトの.NET Frameworkが提供するデータベース・アクセス用API群の呼称としても使用する。

図1 開発手法の違いによるギャップ 図1 開発手法の違いによるギャップ

 こういった、開発手法の違いで発生するデータモデルのギャップのことをインピーダンスミスマッチといいます。それでは、なぜインピーダンスミスマッチが発生するかを考えてみましょう。その主たる理由は、設計・分析における考え方(思想)の違いです。考え方の違いを表2にまとめました。この表では、OOAでのオブジェクト指向モデルの組み方と、DOAによるデータベースモデルの組み方の違いを表しています。

データモデル定義における基本思想
OOA
(業務駆動型)
・システム化対象業務領域の業務分析で行われる概念モデリング(問題領域を把握するための抽象化分析技法)で抽出された抽象的な業務要素を入力として、システム化するデータモデルを分析・検討し具現化する
・上記で具体的に定義されたオブジェクトに関して、付随する操作・振る舞いを考察しデータモデルを分析・検討し定義する
・さらに、オブジェクト指向における考え方(汎化など)を用いて、拡張性およびメンテナンス性を意識したデータモデルを分析・検討し定義する
・使用するダイアグラムはUMLである
DOA
(データ駆動型)
・入出力のデータフロー図や機能に関する構造化チャートに着目して作成すべきソフトウェアの考察を行い、最適なデータモデルを分析・検討し定義する
・データベースとしての物理的なテーブルの構造が最適化(正規化など)されるように、データモデルを分析・検討し定義する
表2 OOAとDOAの基本思想の違い
両者の差異は筆者の開発経験を基にしており、正式な開発手法の定義とは多少異なるかもしれません。

 着目すべきは、目的によってアプローチが異なっていることです。OOAでは業務的な全体の振る舞いからの視点でデータをとらえ(業務駆動型)、DOAでは業務要件から必要とされるデータに重きを置いてアプローチ(データ駆動型)しています。アプローチが違うため、それぞれが実装するデータモデルに必然的にギャップが生じるのが分かります。つまり、最終的な目的が異なれば、ゴールも変わってくるということです。

 最近では、こういった開発手法の違いに伴うギャップを埋める非常に有用で便利なツール類が数多く出ていますが、それらのツールを使用して解決する場合であろうと、別の方法で解決する場合であろうと、ギャップが生じる背景を知り、なおかつ理解していることは大切なことです。

今回のまとめ

 今回は、第2回以降で解説するテーマの手始めとして、データベース・アクセスにおける問題や疑問が発生する大きな背景を理解していただくために、「データモデル分析/設計におけるギャップ発生の背景」を説明してきました。次回からは、データベース・アクセス処理に関する問題・疑問の解決方法や参考となるポイントをテーマ別に具体的に解説していきます。(次回に続く)

筆者紹介

アクセンチュア・テクノロジー・ソリューションズ

アクセンチュアから生まれた、企業改革のためのシステム開発を手掛けるエンジニア集団。安間裕が代表取締役社長を務める。諏訪勇紀はJavaに精通しSI上流での分析/設計を得意とするシニア・システム・アナリスト。



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。