説明

コンポーネント設計支援方法およびシステム

【課題】
システムの保守性向上を目指して、コンポーネントの保守工数を定量的に評価するシステムを提供する
【解決手段】
上記の課題を解決するために、本発明では、システム設計者が業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントを設計する際に、保守履歴情報を用いて保守時の影響波及箇所と修正工数などをパターン化した保守パターンを抽出し、保守パターンによってコンポーネントの保守工数を評価することで、保守工数が最小となるコンポーネントを設計可能とするものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、業務アプリケーションなどのシステム設計方法に係わり、特に、通信ネットワークを介して、システム設計者が、業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントを設計するための技術に関する。
【背景技術】
【0002】
現在、業務を実行するために業務アプリケーションなどのシステムを利用することがなされている。このようなシステムは、複数のコンポーネントから構成されることが多く、構成が複雑化する傾向にあり、その管理を行う技術がいくつか提案されている。その1つとして、特開2009−129355号公報(特許文献1)がある。この特許文献1には、「不正な依存関係を規定するポリシーデータを用いて、依存関係の中から前記ポリシーに反する依存関係を検出し、ポリシーに反する依存関係を改善する案を用いて、検出したポリシーに反する依存関係の改善案の候補を出力する依存関係分析部を有するコンポーネント分割支援装置によって解決される」と記載されている。
【0003】
また、「Strategy-Based Design of Reusable Business Components」(非特許文献1)がある。この文献には、コンポーネントを構成するオブジェクト間の依存関係から、コンポーネントの保守性をCohesion(凝集性)、Coupling(結合性)、Complexity(複雑性)などの複数の指標で評価する手法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−129355号公報
【非特許文献】
【0005】
【非特許文献1】文献名:Strategy-Based Design of Reusable Business Components、Systems、Man、and Cybernetics、Part C: Applications and Reviews、IEEE Transactions、2004
【発明の概要】
【発明が解決しようとする課題】
【0006】
大規模システム開発においては、開発対象のシステムをコンポーネントと呼ぶサブシステムの単位に分割して、コンポーネントごとに開発・保守を行うコンポーネント指向開発が注目されている。コンポーネント指向開発では、システムの保守性向上を目指して、依存関係のある機能とデータを抽出し、同一のコンポーネントに的確に割り当てることで、保守工数を最小化することが重要となる。例えば、依存関係のある「契約チェック機能」と「契約データ」は、保守時の修正が同時に発生する可能性が高いため、同じコンポーネントに割り当てて、保守工数を低減することが望ましい。
【0007】
特許文献1に開示された技術では、オブジェクト間の依存関係を規定するポリシーによって、機能間の相互呼出などの保守性に影響を与える不正な依存関係を抽出・改善するが、コンポーネントごとの保守工数を定量的に測定することができない。例えば、複数のコンポーネント設計案から保守工数を定量的に測定し、保守性が最も高い設計案を判定できない。
【0008】
非特許文献1では、複数の指標を用いてコンポーネントの保守性を定量的に評価するが、保守工数そのものを測定することができない。また、オブジェクト間の依存関係のみを評価しているため、業務アプリケーションのドメイン特性に基づく“保守の傾向”や“保守担当者の担当範囲”が保守性の評価に反映されていない。例えば、業務アプリケーションのドメイン特性によって、保守時の修正が発生し易い機能やデータ、修正の影響が波及し易い機能やデータが異なる。また、保守時の修正範囲が、一人の担当者で対応可能なのか、複数の担当者で連携が必要なのかによって保守工数が変化する。
【0009】
本発明は、過去の保守履歴情報から保守の傾向をパターン化すると共に、保守担当者の担当範囲を考慮して、コンポーネントの保守工数を定量的に評価するシステムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明では、過去の保守履歴情報を用いて保守時の影響波及箇所と修正工数などをパターン化した保守パターンを抽出し、保守パターンによってコンポーネントの保守工数を評価することで、保守工数が最小となるコンポーネントの設計を支援する。より具体的な構成としては、例えば以下の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、システム設計者が、システムの保守履歴情報から保守時の修正箇所や修正工数を保守パターン情報として蓄積し、新たにシステムのコンポーネントを設計する際に、前記保守パターン情報に基づいてコンポーネントの保守工数を測定し、保守性の高いコンポーネントの設計を支援するコンポーネント設計支援方法であって、
システム保守担当者から保守時の修正箇所や修正工数を受け付けて前記保守履歴情報として格納する保守履歴情報登録ステップと、
前記保守履歴情報に基づいて、保守時の修正対象箇所や修正工数をパターン化して保守パターン情報を抽出する保守パターン抽出ステップと、
前記システム設計者からシステムをサブシステムに分割したコンポーネントの設計情報を受け付けてコンポーネント情報として格納するコンポーネント情報登録ステップと、
前記コンポーネント情報と前記保守パターン情報に基づいて、システムの保守時に発生すると考えられるコンポーネントの保守工数を算出する保守工数評価ステップと、
この保守工数評価ステップで算出したコンポーネントの保守工数情報を、通信網を介して前記システム設計者に提供するステップを有する。
【発明の効果】
【0011】
本発明によれば、業務アプリケーションなどのシステム開発において、コンポーネントの保守工数を定量的に評価し、従来より保守性の高い業務アプリケーションを開発できる。
【図面の簡単な説明】
【0012】
【図1】コンポーネント設計支援システムの構成図の例である。
【図2】コンポーネント設計支援システムに用いられるコンピュータの典型的なハードウェア構成の例である。
【図3】コンポーネント設計支援の処理全体のフローチャートの例である。
【図4】修正対象パターン抽出の処理のフローチャートの例である。
【図5】影響波及パターン抽出の処理のフローチャートの例である。
【図6】保守工数評価の処理のフローチャートの例である。
【図7】保守履歴情報テーブルの例である。
【図8】機能辞書情報テーブルの例である。
【図9】データ辞書情報テーブルの例である。
【図10】保守履歴オブジェクト情報テーブルの例である。
【図11】修正対象パターン情報テーブルの例である。
【図12】影響波及パターン情報テーブルの例である。
【図13】コンポーネント情報テーブルの例である。
【図14】保守担当者情報テーブルの例である。
【図15】影響波及予測情報テーブルの例である。
【図16】保守工数情報テーブルの例である。
【図17】保守履歴情報に基づく保守パターンの抽出イメージを示す概念図である。
【図18】コンポーネント設計案のイメージを示す概念図である。
【図19】保守時の影響波及のイメージを示す概念図である。
【図20】コンポーネント設計支援機能の画面の例である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施形態について図面を用いて説明する。
本実施形態では、業務アプリケーションなどのシステム設計において保守性の向上を目指してコンポーネントを設計する際に、過去の保守履歴情報から保守時の影響波及箇所と修正工数をパターン化し、コンポーネントの保守工数を評価するコンポーネント設計支援システム2の例を説明する。
【0014】
以下、このような背景の下で運用される、本発明の実施形態に係るコンポーネント設計支援システムについて詳細に説明する。
【0015】
===実施形態の概要===
本実施形態では、システム保守情報入力システム1が保守担当者などから保守履歴情報の入力を受け付けてコンポーネント設計支援システム2に送信し、コンポーネント設計支援システム2が保守履歴情報を蓄積し、保守履歴情報から保守時の影響波及箇所や修正工数などの影響波及パターン情報を算出し、コンポーネント設計情報入出力システム3がコンポーネント設計者などからコンポーネント情報の入力を受け付けてコンポーネント設計支援システム2に送信し、コンポーネント設計支援システム2がコンポーネント情報に基づいて影響波及パターン情報からコンポーネントの保守工数を評価し、コンポーネント設計情報入出力システム3に評価結果を送信する場合について説明する。
【0016】
図1に、本実施形態におけるシステムの構成を示している。本システムでは、システム保守情報入力システム1と、コンポーネント設計支援システム2と、コンポーネント設計情報入出力システム3とが、通信ネットワーク4で接続されている。なお、複数のシステム保守情報入力システム1とコンポーネント設計情報入出力システム3を通信ネットワーク5に接続するようにしてもよい。通信ネットワーク4は、LAN、インターネット、他の任意の有線または無線を使ったネットワークとすることができる。システム保守情報入力システム1と、コンポーネント設計支援システム2と、コンポーネント設計情報入出力システム3は、夫々演算処理のためのCPUと、データやプログラムを記憶するための記憶装置(例えば、RAM、ROM、ハードディスク等)と、外部機器とネットワーク5を介して通信するための通信装置とを備えるコンピュータである。
【0017】
===ハードウェア構成===
図2に、コンポーネント設計支援システム2に用いられるコンピュータの典型的なハードウェア構成を示している。この図に示す構成のコンピュータは、保守情報入力システム1、コンポーネント設計情報入出力システム3にも用いられる。図2に示すように、コンポーネント設計支援システム2は、CPU2001、メモリ2002、記憶装置2003、通信インタフェース2004、記録媒体読取装置2005、記録媒体2006、入力装置2007、出力装置2008を備えている。
【0018】
CPU2001はコンポーネント設計支援システム2の全体の制御を司るもので、メモリ2002に格納されたプログラム2009を実行することにより各種機能を実現する。記録媒体読取装置2005は、記録媒体2006に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ2002に格納される。従って、例えばメモリ2002に記憶されているプログラム2009は、記録媒体読取装置2005を用いて記録媒体2006から読み取り、メモリ2002に格納することができる。なお、後述する本実施形態の処理は、プログラムに従ってCPU2001がその演算を実行することで実現される。記録媒体2006としては、例えばCD-ROMやDVD-ROM、ハードディスク、フレキシブルディスク、半導体メモリ、磁気テープ等を用いることができる。記録媒体読取装置2005はコンポーネント設計支援システム2に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。入力装置2007は、オペレータ等によるコンポーネント設計支援システム2へのデータ等の入力のために用いられる。入力装置2007としては、例えばキーボードやマウス、マイク等が用いられる。出力装置2008は情報を外部に出力するための装置である。出力装置2008としては、例えばディスプレイやプリンタ、スピーカ等が用いられる。通信インタフェース2004は通信ネットワーク4に接続し、保守情報入力システム1やコンポーネント設計情報入出力システム3等の外部の装置との間で通信を行うための装置である。
【0019】
===システム保守情報入力システム1===
図1のシステム保守情報入出力システム1において、システム保守情報送信部101は、システムの保守担当者から保守履歴情報の入力を受け付けて、コンポーネント設計支援システム2に送信する機能を備える。
【0020】
===コンポーネント設計支援システム2===
図1のコンポーネント設計支援システム2において、保守履歴情報格納部212は、図7に示すように、保守案件ID、保守案件名、案件概要、修正対象箇所のシステム機能/データ名、修正対象箇所の修正工数、影響波及箇所のシステム機能/データ名、影響波及箇所の修正工数、保守担当者、実施日を格納している。
【0021】
機能辞書情報格納部213は、図8に示すように、機能ID、機能オブジェクト名、システム機能名を格納している。
【0022】
データ辞書情報格納部214は、図9に示すように、データID、データオブジェクト名、システムデータ名を格納している。
【0023】
保守履歴オブジェクト情報格納部215は、図10に示すように、保守案件ID、保守案件名、案件概要、修正対象箇所の機能/データオブジェクト名、修正対象箇所の修正工数、影響波及箇所機能/データオブジェクト名、影響波及箇所の修正工数、保守担当者、実施日を格納している。
【0024】
修正対象パターン情報格納部224は、図11に示すように、修正対象ID、修正対象パターン名、修正発生回数、修正対象パターン平均修正工数を格納している。
【0025】
影響波及パターン情報格納部225、図12に示すように、影響波及ID、影響波及パターン名(修正対象箇所、影響波及箇所)、修正発生回数、影響波及率、影響波及パターン平均修正工数(担当者内、担当者間)を格納している。
【0026】
コンポーネント情報格納部232は、図13に示すように、コンポーネント設計案、コンポーネント名、担当者ID、構成ID、構成オブジェクト、依存関係オブジェクト、担当者区分を格納している。
保守担当者情報格納部233は、図14に示すように、担当者ID、担当者名、担当コンポーネント名、所属部署を格納している。
影響波及予測情報格納部244は、図15に示すように、コンポーネント設計案、コンポーネント名、構成オブジェクト、影響波及オブジェクト、担当者区分、影響波及率、修正工数、影響波及オブジェクト平均修正工数を格納している。
【0027】
保守工数情報格納部245は、図16に示すように、コンポーネント設計案、コンポーネント名、構成オブジェクト、構成オブジェクト平均修正工数、修正発生回数、設計案保守工数を格納している。
保守履歴情報抽出部211は、システム保守情報入力システム1から保守履歴情報を受信し、受信した保守履歴情報を保守履歴情報格納部212に格納し、保守履歴情報のシステム機能名について機能辞書情報格納部213に格納されているシステム機能名と一致するシステム機能名を機能オブジェクト名に変換し、保守履歴情報のシステムデータ名についてデータ辞書情報格納部214に格納されているシステムデータ名と一致するシステムデータ名をデータオブジェクト名に変換し、保守履歴オブジェクト情報として保守履歴オブジェクト情報格納部215に格納する機能を備える。
保守パターン抽出部221は、保守履歴オブジェクト情報格納部215に格納されている保守履歴オブジェクト情報を取得し、修正対象箇所を修正対象パターンとして抽出し、修正対象パターンの発生回数と平均修正工数を算出し、修正対象パターン情報格納部224に格納し、修正対象箇所と影響波及箇所の組合せを影響波及パターンとして抽出し、影響波及パターンの発生回数と平均修正工数を算出し、影響波及パターン情報格納部225に格納する機能を備える。
【0028】
影響波及率算出部222は、影響波及パターン情報格納部225に格納されている影響波及パターンごとに影響波及率を算出し、影響波及パターン情報格納部225に格納する機能を備える。
修正工数算出部223は、修正対象パターン情報格納部224に格納されている修正対象パターンごとに平均修正工数を算出し、修正対象パターン情報格納部224に格納し、影響波及パターン情報格納部225に格納されている影響波及パターンごとに平均修正工数を算出し、影響波及パターン情報格納部225に格納する機能を備える。
コンポーネント情報受信部231は、コンポーネント設計情報入出力システム3からコンポーネント情報と保守担当者情報を受信し、コンポーネント情報格納部232と保守担当者情報格納部233に格納する機能を備える。
【0029】
影響波及予測部241は、コンポーネント情報格納部232に格納されている構成オブジェクトと依存関係オブジェクトの組合せから影響波及オブジェクトを抽出し、影響波及パターン情報格納部225に格納されている影響波及パターンをマッチングして一致する影響波及パターンの影響波及率と影響波及パターン平均修正工数を取得し、影響波及オブジェクト平均修正工数を算出し、影響波及予測情報格納部244に格納する機能を備える。
保守工数算出部242は、影響波及予測情報格納部244に格納されている影響波及オブジェクト平均修正工数と修正対象パターン情報格納部225に格納されている修正対象パターン平均修正工数からコンポーネント設計案ごとの保守予測工数を算出し、保守工数情報格納部245に格納する機能を備える。
コンポーネント構成評価部243は、保守工数情報格納部245から保守工数情報を取得し、コンポーネントの評価結果としてコンポーネント設計情報入出力システム3に送信する機能を備える。
【0030】
===コンポーネント設計情報入出力システム3===
図1のコンポーネント設計情報入出力システム3において、コンポーネント情報送受信部301は、コンポーネント設計者からコンポーネント設計情報と保守担当者情報の入力を受け付けて、コンポーネント設計支援システム2に送信し、コンポーネント設計支援システム2からコンポーネントの評価結果を受信し、図20に示すようなコンポーネント評価結果を表示する機能を備える。
【0031】
===システム処理の概要===
図3は、本実施形態に係るコンポーネント設計支援システムにおいて、システムの保守履歴情報を受け付けて、保守パターンを抽出すると共に、コンポーネント設計情報を受け付けて、コンポーネントの保守工数を評価し、評価結果を通知する処理フローを示したフロー図である。
【0032】
図3において、システム保守情報入力システム1がコンポーネント設計支援システム2に保守履歴情報を送信し、コンポーネント設計支援システム2が保守履歴情報を一般化した保守履歴オブジェクト情報に変換し、コンポーネント設計支援システム2が保守履歴オブジェクト情報から保守パターンを抽出し、コンポーネント設計情報入力システム3がコンポーネント設計支援システム2にコンポーネント情報を送信し、コンポーネント設計支援システム2がコンポーネント情報に保守パターンを適用して保守工数を評価し、コンポーネント設計情報入力システム3に評価結果を送信することによって、コンポーネント設計を支援する場合のフローを示している。また、図3に示す処理は、システム保守情報入力システム1、コンポーネント設計支援システム2、コンポーネント設計情報入出力システム3の夫々において、CPUがプログラムを実行することにより実現される。この点は、上述したとおりである。
【0033】
処理S101はシステム保守情報入力システム1で実行される処理、処理S201〜処理S209はコンポーネント設計支援システム2で実行される処理、処理S301〜処理S302はコンポーネント設計情報入出力システム3で実行される処理を夫々示している。
【0034】
===保守履歴情報登録の処理===
システム保守担当者などから保守履歴情報の登録を受け付ける際の処理について説明する。ここでは、保守履歴情報に記述されたプログラムレベルのシステム機能/データ名を一般化した機能/データオブジェクト名に変換を行うことで、汎用性の高い保守履歴情報を蓄積することをねらっている。
【0035】
ここで、図3の説明を行う。システム保守情報入力システム1のシステム保守情報送信部101は、保守担当者などから保守履歴情報として保守案件ID、保守案件名、案件概要、修正対象箇所のシステム機能/データ名、修正対象箇所の修正工数、影響波及箇所のシステム機能/データ名、影響波及箇所の修正工数、保守担当者、実施日の入力を受け付けて、コンポーネント設計支援システム2に送信する(処理S101)。
【0036】
コンポーネント設計支援システム2の保守履歴情報抽出部211は、システム保守情報入力システム1のシステム保守情報送信部101から受信した保守履歴情報を保守履歴情報格納部212に格納する(処理S201)。
【0037】
コンポーネント設計支援システム2の保守履歴情報抽出部211は、保守履歴情報格納部212に格納されている保守履歴情報を取得し、保守案件IDが昇順に保守履歴情報に記載されている修正対象箇所のシステム機能/データ名および影響波及箇所のシステム機能/データ名に対して、機能辞書情報格納部213に格納されているシステム機能名と比較して一致する場合は機能オブジェクト名に変換し、データ辞書情報格納部214に格納されているシステムデータ名と比較して一致する場合はデータオブジェクト名に変換し、保守履歴情報の保守案件ID、保守案件名、案件概要、修正対象箇所の機能/データオブジェクト名、修正対象箇所の修正工数、影響波及箇所の機能/データオブジェクト名、影響波及箇所の修正工数、保守担当者、実施日を保守履歴オブジェクト情報格納部215に格納する(処理S202)。例えば、保守履歴情報の修正対象箇所のシステム機能/データ名「sharyo_max_check()」を機能辞書情報の「車両保険金額チェック機能」に変換し、影響波及箇所のシステム機能/データ名「sharyo_max_data」をデータ辞書情報の「車両保険金額データ」に変換し、保守履歴オブジェクト情報に格納する。
【0038】
===保守パターン抽出の処理===
保守履歴情報を分析して保守の修正パターンを抽出する際の処理について説明する。ここでは、保守時の修正を直接的な“修正対象箇所”と修正によって影響を受ける間接的な“影響波及箇所”の2つに区別して、保守パターンを抽出し、保守パターンごとの影響波及率と修正工数を算出することで精度のより高い修正パターン情報を構築することをねらっている。
【0039】
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報格納部215から保守履歴オブジェクト情報を取得する。(処理S203)
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から修正対象パターンを抽出する処理を実施し、修正対象パターン情報格納部224に格納する(処理S204)。
処理S204の詳細は、図4に示すフロー図における処理S2041〜処理S2044の処理となる。
【0040】
ここで、図4の説明を行う。図4は、保守履歴オブジェクト情報から修正対象パターンを抽出する処理の流れを示すフロー図である。
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から保守案件IDが昇順に、修正対象箇所の機能/データオブジェクト名、修正対象箇所の修正工数、保守担当者、実施日を抽出する(処理S2041)。
【0041】
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能/データオブジェクト名と修正対象パターン情報格納部224に格納されている修正対象パターン名を比較し、一致する場合は保守履歴オブジェクト情報から抽出した修正対象箇所の修正工数と実施日に基づいて修正対象パターン情報の修正発生回数と累計修正工数を算出し、修正対象パターン情報格納部224に格納する(処理S2042)。例えば、保守履歴オブジェクト情報の修正対象箇所の機能/データオブジェクト名「車両保険金額チェック機能」と一致する修正対象パターン情報の修正対象パターン名「車両保険金額チェック機能」について、保守履歴オブジェクト情報の実施日「2010年4月1日」と修正対象箇所の修正工数「1h」から、修正対象パターン情報の修正発生回数の2010年のカウントを1つ増やして「6回」とし、累計修正工数に「1h」を増やして「22h」とし、修正対象パターン情報に格納する。
【0042】
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能/データオブジェクト名と修正対象パターン情報格納部224に格納されている修正対象パターン名を比較し、一致するものがない場合は新規に修正対象IDを発行し、修正対象箇所の機能/データオブジェクト名を修正対象パターン名として追加し、保守履歴オブジェクト情報から抽出した修正対象箇所の修正工数と登録日に基づいて修正対象パターン情報の修正発生回数と累計修正工数を更新し、修正対象パターン情報格納部224に格納する(処理S2043)。
【0043】
上記、処理S2041〜処理S2043を、保守履歴オブジェクト情報の各保守案件について実施する。
コンポーネント設計支援システム2の修正工数算出部223は、修正対象パターン情報格納部224から修正対象IDが昇順に修正対象パターンの修正発生回数と累計修正工数を取得し、修正対象パターン平均修正工数を算出し、修正対象パターン情報格納部224に格納する(処理S2044)。例えば、修正対象パターン情報の修正対象ID「00A」については、修正発生回数の合計「11回」と累計修正工数「22h」を取得し、修正対象パターン平均修正工数「2h/回」を算出し、修正対象パターン情報に格納する。
【0044】
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から影響波及パターンを抽出する処理を実施し、影響波及パターン情報格納部225に格納する(処理S205)。
処理S205の詳細は、図5に示すフロー図における処理S2051〜処理S2055の処理となる。
【0045】
ここで、図5の説明を行う。図5は、保守履歴オブジェクト情報から修正対象パターンを抽出する処理の流れを示すフロー図である。
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から保守案件IDが昇順に、修正対象箇所の機能/データオブジェクト名、影響波及箇所の機能/データオブジェクト名、影響波及箇所の修正工数、保守担当者、実施日を抽出する(処理S2051)。
【0046】
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能/データオブジェクト名と影響波及箇所の機能/データオブジェクト名の組み合わせと影響波及パターン情報格納部225に格納されている影響波及パターン名を比較し、一致する場合は保守履歴オブジェクト情報から抽出した修正対象箇所の修正工数、保守担当者、登録日に基づいて影響波及パターン情報の修正発生回数と累計修正工数を更新し、影響波及パターン情報格納部225に格納する(処理S2052)。例えば、保守履歴オブジェクト情報の修正対象箇所の機能/データオブジェクト名「車両保険金額チェック機能」と影響波及箇所の機能/データオブジェクト名「車両保険金額データ」の組み合わせと一致する影響波及パターン情報の影響波及パターン名「車両保険金額チェック機能⇒車両保険金額データ」について、保守履歴オブジェクト情報の実施日「2010年4月1日」と影響波及箇所の修正工数「2h」と保守担当者「日立太郎」から、修正対象パターン情報の修正発生回数の2010年の担当者内のカウントを1つ増やして「3回」とし、累計修正工数の担当者内に「2h」を増やして「10h」とし、修正対象パターン情報に格納する。なお、保守担当者の欄に単一の担当者名が記載されている場合は担当者内での修正、複数の担当者名が記載されている場合は担当者間での修正と判断する。
【0047】
コンポーネント設計支援システム2の保守パターン抽出部221は、保守履歴オブジェクト情報から抽出した修正対象箇所の機能/データオブジェクト名と影響波及箇所の機能/データオブジェクト名の組み合わせと影響波及パターン情報格納部225に格納されている影響波及パターン名を比較し、一致するものがない場合は新規に影響波及IDを発行し、修正対象箇所の機能/データオブジェクト名と影響波及箇所の機能/データオブジェクト名の組み合わせを影響波及パターン名として追加し、保守履歴オブジェクト情報から抽出した影響波及箇所の修正工数、保守担当者、登録日に基づいて影響波及パターン情報の修正発生回数、累計修正工数、を算出し、影響波及パターン情報格納部225に格納する(処理S2053)。
【0048】
上記の処理S2051〜処理S2053を、保守履歴オブジェクト情報の各保守案件について実施する。
コンポーネント設計支援システム2の影響波及率算出部222は、影響波及パターン情報格納部225から影響波及IDが昇順に影響波及パターン名の修正対象箇所と修正発生回数の合計を取得し、修正対象パターン情報格納部224を検索して影響波及パターン名の修正対象箇所と一致する修正対象パターン名の修正発生回数の合計を取得し、影響波及率を算出する(処理S2054)。例えば、影響波及パターン情報の影響波及ID「00a」については、影響波及パターン名の修正対象箇所「車両保険金額チェック機能」と一致する修正対象パターン情報の修正対象パターン名「車両保険金額チェック機能」の修正発生回数の合計「11回」を取得し、影響波及パターン情報の修正発生回数の合計「担当者内:5回、担当者間:2回」から影響波及率「(5回+2回)÷11」を算出し、影響波及パターン情報に格納する。ここで、影響波及率は、影響波及パターン(修正対象箇所⇒影響波及箇所)において、影響波及パターンの修正発生回数を修正対象箇所の修正発生回数で割算した値としている。
【0049】
コンポーネント設計支援システム2の修正工数算出部223は、影響波及パターン情報格納部225から影響波及IDが昇順に修正発生回数と累計修正工数を取得し、影響波及パターン平均修正工数を算出し、影響波及パターン情報格納部225に格納する(処理S2055)。例えば、影響波及パターン情報の影響波及ID「00a」については、修正発生回数の合計「担当者内:5回、担当者間:2回」と累計修正工数「担当者内:10h、担当者間:8h」を取得し、影響波及パターン平均修正工数「担当者内:2h/回、担当者間:4h/回」を算出し、影響波及パターン情報に格納する。
なお、これら保守履歴分析処理は、月に一度など定期的ないし周期的に実施することも、新しい契約が加わった際にリアルタイムで実施することも可能である。
【0050】
===コンポーネント情報取得の処理===
コンポーネント設計者などからコンポーネントの設計案であるコンポーネント情報の登録を受け付ける際の処理について説明する。コンポーネント設計案のイメージを図18に示す。ここでは、コンポーネント内のオブジェクト間の依存関係と共にコンポーネントの保守担当者情報を受け付けることで、保守担当者の担当範囲を考慮した精度の高い保守工数評価の実現をねらっている。例えば、修正範囲が一人の保守担当者で閉じる場合は保守工数が少なく済むが、修正範囲が複数の保守担当者に跨る場合は保守工数が多くなる。
【0051】
図3の説明に戻る。コンポーネント設計情報入出力システム3のコンポーネント情報送受信部301は、コンポーネント設計者などからコンポーネント情報としてコンポーネント設計案、コンポーネント名、担当者ID、構成ID、構成オブジェクト、依存関係オブジェクト、担当者区分の入力を受け付けて、保守担当者情報として担当者ID、担当者名、担当コンポーネント名、所属部署の入力を受け付けて、コンポーネント設計支援システム2に送信する(処理S301)。
【0052】
コンポーネント設計支援システム2のコンポーネント情報受信部231は、コンポーネント設計情報入出力システム3のコンポーネント情報送受信部301から受信したコンポーネント情報をコンポーネント情報格納部232に格納し、コンポーネント設計情報入出力システム3のコンポーネント情報送受信部301から受信した保守担当者情報を保守担当者情報格納部233に格納する(処理S206)。
【0053】
===保守工数評価の処理===
コンポーネントの設計案に対して、保守履歴から抽出した修正パターンを利用して影響波及予測情報を構築し、コンポーネントの保守工数を評価する際の処理について説明する。保守時の影響波及のイメージを図19に示す。ここでは、コンポーネント設計者が設計した設計案に対して、保守履歴に基づいて依存関係のあるオブジェクト間の影響波及を予測し、最も保守工数が少なくなる設計案を提示することで保守性の高いコンポーネント設計を支援することをねらっている。
【0054】
コンポーネント設計支援システム2の影響波及予測部241は、コンポーネント情報格納部232からコンポーネント情報としてコンポーネント設計案、コンポーネント名、構成オブジェクト、依存関係オブジェクト、担当者区分を取得する(処理S207)。
【0055】
コンポーネント設計支援システム2の影響波及予測部241は、コンポーネント情報の構成IDが昇順に構成オブジェクトと影響波及オブジェクトの組み合わせを抽出し、影響波及パターン情報格納部225に格納されている影響波及パターン名と比較して、一致する影響波及パターンの影響波及率と影響波及パターン平均修正工数を抽出し、影響波及率と影響波及パターン平均修正工数から影響波及オブジェクト平均修正工数を算出し、修正対象パターン情報格納部224に格納されている修正対象パターン情報と影響波及オブジェクト平均修正工数から構成オブジェクト平均修正工数と修正発生回数を算出し、設計案保守工数を算出し、保守工数情報格納部245に格納する(処理S208)。
処理S208の詳細は、図6に示すフロー図における処理S2081〜処理S2085の処理となる。
【0056】
ここで、図6の説明を行う。図6は、コンポーネント情報からコンポーネントの設計案ごとの保守工数を評価する処理の流れを示すフロー図である。
コンポーネント設計支援システム2の影響波及予測部241は、コンポーネント情報のコンポーネント設計案ごとに構成IDが昇順に構成オブジェクトと依存関係オブジェクトの組み合わせと担当者区分を抽出し、依存関係オブジェクトを影響波及オブジェクトとして影響波及予測情報格納部244に格納する(処理S2081)。例えば、コンポーネント情報の構成ID「(1)-1」については、構成オブジェクト「車両保険金額チェック機能」と依存関係オブジェクト「車両保険金額データ」の組み合わせから影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト「⇒1次:車両保険金額データ」と担当者区分「担当者内」を抽出し、構成オブジェクト「車両保険金額チェック機能」と依存関係オブジェクト「車両保険料計算」の組み合わせから影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト「⇒1次:車両保険料計算」と担当者区分「担当者間」を抽出する。さらに、2次的な影響波及を抽出するために影響波及オブジェクト「⇒1次:車両保険料計算機能」に対して、同一コンポーネント設計案の中にある同名の構成オブジェクト「車両保険料計算機能」とその依存関係オブジェクト「車両保険割引チェック機能」を影響波及オブジェクト「⇒2次:車両保険割引チェック機能」として抽出する。3次波及以降についても同様の処理を実行し、依存関係オブジェクトが「−」になる(無くなる)まで繰り返す。
【0057】
コンポーネント設計支援システム2の影響波及予測部241は、影響波及予測情報格納部244に格納されている構成オブジェクトと影響波及オブジェクトの組み合わせごとに影響波及パターン情報格納部225に格納されている影響波及パターン名とマッチングし、一致する影響波及パターン名の影響波及率、影響波及パターン平均修正工数を抽出する(処理S2082)。例えば、影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト「車両保険金額データ」の組み合わせごとに、影響波及パターン情報の影響波及パターン名とマッチングし、一致する影響波及パターン名「車両保険金額チェック機能⇒車両保険金額データ」の影響波及率「7/11」、影響波及パターン平均修正工数「担当者内:2h/回、担当者間:4h/回」を取得する。さらに、影響波及オブジェクトに2次波及がある場合は、影響波及オブジェクトの1次波及「車両保険料計算機能」と2次波及「車両保険割引チェック機能」の組み合わせごとに、影響波及パターン情報の影響波及パターン名とマッチングし、一致する影響波及パターン名「車両保険料計算機能⇒車両保険割引チェック機能」の影響波及率「6/8」、影響波及パターン平均修正工数「担当者内:2h/回、担当者間:6h/回」を取得する。3次波及以降についても同様の処理を実行し、影響波及オブジェクトが「−」になる(無くなる)まで繰り返す。
【0058】
コンポーネント設計支援システム2の影響波及予測部241は、影響波及予測情報格納部244に格納されている構成オブジェクトごとに、影響波及オブジェクトの影響波及率と影響波及パターン平均修正工数と担当者区分から影響波及オブジェクト平均修正工数を算出し、影響波及予測情報格納部244に格納する(処理S2083)。例えば、構成オブジェクト「車両保険金額チェック機能」については、影響波及オブジェクト「車両保険金額チェック機能⇒1次:車両保険金額データ」の影響波及率「7/11」、影響波及パターン平均修正工数「担当者内:2h/回、担当者間:4h/回」、担当者区分「担当者内」に基づいて、影響波及率「7/11」と影響波及パターン平均修正工数「担当者内:2h/回」を乗算「(7/11)×2=14/11h/回」し、影響波及オブジェクト「車両保険金額チェック機能⇒1次:車両保険料計算機能」の影響波及率「8/11」、影響波及パターン平均修正工数「担当者内:3h/回、担当者間:7h/回」、担当者区分「担当者間」に基づいて、影響波及率「8/11」と影響波及パターン平均修正工数「担当者間:7h/回」を乗算「(8/11)×7=56/11h/回」し、影響波及オブジェクト「1次:車両保険料計算機能⇒2次:車両保険割引チェック機能」の影響波及率「6/8」、影響波及パターン平均修正工数「担当者内:1h/回、担当者間:6h/回」、担当者区分「担当者内」に基づいて、影響波及率「6/8」と「車両保険金額チェック機能⇒1次:車両保険料計算機能」の影響波及率「8/11」と影響波及パターン平均修正工数「担当者間:1h/回」を乗算「(6/8)×(8/11)×1=6/11h/回」し、影響波及オブジェクト「1次:車両保険料計算機能⇒2次:車両保険割引データ」の影響波及率「1/8」、影響波及パターン平均修正工数「担当者内:1h/回、担当者間:3h/回」、担当者区分「担当者内」に基づいて、影響波及率「1/8」と「車両保険金額チェック機能⇒1次:車両保険料計算機能」の影響波及率「8/11」と影響波及パターン平均修正工数「担当者間:1h/回」を乗算「(1/8)×(8/11)×1=1/11h/回」し、それらの和を計算することで影響波及オブジェクト平均修正工数「7h/回」を算出する。
【0059】
なお、本実施形態では、影響波及オブジェクトを3次波及まで抽出する例を示しているが、4次波及以降も含めた影響波及を抽出する場合や、影響波及率の下限値を予め設定して下限値を下回る影響波及は対象外にする場合なども考えられる。
【0060】
コンポーネント設計支援システム2の保守工数算出部242は、影響波及予測情報格納部244に格納されているコンポーネント設計案ごとに、構成オブジェクトと影響波及オブジェクト平均修正工数を抽出し、抽出した構成オブジェクトと修正対象パターン情報格納部224に格納されている修正対象パターン名とマッチングし、一致する修正対象パターンの修正対象パターン平均修正工数と修正発生回数を抽出し、保守工数情報格納部245に格納する(処理S2084)。例えば、影響波及予測情報の構成オブジェクト「車両保険金額チェック機能」と影響波及オブジェクト平均修正工数「7h/回」を抽出し、抽出した構成オブジェクト「車両保険金額チェック機能」と修正対象パターン情報の修正パターン名をマッチングし、一致する修正対象パターン名「車両保険金額チェック機能」の修正対象パターン平均修正工数「2h/回」と修正発生回数「5.5回/年」を抽出し、保守工数情報格納部245に格納する。
上記の処理S2081〜処理S2084を、コンポーネント情報の各構成オブジェクトについて実施する。
【0061】
コンポーネント設計支援システム2の保守工数算出部242は、保守工数情報格納部245に格納されているコンポーネント設計案ごとに、構成オブジェクトの修正対象オブジェクト平均修正工数と影響波及オブジェクト平均修正工数と修正発生回数から設計案保守工数を算出し、保守工数情報格納部245に格納する(処理S2085)。例えば、保守工数情報のコンポーネント設計案「設計案(1)」の構成オブジェクト「車両保険金額チェック機能」の修正対象オブジェクト平均修正工数「2h/回」と影響波及オブジェクト平均修正工数「7h/回」の和「9h/回」に修正発生回数「5.5回/年」を乗算する処理を各構成オブジェクトに対して実施し、それらの和から設計案保守工数「174.5h/年」を算出する。
【0062】
コンポーネント設計支援システム2のコンポーネント構成評価部243は、保守工数情報格納部245に格納されているコンポーネント設計案、構成オブジェクト平均修正工数、修正発生回数、設計案保守工数を取得し、評価結果としてコンポーネント設計情報入出力システム3に送信する(処理S209)。
コンポーネント設計情報入出力システム3のコンポーネント情報送受信部301は、コンポーネント設計支援システム2から受信した保守工数情報を図20に示すような画面に表示し、コンポーネント設計者に提示する(処理S302)。
【0063】
以上で本実施形態の説明を終わる。この説明は一例であり本発明を限定するものではない。なお、本実施形態では、機能およびデータの依存関係を評価の対象としているが、機能の依存関係のみ、データの依存関係のみ、機能とデータを一体化したクラスの依存関係を対象として評価を実施することも可能である。本発明はその趣旨を逸脱することなく変更、改良され得ると共に本発明にはその等価物が含まれるのは勿論である。
【符号の説明】
【0064】
1 システム保守情報入力システム
101 システム保守情報送信部
2 コンポーネント設計支援システム
211 保守履歴情報抽出部
212 保守履歴情報格納部
213 機能辞書情報格納部
214 データ辞書情報格納部
215 保守履歴オブジェクト情報格納部
221 保守パターン抽出部
222 影響波及率算出部
223 修正工数算出部
224 修正対象パターン情報格納部
225 影響波及パターン情報格納部
231 コンポーネント情報受信部
232 コンポーネント情報格納部
233 保守担当者情報格納部
241 影響波及予測部
242 保守工数算出部
243 コンポーネント構成評価部
244 影響波及予測情報格納部
245 保守工数情報格納部
3 コンポーネント設計情報入出力システム
301 コンポーネント設計情報送受信部
4 通信ネットワーク

【特許請求の範囲】
【請求項1】
システム設計者が行う業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントの設計を支援するコンポーネント設計支援方法において、
前記コンポーネントに関係するコンポーネントに対する保守履歴情報を取得するステップと、
前記保守履歴情報から当該保守における修正箇所、修正工数および修正影響波及箇所を含む保守パターン情報を生成して、記憶装置に記憶しておくステップと、
前記システム設計者が設計するコンポーネントについて、前記保守パターンと比較するステップと、
当該比較の結果に基づいて、前記設計するコンポーネントの保守工数を算出するステップとを有することを特徴とするコンポーネント設計支援方法。
【請求項2】
請求項1に記載のコンポーネント設計支援方法であって、
前記システム設計者から前記設計するコンポーネントの設計情報を受け付けてコンポーネント情報として格納するコンポーネント情報登録ステップをさらに有し、
前記比較するステップは、格納された前記コンポーネント情報と前記保守パターン情報を比較し、
前記保守工数を算出するステップは、前記比較の結果に基づいて、前記保守工数を算出することを特徴とするコンポーネント設計支援方法。
【請求項3】
請求項1または2のいずれかに記載のコンポーネント設計支援方法であって、
前記保守履歴情報を取得するステップは、
前記保守履歴情報の修正対象箇所のシステム名を、当該システムの機能およびデータの名称を管理する辞書情報に基づいてオブジェクト名に変換した保守履歴オブジェクト情報として取得することを特徴とするコンポーネント設計支援方法。
【請求項4】
請求項1乃至3のいずれかに記載のコンポーネント設計支援方法であって、
前記保守パターンの生成は、
前記保守履歴情報から修正対象箇所と修正によって影響を受ける影響波及箇所の組み合わせを保守パターンとして抽出し、保守パターンごとの修正発生回数、修正工数、影響波及率を算出し、前記保守パターン情報として生成することを特徴とするコンポーネント設計支援方法。
【請求項5】
請求項2乃至4のいずれかに記載のコンポーネント設計支援方法であって、
コンポーネント情報登録ステップは、
前記コンポーネント情報としてコンポーネントの保守担当者ID、コンポーネントの構成要素である構成オブジェクト、構成オブジェクトと依存関係のある依存関係オブジェクトを受け付け、構成オブジェクトの保守時に影響波及の可能性がある依存関係オブジェクトについて複数の保守担当者間の連携が発生するかどうかを連携発生有無を含むコンポーネント情報を登録することを特徴とするコンポーネント設計支援方法。
【請求項6】
請求項1乃至5のいずれかに記載のコンポーネント設計支援方法であって、
前記保守工数を算出するステップは、
前記コンポーネント情報の構成オブジェクトと依存関係オブジェクトの組み合わせごとに、前記保守パターン情報の保守パターンとのマッチングを行って構成オブジェクトの保守時の影響波及率と修正工数を算出し、構成オブジェクトの保守時の影響波及率と修正工数からコンポーネントごとの保守工数を算出することを特徴とするコンポーネント設計支援方法。
【請求項7】
システム設計者が行う業務アプリケーションの機能とデータを纏めたサブシステムの単位であるコンポーネントの設計を支援するコンポーネント設計支援システムにおいて、
前記コンポーネントに関係するコンポーネントに対する保守履歴情報を取得する手段と、
前記保守履歴情報から当該保守における修正箇所、修正工数および修正影響波及箇所を含む保守パターン情報を生成して、記憶装置に記憶しておく手段と、
前記システム設計者が設計するコンポーネントについて、前記保守パターンと比較する手段と、
当該比較の結果に基づいて、前記設計するコンポーネントの保守工数を算出する手段とを有することを特徴とするコンポーネント設計支援システム。
【請求項8】
請求項7に記載のコンポーネント設計支援システムであって、
前記システム設計者から前記設計するコンポーネントの設計情報を受け付けてコンポーネント情報として格納するコンポーネント情報登録手段をさらに有し、
前記比較する手段は、格納された前記コンポーネント情報と前記保守パターン情報を比較し、
前記保守工数を算出する手段は、前記比較の結果に基づいて、前記保守工数を算出することを特徴とするコンポーネント設計支援システム。
【請求項9】
請求項7または8のいずれかに記載のコンポーネント設計支援システムであって、
前記保守履歴情報を取得する手段は、
前記保守履歴情報の修正対象箇所のシステム名を、当該システムの機能およびデータの名称を管理する辞書情報に基づいてオブジェクト名に変換した保守履歴オブジェクト情報として取得することを特徴とするコンポーネント設計支援システム。
【請求項10】
請求項7乃至9のいずれかに記載のコンポーネント設計支援システムであって、
前記保守パターンの生成は、
前記保守履歴情報から修正対象箇所と修正によって影響を受ける影響波及箇所の組み合わせを保守パターンとして抽出し、保守パターンごとの修正発生回数、修正工数、影響波及率を算出し、前記保守パターン情報として生成することを特徴とするコンポーネント設計支援システム。
【請求項11】
請求項8乃至10のいずれかに記載のコンポーネント設計支援システムであって、
コンポーネント情報登録手段は、
前記コンポーネント情報としてコンポーネントの保守担当者ID、コンポーネントの構成要素である構成オブジェクト、構成オブジェクトと依存関係のある依存関係オブジェクトを受け付け、構成オブジェクトの保守時に影響波及の可能性がある依存関係オブジェクトについて複数の保守担当者間の連携が発生するかどうかを連携発生有無を含むコンポーネント情報を登録することを特徴とするコンポーネント設計支援システム。
【請求項12】
請求項7乃至11のいずれかに記載のコンポーネント設計支援システムであって、
前記保守工数を算出する手段は、
前記コンポーネント情報の構成オブジェクトと依存関係オブジェクトの組み合わせごとに、前記保守パターン情報の保守パターンとのマッチングを行って構成オブジェクトの保守時の影響波及率と修正工数を算出し、構成オブジェクトの保守時の影響波及率と修正工数からコンポーネントごとの保守工数を算出することを特徴とするコンポーネント設計支援システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−41386(P2013−41386A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−177399(P2011−177399)
【出願日】平成23年8月15日(2011.8.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】