トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Michael Bushe, 翻訳者 沼田 暁子 投稿日 2008年2月7日 午前12時1分
Spring等の依存性注入(Dependency Injection : DI)フレームワークは、疎結合化やユニットテストの改善、アーキテクチャの整理といった点で、本当に多くの開発者に効果をもたらした(source)。アーキテクトとして技術の歴史を知っておくことは、それが一番うまく当てはまる状況や制限、そして今後の方向性を正しく理解するために有益である。例えば、EJBが CORBAの世界から出てきたものであることや、SOAがメッセージ指向ミドルウェア(Message-Oriented Middleware : MOM)システムの上に進化したものであることを知っていると、ソフトウェアの世界におけるこれらの技術の位置付けを理解しやすい。大多数にとっては、しかしながら、DIはどこからともなく現れたように思われるだろう。Andrew McVeigh氏が依存性注入の詳細な歴史(source)について書いており、以下に要約する。McVeigh氏は大学の研究者で、博士課程の一環としてアーキテクチャ記述言語(Architecture Description Languages : ADLs)(source)に取り組んでいる。彼はRod Johnson氏と一緒に商用の製品の仕事もしていた。
ここ20年のソフトウェアコンポーネントの研究に詳しい大学の研究者たちにとって、アーキテクチャ記述言語(ADLs)(source)として知られているソフトウェアの研究の確立された分野(source)とDIが非常に密接に関連していることは明らかです。ADLがやるべきことは、設定に従ってコンポーネントを組み合わせたり結びつけたりすることです。...実際に、Springのbean定義言語は、(厳密にいうと)暗黙的なコネクタをもった非階層的なADLなのです。McVeigh氏はソフトウェアコンポーネントを次のように定義している。:
コンポーネントはソフトウェアの構成単位であり、インスタンス化することが可能です。そして、どのようなサービスが提供されているか、どのようなサービスが必要かを(インタフェースによって)明確に示すことにより、環境から分離されています。McVeigh氏は、ソフトウェアコンポーネントと電子部品を比較しているが、それはどちらも「取り替えることが可能で、提供しているサービスや必要としているサービスがはっきりとしている具体的な部品」でなければならないからである。受信機やスピーカー、DVD、そして新しい96インチの高精細度テレビの配線をつなぐ場合、入出力コネクタの形によって、それぞれの部品に必要なサービスとそれぞれの部品が提供しているサービスがはっきりとわかるのだ。
【無償】「Google Apps 企業向けソリューションセミナー」のご案内
InfoQ Japanはコンポーネントスクエアが運営しています
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信