/ ホームページ / 研究紹介 / 発表論文・技術報告・学位論文 / メンバー / ニュース / アクセス / |
一般の工業製品,たとえば車などは,多くの部品を組み合わせることにより作られます. 同様に,コンピュータ上で動作するソフトウェアも多くの部品から成り立っています. これをソフトウェア部品と呼びます.ソフトウェア開発の現場では, まずソフトウェア部品を作成し,部品同士を組み合わせることでソフトウェアを作り上げるということがよく行われます.
過去に作ったソフトウェア部品は,それぞれはある程度独立しており,次に作成するソフトウェアにそのまま,もしくは少しの変更で使える場合があります.このようにソフトウェア部品を再利用すれば,新しくソフトウェア部品を作成するコストが削減できます.また,以前のソフトウェアで正しく動作した実績のあるソフトウェア部品を利用することにより,ソフトウェア自体の品質も向上します.
このようにメリットの多いソフトウェア部品の再利用ですが, 実践するにはいくつかのハードルがあります. まず,新しく作るソフトウェアの機能などに応じて ソフトウェア部品を取得する必要がありますが, 過去に開発された多くのソフトウェア部品の中から 必要なものを見つけるには,非常に大きな労力を必要とします. そして,目的に応じたものを取得することができたとしても, その部品が本当につかえるものなのか分からない,また, 似たものが複数見つかった場合,どれを使えば良いか分からない, という問題があります.
肥後研究室では,ソフトウェア部品を管理し,再利用の支援を行うためのシステムとして ソフトウェア部品検索システムSPARSを提案しており, プログラミング言語Javaのソースコードを対象としたシステム SPARS-Jの開発を行っています.
SPARS-J は,以下のような特徴を持ったシステムです.
一般のソフトウェア部品検索システムには,ソフトウェア部品の 登録の際に部品に関する情報を関連付けて登録するものがありますが, そのような関連付けはデータベースの構築に労力を必要とするために現実的ではありません. SPARS-Jでは,ハードディスク上のソフトウェア部品の場所を指定するのみで 部品登録を行うことができるため,登録作業に手間がかかりません. また,10万部品以上の大量の部品を扱うことができるため, 多くのソフトウェア部品をもつ実際の現場にも導入することができ, 非常に実用的であるといえます.
ソフトウェア部品の間には利用する・されるという利用関係があり, SPARSでは部品間の利用関係に基づいた部品の順位付けを行います. この手法はコンポーネントランク法と呼ばれ, 多くの部品から利用される部品は重要であり,また,重要な部品から 利用される部品もまた重要であるという方針により,部品の重要度を評価します. この手法により重要と評価された部品は,利用例が多く, 再利用性の高い部品であると言えます.部品の検索時には, 重要度の高い部品を高く順位付けして表示を行うことにより, 利用者が再利用性の高い部品を取得しやすくなっています.
SPARS-Jは,キーワードにより部品ソースコードの全文検索を行います. このようなキーワード検索はWeb検索などでなじみのある検索方法であるため, 利用者は特別な説明を受けること無くシステムを使うことができます. また,一般のWebブラウザを通じて検索を行うことができ, 利用者ごとに検索用ソフトウェアをインストールする必要がありません.
SPARS-Jでは,Javaのパッケージ階層を表示する機能や,利用関係にある 部品の一覧を取得する機能があります.これにより,検索により得た部品と 関連のある部品を容易に取得することができ,再利用などに役立てることができます.
このように,SPARS-Jを利用することで部品の再利用を効率的に行うことができます. さらに,SPARS-Jは大規模なソフトウェア資産を登録し検索できるという面から, 開発されたソフトウェアそのものの管理にも利用されています.
SPARSを用いることで,再利用性の高い部品を検索することができますが, その利用方法,すなわち,どうすれば新しいソフトウェアで部品を使えるのか, ということが分からなければ部品の再利用はできません.検索された部品は 過去のソフトウェア中で利用されている部品であり,その利用方法は それらのソフトウェアを参照することで調べることができますが, 個々のソフトウェアの一部として埋め込まれた部品の 使用方法を調査することは,簡単ではありません. そこで,登録されたソフトウェア群から,ソフトウェア部品の利用方法に 関する本質的な部分のみを取り出し,利用者へ提示することが必要となっています.
また,SPARSは現在Javaのみが対象となっていますが, より広い分野に適用するために,他のプログラミング言語, たとえばC言語などへの対応が必要です.
SPARSのページをご覧下さい.
ホームページへ | © ソフトウェア工学講座 お問い合わせはこちらまで |