JP4964352B2 - ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置 - Google Patents

ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置 Download PDF

Info

Publication number
JP4964352B2
JP4964352B2 JP2011539188A JP2011539188A JP4964352B2 JP 4964352 B2 JP4964352 B2 JP 4964352B2 JP 2011539188 A JP2011539188 A JP 2011539188A JP 2011539188 A JP2011539188 A JP 2011539188A JP 4964352 B2 JP4964352 B2 JP 4964352B2
Authority
JP
Japan
Prior art keywords
program
unit
function
elements
software library
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.)
Active
Application number
JP2011539188A
Other languages
English (en)
Other versions
JPWO2011055417A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP4964352B2 publication Critical patent/JP4964352B2/ja
Publication of JPWO2011055417A1 publication Critical patent/JPWO2011055417A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Description

この発明は、既存のソフトウェアライブラリからプログラム要素を抽出して所望の機能に特化したソフトウェアライブラリを再構築するソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置に関するものである。
特許文献1には、階層状カプセル化の概念を利用して、開発者が作成したオブジェクト・コンテナの階層構造における外部依存性を自動的に分離することで、オブジェクト・コンテナ及びこれらが他のコンテナ環境に含むオブジェクト間の関連を疎にして再利用性を高めることができるシステムが開示されている。
また、特許文献2に記載されるシステムでは、複数のシステムの制御に利用される複数の制御バンドルから、共通して利用される機能部を抽出し、この共通して利用される機能部が重複しないように、複数の制御バンドルを1つの新たな制御バンドルに再構成する。
特表2000−505919号公報 特開2004−227240号公報
特許文献1の技術を適用すれば、汎用のソフトウェアライブラリのプログラム要素間の関連を疎にしてプログラム要素を自由に組み合わせることができる。
しかしながら、開発者が、所望の機能を実現するプログラム要素を抽出して、これらを組み合わせる必要がある。
従って、ソフトウェアライブラリを再構築する操作が複雑である上、個々のプログラム要素に関する知識も必要であり、ソフトウェアライブラリを利用する様々な機器への適用が困難で汎用性がない。
また、特許文献2の技術を用いれば、複数のソフトウェアライブラリから共通する機能のプログラム要素を自動的に抽出することは可能であるが、利用者が所望する機能のプログラム要素を抽出することはできない。
このため、例えば、実行速度やメモリ利用効率を考慮しながら、所望の機能に特化したソフトウェアライブラリを再構築できない。
この発明は、上記の課題を解決するためになされたもので、汎用のソフトウェアライブラリからプログラム要素を自動的に抽出して所望の機能に特化したソフトウェアライブラリを再構築することができるソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置を得ることを目的とする。
この発明に係るソフトウェアライブラリ再構築装置は、複数種類のアプリケーションソフトウェアのそれぞれの処理で利用される複数の機能を実現する複数のプログラム要素が、関連するプログラム要素同士の階層に階層化されて登録された用ソフトウェアライブラリを用いて、複数の機能のうち、指示された機能に対応するプログラム要素を階層ごとに選び出して実行する機能実行部と、汎用ソフトウェアライブラリに登録された複数のプログラム要素のうち、指示された機能を実現するために機能実行部によって階層ごとに選び出されて実行されたプログラム要素を抽出するプログラム抽出部と、プログラム抽出部に抽出されたプログラム要素同士の関連性を検証するプログラム検証部と、プログラム検証部による検証結果を提示して、プログラム要素間で重複するプログラムロジック及び利用されない不要な情報の修正内容を受け付け、入力された修正内容に基づいてプログラム要素同士の関連性の最適化処理を行うプログラム最適化部と、プログラム最適化部によって最適化処理が行われたプログラム要素から、指示された機能に特化したソフトウェアライブラリを構築するプログラム再構築部とを備える。
この発明によれば、機能実行部が、複数の機能に対応する汎用のソフトウェアライブラリを用いて、複数の機能のうち、指示された機能を実行し、プログラム抽出部が、汎用のソフトウェアライブラリを構成するプログラム要素のうち、上記機能の実行で使用されたプログラム要素を抽出し、プログラム検証部が、プログラム抽出部に抽出されたプログラム要素のエラーを検証し、プログラム最適化部が、プログラム検証部にエラーなしと検証されたプログラム要素からなるプログラムの最適化を行い、プログラム再構築部が、プログラム最適化部によって最適化が行われたプログラムのプログラム要素を用いて、機能実行部に実行された機能に特化したソフトウェアライブラリを構築する。
このように構成することにより、汎用のソフトウェアライブラリからプログラム要素を自動的に抽出して所望の機能に特化したソフトウェアライブラリを再構築することから、実行速度やメモリ利用効率の向上を図ることができる。
この発明の実施の形態1によるソフトウェアライブラリ再構築装置の構成を示すブロック図である。 汎用ソフトウェアライブラリの一例を示す図である。 この発明によるソフトウェアライブラリ再構築装置が適用される情報処理装置のハードウェア構成を示すブロック図である。 実施の形態1のソフトウェアライブラリ再構築装置による動作の流れを示すフローチャートである。 図2の汎用ソフトウェアライブラリで使用されたプログラム要素を示す図である。 機能特化ソフトウェアライブラリの一例を示す図である。 ソフトウェア開発環境におけるソフトウェアライブラリ再構築処理の流れを示すフローチャートである。 機能選択用のウィザード画面の一例を示す図である。 実行条件設定用のウィザード画面の一例を示す図である。 条件設定用のウィザード画面の一例を示す図である。 実行結果確認用のウィザード画面の一例を示す図である。 失敗原因提示用のウィザード画面の一例を示す図である。 抽出したプログラム要素の表示画面(例1)を示す図である。 抽出したプログラム要素の表示画面(例2)を示す図である。 抽出したプログラム要素の表示画面(例3)を示す図である。 ソースコードエラー確認用のウィザード画面(エラーが無い場合)を示す図である。 ソースコードエラー確認用のウィザード画面(エラーがある場合)を示す図である。 この発明の実施の形態2によるナビゲーション装置の構成を示すブロック図である。 この発明の実施の形態3によるナビゲーション装置の構成を示すブロック図である。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図1は、この発明の実施の形態1によるソフトウェアライブラリ再構築装置の構成を示すブロック図である。図1において、実施の形態1によるソフトウェアライブラリ再構築装置1は、汎用ソフトウェアライブラリ2aから抽出したプログラム要素を用いて所望の機能に特化した機能特化ソフトウェアライブラリ2bを再構築する装置であり、機能実行部3及びソフトウェアライブラリ再構築機能部4を備える。なお、プログラム要素とは、そのプログラムで使用される関数及びその属性、これらを分類するクラス、パッケージ、メソッド等である。
汎用ソフトウェアライブラリ2aには、所定の機能を利用する様々なアプリケーションソフトウェアに対応して、上記所定の機能を実現する様々なプログラム要素が登録されているソフトウェアライブラリ2aである。
例えば、図2に示す汎用ソフトウェアライブラリ2aは、ナビゲーション処理におけるルート探索機能を実現する汎用ソフトウェアライブラリである。図2のように、ルート探索用に関するオブジェクトは、ルート探索における様々な機能を実現する関連オブジェクト(プログラム要素)からなる階層構造を有している。
ここで、ある種類のナビゲーションソフトウェアでは、ルート探索機能を実行する際、例えば、関連オブジェクト1,4及びこれらに関連した機能を実現する関連オブジェクト1−1,1−3,4−2が実行される。
一方、別の種類のナビゲーションソフトウェアでは、ルート探索機能を実行する際に、上記と別の関連オブジェクト1,4及びこれらに関連した機能を実現する関連オブジェクト1−2,4−1,4−3が実行されるものとする。
このように、汎用ソフトウェアライブラリ2aには、複数種類のアプリケーションソフトウェアに対する汎用性を持たせるために、ある種類のアプリケーションソフトウェアで実行されるプログラム要素群に加えて、他の種類のアプリケーションソフトウェアで実行されるプログラム要素についても登録されている。
また、汎用ソフトウェアライブラリ2aでは、所定の機能を実現する関連オブジェクト(プログラム要素)を各階層で選び出して実行する必要がある。
例えば、図2に示すルート探索機能を実現するため、関連オブジェクト1,4及びこれらに関連した機能を実現する関連オブジェクト1−1,1−3,4−2を実行する場合、汎用ソフトウェアライブラリ2aの第1の階層で関連オブジェクト1,4を選び出し、第2の階層で関連オブジェクト1−2,4−1,4−3が選び出す処理が行われる。
このため、汎用ソフトウェアライブラリ2aは、所定の機能を実現する様々なプログラム要素が格納される分、メモリの利用効率が悪く、さらに各階層で所望のプログラム要素を選び出す処理が必要であるため、実行速度の向上に限界がある。
機能特化ソフトウェアライブラリ2bは、所定の機能に特化したプログラム要素のみに再構築されたソフトウェアライブラリである。例えば、ソフトウェアライブラリ再構築装置1を適用したナビゲーション装置が、ルート探索において、図2に示した関連オブジェクト1,4及びこれらに関連した機能を実現する関連オブジェクト1−1,1−3,4−2を実行する場合、機能特化ソフトウェアライブラリ2bは、関連オブジェクト1,4,1−1,1−3,4−2のみに再構築される。
機能実行部3は、ソフトウェアライブラリ再構築装置1を適用した情報処理装置にて、所定の機能を利用するアプリケーションソフトウェアが実行されると、汎用ソフトウェアライブラリ2aに格納されたプログラム要素のうち、上記所定の機能を実現するプログラム要素を実行する、又は、ソフトウェアライブラリ再構築機能部4により再構築された機能特化ソフトウェアライブラリ2bのプログラム要素を実行する構成部である。例えば、ナビゲーションソフトウェアにおける各機能を実現するプログラムモジュールを上記情報処理装置が実行することにより具現化される。
ソフトウェアライブラリ再構築機能部4は、汎用ソフトウェアライブラリ2aから取得したプログラム要素を用いて、所望の機能に特化した機能特化ソフトウェアライブラリ2bを再構築する構成部であって、プログラム抽出部5、プログラム検証部6、プログラム最適化部7及びプログラム再構築部8を備える。
プログラム抽出部5は、機能実行部3が所定の機能を実行した際に、汎用ソフトウェアライブラリ2aに格納されるプログラム要素のうち、機能実行部3が使用したプログラム要素を抽出する構成部である。例えば、プログラム抽出部5は、機能実行部3がある機能を実行した際に、機能実行部3により使用された汎用ソフトウェアライブラリ2aの関連オブジェクト(プログラム要素)の階層中のパスをモニタして記憶しておき、このパス上にある関連オブジェクトを汎用ソフトウェアライブラリ2aから抽出する。プログラム抽出部5における所定の機能を実行した時に使用した汎用ソフトウェアライブラリ2aから機能実行部3で使用した関連オブジェクトの抽出は、所定の機能を実行した際に使用した処理データが格納されたプログラム要素又は前記処理データを元に処理実行に使用されたプログラム要素をモニタすることにより実施する。
プログラム検証部6は、プログラム抽出部5により抽出されたプログラム要素及びプログラム要素同士の関連性を検証する構成部である。例えば、抽出されたプログラム要素のソースコードにおけるエラーの有無を検証したり、プログラム要素同士を比較して同一のプログラムロジックを特定する。抽出したプログラム要素の検証は、前記抽出されたプログラム要素が、当プログラム要素の仕様を規定するプログラム言語仕様に適合しているかを元に判断する。例えば、不正コードが混入している場合は、エラーコードと判断する。また、下記プログラム最適化部7で実行するプログラム最適化に関して、推奨するプログラム記述方式について規定された仕様と前記プログラム要素とを照合し、例えばプログラム要素の二重定義や可読性の向上といったプログラム管理面からの検証を実施する。
プログラム最適化部7は、プログラム検証部6の検証結果に基づいて、実行速度の向上や処理の効率化などの観点から、プログラム抽出部5によって抽出されたプログラム要素の関連性や処理手続きを最適化する構成部である。この最適化処理は、プログラム要素の二重定義や可読性の向上といったプログラム要素管理面、実行速度やメモリ使用量などの性能面から実施する。プログラム要素管理面からの最適化は、上記プログラム検証部6で実施されたプログラム管理面からの検証結果を元に、プログラム要素の最適化を半自動的に実行することが可能である。一方性能面からの最適化は、人的判断に基づくため、人的要素を介して実施する、例えば、プログラムの重複記述を非推奨としているプログラム開発において、複数のプログラム要素に重複して存在する同一のプログラムロジックが特定されている場合、最適化処理部7は、これらのプログラム要素から引用されるプログラムロジックとして、当該プログラムロジックを一元化したプログラムに自動的に変更する。
プログラム再構築部8は、プログラム検証部6及びプログラム最適化部7による処理を経て得られた上記所定の機能に関するプログラム要素を用いて、当該所定の機能に特化した機能特化ソフトウェアライブラリ2bを構築する構成部である。機能特化ソフトウェアライブラリ2bが構築されると、機能実行部3は、当該機能特化ソフトウェアライブラリ2bを使用して上記所定の機能を実行する。
図3は、この発明によるソフトウェアライブラリ再構築装置が適用される情報処理装置のハードウェア構成を示すブロック図である。この情報処理装置としては、例えば、カーナビゲーション装置や、携帯電話、PDA(Personal Digital Assistant)などの移動体情報端末が挙げられる。
図3において、記憶装置2には、この発明の趣旨に合致したソフトウェアライブラリ再構築用の処理プログラム、この情報処理装置で実行されるカーナビゲーションなどの処理を実現するためのアプリケーションソフトウェア、汎用ソフトウェアライブラリ2a、機能特化ソフトウェアライブラリ2b、上記アプリケーションソフトウェアによる処理で利用されるデータ(例えば、地図データ)が格納される。
なお、記憶装置2としては、ハードディスク装置(HDD)、CDやDVDなどの記憶媒体及びそのドライブ装置、USB(Universal Serial Bus)メモリなどが挙げられる。
上記ソフトウェアライブラリ再構築用の処理プログラムや、上記アプリケーションソフトウェアのプログラム、ソフトウェアライブラリ2a,2bは、記憶装置2からメモリ10上に展開され、CPU9に実行される。CPU9が、上記ソフトウェアライブラリ再構築用の処理プログラムを実行することにより、図1で示した機能実行部3、プログラム抽出部5、プログラム検証部6、プログラム最適化部7及びプログラム再構築部8が、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
CPU9による演算結果は、バスを介して表示装置11へ出力されて画面表示される。表示装置11は、例えば、カーナビゲーションにおける地図表示などを実行する。この表示装置11としては、液晶ディスプレイやプラズマディスプレイが挙げられる。
通信装置12は、装置外部と通信を行う装置であり、ナビゲーション装置の場合には、GPS電波やFM電波を受信する。
入力装置13は、装置外部から操作入力するための装置であり、キーボードや操作スイッチ、表示装置11と組み合わされたタッチパネルなどにより実現される。ナビゲーション装置の場合、ルート探索の条件は、この入力装置13を用いて入力される。
なお、図3では、上記ソフトウェアライブラリ再構築用の処理プログラム、アプリケーションソフトウェア、ソフトウェアライブラリ2a,2b、上記アプリケーションソフトウェアによる処理で利用されるデータが、記憶装置2に全て格納される場合を示したが、これらソフトウェアのそれぞれ又はこれらの少なくとも1つが、CPU9により記憶内容が読み取り可能な別個の記憶装置に記憶されても構わない。
次に動作について説明する。
図4は、実施の形態1のソフトウェアライブラリ再構築装置による動作の流れを示すフローチャートであり、この図に沿ってソフトウェアライブラリの再構築の詳細を述べる。
先ず、既存の汎用ソフトウェアライブラリ2aから、実行したい機能を選択する(ステップST1)。例えば、表示装置11に機能選択用画面を表示し、入力装置13を用いて機能を対話的に選択させるGUI(Graphical User Interface)を提供してもよい。
機能の選択は、複数同時に行ってもよい。このとき、選択された複数の機能のそれぞれに特化した複数の機能特化ソフトウェアライブラリ2bを構築する場合と、選択された複数の機能の全てに特化された1つの機能特化ソフトウェアライブラリ2bを構築する場合を、上記機能選択画面で選択させる。
また、機能選択用画面で機能を選択するのではなく、機能実行部3によってある機能の汎用ソフトウェアライブラリ2aが利用されるアプリケーションソフトウェアが起動した時点で当該機能が選択されたものとしてもよい。例えば、ナビゲーションソフトウェアを実行中にルート探索が指示されると、ルート探索機能が選択されたものとする。
次に、機能実行部3が、ステップST1において選択された機能を実行する(ステップST2)。なお、機能の実行条件は、記憶装置2に予め登録しておく。機能実行部3は、記憶装置2からメモリ10に展開された上記実行条件に基づいて、当該機能を実行する。例えば、ルート探索機能であれば、ルート探索で使用されるデータベースや、ルート探索のアルゴリズムを実行条件として設定する。
機能実行部3が機能を実行する際、プログラム抽出部5は、汎用ソフトウェアライブラリ2aから、機能実行部3に使用されたプログラム要素を順次抽出する(ステップST3)。例えば、クラス名など、プログラム要素を識別できる情報を用いて、プログラム要素を抽出する。
図5は、図2の汎用ソフトウェアライブラリ2aのプログラム要素うち、機能実行部3に使用されたプログラム要素を特定した場合を示す図である。図5で太枠、太線を用いて示すように、プログラム抽出部5が、機能実行部3に使用された関連オブジェクト(プログラム要素)を抽出することにより、汎用ソフトウェアライブラリ2aにおいて、機能実行部3に順次使用された関連オブジェクト(プログラム要素)のパスが特定される。プログラム抽出部5により実行順に抽出されたプログラム要素は、プログラム検証部6へ出力される。
続いて、プログラム検証部6は、抽出箇所のプログラム要素におけるプログラムのソースコードのエラーの有無を検証するとともに、プログラム要素同士を比較してプログラム要素間に存在する同一のプログラムロジックや使用されない属性、関数を特定する(ステップST4)。
この後、プログラム最適化部7は、プログラム検証部6による検証の結果に基づいて、抽出箇所のプログラム要素の関連性や処理手続きを最適化する(ステップST5)。例えば、抽出箇所のプログラム要素からなるプログラムの冗長性を除くために、プログラム検証部6に特定された不使用の属性や関数を削除し、重複したプログラムロジックを一元化したプログラムに変更する。
プログラム再構築部8は、プログラム最適化部7により最適化されたプログラム要素を用いて、ステップST1にて選択された機能に特化した機能特化ソフトウェアライブラリ2bを構築する(ステップST6)。
図6は、機能特化ソフトウェアライブラリの一例を示す図であり、図5においてルート探索機能に使用するものとして特定された関連オブジェクト(プログラム要素)を用いた機能特化ソフトウェアライブラリ2bを示している。図6に示すように、ルート探索機能に特化したソフトウェアライブラリに再構築することで、データサイズが小さくなり、メモリ効率を向上できる。さらに、使用すべきオブジェクト(プログラム要素)が限定されるので、処理速度の向上も可能である。
上述では、ソフトウェアライブラリ再構築装置が、予め設定された実行条件を用いて、選択された機能の実行から、この機能に特化したソフトウェアライブラリの構築までをバッチ処理する場合を示した。以降では、ソフトウェアライブラリ再構築装置がウィザード形式で対話的に処理を実行する場合について説明する。
図7は、ソフトウェア開発環境におけるソフトウェアライブラリ再構築処理の流れを示すフローチャートであり、ウィザード形式で処理を実行する場合について示している。ソフトウェア開発環境には、任意の機能をプラグインとしてアドオンする機能があり、当ウィザードは、このように既存ソフトウェア開発環境に対する付加機能として利用することも可能である。
先ず、機能実行部3が、例えば図8に示すような機能選択用のウィザード画面を表示装置11に表示して開発者(利用者)に問い合わせ、入力装置13を用いて機能を対話的に選択させる。機能選択用のウィザード画面は、図8のように、複数の機能を同時に選択できるように選択候補となる機能の一覧を表示する。
また、機能選択用のウィザード画面には、選択された複数の機能のそれぞれに特化した複数の機能特化ソフトウェアライブラリ2bを構築する場合(それぞれ出力)と、選択された複数の機能の全てに特化した1つの機能特化ソフトウェアライブラリ2bを構築する場合(まとめて出力)と、のいずれかを選択する設定欄を設ける。
機能選択用のウィザード画面を基に機能が選択されると(ステップST1a)、プログラム抽出部5は、例えば図9に示すような、選択された機能の実行条件を設定するための実行条件設定用のウィザード画面を表示装置11に表示して開発者に問い合わせる。実行条件設定用のウィザード画面には、図9のように、選択された機能を確認し、実行条件をそれぞれ設定するように、選択された機能の一覧と各機能に対する条件の設定ボタンを設ける。
入力装置13を用いて実行条件設定用のウィザード画面における設定ボタンが押下されると、機能実行部3は、例えば図10に示すような、実行条件の詳細内容を設定するための条件設定用のウィザード画面を表示装置11に表示して開発者に問い合わせ、入力装置13を用いて、実行条件内容を対話的に設定させる。図10の例は、図9に示した機能Aの設定ボタンが押下された場合を示しており、実行条件として、データベースとアルゴリズムが設定できる。開発者は、この条件設定用のウィザード画面を基に、入力装置13を用いて実行条件を設定する。選択された機能に対して実行条件が設定されると、機能実行部3は、当該機能を当該実行条件で実行する。ここまでの処理が、ステップST2a及びステップST2a−1に相当する。
プログラム抽出部5は、機能実行部3が機能を実行する間、汎用ソフトウェアライブラリ2aから、機能実行部3に使用されたプログラム要素を自動的に順次抽出する。
また、機能実行部3は、例えば、図11に示すような機能の実行に成功したか否かを示す実行結果確認用のウィザード画面を、表示装置11に表示する(ステップST3a)。この実行結果確認用のウィザード画面には、図11のように、各機能ごとの実行の成否とその原因の詳細を示すための詳細ボタンを設ける。
図11において、実行に失敗した機能Cの詳細ボタンが押下されると、機能実行部3は、例えば、図12に示すような、失敗原因提示用のウィザード画面を表示装置11に表示する。このウィザード画面でログ表示ボタンが押下されると、機能実行部3は、当該機能の実行ログを表示装置11に表示する。
また、設定ボタンが押下されると、機能実行部3は、図10に示したような実行条件の詳細内容を設定するための条件設定用のウィザード画面を表示装置11に表示し、開発者に実行条件を再設定させる(ステップST3a−1)。
この後、再実行ボタンが押下されると、機能実行部3は、失敗した機能を再設定された実行条件で実行し、ステップST3aの処理に戻る。
機能実行部3は、図11において実行に成功した機能Aの詳細ボタンが押下されると、プログラム抽出部5によって抽出された機能Aのプログラム要素を、表示装置11に表示する(ステップST3a−2)。例えば、プログラム要素は、図13に示すように機能実行部3が実行した順序が分かるように表示してもよい。
また、図14に示すように、実行順に示したプログラム要素を、プログラム記述言語であるUML(Unfiled Modeling Language)で表現してもよい(例えば、クラス図)。
さらに、図15に示すように、実行順にプログラム要素を表示する実行順序表示エリアと、プログラム要素のソースコードを表示するソースコード表示エリアを設けてもよい。機能実行部3は、入力装置13を用いて実行順序表示エリアでプログラム要素が選択されると、選択されたプログラム要素に対応するソースコードをソースコード表示エリアに表示する。
機能実行部3は、選択された機能の実行が全て成功するまで、図11に斜線で示すように、実行結果確認用のウィザード画面の「次へ」ボタンを選択不可の状態にする。「次へ」ボタンが押下されると、プログラム検証部6が起動して、プログラム抽出部5により抽出されたプログラム要素のソースコードのエラーチェックが実行され、プログラム要素同士を比較することにより、プログラム要素間に存在する同一のプログラムロジックや使用されない属性、関数が特定される(ステップST3a−3)。
プログラム検証部6は、プログラム要素のソースコードを検証してエラーがなかった場合、例えば、図16に示すようなソースコードエラー確認用のウィザード画面を表示装置11に表示する。エラーがなかった場合におけるソースコードエラー確認用のウィザード画面には、図16のように、ソースコードを修正するための修正ボタンを設ける。
入力装置13を用いて修正ボタンが押下されると、プログラム最適化部7が起動して、ソースコードの修正画面を表示装置11に表示して開発者に問い合わせ、入力装置13を用いて機能を対話的にソースコードを修正するための情報を入力させる。
このとき、プログラム最適化部7は、プログラム検証部6によって特定された重複するプログラムロジックや、使用されない属性、関数を上記修正画面に表示し、開発者が入力した修正内容に従って、ソースコードを修正する(ステップST4a−1)。ソースコードの修正が完了すると、プログラム検証部6が、再びエラーチェックを行う。
一方、プログラム要素のソースコードを検証してエラーがある場合、プログラム検証部6は、例えば、図17に示すようなソースコードエラー確認用のウィザード画面を表示装置11に表示して開発者に問い合わせ、入力装置13を用いて機能を対話的にソースコードの修正内容を入力させる(ステップST4a−2)。入力装置13を用いて修正ボタンが押下された際の処理は、上述した図16の処理と同様である。プログラム要素のソースコードにエラーがなくなるまで、プログラム検証部6及びプログラム最適化部7による上記処理が繰り返される。
プログラム要素のソースコードにエラーがなくなり、修正によりプログラムが最適化されると、プログラム再構築部8が起動して、ソフトウェアライブラリを再構築するか否かを問い合わせるウィザード画面を表示装置11に表示して開発者に問い合わせ、入力装置13を用いて機能を対話的に再構築の可否を選択させる(ステップST5a)。ここで、再構築しない旨が選択されると、処理を終了する。
再構築する旨が選択されると、プログラム再構築部8は、再構築した後のソフトウェアライブラリを識別するためのライブラリ名設定用のウィザード画面を表示装置11に表示する(ステップST6a)。図8において、選択された複数の機能のそれぞれに特化した複数の機能特化ソフトウェアライブラリ2bを構築(それぞれ出力)が選択されている場合には、それぞれに対応するライブラリ名を設定する。
プログラム再構築部8は、ライブラリ名が設定されると、プログラム最適化部7により最適化されたプログラム要素を用いて、選択された機能に特化した機能特化ソフトウェアライブラリ2bを構築する。この後、プログラム再構築部8は、再構築した旨を開発者に確認させる確認用のウィザード画面を表示装置11に表示して(ステップST7a)、ライブラリ名に対応付けて機能特化ソフトウェアライブラリ2bを記憶装置2に格納し、処理を終了する。
以上のように、この実施の形態1によれば、機能実行部3が、複数の機能に対応する汎用のソフトウェアライブラリ2aを用いて、複数の機能のうち、指示された機能を実行し、プログラム抽出部5が、汎用のソフトウェアライブラリ2aを構成するプログラム要素のうち、上記機能の実行で使用されたプログラム要素を抽出し、プログラム検証部6が、プログラム抽出部5に抽出されたプログラム要素のエラーを検証し、プログラム最適化部7が、プログラム検証部6にエラーなしと検証されたプログラム要素からなるプログラムの最適化を行い、プログラム再構築部8が、プログラム最適化部7によって最適化が行われたプログラムのプログラム要素を用いて、機能実行部3に実行された機能に特化したソフトウェアライブラリ2bを構築する。このように構成することで、汎用のソフトウェアライブラリ2aからプログラム要素を自動的に抽出して所望の機能に特化したソフトウェアライブラリ2bを再構築することができる。これにより、実行速度やメモリ利用効率の向上を図れるソフトウェアライブラリを提供することが可能である。
また、この実施の形態1によれば、機能実行部3、プログラム検証部6、プログラム最適化部7及びプログラム再構築部8が、ウィザード形式で対話的に自身の処理に必要な情報を利用者(開発者)に問い合わせ、利用者から入力された自身の処理に必要な情報に従って、自身の処理を実行する。このようにすることで、特に、ソフトウェアの開発環境において、装置側からの誘導に従って、ソフトウェアライブラリの再構築処理を行うことができ、処理の利便性を向上させることができる。
さらに、この実施の形態1によれば、機能実行部3、プログラム検証部6、プログラム最適化部7及びプログラム再構築部8が、予め設定された自身の処理に必要な情報に従って、自身の処理を自動的に実行する。このようにすることで、対話的な情報のやり取りが処理を煩雑にする可能性がある実機の搭載環境において、ソフトウェアライブラリ再構築装置の利便性を向上させることができる。
なお、上記実施の形態1では、汎用ソフトウェアライブラリ2aから抽出したプログラム要素を用いて、機能特化ソフトウェアライブラリ2bを再構築する例を示したが、機能特化ソフトウェアライブラリ2bから抽出したプログラム要素を用いて、利用者に指示された実行条件で当該機能を実行することにより、利用者に指示された実行条件で、さらに当該機能が限定された機能特化ソフトウェアライブラリ2bを再構築しても構わない。
このようにすることで、さらに実行速度やメモリ利用効率の向上を図ることができる。
実施の形態2.
図18は、この発明の実施の形態2によるナビゲーション装置の構成を示すブロック図であり、この発明のソフトウェアライブラリ再構築装置をカーナビゲーション装置に適用した構成を示している。図18に示すナビ機能実行部3aは、図1の機能実行部3に相当する構成部であり、カーナビゲーション機能を実行する。なお、図18では、カーナビゲーション機能としてルート探索を例に挙げており、ルート探索実行部3b以外の構成部の記載を省略している。
地図データベース(地図DB)14は、地図データを格納する記憶部であり、例えば、図2中の記憶装置に構築される。位置検出部15は、ナビゲーション装置を搭載した車両の位置を検出する構成部であり、例えば、GPS信号や、車速センサ、ジャイロセンサ等のセンサ群の測定値とマップマッチングなどを用いて自車の現在位置を求める。図18において、図1及び図2と同一の構成部には同一符号を付して説明を省略する。
次に動作について説明する。
ここでは、カーナビゲーション機能のうちのルート探索を実行して、ルート探索機能に特化した機能特化ソフトウェアライブラリ2bを再構築する場合を述べる。
先ず、ナビ機能実行部3aに実行されるカーナビゲーションソフトウェアを起動して、入力装置13を用いて目的地を入力し、ルート探索を指示する。
これにより、ルート探索実行部3bが、汎用ソフトウェアライブラリ2aから取得したルート探索機能に必要なプログラム要素と、地図DB14から取得したルート探索に必要な地図データと、位置検出部15から取得した自車両の位置情報を用いて、目的地までのルート探索を実行する。
プログラム抽出部5は、ルート探索実行部3bがルート探索を実行すると、ルート探索機能が選択されたものとして、汎用ソフトウェアライブラリ2aから、ルート探索実行部3bに使用されたプログラム要素を順次抽出する。プログラム抽出部5によって実行順に抽出されたプログラム要素は、プログラム検証部6へ出力される。
プログラム検証部6は、抽出箇所のプログラム要素におけるプログラムのソースコードのエラーの有無を検証するとともに、プログラム要素同士を比較してプログラム要素間に存在する同一のプログラムロジックや使用されない属性、関数を特定する。
この後、プログラム最適化部7は、プログラム検証部6による検証の結果に基づいて、抽出箇所のプログラム要素の関連性や処理手続きを最適化する。
最後に、プログラム再構築部8は、プログラム最適化部7により最適化されたプログラム要素を用いて、ルート探索機能に特化した機能特化ソフトウェアライブラリ2bを構築する。
ルート探索機能に特化したライブラリを再構築すると、プログラム再構築部8は、機能特化ソフトウェアライブラリ2bをライブラリ名に対応付けて記憶装置2に格納して処理を終了する。これにより、次回からのルート探索には、ルート探索機能に特化した機能特化ソフトウェアライブラリ2bが利用される。
また、機能特化ソフトウェアライブラリ2bから抽出されたプログラム要素を用いて、新たに設定した実行条件でルート探索機能を実行し、このルート探索機能の実行の際に使用されたプログラム要素を用いて、上記新たに設定された実行条件でさらにルート探索機能を限定したソフトウェアライブラリ2bの構築を繰り返すことで、ルート探索機能の実行速度やソフトウェアライブラリ2bのメモリ利用効率の向上を図ることができる。
以上のように、この実施の形態2によれば、出発地点から目的地点までの経路の探索し誘導案内を行うナビゲーション機能を有したナビゲーション装置において、ナビゲーション機能に関する複数の機能に対応する汎用のソフトウェアライブラリ2aを用いて、複数の機能のうち、指示された機能を実行するナビ機能実行部3aと、汎用のソフトウェアライブラリを構成するプログラム要素のうち、ナビ機能実行部3aによる機能の実行で使用されたプログラム要素を抽出するプログラム抽出部5と、プログラム抽出部5に抽出されたプログラム要素のエラーを検証するプログラム検証部6と、プログラム検証部6にエラーなしと検証されたプログラム要素からなるプログラムの最適化を行うプログラム最適化部7と、プログラム最適化部7によって最適化が行われた前記プログラムのプログラム要素を用いて、ナビ機能実行部3aに実行された機能に特化したソフトウェアライブラリ2bを構築するプログラム再構築部8とを備える。このように構成することにより、汎用のソフトウェアライブラリ2aからプログラム要素を自動的に抽出して、利用者が指示した所望のカーナビゲーション機能に特化したソフトウェアライブラリ2bを構築することができる。これにより、カーナビゲーション処理における実行速度やメモリ利用効率の向上を図ることが可能である。
なお、上記実施の形態2では、車載用のナビゲーション装置を例に挙げたが、本発明のソフトウェアライブラリ再構築装置を携帯情報端末に搭載されたナビゲーション機能に適用しても、同様の効果が得られる。この場合、サーバ装置がナビゲーション処理を実行して携帯情報端末へ処理結果をダウンロードする構成では、当該サーバ装置に本発明を適用し、携帯情報端末自体がナビゲーション処理を実行する場合には、当該携帯情報端末に本発明を適用する。
実施の形態3.
図19は、この発明の実施の形態3によるナビゲーション装置の構成を示すブロック図であり、この発明のソフトウェアライブラリ再構築装置をカーナビゲーション装置に適用した構成を示している。なお、図19において、図18と同一の構成部には、同一符号を付して説明を省略する。
ルート探索特性判断部(利用特性判断部)16は、利用者に指定されたルート探索実行部3bの実行条件(探索パターン)を統計処理して、利用者のルート探索機能の利用特性に応じた実行条件を判断する構成部である。
ルータ探索機能の実行条件としては、探索パターンが挙げられる。この探索パターンには、例えば、目的地までの距離を優先してルート探索を行う距離優先パターンや、目的地までの予想経過時間を優先してルート探索を行う時間優先パターンなどがある。ルート探索実行部3bは、距離優先パターンが指定されると、目的地までの距離が短いルートを優先して探索し、時間優先パターンが指定されると目的地までの予想経過時間が短いルートを優先して探索する。
また、ルート探索利用統計データベース(ルート探索利用統計DB)17は、ルート探索特性判断部16によって利用者ごとに求められたルート探索機能の利用特性に応じた実行条件を示す情報を格納する記憶部であり、例えば、図2中の記憶装置に構築される。
次に動作について説明する。
ここでは、カーナビゲーション機能のうちのルート探索を実行して、ルート探索機能に特化した機能特化ソフトウェアライブラリ2bを再構築する場合を述べる。
先ず、ナビ機能実行部3aに実行されるカーナビゲーションソフトウェアを起動して、入力装置13を用いて目的地及び探索パターンを入力し、ルート探索を指示する。
これにより、ルート探索実行部3bが、汎用ソフトウェアライブラリ2aから取得したルート探索機能に必要なプログラム要素と、地図DB14から取得したルート探索に必要な地図データと、位置検出部15から取得した自車両の位置情報を用いて、探索パターンに従った目的地までのルート探索を実行する。
プログラム抽出部5は、ルート探索実行部3bがルート探索を実行すると、ルート探索機能が選択されたものとして、汎用ソフトウェアライブラリ2aから、ルート探索実行部3bに使用されたプログラム要素を順次抽出する。プログラム抽出部5によって実行順に抽出されたプログラム要素は、プログラム検証部6へ出力される。
プログラム検証部6は、抽出箇所のプログラム要素におけるプログラムのソースコードのエラーの有無を検証するとともに、プログラム要素同士を比較してプログラム要素間に存在する同一のプログラムロジックや使用されない属性、関数を特定する。
ルート探索特性判断部16は、利用者が指定した探索パターンを示す情報をルート探索実行部3bから取得してルート探索利用統計DB17に格納するとともに、ルート探索利用統計DB17から、当該利用者によって過去に指定された探索パターンを読み出して、これらを統計的に解析した結果に基づき、当該利用者のルート探索機能の利用特性を判断する。この利用特性を示す情報は、ルート探索特性判断部16からプログラム最適化部7に出力される。例えば、下記ルート探索条件に基づき、収集、蓄積されたルート探索利用統計DB17を元に、これら定性、定量データから利用者の探索パターンを統計的に評価する数量化理論解析などの統計解析手法を用いて行う。
ルート探索には、例えば距離優先、有料道路通行優先、一般道路通行優先、などの探索条件を設定できる。ルート探索特性判断部16では、利用者がこうしたルート探索条件の中からどの探索条件を選択したか、またその選択した時の状況として時間帯、VICS(登録商標)情報などから得られた交通情報、現在地の地域特性(都市部、地方部、観光地など)の情報を上記ルート探索利用統計DB17に保管する。
このルート探索利用統計DB17は、当該利用者がルート探索を実行するごとに格納される情報が増加していき、当情報をもとに、前記利用者特性を判断するための統計解析手法などを元に解析処理されたルート探索機能の利用特性から、頻繁に利用されるルート探索機能を特定し、プログラム最適化部7において、特定された当機能を実現するためのプログラム要素を抽出する。
ルート探索特性判断部16は、上記プログラム抽出部5と同様にルート探索機能を構成するプログラム要素から、上記統計手法により導出された利用者特性を考慮したルート探索条件を実現するプログラム要素を抽出し、上記プログラム検証部6の機能を用いて前記抽出されたプログラム要素の検証を行い、プログラム最適化部7へ出力する。
プログラム最適化部7は、プログラム検証部6による検証結果及びルート探索特性判断部16により判断されたルート探索の利用特性に応じた探索パターンに基づいて、抽出箇所のプログラム要素の関連性や処理手続きを最適化する。
プログラム再構築部8は、プログラム最適化部7により最適化されたプログラム要素を用いて、利用者の利用特性に応じてルート探索機能が限定された機能特化ソフトウェアライブラリ2bを構築する。
ルート探索機能に特化したライブラリを再構築すると、プログラム再構築部8は、機能特化ソフトウェアライブラリ2bを、ライブラリ名に対応付けて記憶装置2に格納して処理を終了する。これにより、次回からのルート探索には、ルート探索機能に特化した機能特化ソフトウェアライブラリ2bが利用される。
また、機能特化ソフトウェアライブラリ2bから抽出されたプログラム要素を用いて、ルート探索の利用特性に応じた探索パターンでさらに機能を限定したソフトウェアライブラリ2bの再構築を繰り返すことで、利用者の利用特性に合致した機能を提供するソフトウェアライブラリを得ることができる。
なお、ソフトウェアライブラリ再構築機能部4の再構築処理は、ナビ機能実行部3aのナビゲーション処理の空き時間に実行するようにしてもよい。これにより、ナビゲーション処理に処理負荷を与えることがなく、再構築処理を実行することができる。
以上のように、この実施の形態3によれば、ナビ機能実行部3aにナビゲーション機能が実行される度に、利用者に指示された実行条件(例えば、ルート探索の探索パターン)を取得し、取得した実行条件を統計処理して、当該利用者の利用特性に応じた当該機能の実行条件を求めるルート探索特性判断部16を備え、プログラム最適化部7が、ルート探索特性判断部16に求められた実行条件を用いて、プログラム検証部6にエラーなしと検証されたプログラム要素からなるプログラムの最適化を行い、プログラム再構築部8が、プログラム最適化部7によって最適化が行われたプログラムのプログラム要素を用いて、ルート探索特性判断部16に求められた実行条件で機能が限定されたソフトウェアライブラリを構築する。このように構成することにより、上記実施の形態2と同様の効果が得られる。また、利用者の利用特性を考慮して、ソフトウェアライブラリを再構築するので、利用者の利便性を向上させることができる。
なお、上記実施の形態3では、ルート探索の利用特性に応じた探索パターンに基づき、ソフトウェアライブラリを再構築する場合を示したが、本発明は、これに限定されるものではなく、探索パターン以外に、ルート探索機能の実行条件として、利用者が設定したルート探索に関する他の実行条件を用いてもよい。また、ルート探索以外のナビゲーション機能である、誘導案内や各種の情報表示などに適用しても構わない。
つまり、機能実行部3に機能が実行する度に、利用者に指示された当該機能の実行条件を取得して、取得した実行条件を統計処理して当該利用者の利用特性に応じた当該機能の実行条件を求める利用特性判断部を備えることにより、ナビゲーション装置以外に本発明が適用された情報処理装置が実行する機能についても、利用者の利用特性に応じた実行条件で当該機能が限定されたソフトウェアライブラリを再構築できる。
また、上記実施の形態3において、ナビゲーション機能のソフトウェアライブラリ再構築処理では、利用者がソースコードの最適化まで行う状況はあまりない。
そこで、複数種類のルート探索条件に対応する機能にそれぞれ特化したソフトウェアライブラリを予め用意しておき、利用者のルート探索利用特性に応じて、対応するソフトウェアライブラリに切り替えるように構成してもよい。

