(57)【要約】      （修正有）【課題】ソフトウェアアプリケーションのコンプライアンス検査および詳細な解析を可能にする。【解決手段】ソフトウェアコンプライアンス解析方法は、ユーザーが特定の安全レベルに関する産業コンプライアンス規格を選択可能とする工程と、安全レベルに関連付けられた基準パラメーターに関するソフトウェアアプリケーションのコンプライアンス検証プロセスを開始する工程と、選択されたコンプライアンス規格と、解析ツールの特徴とをマッピングする工程と、ソフトウェアアプリケーションのコンプライアンスレベルを算出するために、解析ツールのマッピングされた特徴を解析する工程と、所望のコンプライアンスレベルを達成するための提案的な測定値を提供する多層構造によって、ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供する工程とを備える。【選択図】図１
2014089704.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサーと、
前記プロセッサーが実行可能な命令を保存するメモリーと、を備え、
前記命令は、
ユーザーが特定の安全レベルに関する１つ以上の産業コンプライアンス規格を選択可能とするよう構成された選択モジュールと、
前記安全レベルに関連付けられた１つ以上の基準パラメーターに関するソフトウェアアプリケーションのコンプライアンス検証プロセスを開始するよう構成された実行モジュールと、
前記選択されたコンプライアンス規格と、１つ以上の解析ツールの特徴とをマッピングするよう構成されたマッピングモジュールと、
前記ソフトウェアアプリケーションのコンプライアンスレベルを算出するために、前記１つ以上の解析ツールの前記マッピングされた特徴を解析するよう構成された解析エンジンと、
所望のコンプライアンスレベルを達成するための１つ以上の提案的な測定値を提供する多層構造によって、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供するよう構成された出力生成モジュールと、を実行するための命令を含むことを特徴とするソフトウェアコンプライアンス解析システム。
【請求項２】
前記マッピングモジュールは、必須ルールが事前に選択されており、設定不可能な状態で、前記マッピングを実行するよう構成されている請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項３】
前記マッピングモジュールは、さらなるマッピングのため、前記ユーザーによるオプショナルルールまたは推奨ルールの選択を提供するようさらに構成されている請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項４】
前記マッピングモジュールは、前記ツールの全ての前記ユーザー間での一貫性のために、前記マッピングを保存するよう構成されている請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項５】
前記解析エンジンは、前記コンプライアンスレベルを算出するため、ルールの合計数に対するルール違反の数を特定するようさらに構成されている請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項６】
前記命令は、規格コンプライアンスグループ分けに従った１つ以上のグループについての報告を生成するよう構成された報告モジュールをさらに含む請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項７】
前記出力生成モジュールは、コンプライアンスグループ分け、個々のルール違反およびソースコードに関する視覚化を提供するよう構成されている請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項８】
前記出力生成モジュールは、コンプライアンス指標バーを用いて、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供するよう構成されている請求項１に記載のソフトウェアコンプライアンス解析システム。
【請求項９】
ユーザーが特定の安全レベルに関する１つ以上の産業コンプライアンス規格を選択可能とする工程と、
前記安全レベルに関連付けられた１つ以上の基準パラメーターに関するソフトウェアアプリケーションのコンプライアンス検証プロセスを開始する工程と、
前記選択されたコンプライアンス規格と、１つ以上の解析ツールの特徴とをマッピングする工程と、
前記ソフトウェアアプリケーションのコンプライアンスレベルを算出するために、前記１つ以上の解析ツールの前記マッピングされた特徴を解析する工程と、
所望のコンプライアンスレベルを達成するための１つ以上の提案的な測定値を提供する多層構造によって、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供する工程と、を備えることを特徴とするソフトウェアコンプライアンス解析方法。
【請求項１０】
前記マッピングする工程は、必須ルールが事前に選択されており、設定不可能な状態で、実行される請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１１】
前記マッピングする工程は、さらなるマッピングのため、前記ユーザーによるオプショナルルールまたは推奨ルールの選択をさらに提供する請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１２】
前記ツールの全ての前記ユーザー間での一貫性のために、前記マッピングを保存する工程をさらに含む請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１３】
前記マッピングされた特徴を解析する工程は、前記コンプライアンスレベルを算出するため、ルールの合計数に対するルール違反の数を特定する工程をさらに含む請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１４】
規格コンプライアンスグループ分けに従った１つ以上のグループについての報告が生成される請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１５】
前記コンプライアンスレベルを視覚的に提供する工程は、コンプライアンスグループ分け、個々のルール違反およびソースコードに関する視覚化を提供する請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１６】
前記ソフトウェアアプリケーションの前記コンプライアンスレベルは、コンプライアンス指標バーを用いて、視覚的に提供される請求項９に記載のソフトウェアコンプライアンス解析方法。
【請求項１７】
コンピューターが実行可能な命令を保存する非一時的コンピューター読み取り可能媒体であって、
前記命令は、
特定の安全レベルに関する１つ以上の産業コンプライアンス規格に対するユーザーからの選択を受信するよう構成されたユーザーインターフェースと、
前記選択されたコンプライアンス規格と、１つ以上の解析ツールの特徴とのマッピングを実行するよう構成されたコンプライアンスレベル判別モジュールと、
各層が前記マッピングに対応するような多層構造によって、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供し、さらに、前記ユーザーに対し、所望のコンプライアンスレベルを達成するためのルール違反に関する提案的な測定値を表示するよう構成された表示モジュールと、を実行するための命令を含むことを特徴とする非一時的コンピューター読み取り可能媒体。
【請求項１８】
前記表示モジュールは、仕様コンプライアンスグループ分けに従った１つ以上のグループについての報告を生成するよう構成された請求項１７に記載の非一時的コンピューター読み取り可能媒体。
【請求項１９】
前記表示モジュールは、コンプライアンス指標バーを用いて、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供するよう構成された請求項１７に記載の非一時的コンピューター読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアコンプライアンス解析（software compliance analysis）の分野一般に関する。より具体的に、本発明は、ソフトウェアアプリケーションのコンプライアンス検査および詳細な解析を提供するためのシステムおよび方法に関する。
【背景技術】
【０００２】
今日の世界において、全ての企業もしくは産業は、生産、製作その他ビジネスプロセスを自動化するためのソフトウェアアプリケーションまたはツールを利用している。ソフトウェアアプリケーションまたはツール等の品質保証における原則は、「目的に合致すること」（Fit for Purpose）および「最初から適切であること」（First time Right）が達成されているか否かである。これを確実に確認するためには、ソフトウェアの品質監査が必要不可欠である。
【０００３】
ソフトウェアアプリケーションの品質レベルを算出するために、異なる臨界レベル（criticality levels）のＩＳＯ規格(ISO standards)のような様々な規格が規定されている。ソフトウェア規格仕様書（software standard specifications）は、ソフトウェアアプリケーションが遵守すべき様々なルールを規定している。市場には、ソフトウェアアプリケーションのコンプライアンス（遵守性）をモニター（監視）し、それらのコンプライアンスレベルを算出するよう構成された様々なシステムが存在している。
【０００４】
市場には、コンプライアンスモニタリングおよび解析用の様々なツールが存在しており、そのようなツールは、テストによってソフトウェアアプリケーション全体としてのコンプライアンスレベルを算出するために、コンプライアンス規格仕様書を参照している。ソフトウェア規格仕様書は本質的に複雑であり、そのため、ソフトウェア規格仕様書を理解することは、ソフトウェア開発者にとっての負担となる。また、ソフトウェアの様々な特徴と、ソフトウェア規格仕様書とを手動でマッピングする作業（manually mapping）は、非常に冗長で退屈な作業であり、多大な時間を必要とする。ソフトウェアアプリケーション全体のコンプライアンスレベルを算出するために、前述のツールを活用する開発者のそれぞれは、同じ規格仕様書を順守しなければならない。そのため、ソフトウェアアプリケーションの特徴をマッピングする（対応付ける）作業は、チーム間での一貫性（consistency：整合性）を確保するために、ソフトウェアツールを通して、一律化（uniform）されなければならない。現存のソフトウェアコンプライアンスモニタリングおよび解析ツールは、そのツールのレベルに応じて、コンプライアンスレベルを算出し、視覚化している。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、ソフトウェアアプリケーションのコンプライアンス検査および解析を提供するための統合システムを提供し、その結果、詳細な（徹底した）トレーサビリティ（traceability:追跡管理）を実行可能とする視覚化された解析を提供する事にある。本発明の実施形態の１つでは、ソフトウェアコンプライアンス解析システムが開示される。該ソフトウェアコンプライアンス解析システムは、
プロセッサーと、
前記プロセッサーが実行可能な命令を保存するメモリーと、を備え、
前記命令は、
ユーザーが特定の安全レベルに関する１つ以上の産業コンプライアンス規格を選択可能とするよう構成された選択モジュールと、
前記安全レベルに関連付けられた１つ以上の基準パラメーターに関するソフトウェアアプリケーションのコンプライアンス検証プロセスを開始するよう構成された実行モジュールと、
前記選択されたコンプライアンス規格と、１つ以上の解析ツールの特徴とをマッピングするよう構成されたマッピングモジュールと、
前記ソフトウェアアプリケーションのコンプライアンスレベルを算出するために、前記１つ以上の解析ツールの前記対応付けられた特徴を解析するよう構成された解析エンジンと、
所望のコンプライアンスレベルを達成するための１つ以上の提案的な測定値を提供する多層構造によって、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供するよう構成された出力生成モジュールと、を実行するための命令を含むことを特徴とする。
【０００６】
本発明の更なる目的は、ソフトウェアアプリケーションのコンプライアンス検査および解析を提供するための方法を提供し、その結果、詳細な（徹底した）トレーサビリティを実行可能な視覚化された解析を提供する事にある。本発明の実施形態の１つでは、ソフトウェアコンプライアンス解析方法が開示される。該ソフトウェアコンプライアンス解析方法は、
ユーザーが特定の安全レベルに関する１つ以上の産業コンプライアンス規格を選択可能とする工程と、
前記安全レベルに関連付けられた１つ以上の基準パラメーターに関するソフトウェアアプリケーションのコンプライアンス検証プロセスを開始する工程と、
前記選択されたコンプライアンス規格と、１つ以上の解析ツールの特徴とをマッピングする工程と、
前記ソフトウェアアプリケーションのコンプライアンスレベルを算出するために、前記１つ以上の解析ツールの前記マッピングされた特徴を解析する工程と、
所望のコンプライアンスレベルを達成するための１つ以上の提案的な測定値を提供する多層構造によって、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供する工程と、を備えることを特徴とする。
【０００７】
本発明の更なる目的は、ソフトウェア品質保証に関するコンプライアンスレベルを判別するための命令セットが実装されたコンピュータープログラム製品を提供することにある。本発明の実施形態の１つでは、非一時的コンピューター読み取り可能媒体（non-transitory computer-readable medium）が開示される。該コンピューター読み取り可能媒体は、コンピューターが実行可能な命令を保存しており、前記命令は、
特定の安全レベルに関する１つ以上の産業コンプライアンス規格に対するユーザーからの選択を受信するよう構成されたユーザーインターフェースと、
前記選択されたコンプライアンス規格と、１つ以上の解析ツールの特徴とのマッピングを実行するよう構成されたコンプライアンスレベル判別モジュールと、
各層が前記マッピングに対応するような多層構造によって、前記ソフトウェアアプリケーションの前記コンプライアンスレベルを視覚的に提供し、前記ユーザーに対し、所望のコンプライアンスレベルを達成するためのルール違反に関する提案的な測定値を表示するよう構成された表示モジュールと、を実行するための命令を含むことを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施形態の１つに係るソフトウェアアプリケーションのコンプライアンス検査および解析を提供する統合システムの基本設計概念（architecture）を示す図である。
【０００９】
【図２】図２は、本発明の実施形態の１つに係る詳細なコンプライアンス検証を詳細に視覚化して提供する出力生成モジュールの基本設計概念を示す図である。
【００１０】
【図３】図３は、本発明の実施形態に係る多層構造によって視覚化された詳細なコンプライアンスレベルの１例を示す図である。
【００１１】
【図４】図４は、本開示と整合する(consistent with)実施形態を実行するコンピューターシステムのブロック図の１例である。
【発明を実施するための形態】
【００１２】
以下、特徴を図示している本発明の複数の実施形態が説明される。明細書中、「構成する」、「有する」、「含む」、「備える」およびそれらの他の形式は、同等な意味であり、ある事項またはこれらの文言のいずれか１つに続く事項はそのような事項の包括的なリストであるような意味ではなく、また、列挙された事項のみに限定されるという意味ではない。
【００１３】
また、明細書および添付の請求項において使用されるように、単数形“a”、“an”、“the”は、文脈が明確に示していなければ、複数形も含むことに注意しなければならない。ここで説明されるシステム、方法、装置およびデバイスと同等、または類似のシステム、方法、装置およびデバイスは、本発明の実施形態の実施またはテストに使用されることができるが、好ましいシステムおよび方法は以下に説明される。発明の説明および理解のための以下の記載は、多数の実施形態を示すが、これらは、本発明の範囲を特に限定するものでは無い。
【００１４】
本発明の１つ以上の構成要素は、明細書の理解を助けるためのモジュールとして記載される。例えば、モジュールは、論理ゲート（logical gate）、半導体デバイス、集積回路、その他の個々の要素を含むハードウェア回路内の自己充足な（self-contained）構成要素を含んでいてもよい。また、モジュールは、プロセッサー等の任意のハードウェア資源によって実行される任意のソフトウェアプログラムの一部であってもよい。ソフトウェアプログラムとしてのモジュールの実行は、プロセッサーまたはその他のハードウェア資源によって実行可能な論理命令（logical instructions）のセットを含んでいてもよい。さらに、モジュールは、命令のセットもしくはインターフェースを用いたプログラムと組み合わせられていてもよい。
【００１５】
本発明の実施形態は、単に、本発明の１例にすぎず、様々な形態で実装することができる。本発明は、ソフトウェアアプリケーションのコンプライアンス検査および解析用の統合システムおよび方法に関する。コンプライアンス検証（verifications）に関連付けられた結果は、特定のソフトウェアアプリケーションによって達成されたコンプライアンスレベルの詳細な（徹底した）トレーサビリティ（traceability:追跡管理）を実行可能とするように視覚化されていてもよい。システムは、１つ以上の解析ツールの特徴を介して、ユーザーによって選択されたコンプライアンス規格についてのソフトウェアのコンプライアンス検証を実行する。ある特定の例では、解析ツールは、これに限られないが、静的解析ツール（static analysis tool）、静的検証ツール（static verification tool）、テストデータ生成、カバレージ解析ツール（coverage analysis tool）、コーディング規格コンプライアンスチェッカーツール（coding standards compliance checker tool）、およびこれらの組み合わせを含む。解析ツールの特徴は、規格仕様書に、事前にマッピング（pre-mapping）されていてもよく、事前にマッピングされた特徴は、さらに解析されてもよい。このような解析の結果は、多層構造によって（in a multi-stage manner）コンプライアンスレベルを提示するために、視覚化されて提供される。
【００１６】
図１に示す本発明の実施例の１つでは、システム１００は、ユーザーが１つ以上の産業に関する１つ以上のコンプライアンス規格を選択可能とするよう構成された選択モジュール１０２を含む。さらに、システム１００は、事前に定義されたマッピング（pre-defined mapping）に基づくテストによるソフトウェアアプリケーションのコンプライアンス検証プロセスを開始する実行モジュール１０４を含む。さらに、実行モジュール１０４は、マッピングモジュール１０６と、解析エンジン１０８とを含む。さらに、システム１００は、多層構造によって、ソフトウェアアプリケーションのコンプライアンスを提示するために、解析エンジン１０８の解析結果を視覚化して提供する出力生成モジュール１１０を含む。
【００１７】
図１に示す本発明の実施形態の１つでは、選択モジュール１０２は、ユーザーが特定の安全レベルに関する１つ以上の産業に関した１つ以上のコンプライアンス規格を選択可能とするよう構成されている。任意の産業またはアプリケーションに適用可能なコンプライアンス規格は、それぞれ異なっていてもよい。したがって、目的に応じたソフトウェアアプリケーションのコンプライアンス検証を実行するためには、適切なコンプライアンス規格を選択する必要がある。よって、目的に応じたコンプライアンス検証は、ユーザーが達成を希望するコンプライアンスレベルについてのユーザーからの選択を参照する。ソフトウェア品質コンプライアンスのチェックに使用可能なコンプライアンス規格は、特に限定されないが、ＩＳＯ２６２６２を含む。選択されたコンプライアンス規格は、例えば、ＩＳＯ２６２６２用のＡＳＩＬ（Ａ／Ｂ／Ｃ／Ｄ）のような安全臨界レベル（safety criticality level）を有している。したがって、コンプライアンス検証を実行するために、既存のＡＳＩＬ安全臨界レベルから所望の安全臨界レベルを選択するという選択肢がユーザーに与えられることとなる。
【００１８】
選択された安全臨界レベルは、異なる規格仕様書に従って、さらにグループ分けされる（以下、「ルールグループ」という）。このルールグループがソフトウェアアプリケーションに適用されることとなる。ある特定の例では、ＩＳＯ２６２６２−ＡＳＩＬレベルＤは、強制ＬＣ（Enforce Low Complexity）、意味的コード解析（Semantic Code Analysis）、使用言語サブセット（Use Language Subsets）、強制ストロングタイピング（Enforce Strong Typing）、非暗黙型転換（No Implicit Type Conversions）、単一エントリー（Single Entry）および出口点（Exit point）、設計原理使用（Use Design Principles）、変数初期化（Variables Initialisation）、非多重可変名（No Multiple Variable Name）、防御的実行使用（Use Defensive implementation）、非再帰（No Recursions）、ＭＣ／ＤＣ、境界値解析（Analysis of Boundary Values）、並びに静的コード解析（Static Code Analysis）を含む。さらに、ルールグループレベル仕様書は、様々なルールを含む。ユーザーによって選択された安全臨界レベルに従って、適用されるルールは、必須ルール（mandatory rules）、オプショナルルール(optional rules)、および推奨ルール(recommended rules)にカテゴライズ（区分分け）される。必須ルールには “３”の重みが割り当てられ、推奨（推薦）ルールには“２”の重みが割り当てられ、オプショナルルールには“１”の重みが割り当てられる。
【００１９】
図１に示す実行モジュール１０４は、安全レベルに関連付けられた１つ以上の基準パラメーター（normative parameters）に関する１つソフトウェアアプリケーションのコンプライアンス検証プロセスを開始するよう構成されている。基準パラメーターは、ソフトウェアアプリケーションに適用される（遵守すべき）規格仕様書およびルールである。さらに、実行モジュール１０４は、ソフトウェアアプリケーションのコンプライアンス検証を実行するため、選択されたコンプライアンス規格と、１つ以上の解析ツールの対応する特徴とを事前に定められたようにマッピング（pre-defined mapping）するよう構成されたマッピングモジュール１０６を含む。これら特徴は、その後、コンプライアンス規格を算出するためのテストにおいて、ソフトウェアアプリケーション解析のために用いられる。マッピングモジュール１０６は、必須ルールが事前に選択され（pre-selected）、設定不可能（non-configurable）な状態（方法）で、事前に定義されたマッピングを実行してもよい。さらに、マッピングモジュール１０６は、さらなるマッピング用のユーザーによるオプショナルルールもしくは推奨ルールの選択を提供するよう構成されている。さらに、マッピングモジュール１０６は、ツールの全てのユーザー間で一貫性（整合性）を確保するために、事前に定義されたマッピングを保存するよう構成された保存媒体を含む。マッピングモジュール１０６を用いて保存される選択された設定（configuration）は、全てのユーザー間で、コンプライアンスチェックにおける均一性を確保する。このような事前に定義されたマッピングによって、マッピングにおける混乱と労力を回避することができる。また、事前に定義されたマッピングは、規格仕様書における固有の複雑性を緩和することができ、そのため、ユーザーが規格仕様書を理解する助けとなる。また、複雑な規格仕様書を理解するのに費やされる時間が省かれるので、システムの効率性が向上し、より迅速な実装に繋がる。このマッピングは、ドメイン特定（domain specific）であってもよく、そのため、ユーザーは、特別に適合されたフレームワークを得ることができ、この自動化ユーザーは、自動コンプライアンスチェックのみを実行すればよい。
【００２０】
実行モジュール１０４は、ソフトウェアアプリケーションのコンプライアンスレベルを算出するために、解析ツールの事前にマッピングされた特徴のみを解析するよう構成された解析エンジン１０８をさらに含んでいてもよい。内部的に、選択されたルールは、様々な解析ツールの特徴にマッピングされ、それら特徴が１つ以上のツールから実行される。さらに、解析エンジン１０８は、ソフトウェアアプリケーションのコンプライアンスレベルを算出するため、全ルールに対するルール違反の数を識別する。
【００２１】
コンプライアンスレベルの算出を説明するため、ある特定の例を用いて説明を行う。
【００２２】
一般的に、品質規定は、様々なコンプライアンス推奨（compliance suggestions）を、例えば、ＩＳＯ２６２６２からを提供する。
“＋＋”  ：現在のＡＳＩＬ用に強く推奨される方法（必須）。
“＋”    ：現在のＡＳＩＬ用に推奨される方法（推奨）。
“ｏ”    ：現在のＡＳＩＬ用には推奨されない、または、現在のＡＳＩＬの仕様（利用）に反している方法（オプショナル）。
【００２３】
したがって、３つのレベルが存在し、最も強く推奨される方法には、重み“３”が割り当てられ、オプショナルな方法には、重み“１”が割り当てられる。
Ｍｔ＝必須ルールの合計数
Ｍｖ＝必須ルール違反の数
Ｒｔ＝推奨ルールの合計数
Ｒｖ＝推奨ルール違反の数
Ｏｔ＝選択されたオプショナルルールの合計数
Ｏｖ＝選択されたオプショナルルール違反の数
Ｍｗ＝３（必須ルールに対する重み）
Ｒｗ＝２（推奨ルールに対する重み）
Ｏｗ＝１（オプショナルルールに対する重み）
％非コンプライアンスレベル
（Ｍｖ×Ｍｗ）＋（Ｒｖ×Ｒｗ）＋（Ｏｖ×Ｏｗ）
＝―――――――――――――――――――――――×１００
（Ｍｔ×Ｍｗ）＋（Ｒｔ×Ｔｗ）＋（Ｏｔ×Ｏｗ）
％コンプライアンスレベル＝１００−％非コンプライアンスレベル
【００２４】
コンプライアンスレベルは、コンプリートレベル（complete level）と同様に、モジュールにおいて算出されてもよい。
【００２５】
図１に示すシステム１００は、ソフトウェアアプリケーションのコンプライアンスレベルを多層構造によって提示するために、前記分析エンジンの結果を視覚化して提供するよう構成された出力生成モジュール１１０をさらに含む。検索手法（mining approach）は、コンプラアンス仕様書／非コンプライアンスに対するルール／ソースコード中における違反を段階的な方法でマッピングする。これにより、ルール／仕様書グループレベル、ルール／仕様書レベル、推奨レベルおよびファイルレベルのような様々な視点から、非コンプライアンスを調べることができる。多層構造は、所望のコンプライアンスレベルを達成するための（to meet a desired compliance level）１つ以上の提案的（suggestive）な測定値を提供するため、結果検索手法（a result mining approach）を用いて決定（判別）される。この多層構造は、特に限定されないが、グループ分けされたコンプライアンスから個々のルール違反への視覚化(visualization)、個々のルール違反から詳細なリスト(detail listing)への視覚化、および詳細なリストからソースコードへの視覚化等を含む詳細な（徹底した）トレーサビリティ（traceability:追跡管理）を提供する。
【００２６】
図２に示す出力生成モジュール１１０は、規格コンプライアンスグループ分け（standard compliance grouping）に従った１つ以上のグループについての報告を生成するよう構成された報告モジュール２０２をさらに含む。さらに、出力生成モジュール１１０は、コンプライアンス指標バー（compliance indication bar）を用いて、その結果を視覚化して提供する表示モジュール２０４を含む。コンプライアンス指標バーによって、各グループレベルにおけるコンプライアンスパーセントを特定することができる。任意の必須要件（ルール）が満たされていないときには、コンプライアンスパーセントが高かったとしても、コンプライアンス指標バーは赤色で表示される。全ての必須要件（ルール）が満たされており、コンプライアンスパーセント（レベル）が８５％以上のときには、コンプライアンス指標バーは、緑色で表示される。全ての必須要件（ルール）が満たされており、コンプライアンスパーセント（レベル）が８５％未満のときには、コンプライアンス指標バーは、オレンジ色で表示される。
【００２７】
さらに、本開示は、ソフトウェア品質保証に関するコンプライアンスレベルを判別するための命令セットが実装されたコンピュータープログラム製品に関する。コンピュータープログラム製品は、プロセッサーに接続されたユーザーインターフェースを含む。ユーザーインターフェースは、特定の安全レベルに関する１つ以上の産業についての、ソフトウェアアプリケーションの品質保証用の１つ以上のコンプライアンス規格に対するユーザーからの選択を受信するよう構成されている。
【００２８】
さらに、コンピュータープログラム製品は、ユーザーインターフェースに通信可能に接続されたコンプライアンスレベル判別モジュールを含む。コンプライアンスレベル判別モジュールは、ユーザーにソフトウェアアプリケーションのコンプライアンスレベルを提供するため、ユーザーによって選択されたコンプライアンス規格と、１つ以上の分析ツールの対応する特徴とを事前に定義されたようにマッピング(pre-defined mapping)するよう構成されている。
【００２９】
加えて、コンピュータープログラム製品は、各層が事前に定義されたマッピングに対応するような多層構造によって、ソフトウェアアプリケーションのコンプライアンスレベルを視覚的に提供するよう構成された表示モジュール２０４を含む。表示モジュール２０４は、所望のコンプライアンスレベルを達成するために、各ルール違反用に、提案的な測定値（suggestive measures）をユーザーに表示するよう構成されている。さらに、報告モジュール２０２は、規格コンプライアンスグループ分けに従った１つ以上のグループについての報告を生成し、その結果を、コンプライアンス指標バーを用いて視覚的に提供するよう構成されている。
【００３０】
ソフトウェアアプリケーションのコンプライアンス検査および分析を提供するためのシステムおよび方法を、以下に段落に詳述する実施例（working example）を用いて説明する。なお、この手法は、以下の実施例にのみ限定されるものではない。
【００３１】
特に図３およびその他の図は、システムの基本設計概念（architecture）を示している。ソフトウェアアプリケーションコンプライアンス検証用のソフトウェアアプリケーション／プロジェクトは、ＩＳＯ２６２６２−ＡＳＩＬ用に使用されるものとする。選択される安全臨界レベルは、ＡＳＩＬレベルＤである。ユーザーは、選択モジュール１０２を用いて、ＩＳＯ２６２６２−ＡＳＩＬレベルＤを選択する。規格仕様書の選択において、マッピングモジュール１０６は、プロジェクトの特徴と、ＡＳＩＬレベルＤのルールグループの個々のルールとをマッピングする（ブロック３０２を参照）。ＩＳＯ２６２６２−ＡＳＩＬレベルＤは、強制ＬＣ（Enforce Low Complexity）、意味的コード解析（Semantic Code Analysis）、使用言語サブセット（Use Language Subsets）、強制ストロングタイピング（Enforce Strong Typing）、非暗黙型転換（No Implicit Type Conversions）、単一エントリー（Single Entry）および出口点（Exit point）、設計原理使用（Use Design Principles）、変数初期化（Variables Initialisation）、非多重可変名（No Multiple Variable Name）、防御的実行使用（Use Defensive implementation）、非再帰（No Recursions）、ＭＣ／ＤＣ、境界値解析（Analysis of Boundary Values）、並びに静的コード解析（Static Code Analysis）のようなルールグループにより構成されている。
【００３２】
ルールグループとして強制ＬＣが選択された場合、グループにおけるルールは、既にマッピングされている。ＡＳＩＬレベルＤ用のＩＳＯ推奨（ISO recommendation）は、安全性が高く設定してあるので、対応付けられた全てのルールは、最も重い重みづけを割り当てられた必須ルールとなる。これら必須ルールは、事前に選択されていてもよく、ユーザーによって設定不可能になっていてもよい。対応付けモジュール１０６は、選択された製品に関わる（製品開発に従事する）全てのユーザー間で一貫性（整合性）を確保するために、選択されたマッピングをユーザーが保存できるようにする。
【００３３】
次のステップにおいて、ユーザーは、実行プロセスを開始するため、解析ボタンをクリックする（ブロック３０４参照）。マッピングされた特徴とルールのみが実行され、実行が成功した後、出力生成モジュール１１０は、多層構造によってコンプライアンスレベルを提示するための報告（report）を生成する（ブロック３０６参照）。全ての報告は、ユーザーのより深い理解のために、規格コンプライアンスグループ毎にグループ分けされる。コンプライアンス指標バーは、各レベルのコンプライアンスパーセントを提示する。論理グループレベルにおける表示（the representation at the logical group）から、ユーザーは、特定のルールが何回違反されたかを示す個々のルール違反を掘り下げることができる。さらに、ユーザーは、欠陥概要（defects summary）の報告を提供する詳細なリスト（detailed list）を掘り下げることができる。最後のステップにおいて、ソースコードレベルにおける非コンプライアンスレベルが示される。欠陥が存在するソースコードの行は、ハイライトして表示される。この詳細な視覚化（visualization）は、ユーザーに、ルールグループの非コンプライアンスから、コード内の非コンプライアンスへのトレーサビリティ（追跡管理）を提供する。
【００３４】
＜コンピューターシステム＞
図４は、本開示と整合する(consistent with)実施形態を実行するコンピューターシステムのブロック図の１例である。コンピューターシステム４０１の変形を、上述のデバイスおよび／またはモジュールの実行に用いることができる。コンピューターシステム４０１は、中央演算処理部（ＣＰＵまたはプロセッサー）４０２を含んでいる。プロセッサー４０２は、ユーザーまたはシステムで生成された要求を実行する少なくとも１つのデータプロセッサーを含む。ユーザーは、個人、本開示に含まれるようなデバイスを用いる個人、もしくはデバイス自身である。プロセッサー４０２は、統合システム（バス）コントローラー、メモリー管理コントロールユニット、浮動小数点ユニット（floating point units）、画像処理ユニット、デジタル信号処理ユニット等の専門化した処理ユニットを含んでいてもよい。プロセッサー４０２は、ＡＭＤアスロン（AMD Athlon）、ＤｕｒｏｎまたはＯｐｔｅｒｏｎのようなマイクロプロセッサー、ＡＲＭ´ｓアプリケーション（ARM's application）、組み込みまたはセキュアープロセッサー（embedded or secure processor）、ＩＢＭパワーＰＣ（IBM PowerPC）、インテルコア（Intel’s core）、Ｉｔａｎｉｕｍ、Ｘｅｏｎ、Ｃｅｌｅｒｏｎ、またはその他のプロセッサー等を含んでいてもよい。プロセッサー４０２は、メインフレーム、分散プロセッサー（distributed processor）、マルチコア、平行、グリッド、その他の基本概念（architecture）を用いて、実行される。いくつかの実施形態では、ＡＳＩＣｓ（Application-Specific Integrated Circuits）、デジタル信号プロセッサー（DSPs）、ＦＰＧＡｓ（Field Programmable Gate Arrays）等の実装技術が用いられる。
【００３５】
プロセッサー４０２は、Ｉ／Ｏインターフェース４０３を介して、１つ以上の入力／出力（Ｉ／Ｏ）デバイスと通信可能に配置される。Ｉ／Ｏインターフェース４０３は、特に限定されないが、音声、アナログ、デジタル、モノラル、ＲＣＡ、ステレオ、ＩＥＥＥ−１３９４、シリアルバス、ユニバーサルシリアルバス（ＵＳＢ）、赤外線、ＰＳ／２、ＢＮＣ、同軸、コンポーネント、コンポジット、ＤＶＩ（Digital Visual Interface）、ＨＤＭＩ（High-Definition Multimedia Interface）（登録商標）、ＲＦアンテナ、Ｓ−ビデオ、ＶＧＡ、ＩＥＥＥ８０２．１１、ａ／ｂ／ｇ／ｎ／ｘ、ブルートゥース、Ｃｅｌｌｕｌａｒ（例えば、ＣＤＭＡ（Code-Division Multiple Access）、ＨＳＰＡ＋（High-Speed Packet Access）、ＧＳＭ（Global System for Mobile communications）（登録商標）、ＬＴＥ（Long-Term Evolution）、ＷｉＭａｘ等）等の通信プロトコル／方法を採用してもよい。
【００３６】
Ｉ／Ｏインターフェース４０３を用いて、コンピューターシステム４０１は、１つ以上のＩ／Ｏデバイスと通信を取る。例えば、入力デバイス４０４は、アンテナ、キーボード、マウス、ジョイスティック、（赤外線）遠隔コントロール、カメラ、カード読み取り機、ファックス機、ドングル（dongle）、生体読み取り機、マイク、タッチスクリーン、タッチパッド、トラックボール、センサー（例えば、加速度センサー、光センサー、ＧＰＳ、ジャイロスコープ、近接センサー等）、針、スキャナー、保存デバイス、トランシーバー、ビデオデバイス／ソース、バイザー（visors）等である。出力デバイス４０５は、プリンター、ファックス機、ビデオディスプレイ（例えば、ＣＲＴ（Cathode Ray Tube）、液晶ディスプレイ（ＬＣＤ）、ＬＥＤ（Light-Emitting Diode）、プラズマ等）、音声スピーカー等である。いくつかの実施形態では、トランシーバー４０６は、プロセッサー４０２と通信可能に配置されている。トランシーバー４０６は、様々な種類のワイヤレス送信または受信を容易にする。例えば、トランシーバー４０６は、トランシーバーチップ（例えば、テキサスインストゥルメンツＷｉＬｉｎｋ  ＷＬ１２８３、ブロードコム  ＢＣＭ４７５０ＩＵＢ８、インフィネオンテクノロジーズ  Ｘ−Ｇｏｌｄ  ６１８−ＰＭＢ９８００等）に操作可能に接続され、ＩＥＥＥ  ８０２．１１ａ／ｂ／ｇ／ｎ、ブルートゥース、ＦＭ、ＧＰＳ（Global Positioning System）、２Ｇ／３Ｇ  ＨＳＤＰＡ／ＨＳＵＰＡ通信等を提供するアンテナを含む。
【００３７】
いくつかの実施形態では、プロセッサー４０２は、ネットワークインターフェース４０７を介して、通信ネットワーク４０８に通信可能に配置される。ネットワークインターフェース４０７は、通信ネットワーク４０８と通信を取る。ネットワークインターフェース４０７は、特に限定されないが、ダイレクト接続（direct connect）、イーサネット（登録商標）（例えば、twisted pair 10/100/1000 Base T）、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、トークンリング、ＩＥＥＥ  ８０２．１１ａ／ｂ／ｇ／ｎ／ｘ等の通信プロトコルを採用している。通信ネットワーク４０８は、特に限定されないが、ダイレクトインターコネクション（direct interconnection）、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、ワイヤレスネットワーク（例えば、ワイヤレスアプリケーションプロトコルを用いたもの）、インターネット等である。ネットワークインターフェース４０７および通信ネットワーク４０８を用いて、コンピューターシステム４０１は、デバイス４１０、４１１および４１２と通信を取る。これらのデバイスは、特に限定されないが、パーソナルコンピューター、サーバー、ファックス機、プリンター、スキャナー、携帯電話等のモバイル機器、スマートフォン（例えば、アップルアイフォーン、ブラックベリー、アンドロイド系電話等）、タブレットコンピューター、電子書籍リーダー（アマゾン、キンドル、Ｎｏｏｋ等）、ラップトップコンピューター、ノート型コンピューター、ゲームコンソール（マイクロソフトＸｂｏｘ、任天堂ＤＳ、ソニープレイステーション等）等である。いくつかの実施形態では、コンピューターシステム４０１は、それ自身が、１つ以上のデバイスを統合している。
【００３８】
いくつかの実施形態では、プロセッサー４０２は、保存インターフェース４１２を介して、１つ以上のメモリーデバイス（例えば、ＲＡＭ４１３、ＲＯＭ４１４等）と通信可能に配置されている。保存インターフェース４１２は、特に限定されないが、ＳＡＴＡ（Serial Advanced Technology Attachment）、ＩＤＥ（Integrated Drive Electronics）、ＩＥＥＥ−１３９４、ＵＳＢ（Universal Serial Bus）、ファイバーチャンネル、ＳＣＳＩ（Small Computer Systems Interface）等の接続プロトコルを採用するメモリーデバイス、リムーバブルディスクドライブ等のメモリーデバイスに接続されている。メモリーデバイスは、ドラム、磁気ディスクドライブ、磁気光学ドライブ、光学ドライブ、ＲＡＩＤ（Redundant Array of Independent Discs）、固体メモリーデバイス、固体ドリブ等を含む。
【００３９】
メモリーデバイスは、特に限定されないが、オペレーティングシステム４１６、ユーザーインターフェース（アプリケーション）４１７、ウェブブラウザー４１８、メールサーバー４１９、メールクライアント４２０、ユーザー／アプリケーションデータ４２１（例えば、本開示で議論された任意のデータ変数またはデータ記録）等のプログラムまたはデータベースコンポーネントの一群を保存している。オペレーティングシステム４１６は、コンピューターシステムの操作およびリソース管理を容易にする。オペレーティングシステム４１６の例としては、特に限定されないが、アップルマッキントッシュＯＳ  Ｘ、Ｕｎｉｘ（登録商標）、Ｕｎｉｘ（登録商標）のようなシステム分散（例えば、ＢＳＤ（Berkeley Software Distribution）、ＦｒｅｅＢＳＤ、ＮｅｔＢＳＤ、ＯｐｅｎＢＳＤ等）、Ｌｉｎｕｘ分散（例えば、Ｒｅｄ  Ｈａｔ、Ｕｂｕｎｔｕ、Ｋｕｂｕｎｔｕ等）、ＩＢＭ  ＯＳ／２、マイクロソフトウィンドウズ（登録商標）（ＸＰ、Ｖｉｓｔａ／７／８等）、アップルｉＯＳ、グーグルアンドロイド、ブラックベリーＯＳ等である。ユーザーインターフェース４１７は、テキストまたは画像ファシリティーを介して、プログラムコンポーネントの実行、操作、インタラクション、実施、表示を容易にする。例えば、ユーザーインターフェース４１７は、カーソル、アイコン、チェックボックス、メニュー、スクローラー、ウィンドウ、ウィジェット（widget）等のコンピューターシステム４０１に操作可能に接続された表示システム上のコンピューター相互インターフェース要素である。ＧＵＩｓ（Graphical User Interfaces）は、特に限定されないが、アップルマッキントッシュオペレーティングシステムＡｑｕａ、ＩＢＭ  ＯＳ／２、マイクロソフトウィンドウズ（登録商標）（例えば、Aero, Metro等）、Ｕｎｉｘ  Ｘ−Ｗｉｎｄｏｗｓ、ウェブインターフェースライブラリ（例えば、ＡｃｔｉｖｅＸ、Ｊａｖａ（登録商標）、Ｊａｖａｓｃｒｉｐｔ（登録商標）、ＡＪＡＸ、ＨＴＭＬ、Ａｄｏｂｅフラッシュ等）等に採用されている。
【００４０】
いくつかの実施形態では、コンピューターシステム４０１は、プログラムコンポーネントに保存されているウェブブラウザー４１８を実行する。ウェブブラウザー４１８は、マイクロソフトＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、グーグルＣｈｒｏｍｅ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、アップルＳａｆａｒｉ等のハイパーテキスト表示アプリケーションである。安全なウェブブラウザーは、ＨＴＴＰＳ（Secure Hypertext Transport Protocol）、ＳＳＬ（Secure Sockets Layer）、ＴＬＳ（Transport Layer Security）等を用いて提供される。ウェブブラウザー４１８は、ＡＪＡＸ、ＤＨＴＭＬ、アドビＦｌａｓｈ、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｊａｖａ（登録商標）、ＡＰＩｓ（Application programming Interfaces）等のファシリティーを利用する。いくつかの実施形態では、コンピューターシステム４０１は、プログラムコンポーネントに保存されているメールサーバー４１９を実行する。メールサーバー４１９は、マイクロソフトＥｘｈａｎｇｅ等のインターネットメールサーバーである。メールサーバー４１９は、ＡＳＰ、ＡｃｔｉｖｅＸ、ＡＮＳＩ  Ｃ＋＋／Ｃ＃、マイクロソフト．Ｎｅｔ、ＣＧＩスクリプト、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＰＥＲＬ、ＰＨＰ、Ｐｙｔｈｏｎ、ＷｅｂＯｂｊｅｃｔｓ等のファシリティーを利用する。メールサーバー４１９は、ＩＭＡＰ（Internet Message Access Protocol）、ＭＡＰＩ（Messaging Application Programming Interface）、マイクロソフトＥｘｃｈａｎｇｅ、ＰＯＰ（Post Office Protocol）、ＳＭＴＰ（Simple Mail Transfer Protocol）等の通信プロトコルを利用する。いくつかの実施形態では、コンピューターシステム４０１は、プログラムコンポーネント内に保存されているメールクライアント４２０を実行する。メールクライアント４２０は、アップルメール、マイクロソフトＥｎｔｏｕｒａｇｅ、マイクロソフトＯｕｔｌｏｏｋ、Ｍｏｚｉｌｌａ  Ｔｈｕｎｄｅｒｂｉｒｄ等のメール閲覧アプリケーションである。
【００４１】
いくつかの実施形態では、コンピューターシステム４０１は、本開示で説明したようなデータ、変数、記録、モジュール等のユーザー／アプリケーションデータ４２１を保存する。このようなデータベースは、フォールトトレラント（fault-tolerant）で、相関的で（relational）、拡張可能で（scalable）、安全な、ＯｒａｃｌｅやＳｙｂａｓｅ等のデータベース等である。また、このようなデータベースは、アレイ、ハッシュ、リンクリスト、構造体、構造化テキストファイル（例えば、ＸＭＬ）、テーブル等の規格化されたデータ構造やオブジェクト指向ベータベース（例えば、ＯｂｊｅｃｔＳｔｏｒｅ、Ｐｏｅｔ、Ｚｏｐｅ等）を用いて実行される。このようなデータベースは、集約され（consolidated）、または上述の様々なコンピューターシステム間で配布される。任意のコンピューターまたはデータベースコンポーネントの動作および構造は、組み合わせ可能であり、集約可能であり、どのような実際の組み合わせ例に対しても配布可能であることは理解されるところであろう。
【００４２】
本明細書は、ソフトウェアアプリケーションのコンプライアンス検査および詳細な解析を提供するためのシステムおよび方法について述べた。図示されたステップは、図示の好ましい実施形態を説明するために用意されたものであり、進行している技術の発展は、特定の機能が実行される方法を変化させうることは予期されるであろう。これらの例は、図示する目的で存在しており、限定ではない。さらに、機能的に組み立てられたブロックの境界は、特定の機能およびそれらの関係が適切に実行される限り、任意に定義する事ができる。代替的な境界は、特定の機能およびそれらの関係が適切に実行される限り、定義することができる。関連のある分野における当業者にとって、ここで開示された技術に基づいて、代替手段（ここで述べられたものの同等物、拡張物、バリエーション、偏差等）は、明らかであろう。このような代替手段は、開示された実施例の範囲および考え方の範囲内である。また、特徴を図示している本発明の複数の実施形態が説明される。明細書中、「構成する」、「有する」、「含む」、「備える」およびそれらの他の形式は、同等な意味であり、ある事項またはこれらの文言のいずれか１つに続く事項はそのような事項の包括的なリストであるような意味ではなく、また、列挙された事項のみに限定されるという意味ではない。また、明細書および添付の請求項において使用されるように、単数形“a”、“an”、“the”は、文脈が明確に示していなければ、複数形も含むことに注意しなければならない。
【００４３】
さらに加えて、１つ以上のコンピューター読み取り可能保存メディア（non-transitory computer-readable storage media）を、本発明と矛盾のない実施形態の実装において、利用することができる。コンピューター読み取り可能保存メディアは、情報やデータがプロセッサーによって読み出せるように保存されている任意のタイプの物理メモリーである。したがって、コンピューター読み取り可能保存メディアは、１つ以上のプロセッサーによる実行されるインストラクションを保存しており、ここで述べた実施形態と矛盾のないステップやステージをプロセッサーに実行させるようなインストラクションを含む。用語“コンピューター読み取り可能媒体（computer-readable medium）”は、具体的な物品を含み、搬送波および過渡信号を含まないこと、すなわち、非一時的（non-transitory）であることは理解されるであろう。例として、ランダムアクセスメモリー（ＲＡＭ）、リードオンリーメモリー（ＲＯＭ）、揮発性メモリー、不揮発性メモリー、ハードドライブ、ＣＤＲＯＭ、ＤＶＤ、フラッシュドライブ、ディスク、およびその他既知の物路保存メディアが挙げられる。
【００４４】
本開示および実施例は例示として説明されたものであって、本実施形態の真の範囲および考え方は、以下の特許請求の範囲によって表される。
【図１】
2014089704.tif 000003
【図２】
2014089704.tif 000004
【図３】
2014089704.tif 000005
【図４】
2014089704.tif 000006
【外国語明細書】
SYSTEM AND METHOD TO PROVIDE COMPLIANCE SCRUTINY AND IN-DEPTH ANALYSIS OF A SOFTWARE APPLICATION
TECHNICAL FIELD
[001]  The present disclosure in general relates to a software compliance analysis and in particular to a system and method to provide compliance scrutiny and in-depth analysis of a software application.
BACKGROUND
[002]  In today’s world every enterprise or industry implements software applications or tools for automation of manufacturing, production or any other business process. To ensure that the principles involved in quality assurance of the software application or tool like, ‘Fit for Purpose’ and ‘First time Right’ are complied or not, a software quality audit is a necessity. 
[003]  In order to compute the quality level of software application, various standards have been defined such as ISO standards of different criticality levels. Software standard specifications define various rules to be complied with by a software application. There are various systems available in the markets that are configured to monitor the compliance of a software application and calculate their compliance level.
[004]  Various compliance monitoring and analysis tools exist in the market that compare the compliance standard specifications to calculate the overall compliance level of the software application under test. The software standard specifications are complex in nature and thus understanding them is difficult for a software developer. Also, manually mapping these specifications with various features of a software tool is tedious and time-consuming. In order to calculate the overall compliance level of a software application each developer using the tool should follow the same standard specifications. Thus, the mapping of the features should be uniform throughout the software tool in order to ensure consistency across a team. The existing software compliance monitoring and analysis tools calculate and visually represent the compliance level at the tool level.
SUMMARY
[005]  The present disclosure provides an integrated system providing compliance scrutiny and analysis of a software application, result of said analysis visually represented to demonstrate in- depth traceability. In one embodiment, a software compliance analysis system is disclosed, comprising: a processor; and a memory storing processor-executable instructions, the instructions comprising: a selection module configured to allow a user to select one or more industry compliance standards with respect to a particular safety level; an execution module configured to initiate a compliance verification process for a software application with respect to one or more normative parameters associated with the safety level; a mapping module configured to map the selected compliance standards with features of one or more analysis tools; an analytics engine configured to analyze the mapped features of the one or more analysis tools to calculate a compliance level for the software application; and an output generation module configured to visually represent compliance of the software application in a multi-stage manner providing one or more suggestive measures to meet a desired compliance level.
[006]  The present disclosure also provides a method providing compliance scrutiny and analysis of a software application, result of said analysis visually represented to demonstrate in-depth traceability. In one embodiment, a software compliance analysis method is disclosed, comprising: allowing a user to select one or more industry compliance standards with respect to a particular  safety level; initiating a compliance verification process for the software application with respect to one or more normative parameters associated with the safety level; mapping  the selected compliance standards with features of one or more analysis tools; analyzing only the mapped features of the one or more analysis tools to calculate a compliance level for the software application; and visually representing compliance of the software application in a multi-stage manner providing one or more suggestive measures to meet a desired compliance level.
[007]  The present disclosure also provides a computer program product, with embedded set of instructions, for determining a compliance level with respect to a software quality certification. In one embodiment, a non-transitory computer-readable medium is disclosed, storing computer-executable instructions, the instructions comprising instructions for: a user interface configured to receive a selection from a user of one or more industry compliance standards with respect to a particular safety level; a compliance level determination module configured to execute a mapping of the selected compliance standards with features of one or more analysis tools; a display module configured to visually represent a compliance level of said software application in a multi-layer manner, such that each layer corresponds to the mapping, the display module further configured to display suggestive measures to the user for each rule violation to meet a desired compliance level.
BRIEF DESCRIPTION OF DRAWINGS
[008]  FIG.1 illustrates the architecture of an integrated system providing compliance scrutiny and analysis of a software application in accordance with an embodiment of the disclosure.
[009]  FIG.2 illustrates the architecture of the output generation module providing detailed visual representation of compliance verification in accordance with an embodiment of the disclosure.
[010]  FIG.3 illustrates the detailed visualization of the compliance level in a multi-stage manner in accordance with an exemplary embodiment of the disclosure.
[011]  FIG.4 is a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.
DETAILED DESCRIPTION
[012]  Some embodiments of this disclosure, illustrating its features, will now be discussed. The words “comprising”, “having”, “containing”, and “including”, and other forms thereof, are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items.
[013]  It must also be noted that as used herein and in the appended claims, the singular forms “a”, “an”, and “the” include plural references unless the context clearly dictates otherwise. Although any systems, methods, apparatuses, and devices similar or equivalent to those described herein can be used in the practice or testing of embodiments of the present disclosure, the preferred, systems and parts are now described. In the following description for the purpose of explanation and understanding reference has been made to numerous embodiments for which the intent is not to limit the scope of the disclosure.
[014]  One or more components of the disclosure are described as modules for the understanding of the specification. For example, a module may include self-contained component in a hardware circuit comprising of logical gate, semiconductor device, integrated circuits or any other discrete component. The module may also be a part of any software program executed by any hardware entity for example processor. The implementation of module as a software program may include a set of logical instructions to be executed by the processor or any other hardware entity. Further a module may be incorporated with the set of instructions or a program by means of an interface. 
[015]  The disclosed embodiments are merely exemplary of the disclosure, which may be embodied in various forms. The present disclosure relates to an integrated system and method for compliance scrutiny and analysis of a software application. The results associated with compliance verification may be visually represented in order to demonstrate in-depth traceability of compliance level achieved by a particular software application. The system performs compliance verification of the application through features of the one or more analysis tools on selection of the compliance standard by the user. By way of a specific example, the analysis tool may include but is not limited to static analysis tools, static verification tool, test data generation, coverage analysis tool, coding standards compliance checker tool, or a combination thereof. The features of the analysis tool may be pre-mapped to the standard specifications and only these pre-mapped features may be further analyzed. The results of said analysis may be visually represented to showcase the compliance level in a multi-stage manner.
[016]  In accordance with an embodiment, referring to FIG. 1, the system (100) comprises of a selection module (102) which may be configured to allow a user to select one or more compliance standards pertinent to one or more industry. The system (100) further comprises of an execution module (104) which may be configured to initiate a process of compliance verification of said software application under test based on pre-defined mapping. The execution module (104) further comprises of a mapping module (106) and an analytics engine (108). The system (100) further comprises of an output generation module (110) to visually represent the results of the analytics engine to showcase the compliance of the software application in a multi-stage manner.
[017]  In accordance with an embodiment, still referring to FIG. 1, the selection module (102) may be configured to allow a user to select one or more compliance standards pertinent to one or more industry with respect to a particular safety level. The compliance standards applicable to any industry or an application may be different and therefore it may be necessary to select the appropriate compliance standards in order to perform an objective based compliance verification of the software application. The objective based compliance verification thus takes into consideration the choice of the user in the compliance level which he desires to achieve. The compliance standards available to check software quality compliance may include but is not limited to ISO26262. The selected compliance standards may have a safety criticality level, for e.g. ASIL (A/B/C/D) for ISO26262.  Thus the user may be given an option of choosing from the existing ASIL safety criticality levels to perform the compliance verification.
[018]  The selected safety criticality level may be further grouped according to different standard specification (herein after referred to as ‘rule group’) which is to be complied with by the software application. By way of a specific example, ISO26262-ASIL Level D consists of rule groups such as Enforce Low Complexity, Semantic Code Analysis, Use Language Subsets, Enforce Strong Typing, No Implicit Type Conversions, Single Entry and Exit Point, Use Design Principles, Variables Initialisation, No Multiple Variable Names, Use Defensive Implementation, No Recursions, MC/DC, Analysis of Boundary Values, Static Code Analysis. The rule group level specification further comprises of various rules. In accordance with the safety criticality level selected by the user the rules to be complied with can be categorized as mandatory rules, optional rules and suggested rules. The mandatory rules may be assigned the highest weight of 3, suggested (recommended) rules may carry a weight of 2, and optional rules assigned a weight of 1.
[019]  Still referring to FIG. 1, the execution module (104) may be configured to initiate a process of compliance verification of said software application with respect to one or more normative parameters associated with said safety level. The normative parameters may be the standard specifications and the rules to comply with by the software application. The execution module (104) further comprises of a mapping module (106) which may be configured to provide for pre-defined mapping of selected compliance standards with corresponding features of one or more analysis tool in order to perform compliance verification of the software application. These features may be then executed to analyze the software application under testing for calculating compliance standards. The mapping module (106) executes the pre-defined mapping in a manner such that mandatory rules may be pre-selected and may be non-configurable. The mapping module (106) may be further configured to provide the selection of optional or suggested rules by the user for further mapping. The mapping module (106) further comprises of a storage medium configured to save the pre-defined mapping for consistency across all the users of the tool. This selected configuration which can be saved using the mapping module (106) ensures uniformity in compliance check across all the users. The pre-defined mapping avoids the effort and confusion of mapping. The pre-defined mapping also absorbs the inherent complexity in the standard specifications and thus helps the users in understanding them. Also, as the time invested in understanding the complex standard specifications may be saved, the efficiency of the system increases resulting in faster execution. The mapping may be domain specific and thus the user gets custom fit framework wherein the automotive users can perform only auto-compliance checks. 
[020]  The execution module (106) further comprises of an analytics engine (108) which may be configured to analyze only the pre-mapped features of the analysis tool(s) to calculate a compliance level for said software application. Internally, the selected rules may be mapped to the features of various analysis tools and only those features may be executed from one or more tools. The analytics engine (108) further identifies a number of rules violated with respect to total number of rules to calculate the compliance level for said software application.
[021]  By way of a specific example, let us understand the calculation of compliance level:
[022]  Generally Quality Standards Provide the various compliance suggestions e.g. from ISO26262
”++” The method may be highly recommended for this ASIL. (Mandatory) 
“+“ The method may be recommended for this ASIL. (Recommended) 
“o“ The method has no recommendation for or against its usage for this ASIL (Optional). 
[023]  So there may be three levels, and the highest recommendation will carry weight 3 and optional will carry weight of 1.
Mt  = Total no. of Mandatory
Mv = No. of Mandatory Rules violated
Rt = Total no. of Recommended Rules
Rv = No. of Recommended Rules violated
Ot = Selected total no. of Optional Rules
Ov = No. of selected Optional Rules violated
Mw = 3  (Weight for Mandatory Rules)
Rw = 2  (Weight for Recommended Rules)
Ow = 1  (Weight for Optional Rules)
2014089704.tif 000007
% Compliance Level = 100 - % Non-compliance Level
[024]  Compliance levels may be calculated at module as well as at complete level.
[025]  Still referring to FIG. 1, the system (100) further comprises of an output generation module (110) which may be configured to visually represent results of the analytics engine to showcase the compliance of the software application in a multi-stage manner. The mining approach maps the compliance specifications / rules to the non-compliance / violation in the source code in staged manner. This helps to look at the non-compliance from various perspectives such as Rule / specification group level, rule / specification level, recommendation level and file level. The multi-stage manner may be determined through a result mining approach to provide one or more suggestive measures in order to meet a desired compliance level. The multi-stage manner provides in-depth traceability which includes but is not limited to visualization from the compliance grouping to the individual rule violations, from the individual rule violations to the detailed listing and from the detailed listing to a source code.
[026]  Referring to FIG. 2, the output generation module further comprises of a reporting module (202) configured to generate reports in one or more groups according to standard compliance grouping. The output generation module further includes a display module (204) configured to visually represent the results by means of a compliance indication bar. The compliance indicator bar color helps in identifying the percent compliance at each group level. When any mandatory requirement is not met, the compliance indicator bar may be red in color though the compliance percent may be high. When all the mandatory requirements are met and compliance level is greater than or equal to 85% then the compliance indicator bar shows in green color. When all the mandatory requirements are met and compliance level is less than 85% then the compliance indicator bar shows in orange color.
[027]  The present disclosure also relates to a computer program product, with embedded set of instructions, for determining a compliance level with respect to a software application quality certification. The computer program product comprises of a user interface which may be coupled to a processor. The user interface may be configured to receive one or more compliance standards selected by a user for the quality certification of said software application, pertinent to one or more industry with respect to a particular safety level. 
[028]  The computer program product further comprises of a compliance level determination module which may be communicatively coupled to said user interface. The compliance level determination module may be configured to execute a pre-defined mapping of user selected compliance standards with corresponding features of one or more analysis  tools in order to provide the user, a compliance level for said software application.
[029]  In addition, the computer program product comprises of a display module which may be configured to visually represent the compliance level of said software application in a multi-layer manner, such that each layer corresponds to a said pre-defined mapping. The display module may be further configured to display suggestive measures to the user for each rule violation in order to meet a desired compliance level. The reporting module may be further configured to generate reports in one or more groups according to standard compliance grouping and visually represent the results by means of a compliance indication bar.
[030]  The system and method illustrated to provide compliance scrutiny and analysis of a software application may be illustrated by working example stated in the following paragraph; the process is not restricted to the said example only.
[031]  Referring to FIG. 3 in particular and other figures showing system architecture, let us consider a software application / project for which the software compliance verification has to be conducted for ISO26262. The safety criticality level to be selected may be ASIL-Level D. The user selects ISO26262-ASIL Level D through the selection module (102). On the selection of the standard specification, the mapping module (104) internally maps the features of the project with the individual rules (as shown in block 302) of rule group of ASIL level D. ISO26262-ASIL Level D consists of rule groups such as Enforce Low Complexity, Semantic Code Analysis, Use Language Subsets, Enforce Strong Typing, No Implicit Type Conversions, Single Entry and Exit Point, Use Design Principles, Variables Initialisation, No Multiple Variable Names, Use Defensive Implementation, No Recursions, MC/DC, Analysis of Boundary Values, Static Code Analysis.
[032]  When the rule group, Enforce Low Complexity is selected, the rules in said group may be already mapped. As the ISO recommendation for ASIL-level D may be high all the rules mapped may be mandatory which carry the highest weight. These mandatory rules may be pre-selected and cannot be configured by the user. The mapping module (104) allows the user to save this selected mapping in order to ensure consistency across all the users working on the selected project.
[033]  In the next step, the user clicks on the Analyze button to start the execution process (as shown in block 304). Only the mapped features and the rules may be executed and after the successful execution the output generation module (110) generates reports in order to showcase the compliance in a multi-stage manner (as shown in block 306). All the reports may be grouped as per the standard compliance grouping for better understanding of the user. The compliance indicator bar showcases the percent compliance at each level. From the representation at the logical group level, the user can drill down to the individual rule violations which depicts how many times that particular rule has been violated.  Further, the user can drill down to the detailed listing which gives a report of the defects summary. In the last step, the non-compliance at the level of the source code is depicted, wherein the line of the source code in which defect is present is highlighted. The detailed visualization provides the user with traceability from the non-compliance in rule group to the non-compliance in the code.
Computer System
[034]  FIG. 4 is a block diagram of an exemplary computer system for implementing embodiments consistent with the present disclosure.  Variations of computer system 401 may be used for implementing the devices and/or modules described above.  Computer system 401 may comprise a central processing unit (“CPU” or “processor”) 402.  Processor 402 may comprise at least one data processor for executing program components for executing user- or system-generated requests.  A user may include a person, a person using a device such as those included in this disclosure, or such a device itself.  The processor may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc.  The processor may include a microprocessor, such as AMD Athlon, Duron or Opteron, ARM’s application, embedded or secure processors, IBM PowerPC, Intel’s Core, Itanium, Xeon, Celeron or other line of processors, etc.  The processor 402 may be implemented using mainframe, distributed processor, multi-core, parallel, grid, or other architectures.  Some embodiments may utilize embedded technologies like application-specific integrated circuits (ASICs), digital signal processors (DSPs), Field Programmable Gate Arrays (FPGAs), etc.
[035]  Processor 402 may be disposed in communication with one or more input/output (I/O) devices via I/O interface 403.  The I/O interface 403 may employ communication protocols/methods such as, without limitation, audio, analog, digital, mono aural, RCA, stereo, IEEE-1394, serial bus, universal serial bus (USB), infrared, PS/2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMI), RF antennas, S-Video, VGA, IEEE 802.11 a/b/g/n/x, Bluetooth, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-term evolution (LTE), WiMax, or the like), etc.
[036]  Using the I/O interface 403, the computer system 401 may communicate with one or more I/O devices.  For example, the input device 404 may be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, sensor (e.g., accelerometer, light sensor, GPS, gyroscope, proximity sensor, or the like), stylus, scanner, storage device, transceiver, video device/source, visors, etc.  Output device 405 may be a printer, fax machine, video display (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma, or the like), audio speaker, etc.  In some embodiments, a transceiver 406 may be disposed in connection with the processor 402.  The transceiver may facilitate various types of wireless transmission or reception.  For example, the transceiver may include an antenna operatively connected to a transceiver chip (e.g., Texas Instruments WiLink WL1283, Broadcom BCM4750IUB8, Infineon Technologies X-Gold 618-PMB9800, or the like), providing IEEE 802.11a/b/g/n, Bluetooth, FM, global positioning system (GPS), 2G/3G HSDPA/HSUPA communications, etc.
[037]  In some embodiments, the processor 402 may be disposed in communication with a communication network 408 via a network interface 407.  The network interface 407 may communicate with the communication network 408.  The network interface may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10/100/1000 Base T), transmission control protocol/internet protocol (TCP/IP), token ring, IEEE 802.11a/b/g/n/x, etc.  The communication network 408 may include, without limitation, a direct interconnection, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the Internet, etc.  Using the network interface 407 and the communication network 408, the computer system 401 may communicate with devices 410, 411, and 412.  These devices may include, without limitation, personal computer(s), server(s), fax machines, printers, scanners, various mobile devices such as cellular telephones, smartphones (e.g., Apple iPhone, Blackberry, Android-based phones, etc.), tablet computers, eBook readers (Amazon Kindle, Nook, etc.), laptop computers, notebooks, gaming consoles (Microsoft Xbox, Nintendo DS, Sony PlayStation, etc.), or the like.  In some embodiments, the computer system 401 may itself embody one or more of these devices.
[038]  In some embodiments, the processor 402 may be disposed in communication with one or more memory devices (e.g., RAM 413, ROM 414, etc.) via a storage interface 412.  The storage interface may connect to memory devices including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as serial advanced technology attachment (SATA), integrated drive electronics (IDE), IEEE-1394, universal serial bus (USB), fiber channel, small computer systems interface (SCSI), etc.  The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, redundant array of independent discs (RAID), solid-state memory devices, solid-state drives, etc.
[039]  The memory devices may store a collection of program or database components, including, without limitation, an operating system 416, user interface application 417, web browser 418, mail server 419, mail client 420, user/application data 421 (e.g., any data variables or data records discussed in this disclosure), etc.  The operating system 416 may facilitate resource management and operation of the computer system 401.  Examples of operating systems include, without limitation, Apple Macintosh OS X, Unix, Unix-like system distributions (e.g., Berkeley Software Distribution (BSD), FreeBSD, NetBSD, OpenBSD, etc.), Linux distributions (e.g., Red Hat, Ubuntu, Kubuntu, etc.), IBM OS/2, Microsoft Windows (XP, Vista/7/8, etc.), Apple iOS, Google Android, Blackberry OS, or the like.  User interface 417 may facilitate display, execution, interaction, manipulation, or operation of program components through textual or graphical facilities.  For example, user interfaces may provide computer interaction interface elements on a display system operatively connected to the computer system 401, such as cursors, icons, check boxes, menus, scrollers, windows, widgets, etc.  Graphical user interfaces (GUIs) may be employed, including, without limitation, Apple Macintosh operating systems’ Aqua, IBM OS/2, Microsoft Windows (e.g., Aero, Metro, etc.), Unix X-Windows, web interface libraries (e.g., ActiveX, Java, Javascript, AJAX, HTML, Adobe Flash, etc.), or the like.
[040]  In some embodiments, the computer system 401 may implement a web browser 418 stored program component.  The web browser may be a hypertext viewing application, such as Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Apple Safari, etc.  Secure web browsing may be provided using HTTPS (secure hypertext transport protocol), secure sockets layer (SSL), Transport Layer Security (TLS), etc.  Web browsers may utilize facilities such as AJAX, DHTML, Adobe Flash, JavaScript, Java, application programming interfaces (APIs), etc.  In some embodiments, the computer system 401 may implement a mail server 419 stored program component.  The mail server may be an Internet mail server such as Microsoft Exchange, or the like.  The mail server may utilize facilities such as ASP, ActiveX, ANSI C++/C#, Microsoft .NET, CGI scripts, Java, JavaScript, PERL, PHP, Python, WebObjects, etc.  The mail server may utilize communication protocols such as internet message access protocol (IMAP), messaging application programming interface (MAPI), Microsoft Exchange, post office protocol (POP), simple mail transfer protocol (SMTP), or the like.  In some embodiments, the computer system 401 may implement a mail client 420 stored program component.  The mail client may be a mail viewing application, such as Apple Mail, Microsoft Entourage, Microsoft Outlook, Mozilla Thunderbird, etc.
[041]  In some embodiments, computer system 401 may store user/application data 421, such as the data, variables, records, modules, etc. as described in this disclosure.  Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle or Sybase.  Alternatively, such databases may be implemented using standardized data structures, such as an array, hash, linked list, struct, structured text file (e.g., XML), table, or as object-oriented databases (e.g., using ObjectStore, Poet, Zope, etc.).  Such databases may be consolidated or distributed, sometimes among the various computer systems discussed above in this disclosure. It is to be understood that the structure and operation of any computer or database component may be combined, consolidated, or distributed in any working combination.
[042]  The specification has described a system and method to provide compliance scrutiny and in-depth analysis of a software application.  The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed.  These examples are presented herein for purposes of illustration, and not limitation.  Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description.  Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.  Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.  Such alternatives fall within the scope and spirit of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,”“an,” and “the” include plural references unless the context clearly dictates otherwise.
[043]  Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored.  Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., be non-transitory.  Examples include random access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs, flash drives, disks, and any other known physical storage media.
[044]  It is intended that the disclosure and examples be considered as exemplary only, with a true scope and spirit of disclosed embodiments being indicated by the following claims.
WE CLAIM:
1. A software compliance analysis system, comprising:
a processor; and
a memory storing processor-executable instructions, the instructions comprising:
a selection module configured to allow a user to select one or more industry compliance standards with respect to a particular safety level; 
an execution module configured to initiate a compliance verification process for a software application with respect to one or more normative parameters associated with the safety level;
a mapping module configured to map the selected compliance standards with features of one or more analysis tools;
an analytics engine configured to analyze the mapped features of the one or more analysis tools to calculate a compliance level for the software application; and
an output generation module configured to visually represent compliance of the software application in a multi-stage manner providing one or more suggestive measures to meet a desired compliance level.
2. The system as claimed in claim 1, wherein the mapping module is configured for executing the mapping in a manner such that mandatory rules are pre-selected and are non-configurable.
3. The system as claimed in claim 1, wherein the mapping module is further configured to provide a selection of optional or suggested rules by the user for further mapping.
4. The system as claimed in claim 1, wherein the mapping module is further configured to save the mapping for consistency across all the users of the tool.
5. The system as claimed in claim 1, wherein the analytics engine is further configured to identify a number of rules violated with respect to total number of rules to calculate the compliance level.
6. The system as claimed in claim 1, wherein the instructions further comprises a reporting module configured to generate reports in one or more groups according to standard compliance grouping.
7. The system as claimed in claim 1, wherein the output generation module is configured to provide visualizations regarding compliance grouping, individual rule violations, and source code.
8. The system as claimed in claim 1, wherein the output generation module is configured to visually represent the results via a compliance indication bar.
9. A software compliance analysis method, comprising:
allowing a user to select one or more industry compliance standards with respect to a particular  safety level;
initiating a compliance verification process for the software application with respect to one or more normative parameters associated with the safety level;
mapping the selected compliance standards with features of one or more analysis tools;
analyzing only the mapped features of the one or more analysis tools to calculate a compliance level for the software application; and
visually representing compliance of the software application in a multi-stage manner providing one or more suggestive measures to meet a desired compliance level.
10. The method as claimed in claim 9, wherein the mapping is executed in a manner such that mandatory rules are pre-selected and are non-configurable.
11. The method as claimed in claim 9, wherein the mapping further provides a selection of optional or suggested rules by the user for further mapping.
12. The method as claimed in claim 9, further comprising:
saving the mapping for consistency across all the users of the tool.
13. The method as claimed in claim 9, wherein the analyzing further comprises:
identifying a number of rules violated with respect to total number of rules to calculate the compliance level.
14. The method as claimed in claim 9, wherein the reports are generated in one or more groups according to standard compliance grouping.
15. The method as claimed in claim 9, wherein the visually representing provides visualizations regarding compliance grouping, individual rule violations, and source code.
16. The method as claimed in claim 9, wherein the results are visually represented via a compliance indication bar.
17. A non-transitory computer-readable medium storing computer-executable instructions, the instructions comprising instructions for:
a user interface configured to receive a selection from a user of one or more industry compliance standards with respect to a particular safety level;
a compliance level determination module configured to execute a mapping of the selected compliance standards with features of one or more analysis tools;
a display module configured to visually represent a compliance level of said software application in a multi-layer manner, such that each layer corresponds to the mapping, the display module further configured to display suggestive measures to the user for each rule violation to meet a desired compliance level.
18. The computer program product as claimed in claim 17, wherein the display module is further configured to generate reports in one or more groups according to standard compliance grouping.
19. The computer program product as claimed in claim 17, wherein the display module is further configured to visually represent the results via a compliance indication bar.
ABSTRACT
The present disclosure in general relates to a software compliance analysis and in particular to a system and method to provide compliance scrutiny and in-depth analysis of a software application. In one embodiment, a software compliance analysis method is disclosed, comprising: allowing a user to select one or more industry compliance standards with respect to a particular  safety level; initiating a compliance verification process for the software application with respect to one or more normative parameters associated with the safety level; mapping the selected compliance standards with features of one or more analysis tools; analyzing only the mapped features of the one or more analysis tools to calculate a compliance level for the software application; and visually representing compliance of the software application in a multi-stage manner providing one or more suggestive measures to meet a desired compliance level.
【図１】
2014089704.tif 000008
【図２】
2014089704.tif 000009
【図３】
2014089704.tif 000010
【図４】
2014089704.tif 000011