コンポーネント指向ソフトウェア工学グループ
Japanese | English
[深澤研究室]
[東研・深澤研合同ゼミ]
[J2EE ゼミ]
新着情報
概要: オブジェクト指向からコンポーネント指向へ
ソフトウェアを機能単位で部品に分解し、
得られたソフトウェア部品を組み合わせることによって開発を
進める方法をコンポーネント指向ソフトウェア開発と呼びます。
同開発方法は、
クラスライブラリやフレームワークに代表される
オブジェクト指向開発技術が効果的な再利用を実現できなかった反省に基づき、
それらの研究を継承・発展させる形で登場してきました。
また、
インターネットの普及により、
ソフトウェア部品を広範に再利用する環境が整備されたことも
同開発方法登場の大きな要因です。
コンポーネントの定義には様々なものが存在しますが、
本グループは
「特定のコンポーネント実現システムに従って再利用可能な関連を持ったオブジェ
クト指向クラス・インタフェース群が、
再配布可能かつソースコードが非開示な形でパッケージ化されたもの」
と定義します。
そのようなコンポーネントは単独で生成可能であり、
一定の内部隠蔽性を保ったままで、
提供する機能と部分構造の両方を再利用できます。
従来のソースコードを用いたプログラム再利用が
"White-Box型"再利用と呼ばれるのに対して、
このようなコンポーネントの再利用を
"Black-Box型"再利用と呼びます。
コンポーネントを開発・再利用する共通の実現システムとして、
ActiveX/COM/DCOM, JavaBeans, EJB, CORBA/CCM などが存在します。
コンポーネント指向開発は、
以下のような効果をもたらすと期待されています。
- 開発効率性: 既存のコンポーネントを再利用することで、
目的とするソフトウェアの開発期間を短縮し、
開発コストを削減することができます。
- 適応性:
構成する個々のコンポーネントの置換・修正作業によって、
ソフトウェア全体の要求仕様や運用環境の変化に対応することができます。
- 信頼性:
信頼性の高いコンポーネントを組み合わせることで、
ソフトウェア全体について一定以上の信頼性が得られます。
- 位置透過性:
インタフェースと実装の分離に基づき
コンポーネントを分散オブジェクトとすることで、
ネットワーク上におけるコンポーネント群の配備状況を意識する必要が減少されます。
コンポーネント技術に関する詳しい解説として、
以下の資料を参考にしてください。
- コンポーネント技術全般
- 深澤先生, オブジェクト指向再利用の真髄, 情報技術コンソーシアム Object工房, 2002
再利用・
フレームワーク・
コンポーネント・
最後に",
- 深澤先生,
コンポーネントウェアにおける方法論とツールとの協調関係,
早稲田大学理工ジャーナル, Vol.1, No.2, 1997
- 鷲崎, 深澤先生,
コンポーネントシステムとJava,
講義資料 (PDF, 1200KB), 2002
- 鷲崎, コンポーネントウェア技術の確立に関する調査研究資料, 調査研究資料, 2002
- 要素技術解説
- 鷲崎,JavaBeans
についての解説, 調査研究資料, 2003
- 鷲崎,コンポーネント指向開発環境についての解説, 調査研究資料, 2003
- 鷲崎,コ
ンポーネント流通についての解説, 調査研究資料, 2003
- 鷲崎,コ
ンポーネント技術関連組織についての解説, 調査研究資料, 2003
- 鷲崎,コ
ンポーネント品質測定についての解説, 調査研究資料, 2003
研究テーマ
コンポーネント指向開発は以下のような未解決の問題を抱えており、
本グループはそれらの解決を目指します。
- 合成技術
- 接続技術:
通常はコンポーネント群の間を埋めるグルーコード(糊)を作成する必要があり、
開発コストの増大とコンポーネントの開発意図にそぐわない問題を生みます。
そこで、
コンポーネントが実行時の環境を把握し、
他のコンポーネントとインタフェースの違いを許容しつつ
自動的に接続する機構が必要です。
- 複合化技術:
コンポーネントを組み合わせて新たなコンポーネントを作成し再利用することがあります。
そのような複合化にあたり、
複合化のルールと適切な支援環境が必要です。
- 分解技術
- 抽出技術:
既存のソフトウェア全体を再利用できなくとも、
再利用可能な部分を含んでいる可能性があります。
そのような部分を特定し、
コンポーネントとして抽出する作業を支援する機構が必要です。
- 再利用支援技術
- 検索技術:
効果的なコンポーネントの再利用を実現するために、
既存のコンポーネント群から要求に合致するコンポーネントを
見つけだすための検索機構が必要です。
- 試行技術:
開発者以外の第三者がコンポーネントを再利用するにあたり、
コンポーネントが要求に合致するかどうかを取得・購入する前に
判断可能とするための試行機構が必要です。
- 品質保証技術
- 品質測定技術:
コンポーネントは開発者以外の第三者によって再利用されることがあります。
組合わせ後のソフトウェア全体の品質を保証するために、
個々のコンポーネント単位で品質を測定する必要があります。
- テスト技術:
同じく、
組合わせ後のソフトウェア全体の品質を保証するために、
個々のコンポーネント単位で徹底的な単体テストを行う必要があります。
また、
コンポーネント指向開発技術は、
従来のオブジェクト指向技術・パターン技術・メトリクス技術・
テスト技術・開発プロセス技術と強く関連するため、
それらの技術動向の調査研究も合わせて行っています。
- 開発プロセス技術:
コンポーネントの再利用を前提とした要求獲得・分析作業、
再利用作業、および、後に再利用するためのコンポーネント化作業を全開発工程中に
組み込んだコンポーネント指向ソフトウェア開発プロセスが求められます。
将来、そのような開発プロセスを策定することを目的として、
従来の開発プロセスや科学的管理法等についての調査研究を行います。
- パターン技術:
パターンとは、
繰り返し発生する状況について、
解決すべき問題と調節すべき制約、および、
解法を特定の形式に従って文書化したものです。
将来、コンポーネント指向開発の普及に伴い、
同開発方法特有のパターン群の発見・集積・育成が行われることを想定し、
コンポーネント指向開発技術に限らないパターン全般についての
調査研究を行います。
主要プロジェクト: [CBSE
グループ研究文書一覧]
対外プロジェクト:
関連活動:
研究助成:
- 文部科学省科学研究費補助金・特定
領域研究・情報学: A01-13
「コンポーネント指向ソフトウェア開発統合化環境の実現に関する研究」(平成
13年度〜)
- 早稲田大学特定課題研究助成費: 2002A-876 「広域ネットワーク上におけるソフトウェアコンポーネント検索機構の実現に関す
る研究」(平成14年度)
スケジュール: 研究進行状況(深澤
研環境からのみ参照可能)
内部向け研究紹介: コンポーネン
ト班, パターン班 (深澤研環境からのみ参照可能)
関連リンク
企業:
- developerWorks:
Components, IBM Corp.
- Enterprise
JavaBeans, Sun Mircosystems
- JavaBeans, Sun Microsystems
-
COM Technologies, Microsoft Corp.
- DCOM: Distributed
Component Object Model , Microsoft Corp.
- CORBA, Object Management Group
- CCM:
CORBA Component Model, Object Management Group
-
Componentware, Services, InArcadia
- A Component Engineering Cornucopia, Gopalan Suresh Raj
学術機関:
- CBSD Project,
The University of Alabama (USA)
- COTS-Based Systems
(CBS) Initiative, SEI, Carnegie Mellon University (USA)
- ABLE Project,
Carnegie Mellon University (USA)
- Center for
Software Sciences, Northeastern University (USA)
- Software Engineering Group,
Johannes Kepler University Linz (Austria)
- Distributed Systems Research
Group, Charles University (Czech Republic)
- SEARCH Group,
University of Groningen (Netherlands)
- Software
Measurement Laboratory, University of Magdeburg (Germany)
- QUASAR Group,
Universidade Nova de Lisboa (Portugal)
- Object
Technology Laboratory, Soongsil University (Korea)
- CSE Center for Software
Engineering, University of Southern California (USA)
- ソフトウェア工学講座, 奈良先端科学技術大学院大学
- Network Information and Software Engineering Lab, 南山大学
- 知識情報処理学研究室,
大阪大学
- 東研究室, 早稲田大
学
- ソフトウェア工学研究室,
明治大学
- ソフトウェア基礎技術研究
室, 立命館大学
- ソフトウェアシス
テム, 愛媛大学
- 落水研究室,
北陸先端科学技術大学院大学
- ソフトウェア基礎講座,
北陸先端科学技術大学院大学
- 川合・玉井・山口(和紀)・
山口(泰)研究室, 東京大学
- 情報メディア学部 e-ラーニング, 稚内北星学園大学
- 本位田研究室,
国立情報学研究所
- ソフトウェア工学研究室,
日本工業大学
イベント:
ソフトウェア工学関連催事
照会先
内容に関する問い合わせは compo-group@fuka.info.waseda.ac.jp 宛にお願いします。
- 教授:
深澤 良彰 先生 (Ph.D) fukazawa@fuka.info.waseda.ac.jp
- 助手:
鷲崎 弘宜 washi@fuka.info.waseda.ac.jp
- M2:
安達 孝夫 adachi@fuka.info.waseda.ac.jp
- M2:
坂井 悠樹 yuhki@fuka.info.waseda.ac.jp
- B4:
星 大樹 hoshi@fuka.info.waseda.ac.jp
- 卒業生:
元村 五月 mai@fuka.info.waseda.ac.jp
- 卒業生:
山本 浩数 yama@fuka.info.waseda.ac.jp
- 卒業生:
佐藤 幸三 kozo@fuka.info.waseda.ac.jp
since Jun. 17th, 2001.
Hironori WASHIZAKI
Last modified: Date: 2003/4/12