JP2014153777A - ソースコード検査装置 - Google Patents
ソースコード検査装置 Download PDFInfo
- Publication number
- JP2014153777A JP2014153777A JP2013020836A JP2013020836A JP2014153777A JP 2014153777 A JP2014153777 A JP 2014153777A JP 2013020836 A JP2013020836 A JP 2013020836A JP 2013020836 A JP2013020836 A JP 2013020836A JP 2014153777 A JP2014153777 A JP 2014153777A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- search condition
- statements
- match
- inspection target
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】制御文、メソッド名であるステートメントのシーケンスを検索条件として受け付け、当該検索条件に完全に又は部分的に一致するソースコード中の記載を検索することにより、類似のソースコードを高速、高精度で検索することができるようになる。
【選択図】図1
Description
<<実施形態1>>
<概要>
<機能的構成>
次に「メソッド」とは、ソースコード中から呼び出すことができる、特定の処理を行う命令群である。代表的にはオブジェクト指向におけるオブジェクトへのデータ操作命令を指すが、オブジェクト指向以外の要素を含むプログラミング言語においては、ここに関数等を含めてよいことは当然である。
最後に「シーケンス」とは、順番に並んでいるデータや手順のことである。すなわち、「ステートメントのシーケンス」とは、「制御文やメソッドである(式以外の)命令文の並び」のことである。なお、この「シーケンス」の情報には、プログラム構造の階層情報を含んでもよい。例えばIF文の中にFOR文が出現する場合、IF文を順序1、FOR文を順序2とする順序情報に加え、IF文を階層1、FOR文を階層2とする、階層情報を含むものとしてもよい。
次に、「メソッド名」については、既存のメソッド名の一覧データを用いてパターンマッチングしてもよいし、プログラム言語ごとのメソッド名の表記ルール、例えば、Java(登録商標)であれば「Math.abs()」のように、クラスとメソッドの間にピリオドが、末尾に括弧が付く、などのルールに対してパターンマッチングしてもよい。なお、Java(登録商標)などのオブジェクト指向言語では、上記のように「クラス名.メソッド名」によってメソッドを呼び出す場合の他、「変数名.メソッド名」によってメソッドを呼び出す場合もある。この様な場合は、変数名に対応するクラス名を検索し、「クラス名.メソッド名」という形式に書き換える。これにより、変数名の違いを取り除くものとする。
さらに、階層情報を含めて構造解析する場合は、IF文やWHILE文などの制御文は、その表記ルール上、{}等の記号で囲まれたソースコードが制御の対象であるのだから、{}等の内側にいくほど階層が深くなるものと考えて、階層情報を設定すればよい。
<効果>
<<実施形態2>>
<概要>
<機能的構成>
<効果>
<<実施形態3>>
<概要>
<機能的構成>
<効果>
<<実施形態4>>
<概要>
<機能的構成>
<効果>
<<実施形態5>>
<概要>
<機能的構成>
<効果>
Claims (7)
- 制御文、メソッド名であるステートメントのシーケンスを検索条件として受け付ける検索条件受付手段と、
ソースコードを含む検査対象の指定を受け付ける検査対象指定受付手段と、
指定された検査対象ごとに、指定された検索条件に完全に又は部分的に一致するソースコード中の記載が存在するかを判定するソースコード一致判定手段と、
当該検査対象ごとに、当該ソースコード一致判定手段による判定結果を出力する判定結果出力手段と、
を有するソースコード検査装置。 - ソースコード中の記載又はソースコード記載個所の指定を受け付けることにより、当該ソースコードを構成する制御文、メソッド名であるステートメントのシーケンスを自動的に解析し、検索条件とする検索条件解析手段を、検索条件受付手段の代わりに有する請求項1に記載のソースコード検査装置。
- 検査対象ごとに、検索条件に完全に一致するソースコード中の記載の数、及び/又は部分的に一致するソースコード中の記載の数を計測する一致数計測手段を有する請求項1乃至2に記載のソースコード検査装置。
- 検索条件に部分的に一致するソースコード中の記載を発見した場合に、当該部分的に一致するソースコード中の記載を構成するステートメントが、検索条件であるシーケンスを構成するステートメントに対して一致する割合を計測する、一致割合計測手段を有する請求項1乃至3に記載のソースコード検査装置。
- 検査対象ごとに、検索条件に完全に一致するソースコード中の記載の数、検索条件に部分的に一致するソースコード中の記載の数、及び検索条件に部分的に一致するソースコード中の記載が存在する場合における、当該部分的に一致するソースコード中の記載を構成するステートメントが、検索条件であるシーケンスを構成するステートメントに対して一致する割合、の少なくともいずれかを用いて、検索条件に対するソースコードの類似度を算出する類似度算出手段を有する請求項1乃至4に記載のソースコード検査装置。
- 制御文、メソッド名であるステートメントのシーケンスを検索条件として受け付ける検索条件受付ステップと、
ソースコードを含む検査対象の指定を受け付ける検査対象指定受付ステップと、
指定された検査対象ごとに、指定された検索条件に完全に又は部分的に一致するソースコード中の記載が存在するかを判定するソースコード一致判定ステップと、
当該検査対象ごとに、当該ソースコード一致判定手段による判定結果を出力する判定結果出力ステップと、
とからなるソースコード検査プログラム。 - 請求項6に記載のプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013020836A JP6183636B2 (ja) | 2013-02-05 | 2013-02-05 | ソースコード検査装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013020836A JP6183636B2 (ja) | 2013-02-05 | 2013-02-05 | ソースコード検査装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014153777A true JP2014153777A (ja) | 2014-08-25 |
JP6183636B2 JP6183636B2 (ja) | 2017-08-23 |
Family
ID=51575632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013020836A Expired - Fee Related JP6183636B2 (ja) | 2013-02-05 | 2013-02-05 | ソースコード検査装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6183636B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018828A (zh) * | 2019-03-11 | 2019-07-16 | 深圳市元征科技股份有限公司 | 源代码检查方法、装置及终端设备 |
JP2019125062A (ja) * | 2018-01-12 | 2019-07-25 | カシオ計算機株式会社 | プログラミング支援装置、プログラミング支援方法、およびプログラム |
JP2019197308A (ja) * | 2018-05-08 | 2019-11-14 | 富士通株式会社 | ソースコード変換プログラムおよびソースコード変換方法 |
CN112612516A (zh) * | 2020-12-30 | 2021-04-06 | 瑞庭网络技术(上海)有限公司 | 一种代码处理方法及装置 |
CN116720196A (zh) * | 2023-08-03 | 2023-09-08 | 北京比瓴科技有限公司 | 一种代码同源性检测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006018693A (ja) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | 類似ソースコード抽出プログラム、類似ソースコード抽出装置および類似ソースコード抽出方法 |
JP2009146280A (ja) * | 2007-12-17 | 2009-07-02 | Mitsubishi Electric Corp | レガシーマイグレーション支援システム |
JP2012164211A (ja) * | 2011-02-08 | 2012-08-30 | Hitachi Ltd | ソフトウェアの類似性評価方法 |
-
2013
- 2013-02-05 JP JP2013020836A patent/JP6183636B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006018693A (ja) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | 類似ソースコード抽出プログラム、類似ソースコード抽出装置および類似ソースコード抽出方法 |
JP2009146280A (ja) * | 2007-12-17 | 2009-07-02 | Mitsubishi Electric Corp | レガシーマイグレーション支援システム |
JP2012164211A (ja) * | 2011-02-08 | 2012-08-30 | Hitachi Ltd | ソフトウェアの類似性評価方法 |
Non-Patent Citations (3)
Title |
---|
三宅達也、石尾 隆、谷口考治、井上克郎: "メソッド呼び出しパターンとして現れる横断的関心事の検出", 電子情報通信学会技術研究報告, vol. 107, no. 99, JPN6016041378, 14 June 2007 (2007-06-14), JP, pages 1 - 6, ISSN: 0003428288 * |
河合茂樹、山本晋一郎、阿草清滋: "既存プログラムからの規範パターン獲得とそれに基づくコーディングチェッカ", レクチャーノート/ソフトウェア学19:ソフトウェア工学の基礎IV, vol. 初版, JPN6016041380, 20 December 1997 (1997-12-20), JP, pages 99 - 106, ISSN: 0003578351 * |
関本理佳、海尻賢二: "プログラムパターンを利用したプログラミングスタイルの診断システム", 電子情報通信学会技術研究報告, vol. 98, no. 636, JPN6016041379, 4 March 1999 (1999-03-04), JP, pages 37 - 44, ISSN: 0003578350 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019125062A (ja) * | 2018-01-12 | 2019-07-25 | カシオ計算機株式会社 | プログラミング支援装置、プログラミング支援方法、およびプログラム |
JP7020127B2 (ja) | 2018-01-12 | 2022-02-16 | カシオ計算機株式会社 | プログラミング支援装置、プログラミング支援方法、およびプログラム |
JP2019197308A (ja) * | 2018-05-08 | 2019-11-14 | 富士通株式会社 | ソースコード変換プログラムおよびソースコード変換方法 |
JP7040272B2 (ja) | 2018-05-08 | 2022-03-23 | 富士通株式会社 | ソースコード変換プログラムおよびソースコード変換方法 |
CN110018828A (zh) * | 2019-03-11 | 2019-07-16 | 深圳市元征科技股份有限公司 | 源代码检查方法、装置及终端设备 |
CN110018828B (zh) * | 2019-03-11 | 2023-02-28 | 深圳市元征科技股份有限公司 | 源代码检查方法、装置及终端设备 |
CN112612516A (zh) * | 2020-12-30 | 2021-04-06 | 瑞庭网络技术(上海)有限公司 | 一种代码处理方法及装置 |
CN112612516B (zh) * | 2020-12-30 | 2024-05-03 | 瑞庭网络技术(上海)有限公司 | 一种代码处理方法及装置 |
CN116720196A (zh) * | 2023-08-03 | 2023-09-08 | 北京比瓴科技有限公司 | 一种代码同源性检测方法及系统 |
CN116720196B (zh) * | 2023-08-03 | 2023-11-07 | 北京比瓴科技有限公司 | 一种代码同源性检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6183636B2 (ja) | 2017-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089296B2 (en) | System and method for sentiment lexicon expansion | |
US10789429B2 (en) | Visualizing comment sentiment | |
US9043759B1 (en) | System and method for generating software unit tests simultaneously with API documentation | |
JP6183636B2 (ja) | ソースコード検査装置 | |
US9098626B2 (en) | Method and system for log file processing and generating a graphical user interface based thereon | |
JP2015043198A (ja) | 解析システム、解析方法および解析プログラム | |
CN111090641A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
JP6440895B2 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
JP2003044275A (ja) | 変更危険度測定システム、変更危険度測定方法及び変更危険度測定プログラム | |
US20190272158A1 (en) | Program code generation apparatus | |
US8996357B2 (en) | Method for generating diagrams, and information processing apparatus for same | |
JP2007140861A (ja) | 情報処理システム、情報処理方法、およびプログラム | |
US20130185698A1 (en) | Simplifying analysis of software code used in software systems | |
US20150081273A1 (en) | Machine translation apparatus and method | |
CN103049504A (zh) | 基于源代码查询的半自动插桩方法 | |
US10755033B1 (en) | Digital content editing and publication tools | |
CN110618926A (zh) | 源代码分析方法和源代码分析装置 | |
CN117010345A (zh) | 一种函数文档的生成方法、装置、设备及存储介质 | |
JP2009230420A (ja) | ソースコード品質管理装置 | |
Carvalho et al. | DMOSS: Open source software documentation assessment | |
US20160292067A1 (en) | System and method for keyword based testing of custom components | |
CN107153564B (zh) | 一种词法解析工具 | |
Milovanović | Python data visualization cookbook | |
CN109933799A (zh) | 语句拼接方法以及装置 | |
JP2016085681A (ja) | 特許書類品質検査装置、特許書類品質検査方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170525 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170602 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170712 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6183636 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |