ObjectWorks+によるアプリケーション開発

アプリケーション情報の定義シートを作成する(1)前回は、野村総合研究所(NRI)のSIフレームワーク「ObjectWorks+(オブジェクトワークス プラス)」の概要を解説しました。最終回の今回は、ObjectWorks+によるWebアプリケーション開発の流れに沿って、もう少し詳細な特長を解説して

深津 康行

2010年1月29日 20:00

アプリケーション情報の定義シートを作成する(1)

前回は、野村総合研究所(NRI)のSIフレームワーク「ObjectWorks+(オブジェクトワークス プラス)」の概要を解説しました。最終回の今回は、ObjectWorks+によるWebアプリケーション開発の流れに沿って、もう少し詳細な特長を解説していきます。

ObjectWorks+による開発の流れは、「定義シート作成」→「ソースコード自動生成」→「コーディング」→「単体テスト」と4つの作業に大別されます。まずは、アプリケーション開発支援ツールObjectWorks+/STUDIO(以下、STUDIO)での「定義シート作成」から、開発がスタートします。

この工程では、画面遷移設計やデータ項目の定義など、アプリケーションの基本設計の中でも、「内部設計」に相当する設計を行います。その前段には、前回解説したようにサイト構成図の「Conversation分割」が完了し、STUDIOの定義シートの設計範囲が切り分けられていることが必要です。

STUDIOでは、「画面遷移定義」「データ定義」「アクション定義」「サービス定義」と、Excelをベースとした4つの定義シートを準備します(図1)。

画面遷移定義

まず始めに、「画面遷移定義シート」を作成します。画面遷移定義シートは、大きく分けると「遷移元画面」「遷移時のアクション」「遷移先の画面」の3つの領域があります。アプリケーション内(Conversation内)のすべての画面について、その中で発生するアクションを書き出し、その処理結果に応じて遷移先の画面を定義します。

データ定義

次に、「データ定義シート」を作成します。データ定義シートは、「データ項目と属性の定義部」と「DTO(Data Transfer Object)設計部」の2つの領域に分かれます。まず、シートの左端に、そのアプリケーション内に登場するすべてのデータ項目を列挙します。

データ項目を列挙した後、それぞれについて属性情報を記入していきます。属性情報としては、データ型や日本語名称、デフォルト値などのほかに、バリデーション属性があります。ここで「必須」や「全角」といった欄にチェックを入れておくことで、後ほど自動生成されるDTOにこれらのバリデーションを実装するアノテーションが付与されます。

続いて、シートの右端に、任意のデータ項目をフィールドとして持つDTOを設計します。DTOをどの程度細かく分割して定義するかは、プロジェクトの標準化ルールによります。画面(XHTML)とアクション・クラスとの間でデータのやり取りに用いる「Web層DTO」を、サービス/ロジック・クラスの入出力にもそのまま用いるように単純化するケースもあれば、サービス/ロジックの種類に応じて最低限必要なデータ項目だけを持たせた入力DTO、出力DTOを用意する場合もあります。DTOは、後述する「アクション定義シート」、「サービス定義シート」とも同時並行的に設計していくことになります。

アプリケーション情報の定義シートを作成する(2)

アクション定義

次に、「アクション定義シート」を作成します。アクション定義シートは、「画面遷移定義シート」で記述した、遷移時に呼び出されるアクションを設計します。画面遷移定義シートで記述したアクションのコンポーネントID(=アクションID)に対して、そのアクションが呼び出すサービスのコンポーネントID(=サービスID)を記述していきます。

また、アクション・クラスと画面(XHTML)との間でデータをやり取りするためのDTOを指定します。ここには、先ほどの「データ定義シート」で設計したDTOの名前を指定します。

サービス定義

最後に、「サービス定義シート」を作成します。「アクション定義シート」で記述したサービスIDに対して、そのサービスが呼び出すロジック(ビジネス・ロジックの実装部の本体)を記述していきます。

また、サービス・クラスの入出力に用いるDTO、およびロジック・クラスの入出力に用いるDTOも、ここに定義します。この入出力DTOを、サービスやロジックごとに適切に設計することで、サービスやロジックといったBL(ビジネス・ロジック)層のクラスがPL(プレゼンテーション・ロジック)層の画面やアクションと切り離されて管理しやすくなります。

以上で、最初のステップとなる「定義シート作成」の工程は完了です。STUDIOの定義シートは、アプリケーションのクラス構造に、理解しやすい単純なアーキテクチャーを導入して標準化する役割を果たしていますが、役割はそれだけではありません。

アプリケーションの設計情報を、これらのスプレッド・シート上に一元化することで、アプリケーション全体の構造を俯瞰(ふかん)したり、サービスの入出力のようなインターフェースが、個々の開発者によって変更されないよう管理を集約するなどの役割も担っています。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30