JP2024039767A - ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム - Google Patents

ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム Download PDF

Info

Publication number
JP2024039767A
JP2024039767A JP2022144370A JP2022144370A JP2024039767A JP 2024039767 A JP2024039767 A JP 2024039767A JP 2022144370 A JP2022144370 A JP 2022144370A JP 2022144370 A JP2022144370 A JP 2022144370A JP 2024039767 A JP2024039767 A JP 2024039767A
Authority
JP
Japan
Prior art keywords
quality
software
evaluation
development
evaluation item
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.)
Pending
Application number
JP2022144370A
Other languages
English (en)
Inventor
勇輝 中野
Yuki Nakano
俊輔 平井
Shunsuke Hirai
太 田中
Futoshi Tanaka
寛司 白澤
Kanji Shirasawa
高寛 相根
Takahiro Sagane
正文 内海
Masafumi Utsumi
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 Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
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 Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2022144370A priority Critical patent/JP2024039767A/ja
Publication of JP2024039767A publication Critical patent/JP2024039767A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

Figure 2024039767000001
【課題】短時間で効率よく炉心計算を実行する方法を提供する。
【解決手段】ソフトウェア故障確率算出モデルの構築方法では、ソフトウェアの開発品質および検証品質に基づいて前記ソフトウェアの故障確率を算出する第1のモデルにおける開発品質および前記検証品質の評価項目について、前記第1のモデルで想定されているものとは異なるソフトウェア品質管理基準に準拠する評価項目を対応付けて、当該体管理基準に基づいて開発品質および検証品質を算出できるように構成する。また、対応付けた評価項目に対して開発品質又は検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する。
【選択図】図1

Description

本開示は、ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラムに関する。
ソフトウェアの故障は論理構造の設計ミス等によって生じ、ハードウェア故障と比べ観測が困難である。その為、ソフトウェアの故障確率を評価することは容易ではなく、例えば、国際規格等で与えられているソフトウェア故障確率の値を工学的判断に基づいて採用することによりソフトウェア品質を評価するといったことが行われている。これに対し、近年、米国でベイジアンネットワークモデルを用いてソフトウェアの故障確率を算出する手法が開発された(非特許文献1)。この手法では、ベイジアンネットワークモデルに基づいて、ソフトウェア開発およびV&V(verification and validation)の品質レベル(ソフトウェア品質管理基準への適合度)からソフトウェアに内在するバグ密度やバグ検知率を推定し、これらの値にソフトウェアのサイズを掛け合わせることでソフトウェア故障確率を算出する。非特許文献1に開示の手法により、ソフトウェア開発およびV&Vの品質レベルに応じた故障確率を客観的に算出することが可能となった。
特許文献1には、ベイジアンネットワークを用いて、コンピュータのハードウェアによって発生する異常と、ハードウェアの動作制御のためのソフトウェアによって発生する異常とを統合して診断する故障診断システムが開示されている。
特許第5181479号公報
NUREG/CR-7233,"Developing a Bayesian Belief Network Model for Quantifying the Probability of Software Failure of a Protection System"、online]、アメリカ合衆国原子力規制委員会、[2022年09月01日検索]、インターネット<https://www.nrc.gov/docs/ML1802/ML18022A139.pdf>
しかし、非特許文献1に記載の手法は、米国で採用されているソフトウェア品質管理基準が前提となっており、国内のソフトウェア品質管理基準に基づいて開発したソフトウェアに対して、非特許文献1に記載の手法をそのまま適用して故障確率を算出することは難しい。米国とは異なる品質管理基準に基づいて開発されたソフトウェアの品質を、非特許文献1に記載の手法と同様にして評価することができる評価モデルを構築する方法が必要とされている。
本開示は、上記課題を解決することができるソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラムを提供する。
本開示に係るソフトウェア品質評価モデル構築方法は、ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付けるステップと、対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定するステップと、前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築するステップと、を有する。
本開示に係るソフトウェア品質評価方法は、請求項1又は請求項2に記載のソフトウェア品質評価モデル構築方法によって構築された前記第2のベイジアンネットワークモデルに基づいて評価対象ソフトウェアの品質を評価するソフトウェア品質評価方法であって、前記評価対象ソフトウェアについて、前記第2の評価項目に対する品質情報の設定を受け付けるステップと、前記評価対象ソフトウェアのソフトウェアサイズの設定を受け付けるステップと、前記開発品質に関する前記第2の評価項目について設定された前記品質情報に基づいて前記開発品質の品質レベルを算出し、前記検証品質に関する前記第2の評価項目について設定された前記品質情報に基づいて前記検証品質の品質レベルを算出し、前記開発品質の品質レベルと前記検証品質の品質レベルと前記ソフトウェアサイズとに基づいて、前記評価対象ソフトウェアのソフトウェア故障確率を算出するステップとを有する。
本開示に係るソフトウェア品質評価装置は、ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付ける手段と、対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する手段と、前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築する手段と、を有する。
本開示に係るプログラムは、コンピュータを、ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付ける手段、対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する手段、前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築する手段、として機能させる。
本開示のソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラムによれば、固有のソフトウェア品質管理基準に基づいてソフトウェア故障確率を算出するソフトウェア品質評価モデルを構築することができる。ソフトウェア品質評価方法によれば、固有のソフトウェア品質管理基準に準拠したソフトウェア品質評価モデルに基づいてソフトウェア故障確率を算出することができる。
実施形態に係るソフトウェア品質評価装置の一例を示すブロック図である。 実施形態に係るソフトウェア品質評価モデルの一例を示す図である。 実施形態に係るソフトウェア品質評価モデルの構築処理およびソフトウェア故障確率の算出処理の一例を示すフローチャートである。 実施形態に係る評価項目の比較結果の一例を示す図である。 実施形態に係る条件付き確率分布の不確実さの設定の説明図である。 実施形態のソフトウェア品質評価装置のハードウェア構成の一例を示す図である。
<実施形態>
以下、本開示のソフトウェア品質評価装置について、図1~図6を参照しながら説明する。
(構成)
図1は、実施形態に係るソフトウェア品質評価装置の一例を示すブロック図である。
ソフトウェア品質評価装置10は、各国固有のソフトウェア品質管理基準/管理体系に基づいて開発されたソフトウェアの故障確率を算出するソフトウェア品質評価モデル(ベインジアンネットワークモデル)を構築し、構築したソフトウェア品質評価モデルに基づいて、評価対象ソフトウェアの故障確率を算出する。
図2にソフトウェア品質評価モデル100(以下、評価モデル100と記載する場合がある。)の一例を示す。図2に例示するベイジアンネットワークモデル100は、非特許文献1に記載された評価モデルである。評価モデル100は、開発品質101と、ソフトウェアサイズ102と、V&V品質103と、バグ密度104と、バグ検知率105と、生成されるバグ数106と、残留バグ数107と、ソフトウェア故障確率108の各ノードを含み、各ノードの因果関係がノード間の矢印によって示されている。即ち、開発品質101からバグ密度104を推定することができ、バグ密度104とソフトウェアサイズ102から生成されるバグ数106を算出することができる。一方、V&V品質103からバグ検知率105を算出することができ、バグ検知率105と生成されるバグ数106から残留バグ数107を算出することができる。最後に残留バグ数107からソフトウェア故障確率108を算出することができる。ベイジアンネットワークモデルでは、上流のノードについてある事象が生じた場合に矢印で結ばれた下流のノードで発生する事象を確率的に算出するが、図2に例示する評価モデル100についての各ノード間の確率的な関係性は米国において検討され既知となっている。つまり、日本においても、評価対象ソフトウェアに関する開発品質101、ソフトウェアサイズ102、V&V品質103を図2の評価モデル100に与えれば、あとは、既知となったノード間の関係性に基づいて、自動的に評価対象ソフトウェアの故障確率を算出することができる。これらのうち、ソフトウェアサイズ102については、例えば、ファンクションポイント法により算出したものを使用することができる。残りの開発品質101とV&V品質103については、開発品質101の場合、米国のソフトウェア品質管理基準に準拠する開発工程の品質レベルを評価するための評価項目ごとに「高」、「中」、「低」の何れかの評価を行って、各評価項目に対する評価結果から開発品質101の品質レベルが「高」、「中」、「低」の何れであるかを確率的に決定する。より具体的には、開発品質101の評価項目としては、「ソフトウェア開発計画」、「コンセプトの文書化」、「トレーサビリティ分析」、「セキュリティ分析」、「リスク分析」、・・・といった項目があり、評価項目「ソフトウェア開発計画」であれば、ソフトウェア開発計画の品質が「高」、「中」、「低」の何れであるかが設定される。また、「ソフトウェア開発計画」等の各評価項目について、その評価項目の「高」、「中」、「低」の評価が、開発品質101の品質レベルに与える影響度を示す条件付き確率分布が設定されている。そして、各評価項目について設定された「高」又は「中」又は「低」の評価および各評価項目が品質レベルに与える影響度を示す条件付き確率分布からベイズ法(ベイズ更新)により開発品質101の品質レベルが「高」、「中」、「低」である確率(例えば、開発品質101の品質レベルが「高」である確率60%、「中」である確率30%、「低」である確率10%等)が算出される。V&V品質103についても同様である。V&V品質103の評価項目(例えば、「V&V計画」、「コンセプトの文書化」・・・)の各々について、評価者が、「高」、「中」、「低」の何れかを設定する。また、各評価項目について、その評価項目に対する評価がV&V品質103の品質レベルに与える影響度を示す条件付き確率分布が設定されている。そして、各評価項目について設定された「高」又は「中」又は「低」の評価および各評価項目の影響度を示す条件付き確率分布からベイズ法によりV&V品質103の品質レベルが「高」、「中」、「低」の何れであるかが確率的に算出される。開発品質101の品質レベルやV&V品質103の品質レベルが有する不確実さ・確率的な性質は、そのまま下流へ伝播する。例えば、評価モデル100では、文献値に基づいて、開発品質101の品質レベルが「高」のときのバグ密度、「中」のときのバグ密度、「低」のときのバグ密度が設定されており、開発品質101の品質レベルが確率的に算出されると、「高」、「中」、「低」それぞれの場合のバグ密度と、品質レベルが「高」、「中」、「低」の何れであるかの確率から重み付け平均によってバグ密度104が算出され、算出されたバグ密度104に対する確率分布も算出される。
ここで、開発品質101およびV&V品質103の評価項目が米国で採用されているものと同じであれば、評価者が、各評価項目について「高」、「中」、「低」の評価を行うだけで、評価モデル100に基づいて、ソフトウェアの故障確率を算出することができる。しかし、米国で採用されている評価項目は米国のソフトウェア品質管理基準に準拠したものであって、日本国内で採用されている評価項目との間には差が存在する。日本のソフトウェア品質管理基準に基づいてソフトウェアの開発を行う場合、日本では採用されていない評価項目について「高」、「中」、「低」の評価を行うことは難しい。また、日本のソフトウェア品質管理基準に含まれるものであっても、開発対象のソフトウェアが使用される環境や状況にとって必要のない評価項目が存在する場合がある(例えば、ネットワークや可搬記憶媒体等を用いた他装置とのデータのやり取り等が一切発生しない環境で使用されるソフトウェアについては「セキュリティ分析」の評価項目は評価対象とする必要が無い等)。そこで、本実施形態のソフトウェア品質評価装置10は、米国のソフトウェア品質管理基準に基づく評価モデル100を、日本のソフトウェア品質管理基準に適合する評価モデル100´に構成し直して、日本のソフトウェア品質管理基準に基づいて開発されたソフトウェアについても、各評価項目に対する評価を設定しやすくし、国内向けの評価モデル100´に基づいてソフトウェア故障確率を算出する。なお、区別のため国内に適合するように構築したベインジアンネットワークモデルを評価モデル100´、評価モデル100´を構成するノードについても開発品質101´などと記載する。
図1に示すように、ソフトウェア品質評価装置10は、入力受付部11と、モデル構築部12と、故障確率算出部13と、記憶部14と、を備える。
入力受付部11は、キーボード、マウス、タッチパネル、ボタン等の入力装置を用いて入力された情報や指示などを受け付ける。例えば、入力受付部11は、評価モデル100´の構築に必要な設定情報の入力や評価モデル100´の構築処理の実行、ソフトウェア故障確率の算出処理の実行を指示する指示情報を受け付ける。入力受付部11は、受け付けた情報を記憶部14に記録したり、モデル構築部12又は故障確率算出部13へ出力したりする。
モデル構築部12は、米国のソフトウェア品質管理基準に基づいて構築されたベインジアンネットワークモデルである評価モデル100に基づいて、日本のソフトウェア品質管理基準に準拠した評価モデル100´を構築する処理を実行する。
故障確率算出部13は、モデル構築部12が構築した評価モデル100´に基づいて、評価対象のソフトウェアの故障確率を算出する。
記憶部14は、入力受付部11が受け付けた設定情報、評価モデル100´の構築処理およびソフトウェア故障確率の算出処理中に生成された情報や処理結果の情報、評価モデル100などを記憶する。評価モデル100には、開発品質101の評価項目の情報、開発品質101の評価項目それぞれに設定される「高」、「中」、「低」から開発品質101の品質レベルが「高」、「中」、「低」の何れであるかを確率的に算出するための計算式(開発品質101の評価項目が開発品質101の品質レベルに与える影響度を示す確率分布を含む。)、V&V品質103の評価項目の情報、V&V品質103の評価項目それぞれに設定される「高」、「中」、「低」からV&V品質103の品質レベルが「高」、「中」、「低」の何れであるかを確率的に算出するための計算式(V&V品質103の評価項目がV&V品質103の品質レベルに与える影響度を示す確率分布を含む。)、開発品質101からバグ密度104を算出する計算式、バグ密度104とソフトウェアサイズ102とから生成されるバグ数106を算出する計算式、V&V品質103とソフトウェアサイズ102とからバグ検知率105を算出する計算式、生成されるバグ数106とバグ検知率105から残留バグ数107を算出する計算式、残留バグ数107からソフトウェア故障確率108を算出する計算式が含まれている。
(動作)
次に本実施形態の評価モデル100´の構築処理およびソフトウェア故障確率の算出処理について説明する。図3は、実施形態に係るソフトウェア品質評価モデルの構築処理およびソフトウェア故障確率の算出処理の一例を示すフローチャートである。
入力受付部11が、日本のソフトウェア品質管理基準に準拠する開発品質101´とV&V品質103´の評価項目を取得する(ステップS11)。例えば、評価者が開発品質101´の評価項目とV&V品質103´の評価項目をソフトウェア品質評価装置10に設定(入力)し、日本向け評価モデル100´の構築を指示する。入力受付部11は、設定された複数の評価項目を取得して、記憶部14に記録するとともに、モデル構築部12へ評価モデル100´の構築処理の開始を指示する。
次にモデル構築部12が、米国の評価項目と日本の評価項目を比較し、対応付けを行う(ステップS12)。例えば、モデル構築部12は、記憶部14に格納された評価モデル100に含まれる開発品質101の評価項目とV&V品質103の評価項目を読み出す。そして、モデル構築部12は、米国の開発品質101の評価項目と日本の開発品質101´の評価項目を一つずつ比較し、同じ名称であれば、これらは対応する評価項目であると評価する。あるいは、モデル構築部12は、米国と日本の2つの評価項目の名称や評価項目の意味内容の説明文などの単語や文章の類似度を算出して、類似度が閾値以上であれば、それらは対応する評価項目であると評価してもよい。モデル構築部12は、このような比較および対応付けを、米国の開発品質101の評価項目およびV&V品質103の評価項目のそれぞれに対して行い、その比較結果を表示装置等へ出力する。なお、米国の評価項目と日本の評価項目の対応付けは、評価者によって実施され、その結果を入力受付部11が取得してもよい。比較結果の一例を図4に示す。
図4は、実施形態に係る評価項目の比較結果の一例を示す図である。図示するように米国の開発品質101の品質レベルを評価するための評価項目には「ソフトウェア開発計画」、「コンセプトの文書化」、「トレーサビリティ分析」、「セキュリティ分析」、「リスク分析」等が含まれる。図示するように、評価項目の名称等に基づく自動的な対応付け処理の結果、「ソフトウェア開発計画」、「コンセプトの文書化」、「リスク分析」については、対応する評価項目が日本のソフトウェア品質管理基準に準拠する評価項目の中に見つかり、「トレーサビリティ分析」と「セキュリティ分析」については対応する評価項目が見つからない結果となったとする。評価者は、対応無しとなった2つの評価項目に対し、同じ目的で実施される代替となる評価項目を設定する。例えば、「トレーサビリティ分析」については、評価者は、代替となる「図書改訂時に改定による影響があるかどうかを確認する」という評価項目をソフトウェア品質評価装置10へ設定する。「セキュリティ分析」については、日本のソフトウェア品質管理基準では対応する評価項目が見つからない(又は、実施する必要が無い)。その場合、評価者は「セキュリティ分析」を評価項目から削除するようソフトウェア品質評価装置10へ設定する。入力受付部11は、評価者が設定した代替となる評価項目や削除設定を受け付け、受け付けた設定情報をモデル構築部12へ出力する。モデル構築部12は、設定された代替となる評価項目の対応付け、又は、評価項目の削除を行う。これにより、日本向けの評価モデル100´の開発品質101´の評価項目には「ソフトウェア開発計画」、「コンセプトの文書化」、「図書改訂時に改定による影響があるかどうかを確認する」、「リスク分析」等が含まれることになる(「セキュリティ分析」は削除)。モデル構築部12は、対応付けや削除を行った後の開発品質101´に関する評価項目の一覧を記憶部14に記録(設定)する。評価者とモデル構築部12は、V&V品質103´の評価項目についても同様の処理を実行する。モデル構築部12は、対応付けや削除を行った後のV&V品質103´に関する評価項目の一覧を記憶部14に記録(設定)する。
次にモデル構築部12は、代替となる評価項目に対する条件付き確率分布の不確実さを設定する(ステップS13)。評価モデル100では、開発品質101の評価項目のそれぞれについて、その評価項目が開発品質101の品質レベルに与える影響度を表す値が条件付き確率分布(例えば、ある評価項目が「高」のときに開発品質101が「高」となる確率)で与えられている。V&V品質103の評価項目についても同様に、それぞれの評価項目ごとにV&V品質103の品質レベルに与える影響度が条件付き確率分布で与えられている。これは、米国のソフトウェア品質管理基準に基づいて開発されたソフトウェアについて研究された影響度の条件付き確率分布であって、ステップS12で設定された代替となる評価項目が品質レベルに対して同様の影響度を持つかどうかは不明である。従って、正確な影響度が分からないことから、代替となる評価項目に対する条件付き確率分布の不確実さの幅を増加させる。具体的には、米国における確率分布の95%信頼区間内に国内の場合には(中立的に)50%の確率で含まれると考え、米国の95%信頼区間に対して50%信頼区間に設定する。図5にある評価項目について設定された米国用の条件付き確率分布L1と、代替となる評価項目について設定された条件付き確率分布L2の一例を示す。図5の縦軸は確率変数(品質レベル)、横軸は確率密度である。モデル構築部12は、ステップS12で設定された代替となる評価項目に対して設定した条件付き確率分布を記憶部14に記録(設定)する。なお、ここでは、不確実さが不明なため中立的に50%信頼区間としたが、データが蓄積されて不確実さが判明した場合には適切な幅(例えば68%)を設定するようにしてもよい。
次にモデル構築部12は、日本のソフトウェア品質管理基準に準拠したソフトウェア品質評価モデル100´を構築する(ステップS14)。モデル構築部12は、評価モデル100に含まれる開発品質101の評価項目とV&V品質103の評価項目をステップS12で対応付けた評価項目に置き換え、ステップS12で削除した評価項目は削除し、代替となる評価項目を設定した場合には、その評価項目の開発品質101´又はV&V品質103´への影響度を示す条件付き確率分布をステップS13で設定した条件付き確率分布に置き換え、対応する評価項目が存在した場合には、元々その評価項目について設定されていた影響度を示す条件付き確率分布を対応する評価項目についてもそのまま設定することによって、評価モデル100´を構築する。モデル構築部12は、構築した評価モデル100´を記憶部14に記録する。これにより、米国で確立されたソフトウェア品質評価手法に基づきつつ、国内固有のソフトウェア品質管理基準に準拠した評価項目に基づいてソフトウェアの品質評価を行うことができる評価モデル100´を構築することができる。
次に故障確率算出部13は、評価対象ソフトウェアの故障確率を算出するかどうかを判定する(ステップS15)。例えば、評価者がソフトウェア故障確率算出処理の実行を指示すると、故障確率算出部13は、ソフトウェア故障確率を算出すると判定し、そうでない場合には故障確率を算出しないと判定する。ソフトウェア故障確率を算出しないと判定した場合(ステップS15;No)、図3の処理フローを終了する。
ソフトウェア故障確率を算出すると判定した場合(ステップS15;Yes)、故障確率算出部13は、ソフトウェア故障確率の算出処理を開始する。故障確率算出部13は、評価対象ソフトウェアについて、評価モデル100´の開発品質101´とV&V品質103´の評価項目に対する「高」、「中」、「低」の何れかの設定を取得する(ステップS16)。例えば、評価者が、評価対象ソフトウェアについて、日本のソフトウェア品質管理基準に基づいて評価を行い、その評価結果に基づいて、開発品質101´の品質レベルに影響する各評価項目に対して「高」、「中」、「低」の何れかを設定する。入力受付部11は、各評価項目に対する評価を受け付け、記憶部14に記録する。これにより、開発品質101´の品質レベルの確率的な算出が可能になる。同様に評価者は、V&V品質103´の各評価項目に対して「高」、「中」、「低」の何れかを設定する。入力受付部11は、各評価項目に対する評価を受け付け、記憶部14に記録する。これにより、V&V品質103´の品質レベルの確率的な算出が可能になる。
次に故障確率算出部13は、評価対象ソフトウェアについて、ソフトウェアサイズ102´の設定を取得する(ステップS17)。例えば、評価者は評価対象ソフトウェアのソフトウェアサイズをファンクションポイント法により算出し、その結果をソフトウェア品質評価装置10へ設定する。入力受付部11は、ソフトウェアサイズの設定を受け付け、記憶部14に記録する。ステップS16、S17により、評価モデル100´へ入力パラメータの設定が完了する。次に故障確率算出部13は、日本向けに構築された評価モデル100´に基づいて、評価対象ソフトウェアの故障確率を算出する(ステップS18)。故障確率算出部13は、ステップS16で設定された開発品質101´の各評価項目に対する評価と、各評価項目の影響度を表す条件付き確率分布に基づいてベイズ法により開発品質101´の品質レベルが「高」、「中」、「低」の何れであるかを確率的に算出する。次に故障確率算出部13は、開発品質101´の品質レベルに基づいて、バグ密度104´を算出する。次に故障確率算出部13は、バグ密度104´とステップS17で設定されたソフトウェアサイズ102´に基づいて、生成されるバグ数106´を算出する。故障確率算出部13は、ステップS16で設定されたV&V品質103´の各評価項目に対する評価と、各評価項目の影響度を表す条件付き確率分布に基づいてベイズ法により、V&V品質103´の品質レベルが「高」、「中」、「低」の何れであるかを確率的に算出する。次に故障確率算出部13は、V&V品質103´の品質レベルに基づいて、バグ検知率105´を算出する。次に故障確率算出部13は、バグ検知率105´と生成されるバグ数106´に基づいて、残留バグ数107´を算出する。次に故障確率算出部13は、残留バグ数107´基づいて、評価対象ソフトウェアのソフトウェア故障確率108´を算出する。これにより、日本のソフトウェア品質管理基準に基づいて開発されたソフトウェアについて、開発品質およびV&Vの品質レベルに応じた客観的な故障確率を算出することができる。
(効果)
以上、説明したように、本実施形態によれば、ソフトウェアの開発品質およびV&V品質の品質レベルを、日本のソフトウェア品質管理基準に準拠した評価項目に基づいて評価したうえで、ソフトウェアの開発品質およびV&V品質の品質レベルに応じた客観的なソフトウェア故障確率を算出する評価モデル100´を構築することができる。これにより、国際規格などで一律に定められたソフトウェア故障確率値ではなく、評価対象ソフトウェアの故障確率を、そのソフトウェアが実際に開発された過程における開発品質およびV&V品質の品質レベルを反映させて算出することができるので、より実態に即した正確なソフトウェア品質評価を行うことができる。例えば、原子力プラントの確率論的リスク評価(Probabilistic Risk Assessment:PRA)では、制御盤のソフトウェア故障確率が必要となるが、本実施形態によれば、より現実的な値を用いたリスク評価が可能となる。
なお、上記の例では、評価対象ソフトウェアが日本のソフトウェア品質管理基準に基づいて開発されることを前提としたが、評価モデル100´を構築する際に評価項目を準拠させる対象となるソフトウェア品質管理基準は他のもの(例えば開発企業が固有に定めたソフトウェア品質管理基準)であってもよい。また、上記した実施形態は、ソフトウェア開発プロセスの全工程にわたって行われてもよい、例えば、ソフトウェア開発プロセスの全行程が「要件定義」、「設計」、「開発(コーディング)」、「テスト」、「導入」の5つのフェーズで構成される場合、「要件定義」、「設計」、「開発(コーディング)」、「テスト」については、評価モデル100´の残留バグ数107´の算出までを実施し、残留バグ数107´を次のフェーズに引き継ぐようにし、最後の「導入」フェーズで最終的なソフトウェア故障確率108´を算出するようにしてもよい。あるいは、ソフトウェア開発と並行して、各フェーズが終了する度に振り返りとして、ソフトウェア故障確率108´を算出し、その結果を次フェーズに反映させてソフトウェア開発プロセスを進めるようにしてもよい。また、ステップS12では、対応する評価項目が無い(代替もない)場合に、その項目を削除することとしたが、例えば、対応する評価項目が無いものについては削除するのではなく、強制的に「中」を設定するといった方法で対処してもよい。
図6は、ソフトウェア品質評価装置のハードウェア構成の一例を示す図である。
コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。
上述のソフトウェア品質評価装置10は、コンピュータ900に実装される。そして、上述した各機能は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。また、ソフトウェア品質評価装置10は、複数のコンピュータ900によって構成されてもよい。
ソフトウェア品質評価装置10の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各機能部による処理を行ってもよい。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、CD、DVD、USB等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上のとおり、本開示に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
<付記>
実施形態に記載のソフトウェア故障確率算出モデル構築方法、ソフトウェア故障確率算出方法、ソフトウェア品質評価装置及びプログラムは、例えば以下のように把握される。
(1)第1の態様に係るソフトウェア品質評価モデル構築方法は、ソフトウェアの開発品質および検証品質(V&V品質)の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付けるステップと、対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定するステップと、前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築するステップと、を有する。
これにより、固有のソフトウェア品質管理基準に基づいてソフトウェア故障確率を算出するソフトウェア品質評価モデルを構築することができる。
(2)第2の態様に係るソフトウェア品質評価モデル構築方法は、(1)に記載のソフトウェア品質評価モデル構築方法であって、前記対応付けるステップでは、前記第1の評価項目のそれぞれについて、対応する前記第2の評価項目が有る場合には対応する前記第2の評価項目を対応付け、対応する前記第2の評価項目が無い場合には、代替となる前記第2の評価項目を対応付けるか、又は、前記第2の評価項目の対応付けを行わず、前記構築するステップでは、前記第2の評価項目を反映させる際に、前記第2の評価項目の対応付けを行わなかった前記第1の評価項目を削除する。
これにより、評価項目を固有のソフトウェア品質管理基準で定められた評価項目に適合させることができる。
(3)第3の態様に係るソフトウェア品質評価モデル構築方法は、(2)に記載のソフトウェア品質評価モデル構築方法であって、前記対応付けるステップにて前記代替となる前記第2の評価項目を対応付けた場合、前記条件付き確率分布を設定するステップでは、前記代替となる前記第2の評価項目について、前記第1のベイジアンネットワークモデルにおいて元々設定されている当該評価項目が前記開発品質又は前記検証品質の品質レベルに与える影響度を示す条件付き確率分布の不確かさの幅に、元々の値より増加させた所定の値を設定する。
これにより、新たに設定した評価項目については、その評価項目の開発品質やV&V品質の品質レベルへの影響度の不確かさが不明であることを考慮して、中立的な条件付き確率分布を設定することで、その不確かさを品質レベルに反映させることができる。
(4)第4の態様に係るソフトウェア品質評価モデル構築方法は、(2)~(3)に記載のソフトウェア品質評価モデル構築方法であって、前記対応付けるステップにて前記対応する前記第2の評価項目を対応付けた場合、前記条件付き確率分布を設定するステップでは、前記第1の評価項目に対応する前記第2の評価項目を対応付けた前記第2の評価項目について、前記第1のベイジアンネットワークモデルにおいて元々設定されている当該評価項目が前記開発品質又は前記検証品質の品質レベルに与える影響度を示す条件付き確率分布をそのまま設定する。
これにより、実績のある条件付き確率分布に基づいて開発品質やV&V品質の品質レベルを算出することができる。
(5)第5の態様に係るソフトウェア品質評価方法は、(1)~(4)に記載のソフトウェア品質評価モデル構築方法によって構築された前記第2のベイジアンネットワークモデルに基づいて評価対象ソフトウェアの品質を評価するソフトウェア品質評価方法であって、前記評価対象ソフトウェアについて、前記第2の評価項目に対する品質情報の設定を受け付けるステップと、前記評価対象ソフトウェアのソフトウェアサイズの設定を受け付けるステップと、前記開発品質に関する前記第2の評価項目について設定された前記品質情報に基づいて前記開発品質の品質レベルを算出し、前記検証品質に関する前記第2の評価項目について設定された前記品質情報に基づいて前記検証品質の品質レベルを算出し、前記開発品質の品質レベルと前記検証品質の品質レベルと前記ソフトウェアサイズとに基づいて、前記評価対象ソフトウェアのソフトウェア故障確率を算出するステップと、を有する。
これにより、ソフトウェアの開発品質およびV&V品質の品質レベルを、固有のソフトウェア品質管理基準で定められた評価項目に基づいて評価したうえで、ソフトウェアの開発品質およびV&V品質の品質レベルに応じた客観的なソフトウェア故障確率を算出することができる。
(6)第6の態様に係るソフトウェア品質評価装置は、ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付ける手段と、対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する手段と、前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築する手段と、を有する。
(7)第7の態様に係るプログラムは、コンピュータに、ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付ける手段、対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する手段、前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築する手段、として機能させる。
10・・・ソフトウェア品質評価装置
11・・・入力受付部
12・・・モデル構築部
13・・・故障確率算出部
14・・・記憶部
100、100´・・・評価モデル
101、101´・・・開発品質
102、102´・・・ソフトウェアサイズ
103、103´・・・V&V品質
104、104´・・・バグ密度
105、105´・・・バグ検知率
106、106´・・・生成されるバグ数
107、107´・・・残留バグ数
108、108´・・・ソフトウェア故障確率
900・・・コンピュータ
901・・・CPU
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース

