(57)【特許請求の範囲】
【請求項１】
システム設計者が行う業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントの設計を支援するためのコンポーネント設計支援システムが以下の各ステップを実行するコンポーネント設計支援方法において、
前記コンポーネントに関係するコンポーネントに対する保守履歴情報を取得するステップと、
前記保守履歴情報から当該保守における修正箇所、修正工数および修正影響波及箇所を含む保守パターン情報を生成して、記憶装置に記憶しておくステップと、
前記システム設計者が設計するコンポーネントについて、前記保守パターン情報と比較するステップと、
当該比較の結果に基づいて、前記設計するコンポーネントの保守工数を算出するステップとを有することを特徴とするコンポーネント設計支援方法。
【請求項２】
請求項１に記載のコンポーネント設計支援方法であって、
前記システム設計者から前記設計するコンポーネントの設計情報を受け付けてコンポーネント情報として格納するコンポーネント情報登録ステップをさらに有し、
前記比較するステップは、格納された前記コンポーネント情報と前記保守パターン情報を比較し、
前記保守工数を算出するステップは、前記比較の結果に基づいて、前記保守工数を算出することを特徴とするコンポーネント設計支援方法。
【請求項３】
請求項２に記載のコンポーネント設計支援方法であって、
前記保守履歴情報を取得するステップは、
前記保守履歴情報の修正対象箇所のシステム名を、当該システムの機能およびデータの名称を管理する辞書情報に基づいてオブジェクト名に変換した保守履歴オブジェクト情報として取得することを特徴とするコンポーネント設計支援方法。
【請求項４】
請求項３に記載のコンポーネント設計支援方法であって、
前記保守パターンの生成は、
前記保守履歴情報から修正対象箇所と修正によって影響を受ける影響波及箇所の組み合わせを保守パターンとして抽出し、保守パターンごとの修正発生回数、修正工数、影響波及率を算出し、前記保守パターン情報として生成することを特徴とするコンポーネント設計支援方法。
【請求項５】
請求項２乃至４のいずれかに記載のコンポーネント設計支援方法であって、
前記コンポーネント情報登録ステップは、
前記コンポーネント情報としてコンポーネントの保守担当者ＩＤ、コンポーネントの構成要素である構成オブジェクト、構成オブジェクトと依存関係のある依存関係オブジェクトを受け付け、構成オブジェクトの保守時に影響波及の可能性がある依存関係オブジェクトについて複数の保守担当者間の連携が発生するかどうかを連携発生有無を含むコンポーネント情報を登録することを特徴とするコンポーネント設計支援方法。
【請求項６】
請求項１乃至５のいずれかに記載のコンポーネント設計支援方法であって、
前記保守工数を算出するステップは、
前記コンポーネント情報の構成オブジェクトと依存関係オブジェクトの組み合わせごとに、前記保守パターン情報の保守パターンとのマッチングを行って構成オブジェクトの保守時の影響波及率と修正工数を算出し、構成オブジェクトの保守時の影響波及率と修正工数からコンポーネントごとの保守工数を算出することを特徴とするコンポーネント設計支援方法。
【請求項７】
システム設計者が行う業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントの設計を支援するコンポーネント設計支援システムにおいて、
前記コンポーネントに関係するコンポーネントに対する保守履歴情報を取得する手段と、
前記保守履歴情報から当該保守における修正箇所、修正工数および修正影響波及箇所を含む保守パターン情報を生成して、記憶装置に記憶しておく手段と、
前記システム設計者が設計するコンポーネントについて、前記保守パターン情報と比較する手段と、
当該比較の結果に基づいて、前記設計するコンポーネントの保守工数を算出する手段とを有することを特徴とするコンポーネント設計支援システム。
【請求項８】
請求項７に記載のコンポーネント設計支援システムであって、
前記システム設計者から前記設計するコンポーネントの設計情報を受け付けてコンポーネント情報として格納するコンポーネント情報登録手段をさらに有し、
前記比較する手段は、格納された前記コンポーネント情報と前記保守パターン情報を比較し、
前記保守工数を算出する手段は、前記比較の結果に基づいて、前記保守工数を算出することを特徴とするコンポーネント設計支援システム。
【請求項９】
請求項８に記載のコンポーネント設計支援システムであって、
前記保守履歴情報を取得する手段は、
前記保守履歴情報の修正対象箇所のシステム名を、当該システムの機能およびデータの名称を管理する辞書情報に基づいてオブジェクト名に変換した保守履歴オブジェクト情報として取得することを特徴とするコンポーネント設計支援システム。
【請求項１０】
請求項９に記載のコンポーネント設計支援システムであって、
前記保守パターンの生成は、
前記保守履歴情報から修正対象箇所と修正によって影響を受ける影響波及箇所の組み合わせを保守パターンとして抽出し、保守パターンごとの修正発生回数、修正工数、影響波及率を算出し、前記保守パターン情報として生成することを特徴とするコンポーネント設計支援システム。
【請求項１１】
請求項８乃至１０のいずれかに記載のコンポーネント設計支援システムであって、
前記コンポーネント情報登録手段は、
前記コンポーネント情報としてコンポーネントの保守担当者ＩＤ、コンポーネントの構成要素である構成オブジェクト、構成オブジェクトと依存関係のある依存関係オブジェクトを受け付け、構成オブジェクトの保守時に影響波及の可能性がある依存関係オブジェクトについて複数の保守担当者間の連携が発生するかどうかを連携発生有無を含むコンポーネント情報を登録することを特徴とするコンポーネント設計支援システム。
【請求項１２】
請求項７乃至１１のいずれかに記載のコンポーネント設計支援システムであって、
前記保守工数を算出する手段は、
前記コンポーネント情報の構成オブジェクトと依存関係オブジェクトの組み合わせごとに、前記保守パターン情報の保守パターンとのマッチングを行って構成オブジェクトの保守時の影響波及率と修正工数を算出し、構成オブジェクトの保守時の影響波及率と修正工数からコンポーネントごとの保守工数を算出することを特徴とするコンポーネント設計支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務アプリケーションなどのシステム設計方法に係わり、特に、通信ネットワークを介して、システム設計者が、業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントを設計するための技術に関する。
【背景技術】
【０００２】
現在、業務を実行するために業務アプリケーションなどのシステムを利用することがなされている。このようなシステムは、複数のコンポーネントから構成されることが多く、構成が複雑化する傾向にあり、その管理を行う技術がいくつか提案されている。その１つとして、特開２００９−１２９３５５号公報（特許文献１）がある。この特許文献１には、「不正な依存関係を規定するポリシーデータを用いて、依存関係の中から前記ポリシーに反する依存関係を検出し、ポリシーに反する依存関係を改善する案を用いて、検出したポリシーに反する依存関係の改善案の候補を出力する依存関係分析部を有するコンポーネント分割支援装置によって解決される」と記載されている。
【０００３】
また、「Strategy-Based Design of Reusable Business Components」（非特許文献１）がある。この文献には、コンポーネントを構成するオブジェクト間の依存関係から、コンポーネントの保守性をCohesion（凝集性）、Coupling（結合性）、Complexity（複雑性）などの複数の指標で評価する手法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１２９３５５号公報
【非特許文献】
【０００５】
【非特許文献１】文献名：Strategy-Based Design of Reusable Business Components、Systems、Man、and Cybernetics、Part C: Applications and Reviews、IEEE Transactions、2004
【発明の概要】
【発明が解決しようとする課題】
【０００６】
大規模システム開発においては、開発対象のシステムをコンポーネントと呼ぶサブシステムの単位に分割して、コンポーネントごとに開発・保守を行うコンポーネント指向開発が注目されている。コンポーネント指向開発では、システムの保守性向上を目指して、依存関係のある機能とデータを抽出し、同一のコンポーネントに的確に割り当てることで、保守工数を最小化することが重要となる。例えば、依存関係のある「契約チェック機能」と「契約データ」は、保守時の修正が同時に発生する可能性が高いため、同じコンポーネントに割り当てて、保守工数を低減することが望ましい。
【０００７】
特許文献１に開示された技術では、オブジェクト間の依存関係を規定するポリシーによって、機能間の相互呼出などの保守性に影響を与える不正な依存関係を抽出・改善するが、コンポーネントごとの保守工数を定量的に測定することができない。例えば、複数のコンポーネント設計案から保守工数を定量的に測定し、保守性が最も高い設計案を判定できない。
【０００８】
非特許文献１では、複数の指標を用いてコンポーネントの保守性を定量的に評価するが、保守工数そのものを測定することができない。また、オブジェクト間の依存関係のみを評価しているため、業務アプリケーションのドメイン特性に基づく“保守の傾向”や“保守担当者の担当範囲”が保守性の評価に反映されていない。例えば、業務アプリケーションのドメイン特性によって、保守時の修正が発生し易い機能やデータ、修正の影響が波及し易い機能やデータが異なる。また、保守時の修正範囲が、一人の担当者で対応可能なのか、複数の担当者で連携が必要なのかによって保守工数が変化する。
【０００９】
本発明は、過去の保守履歴情報から保守の傾向をパターン化すると共に、保守担当者の担当範囲を考慮して、コンポーネントの保守工数を定量的に評価するシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、過去の保守履歴情報を用いて保守時の影響波及箇所と修正工数などをパターン化した保守パターンを抽出し、保守パターンによってコンポーネントの保守工数を評価することで、保守工数が最小となるコンポーネントの設計を支援する。より具体的な構成としては、例えば以下の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、システム設計者が、システムの保守履歴情報から保守時の修正箇所や修正工数を保守パターン情報として蓄積し、新たにシステムのコンポーネントを設計する際に、前記保守パターン情報に基づいてコンポーネントの保守工数を測定し、保守性の高いコンポーネントの設計を支援するコンポーネント設計支援方法であって、
システム保守担当者から保守時の修正箇所や修正工数を受け付けて前記保守履歴情報として格納する保守履歴情報登録ステップと、
前記保守履歴情報に基づいて、保守時の修正対象箇所や修正工数をパターン化して保守パターン情報を抽出する保守パターン抽出ステップと、
前記システム設計者からシステムをサブシステムに分割したコンポーネントの設計情報を受け付けてコンポーネント情報として格納するコンポーネント情報登録ステップと、
前記コンポーネント情報と前記保守パターン情報に基づいて、システムの保守時に発生すると考えられるコンポーネントの保守工数を算出する保守工数評価ステップと、
この保守工数評価ステップで算出したコンポーネントの保守工数情報を、通信網を介して前記システム設計者に提供するステップを有する。
【発明の効果】
【００１１】
本発明によれば、業務アプリケーションなどのシステム開発において、コンポーネントの保守工数を定量的に評価し、従来より保守性の高い業務アプリケーションを開発できる。
【図面の簡単な説明】
【００１２】
【図１】コンポーネント設計支援システムの構成図の例である。
【図２】コンポーネント設計支援システムに用いられるコンピュータの典型的なハードウェア構成の例である。
【図３】コンポーネント設計支援の処理全体のフローチャートの例である。
【図４】修正対象パターン抽出の処理のフローチャートの例である。
【図５】影響波及パターン抽出の処理のフローチャートの例である。
【図６】保守工数評価の処理のフローチャートの例である。
【図７】保守履歴情報テーブルの例である。
【図８】機能辞書情報テーブルの例である。
【図９】データ辞書情報テーブルの例である。
【図１０】保守履歴オブジェクト情報テーブルの例である。
【図１１】修正対象パターン情報テーブルの例である。
【図１２】影響波及パターン情報テーブルの例である。
【図１３】コンポーネント情報テーブルの例である。
【図１４】保守担当者情報テーブルの例である。
【図１５】影響波及予測情報テーブルの例である。
【図１６】保守工数情報テーブルの例である。
【図１７】保守履歴情報に基づく保守パターンの抽出イメージを示す概念図である。
【図１８】コンポーネント設計案のイメージを示す概念図である。
【図１９】保守時の影響波及のイメージを示す概念図である。
【図２０】コンポーネント設計支援機能の画面の例である。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について図面を用いて説明する。
本実施形態では、業務アプリケーションなどのシステム設計において保守性の向上を目指してコンポーネントを設計する際に、過去の保守履歴情報から保守時の影響波及箇所と修正工数をパターン化し、コンポーネントの保守工数を評価するコンポーネント設計支援システム２の例を説明する。
【００１４】
以下、このような背景の下で運用される、本発明の実施形態に係るコンポーネント設計支援システムについて詳細に説明する。
【００１５】
＝＝＝実施形態の概要＝＝＝
本実施形態では、システム保守情報入力システム１が保守担当者などから保守履歴情報の入力を受け付けてコンポーネント設計支援システム２に送信し、コンポーネント設計支援システム２が保守履歴情報を蓄積し、保守履歴情報から保守時の影響波及箇所や修正工数などの影響波及パターン情報を算出し、コンポーネント設計情報入出力システム３がコンポーネント設計者などからコンポーネント情報の入力を受け付けてコンポーネント設計支援システム２に送信し、コンポーネント設計支援システム２がコンポーネント情報に基づいて影響波及パターン情報からコンポーネントの保守工数を評価し、コンポーネント設計情報入出力システム３に評価結果を送信する場合について説明する。
【００１６】
図１に、本実施形態におけるシステムの構成を示している。本システムでは、システム保守情報入力システム１と、コンポーネント設計支援システム２と、コンポーネント設計情報入出力システム３とが、通信ネットワーク４で接続されている。なお、複数のシステム保守情報入力システム１とコンポーネント設計情報入出力システム３を通信ネットワーク５に接続するようにしてもよい。通信ネットワーク４は、ＬＡＮ、インターネット、他の任意の有線または無線を使ったネットワークとすることができる。システム保守情報入力システム１と、コンポーネント設計支援システム２と、コンポーネント設計情報入出力システム３は、夫々演算処理のためのＣＰＵと、データやプログラムを記憶するための記憶装置（例えば、ＲＡＭ、ＲＯＭ、ハードディスク等）と、外部機器とネットワーク５を介して通信するための通信装置とを備えるコンピュータである。
【００１７】
＝＝＝ハードウェア構成＝＝＝
図２に、コンポーネント設計支援システム２に用いられるコンピュータの典型的なハードウェア構成を示している。この図に示す構成のコンピュータは、保守情報入力システム１、コンポーネント設計情報入出力システム３にも用いられる。図２に示すように、コンポーネント設計支援システム２は、ＣＰＵ２００１、メモリ２００２、記憶装置２００３、通信インタフェース２００４、記録媒体読取装置２００５、記録媒体２００６、入力装置２００７、出力装置２００８を備えている。
【００１８】
ＣＰＵ２００１はコンポーネント設計支援システム２の全体の制御を司るもので、メモリ２００２に格納されたプログラム２００９を実行することにより各種機能を実現する。記録媒体読取装置２００５は、記録媒体２００６に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ２００２に格納される。従って、例えばメモリ２００２に記憶されているプログラム２００９は、記録媒体読取装置２００５を用いて記録媒体２００６から読み取り、メモリ２００２に格納することができる。なお、後述する本実施形態の処理は、プログラムに従ってＣＰＵ２００１がその演算を実行することで実現される。記録媒体２００６としては、例えばＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ、ハードディスク、フレキシブルディスク、半導体メモリ、磁気テープ等を用いることができる。記録媒体読取装置２００５はコンポーネント設計支援システム２に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。入力装置２００７は、オペレータ等によるコンポーネント設計支援システム２へのデータ等の入力のために用いられる。入力装置２００７としては、例えばキーボードやマウス、マイク等が用いられる。出力装置２００８は情報を外部に出力するための装置である。出力装置２００８としては、例えばディスプレイやプリンタ、スピーカ等が用いられる。通信インタフェース２００４は通信ネットワーク４に接続し、保守情報入力システム１やコンポーネント設計情報入出力システム３等の外部の装置との間で通信を行うための装置である。
【００１９】
＝＝＝システム保守情報入力システム１＝＝＝
図１のシステム保守情報入出力システム１において、システム保守情報送信部１０１は、システムの保守担当者から保守履歴情報の入力を受け付けて、コンポーネント設計支援システム２に送信する機能を備える。
【００２０】
＝＝＝コンポーネント設計支援システム２＝＝＝
図１のコンポーネント設計支援システム２において、保守履歴情報格納部２１２は、図７に示すように、保守案件ＩＤ、保守案件名、案件概要、修正対象箇所のシステム機能／データ名、修正対象箇所の修正工数、影響波及箇所のシステム機能／データ名、影響波及箇所の修正工数、保守担当者、実施日を格納している。
【００２１】
機能辞書情報格納部２１３は、図８に示すように、機能ＩＤ、機能オブジェクト名、システム機能名を格納している。
【００２２】
データ辞書情報格納部２１４は、図９に示すように、データＩＤ、データオブジェクト名、システムデータ名を格納している。
【００２３】
保守履歴オブジェクト情報格納部２１５は、図１０に示すように、保守案件ＩＤ、保守案件名、案件概要、修正対象箇所の機能／データオブジェクト名、修正対象箇所の修正工数、影響波及箇所機能／データオブジェクト名、影響波及箇所の修正工数、保守担当者、実施日を格納している。
【００２４】
修正対象パターン情報格納部２２４は、図１１に示すように、修正対象ＩＤ、修正対象パターン名、修正発生回数、修正対象パターン平均修正工数を格納している。
【００２５】
影響波及パターン情報格納部２２５、図１２に示すように、影響波及ＩＤ、影響波及パターン名（修正対象箇所、影響波及箇所）、修正発生回数、影響波及率、影響波及パターン平均修正工数（担当者内、担当者間）を格納している。
【００２６】
コンポーネント情報格納部２３２は、図１３に示すように、コンポーネント設計案、コンポーネント名、担当者ＩＤ、構成ＩＤ、構成オブジェクト、依存関係オブジェクト、担当者区分を格納している。
保守担当者情報格納部２３３は、図１４に示すように、担当者ＩＤ、担当者名、担当コンポーネント名、所属部署を格納している。
影響波及予測情報格納部２４４は、図１５に示すように、コンポーネント設計案、コンポーネント名、構成オブジェクト、影響波及オブジェクト、担当者区分、影響波及率、修正工数、影響波及オブジェクト平均修正工数を格納している。
【００２７】
保守工数情報格納部２４５は、図１６に示すように、コンポーネント設計案、コンポーネント名、構成オブジェクト、構成オブジェクト平均修正工数、修正発生回数、設計案保守工数を格納している。
保守履歴情報抽出部２１１は、システム保守情報入力システム１から保守履歴情報を受信し、受信した保守履歴情報を保守履歴情報格納部２１２に格納し、保守履歴情報のシステム機能名について機能辞書情報格納部２１３に格納されているシステム機能名と一致するシステム機能名を機能オブジェクト名に変換し、保守履歴情報のシステムデータ名についてデータ辞書情報格納部２１４に格納されているシステムデータ名と一致するシステムデータ名をデータオブジェクト名に変換し、保守履歴オブジェクト情報として保守履歴オブジェクト情報格納部２１５に格納する機能を備える。
保守パターン抽出部２２１は、保守履歴オブジェクト情報格納部２１５に格納されている保守履歴オブジェクト情報を取得し、修正対象箇所を修正対象パターンとして抽出し、修正対象パターンの発生回数と平均修正工数を算出し、修正対象パターン情報格納部２２４に格納し、修正対象箇所と影響波及箇所の組合せを影響波及パターンとして抽出し、影響波及パターンの発生回数と平均修正工数を算出し、影響波及パターン情報格納部２２５に格納する機能を備える。
【００２８】
影響波及率算出部２２２は、影響波及パターン情報格納部２２５に格納されている影響波及パターンごとに影響波及率を算出し、影響波及パターン情報格納部２２５に格納する機能を備える。
修正工数算出部２２３は、修正対象パターン情報格納部２２４に格納されている修正対象パターンごとに平均修正工数を算出し、修正対象パターン情報格納部２２４に格納し、影響波及パターン情報格納部２２５に格納されている影響波及パターンごとに平均修正工数を算出し、影響波及パターン情報格納部２２５に格納する機能を備える。
コンポーネント情報受信部２３１は、コンポーネント設計情報入出力システム３からコンポーネント情報と保守担当者情報を受信し、コンポーネント情報格納部２３２と保守担当者情報格納部２３３に格納する機能を備える。
【００２９】
影響波及予測部２４１は、コンポーネント情報格納部２３２に格納されている構成オブジェクトと依存関係オブジェクトの組合せから影響波及オブジェクトを抽出し、影響波及パターン情報格納部２２５に格納されている影響波及パターンをマッチングして一致する影響波及パターンの影響波及率と影響波及パターン平均修正工数を取得し、影響波及オブジェクト平均修正工数を算出し、影響波及予測情報格納部２４４に格納する機能を備える。
保守工数算出部２４２は、影響波及予測情報格納部２４４に格納されている影響波及オブジェクト平均修正工数と修正対象パターン情報格納部２２５に格納されている修正対象パターン平均修正工数からコンポーネント設計案ごとの保守予測工数を算出し、保守工数情報格納部２４５に格納する機能を備える。
コンポーネント構成評価部２４３は、保守工数情報格納部２４５から保守工数情報を取得し、コンポーネントの評価結果としてコンポーネント設計情報入出力システム３に送信する機能を備える。
【００３０】
＝＝＝コンポーネント設計情報入出力システム３＝＝＝
図１のコンポーネント設計情報入出力システム３において、コンポーネント情報送受信部３０１は、コンポーネント設計者からコンポーネント設計情報と保守担当者情報の入力を受け付けて、コンポーネント設計支援システム２に送信し、コンポーネント設計支援システム２からコンポーネントの評価結果を受信し、図２０に示すようなコンポーネント評価結果を表示する機能を備える。
【００３１】
＝＝＝システム処理の概要＝＝＝
図３は、本実施形態に係るコンポーネント設計支援システムにおいて、システムの保守履歴情報を受け付けて、保守パターンを抽出すると共に、コンポーネント設計情報を受け付けて、コンポーネントの保守工数を評価し、評価結果を通知する処理フローを示したフロー図である。
【００３２】
図３において、システム保守情報入力システム１がコンポーネント設計支援システム２に保守履歴情報を送信し、コンポーネント設計支援システム２が保守履歴情報を一般化した保守履歴オブジェクト情報に変換し、コンポーネント設計支援システム２が保守履歴オブジェクト情報から保守パターンを抽出し、コンポーネント設計情報入力システム３がコンポーネント設計支援システム２にコンポーネント情報を送信し、コンポーネント設計支援システム２がコンポーネント情報に保守パターンを適用して保守工数を評価し、コンポーネント設計情報入力システム３に評価結果を送信することによって、コンポーネント設計を支援する場合のフローを示している。また、図３に示す処理は、システム保守情報入力システム１、コンポーネント設計支援システム２、コンポーネント設計情報入出力システム３の夫々において、ＣＰＵがプログラムを実行することにより実現される。この点は、上述したとおりである。
【００３３】
処理Ｓ１０１はシステム保守情報入力システム１で実行される処理、処理Ｓ２０１〜処理Ｓ２０９はコンポーネント設計支援システム２で実行される処理、処理Ｓ３０１〜処理Ｓ３０２はコンポーネント設計情報入出力システム３で実行される処理を夫々示している。
【００３４】
＝＝＝保守履歴情報登録の処理＝＝＝
システム保守担当者などから保守履歴情報の登録を受け付ける際の処理について説明する。ここでは、保守履歴情報に記述されたプログラムレベルのシステム機能／データ名を一般化した機能／データオブジェクト名に変換を行うことで、汎用性の高い保守履歴情報を蓄積することをねらっている。
【００３５】
ここで、図３の説明を行う。システム保守情報入力システム１のシステム保守情報送信部１０１は、保守担当者などから保守履歴情報として保守案件ＩＤ、保守案件名、案件概要、修正対象箇所のシステム機能／データ名、修正対象箇所の修正工数、影響波及箇所のシステム機能／データ名、影響波及箇所の修正工数、保守担当者、実施日の入力を受け付けて、コンポーネント設計支援システム２に送信する（処理Ｓ１０１）。
【００３６】
コンポーネント設計支援システム２の保守履歴情報抽出部２１１は、システム保守情報入力システム１のシステム保守情報送信部１０１から受信した保守履歴情報を保守履歴情報格納部２１２に格納する（処理Ｓ２０１）。
【００３７】
コンポーネント設計支援システム２の保守履歴情報抽出部２１１は、保守履歴情報格納部２１２に格納されている保守履歴情報を取得し、保守案件ＩＤが昇順に保守履歴情報に記載されている修正対象箇所のシステム機能／データ名および影響波及箇所のシステム機能／データ名に対して、機能辞書情報格納部２１３に格納されているシステム機能名と比較して一致する場合は機能オブジェクト名に変換し、データ辞書情報格納部２１４に格納されているシステムデータ名と比較して一致する場合はデータオブジェクト名に変換し、保守履歴情報の保守案件ＩＤ、保守案件名、案件概要、修正対象箇所の機能／データオブジェクト名、修正対象箇所の修正工数、影響波及箇所の機能／データオブジェクト名、影響波及箇所の修正工数、保守担当者、実施日を保守履歴オブジェクト情報格納部２１５に格納する（処理Ｓ２０２）。例えば、保守履歴情報の修正対象箇所のシステム機能／データ名「sharyo_max_check()」を機能辞書情報の「車両保険金額チェック機能」に変換し、影響波及箇所のシステム機能／データ名「sharyo_max_data」をデータ辞書情報の「車両保険金額データ」に変換し、保守履歴オブジェクト情報に格納する。
【００３８】
＝＝＝保守パターン抽出の処理＝＝＝
保守履歴情報を分析して保守の修正パターンを抽出する際の処理について説明する。ここでは、保守時の修正を直接的な“修正対象箇所”と修正によって影響を受ける間接的な“影響波及箇所”の２つに区別して、保守パターンを抽出し、保守パターンごとの影響波及率と修正工数を算出することで精度のより高い修正パターン情報を構築することをねらっている。
【００３９】
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報格納部２１５から保守履歴オブジェクト情報を取得する。（処理Ｓ２０３）
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から修正対象パターンを抽出する処理を実施し、修正対象パターン情報格納部２２４に格納する（処理Ｓ２０４）。
処理Ｓ２０４の詳細は、図４に示すフロー図における処理Ｓ２０４１〜処理Ｓ２０４４の処理となる。
【００４０】
ここで、図４の説明を行う。図４は、保守履歴オブジェクト情報から修正対象パターンを抽出する処理の流れを示すフロー図である。
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から保守案件ＩＤが昇順に、修正対象箇所の機能／データオブジェクト名、修正対象箇所の修正工数、保守担当者、実施日を抽出する（処理Ｓ２０４１）。
【００４１】
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能／データオブジェクト名と修正対象パターン情報格納部２２４に格納されている修正対象パターン名を比較し、一致する場合は保守履歴オブジェクト情報から抽出した修正対象箇所の修正工数と実施日に基づいて修正対象パターン情報の修正発生回数と累計修正工数を算出し、修正対象パターン情報格納部２２４に格納する（処理Ｓ２０４２）。例えば、保守履歴オブジェクト情報の修正対象箇所の機能／データオブジェクト名「車両保険金額チェック機能」と一致する修正対象パターン情報の修正対象パターン名「車両保険金額チェック機能」について、保守履歴オブジェクト情報の実施日「２０１０年４月１日」と修正対象箇所の修正工数「１ｈ」から、修正対象パターン情報の修正発生回数の２０１０年のカウントを１つ増やして「６回」とし、累計修正工数に「１ｈ」を増やして「２２ｈ」とし、修正対象パターン情報に格納する。
【００４２】
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能／データオブジェクト名と修正対象パターン情報格納部２２４に格納されている修正対象パターン名を比較し、一致するものがない場合は新規に修正対象ＩＤを発行し、修正対象箇所の機能／データオブジェクト名を修正対象パターン名として追加し、保守履歴オブジェクト情報から抽出した修正対象箇所の修正工数と登録日に基づいて修正対象パターン情報の修正発生回数と累計修正工数を更新し、修正対象パターン情報格納部２２４に格納する（処理Ｓ２０４３）。
【００４３】
上記、処理Ｓ２０４１〜処理Ｓ２０４３を、保守履歴オブジェクト情報の各保守案件について実施する。
コンポーネント設計支援システム２の修正工数算出部２２３は、修正対象パターン情報格納部２２４から修正対象ＩＤが昇順に修正対象パターンの修正発生回数と累計修正工数を取得し、修正対象パターン平均修正工数を算出し、修正対象パターン情報格納部２２４に格納する（処理Ｓ２０４４）。例えば、修正対象パターン情報の修正対象ＩＤ「００Ａ」については、修正発生回数の合計「１１回」と累計修正工数「２２ｈ」を取得し、修正対象パターン平均修正工数「２ｈ／回」を算出し、修正対象パターン情報に格納する。
【００４４】
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から影響波及パターンを抽出する処理を実施し、影響波及パターン情報格納部２２５に格納する（処理Ｓ２０５）。
処理Ｓ２０５の詳細は、図５に示すフロー図における処理Ｓ２０５１〜処理Ｓ２０５５の処理となる。
【００４５】
ここで、図５の説明を行う。図５は、保守履歴オブジェクト情報から修正対象パターンを抽出する処理の流れを示すフロー図である。
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から保守案件ＩＤが昇順に、修正対象箇所の機能／データオブジェクト名、影響波及箇所の機能／データオブジェクト名、影響波及箇所の修正工数、保守担当者、実施日を抽出する（処理Ｓ２０５１）。
【００４６】
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能／データオブジェクト名と影響波及箇所の機能／データオブジェクト名の組み合わせと影響波及パターン情報格納部２２５に格納されている影響波及パターン名を比較し、一致する場合は保守履歴オブジェクト情報から抽出した修正対象箇所の修正工数、保守担当者、登録日に基づいて影響波及パターン情報の修正発生回数と累計修正工数を更新し、影響波及パターン情報格納部２２５に格納する（処理Ｓ２０５２）。例えば、保守履歴オブジェクト情報の修正対象箇所の機能／データオブジェクト名「車両保険金額チェック機能」と影響波及箇所の機能／データオブジェクト名「車両保険金額データ」の組み合わせと一致する影響波及パターン情報の影響波及パターン名「車両保険金額チェック機能⇒車両保険金額データ」について、保守履歴オブジェクト情報の実施日「２０１０年４月１日」と影響波及箇所の修正工数「２ｈ」と保守担当者「日立太郎」から、修正対象パターン情報の修正発生回数の２０１０年の担当者内のカウントを１つ増やして「３回」とし、累計修正工数の担当者内に「２ｈ」を増やして「１０ｈ」とし、修正対象パターン情報に格納する。なお、保守担当者の欄に単一の担当者名が記載されている場合は担当者内での修正、複数の担当者名が記載されている場合は担当者間での修正と判断する。
【００４７】
コンポーネント設計支援システム２の保守パターン抽出部２２１は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能／データオブジェクト名と影響波及箇所の機能／データオブジェクト名の組み合わせと影響波及パターン情報格納部２２５に格納されている影響波及パターン名を比較し、一致するものがない場合は新規に影響波及ＩＤを発行し、修正対象箇所の機能／データオブジェクト名と影響波及箇所の機能／データオブジェクト名の組み合わせを影響波及パターン名として追加し、保守履歴オブジェクト情報から抽出した影響波及箇所の修正工数、保守担当者、登録日に基づいて影響波及パターン情報の修正発生回数、累計修正工数、を算出し、影響波及パターン情報格納部２２５に格納する（処理Ｓ２０５３）。
【００４８】
上記の処理Ｓ２０５１〜処理Ｓ２０５３を、保守履歴オブジェクト情報の各保守案件について実施する。
コンポーネント設計支援システム２の影響波及率算出部２２２は、影響波及パターン情報格納部２２５から影響波及ＩＤが昇順に影響波及パターン名の修正対象箇所と修正発生回数の合計を取得し、修正対象パターン情報格納部２２４を検索して影響波及パターン名の修正対象箇所と一致する修正対象パターン名の修正発生回数の合計を取得し、影響波及率を算出する（処理Ｓ２０５４）。例えば、影響波及パターン情報の影響波及ＩＤ「００ａ」については、影響波及パターン名の修正対象箇所「車両保険金額チェック機能」と一致する修正対象パターン情報の修正対象パターン名「車両保険金額チェック機能」の修正発生回数の合計「１１回」を取得し、影響波及パターン情報の修正発生回数の合計「担当者内：５回、担当者間：２回」から影響波及率「（５回＋２回）÷１１」を算出し、影響波及パターン情報に格納する。ここで、影響波及率は、影響波及パターン（修正対象箇所⇒影響波及箇所）において、影響波及パターンの修正発生回数を修正対象箇所の修正発生回数で割算した値としている。
【００４９】
コンポーネント設計支援システム２の修正工数算出部２２３は、影響波及パターン情報格納部２２５から影響波及ＩＤが昇順に修正発生回数と累計修正工数を取得し、影響波及パターン平均修正工数を算出し、影響波及パターン情報格納部２２５に格納する（処理Ｓ２０５５）。例えば、影響波及パターン情報の影響波及ＩＤ「００ａ」については、修正発生回数の合計「担当者内：５回、担当者間：２回」と累計修正工数「担当者内：１０ｈ、担当者間：８ｈ」を取得し、影響波及パターン平均修正工数「担当者内：２ｈ／回、担当者間：４ｈ／回」を算出し、影響波及パターン情報に格納する。
なお、これら保守履歴分析処理は、月に一度など定期的ないし周期的に実施することも、新しい契約が加わった際にリアルタイムで実施することも可能である。
【００５０】
＝＝＝コンポーネント情報取得の処理＝＝＝
コンポーネント設計者などからコンポーネントの設計案であるコンポーネント情報の登録を受け付ける際の処理について説明する。コンポーネント設計案のイメージを図１８に示す。ここでは、コンポーネント内のオブジェクト間の依存関係と共にコンポーネントの保守担当者情報を受け付けることで、保守担当者の担当範囲を考慮した精度の高い保守工数評価の実現をねらっている。例えば、修正範囲が一人の保守担当者で閉じる場合は保守工数が少なく済むが、修正範囲が複数の保守担当者に跨る場合は保守工数が多くなる。
【００５１】
図３の説明に戻る。コンポーネント設計情報入出力システム３のコンポーネント情報送受信部３０１は、コンポーネント設計者などからコンポーネント情報としてコンポーネント設計案、コンポーネント名、担当者ＩＤ、構成ＩＤ、構成オブジェクト、依存関係オブジェクト、担当者区分の入力を受け付けて、保守担当者情報として担当者ＩＤ、担当者名、担当コンポーネント名、所属部署の入力を受け付けて、コンポーネント設計支援システム２に送信する（処理Ｓ３０１）。
【００５２】
コンポーネント設計支援システム２のコンポーネント情報受信部２３１は、コンポーネント設計情報入出力システム３のコンポーネント情報送受信部３０１から受信したコンポーネント情報をコンポーネント情報格納部２３２に格納し、コンポーネント設計情報入出力システム３のコンポーネント情報送受信部３０１から受信した保守担当者情報を保守担当者情報格納部２３３に格納する（処理Ｓ２０６）。
【００５３】
＝＝＝保守工数評価の処理＝＝＝
コンポーネントの設計案に対して、保守履歴から抽出した修正パターンを利用して影響波及予測情報を構築し、コンポーネントの保守工数を評価する際の処理について説明する。保守時の影響波及のイメージを図１９に示す。ここでは、コンポーネント設計者が設計した設計案に対して、保守履歴に基づいて依存関係のあるオブジェクト間の影響波及を予測し、最も保守工数が少なくなる設計案を提示することで保守性の高いコンポーネント設計を支援することをねらっている。
【００５４】
コンポーネント設計支援システム２の影響波及予測部２４１は、コンポーネント情報格納部２３２からコンポーネント情報としてコンポーネント設計案、コンポーネント名、構成オブジェクト、依存関係オブジェクト、担当者区分を取得する（処理Ｓ２０７）。
【００５５】
コンポーネント設計支援システム２の影響波及予測部２４１は、コンポーネント情報の構成ＩＤが昇順に構成オブジェクトと影響波及オブジェクトの組み合わせを抽出し、影響波及パターン情報格納部２２５に格納されている影響波及パターン名と比較して、一致する影響波及パターンの影響波及率と影響波及パターン平均修正工数を抽出し、影響波及率と影響波及パターン平均修正工数から影響波及オブジェクト平均修正工数を算出し、修正対象パターン情報格納部２２４に格納されている修正対象パターン情報と影響波及オブジェクト平均修正工数から構成オブジェクト平均修正工数と修正発生回数を算出し、設計案保守工数を算出し、保守工数情報格納部２４５に格納する（処理Ｓ２０８）。
処理Ｓ２０８の詳細は、図６に示すフロー図における処理Ｓ２０８１〜処理Ｓ２０８５の処理となる。
【００５６】
ここで、図６の説明を行う。図６は、コンポーネント情報からコンポーネントの設計案ごとの保守工数を評価する処理の流れを示すフロー図である。
コンポーネント設計支援システム２の影響波及予測部２４１は、コンポーネント情報のコンポーネント設計案ごとに構成ＩＤが昇順に構成オブジェクトと依存関係オブジェクトの組み合わせと担当者区分を抽出し、依存関係オブジェクトを影響波及オブジェクトとして影響波及予測情報格納部２４４に格納する（処理Ｓ２０８１）。例えば、コンポーネント情報の構成ＩＤ「（１）-１」については、構成オブジェクト「車両保険金額チェック機能」と依存関係オブジェクト「車両保険金額データ」の組み合わせから影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト「⇒１次：車両保険金額データ」と担当者区分「担当者内」を抽出し、構成オブジェクト「車両保険金額チェック機能」と依存関係オブジェクト「車両保険料計算」の組み合わせから影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト「⇒１次：車両保険料計算」と担当者区分「担当者間」を抽出する。さらに、２次的な影響波及を抽出するために影響波及オブジェクト「⇒１次：車両保険料計算機能」に対して、同一コンポーネント設計案の中にある同名の構成オブジェクト「車両保険料計算機能」とその依存関係オブジェクト「車両保険割引チェック機能」を影響波及オブジェクト「⇒２次：車両保険割引チェック機能」として抽出する。３次波及以降についても同様の処理を実行し、依存関係オブジェクトが「−」になる（無くなる）まで繰り返す。
【００５７】
コンポーネント設計支援システム２の影響波及予測部２４１は、影響波及予測情報格納部２４４に格納されている構成オブジェクトと影響波及オブジェクトの組み合わせごとに影響波及パターン情報格納部２２５に格納されている影響波及パターン名とマッチングし、一致する影響波及パターン名の影響波及率、影響波及パターン平均修正工数を抽出する（処理Ｓ２０８２）。例えば、影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト「車両保険金額データ」の組み合わせごとに、影響波及パターン情報の影響波及パターン名とマッチングし、一致する影響波及パターン名「車両保険金額チェック機能⇒車両保険金額データ」の影響波及率「７／１１」、影響波及パターン平均修正工数「担当者内：２ｈ／回、担当者間：４ｈ／回」を取得する。さらに、影響波及オブジェクトに２次波及がある場合は、影響波及オブジェクトの１次波及「車両保険料計算機能」と２次波及「車両保険割引チェック機能」の組み合わせごとに、影響波及パターン情報の影響波及パターン名とマッチングし、一致する影響波及パターン名「車両保険料計算機能⇒車両保険割引チェック機能」の影響波及率「６／８」、影響波及パターン平均修正工数「担当者内：２ｈ／回、担当者間：６ｈ／回」を取得する。３次波及以降についても同様の処理を実行し、影響波及オブジェクトが「−」になる（無くなる）まで繰り返す。
【００５８】
コンポーネント設計支援システム２の影響波及予測部２４１は、影響波及予測情報格納部２４４に格納されている構成オブジェクトごとに、影響波及オブジェクトの影響波及率と影響波及パターン平均修正工数と担当者区分から影響波及オブジェクト平均修正工数を算出し、影響波及予測情報格納部２４４に格納する（処理Ｓ２０８３）。例えば、構成オブジェクト「車両保険金額チェック機能」については、影響波及オブジェクト「車両保険金額チェック機能⇒１次：車両保険金額データ」の影響波及率「７／１１」、影響波及パターン平均修正工数「担当者内：２ｈ／回、担当者間：４ｈ／回」、担当者区分「担当者内」に基づいて、影響波及率「７／１１」と影響波及パターン平均修正工数「担当者内：２ｈ／回」を乗算「（７／１１）×２＝１４／１１ｈ／回」し、影響波及オブジェクト「車両保険金額チェック機能⇒１次：車両保険料計算機能」の影響波及率「８／１１」、影響波及パターン平均修正工数「担当者内：３ｈ／回、担当者間：７ｈ／回」、担当者区分「担当者間」に基づいて、影響波及率「８／１１」と影響波及パターン平均修正工数「担当者間：７ｈ／回」を乗算「（８／１１）×７＝５６／１１ｈ／回」し、影響波及オブジェクト「１次：車両保険料計算機能⇒２次：車両保険割引チェック機能」の影響波及率「６／８」、影響波及パターン平均修正工数「担当者内：１ｈ／回、担当者間：６ｈ／回」、担当者区分「担当者内」に基づいて、影響波及率「６／８」と「車両保険金額チェック機能⇒１次：車両保険料計算機能」の影響波及率「８／１１」と影響波及パターン平均修正工数「担当者間：１ｈ／回」を乗算「（６／８）×（８／１１）×１＝６／１１ｈ／回」し、影響波及オブジェクト「１次：車両保険料計算機能⇒２次：車両保険割引データ」の影響波及率「１／８」、影響波及パターン平均修正工数「担当者内：１ｈ／回、担当者間：３ｈ／回」、担当者区分「担当者内」に基づいて、影響波及率「１／８」と「車両保険金額チェック機能⇒１次：車両保険料計算機能」の影響波及率「８／１１」と影響波及パターン平均修正工数「担当者間：１ｈ／回」を乗算「（１／８）×（８／１１）×１＝１／１１ｈ／回」し、それらの和を計算することで影響波及オブジェクト平均修正工数「７ｈ／回」を算出する。
【００５９】
なお、本実施形態では、影響波及オブジェクトを３次波及まで抽出する例を示しているが、４次波及以降も含めた影響波及を抽出する場合や、影響波及率の下限値を予め設定して下限値を下回る影響波及は対象外にする場合なども考えられる。
【００６０】
コンポーネント設計支援システム２の保守工数算出部２４２は、影響波及予測情報格納部２４４に格納されているコンポーネント設計案ごとに、構成オブジェクトと影響波及オブジェクト平均修正工数を抽出し、抽出した構成オブジェクトと修正対象パターン情報格納部２２４に格納されている修正対象パターン名とマッチングし、一致する修正対象パターンの修正対象パターン平均修正工数と修正発生回数を抽出し、保守工数情報格納部２４５に格納する（処理Ｓ２０８４）。例えば、影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト平均修正工数「７ｈ／回」を抽出し、抽出した構成オブジェクト「車両保険金額チェック機能」と修正対象パターン情報の修正パターン名をマッチングし、一致する修正対象パターン名「車両保険金額チェック機能」の修正対象パターン平均修正工数「２ｈ／回」と修正発生回数「５．５回／年」を抽出し、保守工数情報格納部２４５に格納する。
上記の処理Ｓ２０８１〜処理Ｓ２０８４を、コンポーネント情報の各構成オブジェクトについて実施する。
【００６１】
コンポーネント設計支援システム２の保守工数算出部２４２は、保守工数情報格納部２４５に格納されているコンポーネント設計案ごとに、構成オブジェクトの修正対象オブジェクト平均修正工数と影響波及オブジェクト平均修正工数と修正発生回数から設計案保守工数を算出し、保守工数情報格納部２４５に格納する（処理Ｓ２０８５）。例えば、保守工数情報のコンポーネント設計案「設計案（１）」の構成オブジェクト「車両保険金額チェック機能」の修正対象オブジェクト平均修正工数「２ｈ／回」と影響波及オブジェクト平均修正工数「７ｈ／回」の和「９ｈ／回」に修正発生回数「５．５回／年」を乗算する処理を各構成オブジェクトに対して実施し、それらの和から設計案保守工数「１７４．５ｈ／年」を算出する。
【００６２】
コンポーネント設計支援システム２のコンポーネント構成評価部２４３は、保守工数情報格納部２４５に格納されているコンポーネント設計案、構成オブジェクト平均修正工数、修正発生回数、設計案保守工数を取得し、評価結果としてコンポーネント設計情報入出力システム３に送信する（処理Ｓ２０９）。
コンポーネント設計情報入出力システム３のコンポーネント情報送受信部３０１は、コンポーネント設計支援システム２から受信した保守工数情報を図２０に示すような画面に表示し、コンポーネント設計者に提示する（処理Ｓ３０２）。
【００６３】
以上で本実施形態の説明を終わる。この説明は一例であり本発明を限定するものではない。なお、本実施形態では、機能およびデータの依存関係を評価の対象としているが、機能の依存関係のみ、データの依存関係のみ、機能とデータを一体化したクラスの依存関係を対象として評価を実施することも可能である。本発明はその趣旨を逸脱することなく変更、改良され得ると共に本発明にはその等価物が含まれるのは勿論である。
【符号の説明】
【００６４】
１      システム保守情報入力システム
１０１  システム保守情報送信部
２      コンポーネント設計支援システム
２１１  保守履歴情報抽出部
２１２  保守履歴情報格納部
２１３  機能辞書情報格納部
２１４  データ辞書情報格納部
２１５  保守履歴オブジェクト情報格納部
２２１  保守パターン抽出部
２２２  影響波及率算出部
２２３  修正工数算出部
２２４  修正対象パターン情報格納部
２２５  影響波及パターン情報格納部
２３１  コンポーネント情報受信部
２３２  コンポーネント情報格納部
２３３  保守担当者情報格納部
２４１  影響波及予測部
２４２  保守工数算出部
２４３  コンポーネント構成評価部
２４４  影響波及予測情報格納部
２４５  保守工数情報格納部
３      コンポーネント設計情報入出力システム
３０１  コンポーネント設計情報送受信部
４      通信ネットワーク
【図１】
0005564474.tif 000002
【図２】
0005564474.tif 000003
【図３】
0005564474.tif 000004
【図４】
0005564474.tif 000005
【図５】
0005564474.tif 000006
【図６】
0005564474.tif 000007
【図７】
0005564474.tif 000008
【図８】
0005564474.tif 000009
【図９】
0005564474.tif 000010
【図１０】
0005564474.tif 000011
【図１１】
0005564474.tif 000012
【図１２】
0005564474.tif 000013
【図１３】
0005564474.tif 000014
【図１４】
0005564474.tif 000015
【図１５】
0005564474.tif 000016
【図１６】
0005564474.tif 000017
【図１７】
0005564474.tif 000018
【図１８】
0005564474.tif 000019
【図１９】
0005564474.tif 000020
【図２０】
0005564474.tif 000021