JP2008225519A - 静的解析システム、サーバ、静的解析方法及びプログラム - Google Patents
静的解析システム、サーバ、静的解析方法及びプログラム Download PDFInfo
- Publication number
- JP2008225519A JP2008225519A JP2007058250A JP2007058250A JP2008225519A JP 2008225519 A JP2008225519 A JP 2008225519A JP 2007058250 A JP2007058250 A JP 2007058250A JP 2007058250 A JP2007058250 A JP 2007058250A JP 2008225519 A JP2008225519 A JP 2008225519A
- Authority
- JP
- Japan
- Prior art keywords
- analysis
- source code
- server
- static analysis
- client
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】クライアントの負荷を抑制し、静的解析の結果を編集中のソースコードに反映することができ、解析ルールの管理が容易な静的解析システムを提供する。
【解決手段】複数のソースコードにまたがる静的解析において、静的解析時に必要な全てのソースコードの解析を行うのではなく、事前に静的解析可能なサーバのバージョン管理ツールなどで管理されているコミット済みのソースコードに対して、サーバにおいて事前処理として解析を実施し、実際の解析時には、サーバにおいてこの事前処理の結果に基づいて静的解析を実施する。
【選択図】図1
【解決手段】複数のソースコードにまたがる静的解析において、静的解析時に必要な全てのソースコードの解析を行うのではなく、事前に静的解析可能なサーバのバージョン管理ツールなどで管理されているコミット済みのソースコードに対して、サーバにおいて事前処理として解析を実施し、実際の解析時には、サーバにおいてこの事前処理の結果に基づいて静的解析を実施する。
【選択図】図1
Description
本発明は、ソースコードの静的解析を行う静的解析システム、サーバ、静的解析方法及びプログラムに関するものである。
従来のソースコード静的解析システムの一例が、特許文献1(特開2004−240477号公報)に記載されている。従来のソースコード静的解析システムは、特許文献1のようなサーバに静的解析の手段を集約して実施する方式と、各クライアント(開発環境)においてそれぞれ静的解析の手段を有する方式とがある。
サーバに集約する方式では、ルールを一元管理できる点や、クライアントに負荷をかけずに静的解析を実施できる点、静的解析の結果を管理しやすい点、バッチ処理によって定期的に静的解析処理を行えばよいため、より負荷の高い処理を実施可能な点などの利点がある。
一方、各クライアントにおいて静的解析を実施する方式では、編集中のソースコードに対して適宜静的解析を実施でき、開発中のソースコードにその問題箇所を表示することなどができるため、開発者が利用しやすいという利点がある。
特開2004−240477号公報 15頁、図1
しかし、従来のソースコード静的解析システムには以下のような問題点があった。
すなわち、サーバで実施する場合には、通常定期的なバッチ処理で実施されるため、クライアントで編集中のソースコードと静的解析実施時のソースコードとに差ができている可能性があるため、クライアントで行っているソースコードの編集とは同期が取れず、静的解析の結果を編集中のソースコードに反映することが困難であるという問題点があった。
また、各クライアントにおいて静的解析を実施する方式には、クライアント毎で適用しているルールの管理がしにくいという問題点や、他の開発者が編集している複数のソースコードに跨るような静的解析を実施すると、負荷が高くて時間がかかり、開発者の作業が遅延するという問題点があった。
(目的)
本発明の目的は、クライアントの負荷を抑制し、静的解析の結果を編集中のソースコードに反映することができ、解析ルールの管理が容易な静的解析システムを提供することである。
本発明の目的は、クライアントの負荷を抑制し、静的解析の結果を編集中のソースコードに反映することができ、解析ルールの管理が容易な静的解析システムを提供することである。
上記課題を解決するため本発明は、サーバ、クライアント間で複数のソースコードの静的解析を行う静的解析システムにおいて、前記サーバで、複数の前記ソースコードに対して前記静的解析のための所定の事前処理を予め実施し、前記事前処理の解析結果を利用して前記サーバとクライアント間による前記ソースコードの静的解析を実施することを特徴とする。
(作用)
静的解析のための所定の事前処理を予め実施するため、クライアントが、随時事前処理の解析結果に基づいてソースコードの静的解析を実施することができる。
静的解析のための所定の事前処理を予め実施するため、クライアントが、随時事前処理の解析結果に基づいてソースコードの静的解析を実施することができる。
また、より詳細には、上記課題を解決するため本発明は、複数のソースコードに跨る静的解析において、解析時に必要な全てのソースコードの解析を行うのではなく、事前に静的解析可能なサーバのバージョン管理ツールなどで管理されているコミット済みのソースコードに対して、事前処理として解析を実施することにより、実際の解析時には、この事前処理の結果に基づいて解析を実施することができるため、解析を効率化することができ、高速に解析が行える。このため、サーバで処理を行っても、クライアントでは即時に解析結果を編集中のソースコードに反映することができ、クライアントにおいても解析処理の負荷が軽減でき編集作業に影響を軽減することができる。
第1に、高速に複数のソースコードに跨る静的解析ができる。
その理由は、すべてのソースコードに対してその場で処理を行うのではなく、サーバにおいて、事前に登録されたソースコードに対し事前処理を施し、実際のソースコードおよび事前処理の結果に基づいて解析処理を行うため、クライアントにおいて編集中のソースコードに対して、解析結果を即時に反映することが可能となるからである。
第2に、クライアントの負荷を軽減できる。
その理由は、クライアントで同様に複数のソースコードに跨った静的解析を実施する場合には、複数のソースコードを解析する必要があると共に、最新のソースコードをサーバから取得する必要がるため、クライアントに大きな負荷がかかってしまうところ、これに対して本発明は、サーバにおいて、事前に登録されたソースコードに対し事前処理を行うからである。
第3に、サーバの負荷を平準化できる。
その理由は、通常のサーバでの静的解析では、定期的にバッチ処理で解析を実行するため、負荷が偏る傾向にあるが、本発明において、ソースコードの登録時に事前処理を実施する場合に、ソースコードが解析対象として送付されてきたときにそのソースコードを対象にした静的解析を行うことにより、偏った負荷を軽減できるためである。
(第1の実施の形態)
以下、本発明の第1の実施の形態を、図を用いて詳細に説明する。
以下、本発明の第1の実施の形態を、図を用いて詳細に説明する。
(第1の実施の形態の構成)
図1は、本実施の形態の構成を示すブロック図である。
図1は、本実施の形態の構成を示すブロック図である。
図1を参照すると、本実施の形態は、クライアント100及びサーバ200を備え、クライアント100は、クライアント100で動作するソースコード編集装置110を有し、サーバ200は、サーバ200で動作するソースコード解析装置210,ソースコード解析事前処理装置220,ソースコード管理装置230,静的解析ルール管理装置240を有する。
ソースコード編集装置110は、解析結果表示装置120,ソースコード送付装置130,ソースコード登録装置140,ソースコード取得装置150を有する。
これら各構成要素は、それぞれ次のような機能を有する。
(クライアント100)
ソースコード編集装置110は、ソースコードを表示,編集,保存及び登録する機能を有する。
ソースコード編集装置110は、ソースコードを表示,編集,保存及び登録する機能を有する。
解析結果表示装置120は、ソースコード解析装置210の解析結果をソースコード編集装置110上に表示し、ソースコードの該当箇所に結果を結びつける機能を有する。解析結果とソースコードの該当箇所を結びつけるために、解析結果には,摘出したルールおよびその説明,ソースコードの該当箇所の情報が含まれる。
ソースコード送付装置130は、ソースコードの解析を行うために、ソースコード解析装置210へソースコードを送付するための機能を有する。
ソースコード登録装置140は、編集済みのソースコードをソースコード管理装置230へ登録するための機能を有する。
ソースコード取得装置150は、ソースコード管理装置230で管理されているソースコードを取得するための機能を有する.
(サーバ200)
ソースコード解析装置210は、ソースコード送付装置120から送付されてきたソースコードを静的解析ルール管理装置240で管理されているルールに基づいて解析を行い、複数のソースコードに跨って解析を行う場合には、ソースコード解析事前処理装置220で処理されたデータに基づいて解析を実施し、解析結果を、クライアント100の解析結果表示装置120に返却する機能を有する。
ソースコード解析装置210は、ソースコード送付装置120から送付されてきたソースコードを静的解析ルール管理装置240で管理されているルールに基づいて解析を行い、複数のソースコードに跨って解析を行う場合には、ソースコード解析事前処理装置220で処理されたデータに基づいて解析を実施し、解析結果を、クライアント100の解析結果表示装置120に返却する機能を有する。
ソースコード解析事前処理装置220は、ソースコード管理装置210で管理されているソースコードを静的解析ルール管理装置240で管理されているルールに基づいて解析し、事前処理解析情報(事前処理解析結果)222として事前処理解析情報記憶手段221に保持する機能を有し、ソースコード解析装置210で解析されているソースコードにおいて、複数のソースコードに跨る解析を実施する場合に、対象となるソースコードの解析情報をソースコード解析装置210に提供する機能を有する。ソースコードの解析事前処理は、ソースコード管理装置230からの新しいソースの登録の通知を持って実施される。
ソースコード管理装置230は、各クライアントのソースコード登録装置140によって登録されたソースコードをソースコード記憶手段231に保存する機能と、新たにソースコードが登録されると、ソースコード解析事前処理装置220に対して、新しいソースコードが登録されたことを通知する機能とを有する。
静的解析ルール管理装置240は、ソースコード解析装置210で解析を行うための解析ルール241の管理,編集,保存を実施する機能と、ソースコード解析事前処理装置220で解析を行うための複数のソースコードに跨る事前処理ルール(事前処理に必要となる静的解析ルール)242の管理,編集,保存を実施する機能とを有する。また、静的解析ルール管理装置240は、解析ルール241及び静的解析ルール242を記憶するルール記憶手段243を有する。
ここで、クライアント100及びサーバ200のハードウェア構成の説明をする。
図2は、本実施の形態によるクライアント100及びサーバ200のハードウェア構成を示すブロック図である。
図2を参照すると、本発明によるクライアント100及びサーバ200は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、CPU(Central Processing Unit)1001、RAM(Random Access Memory)等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部1002、ネットワーク2000を介してデータの送受信を行う通信制御部1003、液晶ディスプレイ、プリンタやスピーカ等の提示部1004、キーボードやマウス等の入力部1005、周辺機器と接続してデータの送受信を行うインタフェース部1006、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置である補助記憶部1007、本情報処理装置の上記各構成要素を相互に接続するシステムバス1008等を備えている。
本発明によるクライアント100及びサーバ200は、その動作を、クライアント100及びサーバ200内部にそのような機能を実現するプログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品からなる回路部品を実装してハードウェア的に実現することは勿論として、上記した各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のCPU1001で実行することにより、ソフトウェア的に実現することができる。
すなわち、CPU1001は、補助記憶部1007に格納されているプログラムを、主記憶部1002にロードして実行し、クライアント100及びサーバ200の動作を制御することにより、上述した各機能をソフトウェア的に実現する。
(第1の実施の形態の動作)
次に、本実施の形態の動作について図3から図6を参照して詳細に説明する。
次に、本実施の形態の動作について図3から図6を参照して詳細に説明する。
図3は、本実施の形態による各構成要素間の手順を示すシーケンス図である。
まず、図3を用いて、ソースコード管理装置230に登録されたソースコードに対する事前処理の手順について説明する(図3の手順A)。
事前処理は、ソースコード編集装置110からソースコード登録装置140に対し、ソースコード管理装置230へのソースコードの登録を依頼し(手順A1)、ソースコード登録装置140によって、ソースコード管理装置230にソースコードが登録される(手順A2)。
ソースコード管理装置230は、新たなソースコードが登録されると、ソースコード解析事前処理装置220に対し、登録されたソースコードを通知する(手順A3)。
ソースコード解析事前処理装置220は、事前処理に必要となる静的解析ルールを静的解析ルール管理装置240から取得し(手順A4、A5)、登録されたソースコードに対して事前処理を実施する(手順A6)。
図4は、本実施の形態による事前処理を説明する図である。
図4を参照し、例えば、ソースコードB、C、D、Eを対象として事前処理を行った場合について説明する。
この中で、ソースコードCの関数C1における前処理1と関数C2における後処理1、ソースコードDの関数D1における前処理2と関数D3における後処理2は、それぞれ前処理と後処理がペアで行われなければ、静的解析でルール違反となる処理である。
ソースコードBの関数B1を呼び出した場合、関数B1内でソースコードCの関数C1、関数C2が呼び出され、その中でそれぞれ前処理1、後処理1が順に呼び出されるため、この関数B1の呼び出しでは、ルール違反となるものは検出されない。
次に、関数B2を呼び出した場合、関数B2では、関数B3が呼び出され、関数B3では、関数D1、D2が呼び出される。この関数D1で、前処理2が呼び出されるが、その対となる後処理2がこの関数B2では呼び出されていないため、ルールに違反する。ルールに違反する呼び出しがあると、図5及び図6に示すような事前処理解析情報222として事前処理解析情報記憶手段221に登録される。
本実施の形態では、図5は前処理(前処理1、前処理2など)が違反として検出された場合に登録される事前処理解析情報222であり、図6は後処理(後処理1、後処理2など)が違反として検出された場合に登録される事前処理解析情報222である。図5及び図6に示す事前処理解析情報222は、それぞれ、呼び出し元のクラス(ファイル)、関数、違反した該当ルール、検出された処理に対応する必要処理(または、実施処理)が記録される。
次に、ソースコードの編集を行うための手順について説明する(図3の手順B)。
ソースコードの編集を行うために、ソースコード編集装置110は、ソースコード管理装置230からソースコードを取得しソースコードの編集を行う。ソースコードを取得するために、ソースコード編集装置110は、ソースコード取得装置150に対しソースコードの取得依頼を行い(手順B1)、ソースコード取得装置150は、ソースコード管理装置230よりソースコードの取得を行い(手順B2、B3)、ソースコードをソースコード編集装置110に通知して表示等させる(手順B4)。このようにして通知されたソースコードをソースコード編集装置110において編集を行う(手順B5)。
最後に、ソースコードの解析を行う方法について説明する(図3の手順C)。
ソースコードを解析するために、ソースコード編集装置110は、ソースコード送付装置130に対し、ソースコード解析装置210へのソースコード送付を依頼する(手順C1)。ソースコード送付装置130は、依頼されたソースコードをソースコード解析装置210に送付する(手順C2)。ソースコード解析装置210は、送付されてきたソースコードの解析ルールを静的解析ルール管理装置240から取得し(手順C3、C4)、解析を行う(手順C7)。ソースコード解析装置210は、手順C7において複数のソースに跨って解析しなければならない場合、ソースコード解析事前処理装置220から、事前処理された解析結果を取得し(手順C5、C6)、その結果に基づいて解析を行う(手順C7)。
この解析では、たとえば図4に示すようなソースコードAを解析対象とした場合、まず関数A1では、ソースコードBの関数B1、B2、ソースコードDの関数D3への呼び出しが行われる。ここで、該当する事前処理結果を取得し、図5より関数B2では後処理2が必要であり、該当する処理が関数D3で呼び出されているため、結果として相殺され、ルール違反とはならず、ルール違反となるものは検出されない。
次に関数A2では、関数D1、E1、D3が呼び出される。事前処理結果を見ると、D1では後処理2が必要であり、D3で後処理2が実施されているため、相殺されてルール違反とはならず、ルール違反となるものは検出されない。
さらに、関数A3では、関数D1、E2、E3が呼び出されている。事前処理結果を見ると、D1では、後処理2が必要であるが、それ以外では事前処理結果に記録されておらず、この処理がルール違反として検出されることになる。
最後に、関数A4では、他の関数の呼び出しが行われていないため、事前処理結果が必要とはならないが、前処理3だけが行われており、対となる後処理3が行われていないため、ルール違反として検出されることになる。
このようにして、解析対象のソースコードの解析が行われる。
また、ソースコード解析装置210で解析された結果は、解析結果表示装置120へ結果が返却され(手順C8)、解析結果表示装置120は、ソースコード編集画面の該当箇所に、静的解析ルールの違反等の解析結果を表示する(手順C9)。
(第1の実施の形態の効果)
本実施の形態よれば、以下の効果を達成する。
本実施の形態よれば、以下の効果を達成する。
第1に、高速に複数のソースコードに跨る静的解析ができる。
その理由は、すべてのソースコードに対してその場で処理を行うのではなく、サーバにおいて、事前に登録されたソースコードに対し事前処理を施し、実際のソースコードおよび事前処理の結果に基づいて解析処理を行うため、クライアントにおいて編集中のソースコードに対して、解析結果を即時に反映することが可能となるからである。
第2に、クライアントの負荷を軽減できる。
その理由は、クライアントで同様に複数のソースコードに跨った静的解析を実施する場合には、複数のソースコードを解析する必要があると共に、最新のソースコードをサーバから取得する必要がるため、クライアントに大きな負荷がかかってしまうところ、これに対して本実施の形態は、サーバにおいて、事前に登録されたソースコードに対し事前処理を行うからである。
第3に、サーバの負荷を平準化できることにある。
その理由は、通常のサーバでの静的解析では、定期的にバッチ処理で解析を実行するため、負荷が偏る傾向にあるが、本実施の形態において、ソースコードの登録時に事前処理を実施する場合に、ソースコードが解析対象として送付されてきたときにそのソースコードを対象にした静的解析を行うことにより、偏った負荷を軽減できるためである。
(第2の実施の形態)
以下、本発明の第2の実施の形態を、図を用いて詳細に説明する。
以下、本発明の第2の実施の形態を、図を用いて詳細に説明する。
(第2の実施の形態の構成)
図7は、本実施の形態の構成を示すブロック図である。
図7を参照すると、本実施の形態は、サーバ200が、開発者進捗管理装置250を有する点で第1の実施の形態と相違する。従って、以下、第1の実施の形態と相違する点を中心に説明する。
図7は、本実施の形態の構成を示すブロック図である。
図7を参照すると、本実施の形態は、サーバ200が、開発者進捗管理装置250を有する点で第1の実施の形態と相違する。従って、以下、第1の実施の形態と相違する点を中心に説明する。
(クライアント100)
本実施の形態によるクライアント100は、第1の実施の形態によるクライアント100と同様であるので説明を省略する。
本実施の形態によるクライアント100は、第1の実施の形態によるクライアント100と同様であるので説明を省略する。
(サーバ200)
本実施の形態によるソースコード解析装置210は、第1の実施の形態によるソースコード解析装置210が有する機能と、解析結果およびソースコードを開発者進捗管理装置250に送付する機能とを有する。
本実施の形態によるソースコード解析装置210は、第1の実施の形態によるソースコード解析装置210が有する機能と、解析結果およびソースコードを開発者進捗管理装置250に送付する機能とを有する。
管理者進捗管理装置250は、ソースコード解析装置210から解析結果、ソースコードを受け取る機能と、開発者ごとのソースコードの記述量、バグの数、更新頻度、更新時間などを管理する機能とを有する。管理者進捗管理装置250は、ソースコード解析装置210から取得した解析結果及びソースコードに基づいて生成した、ソースコード編集の進捗状況を示す進捗情報252として、開発者ごとのソースコードの記述量、バグの数、更新頻度、更新時間を記憶する進捗情報記憶手段251を有する。
サーバ200のその他の構成要素は、第1の実施の形態によるサーバ200と同様であるので説明を省略する。
(第2の実施の形態の動作)
次に、本実施の形態の動作について図8を参照して詳細に説明する。
次に、本実施の形態の動作について図8を参照して詳細に説明する。
図8は、本実施の形態による各構成要素間の手順を示すシーケンス図である。
本実施の形態による手順A及び手順Bは、第1の実施の形態による手順A及び手順Bと同様であるため説明を省略する。
手順C9において、解析結果表示装置120がソースコード編集画面の該当箇所に静的解析ルールの違反等の解析結果を表示する際に、開発者進捗管理装置250は、ソースコード解析装置210から送付された解析結果およびソースコードを受け取り、開発者ごとのソースコードの記述量、バグの数、更新頻度を示す進捗情報として登録する(手順C10)。なお、本実施の形態による手順C10は、手順C8、C9の手順とは独立して実行されるため、手順7以降であれば実行順序は制限されない。
(第2の実施の形態の効果)
本実施の形態よれば、開発者進捗管理装置250が、解析結果およびソースコードに基づいて生成した、開発者ごとのソースコードの記述量、バグの数、更新頻度を示す進捗情報を登録して管理するため、開発者によって静的解析が実施されるたびに開発者の進捗情報を管理することができる。
本実施の形態よれば、開発者進捗管理装置250が、解析結果およびソースコードに基づいて生成した、開発者ごとのソースコードの記述量、バグの数、更新頻度を示す進捗情報を登録して管理するため、開発者によって静的解析が実施されるたびに開発者の進捗情報を管理することができる。
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
ソフトウェア開発におけるソースコードやデータの検証、またそれらの結果の管理といった用途に本発明を適用できる。
100:クライアント
110:ソースコード編集装置
120:解析結果表示装置
130:ソースコード送付装置
140:ソースコード登録装置
150:ソースコード取得装置
200:サーバ
210:ソースコード解析装置
220:ソースコード解析事前処理装置
221:事前処理解析情報記憶手段
222:事前処理解析情報(事前処理解析結果)
230:ソースコード管理装置
231:ソースコード記憶手段
240:静的解析ルール管理装置
241:解析ルール
242:事前処理ルール(事前処理に必要となる静的解析ルール)
243:ルール記憶手段
250:管理者進捗管理装置
251:進捗情報記憶手段
252:進捗情報
1001:CPU
1002:主記憶部
1003:通信制御部
1004:提示部
1005:入力部
1006:インタフェース部
1007:補助記憶部
1008:システムバス
2000:ネットワーク
110:ソースコード編集装置
120:解析結果表示装置
130:ソースコード送付装置
140:ソースコード登録装置
150:ソースコード取得装置
200:サーバ
210:ソースコード解析装置
220:ソースコード解析事前処理装置
221:事前処理解析情報記憶手段
222:事前処理解析情報(事前処理解析結果)
230:ソースコード管理装置
231:ソースコード記憶手段
240:静的解析ルール管理装置
241:解析ルール
242:事前処理ルール(事前処理に必要となる静的解析ルール)
243:ルール記憶手段
250:管理者進捗管理装置
251:進捗情報記憶手段
252:進捗情報
1001:CPU
1002:主記憶部
1003:通信制御部
1004:提示部
1005:入力部
1006:インタフェース部
1007:補助記憶部
1008:システムバス
2000:ネットワーク
Claims (20)
- サーバ、クライアント間で複数のソースコードの静的解析を行う静的解析システムにおいて、
前記サーバで、複数の前記ソースコードに対して前記静的解析のための所定の事前処理を予め実施し、前記事前処理の解析結果を利用して前記サーバとクライアント間による前記ソースコードの静的解析を実施することを特徴とする静的解析システム。 - 前記サーバは、前記クライアントからソースコードが送付される毎に、
送付された前記ソースコードに対して前記事前処理による解析を行い、前記事前処理による解析結果に基づいて行ったソースコード解析の解析結果を前記クライアントに通知することを特徴とする請求項1に記載の静的解析システム。 - 前記事前処理による解析によって、静的解析でルール違反となる処理を検出して前記解析結果に含めることを特徴とする請求項2に記載の静的解析システム。
- 前記サーバは、複数のソースコードに跨る静的解析を行う場合に、前記事前処理による解析結果に基づいて、ソースコードの静的解析を行うことを特徴とする請求項2又は請求項3に記載の静的解析システム。
- 前記解析結果及び前記ソースコードに基づいて、ソースコード編集の進捗状況を示す進捗情報を生成してユーザ毎に登録する手段を備えることを特徴とする請求項2から請求項4のいずれか1項に記載の静的解析システム。
- 前記進捗情報は、ソースコードの記述量、バグの数、更新頻度、更新時間のいずれか1以上を含むことを特徴とする請求項5に記載の静的解析システム。
- クライアントとの間で複数のソースコードの静的解析を行うサーバにおいて、
複数の前記ソースコードに対して前記静的解析のための所定の事前処理を予め実施し、前記事前処理の解析結果を利用して前記クライアントとの間による前記ソースコードの静的解析を実施することを特徴とするサーバ。 - 前記クライアントからソースコードが送付される毎に、
送付された前記ソースコードに対して前記事前処理による解析を行い、前記事前処理による解析結果に基づいて行ったソースコード解析の解析結果を前記クライアントに通知することを特徴とする請求項7に記載のサーバ。 - 前記事前処理による解析によって、静的解析でルール違反となる処理を検出して前記解析結果に含めることを特徴とする請求項8に記載のサーバ。
- 複数のソースコードに跨る静的解析を行う場合に、前記事前処理による解析結果に基づいて、ソースコードの静的解析を行うことを特徴とする請求項8又は請求項9に記載のサーバ。
- 前記解析結果及び前記ソースコードに基づいて、ソースコード編集の進捗状況を示す進捗情報を生成してユーザ毎に登録する手段を備えることを特徴とする請求項2から請求項4のいずれか10項に記載のサーバ。
- 前記進捗情報は、ソースコードの記述量、バグの数、更新頻度、更新時間のいずれか1以上を含むことを特徴とする請求項11に記載のサーバ。
- サーバ、クライアント間で複数のソースコードの静的解析を行う静的解析システムの解析方法であって、
前記サーバにおいて、
前記クライアントからソースコードが送付される毎に、
送付された前記ソースコードに対して前記静的解析のための所定の事前処理を予め実施し、前記事前処理の解析結果を利用して前記クライアントとの間による前記ソースコードの静的解析を実施し、解析結果を前記クライアントに通知するステップを有することを特徴とする解析方法。 - 前記サーバにおいて、
前記事前処理による解析によって、静的解析でルール違反となる処理を検出して前記解析結果に含めるステップを有することを特徴とする請求項13に記載の解析方法。 - 前記サーバにおいて、
複数のソースコードに跨る静的解析を行う場合に、前記事前処理による解析結果に基づいて、ソースコードの静的解析を実施するステップを有することを特徴とする請求項14に記載の解析方法。 - 前記サーバにおいて、
前記解析結果及び前記ソースコードに基づいて、ソースコード編集の進捗状況を示す進捗情報を生成してユーザ毎に登録するステップを有することを特徴とする請求項14又は請求項15に記載の解析方法。 - クライアントとの間で複数のソースコードの静的解析を行うサーバ上で実行されるプログラムであって、
前記サーバに、
前記クライアントからソースコードが送付される毎に、
送付された前記ソースコードに対して前記静的解析のための所定の事前処理を予め実施し、前記事前処理の解析結果を利用して前記クライアントとの間による前記ソースコードの静的解析を実施し、解析結果を前記クライアントに通知する処理を実行させることを特徴とするプログラム。 - 前記サーバに、
前記事前処理による解析によって、静的解析でルール違反となる処理を検出して前記解析結果に含める処理を実行させることを特徴とする請求項17に記載のプログラム。 - 前記サーバに、
複数のソースコードに跨る静的解析を行う場合に、前記事前処理による解析結果に基づいて、ソースコードの静的解析を実施させることを特徴とする請求項18に記載のプログラム。 - 前記サーバに、
前記解析結果及び前記ソースコードに基づいて、ソースコード編集の進捗状況を示す進捗情報を生成してユーザ毎に登録する処理を実行させることを特徴とする請求項18又は請求項19に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007058250A JP2008225519A (ja) | 2007-03-08 | 2007-03-08 | 静的解析システム、サーバ、静的解析方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007058250A JP2008225519A (ja) | 2007-03-08 | 2007-03-08 | 静的解析システム、サーバ、静的解析方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008225519A true JP2008225519A (ja) | 2008-09-25 |
Family
ID=39844122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007058250A Withdrawn JP2008225519A (ja) | 2007-03-08 | 2007-03-08 | 静的解析システム、サーバ、静的解析方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008225519A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198522A (ja) * | 2009-02-27 | 2010-09-09 | Hitachi Ltd | ソースコード解析方法およびソースコード解析支援システム |
CN102279800A (zh) * | 2011-08-31 | 2011-12-14 | 中国信息安全测评中心 | 处理路径敏感符号定义的源代码静态缺陷分析器及其方法 |
-
2007
- 2007-03-08 JP JP2007058250A patent/JP2008225519A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010198522A (ja) * | 2009-02-27 | 2010-09-09 | Hitachi Ltd | ソースコード解析方法およびソースコード解析支援システム |
CN102279800A (zh) * | 2011-08-31 | 2011-12-14 | 中国信息安全测评中心 | 处理路径敏感符号定义的源代码静态缺陷分析器及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930368B2 (en) | Categorizing data to perform access control | |
US10156971B2 (en) | Automatic deployment, configuration, and lifecycle management of applications and infrastructure components | |
JP4880376B2 (ja) | 支援装置、プログラム、情報処理システム及び支援方法 | |
EP3049968B1 (en) | Master schema shared across multiple tenants with dynamic update | |
US10789111B2 (en) | Message oriented middleware with integrated rules engine | |
US9317258B2 (en) | Dynamic validation of models using constraint targets | |
Rankin | The software testing automation framework | |
US20190325562A1 (en) | Window rendering method and terminal | |
JP2002215477A (ja) | デバイス状態監視システム、デバイス状態監視処理方法及び情報記録媒体 | |
US20190228134A1 (en) | Information processing apparatus, information processing system, and non-transitory computer-readable storage medium for storing program | |
WO2021051589A1 (zh) | 数据存储方法、装置、电子设备及存储介质 | |
JP2006119848A (ja) | ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法 | |
US8359359B2 (en) | Device, method, and computer program product for supporting creation of reply mail | |
US7143398B2 (en) | Application infa operating system | |
US8738742B2 (en) | Tiered XML services in a content management system | |
JP2008225519A (ja) | 静的解析システム、サーバ、静的解析方法及びプログラム | |
JP5266032B2 (ja) | ワークフローサーバ、ワークフローサーバの制御方法、プログラム、及び、記録媒体 | |
JP5048537B2 (ja) | ワークフロー処理装置 | |
JP2017037469A (ja) | 情報処理システム、優先処理方法、情報処理装置及びプログラム | |
US20100082563A1 (en) | System impact search engine | |
JP2009048442A (ja) | 構成管理システム | |
JP2008171026A (ja) | システムの保全方法、保全装置及びプログラム | |
US8054487B2 (en) | Mechanism to create a reservation against a future scheduling object instantiation | |
JP2009163305A (ja) | ログ出力装置、ログ出力方法及びログ出力プログラム | |
JP2017103521A (ja) | 情報処理装置及びその制御方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100401 |