[製品紹介]


開発の全フェイズ支援を試みるTogetherの戦略製品
Together ControlCenter 6.0



佐藤敦司
TISインフォウエア株式会社
2002/6/26



 Webベースのシステム開発においては、分析/設計はUML、実装はJ2EEを選択することが主流となりつつあります。また近年注目されているeXtreme Programming(XP)やRational Unified Process(RUP)といったオブジェクト指向開発プロセスにおいては「繰り返し」型の開発サイクルが推奨されています。さらに、企業のビジネス環境が加速度的に変化している状況において、システム開発を担う側にも「変化」に対応する能力が求められているといえるでしょう。

 「Together Control Center」(以下TCC)は、現在のこのような環境をトータルにサポートするために、米TogetherSoft社が開発した開発プラットフォームです。本稿では、v6.0(Build:1762)を評価対象とします。現在日本において販売されているのはv5.5ですが、米国ではすでにv6.0がリリースされており、評価利用については可能です。なお日本語化が完了したv6.0の正式リリースは6月26日から開催の「SODEC 第11回 ソフトウエア開発環境展」で発表が予定されています。

画面1 Together ControlCenterのIDE画面
(画面をクリックすると拡大します)


 システム開発の全工程のサポートを狙いとした製品

 従来から開発プロセスの各フェイズをサポートするUMLモデリングツール、統合開発環境、テストスイート、デプロイツールといった製品がありましたが、TCCの特長は、要求分析、システム設計、プログラミング、デバッグ/テスティング、デプロイ、保守、機能追加といった、システム開発の一連のライフサイクルを1つのプラットフォーム上に統合している点にあります。さらに、100%Javaで開発された製品であり、すべての機能がモジュール化されています。しかも、モジュール作成のためのAPIが公開されているので、ユーザーが必要な機能を自由に追加したり、拡張することが可能です。

図1 Together ControlCenterが目標とするサポート内容

 一般的なUMLモデリングツールとはどこが違うのか?

 TCCは“LiveSource”と呼ばれる「ソースコード中心」のアーキテクチャを採用しています。これは、モデルの設計情報を独自のリポジトリファイルで管理するのではなく、ソースコードの情報を最大限に利用して、設計情報を表示します。この手法で、設計情報とソースコードの乖離を最小限にとどめようとしています。

モデル、ソースコードのリアルタイム同期

 一般的なUMLモデリングツールは、基本的にはUMLのダイアグラムによって設計を行い、バッチ的にコードテンプレートを生成するまでを守備範囲としており、実装以降については別のツールを用いることを前提としています。また、ソースコードからモデルへのリバースも可能ですが、リバースの操作においてモデル側への反映のために余分な作業が発生してしまいます。このようなUMLモデリングツールにおいて、「繰り返し」開発でよく起こる実装フェイズで行った変更を設計フェイズへフィードバックする場合を考えてみましょう。


図2 実装で発生した変更を設計へフィードバックする一連の工程は、「コード生成」「コード編集」「リバース」の3つのステップを必要とする

 図2のような一連の操作を行った場合、Model(1)からModel(2)への移行に対して最低でも3つのステップを必要とするでしょう。一方TCCにおいては、図3のようにモデルとソースコードはオンデマンドでインタラクティブに変更を反映するので、原理的に常に一貫した状態を保つことが可能です。結果として、仕様変更が頻発するプロジェクトでは、開発スピードを上げることが可能になるわけです。

図3 Together ControlCenterでは設計から実装、実装フェイズでの変更から設計への反映がオンデマンドで行われる

デザインパターンのサポート

 次に、デザインパターンのサポート状況を見てみましょう。古典的なデザインパターンであるGangofFour(GoF)をサポートするほか、SunのJava Center J2EE Patternsにいち早く対応したことが特筆される点です。これらのパターンにより、設計の標準化を図ることが可能となります。

画面2 サポートしているデザインパターンの一覧

