|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ソフトウェア : [そふとうぇあ] 【名詞】 1. software 2. (n) software ・ 部品 : [ぶひん] 【名詞】 1. parts 2. accessories ・ 品 : [ひん] 【名詞】 1. thing 2. article 3. goods 4. dignity 5. article (goods) 6. counter for meal courses
ソフトウェアコンポーネント(Software Componentry)は、ソフトウェアシステムの様々な機能を関心の分離によって分割したものである。システムを独立した結合の弱い再利用可能なコンポーネント群で構成する設計技法は ''Component-based software engineering'' (CBSE) と呼ばれ、ソフトウェア工学の一分野となっている。 コンポーネントの考え方は、サービス指向の起点となっている。例えば、Webサービスやサービス指向アーキテクチャ (SOA) ではソフトウェアコンポーネントの考え方を発展させサービスをコンポーネント化するという考え方をする。 == 概要 == 個々のソフトウェアコンポーネントは、ソフトウェアパッケージだったり、Webサービスだったり、ウェブリソースだったり、相互に関連する機能(とデータ)の集合をカプセル化したモジュールだったりする。 すべてのシステムプロセスを別々のコンポーネントとして配置すると、各コンポーネント内のデータや関数は全て(クラスのコンテンツのように)相互に意味的に関連することになる。この原則のため、コンポーネントはしばしば「モジュラー」であり「統一的」であると言われる。 システム全体として協調動作するため、コンポーネント群は「インタフェース」経由で相互にやりとりする。あるコンポーネントがシステムの他の部分にサービスを提供するとき、他のコンポーネントが利用可能なインタフェースを公開し、どうやって使えばよいかを示す。このインタフェースをコンポーネントの署名とみることができ、それを使う側はコンポーネントの内部(実装)を知る必要はない。この原則によりコンポーネントは「カプセル化」される。本記事にも掲載されているUMLのコンポーネント図ではロリポップ記号(白丸)でこのインタフェースを表現している。 一方コンポーネントは機能するのに他のコンポーネントを必要とすることがあり、サービスの提供に必要となる使用インタフェースも決まっている。UMLのコンポーネント図ではそれをソケット記号(半円)で表し、他のコンポーネントが公開しているインタフェース(ロリポップ)と接続する形で表現している。 コンポーネントの持つもう1つの重要な特性は「置換可能」だという点で、公開しているインタフェースが同一のコンポーネントを設計時または実行時に相互に置換可能である。インタフェースさえ同一であれば、システムの動作を損なうことなくコンポーネント単位でバージョンアップしたり実装を置換したりできる。 一般に、コンポーネントBがコンポーネントAを即座に置換できる場合、コンポーネントBはコンポーネントAが提供するものを全て提供していなければならず、さらにコンポーネントAが使っていた他の要素以外のものを必要としないようになっていなければならない。 ソフトウェアコンポーネントは、(クラスではなく)オブジェクトまたは複数のオブジェクトの集まりであることが多いが(オブジェクト指向プログラミングの場合)、インタフェース記述言語(IDL)に従ったバイナリやテキスト形式の場合もある。後者の場合、コンポーネントはコンピュータ内に他のコンポーネントとは独立した形で存在するだろう。 実行コンテキストやネットワークリンクを通してコンポーネントがアクセスされたり共有されたりする場合、コンポーネント自身やそのインタフェースをビットストリームに変換するための何らかのシリアライズ(またはマーシャリング)が行われる。 高品質のソフトウェアコンポーネントではが重要な特徴である。プログラマはソフトウェアコンポーネントを設計・実装する際に、様々なプログラムから利用できるよう心がける必要がある。ソフトウェアコンポーネントを再利用可能なものにするには多大な努力と注意深さを要する。再利用性を備えたコンポーネントは次のような要件を持たなければならない。 * 文書が完備されている。 * 完全に評価済みである。 * 頑健性 - 入力の妥当性を完全にチェックしている。 * 適切なエラーメッセージやリターンコードを返すことができる。 * 本来想定していない使われ方をする可能性を考慮している。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ソフトウェアコンポーネント」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Component-based software engineering 」があります。 スポンサード リンク
|