Claims (7)

  1. 複数種類のアプリケーションソフトウェアのそれぞれの処理で利用される複数の機能を実現する複数のプログラム要素が、関連するプログラム要素同士の階層に階層化されて登録された用ソフトウェアライブラリを用いて、前記複数の機能のうち、指示された機能に対応するプログラム要素を前記階層ごとに選び出して実行する機能実行部と、
    前記汎用ソフトウェアライブラリに登録された複数のプログラム要素のうち、前記指示された機能を実現するために前記機能実行部によって前記階層ごとに選び出されて実行されたプログラム要素を抽出するプログラム抽出部と、
    前記プログラム抽出部に抽出されたプログラム要素同士の関連性を検証するプログラム検証部と、
    前記プログラム検証部による検証結果を提示して、プログラム要素間で重複するプログラムロジック及び利用されない不要な情報の修正内容を受け付け、入力された修正内容に基づいてプログラム要素同士の関連性の最適化処理を行うプログラム最適化部と、
    前記プログラム最適化部によって最適化処理が行われたプログラム要素から、前記指示された機能に特化したソフトウェアライブラリを構築するプログラム再構築部とを備えたソフトウェアライブラリ再構築装置。
  2. 前記機能実行部は、前記機能に特化したソフトウェアライブラリを構成するプログラム要素を、指示された実行条件で実行し、
    前記プログラム抽出部は、前記機能に特化したソフトウェアライブラリに登録された複数のプログラム要素のうち、前記指示された実行条件で前記機能実行部によって実行されたプログラム要素を抽出し、
    前記プログラム検証部は、前記プログラム抽出部に抽出されたプログラム要素同士の関連性を検証し、
    前記プログラム最適化部は、前記プログラム検証部による検証結果を提示して、プログラム要素間で重複するプログラムロジック及び利用されない不要な情報の修正内容を受け付け、入力された修正内容に基づいてプログラム要素同士の関連性の最適化処理を行い、
    前記プログラム再構築部は、前記プログラム最適化部により最適化処理が行われたプログラム要素から、前記実行条件で前記機能に対応するプログラム要素限定されたソフトウェアライブラリを構築することを特徴とする請求項1記載のソフトウェアライブラリ再構築装置。
  3. 前記機能実行部がプログラム要素を実行する度に、利用者に指示された当該プログラム要素の実行条件を取得し、取得した前記実行条件を統計処理して当該利用者の利用特性に応じた当該機能を求め、前記汎用ソフトウェアライブラリに登録された複数のプログラム要素のうち、当該機能に対応するプログラム要素を前記階層ごとに特定して抽出する利用特性判断部を備え、
    前記プログラム検証部は、前記利用特性判断部に抽出されたプログラム要素同士の関連性を検証し、
    前記プログラム最適化部は、前記プログラム検証部による検証結果を提示して、プログラム要素間で重複するプログラムロジック及び利用されない不要な情報の修正内容を受け付け、入力された修正内容に基づいてプログラム要素同士の関連性の最適化処理を行い、
    前記プログラム再構築部は、前記プログラム最適化部により最適化処理が行われたプログラム要素から、前記利用者の利用特性に応じた機能に対応するプログラム要素に限定されたソフトウェアライブラリを構築することを特徴とする請求項1記載のソフトウェアライブラリ再構築装置。
  4. 前記機能実行部、前記プログラム検証部、前記プログラム最適化部及び前記プログラム再構築部は、利用者との間で対話的に自身の処理に必要な情報を問い合わせ、前記利用者から入力された自身の処理に必要な情報を用いて、前記自身の処理を実行することを特徴とする請求項1記載のソフトウェアライブラリ再構築装置。
  5. 前記プログラム最適化部は、前記プログラム検証部によりプログラム要素間に重複するプログラムロジックまたは利用されない不要な情報が存在することが特定されると、プログラム要素間で重複するプログラムロジックを一元化し、または前記不要な情報を削除する旨の最適化の実行条件が予め設定されている場合、検証結果の提示及び修正内容を受け付けることなく、当該実行条件に基づいてプログラム要素間で当該プログラムロジックを一元化または前記不要な情報の削除を行うことを特徴とする請求項1記載のソフトウェアライブラリ再構築装置。
  6. 機能実行部と、プログラム抽出部と、プログラム検証部と、プログラム最適化部と、プログラム再構築部とを備えたソフトウェアライブラリ再構築装置のソフトウェアライブラリ再構築方法において、
    前記機能実行部が、複数種類のアプリケーションソフトウェアのそれぞれの処理で利用される複数の機能を実現する複数のプログラム要素が、関連するプログラム要素同士の階層に階層化されて登録された用ソフトウェアライブラリを用いて、前記複数の機能のうち、指示された機能に対応するプログラム要素を前記階層ごとに選び出して実行するステップと、
    前記プログラム抽出部が、前記汎用ソフトウェアライブラリに登録された複数のプログラム要素のうち、前記指示された機能を実現するために前記機能実行部によって前記階層ごとに選び出されて実行されたプログラム要素を抽出するステップと、
    前記プログラム検証部が、前記プログラム抽出部に抽出されたプログラム要素同士の関連性を検証するステップと、
    前記プログラム最適化部が、前記プログラム検証部による検証結果を提示して、プログラム要素間で重複するプログラムロジック及び利用されない不要な情報の修正内容を受け付け、入力された修正内容に基づいてプログラム要素同士の関連性の最適化処理を行うステップと、
    前記プログラム再構築部が、前記プログラム最適化部によって最適化処理が行われたプログラム要素から、前記指示された機能に特化したソフトウェアライブラリを構築するステップとを備えたことを特徴とするソフトウェアライブラリ再構築方法。
  7. 出発地から目的地までの経路を探索して誘導案内するナビゲーション処理を行うナビゲーション装置において、
    複数種類のナビゲーションソフトウェアのそれぞれのナビゲーション処理で利用される複数の機能を実現する複数のプログラム要素が、関連するプログラム要素同士の階層に階層化されて登録された用ソフトウェアライブラリを用いて、前記複数の機能のうち、指示された機能に対応するプログラム要素を前記階層ごとに選び出して実行する機能実行部と、
    前記汎用ソフトウェアライブラリに登録された複数のプログラム要素のうち、前記指示された機能を実現するために前記機能実行部によって前記階層ごとに選び出されて実行されたプログラム要素を抽出するプログラム抽出部と、
    前記プログラム抽出部に抽出されたプログラム要素同士の関連性を検証するプログラム検証部と、
    前記プログラム検証部による検証結果を提示して、プログラム要素間で重複するプログラムロジック及び利用されない不要な情報の修正内容を受け付け、入力された修正内容に基づいてプログラム要素同士の関連性の最適化処理を行うプログラム最適化部と、
    前記プログラム最適化部によって最適化処理が行われたプログラム要素から、前記指示された機能に特化したソフトウェアライブラリを構築するプログラム再構築部とを備えたことを特徴とするナビゲーション装置。
