(57)【要約】【課題】  既に自社が製作済みのソフトウェア、あるいは、他社からの購入ソフトウェアについて、容易かつ簡便にＳＩＬを評価できること。【解決手段】  ソフトウェア技法データと、安全度水準ごとのソフトウェア技法の推奨指針データとを含むベストプラクティスデータを保存するベストプラクティスデータ保存手段と、ベストプラクティスデータを参照してソフトウェア技法を表示する表示手段と、表示手段によって表示されたソフトウェア技法に対して入力された適用状況に基づいてソフトウェア技法ごとに適用条件の成立、不成立を判定する適用状況入力手段と、この判定結果と推奨指針データとを用いて安全度水準ごとに当該水準を満たしているか否かを判定するＳＩＬ診断手段と、ＳＩＬ診断手段の判定結果を出力する出力手段とを備える。【選択図】  図３
2008102630.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア技法データと、安全度水準ごとのソフトウェア技法の推奨指針データとを含むベストプラクティスデータを保存するベストプラクティスデータ保存手段と、
前記ベストプラクティスデータを参照してソフトウェア技法を表示する表示手段と、
前記表示手段によって表示されたソフトウェア技法に対して入力された適用状況に基づいてソフトウェア技法ごとに適用条件の成立、不成立を判定する適用状況入力手段と、
前記適用状況入力手段の判定結果と前記ベストプラクティスデータ保存手段に保存されている前記推奨指針データとを用いて安全度水準ごとに当該水準を満たしているか否かを判定するＳＩＬ診断手段と、
前記ＳＩＬ診断手段の判定結果を出力する出力手段と、
を備えたことを特徴とするソフトウェア安全性診断装置。
【請求項２】
前記ベストプラクティス保存手段に保存されているベストプラクティスデータを修正する技法データ修正手段を備えたことを特徴とする請求項１記載のソフトウェア安全性診断装置。
【請求項３】
前記ベストプラクティス保存手段は、前記ソフトウェア技法データまたは前記推奨指針データに関連付けてこれらの詳細内容を保存しておき、
前記表示手段は、表示されているソフトウェア技法または推奨指針の詳細内容を表示するガイダンス機能を有することを特徴とする請求項１または２記載のソフトウェア安全性診断装置。
【請求項４】
診断対象とするソフトウェアの目標ＳＩＬを入力するための目標ＳＩＬ入力手段と、
前記ＳＩＬ診断手段による診断結果から前記目標ＳＩＬに到達するために必要なソフトウェア技法を判定するための判定手段と、
を備えたことを特徴とする請求項１ないし３のいずれか一に記載のソフトウェア安全性診断装置。
【請求項５】
前記ソフトウェア技法データに重み付け点数を定義するための点数定義手段と、
定義した重み付け点数を保存するための点数保存手段と、
ソフトウェア技法に対する適用状況をもとに前記重み付け点数によって診断対象のソフトウェアの点数を算出し、当該ソフトウェアのＳＩＬ信頼度として出力する点数算出手段と、
を備えたことを特徴とする請求項１ないし４のいずれか一に記載のソフトウェア安全性診断装置。
【請求項６】
前記重み付け点数の補正データを診断対象のソフトウェアごとに保存する手段と、
ソフトウェアの評価試験結果にしたがって前記補正データを変更する補正データ変更手段と、
を備えたことを特徴とする請求項５記載のソフトウェア安全性診断装置。
【請求項７】
前記補正データ変更手段は、診断対象とするソフトウェアの使用言語ごとに定められた当該ソフトウェアのステップ数と実施した試験項目数との比率に基づいて前記補正データを変更することを特徴とする請求項６記載のソフトウェア安全性診断装置。
【請求項８】
ソフトウェア技法ごとに試験項目および試験項目との関連度を保存する手段を備え、
前記点数算出手段は、ソフトウェア技法ごとにＳＩＬ信頼度を算出することを特徴とする請求項５乃至７のいずれか一に記載のソフトウェア安全性診断装置。
【請求項９】
ソフトウェア技法の代替方法を定義するための代替技法定義手段と、
定義した代替技法を保存するための代替技法保存手段と、
ソフトウェア技法に対する適用状況の入力において、代替技法を表示する代替技法表示手段と、
入力されたソフトウェア技法に対する適用状況と代替技法に対する適用状況に基づいて安全水準を満たしているか否かを判定する複合診断手段と、
を備えたことを特徴とする請求項１乃至８のいずれか一に記載のソフトウェア安全性診断装置。
【請求項１０】
ソフトウェア技法データと、安全度水準ごとのソフトウェア技法の推奨指針データとを含むベストプラクティスデータを保存し、ソフトウェアの安全性を診断するコンピュータ上で動作するプログラムであって、
前記ベストプラクティスデータを参照してソフトウェア技法を表示する処理と、
表示されたソフトウェア技法に対して入力された適用状況に基づいてソフトウェア技法ごとに適用タイプを判定する処理と、
この適用タイプをもとに適用条件の成立、不成立を判定し、当該判定結果と前記推奨指針データとを用いて安全度水準ごとに当該水準を満たしているか否かを判定する処理と、
前記判定結果を出力する処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの信頼性、安全性を評価するソフトウェア安全性診断装置に関する。
【背景技術】
【０００２】
近年、日本では、火災爆発事故などの工場事故、また、エレベータや湯沸かし器事故など、身の回りの産業事故が頻発している。近代社会では、制御分野にコンピュータが多用されるようになり、従来、機械的なハードウェアで実行していた安全機能がソフトウェア化されるようになってきている。しかし、これらのソフトウェアに故障（不具合）があれば、安全系としての機能を果たせなくなり、従業員や住民また利用者へ危害が及ぶ可能性が出てくる。さらに、現在では、安全の中に、人間への危害といった直接的な意味のほか、財産保護や、環境への影響、社会的影響などの広い意味を含むようになってきている。
このような状況の中で、ＩＥＣ（国際電気標準会議）は、機能安全に関する国際規格IEC 61508を2000年に制定し、また、国内でも、JIS C 0508「電気・電子・プログラマブル電子安全関連系の機能安全」として2000年に制定された。
【０００３】
IEC 61508は、プラントやシステムのリスクを軽減させるために使用される電気・電子系ならびにコンピュータ（ソフトウェア）の安全性に関する規格である。ISO（国際標準化機構）とIECが共同で出した指針51では「絶対安全は存在しない」と明記している。すなわち、そのままでは本質安全を達成できないような場合に、非常停止装置などの安全系により、リスクを許容目標へ軽減し、一定の安全を確保することを「機能安全（Functional Safety）」と呼んでいて、本規格では、リスクを評価し、許容範囲に抑えることを要求している。
【０００４】
ところで、ソフトウェアの故障（不具合）は決定論的原因故障である。すなわち、故障（不具合）は製作時に組み込まれており、一般のランダムハードウェア故障に対する確率論的なアプローチを採用できない。そこで本規格では、ソフトウェアに対して、ＳＩＬ（安全度水準：安全系の信頼度の段階）に応じて指定されたソフトウェア技法の採用を要求しており、ソフトウェア製作を図1に示す10段階（以下、ライフサイクルフェーズ）に分け、合計で約100のソフトウェア技法をベストプラクティス（ＳＩＬに応じた最善技法）として提示している。
【０００５】
ここで、ＳＩＬとは安全系の信頼度を表す指標で、例えば、SIL-1とは、故障確率（失敗確率）が10回から100回の作動時に1回失敗するものをいい、以下、SIL-2、3、４、となるにつれて、一桁ずつ信頼度が良くなるという段階で定義されている。
【０００６】
従来、このＳＩＬによる安全性の評価に関して、特許文献１では、安全度水準目標値と設計パラメータを入力し、ＳＩＬモデルに基づいて安全度水準を計算し、入力した目標値と共に表示するシステムが提案されている。
【特許文献１】特開２００４−３４１８１４号公報
【非特許文献１】ISO/IEC指針51「規格に安全を入れる場合のガイドライン」,日本規格協会，1997
【非特許文献２】IEC 61508「Functional Safety of Electrical / Electronic / Programmable Electronic Safety Related Systems」，1998-2000
【非特許文献３】JIS C 0508「電気・電子・プログラマブル電子安全関連系の機能安全」，日本規格協会，2000
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ここで問題になるのは、新規に製作するソフトウェアは、上記のライフサイクルに従って、それぞれに指定されたベストプラクティスを用いればよいが、既製のソフトウェア、あるいは、他社からの購入ソフトウェアについては、ＳＩＬを評価できないことである。ＳＩＬを評価できないと、安全系に採用できなくなり、従来の技術遺産が全て無駄になってしまう。既製のソフトウェア、あるいは、他社からの購入ソフトウェアについて、ＳＩＬを評価する手法や装置については、有効かつ有益な提案は未だ示されていない。
【０００８】
また、上述の従来の技術は、設計資料がそろっているか否かをチェックシート形式で判定するものであるが、これを購入ソフトウェアについて適用しようとすると、メーカにアンケート調査を行うにしても、どの程度の質の資料かがわからない場合が多く単にアンケート調査をするのみでは適正な評価はできない。
【０００９】
本発明は上述のかかる事情に鑑みてなされたものであり、既に自社が製作済みのソフトウェア、あるいは、他社からの購入ソフトウェアについて、容易に、かつ、簡便に、ＳＩＬを評価することができ、また、評価の結果、必要なＳＩＬを満足していない場合に、ライフサイクルのどのフェーズが不十分であり、そのフェーズにおけるどの技法を追加実行すれば所要ＳＩＬが達成できるかを容易かつ簡便に診断することのできるソフトウェア安全性診断装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため本発明に係るソフトウェア安全性診断装置は、ソフトウェア技法データと、安全度水準ごとのソフトウェア技法の推奨指針データとを含むベストプラクティスデータを保存するベストプラクティスデータ保存手段と、前記ベストプラクティスデータを参照してソフトウェア技法を表示する表示手段と、前記表示手段によって表示されたソフトウェア技法に対して入力された適用状況に基づいてソフトウェア技法ごとに適用条件の成立、不成立を判定する適用状況入力手段と、前記適用状況入力手段の判定結果と前記ベストプラクティスデータ保存手段に保存されている前記推奨指針データとを用いて安全度水準ごとに当該水準を満たしているか否かを判定するＳＩＬ診断手段と、前記ＳＩＬ診断手段の判定結果を出力する出力手段と、を備えたことを特徴とする。
【００１１】
本発明では、ベストプラクティスデータ保存手段により保存されているソフトウェア技法を、表示手段によってディスプレイなどに表示させる。そして、ユーザは、表示手段により表示された個々のソフトウェア技法および詳細説明を確認しながらソフトウェア技法に対する適用状況を適用状況入力手段により入力する。そして、ＳＩＬ診断手段は入力データとベストプラクティスデータ保存手段に保存されている技法の推奨指針を、比較することにより診断を実施し、診断結果を出力手段へ出力する。診断結果出力手段は、ＳＩＬ診断手段より出力された診断結果を、ディスプレイ、プリンタなどに出力することで対象ソフトウェアのＳＩＬを容易に評価することができる。このＳＩＬ診断過程で、入力された適用状況から直ちにＳＩＬ診断を実行するのではなく、適用状況からソフトウェア技法ごとに適用条件の成立、不成立を判定し、その判定結果に基づいてＳＩＬ診断を実行するので、購入ソフトウェア等に対するソフトウェア技法の重要度や適用状況の調査に柔軟に対応させて診断を行うことができる。
【００１２】
また、本発明に係るソフトウェア安全性診断装置は、さらにベストプラクティス保存手段に保存されているベストプラクティスデータを修正する技法データ修正手段を備えたことを特徴とする。好ましくは、ソフトウェア技法あるいは推奨指針に関連付けてこれらの詳細内容を保存しておき、表示されているソフトウェア技法または推奨指針の詳細内容を表示するガイダンス機能を設けるようにすると良い。これにより、ベストプラクティスの保守や、適用状況の入力が容易になる。
【００１３】
また、本発明に係るソフトウェア安全性診断装置は、さらに、診断前に目標とするＳＩＬを入力するための入力手段を備え、ＳＩＬ診断結果と目標ＳＩＬの判定手段と、判定結果および目標ＳＩＬに到達するために必要となる技法適用指針を出力する手段を有するものである。
【００１４】
本発明では、目標とするＳＩＬが決まっている場合に、目標ＳＩＬ入力手段より目標ＳＩＬを入力し、ＳＩＬ診断手段からの出力結果と比較、判定することにより、ＳＩＬ判定手段は判定結果と目標ＳＩＬに必要な技法の適用指針を出力する。ＳＩＬ判定手段による判定結果および目標ＳＩＬに到達するために必要な技法の適用指針をディスプレイ、プリンタなどに出力することで、対象ソフトウェアが目標ＳＩＬに到達するために必要なそるとウェア技法を容易にチェックすることができる。
【００１５】
また、本発明に係るソフトウェア安全性診断装置は、さらに、前記ソフトウェア技法データに重み付け点数を定義するための点数定義手段と、定義した重み付け点数を保存するための点数保存手段と、ソフトウェア技法に対する適用状況をもとに前記重み付け点数によって診断対象のソフトウェアの点数を算出し、当該ソフトウェアのＳＩＬ信頼度として出力する点数算出手段と、を備えたことを特徴とする。
【００１６】
本発明では、個々のソフトウェア技法ごとに重み付けをして、適用状況によってこの重み付け点数を加算処理等することによって、ＳＩＬ信頼度を客観的な数値として求める。
【００１７】
これにより、単に目標ＳＩＬレベルを満足しているか否かのみでなく、目標ＳＩＬレベルを満足したものについては、その信頼度を知ることができる。
【００１８】
このとき、好ましくは、重み付け点数の補正データを診断対象のソフトウェアごとに保存する手段と、ソフトウェアの評価試験結果にしたがって前記補正データを変更する補正データ変更手段と、を設けるようにすると良い。単に重み付けで点数表示をするのみでなく、アンケート等によって適用状況の確からしさやソフトウェア技法の質を評価試験によって確認して重み付けを補正することにより、実態に即したＳＩＬ信頼度を求めることができる。
【００１９】
なお、補正データ変更手段は、診断対象とするソフトウェアの使用言語ごとに定められた当該ソフトウェアのステップ数と実施した試験項目数との比率に基づいて前記補正データを変更し、また、予めソフトウェア技法ごとに試験項目および試験項目との関連度を保存しておいて、点数算出手段によりソフトウェア技法ごとにＳＩＬ信頼度を算出するようにする。このＳＩＬ信頼度が所定値以下の場合は、そのソフトウェア技法の充足あるいは質の向上を行うことによってソフトウェアの安全性向上の対策が容易となる。
【００２０】
本発明に係るソフトウェア安全性診断装置は、ソフトウェア技法の代替方法を定義するための代替技法定義手段と、定義した代替技法を保存するための代替技法保存手段と、ソフトウェア技法に対する適用状況の入力において、代替技法を表示する代替技法表示手段と、入力されたソフトウェア技法に対する適用状況と代替技法に対する適用状況に基づいて安全水準を満たしているか否かを判定する複合診断手段と、を備えたことを特徴とする。本発明では、代替技法を含めてＳＩＬ診断を実行する。
【００２１】
また、本発明に係るソフトウェア安全性診断用プログラムは、ソフトウェア技法データと、安全度水準ごとのソフトウェア技法の推奨指針データとを含むベストプラクティスデータを保存し、ソフトウェアの安全性を診断するコンピュータ上で動作するプログラムであって、前記ベストプラクティスデータを参照してソフトウェア技法を表示する処理と、  表示されたソフトウェア技法に対して入力された適用状況に基づいてソフトウェア技法ごとに適用タイプを判定する処理と、前記適用タイプから適用条件の成立、不成立を判定し、当該判定結果と前記推奨指針データとを用いて安全度水準ごとに当該水準を満たしているか否かを判定する処理と、前記判定結果を出力する処理と、をコンピュータに実行させることを特徴とする。
【００２２】
本発明では、ソフトウェア技法の適用状況から適用タイプを判定し、その適用タイプから安全度水準には影響されない一般的な適用条件の成立、不成立を判定し、この判定結果と推奨指針データをもとに安全度水準を満たしているか否かのＳＩＬ診断を実行する。
【発明の効果】
【００２３】
本発明によれば、既に自社が製作済みのソフトウェア、あるいは、他社からの購入ソフトウェアについて、容易に、かつ、簡便に、ＳＩＬを評価することが可能となる。
【００２４】
また、評価の結果、必要なＳＩＬを満足していない場合に、ライフサイクルのどのフェーズが不十分であり、そのフェーズにおけるどの技法を追加実行すれば、所要ＳＩＬが達成できるかを容易かつ簡便に診断することが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を説明する。
図３は、第１の実施の形態によるソフトウェア安全性診断装置の機能ブロック図である。ここで、ソフトウェア安全性診断装置１は、汎用的なコンピュータシステムによって構成され、その記憶部は、IEC61508で提示されているソフトウェア技法と安全度水準ごとの推奨指針からなるベストプラクティスデータを保存するベストプラクティスデータ保存手段２を有している。また、ＣＰＵによって実行される演算処理機能として、ベストプラクティスデータ保存手段２に格納されているソフトウェア技法や推奨指針データを修正するベストプラクティス修正手段１０、ベストプラクティスをディスプレイなどに表示出力するベストプラクティス表示手段３、ベストプラクティスの適用状況をマウスやキーボードなどの入力装置あるいはネットワークを介して入力するベストプラクティス適用状況入力手段４、ベストプラクティスデータ保存手段２に保存されている推奨指針と入力された適用状況により、診断処理を実施するＳＩＬ診断手段５、診断結果をディスプレイ、プリンタあるいはネットワークなどに出力する診断結果出力手段６、目標ＳＩＬがある場合に目標ＳＩＬを入力する目標ＳＩＬ入力手段７、ＳＩＬ診断結果と目標ＳＩＬより判定を実施するＳＩＬ判定手段８と、判定結果と目標ＳＩＬに到達するために必要な技法の適用指針をディスプレイ、プリンタ、ネットワークなどに出力する目標未達技法出力手段９を有している。
【００２６】
次に、図４〜図７を用いて、上記の構成を有するソフトウェア安全性診断装置１の動作を説明する。
【００２７】
周知のようにコンピュータソフトウェアに関連する規格は、国内あるいは国際的に標準化規格によって各種定められている。これらの規格は必要に応じて適宜更新されている。ベストプラクティスデータ保存手段２は機能安全に関する国際規格であるIEC61508に提示されているベストプラクティスを保存するためのデータベースであり、図４に示すように、技法または計測手法（ソフトウェア技法）と各技法の詳細説明および安全度水準ごとに必須か任意であるかの適用指針データで構成されている。
【００２８】
そして、オペレータの指示によって、ベストプラクティス表示手段３はディスプレイなどに各フェーズ単位にベストプラクティスおよび適用状況の入力画面を表示する。またベストプラクティスの詳細な説明を表示出力することによって、オペレータの参考に供することにより、適用状況の入力を容易とする。
【００２９】
ベストプラクティス適用状況入力手段４は図５のフローチャートに示す手順にしたがって、各ソフトウェア技法に対する適用状況を入力する。まず、オペレータにベストプラクティス適用状況の適用・非適用の入力を促し（ステップＳ１）、入力された適用状況が「適用」の場合には（ステップＳ１で「Ｙｅｓ」）、次に、根拠資料の有無の入力を促して、オペレータの入力に基づいて根拠資料が有りの場合は適用タイプ１、無しの場合は適用タイプ２とする（ステップＳ２）。一方、ステップＳ１でベストプラクティス非適用の場合には、次に論理的根拠の有無の入力を促し、オペレータの入力に基づいて非適用の論理的根拠がある場合は適用タイプ３、無い場合は適用タイプ４とする（ステップＳ３）。このようにして、適用状況として、ステップ４，５，６，７の適用タイプ１，２，３，４に分類する。
【００３０】
入力結果としての一例を図６に記す。このように全てのソフトウェア技法の項目について適用タイプを入力するが、規定により適用を同様技法から選択を行うようなケースでは、入力手段は選択入力を可能とするようなガイドを出力し、入力を補助する。
【００３１】
次に、ＳＩＬ診断手段５はベストプラクティス適用状況とベストプラクティスデータ保存手段２の推奨指針を比較、診断を実施する。図７のフローチャートで説明すると、まず、ステップ８で推奨指針の種別（必須か、任意か、無しか）を確認し、推奨指針が必須の場合は、次に適用タイプを判定し（ステップＳ９）、条件の成立、不成立を出力する。例えば、推奨指針の種別が"必須"の場合には、ステップ９で適用状況を確認し、適用タイプ１，３の場合はステップ１０の条件成立とし、適用タイプ２，４の場合はステップ１１の条件不成立とする。一方、ステップＳ８で推奨指針が任意あるいは無しの場合は、それぞれ、条件成立とする（ステップＳ１２、ステップＳ１３）。
【００３２】
診断結果の一例を図８に記す。上記の処理を各ソフトウェア技法単位、各ＳＩＬ単位で実行する。全てのソフトウェア技法に対して診断が終了した後に、ソフトウェアライフサイクルの各フェーズ単位で集計、計算を行い、各フェーズ単位および全体のＳＩＬを出力する。
【００３３】
診断結果出力手段６は上記診断結果をソフトウェアライフサイクルの各フェーズ単位および全体のＳＩＬをディスプレイ、プリンタなどに出力する。
【００３４】
また、目標ＳＩＬを目標ＳＩＬ入力手段７より追加入力することで、ＳＩＬ診断結果と目標ＳＩＬより、ＳＩＬ判定手段８は目標ＳＩＬと全体のＳＩＬを比較することで、判定を実施し、目標ＳＩＬに対して条件不成立のベストプラクティスを選択することで、目標ＳＩＬに到達するために必要なベストプラクティスを適用指針として出力する。目標未達技法出力手段９は判定結果および、適用指針をソフトウェアライフサイクルの各フェーズ単位でディスプレイ、プリンタなどに出力する。
【００３５】
本実施の形態によれば、既製のソフトウェア、他社からの購入ソフトウェアあるいは製品開発の最終段階で、対象となるソフトウェアのＳＩＬを診断することで、対象となるソフトウェアのＳＩＬを知ることができる。このことにより、対象となるソフトウェアを安全系に採用すべきか否かを判断することができる。また、目標ＳＩＬを追加入力することで、目標に対する判定結果および目標ＳＩＬに到達するために必要なベストプラクティスの適用指針を得ることが出来るため、ベストプラクティスを追加適用することで製品開発の最終段階、既製のソフトウェア、あるいは他社からの購入ソフトウェアのＳＩＬを上げることが可能である。この時、ベストプラクティスの詳細説明、適用方法を参考とすることで容易に追加適用が可能となる。
【００３６】
また、製品開発の初期段階にソフトウェアのＳＩＬを診断することで、適用すべき技法が明確になることにより、今後の図１、図２に示すようなソフトウェアライフサイクルのフェーズにおける適用技法の実施計画を立てることができる。同様に、ソフトウェアライフサイクルのフェーズの節目で開発中のソフトウェアのＳＩＬを診断することで、現状までの診断結果が明らかになり、手戻り作業の軽減に繋がる。
【００３７】
このことにより、開発の初期段階ならびに開発中のソフトウェアのＳＩＬを常にコントロールすることが可能である。
【００３８】
前述したように常に最新のIEC61508で提示されているソフトウェア技法ならびに推奨指針のベストプラクティスデータを容易に反映することができ、ソフトウェア安全性診断装置は最新のベストプラクティスデータにより診断を実施することが可能となる。
【００３９】
次に、第２の実施の形態を説明する。
図９は本実施の形態におけるソフトウェア安全性診断装置の機能ブロック図である。
図３との違いは、記憶部に、ソフトウェア技法データごとに定義された重み付け点数を保存する点数保存手段２１、重み付け点数の補正データを保存する補正データ保存手段２２、および試験項目数などの情報を保存する試験データ保存手段２３を追加し、演算部に、重み付け点数によって診断対象のソフトウェアの点数を算出する点数算出手段３１と、ソフトウェアの評価試験結果にしたがって重み付け点数を変更する補正データ変更手段３２とを追加したことである。重み付けとしては、ソフトウェア技法の適用が必須の場合に高く、任意の場合に低くする。その他については図３と同様であるので、同一機能には同一符号を付して説明を省略する。
【００４０】
次に、上記の構成を有するソフトウェア安全性診断装置１の動作を説明する。
図１０は、点数算出手段３１と補正データ変更手段３２の処理手順を示すフローチャートである。
【００４１】
まず、ソフトウェアの診断すべき安全度水準を選択する（Ｓ１０１）。これはオペレータによる入力によって選択してもよいし、コンピュータによって自動的に安全度水準を順に選択して実行させるようにしても良い。
【００４２】
そして、ソフトウェア技法について条件が成立しているか否かを判定して、条件が成立している場合は点数保存手段２１を参照して重み付け点数を抽出する（Ｓ１０４）。
【００４３】
そして、補正データ保存手段２２に格納されている所定のアルゴリズムで補正係数を算出する（Ｓ１０６）。図１１は、補正データ保存手段のデータ例である。プログラミング言語ごとの言語係数のほか、補正係数を算出するためのアルゴリズム情報が格納されている。
【００４４】
補正係数の算出アルゴリズムとしては、たとえば（１）式によって補正係数を求めることができる。
【００４５】
補正係数＝（実施した試験項目数／プログラムステップ数）×言語係数  ・・・（１）
（１）式は、実施した試験項目数、プログラムのステップ数、およびプログラムの言語によって補正係数を算出するというものであり、実施した試験の数が多くなるほど補正係数は大きくなる。また、高級言語になるほど、言語係数は大きくなる。
【００４６】
そして、算出した補正係数で重み付け点数を補正して（Ｓ１０７）、試験の影響比率を加味して補正された点数を合計していく（Ｓ１０８）。
【００４７】
図１２は、点数保存手段２１のデータ例である。ソフトウェア技法ごとに重み付け点数と、そのソフトウェア技法を検証するための試験の種別およびその試験のソフトウェア技法に対する影響比率（他の試験との割合）が格納されている。また、試験種別や試験種別ごとの試験項目数は、図１３に例示する試験データ保存手段２３に格納されている。
【００４８】
これらの保存手段に格納されているデータを用いて、ステップＳ１０７とステップＳ１０８は、以下の式によって演算することができる。
【００４９】
ソフトウェア技法の点数＝重み付け点数×補正係数×試験の影響比率    ・・・（２）
たとえば、実施した試験項目数＝50、プログラムステップ数＝10,000、言語係数＝100とすれば、上記（１）式より補正係数＝0.5となり、さらに、重み付け点数=50、試験の影響比率＝0.8とすれば、（２）式よりソフトウェア技法の当該試験における点数は20となる。
【００５０】
上記のステップＳ１０６〜ステップＳ１０８を全ての試験種別について繰り返す（Ｓ１０５ａ、Ｓ１０５ｂ）。
【００５１】
次に、算出した点数が予め定めた最大値を超えているか否かを判定して（Ｓ１０９）、最大値を超えていなければ、算出した点数をそのまま保存する（Ｓ１１１）。最大値を超えている場合は、当該最大値を保存する（Ｓ１１０）
【００５２】
上記のステップＳ１０３〜ステップＳ１１１までの処理を全てのソフトウェア技法について繰り返した後（Ｓ１０２ａ、Ｓ１０２ｂ）、各ソフトウェア技法についての点数を加算して、診断対象のソフトウェアの点数を算出する。
【００５３】
一方、ステップＳ１０３で条件不成立の場合は、その安全度水準を満足していないとして、ＳＩＬ不適合の出力を行う（Ｓ１１３）。
【００５４】
上記の手順のうち、ステップＳ１０５ａ〜Ｓ１１１は補正データ変更手段であり、それ以外は点数算出手段の処理手順である。
【００５５】
一般にソフトウェア技法を実施しているという根拠資料が存在したとしても、その根拠資料の質を評価していたのでは多大な労力と時間が必要となる。本実施の形態では、予め定義された重み付け点数を初期値としてプログラムのステップ数と試験項目数によってその点数を補正するので、ソフトウェア技法の適用の確からしさ即ち根拠資料の質を客観的に評価することができる。
【００５６】
これにより、たとえば購入側の受け入れ試験によって確からしさが８０％になるまで検証を行ったものについて採用するというような対応が可能となる。
【産業上の利用可能性】
【００５７】
本発明によるソフトウェア安全性診断装置は、良質なプログラムを製作するためのソフトウェア産業に利用することができる。
【図面の簡単な説明】
【００５８】
【図１】ＩＥＣ６１５０８によるソフトウェア作成におけるライフサイクルの説明図である。
【図２】ＩＥＣ６１５０８によるソフトウェア作成におけるライフサイクルのモデル図である。
【図３】本発明の第１の実施の形態によるソフトウェア安全性診断装置の機能構成図である。
【図４】図３のベストプラクティス(最善技法)データ保存手段のデータ例である。
【図５】図３の適用状況入力手段における適応状況入力の処理手順を示すフローチャートである。
【図６】図３の適用状況入力手段の処理結果の一例である。
【図７】図３のＳＩＬ診断手段の処理手順を示すフローチャートである。
【図８】図３のＳＩＬ診断手段の処理結果の一例である。
【図９】本発明の第２の実施の形態によるソフトウェア安全性診断装置の機能構成図である。
【図１０】図９の点数算出手段と補正データ変更手段の処理手順を示すフローチャートである。
【図１１】図９の補正データ保存手段のデータ構成例である。
【図１２】図９の点数保存手段のデータ構成例である。
【図１３】図９の試験データ保存手段のデータ構成例である。
【符号の説明】
【００５９】
１・・・ソフトウェアの安全性診断装置、２・・・ベストプラクティスデータ保存手段、３・・・ベストプラクティス表示手段、４・・・ベストプラクティス適用状況入力手段、５・・・ＳＩＬ診断手段、６・・・診断結果出力手段、７・・・目標ＳＩＬ入力手段、
８・・・ＳＩＬ判定手段、９・・・目標未達技法出力手段、１０・・・ベストプラクティスデータ修正手段、２１・・・点数保存手段、２２・・・補正データ保存手段、
２３・・・試験データ保存手段、３１・・・点数算出手段、３２・・・補正データ変更手段
【図１】
2008102630.tif 000003
【図３】
2008102630.tif 000004
【図４】
2008102630.tif 000005
【図５】
2008102630.tif 000006
【図６】
2008102630.tif 000007
【図７】
2008102630.tif 000008
【図８】
2008102630.tif 000009
【図９】
2008102630.tif 000010
【図１０】
2008102630.tif 000011
【図１１】
2008102630.tif 000012
【図１２】
2008102630.tif 000013
【図１３】
2008102630.tif 000014
【図２】
2008102630.tif 000015