連載第11-2回
UMLの基礎と応用
(株)NTTデータ 技術開発本部 副本部長
山本修一郎
◆WAEの例
コナレンのWAEによるクラス図の例を図2に示す。
この図ではWebを用いた論文査読システムの一部を表現した。クライアントページには論文査読ページと論文査読リストページがある。サーバーページには査読論文を検索するページと、論文査読結果を更新するページがある。フォームには査読論文検索フォームと査読内容入力フォームがある。この図の関連の意味は次のようになる。査読論文検索フォームに必要な情報を入力して査読論文を検索するサーバーページに<<submits>>する。次にこのサーバーページが論文査読リストクライアントページを生成(<<builds>>)する。論文査読リストページからは査読内容入力フォームへのリンクが張られている。査読内容入力フォームに必要な情報を入力して論文査読結果を更新するサーバーページを<<submit>>する。論文査読結果が正常に更新されると論文査読ページに<<redirects>>する。
このようにWAEを使うとWebページやサーバーページ間などのページ関係に基づいてWebアプリケーションを自然に表現できる。コナレンのモデリングのプロセスはRUP(Rational Unified Process)に基づいており、次のようである。
(1)要求定義
ユースケース図、シーケンス図、コラボレーション図を用いて要求を定義する
(2)分析
パッケージ図、クラス図、シーケンス図、コラボレーション図を用いて分析モデルを作成する
(3)設計
WAEを用いてWebページ関係を設計する
(4)詳細設計
シーケンス図、配置図、コンポーネント図を用いて設計を詳細化する
コナレン法では、設計段階になるまではWAE を持ち出していない点と、シーケンス図が各段階で反復的に使
用されている点を注意しておく。
■フランクリン法[5] [6] [7] [8]
フランクリン法では、UMLのクラス図とパッケージ図をそのまま使用してWeb アプリケーションを設計する。フランクリン法の手順は次の7段階である。
(1)ユーザーロール分析
アクタ間の関係を分析し階層的なアクタ関連図を作成する
(2)要求定義
ユースケース図により要求機能を洗い出す
(3)Web ページ定義
パッケージ図とクラス図によりWeb ページ間の関係を定義する。
パッケージ図では画面領域ごとにパッケージを対応させることにより、階層的な画面構成を定義できる。
(4)アーキテクチャー分析
配置図とコンポーネント図により、Webブラウザやサーバー、データベースなどからなるWebアプリケーションのアーキテクチャーを定義する。
(5)クラス設計
クラス図を用いてクラスとクラス間の関連を定義する
(6)実行シナリオ設計
コラボレーション図とシーケンス図を用いてクラス間の実行手順を定義する
(7)配置設計
コンポーネント図と配置図を用いてWebサーバーやAPサーバーの構成並びにファイル構成を定義するフランクリン法の特徴は画面構成の分析を早い段階で実施することであり、Webページ画面に着目したモデル化手法といえよう。
■アンバー法[9]
アンバー法でも、UMLのクラス図やパッケージ図をそのまま使用してWebアプリケーションを設計する。アンバー法はオブジェクト指向アプリケーションをWebサービスとしてパートナー企業と共有するためのモデル化手法であり、次の6段階の手順からなる。
(1)クラス種別分析
クラス図により永続クラスとシステムクラスを識別する
(2)クラス階層定義
提供するサービスを識別するため、一般化や集約などの関連を単純化しクラス図を最適化する。クラス階層を単純化するための基本的な考え方は、提供するサービスが変化しないかぎり、クラス階層を平坦化するというものである。
(3)クラスコントラクト定義
クラス図によりクラスコントラクトを定義する。ここで他のクラスから要求されたときに、指定されたクラスが提供できるサービスのことをコントラクトという。言い換えれば、他のクラスから利用できるクラス操作のことである。
(4)ドメインパッケージ定義
コラボレーション図とパッケージ図を用いてドメインパッケージを定義する。ここで、ブラックボックスとして扱えるような一連のクラスとクラスコントラクトの集合をドメインパッケージという。基本的な考え方は各ドメインパッケージが他のドメインパッケージやアプリケーションに対してWebサービスをカプセル化して提供するというものである。
(5)ドメインパッケージコントラクト定義
パッケージ図を用いてドメインパッケージコントラクトを定義する。ここで、ドメインパッケージの外部のクラスからアクセスされるクラスコントラクトのことをドメインパッケージコントラクトという。
(6)Webサービス定義
クラス図を用いて識別名、引数などの必要な情報を決定することによりWebサービスを定義する。
アンバー法はパートナーとの連携を前提としているため、クラスコントラクトに着目したWebアプリケーションのモデル化手法であるといえる。またドメインパッケージという一種のモジュール化手法にも特徴がある。
■まとめ
本稿ではUMLを用いてWebアプリケーションを設計するためのモデル化手法について紹介した。今回紹介した手法をまとめて図3に示す。
これらの手法以外にも、UMLを用いてWebアプリケーションのハイパーリンクによるナビゲーションをモデル化する手法としてOOHDMなどが提案されている[10]。OOHDMでは、図1に示したWebアプリケーションアーキテクチャーのWebサーバー層とアプリケーション層の中間にナビゲーション層を追加する。ナビゲーション層ではナビゲーションのビュウとナビゲーションのコンテクストとを独立に管理できるナビゲーションサーバーを用意する。たとえば、論文番号、著者、所属組織、査読委員などの観点からコンテンツを検索する処理をナビゲーションサーバーにより簡潔に実現できる。この場合、ナビゲーションモデルをUMLのクラス図でモデル化しておく。このようなハイパーメディアの検索に着目した専門のサーバー層を導入するアーキテクチャーの考え方は、e-learning分野などにも応用できそうである。
いずれにしても、WebアプリケーションをUMLでモデル化するといっても場合に応じていくつもの手法が考えられるわけであり、状況に応じた適用法を考えていく必要があることを指摘しておく。
次回はUMLを用いたXMLアプリケーションのモデル化について説明しよう。
参考文献
[1] ジムコナレン著、依田智夫監訳、UMLによるWebアプリケーション開発、ピアソンエデュケーション,2000 .
[2] Conallen,J.,Modeling Web Applications with UML,
http://www.conallen.com/whitepapers/webapps/ModelingWebApplications.htm
[3] Conallen,Inc.,UML Extension for Web Applications,
http://www.conallen.com/technologyCorner/webextension/welcome.html
[4] Conallen,J.,Modeling Web-Tier Components,
http://www.sdmagazine.com/documents/s=735/sdm0101n/0101n.htm
[5] Scott W. Ambler,Deriving Web services from UML models,Part1:Establishing
the process,
http://www-106.ibm.com/developerworks/webservices/library/ws-uml1/?dwzone=webservices
[6] Scott W.Ambler,Deriving Web services from UML models,Part2:Separating
the wheat from the chaff through simplification,
http://www-106.ibm.com/developerworks/webservices/
[7] Scott W.Ambler,Deriving Web services from UML models,Part3:Identifying
domain packages, http://www-106 .ibm.com/developerworks/webservices/
[8] Scott W.Ambler,Deriving Web services from UML models,Part4:Defining
Web Services,
http://www-106 .ibm.com/developerworks/webservices/
[9 ] Steve Franklin, Planning Your Web Site With UML,
http://www.webreview.com/2001/05_18/developers/index01.shtml
[10] Schwabe,D.,Rossi,G.Lyardet,F,and Esmeraldo,L.,Engineering Web Application
for Reuse,IEEE Multi-media,Jan.-Mar.,pp.20-31.,2001