【特集】NTTデータが多数の開発案件で培ったノウハウを公開
Java、.NET、Ajax開発の“銀の弾丸”オープンソース?


株式会社NTTデータ
技術開発本部 ソフトウェア工学推進センタ
崎山 直洋
2008/2/1


NTTデータが開発ノウハウを社外に公開


今回の主な内容

システム開発のルールって決まってますか?
コラム 「TERASOLUNA」ってどういう意味?
Java、Ajax、.NET開発に役立つ「フレームワーク」とは?
「TERASOLUNAフレームワーク」はどうやって使うの?
ポケットブックで持ち歩ける「開発プロセス」とは?
“社内”のノウハウを“みんな”のノウハウに

 TERASOLUNA(テラソルナ)はWebアプリケーションを中心としたシステム開発の総合的ソリューションです。

 2007年11月29日、NTTデータは2003年に整備し受注案件向けに展開して数多くのプロジェクトで適用されてきた総合的ソリューション「TERASOLUNA」の「開発プロセス」の概要と、オープンソースとして「フレームワーク」を公開しました(参考「NTTデータが独自の開発フレームワークをオープンソース化〜開発プロセスも一部公開〜」)

図1 「TERASOLUNAフレームワーク」のポータルサイト
図1 「TERASOLUNAフレームワーク」のポータルサイト

 本稿では、その「開発プロセス」と「フレームワーク」の概要と使いどころを紹介します。

システム開発のルールって決まってますか?


フレームワークを使うことが一般的な時代ですね

 昨今、Webアプリケーションを中心としたシステムを構築するうえで、フレームワークを導入することが一般的になっています。とはいえ、フレームワークを導入するだけでは自由度が高いために、業務アプリケーションを構築するうえで必要な機能(トランザクション制御など)を実現する必要があったり、開発者間での実装のばらつきを抑えるために制約を設ける必要があります。

フレームワークには開発プロセスが付きもの

 また、作業を進める際には何らかの開発プロセス(手順)にのっとって行うことも一般的になってきています。開発プロセスで規定されている設計書を作ったとしても、いざ実装をするときにはフレームワークを考慮に入れたうえで設計書の内容をプログラムとして実装する必要があります。

 すなわち、フレームワークをソフトウェアアーキテクチャとして採用する以上、開発プロセスはフレームワークを考慮したものを選択し、そのうえで作業を進めることで作業効率の向上を見込むことができます。

「やみくもに……」では、目も当てられない状態に!

 もちろん、開発プロセスやフレームワークがなくてもソフトウェアを作ることは可能です。しかし、それが大人数で開発する大規模プロジェクトとなると、みんなが何をしていいのか分からず、やみくもに設計書を作って、やみくもにソースコードを作って…… 目も当てられないなんてことも往々にしてあります。

 このような背景から、NTTデータでは、大規模プロジェクトを含む数多くのシステム開発で培ったノウハウを基に「プロジェクト管理」「開発プロセス」「フレームワーク」を一体としたソリューション「TERASOLUNA」を2003年に整備して数多くのプロジェクトで適用してきました。

編集部注プロジェクト管理について詳しく知りたい読者は、@IT情報マネジメントの「プロジェクトマネジメント」を、開発プロセスについては「開発プロセス」を、それぞれご参照ください。

3本柱から成り立つTERASOLUNA

 では、NTTデータが培った「プロジェクト管理」「開発プロセス」「フレームワーク」とは何なのでしょうか? それぞれ、以下に示すとおりです。

図2 TERASOLUNAのコンセプト
図2 TERASOLUNAのコンセプト
  • プロジェクト管理
    プロジェクト管理者、品質管理者などのためのプロジェクト管理に関する手順書
  • 開発プロセス
    業務設計者、データベース設計者、ソフトウェアアーキテクトなどのプロジェクトメンバのためのシステム開発に関する手順書
  • フレームワーク
    ソースコード、各種ツール、マニュアルから構成されている。業務設計者、ソフトウェアアーキテクト、プログラマーのためのソリューション

コラム 「TERASOLUNA」ってどういう意味?

TERASOLUNAは、地球(TERA)、太陽(SOL)、月(LUNA)から成っていて、それぞれに3本柱である「開発プロセス」「プロジェクト管理」「フレームワーク」の3要素の集合を象徴しています。

“銀の弾丸”は存在しない

 「Webアプリケーション開発なら絶対これを使うべき!」といいたいところですが、そのような“銀の弾丸”は世の中には存在しません。

 TERASOLUNAもプロジェクトや開発システムの規模によって、向き不向きがあります。そこで、次に、ソリューション全体としてのTERASOLUNAがどういう場合の適用に向いているのか解説します。

主に大中規模プロジェクト向けだが小規模プロジェクトでも

 TERASOLUNAがメインターゲットとしているプロジェクトは、「大中規模プロジェクト」です。

 大規模プロジェクトを成功に導くためには、決められた手順や実装方法に沿って組織全体でプロジェクトを進めることが重要です。そのため、「TERASOLUNA開発プロセス」は大規模開発に耐えられるだけの十分な「タスク」もあります。

 一方、小規模プロジェクトではまったく利用できないということではありません。「TERASOLUNA開発プロセス」はテーラリングカスタマイズ、仕立て直し)可能であり、小規模プロジェクトでもテーラリングをすることにより適用可能です。また、これまでにも数多くのテーラリング実績があります。

