JP7514785B2 - ソフトウェア性能検証システム、およびソフトウェア性能検証方法 - Google Patents
ソフトウェア性能検証システム、およびソフトウェア性能検証方法 Download PDFInfo
- Publication number
- JP7514785B2 JP7514785B2 JP2021038744A JP2021038744A JP7514785B2 JP 7514785 B2 JP7514785 B2 JP 7514785B2 JP 2021038744 A JP2021038744 A JP 2021038744A JP 2021038744 A JP2021038744 A JP 2021038744A JP 7514785 B2 JP7514785 B2 JP 7514785B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- performance verification
- performance
- partial code
- software
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3616—Analysis of software for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Description
必要なソースコードやデータが出揃うまで性能を検証することができない。また、同文献に記載の技術は、インタプリタ型の言語のように、コンパイルが不要なプログラム言語については想定していない。また、同文献では、新旧ソースコードの性能の低減比率を求めているが、そのためには、変更前後の夫々についてテストデータを準備する必要がある。
用量(resource usage)がある。
の記述言語のいずれでもよい。
れる。性能検証モデル216の実現に用いる機械学習の仕組みとして、例えば、DNN(Deep Neural Network)、サポートベクターマシン(SVM:Support Vector Machine)、決
定木(decision tree)、k近傍法(k-means)がある。性能検証モデル216は、例えば
、特徴量と各特徴量の重みの情報(パラメータ)を含んだ行列により表現される。
14として出力する。
ように、まず、部分コード抽出部は、ソースコード群からソースコードを取得する(S411)。続いて、部分コード抽出部は、取得したソースコードに基づきメソッド間の呼び出し関係を表すグラフを生成する(S412)。続いて、部分コード抽出部は、ソースコードに含まれているメソッドについて、当該メソッドの記述と当該メソッドの関連メソッド群の記述とを含むコードを部分コードとして抽出する(S413)。
「1」、「2」、「3」、「4」を対応づけた単語辞書を生成している。
該部分コードにおける夫々の出現順に並べて得られるベクトルを特徴量ベクトルとして生成している。
満たしているか否かを検証することができる。
用して開発や保守の対象となるソースコードを記述しつつ、当該ソースコードの性能検証を簡便かつ迅速に行うことができる。そのため、ユーザは、ソースコードの性能を随時確認しつつ開発作業や保守作業を進めることができ、性能要求を満たした質の高いソフトウェアを効率よく作成することができる。
づき検証結果115を生成し(S912)、生成した検証結果115をユーザ装置2に送信する(S913)。ユーザ装置2は、検証結果115を受信すると、その内容をユーザに提示する(S914)。
提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10によって提供される機能の全部または一部は、例えば、クラウドシステムがAPI(Application Program Interface)等を介して提供するサービスによって実現して
もよい。また、1つの情報処理装置10を、例えば、性能検証システム1、ユーザ装置2、および共同開発環境60のうちの2つ以上が共用する構成としてもよい。
MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、AI(Artificial Intelligence)チップ等を用いて構成されている。
イブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の記録媒体の読取/書込装置、クラウドサーバの記憶領域等である。補助記憶装置103には、記録媒体の読取装置や通信装置106を介してプログラムやデータを読み込むことができる。補助記憶装置103に格納(記憶)されているプログラムやデータは主記憶装置102に随時読み込まれる。
105によりGUI(Graphical User Interface)等によるユーザインタフェースを実現するソフトウェア、ミドルウェア、各種のアプリケーション等)が導入されていてもよい。
)、RNN(Recurrent Neural Network)等)を用いて実現してもよい。
ICカード、SDカード、DVD等の記録媒体に置くことができる。
ソースコード群、100 性能検証部、111 ソースコード群(検証対象)、112
検証対象メソッドリスト、113 部分コード群(検証対象)、114 特徴量ベクトル群(検証対象)、115 検証結果、120 部分コード抽出部、130 特徴量ベク
トル生成部、140 性能検証処理部、200 モデル学習部、211 ソースコード群(学習用)、212 性能ラベル、213 部分コード群(学習用)、214 特徴量ベクトル群(学習用)、215 学習データ群、216 性能検証モデル、220 部分コード抽出部、230 特徴量ベクトル生成部、240 学習データ生成部、250 学習処理部、S300 部分コード抽出処理、S400 部分コード抽出処理、S500 特徴量ベクトル生成処理、S610 単語辞書生成処理、S620 特徴量ベクトル化処理、S710 学習処理、S810 学習処理
Claims (10)
- 情報処理装置を用いて構成され、
ソフトウェアを構成するプログラムのコードを記憶する記憶部と、
前記コードの一部である部分コードを抽出する部分コード抽出部と、
前記部分コードに基づく特徴量ベクトルを生成する特徴量ベクトル生成部と、
学習用の前記部分コードの前記特徴量ベクトルと、当該部分コードに基づき実現されるソフトウェアを実行することにより取得される、スループット、レスポンスタイム、及びリソース使用量のうちの少なくともいずれかの指標により表された前記ソフトウェアの性能を示す情報である性能情報と、を含む学習データにより学習した機械学習モデルである性能検証モデルを生成する学習処理部と、
前記性能検証モデルに、検証対象の前記部分コードを入力することにより得られる出力に基づく情報を当該部分コードの検証結果として生成する性能検証処理部と、
を備える、ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
前記コードはメソッドの記述を含み、
前記部分コード抽出部は、前記コードからメソッドを単位として前記部分コードを抽出する、
ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
前記コードはメソッドの記述を含み、
前記部分コード抽出部は、一のメソッドの記述と、当該メソッドと呼び出し関係を有する他のメソッドの記述とを含む記述を、前記部分コードとして抽出する、
ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
前記特徴量ベクトル生成部は、前記部分コードから取得されるメトリクス値を要素とするベクトルを前記特徴量ベクトルとして生成する、
ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
前記記憶部は、前記ソフトウェアを記述しているコードに用いられている単語を共通形式に変換して得られる表記と、前記表記の夫々について設定された値とを対応づけた情報を含む単語辞書を記憶し、
前記特徴量ベクトル生成部は、前記部分コードに含まれている単語を共通形式の表記に変換し、前記単語辞書から前記単語の前記表記に対応する値を取得し、取得した値を要素とするベクトルを前記特徴量ベクトルとして生成する、
ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
前記性能検証モデルは、前記部分コードに基づき実現される処理の性能に問題がある確率を出力する、
ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
前記性能検証モデルは、前記部分コードに基づき実現される処理の性能を示す、夫々異なる観点に基づく複数の指標を出力する、
ソフトウェア性能検証システム。 - 請求項2に記載のソフトウェア性能検証システムであって、
前記コードの指定と前記コードに記述されている所定のメソッドの指定をユーザから受け付けるユーザインタフェースを備え、
前記部分コード抽出部は、ユーザが指定した前記コードの前記所定のメソッドの記述を前記部分コードとして抽出する、
ソフトウェア性能検証システム。 - 請求項1に記載のソフトウェア性能検証システムであって、
複数のユーザによって共同開発されている前記コードをリポジトリに管理し、前記コードの前記リポジトリへの登録可否を前記検証結果に応じて判定する、共同開発環境と通信する通信部を更に備え、
前記通信部が前記共同開発環境から前記コードの検証要求を受信すると、
前記部分コード抽出部が、前記コードから前記部分コードを抽出し、
前記特徴量ベクトル生成部が、前記部分コードに基づく特徴量ベクトルを生成し、
前記性能検証処理部は、前記部分コードの前記特徴量ベクトルを前記性能検証モデルに入力して前記検証結果を生成し、前記検証結果を前記共同開発環境に送信する、
ソフトウェア性能検証システム。 - 情報処理装置が、
ソフトウェアを構成するプログラムのコードを記憶するステップと、
前記コードの一部である部分コードを抽出するステップと、
前記部分コードに基づく特徴量ベクトルを生成するステップと、
学習用の前記部分コードの前記特徴量ベクトルと、当該部分コードに基づき実現されるソフトウェアを実行することにより取得される、スループット、レスポンスタイム、及びリソース使用量のうちの少なくともいずれかの指標により表された前記ソフトウェアの性能を示す情報である性能情報と、を含む学習データにより学習した機械学習モデルである性能検証モデルを生成するステップと、
前記性能検証モデルに、検証対象の前記部分コードを入力することにより得られる出力に基づく情報を当該部分コードの検証結果として生成するステップと、
を実行する、ソフトウェア性能検証方法。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021038744A JP7514785B2 (ja) | 2021-03-10 | 2021-03-10 | ソフトウェア性能検証システム、およびソフトウェア性能検証方法 |
| CN202280019451.2A CN116940932A (zh) | 2021-03-10 | 2022-02-14 | 软件性能验证系统及软件性能验证方法 |
| PCT/JP2022/005632 WO2022190772A1 (ja) | 2021-03-10 | 2022-02-14 | ソフトウェア性能検証システム、およびソフトウェア性能検証方法 |
| US18/549,179 US20240168859A1 (en) | 2021-03-10 | 2022-02-14 | Software performance verification system and software performance verification method |
| EP22766737.5A EP4307120B1 (en) | 2021-03-10 | 2022-02-14 | Software performance verification system and software performance verification method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021038744A JP7514785B2 (ja) | 2021-03-10 | 2021-03-10 | ソフトウェア性能検証システム、およびソフトウェア性能検証方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022138708A JP2022138708A (ja) | 2022-09-26 |
| JP7514785B2 true JP7514785B2 (ja) | 2024-07-11 |
Family
ID=83227599
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021038744A Active JP7514785B2 (ja) | 2021-03-10 | 2021-03-10 | ソフトウェア性能検証システム、およびソフトウェア性能検証方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20240168859A1 (ja) |
| EP (1) | EP4307120B1 (ja) |
| JP (1) | JP7514785B2 (ja) |
| CN (1) | CN116940932A (ja) |
| WO (1) | WO2022190772A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12380015B1 (en) * | 2021-06-22 | 2025-08-05 | Synopsys, Inc. | Predicting tests based on change-list descriptions |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016016975A1 (ja) | 2014-07-30 | 2016-02-04 | 株式会社日立製作所 | 開発支援システム |
| US20180276562A1 (en) | 2017-03-24 | 2018-09-27 | Microsoft Technology Licensing, Llc | Bug categorization and team boundary inference via automated bug detection |
| JP2019191929A (ja) | 2018-04-25 | 2019-10-31 | 株式会社日立製作所 | 性能分析方法および管理計算機 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6374369B1 (en) * | 1999-05-21 | 2002-04-16 | Philips Electronics North America Corporation | Stochastic performance analysis method and apparatus therefor |
| US7269824B2 (en) * | 2003-02-13 | 2007-09-11 | Path Reliability, Inc. | Software behavior pattern recognition and analysis |
| US7644397B2 (en) * | 2004-06-19 | 2010-01-05 | Apple Inc. | Software performance analysis using data mining |
| US7653893B2 (en) * | 2005-03-04 | 2010-01-26 | Microsoft Corporation | Methods and apparatus for implementing checkin policies in source code control systems |
| US7937690B2 (en) * | 2006-05-23 | 2011-05-03 | Hewlett-Packard Development Company, L.P. | Evaluating performance of software application |
| US8078556B2 (en) * | 2008-02-20 | 2011-12-13 | International Business Machines Corporation | Generating complex event processing rules utilizing machine learning from multiple events |
| US8972940B2 (en) * | 2010-09-23 | 2015-03-03 | International Business Machines Corporation | Systems and methods for identifying software performance influencers |
| JP2012234448A (ja) | 2011-05-07 | 2012-11-29 | Hitachi Ltd | ソフトウェア性能逐次予測方法及び予測システム |
| US10318400B2 (en) * | 2014-02-13 | 2019-06-11 | Infosys Limited | Methods of software performance evaluation by run-time assembly code execution and devices thereof |
| JP6378128B2 (ja) * | 2015-04-28 | 2018-08-22 | ルネサスエレクトロニクス株式会社 | 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム |
| US10657253B2 (en) * | 2016-05-18 | 2020-05-19 | The Governing Council Of The University Of Toronto | System and method for determining correspondence and accountability between binary code and source code |
| US20180150742A1 (en) * | 2016-11-28 | 2018-05-31 | Microsoft Technology Licensing, Llc. | Source code bug prediction |
| US10680908B2 (en) * | 2017-05-23 | 2020-06-09 | International Business Machines Corporation | User interface with expected response times of commands |
| JP7433085B2 (ja) | 2019-03-06 | 2024-02-19 | 三菱電機株式会社 | システム分析装置 |
-
2021
- 2021-03-10 JP JP2021038744A patent/JP7514785B2/ja active Active
-
2022
- 2022-02-14 CN CN202280019451.2A patent/CN116940932A/zh active Pending
- 2022-02-14 WO PCT/JP2022/005632 patent/WO2022190772A1/ja not_active Ceased
- 2022-02-14 EP EP22766737.5A patent/EP4307120B1/en active Active
- 2022-02-14 US US18/549,179 patent/US20240168859A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016016975A1 (ja) | 2014-07-30 | 2016-02-04 | 株式会社日立製作所 | 開発支援システム |
| US20180276562A1 (en) | 2017-03-24 | 2018-09-27 | Microsoft Technology Licensing, Llc | Bug categorization and team boundary inference via automated bug detection |
| JP2019191929A (ja) | 2018-04-25 | 2019-10-31 | 株式会社日立製作所 | 性能分析方法および管理計算機 |
Non-Patent Citations (1)
| Title |
|---|
| 小堀 一雄 Kazuo KOBORI,メソッド間の依存関係を利用した再利用支援システムの実装 Implementation of Software Reuse Support System Using Dependency of Method Call,電子情報通信学会技術研究報告 Vol.104 No.722 IEICE Technical Report,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,第104巻 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2022190772A1 (ja) | 2022-09-15 |
| CN116940932A (zh) | 2023-10-24 |
| EP4307120A4 (en) | 2025-03-19 |
| EP4307120A1 (en) | 2024-01-17 |
| US20240168859A1 (en) | 2024-05-23 |
| JP2022138708A (ja) | 2022-09-26 |
| EP4307120B1 (en) | 2025-12-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11960867B1 (en) | Using natural language latent representation in automated conversion of source code from base programming language to target programming language | |
| US10656927B2 (en) | Methods, systems, and computer program products for automating releases and deployment of a softawre application along the pipeline in continuous release and deployment of software application delivery models | |
| US7493596B2 (en) | Method, system and program product for determining java software code plagiarism and infringement | |
| Yu et al. | Terminator: Better automated ui test case prioritization | |
| US20190129712A1 (en) | Methods, systems, and computer program products for an integrated platform for continuous deployment of software application delivery models | |
| US20210241273A1 (en) | Smart contract platform | |
| CN120255895A (zh) | 一种代码生成方法及相关设备 | |
| Auffarth | Artificial Intelligence with Python Cookbook: Proven recipes for applying AI algorithms and deep learning techniques using TensorFlow 2. x and PyTorch 1.6 | |
| CN118647968A (zh) | 用于控制工业软件程序的执行的基于用户行为的帮助推荐 | |
| US20230315399A1 (en) | Instinctive Cipher Compilation and Implementation | |
| Wang et al. | Synergy between machine/deep learning and software engineering: How far are we? | |
| JP7514785B2 (ja) | ソフトウェア性能検証システム、およびソフトウェア性能検証方法 | |
| Zhou et al. | Prime: A multi-agent environment for orchestrating dynamic computational workflows in protein engineerings | |
| US11954458B2 (en) | Decision logic translation system and method | |
| US20230409956A1 (en) | Machine learning prediction of additional steps of a computerized workflow | |
| US12079689B1 (en) | Systems and methods for low-code utilization of a computing system | |
| JP7614500B2 (ja) | 解析プログラム、解析方法、および情報処理装置 | |
| CN120029604A (zh) | 训练数据生成方法、装置、设备和介质 | |
| Gliozzo et al. | Transduction is All You Need for Structured Data Workflows | |
| JP2024165175A (ja) | テキスト生成システム | |
| RU2839253C1 (ru) | Способ автоматизации сквозного (end-to-end) тестирования с помощью модели машинного обучения | |
| US20260030361A1 (en) | Auditing and remediating identified security vulnerability in source code using llm | |
| US20250390279A1 (en) | Specification generation device, specification generation method, and recording medium | |
| JP7738208B1 (ja) | ソースコード分析装置、及びソースコード分析方法 | |
| US12493463B1 (en) | System and method for machine learning development |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230216 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240305 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240409 |
|
| 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: 20240625 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240701 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7514785 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |