演劇の興行を手がける明治座は昨年末、Web座席予約システムをJavaで構築し稼働させた。オブジェクト指向開発でも、10年来システムの分析/設計に使っているDOA(データ中心アプローチ)の採用にこだわった。同社が出した結論はDOAとUML(統一モデリング言語)の“いいとこ取り”だった。

図1●明治座がWeb座席予約システム「席とりくん」の開発で直面した課題と対策
図2●明治座の「席とりくん」開発プロジェクトにおける分析/設計作業の流れ
UMLを使った分析/設計手法とDOAをうまく組み合わせたCCSの開発方法論「Coup[ku:]」を採用して体系的に作業を進めた
 明治座が昨年12月20日に稼働させたのは、劇場の座席予約をインターネット経由で受け付けるJavaシステム「席とりくん」。座席予約の登録や確認、決済機能などを備える。

 席とりくんの開発にあたり、明治座は分析/設計作業でDOAの採用にこだわった。DOAは、業務やシステムで利用するデータに着目して分析/設計する手法だ。明治座は1990年代前半からDOAを採用。ケン・システムコンサルティングのDOAに基づく分析/設計ツール「Xupper(クロスアッパー)」を使って、業務やシステムを分析/設計している。

 「たとえJavaによるオブジェクト指向開発でも、DOAはあきらめたくなかった」。席とりくんの開発を担当した明治座営業開発部の赤(せき)俊也次長は、こう説明する。「DOAは長年使っていてなじみがある。DOAで分析/設計した結果をしっかり管理しておけば、『システム変更時にどのデータに影響が及ぶか』などが容易に把握でき、システムの保守性が高くなるというメリットも捨てがたかった」(赤次長)。

DOAの結果をどうUMLにつなげるか

 明治座がJavaなどを使う本格的なオブジェクト指向開発を手がけるのは今回が初めて。システムを検討していた2003年初めの時点では、「Javaを使う以上、オブジェクト指向に基づく分析/設計手法であるUMLが自然。しかし、DOAによる結果を、どうUMLの図に落とし込めばよいかが分からなかった」と赤次長は振り返る(図1[拡大表示])。

 「2003年12月にはシステムを稼働させる必要があり、自前で方法論を新たに考える余裕がなかった」(赤次長)という事情もあり、明治座は外部の力を借りることに決めた。白羽の矢を立てたのは、Xupperの勉強会で知った、システム・インテグレータのセントラル・コンピュータ・サービス(CCS)の開発方法論「Coup[ku:]」だった。

 Coup[ku:]は、CCSが2003年2月に整備したDOAとUMLの“いいとこ取り”をした方法論。DOAによる分析結果をUMLによるアプリケーション設計にどう生かせばよいかを体系立ててまとめたものだ。

 明治座はCCSを開発パートナとして、2003年7月にCoup[ku:]とJavaを利用した席とりくんの開発を始めた。業務分析は明治座とCCSが共同で進めた。その後は明治座が基幹システムとの連携、CCSが新システムの開発を中心に担当した。

業務分析はDOA、それ以降はUML

 明治座が採用したCoup[ku:]では、システム分析の肝となる「業務分析」でDOAを利用。それ以降の「要求分析」、「システム分析」、「システム設計」では、UMLを使った作業を中心に進める(図2[拡大表示])。

 業務分析では、Xupperを使って「E-R(エンティティ関連)図」、「ビジネス・フロー図」などを作成した。明治座は業務分析に2カ月半の期間をかけた。プロジェクト全工程のほぼ半分を、ここに費やしたことになる。「インターネットによる座席予約を実現するのは初めてだったので、業務分析に時間がかかった。それでも慣れた手法を利用できたので、作業自体はスムーズに進んだ」と赤次長は説明する。

 業務分析で作成した図表などの成果物は、それ以降の工程で役立てる。例えば要求分析で「ユースケース図」や「ユースケース記述」を作る際は、業務分析で作成した「ビジネス・フロー図」や「ビジネス・ルール」、「プロトタイプ画面」を参考にした。

 続くシステム分析では、「ロバストネス図」を作成した。ロバストネス図は、アプリケーションの内部構造を固めるためのもので、UMLの図には含まれていないがオブジェクト指向開発ではよく使われている。ロバストネス図を作る際は、業務分析で作成したE-R図とプロトタイプ画面群、要求分析で作成したユースケース記述を参考にした。

 ロバストネス図では、システムの画面を示す「バウンダリ」、システムで利用するデータを示す「エンティティ」、データと画面を仲介する「コントロール」を関連づける。Coup[ku:]の手順では、E-R図をそのままエンティティに利用できるとともに、バウンダリはプロトタイプ画面を、コントロールはユースケース記述などを基にそれぞれ抽出できるので、ロバストネス図を効率よく作成できる。「業務分析の段階で、E-R図やプロトタイプ画面などを十分検討したこともあり、ロバストネス図の作成は1週間ほどで完了した」と、開発を担当したCCSソリューション開発本部科学技術システム部の三河淳一マネージャは説明する。

 明治座とCCSは2003年10月に、システム設計におけるクラス図の作成に着手。CCSがプロジェクト開始当初から整備してきたJava開発フレームワークの機能とロバストネス図を参照しながらまとめていった。その後、開発作業、テストを進め、予定通り12月20日にシステムを本稼働した。「テストでは、テスト・シナリオとして、ユースケース記述が役立った」と三河マネージャは話す。

 席とりくんは、Linuxを搭載する8台のパソコン・サーバーで構成する。Webサーバー・ソフトはApache、Webアプリケーション・サーバー用ソフトはTomcatと、オープンソース・ソフトで固めた。アプリケーションの開発規模は、およそ650ファンクション・ポイント。クラス数は330(フレームワーク部分は除く)。開発費用はハード込みで約3000万円である。

(西村 崇)