JP2011539188A 2009-11-09 2009-11-09 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置 Active JP4964352B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/005950 WO2011055417A1 (ja) 2009-11-09 2009-11-09 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置

Publications (2)

Publication Number Publication Date
JP4964352B2 true JP4964352B2 (ja) 2012-06-27
JPWO2011055417A1 JPWO2011055417A1 (ja) 2013-03-21

Family

ID=43969662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011539188A Active JP4964352B2 (ja) 2009-11-09 2009-11-09 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置

Country Status (5)

Country Link
US (1) US20120151440A1 (ja)
JP (1) JP4964352B2 (ja)
CN (1) CN102597952B (ja)
DE (1) DE112009005351T8 (ja)
WO (1) WO2011055417A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102870114B (zh) 2010-04-28 2016-05-25 Jvc建伍株式会社 项目选择装置和项目选择方法
US20130254121A1 (en) * 2012-03-22 2013-09-26 International Business Machines Corporation Software Portfolio Management Based on Feature Usage
US8990183B2 (en) * 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
CN108351770B (zh) 2016-02-09 2020-02-28 西门子公司 用于安全地实施程序命令的方法和实施环境

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944358A (ja) * 1995-08-02 1997-02-14 Toshiba Corp プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置
JPH09204300A (ja) * 1995-12-21 1997-08-05 Internatl Business Mach Corp <Ibm> オブジェクト指向アプリケーション用パッケージ化アルゴリズム
JPH10105435A (ja) * 1996-08-02 1998-04-24 Hewlett Packard Co <Hp> ソフトウェア・ライブラリのオペレーションに関する情報を提供する方法
JP2000276344A (ja) * 1999-03-23 2000-10-06 Nec Corp オブジェクトを利用したプログラム作成システムおよびそのプログラム作成方法
JP2004310279A (ja) * 2003-04-03 2004-11-04 Sumisho Computer Systems Corp 業務処理システムおよびその構築支援装置、業務処理システム用プログラム、業務処理システムの構築支援用プログラム
JP2006285584A (ja) * 2005-03-31 2006-10-19 Canon Inc プログラムコード生成装置、プログラムコード生成方法、及びコンピュータプログラム
JP2009093239A (ja) * 2007-10-04 2009-04-30 Hitachi Ltd 不要プログラム部品検出システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680619A (en) 1995-04-03 1997-10-21 Mfactory, Inc. Hierarchical encapsulation of instantiated objects in a multimedia authoring system
US6546551B1 (en) * 1999-09-28 2003-04-08 International Business Machines Corporation Method for accurately extracting library-based object-oriented applications
JP4363044B2 (ja) 2003-01-22 2009-11-11 セイコーエプソン株式会社 バンドル再構成システム及びバンドル再構成プログラム、並びにバンドル再構成方法
CN100395754C (zh) * 2006-01-25 2008-06-18 英业达股份有限公司 信息提取方法及系统
US20090228862A1 (en) * 2008-03-04 2009-09-10 Anders Bertelrud Modularized integrated software development environments

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944358A (ja) * 1995-08-02 1997-02-14 Toshiba Corp プログラム生成方法及びプログラム生成装置並びにオブジェクト生成方法及びオブジェクト生成装置
JPH09204300A (ja) * 1995-12-21 1997-08-05 Internatl Business Mach Corp <Ibm> オブジェクト指向アプリケーション用パッケージ化アルゴリズム
JPH10105435A (ja) * 1996-08-02 1998-04-24 Hewlett Packard Co <Hp> ソフトウェア・ライブラリのオペレーションに関する情報を提供する方法
JP2000276344A (ja) * 1999-03-23 2000-10-06 Nec Corp オブジェクトを利用したプログラム作成システムおよびそのプログラム作成方法
JP2004310279A (ja) * 2003-04-03 2004-11-04 Sumisho Computer Systems Corp 業務処理システムおよびその構築支援装置、業務処理システム用プログラム、業務処理システムの構築支援用プログラム
JP2006285584A (ja) * 2005-03-31 2006-10-19 Canon Inc プログラムコード生成装置、プログラムコード生成方法、及びコンピュータプログラム
JP2009093239A (ja) * 2007-10-04 2009-04-30 Hitachi Ltd 不要プログラム部品検出システム

