【特集】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フレームワーク」のポータルサイト |
本稿では、その「開発プロセス」と「フレームワーク」の概要と使いどころを紹介します。
システム開発のルールって決まってますか?
■ フレームワークを使うことが一般的な時代ですね
昨今、Webアプリケーションを中心としたシステムを構築するうえで、フレームワークを導入することが一般的になっています。とはいえ、フレームワークを導入するだけでは自由度が高いために、業務アプリケーションを構築するうえで必要な機能(トランザクション制御など)を実現する必要があったり、開発者間での実装のばらつきを抑えるために制約を設ける必要があります。
■ フレームワークには開発プロセスが付きもの
また、作業を進める際には何らかの開発プロセス(手順)にのっとって行うことも一般的になってきています。開発プロセスで規定されている設計書を作ったとしても、いざ実装をするときにはフレームワークを考慮に入れたうえで設計書の内容をプログラムとして実装する必要があります。
すなわち、フレームワークをソフトウェアアーキテクチャとして採用する以上、開発プロセスはフレームワークを考慮したものを選択し、そのうえで作業を進めることで作業効率の向上を見込むことができます。
■ 「やみくもに……」では、目も当てられない状態に!
もちろん、開発プロセスやフレームワークがなくてもソフトウェアを作ることは可能です。しかし、それが大人数で開発する大規模プロジェクトとなると、みんなが何をしていいのか分からず、やみくもに設計書を作って、やみくもにソースコードを作って…… 目も当てられないなんてことも往々にしてあります。
このような背景から、NTTデータでは、大規模プロジェクトを含む数多くのシステム開発で培ったノウハウを基に「プロジェクト管理」「開発プロセス」「フレームワーク」を一体としたソリューション「TERASOLUNA」を2003年に整備して数多くのプロジェクトで適用してきました。
編集部注:プロジェクト管理について詳しく知りたい読者は、@IT情報マネジメントの「プロジェクトマネジメント」を、開発プロセスについては「開発プロセス」を、それぞれご参照ください。
■ 3本柱から成り立つTERASOLUNA
では、NTTデータが培った「プロジェクト管理」「開発プロセス」「フレームワーク」とは何なのでしょうか? それぞれ、以下に示すとおりです。
図2 TERASOLUNAのコンセプト |
- プロジェクト管理
プロジェクト管理者、品質管理者などのためのプロジェクト管理に関する手順書 - 開発プロセス
業務設計者、データベース設計者、ソフトウェアアーキテクトなどのプロジェクトメンバのためのシステム開発に関する手順書 - フレームワーク
ソースコード、各種ツール、マニュアルから構成されている。業務設計者、ソフトウェアアーキテクト、プログラマーのためのソリューション
コラム 「TERASOLUNA」ってどういう意味? |
TERASOLUNAは、地球(TERA)、太陽(SOL)、月(LUNA)から成っていて、それぞれに3本柱である「開発プロセス」「プロジェクト管理」「フレームワーク」の3要素の集合を象徴しています。 |
■ “銀の弾丸”は存在しない
「Webアプリケーション開発なら絶対これを使うべき!」といいたいところですが、そのような“銀の弾丸”は世の中には存在しません。
TERASOLUNAもプロジェクトや開発システムの規模によって、向き不向きがあります。そこで、次に、ソリューション全体としてのTERASOLUNAがどういう場合の適用に向いているのか解説します。
■ 主に大中規模プロジェクト向けだが小規模プロジェクトでも
TERASOLUNAがメインターゲットとしているプロジェクトは、「大中規模プロジェクト」です。
大規模プロジェクトを成功に導くためには、決められた手順や実装方法に沿って組織全体でプロジェクトを進めることが重要です。そのため、「TERASOLUNA開発プロセス」は大規模開発に耐えられるだけの十分な「タスク」もあります。
一方、小規模プロジェクトではまったく利用できないということではありません。「TERASOLUNA開発プロセス」はテーラリング(カスタマイズ、仕立て直し)可能であり、小規模プロジェクトでもテーラリングをすることにより適用可能です。また、これまでにも数多くのテーラリング実績があります。
■ ルール化によって品質のばらつきを防ぐ
また、品質/コスト/納期の中では、「品質」確保を主眼としています。先ほど述べたように、段取りや実装方法のルールがない状況では、開発者間で品質のばらつきが発生することが往々にしてあります。大人数が作業をする大規模プロジェクトでは、なおさらこのような状況が発生します。
開発プロセスを適用して段取りをルール化、フレームワークを適用して実装方法をルール化することで、開発者間の品質のばらつきを防ぐことを狙っています。
ここまでは、TERASOLUNAのターゲットや使いどころを解説しました。次に、3本柱のうち「フレームワーク」と「開発プロセス」にフォーカスを絞ってその特徴と、使いどころを解説します。
Java、Ajax、.NET開発に役立つ「フレームワーク」とは?
「TERASOLUNAフレームワーク」は、さまざまなアプリケーション形態(Webブラウザベースのシンクライアントアプリケーション、リッチクライアントアプリケーション、バッチ処理アプリケーション)やプラットフォーム(Java、.NET、JavaScript(Ajax))に対応していて、オープンソースとして自由に利用可能です。
編集部注:Webブラウザベースのシンクライアントアプリケーションやリッチクライアントアプリケーションについて詳しく知りたい読者は、「“リッチクライアント”に至るまでの軌跡と現在(いま)」を、バッチ処理については「バッチ処理はJavaでバッチリ? その現状とこれから」を、それぞれご参照ください。
後述のポータルサイトからダウンロードして、そのままソフトウェアアーキテクチャとして適用できます。もちろん、拡張ポイント(ホットスポット)を用意しており、開発システムの要件に応じ拡張可能です。
「フレームワークが処理の流れを規定し、業務開発者は業務に特化する部分のみを注力して開発できるので、高品質なアプリケーションを構築できる」というのは、フレームワークとして当たり前です。TERASOLUNAフレームワークを使うことによるさらなるメリットは以下のとおりです。
- さまざまなアーキテクチャに対応している
- “実績”のあるフレームワーク
■ さまざまなアーキテクチャに対応している
「TERASOLUNAフレームワーク」のラインアップは以下のとおりです。
表1 「TERASOLUNAフレームワーク」のラインアップ | ||||||||||||||
|
編集部注:Strutsについて詳しく知りたい読者は、@IT Java Solutuionのカテゴリ「Webアプリケーション(Struts、WTP、JSFなど)」を、DI/AOPとSpringについては、同じくカテゴリ「DI×AOP(Spring/Seasarなど)」を、GUIライブラリSwingについては連載「SwingでJavaに強くなる」を、.NET Framework/ASP.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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|