Claims (7)

  1. ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付けるステップと、
    対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定するステップと、
    前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築するステップと、
    を有するソフトウェア品質評価モデル構築方法。
  2. 前記対応付けるステップでは、前記第1の評価項目のそれぞれについて、対応する前記第2の評価項目が有る場合には対応する前記第2の評価項目を対応付け、対応する前記第2の評価項目が無い場合には、代替となる前記第2の評価項目を対応付けるか、又は、前記第2の評価項目の対応付けを行わず、
    前記構築するステップでは、前記第2の評価項目を反映させる際に、前記第2の評価項目の対応付けを行わなかった前記第1の評価項目を削除する、
    請求項1に記載のソフトウェア品質評価モデル構築方法。
  3. 前記対応付けるステップにて前記代替となる前記第2の評価項目を対応付けた場合、
    前記条件付き確率分布を設定するステップでは、前記代替となる前記第2の評価項目について、前記第1のベイジアンネットワークモデルにおいて元々設定されている当該評価項目が前記開発品質又は前記検証品質の品質レベルに与える影響度を示す条件付き確率分布の不確かさの幅に、元々の値より増加させた所定の値を設定する、
    請求項2に記載のソフトウェア品質評価モデル構築方法。
  4. 前記対応付けるステップにて前記対応する前記第2の評価項目を対応付けた場合、
    前記条件付き確率分布を設定するステップでは、前記第1の評価項目に対応する前記第2の評価項目を対応付けた前記第2の評価項目について、前記第1のベイジアンネットワークモデルにおいて元々設定されている当該評価項目が前記開発品質又は前記検証品質の品質レベルに与える影響度を示す条件付き確率分布をそのまま設定する、
    請求項2又は請求項3に記載のソフトウェア品質評価モデル構築方法。
  5. 請求項1又は請求項2に記載のソフトウェア品質評価モデル構築方法によって構築された前記第2のベイジアンネットワークモデルに基づいて評価対象ソフトウェアの品質を評価するソフトウェア品質評価方法であって、
    前記評価対象ソフトウェアについて、前記第2の評価項目に対する品質情報の設定を受け付けるステップと、
    前記評価対象ソフトウェアのソフトウェアサイズの設定を受け付けるステップと、
    前記開発品質に関する前記第2の評価項目について設定された前記品質情報に基づいて前記開発品質の品質レベルを算出し、前記検証品質に関する前記第2の評価項目について設定された前記品質情報に基づいて前記検証品質の品質レベルを算出し、前記開発品質の品質レベルと前記検証品質の品質レベルと前記ソフトウェアサイズとに基づいて、前記評価対象ソフトウェアのソフトウェア故障確率を算出するステップと、
    を有するソフトウェア品質評価方法。
  6. ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付ける手段と、
    対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する手段と、
    前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築する手段と、
    を有するソフトウェア品質評価装置。
  7. コンピュータを、
    ソフトウェアの開発品質および検証品質の品質レベルに基づいて前記ソフトウェアの故障確率を算出する第1のベイジアンネットワークモデルのノードである前記開発品質と前記検証品質について、前記開発品質又は前記検証品質の品質レベルを評価する為の第1の評価項目と、前記第1の評価項目が準拠する第1のソフトウェア品質管理基準とは異なる第2のソフトウェア品質管理基準に準拠する、前記開発品質又は前記検証品質の品質レベルを評価する為の第2の評価項目と、を比較して対応付ける手段、
    対応付けた前記第2の評価項目のそれぞれについて、前記第2の評価項目の前記開発品質又は前記検証品質の品質レベルへの影響度を示す条件付き確率分布を設定する手段、
    前記第1のベイジアンネットワークモデルに前記第2の評価項目と前記条件付き確率分布を反映させることで、前記第2のソフトウェア品質管理基準に基づいて前記ソフトウェアの故障確率を算出する第2のベイジアンネットワークモデルを構築する手段、
    として機能させるためのプログラム。
