JP4901403B2 - ソフトウェア部品管理システム - Google Patents

ソフトウェア部品管理システム Download PDF

Info

Publication number
JP4901403B2
JP4901403B2 JP2006267289A JP2006267289A JP4901403B2 JP 4901403 B2 JP4901403 B2 JP 4901403B2 JP 2006267289 A JP2006267289 A JP 2006267289A JP 2006267289 A JP2006267289 A JP 2006267289A JP 4901403 B2 JP4901403 B2 JP 4901403B2
Authority
JP
Japan
Prior art keywords
component
software
information
software component
usage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006267289A
Other languages
English (en)
Other versions
JP2008090358A (ja
Inventor
信之 池田
佳宏 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006267289A priority Critical patent/JP4901403B2/ja
Publication of JP2008090358A publication Critical patent/JP2008090358A/ja
Application granted granted Critical
Publication of JP4901403B2 publication Critical patent/JP4901403B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア部品管理システムに係り、特に、各種のアプリケーションソフトウェアに「部品」として使用されるソフトウェア部品を管理するソフトウェア部品管理システムに関する。
今日、ソフトウェアの開発形態として、適宜の単位で分割されたソフトウェアを部品として取り扱い(以下、この分割されたソフトウェアをソフトウェア部品という)、開発済みのソフトウェア部品を複数組み合わせることによって、新たなソフトウェアを効率良く開発する形態が多く用いられている。
このような開発形態においては、ソフトウェア部品の正しい利用方法を管理者が利用者に的確に伝えることが必要となる。また、ソフトウェア部品を用いて開発をする際に、発生した不具合等に迅速に対応するためには、ソフトウェア部品の利用状況を利用者が正確に管理者に伝え、管理者が正確に把握することが重要である。
ここで、ソフトウェア部品の「管理者」とは、ソフトウェア部品の払い出し、利用状況の把握、バージョン管理、不具合や拡張についての情報収集とその通知、適用支援といった管理作業を行う作業者のことをいう。
また、ソフトウェア部品の「利用者」とは、ソフトウェア部品を利用してアプリケーションソフトウェアを開発する作業者のことをいう。アプリケーションソフトウェアを利用する立場のエンドユーザも、アプリケーションソフトウェアを利用することで間接的にソフトウェア部品を利用することになるが、ここではエンドユーザはソフトウェア部品の「利用者」には含まれないものとする。
特許文献1には、電子機器の保守管理を行うシステムに関する技術が開示されている。電子機器をネットワークを介して保守管理者側のサーバに接続し、電子機器の動作状態をリアルタイムで保守管理者側のサーバに送信することで、応答型の処理が可能な保守管理環境を構築するというものである。
特開2005−182445号公報
一般にソフトウェアを部品化し製品開発で利用する開発形態においては、次のような問題点が指摘されている。
第1の問題点は、ソフトウェア部品の利用方法習熟のためのコストが高くつく点である。ソフトウェア部品の利用の際に生じる不具合等では、ソフトウェア部品自体の品質に起因する場合よりも、むしろソフトウェア部品の利用方法の誤用に起因する場合の方が多いと言われている。ソフトウェア部品の正しい利用方法を利用者に習熟させ誤用を低減するためには適切な教育が必要となるが、この教育に要するコストが高い。また、利用者の中には外注業者等の一時的な利用者も多く、このため教育における費用対効果は必ずしも高くならない。
第2の問題点は、ソフトウェア部品の利用を支援するための人的リソース不足である。ソフトウェア部品の内容に関してはその開発者が最も熟知しているため、利用者はソフトウェア部品の開発者に支援を依頼する場合が多い。しかしながら、ソフトウェア部品の開発者のリソースは限られており、特に、ソフトウェア部品を多数の利用者が利用している場合や、利用者が遠隔地にいるような場合には、開発者が個々の問題点に個別に対応することが困難となる場合が多い。
第3の問題点は、ソフトウェア部品の不具合に関する情報を的確に把握するために多くの時間を費やす点である。従来からソフトウェア部品の不具合情報は、主に人間系による伝達手段によって行われている。ソフトウェア部品を利用した開発において不具合が発生した場合、管理者は、利用者からの文書や口頭による状況報告や、システムの動作ログ(動作記録)に基づいて不具合事象を解析し、対策を講じる。
しかしながら、管理者が必要とする情報を利用者が直ちに報告することや、動作ログを常に記録しておくことは必ずしも期待できない。このため、一般には、管理者は利用者から必要とする情報を再度聞き直し、或いは、再現テストを実施することが多い。このため、不具合の状況を正しく把握するまでに多大なコストを要することになる。また、利用者が開発の後期の段階まで誤った利用方法に気づかない場合もありうるが、このような場合誤用の発見が遅れれば遅れるほど多大な改修コストが発生することになる。
さらに、第4の問題点は、ソフトウェア部品の不具合情報が主に人間系による伝達手段によって行われているため、不具合やその対策に関する情報を、迅速にかつ総ての利用者に対して伝達することが困難な点にある。
特許文献1が開示する技術は、電子機器の動作状態を、ネットワークを介してリアルタイムで保守管理者側に伝達するものであるが、上述した問題点を解決する技術を提供するものではない。
本発明は、上記事情に鑑みてなされたもので、ソフトウェア部品の利用状況を迅速かつ的確に管理者側に伝達すると共に、ソフトウェア部品の利用において誤用があった場合には、その誤用を迅速に検出し、ソフトウェア部品を利用する開発の品質向上とコスト低減とを実現することができるソフトウェア部品管理システムを提供することを目的とする。
上記課題を解決するため、本発明に係るソフトウェア部品管理システムは、ソフトウェア部品の管理部門から払い出しを受けるソフトウェア部品であり1以上のソフトウェアモジュールを含むソフトウェア部品を組み込んでアプリケーションソフトウェアを開発する、或いは開発した前記アプリケーションソフトウェアを使用する部品利用端末と、前記部品利用端末と電気通信回線を介して接続され、少なくとも、前記ソフトウェアモジュールの利用状況を表す利用状況情報、前記ソフトウェア部品が実行されるコンピュータを識別する利用機器情報、前記ソフトウェア部品を識別する部品識別情報、及び前記ソフトウェアモジュールが実行される時刻を表す利用時刻情報を、前記部品利用端末から受信する部品管理サーバと、を備え、前記ソフトウェア部品は、前記ソフトウェアモジュールが実行されるときに、前記ソフトウェアモジュールの利用状況を表す利用状況情報を外部の部品管理サーバに送信する利用状況情報送信ステップと、前記ソフトウェアモジュールが実行されるときに、前記ソフトウェアモジュールが実行される時刻を表す利用時刻情報を前記部品管理サーバに送信する利用時刻情報送信ステップと、前記ソフトウェアモジュールが実行されるときに、前記ソフトウェア部品を識別する部品識別情報を前記部品管理サーバに送信する部品情報送信ステップと、前記ソフトウェアモジュールが実行されるときに、前記ソフトウェア部品が実行される前記部品利用端末を識別する利用機器情報を前記部品管理サーバに送信する利用機器情報送信ステップと、を前記部品利用端末に実行させ、前記部品管理サーバは、前記ソフトウェア部品が誤って利用されたときの利用状況情報、又は、正しく利用されたときの利用状況情報が予め記憶されているデータベースを具備し、前記部品利用端末から送信される利用状況情報と前記データベースに記憶されている前記誤って利用されたときの利用状況情報とが一致したとき、又は、記部品利用端末から送信される利用状況情報と前記データベースに記憶されている前記正しく利用されたときの利用状況情報とが一致しないときには、前記ソフトウェア部品が誤って利用されたと判定する、ことを特徴とする。
本発明に係るソフトウェア部品およびソフトウェア部品管理システムによれば、ソフトウェア部品の利用状況を迅速かつ的確に管理者側に伝達すると共に、ソフトウェア部品の利用において誤用があった場合には迅速に検出することによって、ソフトウェア部品を利用する開発の品質向上とコスト低減とを実現することができる。
本発明に係るソフトウェア部品及びソフトウェア部品管理システムの実施形態について添付図面を参照して説明する。
(1)ソフトウェア部品管理システム(第1の実施形態)
図1は、本発明の第1の実施形態に係るソフトウェア部品管理システム1のシステム構成例を示す図である。
ソフトウェア部品管理システム1は、部品利用端末2と部品管理サーバ3とを備えて構成され、部品利用端末2と部品管理サーバ3とは相互に電気通信回線4を介して接続されている。
部品管理サーバ3は主にソフトウェア部品40の管理部門に配置されるサーバであり、部品利用端末2は主にソフトウェア部品40の利用者側に配置される端末装置である。
ソフトウェア部品40は、所定の機能単位で分割されたプログラムであり、一般に汎用性を有するプログラムの機能単位のことをいう。装置における部品のように、ソフトウェア部品40を組み合わせることによって、或いはソフトウェア部品40の組合せにさらに新たなソフトウェアを付加することによって、特定の機能を有する大きなソフトウェア(アプリケーションソフトウェア)を構築することができる。
ソフトウェア部品40は、汎用性を有し部品として利用できる限りにおいては、種類や規模を限定するものではない。例えば、所定のデータ構造を有するデータベースへのアクセスプログラムや、フーリエ解析プログラム等の汎用性を有するプログラムはソフトウェア部品40となりうる。
ソフトウェア部品40の管理部門は、各種のソフトウェア部品40を保有し管理する部門であり、管理部門にいるソフトウェア部品40の管理者は、利用者側の要求に応じてソフトウェア部品を払い出す。
ソフトウェア部品40の管理者は、払い出したソフトウェア部品40の利用状況を把握し、ソフトウェア部品40の不具合情報や拡張性に関する情報を該当するソフトウェア部品40を使用している利用者に迅速に通知する責任を持っている。
また、払い出したソフトウェア部品40を組み込んだシステムが正常に動作しない場合には、その理由がソフトウェア部品40自体の問題であるのか否かを判断する必要がある。このため、ソフトウェア部品40の利用状況を的確に把握し、ソフトウェア部品40が誤用されている(誤った利用方法で使用されている)場合には、利用者にその旨を迅速に通知することも管理者の重要な役割である。
他方、ソフトウェア部品40の利用者は、ソフトウェア部品40の管理者からソフトウェア部品40の払い出しを受け、払い出されたソフトウェア部品40を組み込んで新たなアプリケーションソフトウェア10を開発する者である。
アプリケーションソフトウェア10の開発は部品利用端末2を用いて行われる。部品利用端末2の具体的な種類や形態は特に限定するものではなく、例えば汎用のパーソナルコンピュータである。
図1には、部品利用端末2で開発されるアプリケーションソフトウェア10の基本構成例も併せて図示している。
アプリケーションソフトウェア10は、管理者から払い出しを受けたソフトウェア部品40、ソフトウェア部品40を利用するためのプログラムである部品利用コード20、及び送信モジュール60を備えて構成される。
勿論、この構成以外に、利用者(アプリケーションソフトウェア10の開発者)が独自に開発したソフトウェア部品や、ソフトウェア部品を利用しない形態のソフトウェアを含んだ構成としてもよい。
ソフトウェア部品40は、所定の機能を実現する機能単位であり、例えば解析系のアプリケーションソフトウェア10の場合では、フーリエ変換機能を実現するソフトウェアユニットである。
これに対して、部品利用コード20はソフトウェア部品40を利用するソフトウェアユニットである。上記の例で言えば、フーリエ変換機能を実現するソフトウェア部品40に対して時系列データを入力し、フーリエ変換された周波数データをソフトウェア部品40から受け取り、適宜加工、編集等を行うソフトウェアユニットということになる。
本実施形態では、各ソフトウェア部品40が発信コード50を備えており、また、これとは別に送信モジュール60を備えている。これらの点が本発明の特徴であり、また従来技術と異なる点である。
発信コード50は、アプリケーションソフトウェア10の実行時にソフトウェア部品40が呼び出され実行されるときに、そのソフトウェア部品40の利用情報(ソフトウェア部品40がどのように利用されているかを示す情報)を部品管理サーバ3に対して自動的に発信するためのコード(プログラム)である。利用情報の具体的な内容については後述する。
利用情報は、一旦送信モジュール60に送られ、送信モジュール60から電気通信回線を介して部品管理サーバ3に送信されることになる。
送信モジュール60は、発信コード50から受け取った情報を部品管理サーバ3に送信する他、自ら取得する利用機器情報を部品管理サーバ3に送信するためのプログラムユニットである。
この送信モジュール60も管理者側から払い出しを受けるものである。従って、ソフトウェア部品40を第1のソフトウェア部品とするならば、送信モジュール60は第2のソフトウェア部品ということができる。
利用機器情報は、ソフトウェア部品40の利用情報の1つではあるが、具体的には、部品利用端末2を特定するための情報、例えばIPアドレスやMACアドレスのような情報である。即ち、ソフトウェア部品40の種類に依存せず、部品利用端末2で使用される総てのソフトウェア部品40に共通の情報である。そこで、共通の情報の取得は、共通のソフトウェアユニットである送信モジュール60にて行っている。
なお、ソフトウェア部品40が具備する発信コード50が、利用機器情報を取得する形態としてもよい。この場合には、送信モジュール60は、発信コード50から受け取ったソフトウェア部品40の利用情報をそのまま電気通信回線を介して部品管理サーバ3に送信する形態となる。
部品管理サーバ3は、図1に例示したように、受信部31、表示部32、利用情報記録部33、入力部34等を備えて構成される。受信部31によって受信されたソフトウェア部品40の利用情報は、表示部32によってオンラインでモニタすることが可能であり、また、一旦利用情報記録部33に記録した後に、オフラインでモニタし、或いは分析することもできる。
管理者側では、部品利用端末2から送信されてくる利用情報に基づいて、もし利用者が誤った方法でソフトウェア部品40を利用している場合にはタイムリーにそれを発見することが可能となる。この結果、利用者に対して、より適切な使用方法を提供することが可能となり、アプリケーションソフトウェア10の開発効率を向上させることができる。
(2)ソフトウェア部品の構成及び動作
図2は、ソフトウェア部品40の構成例を示す図である。ソフトウェア部品40は、1つ、或いは複数のソフトウェアモジュール41を備えている。
各ソフトウェアモジュール41は、メソッドの実装コード42と発信コード50とを備えている。
メソッドの実装コード42は、ソフトウェアモジュール41が本来実現すべき機能が記述されているプログラムのモジュールである。サブルーチン、或いは関数と呼ばれるプログラムと類似の概念であり、Java(登録商標)やC++等のオブジェクト指向言語ではメソッドと呼ばれることが多い。以下の記述では、このメソッドの実装コード42を単にメソッド42と呼ぶ場合もある。
各メソッドの実装コード42は、外部の部品利用コード20から呼出しを受けるメソッド呼出しインタフェース70を具備している。メソッド呼出しインタフェース70は、例えば、Java、C++、C#等といった言語の“インタフェース”の個々のメソッド定義によって実現されるものである。メソッドの実装コード42は部品利用コード20から、メソッド呼出しインタフェース70を介して起動されることになる。
また、メソッドの実装コード42はフック手段42aを具備している。フック手段42aは、メソッドの実装コード42が起動する際に、一旦メソッドの実装コード42の実行を一時中断し、発信コード50を起動させる仕組みである。一般にフックとは、入力やメッセージを横取りして独自処理を行うことをいう。本実施形態では、メソッドの実装コード42の処理主導権を発信コード50が一旦横取りして奪い、発信コード50の処理を起動させた後、メソッドの実装コード42を再開する処理形態のものである。
発信コード50と送信モジュール50は、ソフトウェア部品40の利用情報を生成し、部品管理サーバ3へ送信する機能を有する。ソフトウェア部品40の利用情報は、ソフトウェア部品40が正しく利用されているか否か、逆に言えば誤用されていないか否かを判断するために必要な情報である。
図3は、ソフトウェア部品40の利用情報の一例を示す図である。利用情報は大別すると、「利用機器情報」、「利用部品情報」、「利用状況情報」、および「利用時刻情報」からなっている。「利用状況情報」は、さらに、「メソッドID」、「引数状態ID」、および「変数状態ID」からなっている。
「利用機器情報」は、ソフトウェア部品40を利用する部品利用端末2を識別するための情報であり、部品利用端末2のIPアドレスやMACアドレス等である。「利用機器情報」はOS等の機能を利用して送信モジュール50が取得するが、前述したように発信コード50が取得してもよい。
「利用部品情報」は、部品利用端末2にて実行されるソフトウェア部品40を識別する情報であり、ソフトウェア部品40の名称やID(識別番号や識別記号)等で記述される。また、ソフトウェア部品40のバージョン情報も「利用部品情報」に含まれる。
「メソッドID」は、ソフトウェア部品40の内部で起動、実行されるメソッド42を特定するための情報であり、数字や文字列によって記述される。
「引数状態ID」は、外部の部品利用コード20からメソッド42に渡される引数に基づいて発信コード50で生成される情報であり、数字や文字列で記述される。
「変数状態ID」は、メソッド42の内部で使用される変数に基づいて発信コード50で生成される情報であり、同様に数字や文字列で記述される。
引数や変数のタイプや値が、予め想定されている範囲内で使用されているか否かを判断することによって、ソフトウェア部品40の誤用を検出することができる。「引数状態ID」、および「変数状態ID」は、この目的で生成される情報であり、具体的な生成方法については後述する。
「利用時刻情報」は、利用情報が生成された時刻を示す情報である。実際には、ソフトウェアモジュール41(メソッド42)が呼び出された時点で利用情報が生成されるため、メソッド42が起動された時刻でもある。「利用時刻情報」により、各メソッド42の呼出し順序や、メソッド間の呼出し間隔を特定することが可能となり、これらの情報によってもソフトウェア部品40の誤用を検出することができる。
上記のように構成されたソフトウェア部品40および送信モジュール60の動作について図4および図5を用いて説明する。
図4は、ソフトウェア部品40および送信モジュール60の構成図上に処理の流れを矢印で示した図である。また、図5は、ソフトウェア部品40および送信モジュール60の処理の流れを示すフローチャートである。なお、図4の矢印に付した丸で囲んだ数字は、図5のフローチャートにおけるステップ番号に対応している。
ソフトウェア部品40が実行されるときには、アプリケーションソフトウェア10が有する部品利用コード20から呼出しを受け、ソフトウェア部品40内のソフトウェアモジュール41が起動する。具体的には、メソッド呼出しインタフェース70を介してソフトウェアモジュール41内のメソッド42が起動される。また、メソッド42の起動に際しては、メソッド42の動作に必要となる外部変数(引数)が部品利用コード20からメソッド42に引き渡される(図5のステップST1)。
次に、ステップST2では、メソッド42が具備するフック手段42aにより、発信コード50を起動するとともに、部品利用コード20からメソッド42に引き渡された引数を発信コード50にも引き渡す。
発信コード50を起動後、メソッドの実装コード42を再開する(ステップST3)。
次のステップST4では、発信コード50が具備するプログラム、具体的には、「引数及び変数変換コード51」を用いて、部品利用コード20から引き渡された引数の中の特定の引数を、引数状態ID(引数状態識別情報)に変換する。変換に際しては、発信コード50が備えている「変換用データ52」を参照する。
同様に、メソッド42の内部で使用する内部変数(変数)も、引数及び変数変換コード51を用いて、変換用データ52を参照し、変数状態ID(変数状態識別情報)に変換する。
一般にソフトウェア部品40、或いはメソッド42では、種々の引数や変数を使用するが、これらの引数や変数は、ソフトウェア部品40を正しく利用している場合には、所定の範囲内の値や特定の値をとることが予めわかっている場合が多い。この特徴を利用してソフトウェア部品40が誤用されているか否かを判断することができる。
具体的には、変換用データ52に、ソフトウェア部品40が正しく利用されているときに引数や変数が取り得る範囲の閾値や特定の値(判定値)を予め記憶させておき、引数や変数と上記閾値や判定値とを比較判定し、その判定結果を簡単な数字や文字列で記述される引数状態IDや変数状態IDによって表わす。その結果、ソフトウェア部品40の誤用は、引数状態IDや変数状態IDの数字や文字列で表わされることになり、これらの引数状態IDや変数状態IDによってソフトウェア部品40の誤用を判定できる。
図6は、引数から変換された引数状態ID、及び変数から変換された変数状態IDの一例を示す図である。メソッドIDは、ソフトウェア部品40の中のメソッド42を特定するための識別記号であり、図6の例では「M1」となっている。
図6の例では、引数1は、部品利用コード20からメソッドID「M1」のメソッド42に引き渡される引数の1つであり、引数1を引数及び変数変換コード51と変換用データ52とを用いて変換した結果が引数状態ID「α」となる。同様に、引数2に対応する引数状態IDが「β」であり、引数Nに対応する引数状態IDが「ω」である。
引数1乃至引数Nは、メソッド42に引き渡される総ての引数である必要は無く、引き渡された総ての引数の中から誤用判定に必要であると判断された特定の引数である。
同様に、変数1は、メソッドID「M1」のメソッド42で使用される変数の1つであり、変数1を引数及び変数変換コード51と変換用データ52とを用いて変換した結果が変数状態ID「δ」となる。また、変数2に対応する変数状態IDが「π」であり、変数Nに対応する変数状態IDが「ε」である。
変数1乃至変数Nについても、メソッド42で使用される総ての変数である必要は無く、使用される変数の中から誤用判定に必要であると判断される特定の変数である。
図6の例示では、引数や変数を、「α」や「δ」等の文字列で表わされる引数状態IDや変数状態IDに変換しているが、文字列の他、単純な数字に変換する方法でも良い。
図7は、引数や変数から引数状態IDや変数状態IDに変換する方法をより具体的に説明するため、「引数及び変数変換コード51」の一例を示したものである。本例では、2つの引数と1つの変数を夫々、2つの引数状態IDと1つの変数状態IDに変換する処理となっている。行番号は説明の便宜上、「引数及び変数変換コード51」に追記したものである。
第1行では、ソフトウェア部品40(メソッド42)で使用する整数型の変数として、整数型の変数「GlobalVar」を定義し、第2行で、引数として、整数型の引数「param1」と、実数型の引数「param2」の2つの引数を定義している。
また、第3行には、変換された2つの引数状態IDと1つの変数状態IDを格納する変数として、整数型の変数配列「dataID[3]」を定義している。
第4行から第9行が、第1の引数「param1」を引数状態IDに変換し、「dataID[0]」に格納する処理を示している。変換に際しては、変換用データ52に記憶されている閾値を参照する。本例では、引数「param1」が第1の閾値「300」より小さい場合は、引数「param1」を数字「0」で表わされる引数状態IDに変換した後、「dataID[0]」に格納する。また、引数「param1」が第1の閾値「300」以上で第2の閾値「500」より小さい場合は、引数「param1」を数字「1」で表わされる引数状態IDに変換した後、「dataID[0]」に格納する。それ以外の場合(引数「param1」が第2の閾値「500」以上の場合)は、引数「param1」を数字「2」で表わされる引数状態IDに変換した後、「dataID[0]」に格納する。
第11行から第14行が、第2の引数「param2」を引数状態IDに変換し、「dataID[1]」に格納する処理を示している。変換に際しては、同様に変換用データ52に記憶されている閾値を参照する。本例では、引数「param2」が閾値「1.5」より小さい場合は、引数「param2」を数字「0」で表わされる引数状態IDに変換した後、「dataID[1]に格納し、それ以外の場合は、引数「param2」を数字「1」で表わされる引数状態IDに変換した後、「dataID[1]に格納している。
また、第16行から第19行が、変数「GlobalVar」を変数状態IDに変換し、「dataID[2]」に格納する処理を示している。変換に際しては、変換用データ52に記憶されている判定値を参照し、変数「GlobalVar」が判定値「1」に一致する場合は、変数「GlobalVar」を数字「0」で表される変数状態IDに変換した後、「dataID[2]に格納している。
このように、引数及び変数変換コード51では、ソフトウェア部品40(メソッド42)の誤用判定に必要と判断される特定の引数や変数まず選択し、選択した引数や変数を、変換用データ52に予め記憶されている閾値や判定値を参照して、簡潔な数字や文字列で表わされる「状態ID」(引数状態IDや変数状態ID)に分類している。
判定に用いられる閾値を、ソフトウェア部品40(メソッド42)が正しく利用されたときにとりうる範囲と、誤用されたときにとりうる範囲との境界を示す値とすることにより、変換された「状態ID」によって誤用の有無を容易に識別することができる。
同様に、判定に用いられる判定値をソフトウェア部品40が誤用されたときに示す値とすることにより、変換された「状態ID」によって誤用の有無を容易に識別することができる。
また、引数や変数の中には、ポインタ等のように単純な数値で表現できない種類のものもある。この場合には、ポインタ等を一旦変換用データ52を参照して「状態ID」に変換することで誤用の識別が容易となる。
さらに、「状態ID」は単純な整数型の数値(数字)や文字列で表現することができるため、部品利用端末2から部品管理サーバ3へ伝送するときに、実数型の数値やポインタ等を直接送る場合に比べると伝送容量が節約できる。
このようにして、図5のステップST4では、引数から引数状態IDへ、また、変数から変数状態IDへの変換が行われる。
次に、ステップST5では、発信コード50に予め保有されているメソッドID(メソッド42或いはソフトウェアモジュール41を識別するための情報)と、ステップST3で生成された(変換された)引数状態ID及び変数状態IDとを1つにまとめ、利用状況情報を作成する。
さらに、発信コード50は、部品利用端末2が有するOSの機能等を利用して現在時刻を取得し、これを利用時刻情報として作成する(ステップST6)。
また、発信コード50は、その内部に予め保有されている利用部品情報(ソフトウェア部品40を識別する情報)と、上記の利用状況情報および利用時刻情報を送信モジュール60に引き渡す(ステップST7)。
送信モジュール60は、OSの機能等を利用して、IPアドレスやMACアドレス等を取得し、部品利用端末2を識別する利用機器情報を生成する(ステップST8)。
また、送信モジュール60は、発信コード50から受けた利用状況情報、利用部品情報、及び利用時刻情報と、自ら生成した利用機器情報とを1つにまとめて利用情報とし、この利用情報を、電気通信回線4を介して、部品管理サーバ3に送信する(ステップST9)。
利用情報を生成しかつ送信する発信コード50は、管理部門の管理者側で予め作成され、ソフトウェア部品40に組み込まれた形態で利用者に払い出しが行われる。送信モジュール60も同様に管理者側で作成され、利用者に払い出される。従って、ソフトウェア部品40の利用者は、特別の作業をすることなく、またソフトウェア部品40の利用に際して特に意識することなく、ソフトウェア部品40の利用情報は自動生成され、自動的に部品管理サーバ3に送信される。
利用情報が部品管理サーバ3に送信されると、利用情報は部品管理サーバ3の利用情報記録部33に保存される。保存されたソフトウェア部品40の利用情報は、必要に応じて部品管理サーバ3の表示部32に表示され、ソフトウェア部品40の管理者はその利用状況を詳細に分析、評価することができる。
本実施形態に係るソフトウェア部品40、及びソフトウェア部品管理システム1によれば、ソフトウェア部品40の動的な利用状況を管理者が遠隔集中監視することができる。
このため、ソフトウェア部品40の利用者のスキルが比較的低く、誤った利用方法をした場合であっても遠隔地にて誤用を検出することができ、正しい利用方法をその利用者に対して的確に教育することができる。この結果、全体として教育コストを低減することができる。
例えば、ソフトウェア部品40を利用した開発を一時的に外注業者に依頼するような場合であって教育コストをあまりかけたくないような場合には、特に有効である。また、技術ノウハウの流出を防止するため、ソフトウェア部品40をブラックボックとして提供せざるを得ない場合(例えば、ソースコードの提供ではなく、バイナリコードとして提供する場合)においては特にソフトウェア部品40の誤用が発生しやすいが、このような場合であっても誤用の検出が容易である。
また、本実施形態に係るソフトウェア部品40、及びソフトウェア部品管理システム1によれば、ソフトウェア部品40の多数の利用者が遠隔地で作業する場合であっても、電気通信回線4を介して利用状況を集中的に監視することが可能であるため、個別に遠隔地に出向く手間や、或いは個々の利用者から逐一利用状況を確認する手間が省け、ソフトウェア部品40の利用を支援するための作業効率の大幅に向上する。
さらに、本実施形態に係るソフトウェア部品40、及びソフトウェア部品管理システム1によれば、ソフトウェア部品40の利用情報がほぼリアルタイムで管理者側に送られてくるため、ソフトウェア部品40に不具合があった場合でもその不具合情報を迅速にかつ集中的に把握することができる。またソフトウェア部品40の誤用に対する検査方法のノウハウも管理者側に集中させることができる。
このため、最新の不具合情報や新たに判明した誤用情報が管理者に蓄積され、不具合情報や誤用情報を熟知した管理者によって、迅速かつ的確な検査が可能となる。また、ソフトウェア部品40の利用情報は、部品管理サーバ3の利用情報記録部33に保存されるため、蓄積された過去の利用情報を容易に参照でき、より的確な検査が可能となる。
(3)ソフトウェア部品管理システム(第2の実施形態)
図8は、第2の実施形態に係るソフトウェア部品管理システム1aのシステム構成例を示す図である。第1の実施形態(図1)との相違点は、部品管理サーバ3aが、誤用パターンデータベース35と比較判定部36をさらに備えている点である。
図9は、第2の実施形態に係る部品管理サーバ3aの処理例を示すフローチャートである。
部品利用端末2から送信されてきた利用情報(利用状況情報)は、逐次利用情報記録部33に保存される(ステップST11)。
第2の実施形態に係る部品管理サーバ3aでは、ソフトウェア部品40の誤用のパターンを予めデータベースとして保存しておき、この誤用パターンと利用情報記録部33に保存されている利用情報(利用状況情報)とのマッチングを比較判定部36で行う(ステップST12)。
誤用パターンと利用情報とが一致した場合(ステップST13のYes)には、ソフトウェア部品40の利用において何らかの誤用が検出されたとして、ユーザ(ソフトウェア部品40の管理者9)にその旨を、例えば表示部32に表示して通知する。
図10は、誤用パターンデータベース35に保存される誤用パターンの一例を示す表である。表全体で1つの誤用パターンが記述されており、表の縦方向には、ソフトウェア部品40で実行されるメソッド42のメソッドIDが時系列の順に記載されている。
表の横方向には、各メソッドIDにおける引数状態ID、変数状態ID、最短間隔、及び最長間隔が記載されている。ここで、引数状態ID及び変数状態IDは、ソフトウェア部品40の利用において引数や変数の誤用があった場合に、所定の閾値や判定値によって分類され、変換されるべき数字や文字列に対応するものである。
また、誤用判定上、無視してもよい引数や変数に対しては、所謂ワイルドカードとして「*」を割り付けている。
ソフトウェア部品40の誤用を判断する上では、メソッド42の実行順序や実行間隔も重要である。このうち、実行順序については、誤用パターンのメソッドIDの記述順序によって規定される。また、メソッド42の呼出し間隔については、表の「最短間隔」と「最長間隔」によって規定される。例えば、メソッド「M1」の利用時刻情報と、次のメソッド「M2」の利用時刻情報との差(実行間隔)が最短間隔の「100」ミリ秒よりも長かった場合は、何らかの誤用が生じたと判断する。一方、メソッドID「Mx」が、1つ前のメソッドの実行後、「最長間隔」の「2000」ミリ秒を経過する前に実行された場合にも、何らかの誤用が発生したと判断する。
このように、誤用パターンは、ソフトウェア部品40で実行される各メソッド42の実行順序、メソッド42間の実行間隔、および各メソッド42で用いられる引数や変数(実際にはこれらが変換用データ52によって変換されたものと同じ引数状態IDや変数状態ID)によって構成されている。この誤用パターンと利用情報とを比較する(マッチングを行う)ことでソフトウェア部品40の誤用の有無を検出することができる。
ソフトウェア部品40の誤用のパターンが複数想定される場合には、対応する複数の誤用パターンを誤用パターンデータベースに保存させ、利用情報と複数の誤用パターンをそれぞれマッチングさせればよい。
なお、特に図示はしないが、誤用パターンに替えて、正常な動作パターンをデータベースに保存する形態でもよい。この場合、部品利用端末2から送られてくる利用情報と正常パターンとが不一致の場合に、ソフトウェア部品40の誤用があったと判定されることになる。
第2の実施形態に係るソフトウェア部品管理システム1aによれば、ソフトウェア部品40の誤用が自動的に検出されるため、管理者の監視負担が低減されると共に、迅速な誤用検出が可能となる。
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
本発明の第1の実施形態に係るソフトウェア部品管理システムのシステム構成例を示す図。 本発明の第1の実施形態に係るソフトウェア部品の構成例を示す図。 ソフトウェア部品から部品管理サーバに送信する利用情報の内容の一例を示す図。 利用情報の生成の流れの一例を示す説明図。 部品利用端末から部品管理サーバへ利用情報が送信されまでの処理の流れの一例を示すフローチャート。 引数および変数と、引数状態ID及び変数状態IDとの関係を説明する図。 引数状態ID及び変数状態IDを、引数及び変数変換コード及び変換用データを用いて生成する方法を具体例を用いて説明する図。 本発明の第2の実施形態に係るソフトウェア部品管理システムのシステム構成例を示す図。 第2の実施形態における部品管理サーバの動作例を示すフローチャート。 誤用パターンの一例を示す図。
符号の説明
1、1a ソフトウェア部品管理システム
2 部品利用端末
3 部品管理サーバ
4 電気通信回線
10 アプリケーションソフトウェア
20 部品利用コード
31 受信部
32 表示部
33 利用情報記録部
34 入力部
35 誤用パターンデータベース
36 比較判定部
40 ソフトウェア部品
41 ソフトウェアモジュール
42 メソッド(メソッドの実装コード)
42a フック手段
50 発信コード
51 引数及び変数変換コード
52 変換用データ
60 送信モジュール

Claims (9)

  1. ソフトウェア部品の管理部門から払い出しを受けるソフトウェア部品であり1以上のソフトウェアモジュールを含むソフトウェア部品を組み込んでアプリケーションソフトウェアを開発する、或いは開発した前記アプリケーションソフトウェアを使用する部品利用端末と、
    前記部品利用端末と電気通信回線を介して接続され、少なくとも、前記ソフトウェアモジュールの利用状況を表す利用状況情報、前記ソフトウェア部品が実行されるコンピュータを識別する利用機器情報、前記ソフトウェア部品を識別する部品識別情報、及び前記ソフトウェアモジュールが実行される時刻を表す利用時刻情報を、前記部品利用端末から受信する部品管理サーバと、
    を備え、
    前記ソフトウェア部品は、
    前記ソフトウェアモジュールが実行されるときに、前記ソフトウェアモジュールの利用状況を表す利用状況情報を外部の部品管理サーバに送信する利用状況情報送信ステップと、
    前記ソフトウェアモジュールが実行されるときに、前記ソフトウェアモジュールが実行される時刻を表す利用時刻情報を前記部品管理サーバに送信する利用時刻情報送信ステップと、
    前記ソフトウェアモジュールが実行されるときに、前記ソフトウェア部品を識別する部品識別情報を前記部品管理サーバに送信する部品情報送信ステップと、
    前記ソフトウェアモジュールが実行されるときに、前記ソフトウェア部品が実行される前記部品利用端末を識別する利用機器情報を前記部品管理サーバに送信する利用機器情報送信ステップと、
    を前記部品利用端末に実行させ、
    前記部品管理サーバは、
    前記ソフトウェア部品が誤って利用されたときの利用状況情報、又は、正しく利用されたときの利用状況情報が予め記憶されているデータベースを具備し、
    前記部品利用端末から送信される利用状況情報と前記データベースに記憶されている前記誤って利用されたときの利用状況情報とが一致したとき、又は、記部品利用端末から送信される利用状況情報と前記データベースに記憶されている前記正しく利用されたときの利用状況情報とが一致しないときには、前記ソフトウェア部品が誤って利用されたと判定する、
    ことを特徴とするソフトウェア部品管理システム。
  2. 前記部品識別情報は、前記ソフトウェア部品の名称、識別番号、及びバージョン情報の少なくとも1つを含むことを特徴とする請求項1に記載のソフトウェア部品管理システム。
  3. 前記利用機器情報は、前記部品利用端末のIPアドレス及びMACアドレスの少なくとも1つを含むことを特徴とする請求項1に記載のソフトウェア部品管理システム。
  4. 前記利用時刻情報は、前記部品利用端末が具備するオペレーティングシステムから取得される、ことを特徴とする請求項1に記載のソフトウェア部品管理システム。
  5. 前記利用状況情報は、前記ソフトウェアモジュールを特定するためのモジュール識別情報、前記ソフトウェアモジュールに渡される引数に基づいて生成される引数状態識別情報、及び前記ソフトウェアモジュールの内部で使用される変数に基づいて生成される変数状態識別情報を含む情報であり、
    前記モジュール識別情報、前記引数状態識別情報、および前記変数状態識別情報は、前記ソフトウェアモジュールにて生成される情報である、ことを特徴とする請求項1に記載のソフトウェア部品管理システム。
  6. 前記引数は、前記ソフトウェアモジュールに渡される引数の中から、前記ソフトウェア部品の動作監視のために、予め選択される特定の引数であり、
    前記引数状態識別情報は、前記ソフトウェア部品の動作監視のために、前記特定の引数から所定の閾値又は判定値に基づいて変換される数字又は文字列である、
    ことを特徴とする請求項5に記載のソフトウェア部品管理システム。
  7. 前記変数は、前記ソフトウェアモジュールの内部で使用される変数の中から、前記ソフトウェア部品の動作監視のために、予め選択される特定の変数であり、
    前記変数状態識別情報は、前記ソフトウェア部品の動作監視のために、前記特定の変数から所定の閾値又は判定値に基づいて変換される数字又は文字列である、
    ことを特徴とする請求項5に記載のソフトウェア部品管理システム。
  8. 前記部品管理サーバは、
    受信した前記利用状況情報、前記利用機器情報、前記部品識別情報、及び前記利用時刻情報を記憶する記憶部と、
    受信した前記利用状況情報、前記利用機器情報、前記部品識別情報、及び前記利用時刻情報を表示する表示部と、
    を備えたことを特徴とする請求項1に記載のソフトウェア部品管理システム。
  9. 前記部品利用端末から送信される利用状況情報及び前記データベースに記憶されている利用状況情報は、前記ソフトウェアモジュールを特定するためのモジュール識別情報、前記ソフトウェアモジュールに渡される引数に基づいて生成される引数状態識別情報、及び前記ソフトウェアモジュールの内部で使用される変数に基づいて生成される変数状態識別情報を含む情報であり、
    前記部品利用端末から送信される利用状況情報は、前記ソフトウェアモジュールにて生成される情報である、ことを特徴とする請求項1に記載のソフトウェア部品管理システム。
JP2006267289A 2006-09-29 2006-09-29 ソフトウェア部品管理システム Expired - Fee Related JP4901403B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006267289A JP4901403B2 (ja) 2006-09-29 2006-09-29 ソフトウェア部品管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006267289A JP4901403B2 (ja) 2006-09-29 2006-09-29 ソフトウェア部品管理システム

Publications (2)

Publication Number Publication Date
JP2008090358A JP2008090358A (ja) 2008-04-17
JP4901403B2 true JP4901403B2 (ja) 2012-03-21

Family

ID=39374488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006267289A Expired - Fee Related JP4901403B2 (ja) 2006-09-29 2006-09-29 ソフトウェア部品管理システム

Country Status (1)

Country Link
JP (1) JP4901403B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182445A (ja) * 2003-12-19 2005-07-07 Canon Software Inc 保守管理システムおよび電子機器および保守管理方法およびプログラムおよび記録媒体
JP2007156987A (ja) * 2005-12-07 2007-06-21 Toshiba Corp ソフトウェア部品およびソフトウェア部品管理システム

Also Published As

Publication number Publication date
JP2008090358A (ja) 2008-04-17

Similar Documents

Publication Publication Date Title
CN108108297B (zh) 自动化测试的方法和装置
CN107168844B (zh) 一种性能监控的方法及装置
US20080155346A1 (en) Network fault pattern analyzer
GB2440069A (en) Monitoring simulating device, method, and program
CN115033887A (zh) 开源组件安全治理方法、系统、电子设备及存储介质
JP2008090504A (ja) コンピュータ保守支援システム及び解析サーバ
CN114048099A (zh) Java应用监控方法及装置、存储介质及电子设备
JP2007156987A (ja) ソフトウェア部品およびソフトウェア部品管理システム
CN112911283A (zh) 智能电视测试方法及装置
JP4901403B2 (ja) ソフトウェア部品管理システム
CN109274533B (zh) 一种基于规则引擎的Web服务故障的定位装置和方法
JP2007207213A (ja) ワイヤレスデバイスのリアルタイム診断に適用する診断情報収集手法
JP2005266919A (ja) システム解析装置及び解析システム
CN115344490A (zh) 一种测试软件产品的方法、装置、存储介质及电子设备
CN115190293A (zh) 一种拨测方法、装置、电子设备及计算机存储介质
CN115185819A (zh) 系统测试方法、装置、设备及计算机可读存储介质
JP2007264921A (ja) 性能情報採取プログラム及び装置
CN112685252A (zh) 微服务监控方法、装置、设备和存储介质
JP2004192293A (ja) ソフトウェア検証支援ツール
KR20110135966A (ko) 복합 시스템의 개발 또는 사용을 지원하는 방법 및 장치, 그리고 그 지원 방법을 사용하는 프린터
JP2007052756A (ja) ワイヤレスデバイスの不具合診断に適用する学習型診断データベース
JP2009059204A (ja) コンピュータリモート制御システム
JP4021874B2 (ja) 障害管理装置
US10977210B2 (en) Methods for implementing an administration and testing tool
US11973664B2 (en) System and approach for remote room controller and device diagnostics and health monitoring

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090710

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111116

TRDD Decision of grant or rejection written
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20111201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111227

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees