(57)【要約】【課題】入力の手間が少なくて済み、簡単且つ単純な処理により、短時間で競合関係フローを生成することができ、ソフトウエア開発の労力を大幅に軽減できる機能間競合抽出支援装置及び方法並びにプログラムを提供する。【解決手段】順位付された複数の機能相互間の競合の可否に関する基本情報を入力する入力装置２０、基本情報に基づいて各部の処理に用いる競合情報テーブルを作成する競合情報テーブル作成部１１２、１つの機能に対して又は既に競合関係にあると判定された複数の機能に対して、競合関係にある機能を判定する第１の判定部１２０、第１の判定部１２０に競合関係にあると判定された機能のうち、いずれかの機能と排他的関係にあり、その排他関係にある機能よりも上の順位の機能と競合関係にある機能及びこれと競合関係にある機能を判定する第２の判定部１３０、競合関係にあると判定された機能の流れを抽出する抽出部１４０を有する。【選択図】図１
2007140797.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより複数の機能を持つソフトウェアにおける機能間の競合を抽出する機能間競合抽出支援装置であって、
複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力する基本情報入力手段と、
前記基本情報に基づき、競合情報テーブルを作成する競合情報テーブル作成手段と、
前記競合情報テーブルに基づき、順位付けに従って、１つの機能に対して若しくは既に非排他的関係にあると判定された複数の機能に対して、非排他的関係にある機能を判定する第１の判定手段と、
前記競合情報テーブルに基づき、前記第１の判定手段によって非排他的関係にあると判定された機能のうち、いずれかの機能と排他的関係にあり、その排他的関係にある機能よりも上の順位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を判定する第２の判定手段と、
前記第１の判定手段及び前記第２の判定手段によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出する抽出手段と、
を有することを特徴とする機能間競合抽出支援装置。
【請求項２】
前記競合情報テーブルは、各機能毎の競合の可否をビット情報で表したものであり、
前記第１の判定手段は、
機能同士のビット情報の論理積演算若しくは既になされた論理積演算の結果のビット情報と機能のビット情報との論理積演算を行う論理積演算部と、
各機能のビット情報若しくは論理積演算の結果であるビット情報に基づいて、非排他的関係にある機能を検出する検出部と、
を有することを特徴とする請求項１記載の機能間競合抽出支援装置。
【請求項３】
前記第２の判定手段は、
前記第１の判定手段によって非排他的関係にあると判定された機能のビット情報を反転する反転部と、
反転したビット情報と前記第１の判定手段による論理積演算の結果のビット情報との論理積演算を行う機能と、
前記論理積演算の結果のビット情報に基づいて、前記第１の判定手段によって検出された機能のいずれかと排他的関係にあり、それよりも上位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を検出する検出部と、
を有することを特徴する請求項２記載の機能間競合抽出支援装置。
【請求項４】
前記競合情報テーブルにおいて、前記抽出部により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録する確認済処理部を有することを特徴とする請求項２又は請求項３記載の機能間競合抽出支援装置。
【請求項５】
コンピュータに構成された基本情報入力手段、競合情報テーブル作成手段、第１の判定手段、第２の判定手段、抽出手段により、複数の機能を持つソフトウェアにおける機能間の競合を抽出する機能間競合抽出支援方法であって、
前記基本情報入力手段が、複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力する入力処理と、
前記競合情報テーブル作成手段が、前記基本情報に基づき、競合情報テーブルを作成する競合情報テーブル作成処理と、
前記第１の判定手段が、前記競合情報テーブルに基づき、順位付けに従って、１つの機能に対して若しくは既に非排他的関係にあると判定された複数の機能に対して、非排他的関係にある機能を判定する第１の判定処理と、
前記第２の判定手段が、前記競合情報テーブルに基づき、前記第１の判定処理によって非排他的関係にあると判定された機能のうち、いずれかの機能と排他的関係にあり、それよりも上の順位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を判定する第２の判定処理と、
前記抽出手段が、前記第１の判定処理及び前記第２の判定処理によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出する抽出処理と、
を含むことを特徴とする機能間競合抽出支援方法。
【請求項６】
前記競合情報テーブルは、各機能毎の競合の可否をビット情報で表したものであり、
前記第１の判定処理は、
機能同士のビット情報の論理積演算若しくは既になされた論理積演算の結果のビット情報と機能のビット情報との論理積演算を行う論理積演算処理と、
各機能のビット情報若しくは論理積演算の結果であるビット情報に基づいて、非排他的関係にある機能を検出する検出処理と、
を含むことを特徴とする請求項５記載の機能間競合抽出支援方法。
【請求項７】
前記第２の判定処理は、
前記第１の判定処理によって非排他的関係にあると判定された機能のビット情報を反転する反転処理と、
反転したビット情報と前記第１の判定処理による論理積演算の結果のビット情報との論理積演算を行う論理積演算処理と、
前記論理積演算処理の結果のビット情報に基づいて、前記第１の判定処理によって検出された機能のいずれかと排他的関係にあり、それよりも上位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を検出する検出処理と、
を含むことを特徴する請求項６記載の機能間競合抽出支援方法。
【請求項８】
コンピュータに構成された確認済処理手段により、前記競合情報テーブルにおいて、前記抽出処理により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録する確認済処理を含むことを特徴とする請求項６又は請求項７記載の機能間競合抽出支援方法。
【請求項９】
コンピュータに、複数の機能を持つソフトウェアにおける機能間の競合を抽出させる機能間競合抽出支援プログラムであって、
コンピュータに、
複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力させる入力処理と、
前記基本情報に基づき、競合情報テーブルを作成させるテーブル作成処理と、
前記競合情報テーブルに基づき、順位付けに従って、１つの機能に対して若しくは既に非排他的関係にあると判定された複数の機能に対して、非排他的関係にある機能を判定させる第１の判定処理と、
前記競合情報テーブルに基づき、前記第１の判定処理によって非排他的関係にあると判定された機能のうち、いずれかの機能と排他的関係にあり、それよりも上の順位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を判定させる第２の判定処理と、
前記第１の判定処理及び前記第２の判定処理によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出させる抽出処理と、
を実行させることを特徴とする機能間競合抽出支援プログラム。
【請求項１０】
前記競合情報テーブルは、各機能毎の競合の可否をビット情報で表したものであり、
前記第１の判定処理は、
コンピュータに、
機能同士のビット情報の論理積演算若しくは既になされた論理積演算の結果のビット情報と機能のビット情報との論理積演算を行わせる論理積演算処理と、
各機能のビット情報若しくは論理積演算の結果であるビット情報に基づいて、非排他的関係にある機能を検出させる検出処理と、
を実行させることを特徴とする請求項９記載の機能間競合抽出支援プログラム。
【請求項１１】
前記第２の判定処理は、
コンピュータに、
前記第１の判定処理によって非排他的関係にあると判定された機能のビット情報を反転させる反転処理と、
反転したビット情報と前記第１の判定処理による論理積演算の結果のビット情報との論理積演算を行わせる論理積演算処理と、
前記論理積演算処理の結果のビット情報に基づいて、前記第１の判定処理によって検出された機能のいずれかと排他的関係にあり、それよりも上位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を検出させる検出処理と、
を実行させることを特徴とする請求項１０記載の機能間競合抽出支援プログラム。
【請求項１２】
コンピュータに、
前記競合情報テーブルにおいて、前記抽出処理により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録させる確認済処理を実行させることを特徴とする請求項１０又は請求項１１記載の機能間競合抽出支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを作動させるソフトウェアが含む複数の機能について、非排他的な競合関係が成立する機能を抽出する機能間競合抽出支援装置及び方法並びにプログラムに関する。
【背景技術】
【０００２】
一般的に、装置を制御するためのコンピュータに組み込まれるソフトウェアは、制御対象である装置の機能に応じた複数の複数の機能（部品）を含んでいる。例えば、コピー機においては、ＡＤＦ（オートシートフィーダ）、プラテン（送りローラ）、片面コピー、両面スキャン、ページ連写、縮小レイアウト、ＡＤＦ連続読込、原稿混載、全面画像、プラテン連続読込、ストップ、長尺、原稿手差し、といった機能を有している。
【０００３】
これらの機能の中には、片面コピーと両面スキャンのように、両方の機能を同時に選択することができない排他的関係にあり、両者を同時に若しくは連続して行えるような非排他的関係が成立しない機能については、ある機能か他の機能への推移が可能な流れを示す制御シーケンスから排除して、成立しうる競合関係フローを生成する必要がある。
【特許文献１】特開平５−１２３６６号公報
【特許文献２】特開平６−２９５２３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記のような競合関係フローの抽出作業は、全てを人間が判断して行うことは、作成者にとって多大な労力を要する。また、特許文献１、２に示すように、競合動作を自動的にチェックする技術は存在する。しかし、特許文献１の技術は、論理シミュレーションの結果に基づいて競合の有無のチェックを行うものであり、個々の機能間の競合が判明している場合の有効な制御フローを生成するものではない。また、特許文献２の技術は、制御シーケンスを自動生成するものであるが、判断に必要な要素となるパラメータが多様で、現実の演算処理等が複雑になるため、入力から生成までにおける人的負担や処理負担が多大となり、処理時間も長時間となる。
【０００５】
本発明は、上記のような従来技術の問題を解決するために提案されたものであり、その目的は、入力の手間が少なくて済み、簡単且つ単純な処理により、短時間で競合関係フローを生成することができ、ソフトウエア開発の労力を大幅に軽減できる機能間競合抽出支援装置及び方法並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記のような目的を達するため、請求項１の発明は、コンピュータにより複数の機能を持つソフトウェアにおける機能間の競合を抽出する機能間競合抽出支援装置であって、複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力する基本情報入力手段と、前記基本情報に基づき、競合情報テーブルを作成する競合情報テーブル作成手段と、前記競合情報テーブルに基づき、順位付けに従って、１つの機能に対して若しくは既に非排他的関係にあると判定された複数の機能に対して、非排他的関係にある機能を判定する第１の判定手段と、前記競合情報テーブルに基づき、前記第１の判定手段によって非排他的関係にあると判定された機能のうち、いずれかの機能と排他的関係にあり、その排他的関係にある機能よりも上の順位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を判定する第２の判定手段と、前記第１の判定手段及び前記第２の判定手段によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出する抽出手段と、を有することを特徴とする。なお、この発明は、上記の手段をコンピュータの処理により実現する方法（請求項５）、コンピュータの処理により実現させるプログラム（請求項９）として捉えることもできる。
【０００７】
以上のような発明によれば、実際に対象となるソフトウェアを稼動させる等の必要がなく、そのソフトウェアに含まれる各機能の順位付け及び相互間の競合の可否に関する基本情報を入力するという簡単な入力の手間だけで、非排他的な競合関係にある機能のフローが自動的に抽出されるので、開発の労力を軽減できる。
【０００８】
請求項２の発明は、請求項１記載の機能間競合抽出支援装置において、前記競合情報テーブルは、各機能毎の競合の可否をビット情報で表したものであり、前記第１の判定手段は、機能同士のビット情報の論理積演算若しくは既になされた論理積演算の結果のビット情報と機能のビット情報との論理積演算を行う論理積演算部と、各機能のビット情報若しくは論理積演算の結果であるビット情報に基づいて、非排他的関係にある機能を検出する検出部と、を有することを特徴とする。なお、この発明は、上記の手段をコンピュータの処理により実現する方法（請求項６）、コンピュータの処理により実現させるプログラム（請求項１０）として捉えることもできる。
【０００９】
以上のような発明によれば、ビット情報により排他的か非排他的かの競合関係を判断するため、簡単且つ単純な処理により、短時間で競合関係フローを抽出することができ、処理負担が大幅に軽減される。
【００１０】
請求項３の発明は、請求項２記載の機能間競合抽出支援装置において、前記第２の判定手段は、前記第１の判定手段によって非排他的関係にあると判定された機能のビット情報を反転する反転部と、反転したビット情報と前記第１の判定手段による論理積演算の結果のビット情報との論理積演算を行う機能と、前記論理積演算の結果のビット情報に基づいて、前記第１の判定手段によって検出された機能のいずれかと排他的関係にあり、それよりも上位の機能と非排他的関係にある機能及びこれと非排他的関係にある機能を検出する検出部と、を有することを特徴する。なお、この発明は、上記の手段をコンピュータの処理により実現する方法（請求項７）、コンピュータの処理により実現させるプログラム（請求項１１）として捉えることもできる。
【００１１】
以上のような発明によれば、ビット情報に基づく簡単且つ単純な処理により、分岐が生じるような非排他的な競合関係の機能フローについても、全て網羅した形で抽出することができる。
【００１２】
請求項４の発明は、請求項２又は請求項３記載の機能間競合抽出支援装置において、前記競合情報テーブルにおいて、前記抽出部により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録する確認済処理部を有することを特徴とする。なお、この発明は、上記の手段をコンピュータの処理により実現する方法（請求項８）、コンピュータの処理により実現させるプログラム（請求項１２）として捉えることもできる。
【００１３】
以上のような発明によれば、確認済みの機能をビット情報により記録するので、終了判定も容易に行うことができる。
【発明の効果】
【００１４】
本発明によれば、入力の手間が少なくて済み、簡単且つ単純な処理により、短時間で競合関係フローを生成することができ、ソフトウエア開発の労力を大幅に軽減できる機能間競合抽出支援装置及び方法並びにプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
本発明を実施するための一つの実施形態を具体的に説明する。
［１．実施形態の構成］
まず、本実施形態の構成例を、図１に示す。なお、本発明は、典型的には、プログラムで制御されるコンピュータにより実現される。この場合のプログラムは、処理に必要なデータを含み、コンピュータのハードウェアを物理的に活用することで本発明の作用効果を実現するものであり、従来技術を適用可能な部分には好適な従来技術が適用される。さらに、本発明を実現するためのハードウェアやソフトウェアの具体的な種類や構成、ソフトウェアで処理する範囲などは自由に変更可能である。従って、図１は、本発明を構成する各機能を、ブロック化して図示した仮想的機能ブロック図を用いている。なお、コンピュータを動作させて本発明を実現するためのプログラム自体及びそのようなプログラムを記録した記録媒体も、本発明の一態様である。
【００１６】
すなわち、本実施形態は、制御装置１００に、入力装置２０、出力装置３０及び外部記憶装置４０が接続されている。制御装置１００は、ＣＰＵ、各種メモリ及びインタフェース等を含む周辺回路から構成されている。入力装置２０は、例えば、キーボードとマウスなどのポインティングデバイスを含み、ユーザが後述する基本情報を入力できる他、各種コマンドやデータの入力が可能な装置である。
【００１７】
また、出力装置３０は、例えば、ＣＲＴやＬＣＤなどの表示装置であり、表示画面に基本情報テーブル、抽出された競合関係フロー等をユーザに提示して、ユーザの入力や確認の補助を行う装置である。なお、タッチパネル機能を備えた表示装置を入力手段として用いることも可能である。また、出力装置３０としては、他にプリンタなどを適宜用いることができる。ユーザは、これら入力装置２０及び出力装置３０を用いて、対話的にコンピュータを操作することができる。また、外部記憶装置４０は、磁気ディスクや光磁気ディスクなどの記録媒体を用いて、必要なプログラムやデータを書き込み及び読み出す装置である。
【００１８】
制御装置１００は、上記のプログラムの働きにより、基本情報作成部１１１、競合情報テーブル作成部１１２、第１の判定部１２０、第２の判定部１３０、抽出部１４０、ビット消去処理部１５０とを備えている。基本情報作成部１１１は、ユーザが入力装置２０を用いて入力したデータに基づいて、基本情報テーブルを作成する手段である。この基本情報テーブルは、図２に示すように、検証対象となるソフトウェア（プログラムやデータを含む）を構成する機能（「部品」と称してもよい。以下同様）であって、所定の順位付けがなされた機能を縦（Ｙ軸方向）、横（Ｘ軸方向）に並べ、各機能同士で排他的関係にあるものに記号（例えば、×）を付けたものである。
【００１９】
競合情報テーブル作成部１１２は、基本情報テーブルに基づいて、競合情報テーブルを作成する手段である。競合情報テーブルは、図３に示すように、順位付けられた各機能同士の競合関係を、ビット情報で表したものであり、ビットＯＮが非排他的関係にあることを意味し、ビットＯＦＦが排他的関係にあることを意味している。なお、以下の説明ではビットＯＮを１、ビットＯＦＦを０とする。
【００２０】
第１の判定部１２０は、競合情報テーブルに基づいて、ある機能について最も早い順位で非排他的関係にある機能を判定する手段である。より具体的には、各機能のビット列を確認する検出部１２１、各機能のビット列との論理積（ＡＮＤ）演算を行う論理積演算部１２２を有している。検出部１２１は、確認対象となる機能のビット列から、これと非排他的関係にある（ビットＯＮとなっている）機能を検出し、論理積演算部１２２は、両機能の論積演算を行う。また、検出部１２１は、既になされた論理積演算部１２２の演算結果のビット列から、これらと非排他的関係にある（ビットＯＮとなっている）機能を検出し、論理積演算部１２２は、当該演算結果と当該機能のビット列との論理積演算も行う。
【００２１】
第２の判定部１３０は、第１の判定部１２０によって非排他的関係にあると判定された機能のうち、いずれかの機能と排他的関係にあり、その機能よりも上流の機能と非排他的関係にある機能を判定する手段である。より具体的には、第１の判定部１２０によって競合関係にあると判定された機能のうち、ある機能のビット列を反転させる反転部１３１と、論理積演算部１２２による演算結果と、反転させたビット列との論理積演算を行う論理積演算部１３２と、論理積演算部１３２の演算結果に対して、ビットＯＮとなっている機能を検出する検出部１３３とを有している。
【００２２】
抽出部１４０は、第１の判定部１２０及び第２の判定部１２０によって非排他的関係にあると判定された機能を、順位付けに従って抽出することにより、競合関係フローを生成する手段である。ビット消去処理部１５０は、抽出部１４０によって抽出された機能について、互いの機能に対応するビットをＯＦＦにする手段である。
【００２３】
なお、上記の各部により作成される基本情報テーブル、競合情報テーブル、競合関係フロー等は、外部記憶装置４０に記憶（保存）され、次の処理に適宜利用される。また、基本情報テーブル、競合情報テーブル、競合関係フローの作成の過程での演算結果も、制御装置１００の各種レジスタ、メモリ等に、適宜記憶（保存）され、次の処理に利用される。例えば、以下の説明で示す論理積演算の結果であるＲｅｓｕｌｔは、少なくとも処理中は上書きせずに全てを保存しておくように、バッファメモリの領域が確保される。また、入力時、入力結果、処理経過、処理結果は、それぞれに対応する表示データが生成され、描画処理及び出力装置３０への表示処理が行われる。
【００２４】
このような記憶媒体及び記憶領域の確保と記憶方式、表示処理及び表示されるインタフェースについては、種々の態様が適用可能であり、周知の技術であるため、説明を省略する。従って、各図に示したテーブルや競合関係フロー等は、画面表示例として捉えることもできるが、この表示態様に限定されるものではない。
【００２５】
［２．実施形態の作用］
以上のような本実施形態における競合関係フロー生成処理を説明する。
［２−１．処理の概要］
まず、本実施形態による処理の概要を、図４のフローチャートを参照して説明する。すなわち、ユーザの所望の操作入力に応じて、入力装置２０がデータを入力し（ステップ４０１）、基本情報作成部１１１によって基本情報テーブルが作成される（ステップ４０２）。競合情報テーブル作成部１１０は、基本情報テーブルに対して、マトリクス読み込みを行い（ステップ４０３）、競合情報テーブルを作成する（ステップ４０４）。
【００２６】
次に、競合情報テーブルに基づいて、第１の判定部１２０により非排他的関係にあると判定された機能が、抽出部１４０により抽出されることにより、１列目の競合関係フローが生成される（ステップ４０５）。なお、この抽出された機能については、相互に対応するビットが、ビット消去処理部１５０によってＯＦＦとされる。
【００２７】
そして、第２の判定部１２０が、１列目の競合関係フローに含まれる機能のいずれかと排他的関係にあり、それよりも上流の機能と非排他的関係にある機能を判定し、その機能に対して、さらに競合可能となる機能を判定することにより、抽出部１４０が２列目の（１列目から分岐する）競合関係フローを抽出する（ステップ４０６）。この抽出された機能についても、相互に対応するビットが、ビット消去処理部１５０によってＯＦＦとされる。
【００２８】
さらに、抽出されなかった機能に対して、上記の処理を繰り返すことにより、別の競合関係フローを抽出する（ステップ４０５，４０６）。ビット消去処理部１５０により、競合情報テーブルの全てのビットが全てＯＦＦとなった段階で（ステップ４０７）、競合関係フロー生成処理を終了する。
【００２９】
［２−２．処理の詳細］
次に、各処理の詳細を説明する。
［２−２−１．基本情報テーブルの作成処理］
まず、基本情報テーブルの作成処理を説明する。すなわち、ユーザの操作に応じて、入力装置２０から所定の順位付けがなされた複数の機能（この本実施形態では機能１〜機能１３）が入力されると、基本情報作成部１１１が、縦（Ｙ軸）及び横（Ｘ軸）に機能を並べたテーブルを作成し、これが出力装置３０の表示画面に表示される（図２参照）。ユーザが、その表示画面を見ながら各機能同士が競合しえない排他的関係にある欄を選択する操作を行うことにより、その情報が入力装置２０から入力され、図２に示すように、該当欄に×が表示される（他はスペース）。
【００３０】
そして、入力されたデータに基づいて、基本情報作成部１１１が基本情報テーブルを作成し、これが外部記憶装置４０に記憶される。なお、非排他的関係にある欄に○を付すようにしてもよいし、非排他を○、排他を×というように、２種の記号を併用してもよい。つまり、非排他と排他を区別できる情報であれば、表示される記号はどのようなものでもよい。タッチパネルにおいて、表示されたテーブルの該当欄に、ユーザが触れることによって選択操作を行ってもよい。
【００３１】
［２−２−２．競合情報テーブルの作成処理］
このように作成された基本情報テーブルに基づいて、競合情報テーブル作成部１１２が競合情報テーブルを作成する処理を、図５のフローチャートに従って説明する。まず、外部記憶装置４０から基本情報テーブルを読み込む（ステップ５０１）。そして、読み込みの開始／終了位置から、基本情報テーブルのマトリクスのＸ軸、Ｙ軸の機能数Ｆ（この例では１３）を確認する（ステップ５０２）。次に、Ｘ軸の機能数Ｆ分のビットを用意し、１機能分のバッファとしてアサインし、アサインしたバッファを更にＹ軸の機能数Ｆ分用意する（ステップ５０３）。これにより、いわば各欄が未定の競合情報テーブルが用意される。
【００３２】
また、Ｘ軸バッファカウンタＸＣＴを用意して、これを初期化し（ステップ５０４）、Ｙ軸バッファカウンタＹＣＴを用意して、これを初期化する（ステップ５０５）。そして、用意された競合情報テーブルの全ての欄のビットを０に初期化する（ステップ５０６）。さらに、Ｙ軸及びＸ軸において、最初に登場する機能にｂｉｔ０、次以降の機能にｂｉｔ１〜ｂｉｔｎ（ｎ＝Ｆ−１）を割り付ける（ステップ５０７）。これにより、図６に示すように、競合情報テーブルのＹ軸方向に上からｂｉｔ０（機能１）〜ｂｉｔｎ（機能ｎ）が割り付けられ、Ｘ軸方向に右からｂｉｔ０（機能１）〜ｂｉｔｎ（機能ｎ）が割り付けられる。
【００３３】
そして、Ｘ軸バッファカウンタＸＣＴ≦ｎ、つまりＸ軸方向の機能チェックが終了しておらず（ステップ５０８）、Ｙ軸ＢＩＴカウンタＹＣＴ≦ｎ、つまりＹ軸方向の機能チェックが終了していない場合（ステップ５０９）、基本情報テーブルをチェックしていく。これは、まずＸ軸におけるｂｉｔ０、Ｙ軸におけるｂｉｔ０に対応する欄から、基本情報テーブルのＹ軸方向に各欄をチェックしていくことになる（ステップ５１０）。例えば、チェック対象となった欄がスペース（○を付した場合には○）の場合には（ステップ５１１）、非排他的関係が成立するものとして、Ｘ軸バッファカウンタＸＣＴ×Ｙ軸ＢＩＴカウンタＹＣＴの位置に、１をセットする（ステップ５１２）。例えば、図７に示すように、基本情報テーブルの機能１における機能１３との関係は、スペースであり非排他的関係にあるので、競合情報テーブルのｂｉｔ０とｂｉｔ１２がクロスする欄に１をセットする。
【００３４】
基本情報テーブルのチェック対象となった欄が×の場合には（ステップ５１１）、排他的関係にあるものとして、Ｘ軸バッファカウンタＸＣＴ×Ｙ軸ＢＩＴカウンタＹＣＴの位置は、０のままとする。例えば、機能１における機能５との関係は、×であり排他的関係にあるので、競合情報テーブルのｂｉｔ１とｂｉｔ４がクロスする欄は０のままとする。そして、一つの欄をチェックする毎に、Ｙ軸ＢＩＴカウンタＹＣＴの値をインクリメントする（ステップ５１３）。
【００３５】
ＹＣＴ＞ｎとなり、一つの機能におけるＹ軸方向のチェックが終了した場合（ステップ５０９）、Ｘ軸バッファカウンタＸＣＴをインクリメントし（ステップ５１４）、Ｙ軸ＢＩＴカウンタＹＣＴを初期化する（ステップ５１５）。以上の処理を繰り返すことにより、非排他的関係になる場合には１、排他的関係にある場合には、そのまま０の競合情報テーブルが作成されていく。そして、Ｘ軸バッファカウンタＸＣＴ＞ｎとなった場合には（ステップ５０８）、全ての競合情報のチェックが済み、競合情報テーブルが作成されたとして処理を終了する。これにより、上記の図３に示したような競合情報テーブルが作成され、外部記憶装置４０に記憶される。
【００３６】
［２−２−３．１列目の抽出処理］
次に、上記のように作成された競合情報テーブルに基づいて、第１の判定部１２０による１列目の競合関係フローの抽出処理を、図８のフローチャートを参照して説明する。まず、検出部１２１は、Ｙ軸方向の最初（上端）のｂｉｔに対応する機能１について、Ｘ軸方向の最初（右端）のｂｉｔから各ビットを対象として（ステップ８０１）、最初にビットがＯＮとなっている欄を探す（ステップ８０２）。ビットＯＮとなっている欄が検出できたら（ステップ８０３）、検出したｂｉｔ番号を記憶する（ステップ８０４）。
【００３７】
例えば、図８の例では、最初に登場する主役（アクター）は、ｂｉｔ０に対応する機能１とする。このアクターについて、初めに非排他的関係にあるといえるのは、最初にビットＯＮとなっている欄のｂｉｔ番号に対応する機能となる。この例では、ｂｉｔ２、すなわち機能３となる。
【００３８】
そして、論理積演算部１２２は、検出されたｂｉｔ番号に対応する機能をピックアップして（ステップ８０５）、主役の機能のビット列とピックアップされた機能のビット列との論理積演算を行い、その結果をバッファに保存する（ステップ８０６）。検出部１２１は、この論理積演算の結果内において、現在のｂｉｔ番号より後に出現するｂｉｔＯＮを検出する（ステップ８０７）。つまり、２機能間（２次元）のビット列の論理積演算結果を利用することによって、２つの機能と共通して非排他的関係にある機能を抽出することができる。
【００３９】
図８の例では、演算結果は、Ｒｅｓｕｌｔ−１にて示されている。このＲｅｓｕｌｔ−１に基づいて、２機能にさらに競合可能な第３の機能抽出を行う。これは、Ｒｅｓｕｌｔ−１のｂｉｔ２以降で、有効なビット（ビットＯＮとなっているもの）を抽出することにより可能となる。この場合、ビットＯＮとなっているｂｉｔ番号が５なので、機能６になる。
【００４０】
上記のように、ビットＯＮとなっている欄が検出できた場合（ステップ８０８）、ビット消去処理部１５０が、後述する競合情報テーブルの確認済ビット消去処理を行う（ステップ８０９）。また、検出したｂｉｔ番号を保存する（ステップ８１０）。そして、抽出機能の座標位置記憶処理を行う（ステップ８１１）。この座標位置記憶処理は、抽出済みの機能を種々利用可能とするための一つの手法に過ぎず、本発明に必須の処理ではない。さらに、論理積演算部１２２は、検出したｂｉｔ番号に該当する機能をピックアップして（ステップ８１２）、最新の演算結果Ｒｅｓｕｌｔとピックアップされた機能のビット列との論理積を演算し、これを保存する（ステップ８１３）。図８の例では、Ｒｅｓｕｌｔ−１のビット列と機能６のビット列との論理積演算が行われ、その結果のＲｅｓｕｌｔ−２が保存される。このように保存された演算結果Ｒｅｓｕｌｔを最新の演算結果として、ステップ８０７以降の処理を繰り返す。
【００４１】
ステップ８０８にて、最新の演算結果Ｒｅｓｕｌｔにおいて、現在のｂｉｔ番号より後にビットＯＮを検出できなかった場合には、抽出部１４０は、その最新の演算結果Ｒｅｓｕｌｔにおいて、全ビットを右から順に確認して、その順序に従ってビットＯＮのｂｉｔ番号に対応する機能を抽出し（ステップ８０９）、処理を終了する。図８の例では、図９のように、Ｒｅｓｕｌｔ−１〜Ｒｅｓｕｌｔ−４と演算しながら、ビットＯＮを確認して行き、最終的に現在のｂｉｔ番号より後のビットが全てＯＦＦとなった段階で（Ｒｅｓｕｌｔ−５参照）、機能競合を全て現すｎ次元の第１列目を網羅したことになる。このＲｅｓｕｌｔ−５のビットＯＮとなっているｂｉｔ番号に対応する機能を抽出することにより、図１０に示すような１列の競合機能フローが生成される。
【００４２】
なお、上記のステップ８０３において、確認対象の機能のビット列にビットＯＮが発見できなかった場合には、それが最後の機能でない場合（ステップ８１６）には、次の順位の機能を確認すべく、確認対象のｂｉｔ番号をインクリメントする（ステップ８１７）。これにより、機能２若しくはそれ以降の機能から主役が選択されることになる。この後は、ステップ８０２以降の処理を行う。また、ステップ８１６で、最後の機能と判定された場合には、処理を終了する。
【００４３】
［２−２−４．２列目以降の抽出処理］
次に、２列目以降の抽出処理を、図１１のフローチャートを参照して説明する。この２行目以降の抽出処理は、１列目を抽出する際に生成し、保存した演算結果（Ｒｅｓｕｌｔ）を利用する。すなわち、１列目の最後に登場した機能以降であって登場していない機能から競合関係を判断するために、第１行目の最終Ｒｅｓｕｌｔの１つ前のＲｅｓｕｌｔをピックアップする（ステップ１１０１）。図１１の例では、Ｒｅｓｕｌｔ−４がピックアップされる。そして、そのｂｉｔ番号から、最後に登場した機能をピックアップする（ステップ１１０２）。図１１の例では、ｂｉｔ番号１０に対応する機能１１がピックアップされる。
【００４４】
そして、ピックアップされた機能のビット列を、反転部１３１が全て反転する（ステップ１１０３）。図１１の例では、機能１１のビットが全てＯＮであるため、全てＯＦＦとなる。論理積演算部１３２は、このように反転した機能のビット列とピックアップされたＲｅｌｕｌｔとの論理積演算を行い、２列目のＲｅｓｕｌｔとして保存する（ステップ１１０４）。図１１の例では、機能１１の反転後のビット列が全てＯＦＦであるため、Ｒｅｓｕｌｔ−４との論理積演算結果も全てＯＦＦとなる。
【００４５】
検出部１３３は、演算結果のビット列において、ビットＯＮに対応するｂｉｔ番号を検出する（ステップ１１０５）。検出できなかった場合には、上記で用いたＲｅｓｕｌｔの１つ前のＲｅｓｕｌｔが存在すれば（ステップ１１１４）、それをピックアップする（ステップ１１１５）。そして、そのｂｉｔ番号から、そのＲｅｓｕｌｔ直後に登場した機能をピックアップする（ステップ１１１６）。図１１の例では、２列目Ｒｅｓｕｌｔ−１のｂｉｔ番号１０以降は全てＯＦＦであるため、機能１１の下に検出すべき機能はない。そこで、Ｒｅｓｕｌｔ−４の前のＲｅｓｕｌｔ−３がピックアップされ、機能１０がピックアップされる。なお、ステップ１１０５において、最終行まで抽出できなければ、機能競合抽出は１行で終了する（ステップ１１１４）。
【００４６】
その後、ステップ１１０３以降の処理を行う。そして、２列目のＲｅｓｕｌｔにビットＯＮが検出できた場合には（ステップ１１０６）、抽出機能の座標位置記憶処理が行われ（ステップ１１０７）、検出されたｂｉｔ番号に該当する機能を保存する（ステップ１１０８）。上記の例では、図１２に示すように、１列目のＲｅｓｕｌｔ−３と機能１０との論理積をとった２列目Ｒｅｓｕｌｔ−２では競合可能な機能を抽出できないが、１列目のＲｅｓｕｌｔ−２と機能７との論理積をとった２列目Ｒｅｓｕｌｔ−３で、ｂｉｔ番号８にビットＯＮが検出されるので、これに該当する機能９が保存される。
【００４７】
さらに、論理積演算部１３２は、保存された機能のビット列をピックアップして（ステップ１１０９）、ビットＯＮが検出できた２列目のＲｅｓｕｌｔのビット列との論理積を行い（ステップ１１１０）、競合情報テーブルのビット消去処理を行う（ステップ１１１１）。ビットＯＮが検出できた２列目のＲｅｓｕｌｔのビット列について、既に検出した機能のｂｉｔ番号よりも後にビットＯＮが検出されない場合（ステップ１１１２）、２列目の抽出処理は終了する。図１１の例では、２列目Ｒｅｓｕｌｔ−３のビット列には、機能９のｂｉｔ番号よりも後にビットＯＮが検出されない。このため、図１３に示すように、機能６より後で機能７と機能９が分岐し、機能９の後続は登場しないフローとなる。
【００４８】
以降は、図１１のフローチャートの最初から、すなわち、２列目の抽出処理において１列目のＲｅｓｕｌｔとして最後に用いられたＲｅｓｕｌｔよりも１つ前のＲｅｓｕｌｔをピックアップして、ステップ１１０１以降の処理を行うことにより、３列目の抽出処理が行われる。図１４及び図１５の例では、２列目で最後に用いられたのが１列目Ｒｅｓｕｌｔ−２であるため、その前の１列目Ｒｅｓｕｌｔ−１がピックアップされ、これに基づいて機能６がピックアップされ、そのビット列が反転される。
【００４９】
そして、Ｒｅｓｕｌｔ−１のビット列と反転した機能６のビット列との論理積演算が行われ、その結果の２列目Ｒｅｓｕｌｔ−５でＯＮのビット番号１１に対応する機能１２が、機能６に排他で、機能１、３に競合可能な機能として抽出される。さらに、図１６及び図１７に示すように、２列目Ｒｅｓｕｌｔ−５で次にＯＮのビット番号１２に対応する機能１３がピックアップされ、これと２列目Ｒｅｓｕｌｔ−５との論理積演算が行われる。この結果、機能３以降で分岐した機能１２に後続する機能として、機能１３が抽出される。
【００５０】
以上の処理が終了したら、既に抽出されたフローの一番最初（左端）に登場する機能に対して、排他的関係を持つ機能であって、最も早い順序の機能を最初の確認対象として、上記の１列目及び２列目の処理を行う。上記の例では、図１８に示すように、機能２を主役とする競合関係フローを抽出する。
【００５１】
なお、ステップ１１０６において、ビットＯＮが複数検出できた場合には（ステップ１１０６）、検出されたｂｉｔ番号に該当する機能を全て保存する（ステップ１１０８）。例えば、図１９に示すようなビット列であった場合(上記例とは異なる状況を示す）、１列目Ｒｅｓｕｌｔ−２と機能７の論理積演算の結果である２列目Ｒｅｓｕｌｔ−４において、最初にＯＮとなっているｂｉｔ番号８に対応する機能９と、次にＯＮとなっているｂｉｔ番号１１、１２に対応する機能１２、１３も保存される。
【００５２】
そして、論理積演算部１３２は、保存された機能うち、最初の機能のビット列をピックアップして（ステップ１１０９）、ビットＯＮが検出できた２列目のＲｅｓｕｌｔのビット列との論理積を行う（ステップ１１１０）。その結果について、既に検出した機能のｂｉｔ番号よりも後に、ビットＯＮが検出された場合（ステップ１１１２）、当該機能について、さらにステップ１１１９以降の処理を行う。図１９の例では、２列目Ｒｅｓｕｌｔ−４と機能９との論理積演算を行うと、その結果である２列目Ｒｓｕｌｔ−５において、ｂｉｔ番号１２のビットＯＮが検出されるので、さらに機能１３について演算が行われ、その後は、ビットＯＮが検出されない。このため、図２０に示すように、機能６の後で分岐した機能９に、さらに機能１３が続くフローとなる。また、ステップ１１０８で検出されて保存されたが、機能９に後続しない機能１２については、機能６に続くが機能９とは排他となるように分岐したフローとして抽出される。
【００５３】
［２−２−５．ビット消去処理］
上述の処理で、定義済処理として示した競合情報テーブルのビット消去処理を説明する。これは、上述したように、各処理の終了条件を判断するために行われる。まず、抽出された各機能における自己に該当するｂｉｔ番号のビットを全て０にする。例えば、図２１の例では、機能１におけるｂｉｔ番号０の欄、機能３におけるｂｉｔ番号２の欄をビット０にする。
【００５４】
次に、抽出された各機能における互いの機能に対応するｂｉｔ番号のビットを０とする。例えば、図２２の例では、機能１と機能３が抽出されているので、機能１におけるｂｉｔ番号２の欄、機能３におけるｂｉｔ番号０の欄をビット０にする。さらに、図２３の例では、機能１、機能３、機能６が抽出されたので、機能１におけるｂｉｔ番号５の欄、機能６におけるｂｉｔ番号０の欄、機能３におけるｂｉｔ番号５の欄、機能６におけるｂｉｔ番号２の欄をそれぞれビット０にする。
【００５５】
［３．実施形態の効果］
以上説明した通り本実施形態によれば、競合関係フローの抽出作業にあたり、実際に対象となるソフトウェアを稼動させる等の必要がなく、各機能の順位と相互の競合関係である基本情報の入力という簡単な方法により、自動的に行うことができるので、ソフトウェア開発の労力を軽減できる。特に、表示された基本情報テーブルに対して、該当欄を選択するだけで、競合の可否を入力できるので、ユーザの入力の手間がかからない。
【００５６】
また、処理に用いるパラメータは、ｂｉｔ番号とビット列のみであるため、処理が簡単且つ単純となり、短時間で正確な競合関係フローを生成することができる。特に、競合関係フローが分岐するような場合であっても、全てを網羅した形での抽出が可能となる。さらに、終了判断も、競合関係フローの抽出処理と同じビット情報に基づいて行われるので、処理負担がかからない。
【００５７】
［４．他の実施形態］
本発明は上記のような実施形態に限定されるものではない。すなわち、競合関係フローの抽出対象となるソフトウェア及びそこに含まれる機能の種類、数、規模等は自由であり、上記の実施形態で示したものには限定されない。従って、コピー機やＦＡＸ、これらの複合機の組込みソフトウェエアには限定されず、機能や部品の競合の判定が必要なあらゆるソフトウェアに適用可能である。
【００５８】
また、本発明を実現するためのコンピュータシステムの種類、規模等も自由であり、入力装置からの入力に応じて情報を出力するコンピュータが広く含まれる。一般的には、パーソナルコンピュータにアプリケーションプログラムをインストールすることによって実現することが考えられるが、プログラムの規模によっては、ＰＤＡや携帯電話等の小型の情報端末において実現してもよい。本発明は、基本情報に基づいて処理を行うので、このような処理能力の低い小型の端末であっても十分に実現可能である。また、入力装置、出力装置、外部記憶装置等の種類についても、現在又は将来において利用可能なあらゆるものを含む。
【００５９】
基本情報として入力される情報の種類や意味付けも自由である。例えば、○、×、チェック記号等の他、他のどのような記号や図形を用いてもよく、どの記号に「非排他」や「排他」を意味付けるかも自由である。競合情報テーブルのビット情報についても、ビットＯＮとＯＦＦのいずれに「非排他」や「排他」を意味付けるかも自由である。つまり、本発明におけるビット情報とは、コンピュータ内部において「非排他」と「排他」を区別する２つの状態を示すことができる情報を広く意味するものであり、１単位の情報量は問わず、また、表示される際に文字、記号、図形、コード等に変換されるようなものであってもよい。基本情報の入力方法も自由である。例えば、あらかじめ用紙にプリントされたテーブルに、ユーザがチェック等の特定の情報を手書で記入したものを、スキャナで読み込むことで入力してもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態の構成を示すブロック図。
【図２】図１の実施形態における基本情報テーブルの一例を示す図。
【図３】図１の実施形態における競合情報テーブルの一例を示す図。
【図４】図１の実施形態における全体処理の流れを示すフローチャート。
【図５】図１の実施形態における競合情報テーブルの作成処理の流れを示すフローチャート。
【図６】図１の実施形態における初期化された競合情報テーブルの一例を示す図。
【図７】図１の実施形態における機能１のビット列の生成処理を示す図。
【図８】図１の実施形態における１列目の競合機能フローの抽出処理の流れを示すフローチャート。
【図９】図１の実施形態における１列目の競合機能フロー抽出の演算処理の一例を示すフローチャート。
【図１０】図１の実施形態における１列目の競合機能フローの一例を示す図。
【図１１】図１の実施形態における２列目以降の競合機能フローの抽出処理の流れを示すフローチャート。
【図１２】図１の実施形態における２列目の先頭の機能抽出の演算処理の一例を示す図。
【図１３】図１の実施形態における２列目の先頭の機能抽出結果の一例を示す図。
【図１４】図１の実施形態における３列目の先頭の機能抽出の演算処理の一例を示す図。
【図１５】図１の実施形態における３列目の先頭の機能抽出結果の一例を示す図。
【図１６】図１の実施形態における３列目の後続の機能抽出の演算処理の一例を示すフローチャート。
【図１７】図１の実施形態における３列目の後続の機能抽出結果の一例を示す図。
【図１８】図１の実施形態における他の１列目の競合機能フローの一例を示す図。
【図１９】図１の実施形態における２列目の後続及び２列目に排他の機能抽出の演算処理の一例を示す図。
【図２０】図１の実施形態における２列目の後続及び２列目に排他の機能抽出の一例を示す図。
【図２１】図１の実施形態におけるビット消去処理の初期処理例を示す図。
【図２２】図１の実施形態における２機能抽出の場合のビット消去処理の一例を示す図。
【図２３】図１の実施形態における４機能抽出の場合のビット消去処理の一例を示す図。
【符号の説明】
【００６１】
２０…入力装置
３０…出力装置
４０…外部記憶装置
１００…制御装置
１１０…競合情報テーブル作成部
１１１…基本情報作成部
１１２…競合情報テーブル作成部
１２０…第１の判定部
１２１，１３３…検出部
１２２…論理積演算部
１３０…第２の判定部
１３１…反転部
１３２…論理積演算部
１４０…抽出部
１５０…ビット消去処理部
【図１】
2007140797.tif 000003
【図２】
2007140797.tif 000004
【図３】
2007140797.tif 000005
【図４】
2007140797.tif 000006
【図５】
2007140797.tif 000007
【図６】
2007140797.tif 000008
【図７】
2007140797.tif 000009
【図８】
2007140797.tif 000010
【図９】
2007140797.tif 000011
【図１０】
2007140797.tif 000012
【図１１】
2007140797.tif 000013
【図１２】
2007140797.tif 000014
【図１３】
2007140797.tif 000015
【図１４】
2007140797.tif 000016
【図１５】
2007140797.tif 000017
【図１６】
2007140797.tif 000018
【図１７】
2007140797.tif 000019
【図１８】
2007140797.tif 000020
【図１９】
2007140797.tif 000021
【図２０】
2007140797.tif 000022
【図２１】
2007140797.tif 000023
【図２２】
2007140797.tif 000024
【図２３】
2007140797.tif 000025
【手続補正書】
【提出日】平成18年3月20日(2006.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより複数の機能を持つソフトウェアにおける機能間の競合を抽出する機能間競合抽出支援装置であって、
複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力する基本情報入力手段と、
前記基本情報に基づき、順位付けられた各機能と他の機能との関係について、非排他的である場合をビットＯＮ、排他的である場合をビットＯＦＦとしたビット列を含む競合情報テーブルを作成する競合情報テーブル作成手段と、
前記競合情報テーブルにおける各機能のビット列と、ビットＯＮであるために非排他的関係にある機能のビット列との論理積演算を、上位の機能から順次累積的に行う第１の論理積演算部と、
前記第１の論理積演算部による演算結果であるビット列に基づいて、ビットＯＮである機能を、非排他的関係にある機能として検出する第１の検出部と、
前記第１の論理積演算部による演算結果に基づいて非排他的関係にあるとして検出された機能のビット列を、下位の機能から順次反転する反転部と、
前記反転部が反転を行った機能のビット列と、当該反転された機能が検出される基となった演算結果のビット列との論理積演算を行う第２の論理積演算部と、
前記第２の論理積演算部による演算結果のビット列に基づいて、ビットＯＮの機能を、当該反転された機能の手前から分岐する機能として検出する第２の検出部と、
前記第１の検出部及び前記第２の検出部によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出する抽出手段と、
を有することを特徴する機能間競合抽出支援装置。
【請求項２】
前記競合情報テーブルにおいて、前記抽出部により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録する確認済処理部を有することを特徴とする請求項１記載の機能間競合抽出支援装置。
【請求項３】
コンピュータに構成された基本情報入力手段、競合情報テーブル作成手段、第１の論理積演算部、第１の検出部、反転部、第２の論理積演算部、第２の検出部、抽出手段により、複数の機能を持つソフトウェアにおける機能間の競合を抽出する機能間競合抽出支援方法であって、
前記基本情報入力手段が、複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力する基本情報入力処理と、
前記競合情報テーブル作成手段が、前記基本情報に基づき、順位付けられた各機能と他の機能との関係について、非排他的である場合をビットＯＮ、排他的である場合をビットＯＦＦとしたビット列を含む競合情報テーブルを作成する競合情報テーブル作成処理と、
前記第１の論理積演算部が、前記競合情報テーブルにおける各機能のビット列と、ビットＯＮであるために非排他的関係にある機能のビット列との論理積演算を、上位の機能から順次累積的に行う第１の論理積演算処理と、
前記第１の検出部が、前記第１の論理積演算部による演算結果であるビット列に基づいて、ビットＯＮである機能を、非排他的関係にある機能として検出する第１の検出処理と、
前記反転部が、前記第１の論理積演算部による演算結果に基づいて非排他的関係にあるとして検出された機能のビット列を、下位の機能から順次反転する反転処理と、
前記第２の論理積演算部が、前記反転部が反転を行った機能のビット列と、当該反転された機能が検出される基となった演算結果のビット列との論理積演算を行う第２の論理積演算処理と、
前記第２の検出部が、前記第２の論理積演算部による演算結果のビット列に基づいて、ビットＯＮの機能を、当該反転された機能の手前から分岐する機能として検出する第２の検出処理と、
前記抽出手段が、前記第１の検出処理及び前記第２の検出処理によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出する抽出処理と、
を含むことを特徴する機能間競合抽出支援方法。
【請求項４】
コンピュータに構成された確認済処理手段により、前記競合情報テーブルにおいて、前記抽出処理により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録する確認済処理を含むことを特徴とする請求項３記載の機能間競合抽出支援方法。
【請求項５】
コンピュータに、複数の機能を持つソフトウェアにおける機能間の競合を抽出させる機能間競合抽出支援プログラムであって、
前記コンピュータに、
複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力させる基本情報入力処理と、
前記基本情報に基づき、順位付けられた各機能と他の機能との関係について、非排他的である場合をビットＯＮ、排他的である場合をビットＯＦＦとしたビット列を含む競合情報テーブルを作成させる競合情報テーブル作成処理と、
前記競合情報テーブルにおける各機能のビット列と、ビットＯＮであるために非排他的関係にある機能のビット列との論理積演算を、上位の機能から順次累積的に行わせる第１の論理積演算処理と、
前記第１の論理積演算処理による演算結果であるビット列に基づいて、ビットＯＮである機能を、非排他的関係にある機能として検出させる第１の検出処理と、
前記第１の論理積演算処理による演算結果に基づいて非排他的関係にあるとして検出された機能のビット列を、下位の機能から順次反転させる反転処理と、
前記反転処理により反転された機能のビット列と、当該反転された機能が検出される基となった演算結果のビット列との論理積演算を行わせる第２の論理積演算処理と、
前記第２の論理積演算処理による演算結果のビット列に基づいて、ビットＯＮの機能を、当該反転された機能の手前から分岐する機能として検出させる第２の検出処理と、
前記第１の検出処理及び前記第２の検出処理によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出させる抽出処理と、
を実行させることを特徴とする機能間競合抽出支援プログラム。
【請求項６】
コンピュータに、
前記競合情報テーブルにおいて、前記抽出処理により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録させる確認済処理を実行させることを特徴とする請求項５記載の機能間競合抽出支援プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上記のような目的を達するため、請求項１の発明は、コンピュータにより複数の機能を持つソフトウェアにおける機能間の競合を抽出する機能間競合抽出支援装置であって、複数の機能について、順位付け及び相互間の競合の可否に関する基本情報を入力する基本情報入力手段と、前記基本情報に基づき、順位付けられた各機能と他の機能との関係について、非排他的である場合をビットＯＮ、排他的である場合をビットＯＦＦとしたビット列を含む競合情報テーブルを作成する競合情報テーブル作成手段と、前記競合情報テーブルにおける各機能のビット列と、ビットＯＮであるために非排他的関係にある機能のビット列との論理積演算を、上位の機能から順次累積的に行う第１の論理積演算部と、前記第１の論理積演算部による演算結果であるビット列に基づいて、ビットＯＮである機能を、非排他的関係にある機能として検出する第１の検出部と、前記第１の論理積演算部による演算結果に基づいて非排他的関係にあるとして検出された機能のビット列を、下位の機能から順次反転する反転部と、前記反転部が反転を行った機能のビット列と、当該反転された機能が検出される基となった演算結果のビット列との論理積演算を行う第２の論理積演算部と、前記第２の論理積演算部による演算結果のビット列に基づいて、ビットＯＮの機能を、当該反転された機能の手前から分岐する機能として検出する第２の検出部と、前記第１の検出部及び前記第２の検出部によって非排他的関係にあると判定された機能の流れを、順位に沿って抽出する抽出手段と、を有することを特徴する。なお、この発明は、上記の機能をコンピュータの処理により実現する方法（請求項３）、コンピュータの処理により実現させるプログラム（請求項５）として捉えることもできる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、ビット情報により排他的か非排他的かの競合関係を判断するため、簡単且つ単純な処理により、短時間で競合関係フローを抽出することができ、処理負担が大幅に軽減される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
さらに、ビット情報に基づく簡単且つ単純な処理により、分岐が生じるような非排他的な競合関係の機能フローについても、全て網羅した形で抽出することができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
請求項２の発明は、請求項１記載の機能間競合抽出支援装置において、前記競合情報テーブルにおいて、前記抽出部により抽出された複数の機能について、互いの機能に対応するビット情報により確認済を記録する確認済処理部を有することを特徴とする。なお、この発明は、上記の手段をコンピュータの処理により実現する方法（請求項４）、コンピュータの処理により実現させるプログラム（請求項６）として捉えることもできる。