JP2022144370A 2022-09-12 2022-09-12 ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム Pending JP2024039767A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022144370A JP2024039767A (ja) 2022-09-12 2022-09-12 ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022144370A JP2024039767A (ja) 2022-09-12 2022-09-12 ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2024039767A true JP2024039767A (ja) 2024-03-25

Family

ID=90367321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022144370A Pending JP2024039767A (ja) 2022-09-12 2022-09-12 ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム

Country Status (1)

Country Link
JP (1) JP2024039767A (ja)

Similar Documents

Publication Publication Date Title
JP6280551B2 (ja) ソフトウェアビルドエラーの予測
US9727441B2 (en) Generating dependency graphs for analyzing program behavior
US20160034270A1 (en) Estimating likelihood of code changes introducing defects
US20150025872A1 (en) System, method, and apparatus for modeling project reliability
US20110288846A1 (en) Technique and tool for efficient testing of controllers in development (h-act project)
JP6870312B2 (ja) 施策導入効果予測装置、施策導入効果予測プログラム及び施策導入効果予測方法
Jansen et al. The COMICS Tool–Co mputing Mi nimal C ounterexample s for DTMCs
George-Williams et al. Extending the survival signature paradigm to complex systems with non-repairable dependent failures
Kumar et al. A stochastic process of software fault detection and correction for business operations
US11645192B2 (en) Graph-based method for inductive bug localization
JP2018124829A (ja) 状態判定装置、状態判定方法及びプログラム
JP2020173650A (ja) プログラム運用システム、プログラム運用方法
JP2024039767A (ja) ソフトウェア品質評価モデル構築方法、ソフトウェア品質評価方法、ソフトウェア品質評価装置及びプログラム
JP6451417B2 (ja) デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム
KR20190135238A (ko) 새로운 사례의 분석을 통한 단일 분류 도메인의 전문가 경험 지식의 점진적 학습 방법 및 시스템
Ufuktepe et al. Estimating software robustness in relation to input validation vulnerabilities using Bayesian networks
JP6320269B2 (ja) ソフトウェア試験支援装置およびソフトウェア試験支援プログラム
CN114153742A (zh) 单元测试方法、装置、电子设备和存储介质
JP5836316B2 (ja) 障害監視システム、障害監視方法、及び障害監視プログラム
KR20230048475A (ko) 애플리케이션 로딩 시간을 분석하는 시스템 및 방법
Sarwar et al. Requirements based testing of software
US8352918B2 (en) Method and system for verifying properties of a computer program
US20130275113A1 (en) Availability model generation device
Wu et al. Estimating software system reliability: an architecture-based approach
Singh et al. Software Reliability with Jumping Finite Automata