ルール化によって品質のばらつきを防ぐ

 また、品質/コスト/納期の中では、「品質」確保を主眼としています。先ほど述べたように、段取りや実装方法のルールがない状況では、開発者間で品質のばらつきが発生することが往々にしてあります。大人数が作業をする大規模プロジェクトでは、なおさらこのような状況が発生します。

 開発プロセスを適用して段取りをルール化フレームワークを適用して実装方法をルール化することで、開発者間の品質のばらつきを防ぐことを狙っています。

 ここまでは、TERASOLUNAのターゲットや使いどころを解説しました。次に、3本柱のうち「フレームワーク」と「開発プロセス」にフォーカスを絞ってその特徴と、使いどころを解説します。

Java、Ajax、.NET開発に役立つ「フレームワーク」とは?

 「TERASOLUNAフレームワーク」は、さまざまなアプリケーション形態(Webブラウザベースのシンクライアントアプリケーション、リッチクライアントアプリケーション、バッチ処理アプリケーション)やプラットフォーム(Java.NETJavaScriptAjax))に対応していて、オープンソースとして自由に利用可能です。

編集部注Webブラウザベースのシンクライアントアプリケーションやリッチクライアントアプリケーションについて詳しく知りたい読者は、「“リッチクライアント”に至るまでの軌跡と現在(いま)」を、バッチ処理については「バッチ処理はJavaでバッチリ? その現状とこれから」を、それぞれご参照ください。

 後述のポータルサイトからダウンロードして、そのままソフトウェアアーキテクチャとして適用できます。もちろん、拡張ポイントホットスポット)を用意しており、開発システムの要件に応じ拡張可能です。

 「フレームワークが処理の流れを規定し、業務開発者は業務に特化する部分のみを注力して開発できるので、高品質なアプリケーションを構築できる」というのは、フレームワークとして当たり前です。TERASOLUNAフレームワークを使うことによるさらなるメリットは以下のとおりです。

  • さまざまなアーキテクチャに対応している
  • “実績”のあるフレームワーク

さまざまなアーキテクチャに対応している

 「TERASOLUNAフレームワーク」のラインアップは以下のとおりです。

表1 「TERASOLUNAフレームワーク」のラインアップ
フレームワーク名 概要
TERASOLUNA Server Framework for Java オープンソースのWebアプリケーションフレームワークStrutsDI/AOPフレームワークSpringなどをベースに拡張
TERASOLUNA Client Framework for Java Java SE標準のGUIライブラリSwingをベースに拡張
TERASOLUNA Server Framework for .NET .NET FrameworkASP.NETをベースに拡張
TERASOLUNA Client Framework for .NET .NET Framework/Windows Formsをベースに拡張
TERASOLUNA Batch Framework for Java Springをベースとしたバッチ処理アプリケーション用のフレームワーク
TERASOLUNA Client Framework for AJAX オープンソースAjaxフレームワークマスカット」を使用
編集部注Strutsについて詳しく知りたい読者は、@IT Java Solutuionのカテゴリ「Webアプリケーション(Struts、WTP、JSFなど)」を、DI/AOPSpringについては、同じくカテゴリ「DI×AOP(Spring/Seasarなど)」を、GUIライブラリSwingについては連載「SwingでJavaに強くなる」を、.NET FrameworkASP.NETについては@IT Insider.NETを、Ajaxフレームワークについては@IT リッチクライアント & 帳票のカテゴリ「Ajax技術解説」を、それぞれご参照ください。

 それぞれのフレームワークは、一貫した考えの下に開発されています。

 例えば、「TERASOLUNAフレームワーク」が規定する処理の流れや業務開発者が実装すべき個所は各フレームワーク間で統一されています。そのため、プロジェクトが変わって開発プラットフォームが変わっても「TERASOLUNAフレームワーク」に関するノウハウはある程度流用可能です。

 続いて次ページでは、「TERASOLUNAフレームワーク」の使い方や「TERASOLUNA開発プロセス」について見ていきましょう。

  1-2-3

 INDEX 【特集】NTTデータが多数の開発案件で培ったノウハウを公開
        「Java、.NET、Ajax開発の“銀の弾丸”オープンソース?」
Page1
  NTTデータが開発ノウハウを社外に公開
システム開発のルールって決まってますか?
コラム 「TERASOLUNA」ってどういう意味?
Java、Ajax、.NET開発に役立つ「フレームワーク」とは?
  Page2
  「TERASOLUNAフレームワーク」はどうやって使うの?
ポケットブックで持ち歩ける「開発プロセス」とは?
  Page3
  “社内”のノウハウを“みんな”のノウハウに


Java Solution全記事一覧



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

注目のテーマ

Java Agile 記事ランキング

本日 月間