classファイルのリバース機能

 TCCにおいては、ソースコードを基にダイアグラムを描画するようなアーキテクチャをとっています。よって、UMLモデリングによる「ビジュアルプログラミング」が可能です。既存のフレームワークについては、ソースコードのないclassファイルまたはjarファイルの形式で提供されていても、TCCのプロジェクトの中に取り込むと、classファイル内の情報をリバースしてUMLのダイアグラムを生成します。

 画面3は、代表的なオープンソースのフレームワークStrutsのActionクラスを継承するクラスを作成した例です。プロジェクトの中にstruts.jarを取り込むことでorg.apache.struts以下のパッケージがダイアグラムに表示されます。Strutsのaction.Actionクラスのショートカットダイアグラムを作成し、これを継承するクラスのダイアグラムを作成することで、エディタ上には必要なソースコードが生成されています。

画面3 Strutsに対応したクラスの作成
(画面をクリックすると拡大します)

APIを利用し機能拡張できる

 TCCはJavaの公開APIを用いて機能拡張をすることが可能です。このAPIによってTCCのプロジェクトに含まれるすべてのモデル要素およびソースコードにアクセスすることを可能としているので、定型的な設計要素の自動生成といった機能をアドオンすることができます。また、この方法を用いてユーザーがカスタムのデザインパターンを追加することもできます。

  EJB開発における生産性を向上させる特徴的な機能

 一般的な統合開発環境の場合、EJBの開発をサポートする手法としては、ウィザードによってソースコードのテンプレートを生成するものが多いようです。また、アプリケーションサーバ製品ごとに、デプロイメント・ディスクリプタ(DeploymentDescriptor:DD)を記述する必要があるものが少なくありません。

 TCCは、EJB開発においても一貫したダイアグラムとプログラムコードの統合を行っているので、UMLベースでのビジュアルな開発が可能です。また煩雑なEJBのbuildとdeployのステップについては「J2EE Deployment Expert」によって一連の作業が自動化されます。

画面4 EJBをUMLベースでビジュアルに開発できる
(画面をクリックすると拡大します)

 実際に、どのような手順になるのかを見てみましょう。典型的な例では以下のような手順を踏みます。

STEP1 UMLクラス図上でのEJBダイアグラムの記述
STEP2 EJBダイアグラム上でのビジネスロジックメソッドの設定
STEP3 エディタでのビジネスロジック実装の記述
STEP4 EJB Assembler上でのDDの設定
STEP5 J2EE Deployment Expertによるdeploy

 基本的にはSTEP3のロジック実装の記述を除いて、ほぼすべての作業はUMLクラス図の上での作業となります。

 TCCにおけるUMLクラス図中のEJBの表現は拡張されており、1つのEJBを表現するために必要なHOMEInterface、REMOTEInterface、BEANClassのワンセットを単一のダイアグラムで表現しています。つまりEJBダイアグラムをクラス図中に1つ作成することで必要な実装の枠組みがすべてオンデマンドで作成されます。この点に大きな特長があるといえるでしょう。

 ビジネスロジックやデータアクセサについては、ダイアグラム上でメソッドを追加することで、TCCがREMOTEInterfaceとの同期を自動的に取ります。

 DDの設定についてもグラフィカルな設定が可能です。「EJB Assembler」を用いてトランザクションなど各種の属性を設定でき、ダイアログのインスペクタ(inspector)のプロパティで設定の詳細を確認できます。そしてDDは、このプロパティを基に「J2EE Deployment Expert」によって自動生成されます。

画面5 DDの構造をビジュアルに作成できる「EJB Assembler」
(画面をクリックすると拡大します)

 またSTEP5のJ2EE Deployment Expertによって、ejbcの実行、コンパイル、DDの自動生成、アーカイブ、deployという一連の定型作業は自動的に実行されます。TCCのJ2EE Deployment ExpertはアプリケーションサーバによるDDの差異、deploy方法の違いを吸収しているので、対象となるアプリケーションサーバが異なっても、一貫した操作手順で扱うことが可能となっています。

画面6 EJBのアプリケーションサーバへの配布に必要な一連の作業を自動化する「J2EE Deployment Expert」
(画面をクリックすると拡大します)

Page2


Index
Page1

■システム開発の全工程のサポートを狙いとした製品
■一般的なUMLモデリングツールとはどこが違うのか?
■EJB開発における生産性を向上させる特徴的な機能
Page2 ■仕様変更にツールが対応
■コードの品質管理機能を用意
■この製品に今後求めること

 



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間