(57)【要約】【課題】ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムを開示する。【解決手段】ソフトウェア製品が準拠すべき安全性要件は、安全性基準から抽出される。抽出された安全性要件は、ソフトウェア製品と関連付けられた対応するソフトウェア製品アーティファクトとマッピングされる。一つ以上のソフトウェア製品アーティファクトの各々のコンプライアンスは、マッピングに基づいて判定される。その後、安全性要件に準拠しているソフトウェア製品アーティファクトに、スコアが割り当てられる。最終的に、ソフトウェア製品の安全性コンプライアンスレベルが、ソフトウェア製品アーティファクトに割り当てられたスコアに基づいて判定される。【選択図】図２Ａ
2018018525.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア製品（１０１）の安全性コンプライアンスレベルを判定する方法であって、
安全性コンプライアンス判定システム（１０３）によって、複数のソース（１０２）から一つ以上の安全性要件（２１１）を抽出するステップであって、前記一つ以上の安全性要件（２１１）が、前記ソフトウェア製品（１０１）によって遵守されるべき一つ以上の安全性特性を含む、前記抽出するステップと、
前記安全性コンプライアンス判定システム（１０３）によって、前記一つ以上の安全性要件（２１１）を、前記ソフトウェア製品（１０１）と関連付けられた対応する一つ以上のソフトウェア製品アーティファクト（１１３）とマッピングするステップと、
前記安全性コンプライアンス判定システム（１０３）によって、前記マッピングに基づいて、前記一つ以上のソフトウェア製品アーティファクト（１１３）の各々のコンプライアンスを判定するステップと、
前記安全性コンプライアンス判定システム（１０３）によって、準拠している前記一つ以上のソフトウェア製品アーティファクト（１１３）にスコアを割り当てるステップと、
前記安全性コンプライアンス判定システム（１０３）によって、前記一つ以上のソフトウェア製品アーティファクト（１１３）に割り当てられた前記スコアに基づいて、前記ソフトウェア製品（１０１）の前記安全性コンプライアンスレベルを判定するステップと、
を含む、方法。
【請求項２】
前記コンプライアンスを判定するステップは、前記一つ以上のソフトウェア製品アーティファクト（１１３）に対応する、前記一つ以上の安全性要件（２１１）における一つ以上の欠落した、不適格かつ余分な要素を特定するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記ソフトウェア製品（１０１）の前記安全性コンプライアンスレベルが、準拠している前記一つ以上のソフトウェア製品アーティファクト（１１３）に割り当てられた前記スコアの和と、前記ソフトウェア製品（１０１）と関連付けられた前記ソフトウェア製品アーティファクト（１１３）の総数との比に対応する、請求項１に記載の方法。
【請求項４】
前記ソフトウェア製品（１０１）の前記一つ以上の安全性要件（２１１）が、自然言語処理および意味解析技術のうちの一方を用いて抽出される、請求項１に記載の方法。
【請求項５】
前記一つ以上の安全性要件（２１１）を抽出するために用いられる前記複数のソース（１０２）が、前記ソフトウェア製品（１０１）と関連付けられた一つ以上の安全性基準およびマニュアル（１１１）、前記ソフトウェア製品（１０１）のソフトウェア要求仕様（ＳＲＳ）および設計文書、前記ソフトウェア製品（１０１）の開発中に用いられたメーリングリスト、のうちの少なくとも一つを含む、請求項１に記載の方法。
【請求項６】
前記一つ以上のソフトウェア製品アーティファクト（１１３）が、前記ソフトウェア製品（１０１）のソースコード、前記ソフトウェア製品（１０１）の実行結果、前記ソフトウェア製品（１０１）の開発および試験中に生成された一つ以上のレポート、のうちの少なくとも一つを含む、請求項１に記載の方法。
【請求項７】
前記一つ以上のソフトウェア製品アーティファクト（１１３）の各々の前記コンプライアンスにおける差異を示すためのコンプライアンスギャップレポート（１１５）を生成するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記コンプライアンスギャップレポート（１１５）に基づいて、前記ソフトウェア製品（１０１）に一つ以上の修正を行うことによって、前記ソフトウェア製品（１０１）の安全性コンプライアンスレベルを向上させるステップことをさらに含む、請求項７に記載の方法。
【請求項９】
前記ソフトウェア製品（１０１）の開発および試験で用いられる一つ以上のソフトウェア製品ツール（３２７）の安全性コンプライアンスレベルを判定する、第二の判定するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
ソフトウェア製品（１０１）の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システム（１０３）であって、
プロセッサ（１０９）と、
前記プロセッサに通信可能に結合されたメモリ（１０７）と、を備え、前記メモリ（１０７）は、前記プロセッサ（１０９）に、
複数のソース（１０２）から一つ以上の安全性要件（２１１）を抽出ことであって、前記一つ以上の安全性要件（２１１）が、前記ソフトウェア製品（１０１）によって遵守されるべき一つ以上の安全性特性を含む、抽出するステップと、
前記一つ以上の安全性要件（２１１）を、前記ソフトウェア製品（１０１）と関連付けられた対応する一つ以上のソフトウェア製品アーティファクト（１１３）とマッピングするステップと、
前記マッピングに基づいて、前記一つ以上のソフトウェア製品アーティファクト（１１３）の各々のコンプライアンスを判定するステップと、
準拠している前記一つ以上のソフトウェア製品アーティファクト（１１３）にスコアを割り当てるステップと、
前記一つ以上のソフトウェア製品アーティファクト（１１３）に割り当てられた前記スコアに基づいて、前記ソフトウェア製品（１０１）の前記安全性コンプライアンスレベルを判定する、第二の判定するステップと、
を行わせる、プロセッサが実行可能な命令を記憶する、安全性コンプライアンス判定システム。
【請求項１１】
前記命令は、前記プロセッサ（１０９）に、前記一つ以上のソフトウェア製品アーティファクト（１１３）の各々の前記コンプライアンスを判定しつつ、前記一つ以上のソフトウェア製品アーティファクト（１１３）に対応する前記一つ以上の安全性要件（２１１）における一つ以上の欠落した、不適格かつ余分な要素をさらに特定させる、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１２】
前記ソフトウェア製品（１０１）の前記安全性コンプライアンスレベルが、準拠している前記一つ以上のソフトウェア製品アーティファクト（１１３）に割り当てられた前記スコアの和と、前記ソフトウェア製品（１０１）と関連付けられた前記ソフトウェア製品アーティファクト（１１３）の総数との比に対応する、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１３】
前記命令は、前記プロセッサ（１０９）に、自然言語処理および意味解析技術のうちの一方を用いて、前記ソフトウェア製品（１０１）の一つ以上の安全性要件（２１１）を抽出させる、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１４】
前記一つ以上の安全性要件（２１１）を抽出するために用いられる前記複数のソース（１０２）が、前記ソフトウェア製品（１０１）と関連付けられた一つ以上の安全性基準およびマニュアル（１１１）、前記ソフトウェア製品（１０１）のソフトウェア要求仕様（ＳＲＳ）および設計文書、前記ソフトウェア製品（１０１）の開発中に用いられたメーリングリストのうちの少なくとも一つを含む、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１５】
前記一つ以上のソフトウェア製品アーティファクト（１１３）が、前記ソフトウェア製品（１０１）のソースコード、前記ソフトウェア製品（１０１）の実行結果、前記ソフトウェア製品（１０１）の開発および試験中に生成された一つ以上のレポートのうちの少なくとも一つを含む、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１６】
前記命令が、前記プロセッサ（１０９）に、前記一つ以上のソフトウェア製品アーティファクト（１１３）の各々の前記コンプライアンスにおける差異を示すためのコンプライアンスギャップレポート（１１５）をさらに生成させる、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１７】
前記命令が、前記プロセッサ（１０９）に、前記コンプライアンスギャップレポート（１１５）に基づいて、前記ソフトウェア製品（１０１）の安全性コンプライアンスレベルを向上させるために、前記ソフトウェア製品（１０１）への一つ以上の修正をさらに行わせる、請求項１６に記載の安全性コンプライアンス判定システム（１０３）。
【請求項１８】
前記命令が、前記プロセッサ（１０９）に、前記ソフトウェア製品（１０１）の開発および試験で用いられる一つ以上のソフトウェア製品ツール（３２７）の安全性コンプライアンスレベルをさらに判定させる、請求項１０に記載の安全性コンプライアンス判定システム（１０３）。
【発明の詳細な説明】
【技術分野】
【０００１】
本主題は、一般的には製品の安全性コンプライアンス検出に関し、排他的ではなくより具体的には、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムに関する。
【背景技術】
【０００２】
故障が結果として寿命の損失、著しい特性の損害、または環境への損害になるシステムは、セーフティクリティカルシステムと呼ばれる。セーフティクリティカルシステムを用いる医療用装置、航空機フライト制御、武器製造、および原子力システム等の適用領域において、周知の例がある。ソフトウェアの観点から、必要とされる数および適した信頼性レベルでのセーフティクリティカルシステムの開発は、セーフティクリティカルシステムで用いられる個々のソフトウェア構成要素および／または製品の規格、アーキテクチャ、および検証プロセス等の領域において、著しい進歩が必要である。
【０００３】
加えて、セーフティクリティカルシステムの開発における基本的な課題の一つは、セーフティクリティカルシステムで用いられる各ソフトウェア構成要素を十分に試験することが不可能なことである。ソフトウェア製品の全ソースコードを実行することによって、ソフトウェア製品の徹底的な試験を行うことは、容易なプロセスのように思われる。しかしながら、全ての可能な実行パスを検査することは、最も簡易なソフトウェアであっても、非常に困難であり得る。例えば、５つの決定点および６つの機能ブロックを包含する（ループを含む）簡易なフローチャートは、解析されるとき、１０１４個の可能な実行パスを包含し得る。
【０００４】
従って、ソフトウェア製品の開発で用いられる手順と、標準化機構の一つによる、従うべき実際の標準的な手順との間には、大きなギャップが存在する場合がある。同様に、標準的な安全性手順の解釈、およびソフトウェア製品の関連する要素とそれらのマッピングには困難が存在する可能性がある。このマッピングの困難性は、結果として、ソフトウェア製品によって従うべき安全性手順と、標準的な安全性手順とのミスマッチとなる場合がある。よって、開発されたソフトウェア製品は、標準的な安全性手順に完全には準拠していないかもしれず、結果として、そのようなソフトウェア製品の認証中に、認証機関からの不合格および／または反復の可能性がある。
【０００５】
図１は、標準的な安全性手順と、ソフトウェア製品１０１に組み入れられた安全性手順との間の準拠のギャップを示す例示的な環境１００ａを示す。標準的な安全性手順１１１ａは、ソフトウェア製品１０１に関する安全性基準およびマニュアル１１１のうちの一つから抽出され得る。図１に示されるように、ソフトウェア製品１０１における準拠のギャップは、標準的な安全性手順１１１ａに対して、安全性手順の一つ以上の欠落した、不適格なおよび／または余分な要素がソフトウェア製品１０１に含まれている場合に生じ得る。さらに、ソフトウェア製品１０１は、ソフトウェア製品１０１によって従われる安全性手順の各要素が、標準的な安全性手順１１１ａと整合する場合のみ、標準的な安全性手順１１１ａに十分に準拠していると考えられ得る。
【０００６】
ソフトウェア製品における準拠のギャップを取り除くための既存の方法の一つは、中間実行シェルと、中間シェル上でソフトウェア製品の処理動作を行うオペレーティングシステムを有するデータプロセッサとを含む。中間シェルは、オペレーティングシステム、およびソフトウェア製品のアプリケーションソフトウェアと相互作用して、アプリケーションソフトウェアを試験するための安全性限界環境をエミュレートする。その後、アプリケーションソフトウェアは、中間シェル上で実行され、それによって、アプリケーションソフトウェアの実行結果に基づいて、ソフトウェア製品を修正し得る。しかしながら、この方法は、標準的な安全性手順に対するソフトウェア製品の安全性コンプライアンスレベルを判定する態様を開示していない。また、既存の方法は、ユーザが必要とされる工業コンプライアンス基準を選択することを可能にすることによって、ソフトウェア製品の綿密な分析を行う。しかしながら、これは、ソフトウェア製品を解析するために、開発者の継続的な介在を必要とし、手動による介在に起因する見落としによる誤差がある場合があり、このことは、結果として安全性基準に準拠しないことがあり得る。よって、ソフトウェア製品の安全性手順を標準的な安全性手順とマッピングすることによって、ソフトウェア製品の安全性コンプライアンスを判定する方法が要望されている。
【発明の概要】
【課題を解決するための手段】
【０００７】
ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムが本明細書に開示される。本開示の目的は、ソフトウェア製品のための安全完全性レベル標準の基準に従って、ソフトウェア製品が対応する安全性要件に準拠していることを検証することである。本開示は標準的な安全性手順における特定の安全性要件に基づいて、ソフトウェア製品と標準的な安全性手順との間のコンプライアンスギャップを埋め合わせるための方法を提案する。
【０００８】
したがって、本開示は、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法に関する。本方法は、安全性コンプライアンス判定システムによって、複数のソース（１０２）から一つ以上の安全性要件を抽出するステップを含む。一つ以上の安全性要件は、ソフトウェア製品によって遵守されるべき一つ以上の安全性特性を含む。抽出時に、一つ以上の安全性要件が、ソフトウェア製品と関連付けられた、対応する一つ以上のソフトウェア製品アーティファクトとマッピングされる。さらに、マッピングに基づいて、一つ以上のソフトウェア製品アーティファクトの各々のコンプライアンスが判定される。その後、本方法は、一つ以上の安全性要件に準拠している一つ以上のソフトウェア製品アーティファクトにスコアを割り当てる。最終的に、本方法は、一つ以上のソフトウェア製品アーティファクトに割り当てられたスコアに基づいて、ソフトウェア製品の安全性コンプライアンスレベルを判定することを含む。
【０００９】
さらに、本開示は、ソフトウェア製品の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システムに関する。安全性コンプライアンス判定システムは、プロセッサと、プロセッサに通信可能に結合されたメモリとを備える。メモリは、プロセッサ実行可能命令を記憶し、これは、実行時にプロセッサに、複数のソースから一つ以上の安全性要件を抽出させる。一つ以上の安全性要件は、ソフトウェア製品によって遵守されるべき一つ以上の安全性特性を含む。抽出時に、命令によって、プロセッサは、一つ以上の安全性要件を、ソフトウェア製品と関連付けられた対応する一つ以上のソフトウェア製品アーティファクトとマッピングする。さらに、マッピングに基づいて、一つ以上のソフトウェア製品アーティファクトの各々のコンプライアンスが判定される。その後、命令によって、プロセッサは、一つ以上の安全性要件に準拠している一つ以上のソフトウェア製品アーティファクトにスコアを割り当てる。最終的に、一つ以上のソフトウェア製品アーティファクトに割り当てられたスコアに基づいて、ソフトウェア製品の安全性コンプライアンスレベルが判定される。
【００１０】
前述の概要は、例証のためのみであり、決して限定することが意図されていない。上述の例証的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面および以下の詳細な説明を参照することによって明らかとなろう。
【図面の簡単な説明】
【００１１】
添付の図面は、本開示の一部に組み入れられ、かつその一部を構成し、例示的な実施形態を図示し、本明細書とともに、開示された原理を説明する。図中では、参照番号の最も左側の桁は、参照番号が最初に示された図を特定する。図面全体を通して、同様の特徴および構成要素を参照するために同じ番号が用いられている。ここで、本主題の実施形態によるシステムおよび／または方法のいくつかの実施形態は、例示のみを目的として、添付の図面を参照して説明される。
【００１２】
【図１】当技術分野におけるいくつかの問題による、ソフトウェア製品の安全性手順と標準的な安全性手順との間の準拠のギャップを示す例示的な環境を示す。
【図２Ａ】本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システムを図示する、例示的な環境を示す。
【図２Ｂ】本開示のいくつかの実施形態による、安全性コンプライアンス判定システムを図示する詳細なブロック図を示す。
【図３Ａ】本開示のいくつかの実施形態による、安全性基準およびマニュアルから安全性要件を抽出するための方法を図示するフローチャートを示す。
【図３Ｂ】本開示のいくつかの実施形態による、安全性要件をソフトウェア製品アーティファクトとマッピングするための方法を図示するブロック図を示す。
【図３Ｃ】本開示のいくつかの実施形態による、安全性要件を安全性製品アーティファクトとマッピングする方法を示す。
【図３Ｄ】本開示のいくつかの実施形態による、安全性要件を安全性製品アーティファクトとマッピングする方法を示す。
【図３Ｅ】本開示のいくつかの実施形態による、安全性要件を安全性製品アーティファクトとマッピングする方法を示す。
【図３Ｆ】本開示のいくつかの実施形態による、ソフトウェア製品のコンプライアンスを特定するための方法のブロック図を示す。
【図３Ｇ】本開示のいくつかの実施形態による、コンプライアンスギャップレポートの例示的な図を示す。
【図３Ｈ】本開示のいくつかの実施形態による、ソフトウェア製品と関連付けられた一つ以上のツールの安全性コンプライアンスレベルを判定するための方法のフローチャートを示す。
【図４】本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法のフローチャートを示す。
【図５】本発明と整合している実施形態を実施するための例示的なコンピュータシステムのブロック図を示す。
【００１３】
当業者においては、本明細書のあらゆるブロック図は、本主題の原理を具現化する例示的なシステムの概念図を表すことが理解されるべきである。同様に、あらゆるフローチャート、フロー図、状態遷移図、擬似コード等は、そのようなコンピュータまたはプロセッサが明白に示されていてもいなくても、実質的にコンピュータ可読媒体で表現され得、コンピュータまたはプロセッサによって実行され得るさまざまなプロセスを表すことが理解されよう。
【発明を実施するための形態】
【００１４】
本明細書においては、文言「例示的な（ｅｘｅｍｐｌａｒｙ）」は、「例、ケース、または例証となる」を意味するために用いられる。「例示する（ｅｘｅｍｐｌａｒｙ）」として本明細書で説明された主題のあらゆる実施形態または実施は、必ずしも他の実施形態と比較して好ましいかまたは有利であるとして解釈されるものではない。
【００１５】
本開示は、さまざまな修正および代替形態の余地があるが、その特定の実施形態は、例示を目的として図面によって示されており、以下に詳細に説明される。しかしながら、本開示を開示された特定の形態に限定することは意図されず、逆に本開示の本質および範囲に含まれる全ての修正、等価物、および代替を網羅することが理解されるべきである。
【００１６】
「備える（ｃｏｍｐｒｉｓｅｓ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」という用語、またはそのあらゆる他の変形は、構成要素またはステップのリストを含む機構、装置または方法が、それらの構成要素またはステップを含むのみならず、明示的に列記されていないか、またはそのような機構または装置または方法に固有の他の構成要素またはステップを含み得るような、非排他的な包含を網羅することが意図される。換言すると、「…を備える（ｃｏｍｐｒｉｓｅｓ）」によって移行するシステムまたは機器における一つ以上の要素は、さらなる制約なしに、当該システムまたは方法における他の要素または付加的な要素の存在を除外しない。
【００１７】
本開示は、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法およびシステムに関する。ソフトウェア製品およびその関連ツールによってコンパイルされることが必要とされる一つ以上の安全性要件は、安全性基準およびマニュアルにおける一つ以上の安全性手順から抽出される。自然言語処理（ＮＬＰ：Natural Language Processing）および意味解析技術を用いて安全性要件を抽出し、それによって、安全性基準からの安全性要件の特定における人手の介入の必要性を取り除く。一実施形態では、安全性要件は、ソフトウェア要求仕様（ＳＲＳ：Software Requirements Specification）文書等の安全性製品に関する一つ以上の文書、一つ以上のソフトウェア製品アーティファクトおよびメーリングリストと関連付けられた一つ以上の受入検査基準（ＡＴＣ：Acceptance Test Criteria）からさらに抽出され得る。
【００１８】
安全性要件を抽出すると、本方法は、ソフトウェア製品の一つ以上のソフトウェア製品アーティファクトに対応する一つ以上の安全性要件の、欠落し、不適格で余分な、かつ準拠している要素を特定するための、ソフトウェア製品と関連付けられた一つ以上のソフトウェア製品アーティファクトを分析する。そして、抽出された安全性要件は、コンプライアンスについてチェックされるべきソフトウェア製品アーティファクトを特定するための一つ以上のソフトウェア製品アーティファクトとマッピングされる。さらに、分析結果に基づいて、一つ以上の安全性要件の、欠落し、不適格で余分な、かつ準拠している要素、を特定するための安全性コンプライアンスレポートが生成される。そして、一つ以上のソフトウェア製品アーティファクトは、コンプライアンスに基づいてスコア付けされる。最終的に、安全性コンプライアンスレポートで特定された一つ以上の準拠のギャップは、先の試験結果の使用、異なるツールの選択を通して対応するソフトウェア製品アーティファクトを偏向することによって、またはソフトウェア製品の開発プロセスで用いられたソフトウェア製品アーティファクトのための新しいツールを開発することによって、修正され得る。
【００１９】
以下に続く本開示の実施形態の詳細な説明において、本明細書の一部を形成し、本開示を実践し得る特定の実施形態の図示を目的として示される添付の図面を参照する。これらの実施形態は、当業者が本開示を実践することを可能にする程度に十分に詳細に説明され、本開示の範囲から逸脱することなくなされ得る他の実施形態を利用できることが理解されるべきである。したがって、以下の説明は、限定的な意味で取られるものではない。
【００２０】
図２Ａは、本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システムを図示する、例示的な環境を示す。
【００２１】
環境１００ｂは、ソース１：１０２ｌ〜ソースｎ：１０２ｎ（複数のソース１０２と総称する）の複数のソースと、安全性コンプライアンス判定システム１０３と、ソフトウェア製品１０１とを備える。複数のソース１０２は、ソフトウェア製品１０１に関する一つ以上の安全性基準およびマニュアル１１１が得られる一つ以上のリポジトリおよび／または文書である。一例として、複数のソース１０２は、ソフトウェア製品１０１のソフトウェア要求仕様（ＳＲＳ）および設計文書と、ソフトウェア製品１０１の開発中に用いられたメーリングリストと、ソフトウェアアプリケーション制約と、ソフトウェア製品１０１と関連付けられた、製品のアーキテクチャ上の文書と、ゴール構造仕様、ライセンスおよびツールを含み得るが、これらに限定されない。一実施形態では、安全性コンプライアンス判定システム１０３は、Ｉ／Ｏインタフェース１０５と、メモリ１０７と、プロセッサ１０９とを備える。Ｉ／Ｏインタフェース１０５は、複数のソース１０２から一つ以上の安全性基準およびマニュアル１１１を受信するように構成され得る。メモリ１０７は、プロセッサ１０９に、通信可能に結合される。プロセッサ１０９は、本明細書において以下に説明されるような、ソフトウェア製品１０１の安全性コンプライアンスレベルを判定するための安全性コンプライアンス判定システム１０３の一つ以上の機能を行うように構成される。一実施形態では、安全性コンプライアンス判定システム１０３によって生成されたコンプライアンスギャップレポート１１５は、ソフトウェア製品１０１において、一つ以上の安全性要件２１１の、一つ以上の欠落した、不適格かつ余分な要素を取り除くための一つ以上の修正を行うために用いられ得る。
【００２２】
図２Ｂは、本開示のいくつかの実施形態による、安全性コンプライアンス判定システムを図示する詳細なブロック図を示す。
【００２３】
一つの実施では、安全性コンプライアンス判定システム１０３は、データ２０７と、本開示の実施形態によるさまざまな動作を行うためのモジュール２０９とを備える。一実施形態では、データ２０７は、一つ以上の安全性要件２１１と、一つ以上のソフトウェア製品アーティファクト１１３と、コンプライアンスギャップレポート１１５と、他のデータ２１７とを含み得るが、これらに限定されない。一つの実施形態では、データ２０７は、さまざまなデータ構造の形式で、メモリ１０７内に記憶され得る。加えて、前述のデータ２０７は、データモデル、例えば関係または階層データモデルを用いて体系化されてもよい。他のデータ２１７は、をマルチメディアコンテンツ生成器１０１のさまざまな機能を行うためのモジュール２０９によって生成された、一時データおよび一時ファイルを含むデータ２０７を記憶し得る。
【００２４】
一実施形態では、一つ以上の安全性要件２１１は、ソフトウェア製品１０１によって準拠されるべき一つ以上の安全性特性を含む。一つ以上の安全性要件２１１は、ソフトウェア製品１０１の安全性コンプライアンスを判定する前に、複数のソース１０２から抽出され得る。ソフトウェア製品１０１の一つ以上の安全性要件２１１は、自然言語処理および意味解析技術を用いて抽出され得る。以下のセクションにおいて、複数のソース１０２から一つ以上の安全性要件２１１を抽出するプロセスが、安全性要件抽出モジュール２１９の機能性とともに簡潔に説明される。
【００２５】
一実施形態では、一つ以上のソフトウェア製品アーティファクト１１３は、ソフトウェア製品１０１に関する文書および手順であり、これらは、ソフトウェア製品１０１の機能性のために必須である。一例として、一つ以上のソフトウェア製品アーティファクト１１３は、ソフトウェア製品１０１の試験ケース、試験基準、および対応する試験結果と、試験ケースの実行追跡と、ソフトウェア製品１０１のソースコードと、一つ以上の注釈と、コメントと、ソフトウェア製品１０１と関連付けられた一つ以上のソフトウェア製品ツール３２７とを含むが、これらに限定されない。
【００２６】
一実施形態では、コンプライアンスギャップレポート１１５は、一つ以上のソフトウェア製品アーティファクト１１３の各々の、一つ以上の安全性要件２１１とのコンプライアンスのレベルを示し得る。コンプライアンスギャップレポート１１５は、一つ以上のソフトウェア製品アーティファクト１１３に対応する一つ以上の安全性要件２１１の、一つ以上の欠落した、不適格かつ余分な要素に基づいて生成され得る。さらに、コンプライアンスギャップレポート１１５は、ソフトウェア製品１０１の全体的な安全性コンプライアンスレベルを高めるために、ソフトウェア製品１０１に対する一つ以上の修正を行うための基準として考慮されてもよい。一例として、コンプライアンスギャップレポート１１５は、ソフトウェア製品１０１の開発者が、コーディングガイドラインの一つ以上の違反、安全性基準１１１に従う標準ワークフロー機構における差異を特定するのに役立ち得る。
【００２７】
一実施形態では、データ２０７は、安全性コンプライアンス判定システム１０３の一つ以上のモジュール２０９によって処理され得る。一つの実施では、一つ以上のモジュール２０９もまた、メモリ１０７内に記憶されてもよい。一実施形態では、一つ以上のモジュール２０９は、安全性コンプライアンス判定システム１０３の一つ以上の機能を行うためのプロセッサ１０９に通信可能に結合され得る。本明細書で用いられる場合、モジュールという用語は、特定用途向け集積回路（ＡＳＩＣ）、電子回路、一つ以上のソフトウェアまたはファームウェアプログラムを実行するプロセッサ（共有、専用、またはグループ）およびメモリ、組み合わせ理論回路、および／または説明された機能性を提供する他の好適な構成要素を指す。
【００２８】
一つの実施では、一つ以上のモジュール２０９は、安全性要件抽出モジュール２１９、要件マッピングモジュール２２１、コンプライアンス特定モジュール２２３、スコアリングモジュール２２５および他のモジュール２２７を含み得るが、これらに限定されない。
【００２９】
安全性要件抽出モジュール２１９は、複数のソース１０２から一つ以上の安全性要件２１１を抽出するために用いられ得る。一実施形態では、ソフトウェア製品１０１に適切である一つ以上の安全性基準およびマニュアル１１１の選択は、開発者、試験エンジニアおよび／またはソフトウェア製品１０１と関連付けられた任意のユーザによって、図３Ａのブロック３０１に示されるようなマニュアル手順を用いて、手動で行われてもよい。マニュアル手順の一部として、ステップ３０２において、ユーザは、どの安全性文書がソフトウェア製品１０１に最も適切であるかについて、ユーザの以前のドメイン経験に基づいて、および／または複数のソース１０２の評判に基づいて決定を行い得る。一例として、ユーザによって選択された安全性基準１１１のうちの一つは、ＩＥＣ−６１５０８であってもよく、これは、当該ドメインにおいて適用されたさまざまな規則を含む、国際電気標準会議（ＩＥＣ）によって公布された国際基準である。ステップ３０４において、ユーザは、ステップ３０２で選択された安全性基準に関する一つ以上の安全性文書を収集し得る。一例として、ユーザによって収集された一つ以上の安全性文書は、安全性認証機関によって公布されたＳＲＳ文書であってもよい。別の実施形態では、安全性要件抽出モジュール２１９単独で、複数のソース１０２から適切な安全性基準１１１を選択するように構成されてもよい。
【００３０】
ブロック３０３において、安全性要件抽出モジュール２１９は、ステップ３０４で選択された一つ以上の安全性基準１１１から、一つ以上の安全性要件２１１を抽出する。ステップ３０６において、安全性抽出モジュール内に構成されたテキスト解析技術のうちの一方を用いて、一つ以上の安全性文書が解析される。ステップ３０８において、ステップ３０６で解析された一つ以上の安全性文書から、一つ以上の安全性要件２１１が抽出される。ステップ３１０において、ステップ３０６で抽出された一つ以上の安全性要件２１１の各々が、一つ以上の安全性要件２１１の各々の間の関連性に基づいて分類されてカテゴリ化される。一例として、「試験」の態様に対応する一つ以上の安全性要件２１１は、カテゴリ「試験」に分類されてカテゴリ化され得る。一つ以上の安全性要件２１１の各々をカテゴリ化することは、一つ以上の安全性要件２１１の各々を、一つ以上の関連する安全性製品アーティファクトにマッピングするプロセスを迅速化するのに役立ち得る。一実施形態では、ステップ３１０で得られた一つ以上の安全性要件２１１の各カテゴリは、これらの安全性要件２１１の各々を、一つ以上の安全性製品アーティファクトとマッピングするための要件マッピングモジュール２２１によって用いられ得る。
【００３１】
図３Ｂは、一つ以上の安全性要件２１１の各々と、一つ以上のソフトウェア製品アーティファクト１１３とのマッピングを担う要件マッピングモジュール２２１のブロック図である。一つ以上の安全性要件２１１の各々を、ソフトウェア製品１０１のソフトウェアアーティファクト内の対応する要素とマッピングするプロセスが、図３Ｃから図３Ｅの図中に図示された例示的なシナリオによって説明され得る。
【００３２】
ソフトウェア製品「Ａ」の安全性コンプライアンスレベルの判定中、ソフトウェア製品「Ａ」に関するソフトウェア製品アーティファクト１１３、例えばソフトウェア製品「Ａ」のＳＲＳ文書は、マッピングのために用いられ得る。一実施形態では、図３Ｃに示されるように、要件マッピングモジュール２２１は、一つ以上の安全性要件２１１を、ソフトウェア製品「Ａ」のＳＲＳとマッピングする前に、ソフトウェア製品「Ａ」のＳＲＳから、一つ以上の安全性特定キーワード３２３を抽出し得る。
【００３３】
さらに、図３Ｄに示されるように、ソフトウェア製品「Ａ」のＳＲＳから抽出された一つ以上の安全性特定キーワード３２３の各々が、一つ以上の安全性要件２１１の一つ以上の対応する安全性特定キーワード３２３に対してマッピングされる。一例として、安全性特定キーワード３２３、例えば「Ｃ＋＋」、「ｔｅｓｔ」、「Ｊａｖａ」および同様のもの（図３Ｄ中で下線を付加したもの）は、安全性要件２１１に関する安全性特定キーワード３２３の同様のセットと合致し得る。一実施形態では、特定の安全性要件「試験」に対応する一つ以上の安全性特定キーワード３２３は、安全性要件「試験」によって満たされるソフトウェア製品ツール３２７および安全性特性を表し得る。
【００３４】
一実施形態では、安全性製品「Ａ」のＳＲＳから抽出された一つ以上の安全性特定キーワード３２３と合致する一つ以上の安全性要件２１１は、ソフトウェア製品「Ａ」の安全性コンプライアンスレベルを判定するために考慮され得る。上記のシナリオでは、図３Ｅに示されるように、ソフトウェア製品「Ａ」の「試験」、「ツール」、および「プラットフォーム」要素に関する一つ以上の安全性要件２１１が、ソフトウェア製品「Ａ」の安全性コンプライアンスレベルを判定するために考慮され得る。最終的に、要件マッピングモジュール２２１は、マッピング完了時に、一つ以上のソフトウェア製品アーティファクト１１３に特有のソフトウェア要件のリストを提供し得る。
【００３５】
図３Ｆは、ソフトウェア製品１０１の安全性コンプライアンスレベルの判定を担うコンプライアンス特定モジュール２２３のブロック図を示す。コンプライアンス特定モジュール２２３は、一つ以上のソフトウェア製品アーティファクト１１３の各々のコンプライアンスレベルを判定するための、一つ以上の対応するソフトウェア製品アーティファクト１１３とマッピングされる一つ以上のソフトウェア要件のリストを獲得し得る。一実施形態では、コンプライアンス特定モジュール２２３は、ＮＬＰ技術のうちの一つ、例えばコンプライアンスのレベルを判定するための自動意味役割付与（ＡＳＲＬ：Automatic Semantic Role Labeling）および意味的類似度分析を用い得る。さらに、コンプライアンス特定モジュール２２３は、一つ以上の安全性要件２１１の、一つ以上の欠落した、不適格かつ余分な要素を特定するために、マッピングされた安全性要件２１１の各々の間の整合性チェックをさらに行い得る。コンプライアンス特定モジュール２２３内に構成された「選択」および「集計」機能は、整合性チェックおよび各分析の結果を集計するための、適切な意味的比較を行うことを支援し得る。一実施形態では、コンプライアンス特定モジュール２２３は、分析の結果に基づいて、レポートを生成し得る。一例として、コンプライアンス特定モジュール２２３によって生成されたレポートのうちの一つは、一つ以上の安全性要件２１１の各々における一つ以上の欠落した、不適格かつ余分な要素を示す安全性要件レポート３２５であってもよい。コンプライアンス特定モジュール２２３によって生成された他のレポートのうちの一つは、一つ以上の安全性要件２１１の各々と、一つ以上のソフトウェア製品アーティファクト１１３とのマッピングにおけるギャップを示すコンプライアンスギャップレポート１１５であってもよい。
【００３６】
一実施形態では、スコアリングモジュール２２５は、コンプライアンス特定モジュール２２３によって生成されたコンプライアンスギャップレポート１１５に基づいて、一つ以上のソフトウェア製品アーティファクト１１３の各々にスコアを割り当てる。図３Ｇは、スコアリングモジュール２２５によって割り当てられたスコアとともに、コンプライアンス特定モジュール２２３によって生成された例示的なコンプライアンスギャップレポート１１５を示す。図３Ｇに示されるように、コンプライアンスギャップレポート１１５は、一つ以上のソフトウェア製品アーティファクト１１３のリストと、一つ以上のソフトウェアアーティファクトの各々の、対応する一つ以上の安全性要件２１１への準拠の表示とを含む。一例として、ソフトウェア製品アーティファクト「試験基準および試験ケース」（図３Ｇのソフトウェア製品アーティファクト１１３のリストにおいて参照番号１によって示される）は、対応する安全性要件「安全性要件１」が安全性製品によって準拠されていない場合、非準拠としてマークされ得る。同様に、別のソフトウェア製品アーティファクトは、「安全性要件６」がソフトウェア製品アーティファクト１１３によって完全に準拠されている場合、ソフトウェア製品のｗｉｋｉページのリンク（図３Ｇのソフトウェア製品アーティファクト１１３のリストにおいて参照番号６によって示される）が、対応する「安全性要件６」に準拠しているとしてマークされ得ることを示している。
【００３７】
一実施形態では、一つ以上の安全性要件２１１との照合に利用可能ではない一つ以上のソフトウェア製品アーティファクト１１３もまた、非準拠としてマークされ得るが、これは、そのようなソフトウェア製品アーティファクト１１３のコンプライアンスがチェックされないためである。上述の実施形態では、安全性コンプライアンス判定システム１０３は、一つ以上の安全性要件２１１に対してマッピングされることが必要とされる一つ以上の試験ケースおよび／またはソフトウェア製品アーティファクト１１３を、動的に生成し得る。
【００３８】
一実施形態では、スコアリングモジュール２２５は、コンプライアンスギャップレポート１１５に基づいて、一つ以上のソフトウェア製品アーティファクト１１３の各々にスコアを割り当て得る。一例として、スコアリングモジュール２２５は、それぞれ準拠および非準拠である一つ以上のソフトウェア製品アーティファクト１１３に、値「１」および「０」のスコアを割り当て得る。従って、図３Ｇに示された例示的なコンプライアンスギャップレポート１１５のケースでは、スコアリングモジュール２２５は、ソフトウェア製品アーティファクト１１３のリスト内で参照番号６によって示されたソフトウェア製品アーティファクト１１３に、スコア値「１」を割り当て得る。同様に、リスト内の他のソフトウェア製品アーティファクト１１３の各々に、値「０」のスコアを割り当て得るが、これは、それらが対応する一つ以上の安全性要件２１１について準拠していないと判定されたためである。
【００３９】
最終的に、スコアリングモジュール２２５は、ソフトウェア製品アーティファクト１１３の各々に割り当てられたスコアを考慮することによって、ソフトウェア製品１０１の全体的なコンプライアンスレベルを算出し得る。一例として、ソフトウェア製品１０１に割り当てられた全体的なスコアは、適合している一つ以上のソフトウェア製品アーティファクト１１３に割り当てられたスコアの合計と、ソフトウェア製品１０１と関連付けられたソフトウェア製品アーティファクト１１３の総数との比を取ることによって算出され得る。ゆえに、図３Ｇのコンプライアンスギャップレポート１１５によって、ソフトウェア製品１０１の全体的な安全性スコアが、以下のように算出され得る。
スコア＝（０＋０＋０＋０＋０＋１）÷６＝０．１６＝１６．６７％のコンプライアンス
【００４０】
ゆえに、ソフトウェア製品１０１は、分析に関して考慮される安全性基準およびマニュアル１１１に１６．６７％準拠していると考えられ得る。
【００４１】
一実施形態では、図３Ｈに表されるように、安全性コンプライアンス判定システム１０３は、上記で説明された方法を用いてソフトウェア製品１０１と関連付けられた一つ以上のソフトウェア製品ツール３２７の安全性レベルを判定し得る。図中に示されるように、複数のソース１０２から抽出された一つ以上の安全性要件２１１の各々は、一つ以上の安全性要件２１１の各々を、一つ以上のソフトウェア製品アーティファクト１１３とマッピングするのと同様の方法を用いてソフトウェア製品１０１と関連付けられた一つ以上のソフトウェア製品ツール３２７とマッピングされ得る。一例として、一つ以上のソフトウェア製品ツール３２７は、要件分析、設計および開発ならびにソフトウェア製品１０１の試験に用いられるソフトウェア製品ツール３２７を含み得るが、これらに限定されない。さらに、コンプライアンス特定モジュール２２３は、ソフトウェア製品１０１と関連付けられた一つ以上のツールのコンプライアンスにおける一つ以上のギャップを示すコンプライアンスギャップレポート１１５を生成し得る。最終的に、スコアリングモジュール２２５は、コンプライアンスギャップレポート１１５に基づいてソフトウェア製品１０１と関連付けられた一つ以上のソフトウェア製品ツール３２７の各々に、適切なスコアを割り当て、それによって、ソフトウェア製品１０１の安全性コンプライアンスレベルを判定する。
【００４２】
図４は、本開示のいくつかの実施形態による、ソフトウェア製品の安全性コンプライアンスレベルを判定するための方法を図示するフローチャートを示す。
【００４３】
図４に図示されるように、方法４００は、安全性コンプライアンス判定システム１０３を用いてソフトウェア製品１０１の安全性コンプライアンスレベルを判定するための一つ以上のブロックを含む。方法４００は、コンピュータ実行可能命令の一般的な文脈で記述され得る。概して、コンピュータ実行可能命令は、特定の機能を行うか、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造、手順、モジュール、および機能を含むことができる。
【００４４】
方法４００が記述される順序は、限定として解釈されることを意図しておらず、任意の数の説明された方法ブロックを、本方法を実施するために任意の順序で組み合わせることができる。加えて、個々のブロックは、本明細書で説明された主題の本質および範囲から逸脱することなく、本方法から削除されてもよい。さらに、本方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施することができる。
【００４５】
ブロック４０１において、安全性コンプライアンス判定システム１０３は、複数のソース１０２から、一つ以上の安全性要件２１１を抽出する。一例として、一つ以上の安全性要件２１１を抽出するために用いられる複数のソース１０２は、ソフトウェア製品１０１と関連付けられた一つ以上の安全性基準およびマニュアル１１１、ソフトウェア製品１０１のソフトウェア要求仕様（ＳＲＳ）および設計文書、およびソフトウェア製品１０１の開発中に用いられたメーリングリストのうちの少なくとも一つを含む。一つ以上の安全性要件２１１は、ソフトウェア製品１０１によってコンパイルされる一つ以上の安全性特性を含む。一実施形態では、ソフトウェア製品１０１の一つ以上の安全性要件２１１が、安全性コンプライアンス判定システム１０３内に構成された自然言語処理および意味解析技術のうちの一つを用いて抽出される。
【００４６】
ブロック４０３において、安全性コンプライアンス判定システム１０３は、一つ以上の安全性要件２１１を、ソフトウェア製品１０１と関連付けられた対応する一つ以上のソフトウェア製品アーティファクト１１３とマッピングする。一例として、一つ以上のソフトウェア製品アーティファクト１１３は、ソフトウェア製品１０１のソースコードと、ソフトウェア製品１０１の実行結果と、ソフトウェア製品１０１の開発および試験中に生成された一つ以上のレポートと、ソフトウェア製品１０１の試験ケース、試験基準および対応する試験結果と、試験ケースの実行追跡と、一つ以上の注釈と、コメントと、ソフトウェア製品１０１と関連付けられた一つ以上のソフトウェア製品ツール３２７とのうちの少なくとも一つを含む。
【００４７】
ブロック４０５において、安全性コンプライアンス判定システム１０３は、ブロック４０３で行われるマッピングに基づいて、一つ以上のソフトウェア製品アーティファクト１１３の各々のコンプライアンスを判定する。一実施形態では、コンプライアンスを判定することは、一つ以上のソフトウェア製品アーティファクト１１３に対応する一つ以上の安全性要件２１１の、一つ以上の欠落した、不適格かつ余分な要素を特定することをさらに含む。
【００４８】
ブロック４０７において、安全性コンプライアント判定システム１０３は、一つ以上の抽出された安全性要件２１１に準拠している一つ以上のソフトウェア製品アーティファクト１１３に、スコアを割り当てる。
【００４９】
ブロック４０９において、安全性コンプライアンス判定システム１０３は、一つ以上のソフトウェア製品アーティファクト１１３に割り当てられたスコアに基づいて、ソフトウェア製品１０１の安全性コンプライアンスレベルを判定する。一実施形態では、ソフトウェア製品１０１の安全性コンプライアンスレベルは、コンプライアンスにおける一つ以上のソフトウェア製品アーティファクト１１３に割り当てられたスコアの合計と、ソフトウェア製品１０１と関連付けられたソフトウェア製品アーティファクト１１３の総数との比に対応し得る。
【００５０】
安全性コンプライアンス判定システム１０３は、一つ以上のソフトウェア製品アーティファクト１１３の各々のコンプライアンスにおける差異を示すためのコンプライアンスギャップレポート１１５を生成することをさらに含む。ソフトウェア製品１０１の安全性コンプライアンスレベルは、コンプライアンスギャップレポート１１５に基づいて、ソフトウェア製品１０１に一つ以上の修正を行うことによって高められ得る。一実施形態では、安全性コンプライアンス判定システム１０３は、ソフトウェア製品１０１の開発および試験に用いられる一つ以上のソフトウェア製品ツール３２７の安全性コンプライアンスレベルをさらに判定し得る。
【００５１】
コンピュータシステム
図５は、本発明と整合している実施形態を実施するための例示的なコンピュータシステム５００のブロック図を図示する。一実施形態では、コンピュータシステム５００は、ソフトウェア製品１０１の安全性コンプライアンスレベルを判定するために用いられる安全性コンプライアンス判定システム１０３あってもよい。コンピュータシステム５００は、中央処理装置（「ＣＰＵ」または「プロセッサ」）５０２を備え得る。プロセッサ５０２は、ユーザまたはシステム生成ビジネスプロセスを実行するためのプログラム構成要素を実行するための少なくとも一つのデータプロセッサを備え得る。ユーザは、人、本発明に含まれるもののような装置を用いる人、またはそのような装置自体を含み得る。プロセッサ５０２は、特殊な処理ユニット、例えば統合システム（バス）コントローラ、メモリ管理制御ユニット、浮動小数点ユニット、グラフィック処理ユニット、デジタル信号処理ユニット等を含み得る。
【００５２】
プロセッサ５０２は、Ｉ／Ｏインタフェース５０１を介して、一つ以上の入出力（Ｉ／Ｏ）装置（５１１および５１２）と通信して配設され得る。Ｉ／Ｏインタフェース５０１は、通信プロトコル／方法、例えば音声、アナログ、デジタル、ステレオ、ＩＥＥＥ−１３９４、シリアルバス、ユニバーサルシリアルバス（ＵＳＢ）、赤外線、ＰＳ／２、ＢＮＣ、同軸、構成要素、合成、デジタルビジュアルインタフェース（ＤＶＩ）、高精細度マルチメディアインタフェース（ＨＤＭＩ（登録商標））、無線周波数（ＲＦ：Radio Frequency）アンテナ、Ｓ−ビデオ、ビデオグラフィックスアレイ（ＶＧＡ）、ＩＥＥＥ８０２．ｎ／ｂ／ｇ／ｎ／ｘ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラ（例えば、符号分割多重アクセス（ＣＤＭＡ: Code Division Multiple Access）、高速パケットアクセス（ＨＳＰＡ＋）、広域自動車通信システム（ＧＳＭ（登録商標））、ロングタームエボリューション（ＬＴＥ）等）等を使用し得るが、これらに限定されない。
【００５３】
Ｉ／Ｏインタフェース５０１を用いて、コンピュータシステム５００は、一つ以上のＩ／Ｏ装置（５１１および５１２）と通信し得る。
【００５４】
いくつかの実施形態では、プロセッサ５０２は、ネットワークインタフェース５０３を介して、通信ネットワーク５０９と通信して配設され得る。ネットワークインタフェース５０３は、通信ネットワーク５０９と通信し得る。ネットワークインタフェース５０３は、直接接続、イーサネット（登録商標）（例えば、撚線対１０／１００／１０００ベースＴ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、トークンリング、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ｘを含むがこれらに限定されない接続プロトコルを使用し得る。ネットワークインタフェース５０３および通信ネットワーク５０９を用いて、コンピュータシステム５００は、一つ以上のソフトウェア製品５１０（１．．．ｎ）と通信し得る。通信ネットワーク５０９は、異なるタイプのネットワーク、例えばイントラネットまたはローカルエリアネットワーク（ＬＡＮ）、および組織内部のそのようなもののうちの一つとして実施することができる。通信ネットワーク５０９は、専用ネットワークまたは共有ネットワークのいずれかであってもよく、これは、例えばハイパーテキスト転送プロトコル（ＨＴＴＰ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ワイヤレスアプリケーションプロトコル（ＷＡＰ）等の、互いに通信するための多様なプロトコルを用いる異なるタイプのネットワークの関連付けを表す。さらに、通信ネットワーク５０９は、ルータ、ブリッジ、サーバ、コンピューティング装置、記憶装置等を含む多様なネットワーク装置を含んでもよい。一つ以上のソフトウェア製品５１０（１、…、ｎ）は、パーソナルコンピュータ、モバイル装置、例えばセルラ電話、スマートホン、タブレットコンピュータ、ｅＢｏｏｋリーダ、ラップトップコンピュータ、ノートブック、ゲーミングコンソール等を含み得るが、これらに限定されない。
【００５５】
いくつかの実施形態では、プロセッサ５０２は、記憶インタフェース５０４を介して、メモリ５０５（例えば、図５に示されたＲＡＭ５１３およびＲＯＭ５１４等）と通信して配設され得る。記憶インタフェース５０４は、接続プロトコル、例えばシリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）、インテグレーテッドドライブエレクトロニクス（ＩＤＥ）、ＩＥＥＥ−１３９４、ユニバーサルシリアルバス（ＵＳＢ）、ファイバーチャネル、小型コンピュータシステムインタフェース（ＳＣＳＩ）等を使用して、メモリドライブ、リムーバブルディスクドライブ等を含むがこれらに限定されないメモリ５０５に接続し得る。メモリドライブは、ドラム、磁気ディスクドライブ、光磁気ドライブ、光学式ドライブ、独立ディスク冗長型アレイ（ＲＡＩＤ）、ソリッドステートメモリ装置、ソリッドステートドライブ等をさらに含み得る。
【００５６】
メモリ５０５は、ユーザ／アプリケーションデータ５０６、オペレーティングシステム５０７、ウェブサーバ５０８等を含むがこれらに限定されないプログラムまたはデータベース構成要素の集合を記憶し得る。いくつかの実施形態では、コンピュータシステム５００は、本発明で説明されたように、ユーザ／アプリケーションデータ５０６、例えばデータ、変数、レコード等を記憶し得る。そのようなデータベースは、フォールトトレラントで、リレーショナルで、拡張性があり安全なデータベース、例えばＯｒａｃｌｅまたはＳｙｂａｓｅとして組み込まれ得る。
【００５７】
オペレーティングシステム５０７は、コンピュータシステム５００の資源管理および動作を容易にし得る。オペレーティングシステムの例は、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  ＯＳ  Ｘ、ＵＮＩＸ（登録商標）、Ｕｎｉｘライクなシステムディストリビューション（例えば、Ｂｅｒｋｅｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ（ＢＳＤ）、ＦｒｅｅＢＳＤ、Ｎｅｔ  ＢＳＤ、Ｏｐｅｎ  ＢＳＤ等．）、Ｌｉｎｕｘディストリビューション（例えば、Ｒｅｄ  Ｈａｔ、Ｕｂｕｎｔｕ、Ｋ−Ｕｂｕｎｔｕ等．）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（ＩＢＭ）ＯＳ／２、Ｍｉｃｒｏｓｏｆｔ  ウィンドウズ（登録商標）（ＸＰ、Ｖｉｓｔａ／７／８等．）、Ａｐｐｌｅ  ｉＯＳ、Ｇｏｏｇｌｅ  Ａｎｄｒｏｉｄ、Ｂｌａｃｋｂｅｒｒｙオペレーティングシステム（ＯＳ）等を含むがこれらに限定されない。ユーザインタフェース５０６は、テキストまたはグラフィカルファシリティを通して、プログラム構成要素の表示、実行、インタラクション、操作、または動作を容易にし得る。例えば、ユーザインタフェースは、コンピュータシステム５００に動作可能に接続されたディスプレイシステム上に、コンピュータインタラクションインタフェース要素、例えばカーソル、アイコン、チェックボックス、メニュー、窓、ウィジェット等を提供し得る。Ａｐｐｌｅ  ＭａｃｉｎｔｏｓｈオペレーティングシステムのＡｑｕａ、ＩＢＭ  ＯＳ／２、Ｍｉｃｒｏｓｏｆｔウィンドウズ（例えば、Ａｅｒｏ、Ｍｅｔｒｏ等）、Ｕｎｉｘ  Ｘ−ウィンドウズ、ウェブインタフェースライブラリアン（例えば、ＡｃｔｉｖｅＸ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＡＪＡＸ、ＨＴＭＬ、Ａｄｏｂｅ  Ｆｌａｓｈ等）等を含むが、これらに限定されないグラフィカルユーザインタフェース（ＧＵＩ）を使用してもよい。
【００５８】
いくつかの実施形態では、コンピュータシステム５００は、ウェブブラウザ５０８記憶プログラム構成要素を組み込んでもよい。ウェブブラウザは、ハイパーテキスト閲覧アプリケーション、例えばＭｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、Ａｐｐｌｅ  Ｓａｆａｒｉ等であってもよい。安全なウェブブラウジングは、セキュアハイパーテキスト転送プロトコル（ＨＴＴＰＳ）セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）等を用いて提供され得る。ウェブブラウザは、例えばＡＪＡＸ、ＤＨＴＭＬ、Ａｄｏｂｅ  Ｆｌａｓｈ、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｊａｖａ（登録商標）、アプリケーションプログラミングインタフェース（ＡＰＩ）等のファシリティを利用してもよい。いくつかの実施形態では、コンピュータシステム５００は、メールサーバ記憶プログラム構成要素を組み込んでもよい。メールサーバは、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ等のインターネットメールサーバであってもよい。メールサーバは、アクティブサーバページ（ＡＳＰ）、ＡｃｔｉｖｅＸ、米国規格協会（ＡＮＳＩ）Ｃ＋＋／Ｃ＃、Ｍｉｃｒｏｓｏｆｔ  ＮＥＴ、ＣＧＩスクリプト、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＰＥＲＬ、ＰＨＰ、Ｐｙｔｈｏｎ、ウェブオブジェクト等のファシリティを利用してもよい。メールサーバは、例えばインターネットメッセージアクセスプロトコル（ＩＭＡＰ）、メッセージングアプリケーションプログラミングインタフェース（ＭＡＰＩ）、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、ポストオフィスプロトコル（ＰＯＰ）、簡易メール転送プロトコル（ＳＭＴＰ）等の通信プロトコルを利用してもよい。いくつかの実施形態では、コンピュータシステム５００は、メールクライアント記憶プログラム構成要素を組み込んでもよい。メールクライアントは、例えばＡｐｐｌｅ  Ｍａｉｌ、Ｍｉｃｒｏｓｏｆｔ  Ｅｎｔｏｕｒａｇｅ、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ、Ｍｏｚｉｌｌａ  Ｔｈｕｎｄｅｒｂｉｒｄ等のメール閲覧アプリケーションであってもよい。
【００５９】
さらに、本発明と整合する実施形態の実施において、一つ以上のコンピュータ可読記憶媒体を利用してもよい。コンピュータ可読記憶媒体は、プロセッサによって可読である情報またはデータを記憶し得る、任意のタイプの物理的メモリを指す。このように、コンピュータ可読記憶媒体は、一つ以上のプロセッサによって実行するための命令を記憶してもよく、本明細書で説明された実施形態と整合するステップまたは段階を行わせるための命令を含む。「コンピュータ可読媒体（ｃｏｍｐｕｔｅｒ−ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）」という用語は、有形物を含み、搬送波および過渡信号、すなわち非一時的なものを除外すると理解されるべきではない。例は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、揮発性メモリ、不揮発性メモリ、ハードドライブ、コンパクトディスク（ＣＤ）ＲＯＭ、デジタルビデオディスク（ＤＶＤ）、フラッシュドライブ、ディスク、および任意の他の既知の物理的記憶媒体を含む。
【００６０】
本明細書において、本開示の実施形態の利点が例証される。
一実施形態では、本開示は、所与の安全性基準に従って、一つ以上の安全性要件によるソフトウェア製品の安全性コンプライアンスレベルを自動判定するための方法を提供する。
【００６１】
一実施形態では、本開示の方法は、自然言語処理（ＮＬＰ）および意味解析技術を用いた、安全性製品に関する標準的な安全性手順の容易な解釈に役立つ。
【００６２】
一実施形態では、本開示の方法は、ソフトウェア製品の安全性認証中の不合格および／または複数の繰り返しの可能性を最小化する。
【００６３】
一実施形態では、本開示の方法は、ソフトウェア製品の開発のさまざまな局面中に、ソフトウェア製品の安全性コンプライアンスレベルを判定する手段を提供する。
【００６４】
一実施形態では、本開示の方法は、安全性基準に従ってシステムのコンプライアンスを維持することによって、安全臨界システムの開発中に開発者への支援を提供する。
【００６５】
「実施形態（ａｎ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｅｍｂｏｄｉｍｅｎｔｓ）」、「実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔ）」、「実施形態（ｔｈｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「一つ以上の実施形態（ｏｎｅ  ｏｒ  ｍｏｒｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、「いくつかの実施形態（ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ）」、および「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」という用語は、明示的に指定されない限り、「本発明の一つ以上の（しかし全てではない）実施形態」を意味する。
【００６６】
「含む（ｉｎｃｌｕｄｉｎｇ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」という用語およびそれらの変形は、明示的に指定されない限り、「含むがそれらに限定されない」を意味する。
【００６７】
列挙された項目のリストは、明示的に指定されない限り、任意のまたは全ての項目が互いに排他的であることを示唆しない。
【００６８】
「ａ」、「ａｎ」および「ｔｈｅ」という用語は、明示的に指定されない限り、「一つ以上」を意味する。
【００６９】
互いに通信しているいくつかの構成要素を備える実施形態の説明は、全てのそのような構成要素が必要とされることを示唆しない。反対に、多様なオプションの構成要素は、本発明の幅広い可能な実施形態を例証するために説明される。
【００７０】
単一の装置または物品が本明細書で説明された場合、２つ以上の装置／物品が（それらが協働するかどうかにかかわらず）単一の装置／物品の適所で用いられ得ることが容易に明らかとなろう。同様に、２つ以上の装置または物品が本明細書で説明された場合（それらが協働するかどうかにかかわらず）、単一の装置／物品が、２つ以上の装置または物品の適所で用いられ得るか、または示された数の装置またはプログラムに代えて、異なる数の装置／物品が用いられてもよいことが容易に明らかとなろう。装置の機能性および／または特徴は、そのような機能性／特徴を有するとして明記されていない一つ以上の他の装置によって代替的に具現化されてもよい。このように、本発明の他の実施形態は、装置自体を含むことを要しない。
【００７１】
最後に、本明細書で用いられる言語は、主として可読性および指示目的のために選択されており、本発明の主題を線引きまたは制限するために選択されてはいない可能性がある。したがって、本発明の範囲が、この詳細な説明によってではなく、むしろ本明細書に基づく出願に関して生じる任意の請求項によって限定されることが意図されている。よって、本発明の実施形態は、例証的であることが意図され、以下の特許請求の範囲で述べられた本発明の範囲を限定することは意図されていない。
【００７２】
本明細書においてさまざまな態様および実施形態を開示してきたが、当業者には、他の態様および実施形態が明らかであろう。本明細書に開示されたさまざまな態様および実施形態は、図示を目的とし、限定することは意図されておらず、真の範囲および趣旨は、以下の特許請求の範囲によって示されている。
【符号の説明】
【００７３】
１００ａ：環境（ソフトウェア製品における準拠のギャップ）、１００ｂ環境（本開示の安全性コンプライアンス判定システム）、１０１：ソフトウェア製品、１０２：ソース、
１０３：安全性コンプライアンス判定システム、１０５：Ｉ／Ｏインタフェース、１０７：メモリ、１０９：プロセッサ、１１１：安全性基準およびマニュアル、１１３：ソフトウェア製品アーティファクト、１１５：コンプライアンスギャップレポート、２０７：データ、２０９：モジュール、２１１：安全性要件、２１７：他のデータ、２１９：安全性要件抽出モジュール、２２１：要件マッピングモジュール、２２３：コンプライアンス特定モジュール、２２５：スコアリングモジュール、２２７：他のモジュール、３１５：ソフトウェア製品アーティファクト特定要件、３１９：要件マッピングデータベース、３２３：安全性特定キーワード、３２５：安全性整合性レポート、３２７：ソフトウェア製品ツール
【図１】
2018018525.tif 000003
【図２Ａ】
2018018525.tif 000004
【図２Ｂ】
2018018525.tif 000005
【図３Ａ】
2018018525.tif 000006
【図３Ｂ】
2018018525.tif 000007
【図３Ｃ】
2018018525.tif 000008
【図３Ｄ】
2018018525.tif 000009
【図３Ｅ】
2018018525.tif 000010
【図３Ｆ】
2018018525.tif 000011
【図３Ｇ】
2018018525.tif 000012
【図３Ｈ】
2018018525.tif 000013
【図４】
2018018525.tif 000014
【図５】
2018018525.tif 000015