Also Published As

Publication number Publication date
DE112009005351T8 (de) 2013-03-28
CN102597952A (zh) 2012-07-18
US20120151440A1 (en) 2012-06-14
CN102597952B (zh) 2015-08-05
JPWO2011055417A1 (ja) 2013-03-21
DE112009005351T5 (de) 2012-12-13
WO2011055417A1 (ja) 2011-05-12

Similar Documents

Publication Publication Date Title
CN105359102B (zh) 先进的客户支持服务-先进的支持云门户
US8881136B2 (en) Identifying optimal upgrade scenarios in a networked computing environment
US8984489B2 (en) Quality on submit process
US9098364B2 (en) Migration services for systems
US20150100829A1 (en) Method and system for selecting and executing test scripts
US10817819B2 (en) Workflow compilation
CN106354646B (zh) 一种分析转储文件的方法
US20170235661A1 (en) Integration of Software Systems via Incremental Verification
EP3044671A1 (en) Automatic installation of selected updates in multiple environments
CN108897575B (zh) 电子设备的配置方法以及配置系统
WO2015167943A1 (en) Dynamic update installer for customized software
WO2015038483A1 (en) Automatically resolving conflicts after installation of selected updates in a computer system
US20160048383A1 (en) Isv update delivery
JP4964352B2 (ja) ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置
US20150100831A1 (en) Method and system for selecting and executing test scripts
WO2020005630A1 (en) Formalized propagation and approval of code changes in a tightly coupled environment
CN104125504A (zh) 一种基于持续集成的部署方法、装置及系统
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN115794519A (zh) 测试方法、系统、电子设备及可读存储介质
CN113721948A (zh) 一种数据库升级方法、系统及存储介质
CN111625291B (zh) 数据处理模型自动迭代方法、装置及电子设备
JP2009245409A (ja) リソース自動構築システム及び自動構築方法並びにそのための管理用端末
CN112711427A (zh) 一种镜像文件的获取方法以及装置
CN115437617A (zh) 车辆控制代码自动生成方法、装置、存储介质和电子设备
CN103810006A (zh) 补丁包的安装方法及装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120228

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120327

R150 Certificate of patent or registration of utility model

Ref document number: 4964352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250