JP6438084B2 - ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム - Google Patents

ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム Download PDF

Info

Publication number
JP6438084B2
JP6438084B2 JP2017144367A JP2017144367A JP6438084B2 JP 6438084 B2 JP6438084 B2 JP 6438084B2 JP 2017144367 A JP2017144367 A JP 2017144367A JP 2017144367 A JP2017144367 A JP 2017144367A JP 6438084 B2 JP6438084 B2 JP 6438084B2
Authority
JP
Japan
Prior art keywords
software product
safety
compliance
artifacts
requirements
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.)
Expired - Fee Related
Application number
JP2017144367A
Other languages
English (en)
Other versions
JP2018018525A (ja
Inventor
デサイ クリシュナジ
デサイ クリシュナジ
タパン タラン ギート
タパン タラン ギート
耕太郎 橋本
耕太郎 橋本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2018018525A publication Critical patent/JP2018018525A/ja
Application granted granted Critical
Publication of JP6438084B2 publication Critical patent/JP6438084B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本主題は、一般的には製品の安全性コンプライアンス検出に関し、排他的ではなくより具体的には、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムに関する。
故障が結果として寿命の損失、著しい特性の損害、または環境への損害になるシステムは、セーフティクリティカルシステムと呼ばれる。セーフティクリティカルシステムを用いる医療用装置、航空機フライト制御、武器製造、および原子力システム等の適用領域において、周知の例がある。ソフトウェアの観点から、必要とされる数および適した信頼性レベルでのセーフティクリティカルシステムの開発は、セーフティクリティカルシステムで用いられる個々のソフトウェア構成要素および/または製品の規格、アーキテクチャ、および検証プロセス等の領域において、著しい進歩が必要である。
加えて、セーフティクリティカルシステムの開発における基本的な課題の一つは、セーフティクリティカルシステムで用いられる各ソフトウェア構成要素を十分に試験することが不可能なことである。ソフトウェア製品の全ソースコードを実行することによって、ソフトウェア製品の徹底的な試験を行うことは、容易なプロセスのように思われる。しかしながら、全ての可能な実行パスを検査することは、最も簡易なソフトウェアであっても、非常に困難であり得る。例えば、5つの決定点および6つの機能ブロックを包含する(ループを含む)簡易なフローチャートは、解析されるとき、1014個の可能な実行パスを包含し得る。
従って、ソフトウェア製品の開発で用いられる手順と、標準化機構の一つによる、従うべき実際の標準的な手順との間には、大きなギャップが存在する場合がある。同様に、標準的な安全性手順の解釈、およびソフトウェア製品の関連する要素とそれらのマッピングには困難が存在する可能性がある。このマッピングの困難性は、結果として、ソフトウェア製品によって従うべき安全性手順と、標準的な安全性手順とのミスマッチとなる場合がある。よって、開発されたソフトウェア製品は、標準的な安全性手順に完全には準拠していないかもしれず、結果として、そのようなソフトウェア製品の認証中に、認証機関からの不合格および/または反復の可能性がある。
図1は、標準的な安全性手順と、ソフトウェア製品101に組み入れられた安全性手順との間の準拠のギャップを示す例示的な環境100aを示す。標準的な安全性手順111aは、ソフトウェア製品101に関する安全性基準およびマニュアル111のうちの一つから抽出され得る。図1に示されるように、ソフトウェア製品101における準拠のギャップは、標準的な安全性手順111aに対して、安全性手順の一つ以上の欠落した、不適格なおよび/または余分な要素がソフトウェア製品101に含まれている場合に生じ得る。さらに、ソフトウェア製品101は、ソフトウェア製品101によって従われる安全性手順の各要素が、標準的な安全性手順111aと整合する場合のみ、標準的な安全性手順111aに十分に準拠していると考えられ得る。
ソフトウェア製品における準拠のギャップを取り除くための既存の方法の一つは、中間実行シェルと、中間シェル上でソフトウェア製品の処理動作を行うオペレーティングシステムを有するデータプロセッサとを含む。中間シェルは、オペレーティングシステム、およびソフトウェア製品のアプリケーションソフトウェアと相互作用して、アプリケーションソフトウェアを試験するための安全性限界環境をエミュレートする。その後、アプリケーションソフトウェアは、中間シェル上で実行され、それによって、アプリケーションソフトウェアの実行結果に基づいて、ソフトウェア製品を修正し得る。しかしながら、この方法は、標準的な安全性手順に対するソフトウェア製品の安全性コンプライアンスレベルを判定する態様を開示していない。また、既存の方法は、ユーザが必要とされる工業コンプライアンス基準を選択することを可能にすることによって、ソフトウェア製品の綿密な分析を行う。しかしながら、これは、ソフトウェア製品を解析するために、開発者の継続的な介在を必要とし、手動による介在に起因する見落としによる誤差がある場合があり、このことは、結果として安全性基準に準拠しないことがあり得る。よって、ソフトウェア製品の安全性手順を標準的な安全性手順とマッピングすることによって、ソフトウェア製品の安全性コンプライアンスを判定する方法が要望されている。
ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムが本明細書に開示される。本開示の目的は、ソフトウェア製品のための安全完全性レベル標準の基準に従って、ソフトウェア製品が対応する安全性要件に準拠していることを検証することである。本開示は標準的な安全性手順における特定の安全性要件に基づいて、ソフトウェア製品と標準的な安全性手順との間のコンプライアンスギャップを埋め合わせるための方法を提案する。
したがって、本開示は、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法に関する。本方法は、安全性コンプライアンス判定システムによって、複数のソース(102)から一つ以上の安全性要件を抽出するステップを含む。一つ以上の安全性要件は、ソフトウェア製品によって遵守されるべき一つ以上の安全性特性を含む。抽出時に、一つ以上の安全性要件が、ソフトウェア製品と関連付けられた、対応する一つ以上のソフトウェア製品アーティファクトとマッピングされる。さらに、マッピングに基づいて、一つ以上のソフトウェア製品アーティファクトの各々のコンプライアンスが判定される。その後、本方法は、一つ以上の安全性要件に準拠している一つ以上のソフトウェア製品アーティファクトにスコアを割り当てる。最終的に、本方法は、一つ以上のソフトウェア製品アーティファクトに割り当てられたスコアに基づいて、ソフトウェア製品の安全性コンプライアンスレベルを判定することを含む。
さらに、本開示は、ソフトウェア製品の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システムに関する。安全性コンプライアンス判定システムは、プロセッサと、プロセッサに通信可能に結合されたメモリとを備える。メモリは、プロセッサ実行可能命令を記憶し、これは、実行時にプロセッサに、複数のソースから一つ以上の安全性要件を抽出させる。一つ以上の安全性要件は、ソフトウェア製品によって遵守されるべき一つ以上の安全性特性を含む。抽出時に、命令によって、プロセッサは、一つ以上の安全性要件を、ソフトウェア製品と関連付けられた対応する一つ以上のソフトウェア製品アーティファクトとマッピングする。さらに、マッピングに基づいて、一つ以上のソフトウェア製品アーティファクトの各々のコンプライアンスが判定される。その後、命令によって、プロセッサは、一つ以上の安全性要件に準拠している一つ以上のソフトウェア製品アーティファクトにスコアを割り当てる。最終的に、一つ以上のソフトウェア製品アーティファクトに割り当てられたスコアに基づいて、ソフトウェア製品の安全性コンプライアンスレベルが判定される。
前述の概要は、例証のためのみであり、決して限定することが意図されていない。上述の例証的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な説明を参照することによって明らかとなろう。
添付の図面は、本開示の一部に組み入れられ、かつその一部を構成し、例示的な実施形態を図示し、本明細書とともに、開示された原理を説明する。図中では、参照番号の最も左側の桁は、参照番号が最初に示された図を特定する。図面全体を通して、同様の特徴および構成要素を参照するために同じ番号が用いられている。ここで、本主題の実施形態によるシステムおよび/または方法のいくつかの実施形態は、例示のみを目的として、添付の図面を参照して説明される。
当技術分野におけるいくつかの問題による、ソフトウェア製品の安全性手順と標準的な安全性手順との間の準拠のギャップを示す例示的な環境を示す。 本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システムを図示する、例示的な環境を示す。 本開示のいくつかの実施形態による、安全性コンプライアンス判定システムを図示する詳細なブロック図を示す。 本開示のいくつかの実施形態による、安全性基準およびマニュアルから安全性要件を抽出するための方法を図示するフローチャートを示す。 本開示のいくつかの実施形態による、安全性要件をソフトウェア製品アーティファクトとマッピングするための方法を図示するブロック図を示す。 本開示のいくつかの実施形態による、安全性要件を安全性製品アーティファクトとマッピングする方法を示す。 本開示のいくつかの実施形態による、安全性要件を安全性製品アーティファクトとマッピングする方法を示す。 本開示のいくつかの実施形態による、安全性要件を安全性製品アーティファクトとマッピングする方法を示す。 本開示のいくつかの実施形態による、ソフトウェア製品のコンプライアンスを特定するための方法のブロック図を示す。 本開示のいくつかの実施形態による、コンプライアンスギャップレポートの例示的な図を示す。 本開示のいくつかの実施形態による、ソフトウェア製品と関連付けられた一つ以上のツールの安全性コンプライアンスレベルを判定するための方法のフローチャートを示す。 本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法のフローチャートを示す。 本発明と整合している実施形態を実施するための例示的なコンピュータシステムのブロック図を示す。
当業者においては、本明細書のあらゆるブロック図は、本主題の原理を具現化する例示的なシステムの概念図を表すことが理解されるべきである。同様に、あらゆるフローチャート、フロー図、状態遷移図、擬似コード等は、そのようなコンピュータまたはプロセッサが明白に示されていてもいなくても、実質的にコンピュータ可読媒体で表現され得、コンピュータまたはプロセッサによって実行され得るさまざまなプロセスを表すことが理解されよう。
本明細書においては、文言「例示的な(exemplary)」は、「例、ケース、または例証となる」を意味するために用いられる。「例示する(exemplary)」として本明細書で説明された主題のあらゆる実施形態または実施は、必ずしも他の実施形態と比較して好ましいかまたは有利であるとして解釈されるものではない。
本開示は、さまざまな修正および代替形態の余地があるが、その特定の実施形態は、例示を目的として図面によって示されており、以下に詳細に説明される。しかしながら、本開示を開示された特定の形態に限定することは意図されず、逆に本開示の本質および範囲に含まれる全ての修正、等価物、および代替を網羅することが理解されるべきである。
「備える(comprises)」、「備える(comprising)」という用語、またはそのあらゆる他の変形は、構成要素またはステップのリストを含む機構、装置または方法が、それらの構成要素またはステップを含むのみならず、明示的に列記されていないか、またはそのような機構または装置または方法に固有の他の構成要素またはステップを含み得るような、非排他的な包含を網羅することが意図される。換言すると、「…を備える(comprises)」によって移行するシステムまたは機器における一つ以上の要素は、さらなる制約なしに、当該システムまたは方法における他の要素または付加的な要素の存在を除外しない。
本開示は、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムに関する。ソフトウェア製品およびその関連ツールによってコンパイルされることが必要とされる一つ以上の安全性要件は、安全性基準およびマニュアルにおける一つ以上の安全性手順から抽出される。自然言語処理(NLP:Natural Language Processing)および意味解析技術を用いて安全性要件を抽出し、それによって、安全性基準からの安全性要件の特定における人手の介入の必要性を取り除く。一実施形態では、安全性要件は、ソフトウェア要求仕様(SRS:Software Requirements Specification)文書等の安全性製品に関する一つ以上の文書、一つ以上のソフトウェア製品アーティファクトおよびメーリングリストと関連付けられた一つ以上の受入検査基準(ATC:Acceptance Test Criteria)からさらに抽出され得る。
安全性要件を抽出すると、本方法は、ソフトウェア製品の一つ以上のソフトウェア製品アーティファクトに対応する一つ以上の安全性要件の、欠落し、不適格で余分な、かつ準拠している要素を特定するための、ソフトウェア製品と関連付けられた一つ以上のソフトウェア製品アーティファクトを分析する。そして、抽出された安全性要件は、コンプライアンスについてチェックされるべきソフトウェア製品アーティファクトを特定するための一つ以上のソフトウェア製品アーティファクトとマッピングされる。さらに、分析結果に基づいて、一つ以上の安全性要件の、欠落し、不適格で余分な、かつ準拠している要素、を特定するための安全性コンプライアンスレポートが生成される。そして、一つ以上のソフトウェア製品アーティファクトは、コンプライアンスに基づいてスコア付けされる。最終的に、安全性コンプライアンスレポートで特定された一つ以上の準拠のギャップは、先の試験結果の使用、異なるツールの選択を通して対応するソフトウェア製品アーティファクトを偏向することによって、またはソフトウェア製品の開発プロセスで用いられたソフトウェア製品アーティファクトのための新しいツールを開発することによって、修正され得る。
以下に続く本開示の実施形態の詳細な説明において、本明細書の一部を形成し、本開示を実践し得る特定の実施形態の図示を目的として示される添付の図面を参照する。これらの実施形態は、当業者が本開示を実践することを可能にする程度に十分に詳細に説明され、本開示の範囲から逸脱することなくなされ得る他の実施形態を利用できることが理解されるべきである。したがって、以下の説明は、限定的な意味で取られるものではない。
図2Aは、本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システムを図示する、例示的な環境を示す。
環境100bは、ソース1:102〜ソースn:102n(複数のソース102と総称する)の複数のソースと、安全性コンプライアンス判定システム103と、ソフトウェア製品101とを備える。複数のソース102は、ソフトウェア製品101に関する一つ以上の安全性基準およびマニュアル111が得られる一つ以上のリポジトリおよび/または文書である。一例として、複数のソース102は、ソフトウェア製品101のソフトウェア要求仕様(SRS)および設計文書と、ソフトウェア製品101の開発中に用いられたメーリングリストと、ソフトウェアアプリケーション制約と、ソフトウェア製品101と関連付けられた、製品のアーキテクチャ上の文書と、ゴール構造仕様、ライセンスおよびツールを含み得るが、これらに限定されない。一実施形態では、安全性コンプライアンス判定システム103は、I/Oインタフェース105と、メモリ107と、プロセッサ109とを備える。I/Oインタフェース105は、複数のソース102から一つ以上の安全性基準およびマニュアル111を受信するように構成され得る。メモリ107は、プロセッサ109に、通信可能に結合される。プロセッサ109は、本明細書において以下に説明されるような、ソフトウェア製品101の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システム103の一つ以上の機能を行うように構成される。一実施形態では、安全性コンプライアンス判定システム103によって生成されたコンプライアンスギャップレポート115は、ソフトウェア製品101において、一つ以上の安全性要件211の、一つ以上の欠落した、不適格かつ余分な要素を取り除くための一つ以上の修正を行うために用いられ得る。
図2Bは、本開示のいくつかの実施形態による、安全性コンプライアンス判定システムを図示する詳細なブロック図を示す。
一つの実施では、安全性コンプライアンス判定システム103は、データ207と、本開示の実施形態によるさまざまな動作を行うためのモジュール209とを備える。一実施形態では、データ207は、一つ以上の安全性要件211と、一つ以上のソフトウェア製品アーティファクト113と、コンプライアンスギャップレポート115と、他のデータ217とを含み得るが、これらに限定されない。一つの実施形態では、データ207は、さまざまなデータ構造の形式で、メモリ107内に記憶され得る。加えて、前述のデータ207は、データモデル、例えば関係または階層データモデルを用いて体系化されてもよい。他のデータ217は、をマルチメディアコンテンツ生成器101のさまざまな機能を行うためのモジュール209によって生成された、一時データおよび一時ファイルを含むデータ207を記憶し得る。
一実施形態では、一つ以上の安全性要件211は、ソフトウェア製品101によって準拠されるべき一つ以上の安全性特性を含む。一つ以上の安全性要件211は、ソフトウェア製品101の安全性コンプライアンスを判定する前に、複数のソース102から抽出され得る。ソフトウェア製品101の一つ以上の安全性要件211は、自然言語処理および意味解析技術を用いて抽出され得る。以下のセクションにおいて、複数のソース102から一つ以上の安全性要件211を抽出するプロセスが、安全性要件抽出モジュール219の機能性とともに簡潔に説明される。
一実施形態では、一つ以上のソフトウェア製品アーティファクト113は、ソフトウェア製品101に関する文書および手順であり、これらは、ソフトウェア製品101の機能性のために必須である。一例として、一つ以上のソフトウェア製品アーティファクト113は、ソフトウェア製品101の試験ケース、試験基準、および対応する試験結果と、試験ケースの実行追跡と、ソフトウェア製品101のソースコードと、一つ以上の注釈と、コメントと、ソフトウェア製品101と関連付けられた一つ以上のソフトウェア製品ツール327とを含むが、これらに限定されない。
一実施形態では、コンプライアンスギャップレポート115は、一つ以上のソフトウェア製品アーティファクト113の各々の、一つ以上の安全性要件211とのコンプライアンスのレベルを示し得る。コンプライアンスギャップレポート115は、一つ以上のソフトウェア製品アーティファクト113に対応する一つ以上の安全性要件211の、一つ以上の欠落した、不適格かつ余分な要素に基づいて生成され得る。さらに、コンプライアンスギャップレポート115は、ソフトウェア製品101の全体的な安全性コンプライアンスレベルを高めるために、ソフトウェア製品101に対する一つ以上の修正を行うための基準として考慮されてもよい。一例として、コンプライアンスギャップレポート115は、ソフトウェア製品101の開発者が、コーディングガイドラインの一つ以上の違反、安全性基準111に従う標準ワークフロー機構における差異を特定するのに役立ち得る。
一実施形態では、データ207は、安全性コンプライアンス判定システム103の一つ以上のモジュール209によって処理され得る。一つの実施では、一つ以上のモジュール209もまた、メモリ107内に記憶されてもよい。一実施形態では、一つ以上のモジュール209は、安全性コンプライアンス判定システム103の一つ以上の機能を行うためのプロセッサ109に通信可能に結合され得る。本明細書で用いられる場合、モジュールという用語は、特定用途向け集積回路(ASIC)、電子回路、一つ以上のソフトウェアまたはファームウェアプログラムを実行するプロセッサ(共有、専用、またはグループ)およびメモリ、組み合わせ理論回路、および/または説明された機能性を提供する他の好適な構成要素を指す。
一つの実施では、一つ以上のモジュール209は、安全性要件抽出モジュール219、要件マッピングモジュール221、コンプライアンス特定モジュール223、スコアリングモジュール225および他のモジュール227を含み得るが、これらに限定されない。
安全性要件抽出モジュール219は、複数のソース102から一つ以上の安全性要件211を抽出するために用いられ得る。一実施形態では、ソフトウェア製品101に適切である一つ以上の安全性基準およびマニュアル111の選択は、開発者、試験エンジニアおよび/またはソフトウェア製品101と関連付けられた任意のユーザによって、図3Aのブロック301に示されるようなマニュアル手順を用いて、手動で行われてもよい。マニュアル手順の一部として、ステップ302において、ユーザは、どの安全性文書がソフトウェア製品101に最も適切であるかについて、ユーザの以前のドメイン経験に基づいて、および/または複数のソース102の評判に基づいて決定を行い得る。一例として、ユーザによって選択された安全性基準111のうちの一つは、IEC−61508であってもよく、これは、当該ドメインにおいて適用されたさまざまな規則を含む、国際電気標準会議(IEC)によって公布された国際基準である。ステップ304において、ユーザは、ステップ302で選択された安全性基準に関する一つ以上の安全性文書を収集し得る。一例として、ユーザによって収集された一つ以上の安全性文書は、安全性認証機関によって公布されたSRS文書であってもよい。別の実施形態では、安全性要件抽出モジュール219単独で、複数のソース102から適切な安全性基準111を選択するように構成されてもよい。
ブロック303において、安全性要件抽出モジュール219は、ステップ304で選択された一つ以上の安全性基準111から、一つ以上の安全性要件211を抽出する。ステップ306において、安全性抽出モジュール内に構成されたテキスト解析技術のうちの一方を用いて、一つ以上の安全性文書が解析される。ステップ308において、ステップ306で解析された一つ以上の安全性文書から、一つ以上の安全性要件211が抽出される。ステップ310において、ステップ306で抽出された一つ以上の安全性要件211の各々が、一つ以上の安全性要件211の各々の間の関連性に基づいて分類されてカテゴリ化される。一例として、「試験」の態様に対応する一つ以上の安全性要件211は、カテゴリ「試験」に分類されてカテゴリ化され得る。一つ以上の安全性要件211の各々をカテゴリ化することは、一つ以上の安全性要件211の各々を、一つ以上の関連する安全性製品アーティファクトにマッピングするプロセスを迅速化するのに役立ち得る。一実施形態では、ステップ310で得られた一つ以上の安全性要件211の各カテゴリは、これらの安全性要件211の各々を、一つ以上の安全性製品アーティファクトとマッピングするための要件マッピングモジュール221によって用いられ得る。
図3Bは、一つ以上の安全性要件211の各々と、一つ以上のソフトウェア製品アーティファクト113とのマッピングを担う要件マッピングモジュール221のブロック図である。一つ以上の安全性要件211の各々を、ソフトウェア製品101のソフトウェアアーティファクト内の対応する要素とマッピングするプロセスが、図3Cから図3Eの図中に図示された例示的なシナリオによって説明され得る。
ソフトウェア製品「A」の安全性コンプライアンスレベルの判定中、ソフトウェア製品「A」に関するソフトウェア製品アーティファクト113、例えばソフトウェア製品「A」のSRS文書は、マッピングのために用いられ得る。一実施形態では、図3Cに示されるように、要件マッピングモジュール221は、一つ以上の安全性要件211を、ソフトウェア製品「A」のSRSとマッピングする前に、ソフトウェア製品「A」のSRSから、一つ以上の安全性特定キーワード323を抽出し得る。
さらに、図3Dに示されるように、ソフトウェア製品「A」のSRSから抽出された一つ以上の安全性特定キーワード323の各々が、一つ以上の安全性要件211の一つ以上の対応する安全性特定キーワード323に対してマッピングされる。一例として、安全性特定キーワード323、例えば「C++」、「test」、「Java」および同様のもの(図3D中で下線を付加したもの)は、安全性要件211に関する安全性特定キーワード323の同様のセットと合致し得る。一実施形態では、特定の安全性要件「試験」に対応する一つ以上の安全性特定キーワード323は、安全性要件「試験」によって満たされるソフトウェア製品ツール327および安全性特性を表し得る。
一実施形態では、安全性製品「A」のSRSから抽出された一つ以上の安全性特定キーワード323と合致する一つ以上の安全性要件211は、ソフトウェア製品「A」の安全性コンプライアンスレベルを判定するために考慮され得る。上記のシナリオでは、図3Eに示されるように、ソフトウェア製品「A」の「試験」、「ツール」、および「プラットフォーム」要素に関する一つ以上の安全性要件211が、ソフトウェア製品「A」の安全性コンプライアンスレベルを判定するために考慮され得る。最終的に、要件マッピングモジュール221は、マッピング完了時に、一つ以上のソフトウェア製品アーティファクト113に特有のソフトウェア要件のリストを提供し得る。
図3Fは、ソフトウェア製品101の安全性コンプライアンスレベルの判定を担うコンプライアンス特定モジュール223のブロック図を示す。コンプライアンス特定モジュール223は、一つ以上のソフトウェア製品アーティファクト113の各々のコンプライアンスレベルを判定するための、一つ以上の対応するソフトウェア製品アーティファクト113とマッピングされる一つ以上のソフトウェア要件のリストを獲得し得る。一実施形態では、コンプライアンス特定モジュール223は、NLP技術のうちの一つ、例えばコンプライアンスのレベルを判定するための自動意味役割付与(ASRL:Automatic Semantic Role Labeling)および意味的類似度分析を用い得る。さらに、コンプライアンス特定モジュール223は、一つ以上の安全性要件211の、一つ以上の欠落した、不適格かつ余分な要素を特定するために、マッピングされた安全性要件211の各々の間の整合性チェックをさらに行い得る。コンプライアンス特定モジュール223内に構成された「選択」および「集計」機能は、整合性チェックおよび各分析の結果を集計するための、適切な意味的比較を行うことを支援し得る。一実施形態では、コンプライアンス特定モジュール223は、分析の結果に基づいて、レポートを生成し得る。一例として、コンプライアンス特定モジュール223によって生成されたレポートのうちの一つは、一つ以上の安全性要件211の各々における一つ以上の欠落した、不適格かつ余分な要素を示す安全性要件レポート325であってもよい。コンプライアンス特定モジュール223によって生成された他のレポートのうちの一つは、一つ以上の安全性要件211の各々と、一つ以上のソフトウェア製品アーティファクト113とのマッピングにおけるギャップを示すコンプライアンスギャップレポート115であってもよい。
一実施形態では、スコアリングモジュール225は、コンプライアンス特定モジュール223によって生成されたコンプライアンスギャップレポート115に基づいて、一つ以上のソフトウェア製品アーティファクト113の各々にスコアを割り当てる。図3Gは、スコアリングモジュール225によって割り当てられたスコアとともに、コンプライアンス特定モジュール223によって生成された例示的なコンプライアンスギャップレポート115を示す。図3Gに示されるように、コンプライアンスギャップレポート115は、一つ以上のソフトウェア製品アーティファクト113のリストと、一つ以上のソフトウェアアーティファクトの各々の、対応する一つ以上の安全性要件211への準拠の表示とを含む。一例として、ソフトウェア製品アーティファクト「試験基準および試験ケース」(図3Gのソフトウェア製品アーティファクト113のリストにおいて参照番号1によって示される)は、対応する安全性要件「安全性要件1」が安全性製品によって準拠されていない場合、非準拠としてマークされ得る。同様に、別のソフトウェア製品アーティファクトは、「安全性要件6」がソフトウェア製品アーティファクト113によって完全に準拠されている場合、ソフトウェア製品のwikiページのリンク(図3Gのソフトウェア製品アーティファクト113のリストにおいて参照番号6によって示される)が、対応する「安全性要件6」に準拠しているとしてマークされ得ることを示している。
一実施形態では、一つ以上の安全性要件211との照合に利用可能ではない一つ以上のソフトウェア製品アーティファクト113もまた、非準拠としてマークされ得るが、これは、そのようなソフトウェア製品アーティファクト113のコンプライアンスがチェックされないためである。上述の実施形態では、安全性コンプライアンス判定システム103は、一つ以上の安全性要件211に対してマッピングされることが必要とされる一つ以上の試験ケースおよび/またはソフトウェア製品アーティファクト113を、動的に生成し得る。
一実施形態では、スコアリングモジュール225は、コンプライアンスギャップレポート115に基づいて、一つ以上のソフトウェア製品アーティファクト113の各々にスコアを割り当て得る。一例として、スコアリングモジュール225は、それぞれ準拠および非準拠である一つ以上のソフトウェア製品アーティファクト113に、値「1」および「0」のスコアを割り当て得る。従って、図3Gに示された例示的なコンプライアンスギャップレポート115のケースでは、スコアリングモジュール225は、ソフトウェア製品アーティファクト113のリスト内で参照番号6によって示されたソフトウェア製品アーティファクト113に、スコア値「1」を割り当て得る。同様に、リスト内の他のソフトウェア製品アーティファクト113の各々に、値「0」のスコアを割り当て得るが、これは、それらが対応する一つ以上の安全性要件211について準拠していないと判定されたためである。
最終的に、スコアリングモジュール225は、ソフトウェア製品アーティファクト113の各々に割り当てられたスコアを考慮することによって、ソフトウェア製品101の全体的なコンプライアンスレベルを算出し得る。一例として、ソフトウェア製品101に割り当てられた全体的なスコアは、適合している一つ以上のソフトウェア製品アーティファクト113に割り当てられたスコアの合計と、ソフトウェア製品101と関連付けられたソフトウェア製品アーティファクト113の総数との比を取ることによって算出され得る。ゆえに、図3Gのコンプライアンスギャップレポート115によって、ソフトウェア製品101の全体的な安全性スコアが、以下のように算出され得る。
スコア=(0+0+0+0+0+1)÷6=0.16=16.67%のコンプライアンス
ゆえに、ソフトウェア製品101は、分析に関して考慮される安全性基準およびマニュアル111に16.67%準拠していると考えられ得る。
一実施形態では、図3Hに表されるように、安全性コンプライアンス判定システム103は、上記で説明された方法を用いてソフトウェア製品101と関連付けられた一つ以上のソフトウェア製品ツール327の安全性レベルを判定し得る。図中に示されるように、複数のソース102から抽出された一つ以上の安全性要件211の各々は、一つ以上の安全性要件211の各々を、一つ以上のソフトウェア製品アーティファクト113とマッピングするのと同様の方法を用いてソフトウェア製品101と関連付けられた一つ以上のソフトウェア製品ツール327とマッピングされ得る。一例として、一つ以上のソフトウェア製品ツール327は、要件分析、設計および開発ならびにソフトウェア製品101の試験に用いられるソフトウェア製品ツール327を含み得るが、これらに限定されない。さらに、コンプライアンス特定モジュール223は、ソフトウェア製品101と関連付けられた一つ以上のツールのコンプライアンスにおける一つ以上のギャップを示すコンプライアンスギャップレポート115を生成し得る。最終的に、スコアリングモジュール225は、コンプライアンスギャップレポート115に基づいてソフトウェア製品101と関連付けられた一つ以上のソフトウェア製品ツール327の各々に、適切なスコアを割り当て、それによって、ソフトウェア製品101の安全性コンプライアンスレベルを判定する。
図4は、本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法を図示するフローチャートを示す。
図4に図示されるように、方法400は、安全性コンプライアンス判定システム103を用いてソフトウェア製品101の安全性コンプライアンスレベルを判定するための一つ以上のブロックを含む。方法400は、コンピュータ実行可能命令の一般的な文脈で記述され得る。概して、コンピュータ実行可能命令は、特定の機能を行うか、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造、手順、モジュール、および機能を含むことができる。
方法400が記述される順序は、限定として解釈されることを意図しておらず、任意の数の説明された方法ブロックを、本方法を実施するために任意の順序で組み合わせることができる。加えて、個々のブロックは、本明細書で説明された主題の本質および範囲から逸脱することなく、本方法から削除されてもよい。さらに、本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施することができる。
ブロック401において、安全性コンプライアンス判定システム103は、複数のソース102から、一つ以上の安全性要件211を抽出する。一例として、一つ以上の安全性要件211を抽出するために用いられる複数のソース102は、ソフトウェア製品101と関連付けられた一つ以上の安全性基準およびマニュアル111、ソフトウェア製品101のソフトウェア要求仕様(SRS)および設計文書、およびソフトウェア製品101の開発中に用いられたメーリングリストのうちの少なくとも一つを含む。一つ以上の安全性要件211は、ソフトウェア製品101によってコンパイルされる一つ以上の安全性特性を含む。一実施形態では、ソフトウェア製品101の一つ以上の安全性要件211が、安全性コンプライアンス判定システム103内に構成された自然言語処理および意味解析技術のうちの一つを用いて抽出される。
ブロック403において、安全性コンプライアンス判定システム103は、一つ以上の安全性要件211を、ソフトウェア製品101と関連付けられた対応する一つ以上のソフトウェア製品アーティファクト113とマッピングする。一例として、一つ以上のソフトウェア製品アーティファクト113は、ソフトウェア製品101のソースコードと、ソフトウェア製品101の実行結果と、ソフトウェア製品101の開発および試験中に生成された一つ以上のレポートと、ソフトウェア製品101の試験ケース、試験基準および対応する試験結果と、試験ケースの実行追跡と、一つ以上の注釈と、コメントと、ソフトウェア製品101と関連付けられた一つ以上のソフトウェア製品ツール327とのうちの少なくとも一つを含む。
ブロック405において、安全性コンプライアンス判定システム103は、ブロック403で行われるマッピングに基づいて、一つ以上のソフトウェア製品アーティファクト113の各々のコンプライアンスを判定する。一実施形態では、コンプライアンスを判定することは、一つ以上のソフトウェア製品アーティファクト113に対応する一つ以上の安全性要件211の、一つ以上の欠落した、不適格かつ余分な要素を特定することをさらに含む。
ブロック407において、安全性コンプライアント判定システム103は、一つ以上の抽出された安全性要件211に準拠している一つ以上のソフトウェア製品アーティファクト113に、スコアを割り当てる。
ブロック409において、安全性コンプライアンス判定システム103は、一つ以上のソフトウェア製品アーティファクト113に割り当てられたスコアに基づいて、ソフトウェア製品101の安全性コンプライアンスレベルを判定する。一実施形態では、ソフトウェア製品101の安全性コンプライアンスレベルは、コンプライアンスにおける一つ以上のソフトウェア製品アーティファクト113に割り当てられたスコアの合計と、ソフトウェア製品101と関連付けられたソフトウェア製品アーティファクト113の総数との比に対応し得る。
安全性コンプライアンス判定システム103は、一つ以上のソフトウェア製品アーティファクト113の各々のコンプライアンスにおける差異を示すためのコンプライアンスギャップレポート115を生成することをさらに含む。ソフトウェア製品101の安全性コンプライアンスレベルは、コンプライアンスギャップレポート115に基づいて、ソフトウェア製品101に一つ以上の修正を行うことによって高められ得る。一実施形態では、安全性コンプライアンス判定システム103は、ソフトウェア製品101の開発および試験に用いられる一つ以上のソフトウェア製品ツール327の安全性コンプライアンスレベルをさらに判定し得る。
コンピュータシステム
図5は、本発明と整合している実施形態を実施するための例示的なコンピュータシステム500のブロック図を図示する。一実施形態では、コンピュータシステム500は、ソフトウェア製品101の安全性コンプライアンスレベルを判定するために用いられる安全性コンプライアンス判定システム103あってもよい。コンピュータシステム500は、中央処理装置(「CPU」または「プロセッサ」)502を備え得る。プロセッサ502は、ユーザまたはシステム生成ビジネスプロセスを実行するためのプログラム構成要素を実行するための少なくとも一つのデータプロセッサを備え得る。ユーザは、人、本発明に含まれるもののような装置を用いる人、またはそのような装置自体を含み得る。プロセッサ502は、特殊な処理ユニット、例えば統合システム(バス)コントローラ、メモリ管理制御ユニット、浮動小数点ユニット、グラフィック処理ユニット、デジタル信号処理ユニット等を含み得る。
プロセッサ502は、I/Oインタフェース501を介して、一つ以上の入出力(I/O)装置(511および512)と通信して配設され得る。I/Oインタフェース501は、通信プロトコル/方法、例えば音声、アナログ、デジタル、ステレオ、IEEE−1394、シリアルバス、ユニバーサルシリアルバス(USB)、赤外線、PS/2、BNC、同軸、構成要素、合成、デジタルビジュアルインタフェース(DVI)、高精細度マルチメディアインタフェース(HDMI(登録商標))、無線周波数(RF:Radio Frequency)アンテナ、S−ビデオ、ビデオグラフィックスアレイ(VGA)、IEEE802.n/b/g/n/x、Bluetooth(登録商標)、セルラ(例えば、符号分割多重アクセス(CDMA: Code Division Multiple Access)、高速パケットアクセス(HSPA+)、広域自動車通信システム(GSM(登録商標))、ロングタームエボリューション(LTE)等)等を使用し得るが、これらに限定されない。
I/Oインタフェース501を用いて、コンピュータシステム500は、一つ以上のI/O装置(511および512)と通信し得る。
いくつかの実施形態では、プロセッサ502は、ネットワークインタフェース503を介して、通信ネットワーク509と通信して配設され得る。ネットワークインタフェース503は、通信ネットワーク509と通信し得る。ネットワークインタフェース503は、直接接続、イーサネット(登録商標)(例えば、撚線対10/100/1000ベースT)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、トークンリング、IEEE802.11a/b/g/n/xを含むがこれらに限定されない接続プロトコルを使用し得る。ネットワークインタフェース503および通信ネットワーク509を用いて、コンピュータシステム500は、一つ以上のソフトウェア製品510(1...n)と通信し得る。通信ネットワーク509は、異なるタイプのネットワーク、例えばイントラネットまたはローカルエリアネットワーク(LAN)、および組織内部のそのようなもののうちの一つとして実施することができる。通信ネットワーク509は、専用ネットワークまたは共有ネットワークのいずれかであってもよく、これは、例えばハイパーテキスト転送プロトコル(HTTP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ワイヤレスアプリケーションプロトコル(WAP)等の、互いに通信するための多様なプロトコルを用いる異なるタイプのネットワークの関連付けを表す。さらに、通信ネットワーク509は、ルータ、ブリッジ、サーバ、コンピューティング装置、記憶装置等を含む多様なネットワーク装置を含んでもよい。一つ以上のソフトウェア製品510(1、…、n)は、パーソナルコンピュータ、モバイル装置、例えばセルラ電話、スマートホン、タブレットコンピュータ、eBookリーダ、ラップトップコンピュータ、ノートブック、ゲーミングコンソール等を含み得るが、これらに限定されない。
いくつかの実施形態では、プロセッサ502は、記憶インタフェース504を介して、メモリ505(例えば、図5に示されたRAM513およびROM514等)と通信して配設され得る。記憶インタフェース504は、接続プロトコル、例えばシリアルアドバンストテクノロジーアタッチメント(SATA)、インテグレーテッドドライブエレクトロニクス(IDE)、IEEE−1394、ユニバーサルシリアルバス(USB)、ファイバーチャネル、小型コンピュータシステムインタフェース(SCSI)等を使用して、メモリドライブ、リムーバブルディスクドライブ等を含むがこれらに限定されないメモリ505に接続し得る。メモリドライブは、ドラム、磁気ディスクドライブ、光磁気ドライブ、光学式ドライブ、独立ディスク冗長型アレイ(RAID)、ソリッドステートメモリ装置、ソリッドステートドライブ等をさらに含み得る。
メモリ505は、ユーザ/アプリケーションデータ506、オペレーティングシステム507、ウェブサーバ508等を含むがこれらに限定されないプログラムまたはデータベース構成要素の集合を記憶し得る。いくつかの実施形態では、コンピュータシステム500は、本発明で説明されたように、ユーザ/アプリケーションデータ506、例えばデータ、変数、レコード等を記憶し得る。そのようなデータベースは、フォールトトレラントで、リレーショナルで、拡張性があり安全なデータベース、例えばOracleまたはSybaseとして組み込まれ得る。
オペレーティングシステム507は、コンピュータシステム500の資源管理および動作を容易にし得る。オペレーティングシステムの例は、Apple Macintosh OS X、UNIX(登録商標)、Unixライクなシステムディストリビューション(例えば、Berkeley Software Distribution(BSD)、FreeBSD、Net BSD、Open BSD等.)、Linuxディストリビューション(例えば、Red Hat、Ubuntu、K−Ubuntu等.)、International Business Machines(IBM)OS/2、Microsoft ウィンドウズ(登録商標)(XP、Vista/7/8等.)、Apple iOS、Google Android、Blackberryオペレーティングシステム(OS)等を含むがこれらに限定されない。ユーザインタフェース506は、テキストまたはグラフィカルファシリティを通して、プログラム構成要素の表示、実行、インタラクション、操作、または動作を容易にし得る。例えば、ユーザインタフェースは、コンピュータシステム500に動作可能に接続されたディスプレイシステム上に、コンピュータインタラクションインタフェース要素、例えばカーソル、アイコン、チェックボックス、メニュー、窓、ウィジェット等を提供し得る。Apple MacintoshオペレーティングシステムのAqua、IBM OS/2、Microsoftウィンドウズ(例えば、Aero、Metro等)、Unix X−ウィンドウズ、ウェブインタフェースライブラリアン(例えば、ActiveX、Java(登録商標)、JavaScript(登録商標)、AJAX、HTML、Adobe Flash等)等を含むが、これらに限定されないグラフィカルユーザインタフェース(GUI)を使用してもよい。
いくつかの実施形態では、コンピュータシステム500は、ウェブブラウザ508記憶プログラム構成要素を組み込んでもよい。ウェブブラウザは、ハイパーテキスト閲覧アプリケーション、例えばMicrosoft Internet Explorer、Google Chrome、Mozilla Firefox、Apple Safari等であってもよい。安全なウェブブラウジングは、セキュアハイパーテキスト転送プロトコル(HTTPS)セキュアソケットレイヤ(SSL)、トランスポートレイヤセキュリティ(TLS)等を用いて提供され得る。ウェブブラウザは、例えばAJAX、DHTML、Adobe Flash、JavaScript(登録商標)、Java(登録商標)、アプリケーションプログラミングインタフェース(API)等のファシリティを利用してもよい。いくつかの実施形態では、コンピュータシステム500は、メールサーバ記憶プログラム構成要素を組み込んでもよい。メールサーバは、Microsoft Exchange等のインターネットメールサーバであってもよい。メールサーバは、アクティブサーバページ(ASP)、ActiveX、米国規格協会(ANSI)C++/C#、Microsoft NET、CGIスクリプト、Java(登録商標)、JavaScript(登録商標)、PERL、PHP、Python、ウェブオブジェクト等のファシリティを利用してもよい。メールサーバは、例えばインターネットメッセージアクセスプロトコル(IMAP)、メッセージングアプリケーションプログラミングインタフェース(MAPI)、Microsoft Exchange、ポストオフィスプロトコル(POP)、簡易メール転送プロトコル(SMTP)等の通信プロトコルを利用してもよい。いくつかの実施形態では、コンピュータシステム500は、メールクライアント記憶プログラム構成要素を組み込んでもよい。メールクライアントは、例えばApple Mail、Microsoft Entourage、Microsoft Outlook、Mozilla Thunderbird等のメール閲覧アプリケーションであってもよい。
さらに、本発明と整合する実施形態の実施において、一つ以上のコンピュータ可読記憶媒体を利用してもよい。コンピュータ可読記憶媒体は、プロセッサによって可読である情報またはデータを記憶し得る、任意のタイプの物理的メモリを指す。このように、コンピュータ可読記憶媒体は、一つ以上のプロセッサによって実行するための命令を記憶してもよく、本明細書で説明された実施形態と整合するステップまたは段階を行わせるための命令を含む。「コンピュータ可読媒体(computer−readable medium)」という用語は、有形物を含み、搬送波および過渡信号、すなわち非一時的なものを除外すると理解されるべきではない。例は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、コンパクトディスク(CD)ROM、デジタルビデオディスク(DVD)、フラッシュドライブ、ディスク、および任意の他の既知の物理的記憶媒体を含む。
本明細書において、本開示の実施形態の利点が例証される。
一実施形態では、本開示は、所与の安全性基準に従って、一つ以上の安全性要件によるソフトウェア製品の安全性コンプライアンスレベルを自動判定するための方法を提供する。
一実施形態では、本開示の方法は、自然言語処理(NLP)および意味解析技術を用いた、安全性製品に関する標準的な安全性手順の容易な解釈に役立つ。
一実施形態では、本開示の方法は、ソフトウェア製品の安全性認証中の不合格および/または複数の繰り返しの可能性を最小化する。
一実施形態では、本開示の方法は、ソフトウェア製品の開発のさまざまな局面中に、ソフトウェア製品の安全性コンプライアンスレベルを判定する手段を提供する。
一実施形態では、本開示の方法は、安全性基準に従ってシステムのコンプライアンスを維持することによって、安全臨界システムの開発中に開発者への支援を提供する。
「実施形態(an embodiment)」、「実施形態(embodiment)」、「実施形態(embodiments)」、「実施形態(the embodiment)」、「実施形態(the embodiments)」、「一つ以上の実施形態(one or more embodiments)」、「いくつかの実施形態(some embodiments)」、および「一実施形態(one embodiment)」という用語は、明示的に指定されない限り、「本発明の一つ以上の(しかし全てではない)実施形態」を意味する。
「含む(including)」、「備える(comprising)」、「有する(having)」という用語およびそれらの変形は、明示的に指定されない限り、「含むがそれらに限定されない」を意味する。
列挙された項目のリストは、明示的に指定されない限り、任意のまたは全ての項目が互いに排他的であることを示唆しない。
「a」、「an」および「the」という用語は、明示的に指定されない限り、「一つ以上」を意味する。
互いに通信しているいくつかの構成要素を備える実施形態の説明は、全てのそのような構成要素が必要とされることを示唆しない。反対に、多様なオプションの構成要素は、本発明の幅広い可能な実施形態を例証するために説明される。
単一の装置または物品が本明細書で説明された場合、2つ以上の装置/物品が(それらが協働するかどうかにかかわらず)単一の装置/物品の適所で用いられ得ることが容易に明らかとなろう。同様に、2つ以上の装置または物品が本明細書で説明された場合(それらが協働するかどうかにかかわらず)、単一の装置/物品が、2つ以上の装置または物品の適所で用いられ得るか、または示された数の装置またはプログラムに代えて、異なる数の装置/物品が用いられてもよいことが容易に明らかとなろう。装置の機能性および/または特徴は、そのような機能性/特徴を有するとして明記されていない一つ以上の他の装置によって代替的に具現化されてもよい。このように、本発明の他の実施形態は、装置自体を含むことを要しない。
最後に、本明細書で用いられる言語は、主として可読性および指示目的のために選択されており、本発明の主題を線引きまたは制限するために選択されてはいない可能性がある。したがって、本発明の範囲が、この詳細な説明によってではなく、むしろ本明細書に基づく出願に関して生じる任意の請求項によって限定されることが意図されている。よって、本発明の実施形態は、例証的であることが意図され、以下の特許請求の範囲で述べられた本発明の範囲を限定することは意図されていない。
本明細書においてさまざまな態様および実施形態を開示してきたが、当業者には、他の態様および実施形態が明らかであろう。本明細書に開示されたさまざまな態様および実施形態は、図示を目的とし、限定することは意図されておらず、真の範囲および趣旨は、以下の特許請求の範囲によって示されている。
100a:環境(ソフトウェア製品における準拠のギャップ)、100b環境(本開示の安全性コンプライアンス判定システム)、101:ソフトウェア製品、102:ソース、
103:安全性コンプライアンス判定システム、105:I/Oインタフェース、107:メモリ、109:プロセッサ、111:安全性基準およびマニュアル、113:ソフトウェア製品アーティファクト、115:コンプライアンスギャップレポート、207:データ、209:モジュール、211:安全性要件、217:他のデータ、219:安全性要件抽出モジュール、221:要件マッピングモジュール、223:コンプライアンス特定モジュール、225:スコアリングモジュール、227:他のモジュール、315:ソフトウェア製品アーティファクト特定要件、319:要件マッピングデータベース、323:安全性特定キーワード、325:安全性整合性レポート、327:ソフトウェア製品ツール

Claims (18)

  1. ソフトウェア製品(101)の安全性コンプライアンスレベルを判定する方法であって、
    安全性コンプライアンス判定システム(103)によって、複数のソース(102)から一つ以上の安全性要件(211)を抽出するステップであって、前記一つ以上の安全性要件(211)が、前記ソフトウェア製品(101)によって遵守されるべき一つ以上の安全性特性を含む、前記抽出するステップと、
    前記安全性コンプライアンス判定システム(103)によって、前記一つ以上の安全性要件(211)を、前記ソフトウェア製品(101)と関連付けられた対応する一つ以上のソフトウェア製品アーティファクト(113)とマッピングするステップと、
    前記安全性コンプライアンス判定システム(103)によって、前記マッピングに基づいて、前記一つ以上のソフトウェア製品アーティファクト(113)の各々のコンプライアンスを判定するステップと、
    前記安全性コンプライアンス判定システム(103)によって、前記一つ以上の抽出された安全性要件に準拠している前記一つ以上のソフトウェア製品アーティファクト(113)にスコアを割り当てるステップと、
    前記安全性コンプライアンス判定システム(103)によって、前記一つ以上のソフトウェア製品アーティファクト(113)に割り当てられた前記スコアに基づいて、前記ソフトウェア製品(101)の前記安全性コンプライアンスレベルを判定するステップと、
    を含む、方法。
  2. 前記コンプライアンスを判定するステップは、前記一つ以上のソフトウェア製品アーティファクト(113)に対応する、前記一つ以上の安全性要件(211)における一つ以上の欠落した、不適格かつ余分な要素を特定するステップをさらに含む、請求項1に記載の方法。
  3. 前記ソフトウェア製品(101)の前記安全性コンプライアンスレベルが、準拠している前記一つ以上のソフトウェア製品アーティファクト(113)に割り当てられた前記スコアの和と、前記ソフトウェア製品(101)と関連付けられた前記ソフトウェア製品アーティファクト(113)の総数との比に対応する、請求項1に記載の方法。
  4. 前記ソフトウェア製品(101)の前記一つ以上の安全性要件(211)が、自然言語処理および意味解析技術のうちの一方を用いて抽出される、請求項1に記載の方法。
  5. 前記一つ以上の安全性要件(211)を抽出するために用いられる前記複数のソース(102)が、前記ソフトウェア製品(101)と関連付けられた一つ以上の安全性基準およびマニュアル(111)、前記ソフトウェア製品(101)のソフトウェア要求仕様(SRS)および設計文書、前記ソフトウェア製品(101)の開発中に用いられたメーリングリスト、のうちの少なくとも一つを含む、請求項1に記載の方法。
  6. 前記一つ以上のソフトウェア製品アーティファクト(113)が、前記ソフトウェア製品(101)のソースコード、前記ソフトウェア製品(101)の実行結果、前記ソフトウェア製品(101)の開発および試験中に生成された一つ以上のレポート、のうちの少なくとも一つを含む、請求項1に記載の方法。
  7. 前記一つ以上のソフトウェア製品アーティファクト(113)の各々の前記コンプライアンスにおける差異を示すためのコンプライアンスギャップレポート(115)を生成するステップをさらに含む、請求項1に記載の方法。
  8. 前記コンプライアンスギャップレポート(115)に基づいて、前記ソフトウェア製品(101)に一つ以上の修正を行うことによって、前記ソフトウェア製品(101)の安全性コンプライアンスレベルを向上させるステップをさらに含む、請求項7に記載の方法。
  9. 前記ソフトウェア製品(101)の開発および試験で用いられる一つ以上のソフトウェア製品ツール(327)の安全性コンプライアンスレベルを判定する、第二の判定するステップをさらに含む、請求項1に記載の方法。
  10. ソフトウェア製品(101)の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システム(103)であって、
    プロセッサ(109)と、
    前記プロセッサに通信可能に結合されたメモリ(107)と、を備え、前記メモリ(107)は、前記プロセッサ(109)に、
    複数のソース(102)から一つ以上の安全性要件(211)を抽出するステップであって、前記一つ以上の安全性要件(211)が、前記ソフトウェア製品(101)によって遵守されるべき一つ以上の安全性特性を含む、前記抽出するステップと、
    前記一つ以上の安全性要件(211)を、前記ソフトウェア製品(101)と関連付けられた対応する一つ以上のソフトウェア製品アーティファクト(113)とマッピングするステップと、
    前記マッピングに基づいて、前記一つ以上のソフトウェア製品アーティファクト(113)の各々のコンプライアンスを判定するステップと、
    前記一つ以上の抽出された安全性要件に準拠している前記一つ以上のソフトウェア製品アーティファクト(113)に、スコアを割り当てるステップと、
    前記一つ以上のソフトウェア製品アーティファクト(113)に割り当てられた前記スコアに基づいて、前記ソフトウェア製品(101)の前記安全性コンプライアンスレベルを判定する、第二の判定するステップと、
    を行わせる、プロセッサが実行可能な命令を記憶する、安全性コンプライアンス判定システム。
  11. 前記命令は、前記プロセッサ(109)に、前記一つ以上のソフトウェア製品アーティファクト(113)の各々の前記コンプライアンスを判定しつつ、前記一つ以上のソフトウェア製品アーティファクト(113)に対応する前記一つ以上の安全性要件(211)における一つ以上の欠落した、不適格かつ余分な要素をさらに特定させる、請求項10に記載の安全性コンプライアンス判定システム(103)。
  12. 前記ソフトウェア製品(101)の前記安全性コンプライアンスレベルが、準拠している前記一つ以上のソフトウェア製品アーティファクト(113)に割り当てられた前記スコアの和と、前記ソフトウェア製品(101)と関連付けられた前記ソフトウェア製品アーティファクト(113)の総数との比に対応する、請求項10に記載の安全性コンプライアンス判定システム(103)。
  13. 前記命令は、前記プロセッサ(109)に、自然言語処理および意味解析技術のうちの一方を用いて、前記ソフトウェア製品(101)の一つ以上の安全性要件(211)を抽出させる、請求項10に記載の安全性コンプライアンス判定システム(103)。
  14. 前記一つ以上の安全性要件(211)を抽出するために用いられる前記複数のソース(102)が、前記ソフトウェア製品(101)と関連付けられた一つ以上の安全性基準およびマニュアル(111)、前記ソフトウェア製品(101)のソフトウェア要求仕様(SRS)および設計文書、前記ソフトウェア製品(101)の開発中に用いられたメーリングリストのうちの少なくとも一つを含む、請求項10に記載の安全性コンプライアンス判定システム(103)。
  15. 前記一つ以上のソフトウェア製品アーティファクト(113)が、前記ソフトウェア製品(101)のソースコード、前記ソフトウェア製品(101)の実行結果、前記ソフトウェア製品(101)の開発および試験中に生成された一つ以上のレポートのうちの少なくとも一つを含む、請求項10に記載の安全性コンプライアンス判定システム(103)。
  16. 前記命令が、前記プロセッサ(109)に、前記一つ以上のソフトウェア製品アーティファクト(113)の各々の前記コンプライアンスにおける差異を示すためのコンプライアンスギャップレポート(115)をさらに生成させる、請求項10に記載の安全性コンプライアンス判定システム(103)。
  17. 前記命令が、前記プロセッサ(109)に、前記コンプライアンスギャップレポート(115)に基づいて、前記ソフトウェア製品(101)の安全性コンプライアンスレベルを向上させるために、前記ソフトウェア製品(101)への一つ以上の修正をさらに行わせる、請求項16に記載の安全性コンプライアンス判定システム(103)。
  18. 前記命令が、前記プロセッサ(109)に、前記ソフトウェア製品(101)の開発および試験で用いられる一つ以上のソフトウェア製品ツール(327)の安全性コンプライアンスレベルをさらに判定させる、請求項10に記載の安全性コンプライアンス判定システム(103)。
JP2017144367A 2016-07-26 2017-07-26 ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム Expired - Fee Related JP6438084B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201641025528 2016-07-26
IN201641025528 2016-07-26

Publications (2)

Publication Number Publication Date
JP2018018525A JP2018018525A (ja) 2018-02-01
JP6438084B2 true JP6438084B2 (ja) 2018-12-12

Family

ID=61009294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017144367A Expired - Fee Related JP6438084B2 (ja) 2016-07-26 2017-07-26 ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム

Country Status (2)

Country Link
US (1) US10445090B2 (ja)
JP (1) JP6438084B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776880B2 (en) 2017-08-11 2020-09-15 American International Group, Inc. Systems and methods for dynamic real-time analysis from multi-modal data fusion for contextual risk identification
US10162740B1 (en) * 2017-11-07 2018-12-25 Fmr Llc Automated intelligent execution of computer software test cases
US10977156B2 (en) * 2018-10-10 2021-04-13 International Business Machines Corporation Linking source code with compliance requirements
US20220277080A1 (en) * 2021-02-26 2022-09-01 IoT Inspector R&D GmbH Method and system for automatically checking non-compliance of device firmware
US20240028327A1 (en) * 2022-07-20 2024-01-25 Larsen & Toubro Infotech Ltd Method and system for building and leveraging a knowledge fabric to improve software delivery lifecycle (sdlc) productivity

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339261A (en) 1992-10-22 1994-08-16 Base 10 Systems, Inc. System for operating application software in a safety critical environment
US5950150A (en) * 1996-07-05 1999-09-07 Lloyd; Steven J. Fire/life safety system operation criteria compliance verification system and method
US6714894B1 (en) * 2001-06-29 2004-03-30 Merritt Applications, Inc. System and method for collecting, processing, and distributing information to promote safe driving
US7913232B2 (en) * 2003-02-21 2011-03-22 The Math Works, Inc. Certifying software for safety-critical systems
US20070136814A1 (en) * 2005-12-12 2007-06-14 Michael Lee Critical function monitoring and compliance auditing system
US20140109062A1 (en) 2012-10-11 2014-04-17 Tata Constultancy Services Limited Mumbai System and method to provide compliance scrutiny and in-depth analysis of a software application

Also Published As

Publication number Publication date
JP2018018525A (ja) 2018-02-01
US20180032331A1 (en) 2018-02-01
US10445090B2 (en) 2019-10-15

Similar Documents

Publication Publication Date Title
JP6438084B2 (ja) ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステム
US9779013B2 (en) Method and system for optimizing a test suite comprising plurality of test cases
US10127134B2 (en) Software testing system and a method for facilitating structured regression planning and optimization
US10545854B2 (en) Method and a system for automatically identifying violations in one or more test cases
US10877957B2 (en) Method and device for data validation using predictive modeling
US10268824B2 (en) Method and system for identifying test cases for penetration testing of an application
US10725899B2 (en) Method and system of performing automated exploratory testing of software applications
US20200302359A1 (en) Method and system for determining a potential supplier for a project
US20180285248A1 (en) System and method for generating test scripts for operational process testing
US20180349110A1 (en) Method and layout identification system for facilitating identification of a layout of a user interface
US10636039B2 (en) Method of generating ontology based on plurality of tickets and an enterprise system thereof
JP6419667B2 (ja) テストdbデータ生成方法及び装置
US10249106B2 (en) Method and system for performing vehicle inspection
JP7007486B2 (ja) プロジェクトコンポーネントを識別する方法およびその再利用性検出システム
EP3422200A1 (en) Method and system for handling one or more issues in a computing environment
US9760340B2 (en) Method and system for enhancing quality of requirements for an application development
US10372849B2 (en) Performing and communicating sheet metal simulations employing a combination of factors
US20200285648A1 (en) Method and system for providing context-based response for a user query
JP2013148968A (ja) テストデータ生成装置、テストデータ生成プログラムおよびテストデータ生成方法
US10318636B2 (en) Method and system for determining action items using neural networks from knowledge base for execution of operations
US20200210528A1 (en) Method and system for providing contextual responses to user interaction
US10318554B2 (en) System and method for data cleansing
US11263388B2 (en) Method and system for dynamically generating summarised content for visual and contextual text data
US20210096980A1 (en) Method and system for performing exploratory testing of an application under test (aut)
US20170330088A1 (en) Method and a System for Predicting Stability of a Project

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181115

R150 Certificate of patent or registration of utility model

Ref document number: 6438084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees