I-16-9. 要求分析モデル(DOA、OOA、Web MVC)

開発フレームワークによるアプリケーション開発を行う際に実施する要求分析について、DOA (データ中心アプローチ)、OOA (オブジェクト指向分析)、Web MVC (モデル-ビュー-コントローラ)モデルといった各種のモデルの特徴と違いについて解説する。

【学習の要点】

* DOAによりデータを処理から独立させることで、プログラムに変更があった場合にデータへの影響を抑えることができる。

* OOAにより各部品を分業させることで、プログラムに変更があった場合に影響する部品を最小限にすることができる。

* MVCにより役割を分離させることで、プログラムに変更があった場合に他の役割への影響を抑えることができる。

図I-16-9. 要求分析モデルとプログラム変更への対応

【解説】

1) DOA (データ中心アプローチ)

従来は、まず処理について設計し、データは処理に付随するものとして後から考えられる、という手法が一般的であったが、この場合、同じデータが重複して多重管理になったり、処理に変更が加わる際にデータも影響を受けたりするという問題があった。DOAは業務システムにおいて関係データベースの普及とともに広まっていった手法で、「データは組織の最重要資産である」「データは処理に比べて仕様変更の頻度が低い」という考え方がもとになっている。DOAでは、変化の多い処理からデータを独立させ、業務処理の流れをデータの流れを中心に捉え、個々の処理はデータに付随するものと考える。データモデリングをERD(Entity-Relationship Diagram)で記述するという方法が一般的である。

2) OOA (オブジェクト指向分析)

OOAは、オブジェクト指向によるシステム開発の上流工程での分析手法である。オブジェクト指向では、各オブジェクトが分業しながら機能を果たすので、仕様変更の際の影響範囲が小さくて済む。DOAでは、データの独立性が高くなる反面、データと関連する処理の特定が困難になるという問題点が生じる。これに対し、オブジェクト指向は処理とデータを一体化させている。OOAは組み込みシステムにおいてJavaの普及とともに広まっていった手法で、人間の発想や活動に近い考え方でオブジェクトのモデリングを行い、UML(統一モデリング言語)で記述すると言う方法が一般的である。

3) Web MVC (モデル-ビュー-コントローラ)

MVCモデルは、オブジェクト指向プログラミング言語SmalltalkのGUI設計に用いられた概念であり、Webアプリケーションの開発フレームワークに多く採用されるようになった。MVCでは、モデル(データを保持し業務ロジックを実行する部分)、ビュー(プレゼンテーションを行う部分)、コントローラ(モデルとビューとを制御する部分)の3つの役割に分けてアプリケーションを開発する。役割によって独立性を高めることで、仕様変更の際の影響範囲が小さくて済む。要求分析の段階から、保持するデータと画面とを分けて考えることができる。

4) 要求分析モデルの併用

Webアプリケーションの実際としては、オブジェクト指向言語でWeb MVCフレームワークを用い、データベースは関係データベースというように、上の3つのモデルを組み合わせるケースが多い。いずれのモデルも仕様変更に強いなどの共通の目標を持つが、アプローチの違いにより、インピーダンスミスマッチ等の問題が生じるので、要求分析レベルから各アプローチのすり合わせを行い、O/Rマッピングを利用するなどして、問題の解消を行う。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。