JP2010117897A - プログラム静的解析システム - Google Patents
プログラム静的解析システム Download PDFInfo
- Publication number
- JP2010117897A JP2010117897A JP2008290805A JP2008290805A JP2010117897A JP 2010117897 A JP2010117897 A JP 2010117897A JP 2008290805 A JP2008290805 A JP 2008290805A JP 2008290805 A JP2008290805 A JP 2008290805A JP 2010117897 A JP2010117897 A JP 2010117897A
- Authority
- JP
- Japan
- Prior art keywords
- program
- rule
- phase
- coding
- static analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】ルールの重要度を不具合の発生と連携させることによって、実際に稼動しているプログラムでの不具合発生を未然に防ぐことに貢献できるプログラム静的解析システムを提供することを目的とする。
【解決手段】複数のフェーズの各段階でソースプログラムを編集しながら、フェーズを進めていくことでソースプログラムの開発を行う際に、各フェーズでの修正によって解消された指摘の件数に重み付けを行い、コーディングルールの重要度を、より後のフェーズのプログラム修正によって改善されたルールの重要度を上げるように、フェーズに応じた重み付けを行って変更する。これにより、プログラム開発者がプログラム修正の順序を決定する際に、不具合発生を回避する可能性の高い修正から行えるようになり、プログラムに対する不具合混入の度合いを減少させることに役立つ。
【選択図】図1
【解決手段】複数のフェーズの各段階でソースプログラムを編集しながら、フェーズを進めていくことでソースプログラムの開発を行う際に、各フェーズでの修正によって解消された指摘の件数に重み付けを行い、コーディングルールの重要度を、より後のフェーズのプログラム修正によって改善されたルールの重要度を上げるように、フェーズに応じた重み付けを行って変更する。これにより、プログラム開発者がプログラム修正の順序を決定する際に、不具合発生を回避する可能性の高い修正から行えるようになり、プログラムに対する不具合混入の度合いを減少させることに役立つ。
【選択図】図1
Description
本発明は、プログラム開発時において、ソースコードの解析を自動的に行い、不具合の可能性のある部分を指摘するプログラム静的解析の技術に関し、特に、静的解析結果に伴う不具合の修正の実施結果に伴って、不具合修正の必要性に対する重要度を変更することで、プログラム開発者のプログラム修正に対する順序付けの判断等を支援するための技術に関する。
プログラム開発においては、従来から、担当者が開発したソースプログラムを経験者がレビューすることで、コーディング基準からの逸脱を防ぎ、不具合の発生率を減少させるための努力がされてきている。しかしながら、プログラム開発期間の短縮に伴い、レビュー時間が短縮され、全てのソースコードのレビューが実施されなくなったうえ、開発費用の削減のために開発単価の安い海外ベンダで開発させるケースも増加し、その場合、開発時の仕様理解不足に伴う多数の不具合の混入などが問題になってきた。
この問題の解決を目的として、プログラム静的解析システムが開発されてきている。プログラム静的解析システムは、各プログラムがコーディング基準に則って作成されているかを、ソースコードレベルでチェックするシステムである。プログラム静的解析システムでは、不具合が発生しやすいコーディングが混入していないかどうかを自動的に解析することで、ソースコード全体のレビューを実施することに該当する機能を提供するとともに、問題のあるソースコードの場所を明示的に表示することで、修正すべき箇所が明確にわかるようになっている(特許文献1参照)。
静的解析に使用するコーディング基準に対するルールには、不具合に直結するものや、保守性の向上のためにコーディングスタイルを統一するものなど、様々な種類がある。一般的に、ルールに重要度を設け、重要度の高いルールを満たしていないことに対する指摘があるソースコードを優先して修正することが推奨されている。しかしながら、ルールの重要度は、熟練者の意見や開発部門の意思に基づいて設定されるため、不具合の発生と直結せずに決定されてきていた。この問題を解決するために、ソースコードの修正前と修正後での各ルールの指摘件数の減少率を用いてルールの重要度を決定する技術が、例えば特許文献2に記載されている。
特開2004−145381号公報
特開2008−52424号公報
しかしながら、上記特許文献1に記載の技術では、ルールに重要度がないために、多数のルールを使用した場合に、どのルールの指摘に対して修正すべきかを判断する基準がなく、開発者または管理者の基準に則ってソースプログラムを修正することになってしまい、不具合混入の度合いを減少させるためには機能が不足している。
また、上記特許文献2に記載の技術は、上記特許文献1で不足している機能を補うことを目的として開発されているが、単純に指摘の減少率だけで重要度を決める方法では、コーディングスタイルの統一のために全てのソースコードを修正した場合など、不具合の発生可能性とは無関係に実施された修正に伴う高い減少率を示したルールの重要度が高くなり、開発者にとって不具合の発生を防ぐことに貢献しない場合が発生する。
本発明の目的は、ルールの重要度を不具合の発生と連携させることによって、実際に稼動しているプログラムでの不具合発生を未然に防ぐことに貢献できるプログラム静的解析システムを提供することである。
上記目的を達成するために、本発明は、複数のフェーズの各段階でソースプログラムを編集しながら、フェーズを進めていくことでソースプログラムの開発を行う際に、前記各フェーズにおいてソースプログラムを解析し、コーディングルールに即したコーディングが実施されていない箇所を指摘するプログラム静的解析システムであって、複数のコーディングルールを、各ルールの重要度とともに、格納したルール格納手段と、前記ルール格納手段に格納されているコーディングルールを用いて、指定されたフェーズのソースプログラムを解析し、前記コーディングルールを満たしていない箇所を求める静的解析手段と、前記静的解析手段で前記コーディングルールを満たしていないと指摘された箇所について、前記コーディングルール毎の指摘件数を求め、求めたコーディングルール毎の指摘件数を記憶する手段と、前回の静的解析で記憶した前記コーディングルール毎の指摘件数と今回の静的解析で記憶した前記コーディングルール毎の指摘件数とを比較し、コーディングルール毎にその減少分を求める手段と、前記コーディングルール毎に、前記減少分がより大きく、前記指定されたフェーズがより後のフェーズである場合に、より高い重要度となるように、前記ルール格納手段に格納されている当該コーディングルールに対応する重要度を変更する重要度変更手段と、前記静的解析手段により求めた前記ソースプログラム中のコーディングルールを満たしていない箇所を、そのコーディングルールの重要度とともに、表示する手段とを備えることを特徴とする。
特に、コーディングルールの重要度を、より後のフェーズのプログラム修正によって改善されたルールの重要度を上げるように、フェーズに応じた重み付けを行って変更する。例えば、テスト工程のフェーズでソースを修正してルールの指摘件数が減少した場合と、それより後の工程である運用のフェーズでソースを修正してルールの指摘件数が減少した場合とでは、後の工程である運用のフェーズでのソース修正での改善の方が重要であると考えられる。そこで、本来はもっと早い段階で修正しておく必要があったものと指摘するために、当該ルールの重要度を、より後のフェーズでのソース修正で改善されたルールが高い重み付けになるように、変更する。このように重要度を変更することによって、プログラム開発者がプログラム修正の順序を決定する際に、不具合発生を回避する可能性の高い修正から行えるようになり、プログラムに対する不具合混入の度合いを減少させることに役立つ。
以上説明したように、本発明によれば、不具合が発生した工程(フェーズ)に応じて、各ルールによって指摘されたプログラムの修正件数に重み付けを行うことで、より後工程で発生した不具合修正に関連した指摘の重要度をより高め、開発者に対して修正すべき箇所の判断に役立てるとともに、後工程で発生する不具合に伴う手戻りによる作業増加を防ぐことが可能になる。また、開発を繰り返していくことで、ルールの重要度が洗練されていくので、開発者のグループあるいは開発者個人で、どのようなルールを重視すべきかが明確になっていくというメリットがある。
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図1は、本発明を適用したプログラム静的解析システムの一実施の形態を示すシステム構成図である。このシステムは、プログラム静的解析サーバコンピュータ1と、プログラムソース管理サーバコンピュータ2と、プログラム開発・修正を行うクライアントコンピュータ3とが、ネットワーク4によって接続されて構成される。プログラム静的解析サーバコンピュータ1は、CPU11Aおよびメモリ11Bを備える端末装置11、プログラム静的解析プログラム12A、ルール適用結果指摘一覧テーブル12B、およびルール一覧テーブル12Cが格納されている外部記憶装置12、並びに、ネットワーク接続のための通信ポート13を備えている。
プログラムソース管理サーバコンピュータ2は、CPU21Aおよびメモリ21Bを備える端末装置21、ソース管理プログラム22A、プログラムソース22B、およびプログラム修正履歴テーブル22Cが格納されている外部記憶装置22、並びに、ネットワーク接続のための通信ポート23を備えている。
クライアントコンピュータ3は、CPU31Aおよびメモリ31Bを備える端末装置31、プログラム編集プログラム32Aが格納されている外部記憶装置32、並びに、通信ポート33を備えている。
図2は、プログラム静的解析サーバコンピュータ1上の外部記憶装置12に格納されているルール適用結果指摘一覧テーブル12Bの一つの例である。ルール適用結果指摘一覧テーブル12Bには、ルールID201、静的解析対象ソースプログラム名称202、指摘件数203、および解析実行日時204の組データ(エントリ)が格納される。この組データは、後述する図6のステップ605の処理により格納される。格納された組データは、解析実行日時204の日時に実行したプログラム静的解析の処理において、プログラム名称202のソースプログラム中にルールID201で特定されるルールを満たしていないと指摘された箇所が指摘件数203で示す数だけあったことを示している。
図3は、プログラム静的解析サーバコンピュータ1上の外部記憶装置12に格納されているルール一覧テーブル12Cの一つの例である。ルール一覧テーブル12Cには、ルールID301、ルール名称302、および重要度303の組データが格納される。本テーブル12Cには、予め、静的解析を実施する際に適用する全ルールについてルールID301とルール名称302と重要度303が格納されている。なお、重要度303は、初めは初期値が格納されているが、後述する図6の処理により更新されていくものである。また、静的解析を実施する際に適用するルールそのものについては、ルールID301から取得できるものとする。
図4は、プログラムソース管理サーバコンピュータ2上の外部記憶装置22に格納されているプログラム修正履歴テーブル22Cの一つの例である。プログラム修正履歴テーブル22Cには、プログラム名称401、修正前のプログラムソースから削除された部分を格納する削除ソース402、修正前のプログラムソースに追加された部分を格納する追加ソース403、および修正実行日時404の組データが格納される。この組データは、後述する図7のステップ706の処理により格納される。
図5は、プログラムソース管理サーバコンピュータ2上の外部記憶装置22に格納されているプログラムソース22Bの構成例である。ここでは、各プログラムソースをパス名で示している。プログラムソース22Bは、プログラム開発・運用のフェーズに応じて、コーディングフェーズ(501)、単体テストフェーズ(502)、結合テストフェーズ(503)、システムテストフェーズ(504)、運用フェーズ(505)といったフェーズIDをルートディレクト名称に持ったファイルシステム上に格納されている。501〜505がそれぞれフェーズIDである。
例えば、プロジェクトがコーディングフェーズにある間は、ユーザはディレクトリ/501/の下にあるソースプログラムを修正しながら作業を進め、次にプロジェクトが単位テストフェーズに入ったときは、ディレクトリ/502/の下にあるソースプログラムを修正していくことで作業を進める。
図6は、プログラム静的解析サーバコンピュータ1上で動作する、プログラム静的解析プログラム12Aの動作を示すフローチャートである。プログラム静的解析プログラム12Aは、任意のタイミングで、解析対象プログラムのフェーズIDを指定して実行させることができる。
プログラム静的解析プログラム12Aが起動すると、解析対象プログラムのフェーズIDの入力を受け付け(ステップ601)、プログラムソース管理サーバコンピュータ2上のソース管理プログラム22Aに接続して当該フェーズIDを送信し(ステップ602)、そのフェーズに属する全てのプログラムソースを入手する(ステップ603)。入手した各プログラムソースに対してルール一覧テーブル12Cの各ルールを適用して静的解析を実施する(ステップ604)。静的解析の結果、ルールを満たしていないと指摘した箇所があった場合には、そのルールID、プログラム名称、ルールを満たさなかったと指摘した箇所の件数、および、静的解析を実施した日時を、ルール適用結果指摘一覧テーブル12B(図2)に登録する(ステップ605)。
テーブル12Bへは、ソースプログラム毎、かつ、ルール毎に、1エントリが登録される。指摘件数が0件の場合も登録する。結果として、ステップ604の静的解析を1回行うと、各プログラム毎に、全ルールについての各指摘件数がテーブル12Bへ登録される。また、各フェーズの開始日時と終了日時は分かるので、テーブル12Bの解析実行日時204の値から、そのエントリがどのフェーズの解析結果を示しているかが分かる。なお、ここでは、ステップ601で入力されるフェーズIDは現状の(すなわち最新の)フェーズを示すものとし、フェーズが変わってから以前のフェーズの解析を行うことはないものとする。従って、解析実行日時204は最新のフェーズの期間に属するのに実際には以前のフェーズの解析を行っている、ということは想定していない。ただし、テーブル12Bに、ステップ601で入力されたフェーズIDを登録するようにして、各エントリがどのフェーズの解析結果か分かるようにしてもよい。そのようにすることで、例えばプロジェクトが第1フェーズから第3フェーズに進んだ段階で、第2フェーズを指定して図6の解析を行うことも可能である。
次に、各ルールID毎に、前回の解析時の指摘件数と今回の解析時の指摘件数とを比較し、各ルールID毎の指摘件数の減少分を計算する(ステップ606)。この処理は、今回のステップ605の処理で新たにテーブル12Bに登録されたエントリから、各ルール毎に指摘件数203を合計し(1つのルールに対して複数のプログラムのエントリがある場合は、それらの各プログラム毎の指摘件数を集計して、1つのルールについての合計指摘件数を求める)、同様にして、解析実行日時204から前回の解析時の各ルール毎の指摘件数203を取得してそれらの合計を求め、各ルール毎に前回解析時から今回解析時の指摘件数の減少分を計算するものである。計算された各ルール毎の指摘件数の減少分は、要するに、前回解析時から今回の解析時までの間に行った現フェーズにおけるソースプログラムの修正によって、この減少分だけの改善が為されたことを意味している。なお、最初のフェーズの最初の静的解析を行った時点では、「前回の解析時の指摘件数」はテーブル12Bに無いので、ステップ606〜608の処理は行わないものとする。
次に、各ルール毎に、前記計算した減少分にステップ601で入力されたフェーズID(ここでは現在のフェーズID)に対応する重みを加重計算し、ルール一覧テーブル12Cの各ルールIDに対応する重要度を更新する(ステップ607)。プログラムの修正は各フェーズで行われるが、より後のフェーズで行う修正の方が重要度は高い。後のフェーズでプログラムに施す修正は、より運用に近い場面で修正せざるを得なかった部分と考えられるからである。また、上述の各ルール毎の指摘件数の減少分は、それ自体が各ルールの重要度を示している。プログラムの修正によって、そのルールについて、指摘件数の減少分だけ改善されているからである。そこで、ステップ607では、各ルールID毎に減少分を重み付けして重要度を更新している。要するに、より減少分が大きく、より後のフェーズの場合に、より重要度が増加するように更新すると言うことである。次に、更新した重要度の順に、当該重要度と、ルール名称と、プログラム中のそのルールが指摘された指摘箇所とを表示し(ステップ608)、ステップ601に戻って次のフェーズIDの入力の待ち状態に入る。
なお、ここでは重要度を更新した後にステップ608でその重要度と指摘箇所を表示しているが、更新する前の重要度を用いて重要度と指摘箇所の表示を行ってもよい。
図7は、プログラムソース管理サーバコンピュータ2上で動作する、プログラムソース管理プログラム22Aの動作を示すフローチャートである。
プログラムソース管理プログラム22Aが開始すると、プログラム静的解析プログラム12Aまたはプログラム編集プログラム32Aからの接続を待つ(ステップ701)。プログラム静的解析プログラム12Aからの接続要求は、図6のステップ602で発行されるフェーズIDを指定した全プログラムソースの参照要求である。プログラム編集プログラム32Aからの接続要求は、後述する図8のステップ803で発行される参照要求またはステップ807で発行される更新要求である。接続後、要求元から送られたコマンドとフェーズIDを受け取る(ステップ702)。なお、上記コマンドは、参照あるいは更新する対象ファイルを特定する情報を含むものとする。
次に、コマンドが参照か更新かを判断し(ステップ703)、参照の場合には、指定されたフェーズIDに対応するプログラムソースをファイル接続元のプログラムに送信して(ステップ704)、ステップ701に戻る。コマンドが更新の場合は、接続元のプログラムからプログラムソースを受信し(ステップ705)、対応するフェーズIDのディレクトリ下に格納されているプログラムソースと比較して、プログラム名称、比較した結果の差分の削除ソース分と追加ソース分、及び修正日時を、プログラム修正履歴テーブル22C(図4)に登録し(ステップ706)、ステップ705で受信したプログラムソースを対応するフェーズIDのディレクトリ下に格納(上書き)し(ステップ707)、ステップ701に戻って次の接続要求待ち状態に入る。
図8は、クライアントコンピュータ3上で動作する、プログラム編集プログラム32Aの動作を示すフローチャートである。
プログラム編集プログラム32Aが開始すると、編集対象のプログラムソースを特定する情報とフェーズIDの入力を受け(ステップ801)、プログラムソース管理プログラム22Aに接続し(ステップ802)、編集対象のプログラムソースを特定する情報を含む参照コマンドとフェーズIDを送信する(ステップ803)。プログラムソース管理プログラム22Aからプログラムソースを受信し(ステップ804)、そのプログラムを修正する(ステップ805)。修正が完了すると、プログラムソース管理プログラム22Aに接続し(ステップ806)、更新コマンドとフェーズIDを送信(ステップ807)した上で、修正後のプログラムソースを送信し(ステップ808)、ステップ801に戻る。
なお、図8では、ステップ808から801に戻って次のフェーズIDの入力の待ち状態に入るようにしているが、一旦図8の処理を終了して、ユーザによる図8の処理の実行指示があったとき再度ステップ801からの処理を行うようにしてもよい。
1…プログラム静的解析サーバコンピュータ、2…プログラムソース管理サーバコンピュータ、3…クライアントコンピュータ、4…ネットワーク、11、21、31…端末装置、12、22、32…外部記憶装置、12A…プログラム静的解析プログラム、12B…ルール適用結果指摘テーブル、12C…ルール一覧テーブル、22A…プログラムソース管理プログラム、22B…プログラムソース、22C…プログラム修正履歴テーブル、32…Aプログラム編集プログラム。
Claims (1)
- 複数のフェーズの各段階でソースプログラムを編集しながら、フェーズを進めていくことでソースプログラムの開発を行う際に、前記各フェーズにおいてソースプログラムを解析し、コーディングルールに即したコーディングが実施されていない箇所を指摘するプログラム静的解析システムであって、
複数のコーディングルールを、各ルールの重要度とともに、格納したルール格納手段と、
前記ルール格納手段に格納されているコーディングルールを用いて、指定されたフェーズのソースプログラムを解析し、前記コーディングルールを満たしていない箇所を求める静的解析手段と、
前記静的解析手段で前記コーディングルールを満たしていないと指摘された箇所について、前記コーディングルール毎の指摘件数を求め、求めたコーディングルール毎の指摘件数を記憶する手段と、
前回の静的解析で記憶した前記コーディングルール毎の指摘件数と今回の静的解析で記憶した前記コーディングルール毎の指摘件数とを比較し、コーディングルール毎にその減少分を求める手段と、
前記コーディングルール毎に、前記減少分がより大きく、前記指定されたフェーズがより後のフェーズである場合に、より高い重要度となるように、前記ルール格納手段に格納されている当該コーディングルールに対応する重要度を変更する重要度変更手段と、
前記静的解析手段により求めた前記ソースプログラム中のコーディングルールを満たしていない箇所を、そのコーディングルールの重要度とともに、表示する手段と
を備えることを特徴とするプログラム静的解析システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290805A JP2010117897A (ja) | 2008-11-13 | 2008-11-13 | プログラム静的解析システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290805A JP2010117897A (ja) | 2008-11-13 | 2008-11-13 | プログラム静的解析システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010117897A true JP2010117897A (ja) | 2010-05-27 |
Family
ID=42305535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008290805A Pending JP2010117897A (ja) | 2008-11-13 | 2008-11-13 | プログラム静的解析システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010117897A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013134521A (ja) * | 2011-12-26 | 2013-07-08 | Mizuho Information & Research Institute Inc | 解析結果評価システム、解析結果評価方法及び解析結果評価プログラム |
JP2015026365A (ja) * | 2013-07-26 | 2015-02-05 | 富士通株式会社 | ソースコードをポーティングする方法及び装置 |
JP2017520842A (ja) * | 2014-06-13 | 2017-07-27 | ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド | ソフトウェア分析のためのシステムおよび方法 |
US11281566B2 (en) | 2018-07-23 | 2022-03-22 | Mitsubishi Electric Corporation | Scoring device, computer readable medium, and scoring method |
-
2008
- 2008-11-13 JP JP2008290805A patent/JP2010117897A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013134521A (ja) * | 2011-12-26 | 2013-07-08 | Mizuho Information & Research Institute Inc | 解析結果評価システム、解析結果評価方法及び解析結果評価プログラム |
JP2015026365A (ja) * | 2013-07-26 | 2015-02-05 | 富士通株式会社 | ソースコードをポーティングする方法及び装置 |
JP2017520842A (ja) * | 2014-06-13 | 2017-07-27 | ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド | ソフトウェア分析のためのシステムおよび方法 |
US11281566B2 (en) | 2018-07-23 | 2022-03-22 | Mitsubishi Electric Corporation | Scoring device, computer readable medium, and scoring method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589909B2 (en) | Techniques for reducing down time in updating applications with metadata | |
US6618857B1 (en) | Method and system for installing software on a computer system | |
US10110663B2 (en) | Method and system for publishing virtual applications to a web server | |
JP5970617B2 (ja) | 開発支援システム | |
CN107391104B (zh) | 一种客户端与react native代码的更新依赖管理方法、装置及系统 | |
JP2010117897A (ja) | プログラム静的解析システム | |
JP2006277435A (ja) | ソースファイルバージョン管理システム | |
CN115617780A (zh) | 数据导入方法、装置、设备及存储介质 | |
US20110078657A1 (en) | Operation management server, rollback execution method, and rollback execution program | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN111400256B (zh) | 一种应用程序调用资源文件的方法及装置 | |
KR20150096478A (ko) | 프로그래머블 컨트롤러, 프로그래머블 컨트롤러 시스템 및 실행 에러 정보 작성 방법 | |
CN111913733A (zh) | 制作自动升级包方法、装置、计算机设备和存储介质 | |
WO2017036197A1 (zh) | 一种网元模型管理方法及装置 | |
CN111736883A (zh) | 基于数据延迟升级的计算机管理系统热升级方法及装置 | |
CN113220279A (zh) | 一种代码索引管理方法、装置、设备及介质 | |
CN112732265A (zh) | 一种数据处理方法和相关装置 | |
CN109086059B (zh) | 代码加载更新方法、装置及服务器 | |
CN113535206B (zh) | 多版本代码升级方法及系统 | |
CN110321132B (zh) | 一种代码发布方法和装置 | |
CN113590179A (zh) | 插件检测方法、装置、电子设备及存储介质 | |
JP6097231B2 (ja) | プログラム生成装置および方法 | |
US7568197B1 (en) | Method and apparatus for interposing kernel symbols | |
JP2003288210A (ja) | インストールプログラム実行システム及び方法 | |
CN117130987B (zh) | 一种大规模无人机集群的飞控管理方法 |