JP2012234448A - Software performance sequentially-predicting method and predicting system - Google Patents
Software performance sequentially-predicting method and predicting system Download PDFInfo
- Publication number
- JP2012234448A JP2012234448A JP2011103904A JP2011103904A JP2012234448A JP 2012234448 A JP2012234448 A JP 2012234448A JP 2011103904 A JP2011103904 A JP 2011103904A JP 2011103904 A JP2011103904 A JP 2011103904A JP 2012234448 A JP2012234448 A JP 2012234448A
- Authority
- JP
- Japan
- Prior art keywords
- performance
- function
- software
- source code
- change
- 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
- Stored Programmes (AREA)
Abstract
Description
本発明は、ソフトウェアの性能逐次予測方法及びシステムに係り、特に、そのソフトウェアの開発時におけるソースコードの登録方法、並びに性能管理方法に関する。 The present invention relates to a software performance sequential prediction method and system, and more particularly, to a source code registration method and a performance management method during software development.
組込みシステムの高機能化と多機能化に伴い、組込みシステムの主たる構成要素である組込みプロセッサ上で動作する組込みソフトウェアの記述量は肥大化している。この高機能化と多機能化により、組込みソフトウェアの機能や品質の確保が重大な課題となっている。更に、高機能化や多機能化に加え、組込みシステムにはリアルタイム応答性などの性能に関する要求も含まれる。 With the increasing functionality and functionality of embedded systems, the amount of description of embedded software running on embedded processors, which are the main components of embedded systems, is growing. Ensuring the functionality and quality of embedded software has become a critical issue due to this high functionality and multi-functionality. Furthermore, in addition to high functionality and multi-functionality, embedded systems also include performance requirements such as real-time responsiveness.
現状の組込みソフトウェア開発の現場では、高機能化と多機能化に伴い、機能品質を確保するため、複雑な機能実装を優先して行う傾向にあり、リアルタイム性などの性能対策は機能実装後に実施されることがある。そのため、性能対策のための十分な時間の確保が出来ずに、性能未達という問題が発生することがある。 In the current embedded software development field, along with high functionality and multi-functionality, in order to ensure functional quality, there is a tendency to prioritize complex functional implementation, and performance measures such as real-time performance are implemented after functional implementation May be. Therefore, a sufficient time for performance measures cannot be ensured, and a problem that performance is not achieved may occur.
性能対策は、実際の組込みシステム上で組込みソフトウェアを動作させ、その性能プロファイル結果を元に性能ボトルネックとなっている箇所を特定し、組込みソフトウェアに対して性能対策を実装し、再び組込みシステム上にて対策した組込みソフトウェアを実行して性能測定するという、繰り返しのプロセスによって実現される。本方法には2つの課題が存在する。 For performance measures, run the embedded software on the actual embedded system, identify the location that is the performance bottleneck based on the performance profile results, implement the performance measures for the embedded software, and then again on the embedded system. This is realized by an iterative process of executing the embedded software that measures the above and measuring the performance. There are two problems with this method.
1つ目は、性能測定のために、実際に組込みソフトウェアを実行する組込みシステムが必要であり、開発コストが高額になる。2つ目の課題は、組込みソフトウェアの性能測定を伴う実行を繰り返し行う必要があるため、その実行時間により、開発期間が長期化することである。 First, an embedded system that actually executes embedded software is required for performance measurement, which increases the development cost. The second problem is that since it is necessary to repeatedly execute execution with performance measurement of embedded software, the development period is prolonged due to the execution time.
これらの課題に対し、組込みソフトウェアを実際の組込みシステム上で実行するのではなく、ソフトウェアの処理時間、あるいは処理に必要な記憶容量等の性能をソースコードの状態で評価する方法が提案されている。 In response to these issues, a method has been proposed in which embedded software is not executed on an actual embedded system, but the performance of the software, such as the processing time or the storage capacity required for processing, is evaluated in the state of the source code. .
特許文献1には、ソフトウェアコンポーネント単位での性能予測を行う「ソフトウェアコンポーネントの性能測定を基にしたシステム性能予測方式および方法」が開示されている。ソフトウェアコンポーネントとは、通信コンポーネント、適用コンポーネント、データベース・コンポーネントなどで構成され、コンポーネント毎にCPU使用時間などの性能情報を定義したデータベースを有する。本方式では、複数のコンポーネントが連続的に実行された場合の総処理時間を、データベースに格納された性能情報を元に予測するものである。特許文献1によれば、実際の組込みシステム上で修正した組込みソフトウェアを実行することなく、修正ソフトウェアの性能を予測することが可能となる、と記載されている。更に、修正したソフトウェアにて、再度、性能を測定し、修正ソフトウェアとその性能情報のペアをデータベースにて保持することにより、常に、最新のソフトウェアの性能を管理することが出来ると共に、新たに修正したソフトウェアに対する性能に関し、高い予測精度を維持することが可能となる、と記載されている。
先に述べたように、組込みシステムの高機能化と多機能化に伴い、組込みソフトウェアのコード規模は増大している。コード規模の増大に従い、1つの組込みシステムを実現するために必要な組込みソフトウェアの開発者数が増加し、組込みシステム内の1つの一連機能(換言するとモジュール)についても、複数の開発者で開発する開発スタイルが主流となっている。特に、開発規模が大きい場合、オフショア開発など、複数のソフトウェア開発者が空間的にも時間的にも分散して、1つの一連機能を開発することもある。 As described above, the code size of embedded software is increasing with the increase in functionality and functionality of embedded systems. As the code scale increases, the number of embedded software developers required to realize one embedded system increases, and one series of functions (in other words, modules) in an embedded system is developed by multiple developers. Development style has become mainstream. In particular, when the development scale is large, a plurality of software developers, such as offshore development, may develop a series of functions by being dispersed both spatially and temporally.
特許文献1で示した性能予測手法は、1つのソフトウェア修正に対し、性能予測を実施し、性能低下が発生しない場合、その修正したソフトウェアをデータベースに登録すると共に、再度、修正したソフトウェアを元に性能を測定し、その性能情報をデータベースに登録する方式である。本手法にて、複数人が1つの一連機能を修正する場合、個別のソフトウェア修正単位で性能測定が必要となり、結果的に、先に示した課題である、実際の組込みシステムによる、修正した組込みソフトウェアの実行を通した性能測定を繰り返し実行しなければならない。
The performance prediction method shown in
このように、複数人で開発する大規模なソフトウェア開発において、実際の組込みシステム上での組込みソフトウェア実行による性能測定が必要であり、それに伴う、設計プロセスの後工程での手戻りの発生、ひいては開発に要する時間の増加や開発コストの増大、という事態が避けられない。 In this way, in large-scale software development with multiple people, it is necessary to measure the performance by executing embedded software on an actual embedded system, and as a result, the occurrence of rework at the later stage of the design process, and consequently Increasing development time and development costs are inevitable.
本発明が解決しようとする課題は、この実際の組込みシステム上での組込みソフトウェア実行による性能測定を回避し、性能の予測見積りにより判定することで、性能向上と品質向上を可能にしたソフトウェア性能逐次予測方法及び予測システム方法を提供することにある。 The problem to be solved by the present invention is to avoid the performance measurement by executing the embedded software on the actual embedded system, and to determine the performance based on the estimated estimation of the performance, thereby enabling the performance improvement and the quality improvement. The object is to provide a prediction method and a prediction system method.
本願において開示される発明の代表的なものを示すと、次の通りである。本発明のソフトウェア性能逐次予測方法は、ソフトウェア性能予測システムにより、ソースコードの変更に伴うソフトウェアの性能を予測するソフトウェア性能逐次予測方法であって、前記ソフトウェア性能予測システムは、前記ソフトウェアを登録するデータベースを備えており、かつ、複数の端末に接続可能に構成されており、前記複数の端末の少なくとも1つから前記ソフトウェアの開発に伴う初期ソースコードもしくは変更ソースコードの入力を受け付け、ソースコード情報として、前記データベースに登録し、前記変更ソースコードによる前記ソフトウェアの性能を登録済の前記ソースコード情報に含まれる旧ソースコードによる前記ソフトウェアの性能と比較して、新旧ソースコードの性能の低減比率を算出し、該性能の低減比率が所定の値を超えるか否かを判定し、前記性能低減比率が前記所定の値を超える場合、外部に前記判定結果を通知することを特徴とする。 Representative examples of the invention disclosed in the present application are as follows. The software performance sequential prediction method of the present invention is a software performance sequential prediction method for predicting the performance of software accompanying a change in source code by a software performance prediction system, wherein the software performance prediction system is a database in which the software is registered. And is configured to be connectable to a plurality of terminals, accepting input of initial source code or changed source code accompanying development of the software from at least one of the plurality of terminals, as source code information The ratio of the performance of the old and new source code is calculated by comparing the performance of the software by the modified source code with the performance of the software by the old source code included in the registered source code information. And the reduction ratio of the performance There determines whether more than a predetermined value, when the performance reduction ratio exceeds the predetermined value, and notifies the determination result to the outside.
本発明によれば、組込みソフトウェア実行による性能測定を回避し、生成された変更情報の採用の可否を性能の予測見積りにより判定する。これにより、複数人の共同作業になるソフトウェア開発においても、各ソフトウェア修正単位で、その性能の変化を管理し、複数の修正箇所のうち性能劣化箇所の抽出を容易に実現する。そのため、組込みソフトウェアの性能劣化を抑止すると共に、開発コストを削減できる。 According to the present invention, performance measurement due to execution of embedded software is avoided, and whether or not the generated change information can be adopted is determined by predicting performance. As a result, even in software development that is a joint work of a plurality of people, a change in performance is managed in each software correction unit, and a performance deterioration portion among a plurality of correction portions can be easily realized. Therefore, it is possible to suppress the performance degradation of the embedded software and reduce the development cost.
ここで、上記の課題を解決するために、ソフトウェアの性能予測方法、システムに関して、本願において開示される発明の代表的な実施の形態について概要を説明する。
本発明は、組込みシステムの構成要素の1つであるCPU上で動作するソフトウェアに関し、そのソフトウェア開発時、開発者が、初期のソースコードやそれを変更した以前のソースコード(旧ソースコード)を変更した新たなソフトウェア(以下、変更ソースコード)を、バージョン管理システムなどのデータベースに登録する方法に関するものである。具体的には、変更ソースコードをバージョン管理システムに対して登録要求した時点で、過去の変更履歴のデータ(以下、変更情報)が格納されたデータベースを参照し、今回の変更箇所が過去に変更されたかを検索し、履歴があった場合に、その変更情報に格納された情報と今回の変更を比較することで、性能測定を実施せずに、性能を予測して見積もりを行う。比較の際には、アセンブラ命令を用いる。本方式により、開発者はソースコード変更の際に、性能測定を実施せずに性能劣化を防ぐことが可能となり、システム設計のトータル工数の削減と、ソフトウェア品質の高品質化が可能となる。
Here, in order to solve the above-described problems, an outline of a typical embodiment of the invention disclosed in the present application will be described regarding a software performance prediction method and system.
The present invention relates to software that runs on a CPU, which is one of the components of an embedded system, and at the time of software development, the developer uses the initial source code and the previous source code (old source code) that changed the source code. The present invention relates to a method of registering new changed software (hereinafter, changed source code) in a database such as a version control system. Specifically, when a change source code is requested to be registered to the version control system, the change location of this time is changed in the past by referring to a database storing past change history data (hereinafter referred to as change information). If there is a history, the information stored in the change information is compared with the current change, and the performance is estimated and estimated without performing the performance measurement. Assembler instructions are used for comparison. With this method, developers can prevent performance degradation without performing performance measurement when changing source code, reducing total system design man-hours and improving software quality.
本発明におけるソフトウェア性能予測システムは、変更ソースコードを入力とする。判定部は、ソースコードと、後述するデータベースに格納された様々な情報を利用して、変更ソースコードが、その変更により性能影響(処理時間の増減)をもたらすか否かを判定し、判定した結果である判定結果を出力し、その判定結果をソフトウェア開発者に通知するための表示装置である通信部に入力する。また、判定部の更なる機能は、変更ソースコードが、過去に登録されたソースコードと比較して、どのような変更がもたらされたか、また、どのような性能影響(処理時間の増減)をもたらすかを示す変更情報を生成する手段を有する。変更情報は、データベース構築部に入力され、データベース構築部は、変更情報をデータベースに格納するために、そのフォーマット変換などを行う手段を有する。 The software performance prediction system according to the present invention receives the changed source code as input. The determination unit uses the source code and various information stored in a database to be described later to determine whether or not the changed source code has a performance impact (increase / decrease in processing time) due to the change. A determination result as a result is output, and the determination result is input to a communication unit which is a display device for notifying the software developer. In addition, the determination unit has additional functions such as what changes have been made in the source code compared to the source code registered in the past, and what kind of performance impact (increase / decrease in processing time) Means for generating change information indicating whether or not The change information is input to the database construction unit, and the database construction unit has means for performing format conversion and the like in order to store the change information in the database.
判定部は変更ソースコードと過去に登録されたソースコードを入力とし、2つの入力の差分から、変更ソースコードのどの関数に対して変更が生じたかを判断し、変更関数名を出力する。また、変更ソースコードをコンパイルし、対象となる変更関数のアセンブラ命令数を算出する。判定部は、変更関数名を元に、データベースに格納された関数単位アセンブラ命令数と変更情報のうち、性能増減比率情報から、対象の修正によって生じる性能の増減(処理時間の増減)を予測し、変更情報として出力する。得られた性能増減比率がある一定の数値を上回った場合、登録者に通知する。これにより、性能の著しい劣化を未然に防ぐことができる。 The determination unit receives the changed source code and the source code registered in the past, determines which function of the changed source code has changed from the difference between the two inputs, and outputs the changed function name. Also, the modified source code is compiled and the number of assembler instructions for the target modified function is calculated. Based on the name of the changed function, the determination unit predicts the performance increase / decrease (increase / decrease in processing time) caused by the target modification from the performance increase / decrease ratio information among the number of function unit assembler instructions stored in the database and the change information. And output as change information. When the obtained performance increase / decrease ratio exceeds a certain value, the registrant is notified. Thereby, remarkable deterioration of performance can be prevented in advance.
このように、本発明よれば、ソースコード上の個別の変更ごとの情報をストックしておき、静的解析の情報や、すでに取得済みの実行情報と組み合わせることで、新たに加えた変更が性能を劣化させるか、また、その効果の影響を予測することで、性能測定のコストを削減し、登録前に開発者に知らせることで著しい性能劣化を事前に防ぐことができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
In this way, according to the present invention, information for each individual change on the source code is stocked and combined with static analysis information or already acquired execution information, so that newly added changes can be performed. Or predicting the effect of the effect, it is possible to reduce the cost of performance measurement and to notify the developer before registration, so that significant performance degradation can be prevented in advance.
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
本発明の一実施例となるソフトウェアの性能予測方法について、まず、概要を説明する。本発明は、組込みシステムの構成要素の1つであるCPU上で動作するソフトウェアに関し、そのソフトウェア開発時、開発者が変更したソフトウェア(以下、変更ソースコード)をバージョン管理システムなどのデータベースに登録する方法に関するものである。変更ソースコードをバージョン管理システムに登録する際に、変更ソースコードにもたらされた変更による性能への影響を予測により見積ることで、著しく性能が劣化する恐れがある場合に、ソフトウェア開発者やバージョン管理システムの管理者に性能劣化の影響を通知し、変更ソースコード登録の事前に、性能劣化の防止を可能とする。具体的には、変更ソースコードをバージョン管理システムに対して登録要求した時点で、過去の変更履歴のデータ(以下、変更情報)が格納されたデータベースを参照し、今回の変更箇所が過去に変更されたかを検索し、履歴があった場合に、その変更情報に格納された情報と今回の変更を比較することで、性能測定を実施せずに、性能を予測して見積もりを行う。比較の際には、アセンブラ命令を用いる。アセンブラ命令とは、CPUに処理を行わせるための機械語を人間にわかりやすい形で記述したもので、C言語などの高級言語に比べ、処理の粒度が細かい低級言語である。このアセンブラ命令を用いることによって細かい変更による性能影響(処理時間の増大・スループット低下)を見積もることができる。本方式により、開発者はソースコード変更の際に、性能測定を実施せずに性能劣化を防ぐことが可能となり、システム設計のトータル工数の削減と、ソフトウェア品質の高品質化が可能となる。 An outline of a software performance prediction method according to an embodiment of the present invention will be described first. The present invention relates to software that runs on a CPU, which is one of the components of an embedded system, and registers the software changed by the developer (hereinafter referred to as changed source code) in a database such as a version control system when the software is developed. It is about the method. When registering the change source code in the version control system, if there is a risk that the performance will be significantly degraded by estimating the impact on the performance of the change caused by the change source code, the software developer or version Notify the administrator of the management system of the impact of performance degradation and enable performance degradation to be prevented before registering the changed source code. Specifically, when a change source code is requested to be registered to the version control system, the change location of this time is changed in the past by referring to a database storing past change history data (hereinafter referred to as change information). If there is a history, the information stored in the change information is compared with the current change, and the performance is estimated and estimated without performing the performance measurement. Assembler instructions are used for comparison. The assembler instruction is a machine language for causing the CPU to perform processing described in a form that is easy for humans to understand, and is a low-level language with finer processing granularity than a high-level language such as C language. By using this assembler instruction, it is possible to estimate the performance effect (increase in processing time / decrease in throughput) due to small changes. With this method, developers can prevent performance degradation without performing performance measurement when changing source code, reducing total system design man-hours and improving software quality.
次に、図1から図8を用いて、本発明の一実施例となるソフトウェアの性能予測方法について、詳細に説明する。 Next, a software performance prediction method according to an embodiment of the present invention will be described in detail with reference to FIGS.
図1は、本発明におけるソフトウェア性能予測システム10の構成を説明するための図である。ソフトウェア性能予測システム10は、ソースコードの変更による著しい性能劣化を抑止するため、変更による性能影響(処理時間の増減)を予測するシステムである。このソフトウェア性能予測システム10には、ネットワーク40を介して、複数のソフトウェア開発者Pa〜Pnの端末20(20−1〜20−n)が接続される。これら複数のソフトウェア開発者は、1つの一連機能を含む組込みソフトウェアを開発するメンバーであり、空間的にも時間的にも分散して存在する。複数の端末20−1〜20−nは、空間的に分散する複数の開発拠点C1〜Cnの何れかに属する。また、ソフトウェア性能予測システム10には、プロジェクト管理者Mの端末30も接続される。
FIG. 1 is a diagram for explaining the configuration of a software
ソフトウェア性能予測システム10には、端末20や端末30から初期ソースコード202、変更ソースコード500、その他ソフトウェア開発に必要な情報が入力され、後述するデータベース200に登録・格納される。
The software
ソフトウェア性能予測システム10は、コンピュータ上でプログラムを実行することにより実現される機能として、データベース構成部100、判定部300及び通知部400を備えている。端末20、30は、ソフトウェア性能予測システム10にアクセスし、初期ソースコード202や変更ソースコード500その他ソフトウェア開発に必要な情報を編集・入力する機能及び、ソフトウェア性能予測システム10からソフトウェア開発に必要な情報を取得する機能を有している。
The software
ソフトウェア性能予測システム10の判定部300は、初期ソースコード202及び変更ソースコード500と、データベース200に格納された様々な情報を利用して、変更ソースコード500が、その変更により性能影響(処理時間の増減)をもたらすか否かを判定し、判定した結果である判定結果700を出力し、入出力部900を介してその判定結果をソフトウェア開発者の端末20やプロジェクト管理者Mの端末30に通知するための通信部400に入力する。また、この判定結果は、入出力部900にも表示される。
The
また、判定部300の更なる機能は、変更ソースコード500が、過去に登録された登録済みのソースコードと比較して、どのような変更がもたらされたか、また、どのような性能影響(処理時間の増減)をもたらすかを示す変更情報250を生成する手段を有する。変更情報250は、データベース構築部100に入力され、データベース構築部100は、変更情報250をデータベース200に格納するために、そのフォーマット変換などを行う手段を有する。
Further, a further function of the
図2は、データベース構成部100の詳細を示した図である。データベース構成部100は、初期ソースコード202、変更ソースコード500、及び生成された変更情報250のデータベース200への登録と、ソースコード情報201を生成する機能を有する。データベース構築部100は、データの入出力を制御する情報入出力制御部101と、初期ソースコード202からコールグラフ106とアセンブラ命令107を生成するコンパイル部102と、コンパイル部102から出力されたコールグラフ106から参照関係(関数構造情報203)を生成する関数構造情報生成部103と、コンパイル部102から出力されたアセンブラ命令107を関数単位アセンブラ命令に切り分け関数単位アセンブラ命令数204を抽出する関数単位アセンブラ命令数抽出部104から構成される。
FIG. 2 is a diagram showing details of the
情報入出力制御部101では、変更情報250が入力されたとき、データベース200へ登録する。初期ソースコード202や変更ソースコード500が入力されたとき、コンパイル部に渡す。関数構造情報203と関数単位アセンブラ命令数204が入力されたとき、初期ソースコード202や変更ソースコード500と併せてソースコード情報201として、データベース200へ登録する。コンパイル部102では入力された初期ソースコード202や変更ソースコード500をコンパイルし、コールグラフ106とアセンブラ命令107を生成する。関数構造情報生成部103では、入力されたコールグラフ106から、各関数が何回コールされているかの情報を関数構造情報203として出力する。関数単位アセンブラ命令数抽出部104では、入力されたアセンブラ命令107から、アセンブラ命令数を関数単位に切り分けし、関数単位アセンブラ命令数204として出力する。
When the
図3Aは、データベース200に格納する3種類の情報を説明するための図である。第1の情報であるソースコード情報201は、過去に登録された初期ソースコード202や変更ソースコード500と、そのソースコード202や変更ソースコード500の関数構造を示す関数構造情報203と、関数毎のコンパイル結果から導き出される各関数単位のアセンブラ命令数204からなる。関数構造情報203は、関数毎の関数コール回数を含む。第2の情報である変更情報250は、変更ソースコード500にて変更された関数名を示す変更関数名251と、その変更関数に対し、コンパイルによって得られたアセンブラ命令数を示す修正関数アセンブラ命令数252と、本修正により増減する性能を示す性能増減比率情報253からなる。データベース200には、ソースコード情報201や変更情報250に保持されない、性能増減や判定結果等に関するその他の情報260も適宜、格納される。
FIG. 3A is a diagram for explaining three types of information stored in the
図3Bは、本発明における、ソフトウェア開発時、バージョン管理システムなどによりデータベースに登録された、初期ソースコード及び変更ソースコードの概念を示す図である。ソースコードは、ソフトウェア開発の進展に伴い、逐次最新のバージョンに更新される。ソースコードは、その記述を複数の機能Fa〜Fxに分解することができる。そして、1つあるいは複数の機能を組み合わせて、1つのモジュールとなり、これらのモジュールA〜Nにより、要求される各種要求を満たす1つの組込みソフトウェアが完成する。各機能Fa〜Fxは、夫々、一人あるいは複数の開発者により、同じ空間あるいは分散した空間、同じ時間あるいは異なる時間おいて、開発され、更新される。すなわち、ソースコードの1つの一連機能が複数人により開発される。 FIG. 3B is a diagram showing the concept of the initial source code and the changed source code registered in the database by the version management system or the like during software development in the present invention. The source code is sequentially updated to the latest version as the software development progresses. The source code can be decomposed into a plurality of functions Fa to Fx. One or a plurality of functions are combined into one module, and one embedded software that satisfies various required requirements is completed by these modules A to N. Each of the functions Fa to Fx is developed and updated by one or a plurality of developers in the same space or distributed space, at the same time or at different times. That is, a single function of the source code is developed by multiple people.
図4は、ソフトウェア性能予測システム10の判定部300の構成を説明するための図である。判定部300は、変更関数抽出部301と、アセンブラ命令数抽出部302と、関数コール数算出部303と、変更情報生成部304から構成される。変更関数抽出部301は、最新の変更ソースコード500と過去に登録された初期ソースコード202や変更ソースコード500を入力とし、新旧2つの入力ソースコードの差分から、変更ソースコード500のどの関数に対して変更が生じたかを判断し、変更関数名251を出力する。アセンブラ命令数抽出部302は、変更関数名251を元に、変更ソースコード500をコンパイルし、対象となる変更関数のアセンブラ命令数252を算出する。関数コール数算出部303は、変更関数名251を元に、関数構造情報203から、変更対象の関数の関数コール回数307を算出する。変更情報生成部304は、変更関数名251、変更関数アセンブラ命令数252、関数コール回数307、並びに、データベース200に格納された関数単位アセンブラ命令数204と、変更情報250のうちの性能増減比率情報253を入力とし、対象の修正によって生じる性能の増減(処理時間の増減)を予測し、変更情報250として出力する。
FIG. 4 is a diagram for explaining the configuration of the
図5は、変更情報生成部304による変更情報250の生成手段を説明するための図である。変更情報生成部304は、減算器320、変更関数影響度算出部321、乗算器322、加算器323、及び、性能劣化検出部327を備えている。アセンブラ命令数抽出部302により生成された変更関数アセンブラ命令数252とデータベース200に格納された関数単位アセンブラ命令数204は、減算器320に入力され、変更によって生じたアセンブラ命令数の差分値324が生成される。また、関数単位アセンブラ命令数204と変更関数名251は、変更関数影響度算出部321に入力される。変更関数影響度算出部321は、変更関数名251で指示された変更関数が、全関数に対してどの程度占有しているかを示す変更関数影響度指標325を生成する。本変更関数影響度指標325の有効範囲は0から1であり、対象とする変更関数が、全関数に対して、殆ど影響しない場合、値は0に近づき、全関数に対して、非常に大きな影響をもたらす場合には、値は1に近づく。本実施形態の説明では、説明を容易とするために、本変更関数影響度指標325を全関数のアセンブラ命令数に対する変更対象関数のアセンブラ行数として説明する。しかしながら、本変更関数影響度指標325の生成方式には、一例であった、本生成方式に関し、限定を持たない。
FIG. 5 is a diagram for explaining a means for generating
生成されたアセンブラ命令数の差分値324、変更関数影響度指標325、並びに対象となる変更関数の関数コール回数307は、乗算器322にて掛け算を行い、性能増減比率情報253を出力する。本性能増減比率情報253は、対象となる修正により生じた性能の増減値の割合を示す。
The generated
本性能増減比率情報253は、ソースコードを登録する度に、データベース200内の性能増減比率情報253として、履歴を蓄積する。本蓄積により、過去の各ソースコード修正によって発生した性能の増減を保持することが出来る。過去に登録された性能増減比率情報253と、新たに生成した性能増減比率情報253を加算器323で加算することで、現在の修正によって、オリジナルのソースコード202あるいは500からの性能の増減を示す、変更情報(X)250を得ることが出来る。この変更情報(X)250の中の性能低減比率に関するデータは、性能劣化検出部327で所定値αと比較され、X>αの場合、性能劣化として検出され、その旨を通知する判定結果700の情報が生成され、該当する端末等を経て関係者に通知されると共にデータベース200に記録される。性能劣化が検出されなかった場合には、この変更情報(X)250に基づいてデータベース200のソースコードに関する情報が更新される。なお、この変更情報(X)250の中には、性能増加比率に関するデータも含まれるが、この情報は、関係者に通知されるのが望ましいものの、逐一通知することが必須ではない。性能増加比率に関するデータの利用に関しては、例えば、データベース200に記録を残し、プロジェクト管理者Mに、同様な機能を有するソースコード他の部分にも反映させるか否か等の判断させるようにしても良い。
The performance increase /
図6は、本発明におけるソフトウェア性能予測システム10の動作フローを示したものである。本ソフトウェア性能予測システムは、ソフトウェア開発者が変更ソースコードをバージョン管理システムに登録する際に動作する。ソースコードの入力を受け付けると(ステップS100)、変更ソースコードか否かを判定する(S101)。入力が変更ソースコード500の場合はステップS102に移り、初期ソースコード202の場合は変更情報600を生成するステップS108に移る。変更ソースコード500の登録要求を発行すると(ステップS102)、変更ソースコード500は後述の判定部300に入力される(ステップS103)。判定部300で、変更ソースコード500と後述するデータベース200に登録されている変更情報600の比較を実施する(ステップS104)。ステップS104で判定部300が生成した変更情報の性能低減比率Xがある一定値αを超えた場合(ステップS105)、登録者に性能劣化の可能性を通知する(ステップS106)。なお、ある変更ソースコード500が性能低減するものであったとしても、その工程の状況等によっては、それを一連機能あるいは組込みソフトウェアの一部として採用せざるを得ない場合もある。この判断は、性能向上、品質向上、設計プロセスの後工程での手戻り等を総合的に勘案してなされるべきものであり、登録者やプロジェクト管理者Mに判断が委ねられる。もし、性能が低減する変更ソースコード500を採用する場合には、変更情報を生成するステップS108に移る。もし、性能が低減する変更ソースコード500を採用しない場合には、その変更ソースコード500に代わるものとして、以前のバージョンのソースコードを利用する等、登録者やプロジェクト管理者Mの対応指示を受け付ける。また、性能増減比率情報253に含まれる性能増加比率に関するデータも、データベース200に登録される。このようにして作成された変更情報や、対応指示の情報をデータベース200に登録して(ステップS110)、一連の処理を終了する。
FIG. 6 shows an operation flow of the software
図7は、図6の判定処理S104の詳細の動作フローを示したものである。まず、入力された変更ソースコード500から変更関数名251と関数コール回数307と変更関数アセンブラ命令数252を抽出する。次に、変更関数アセンブラ命令数252とデータベース200の関数単位アセンブラ命令数204との差分値324を求める(ステップS1031)。関数単位アセンブラ命令数204と変更関数名251から変更関数影響度指標325を求める(ステップS1032)。ステップS1031で求めた差分値324とステップS1032で求めた変更関数影響度指標325と関数コール回数307から、性能増減比率情報253を求める(S1033)。求めた性能増減比率情報253と、データベースの性能増減比率情報253を加算し変更関数名251、修正関数アセンブラ命令数252と併せて変更情報250を生成する(S1034)。例えば、入力の変更ソースコードが関数名funcAについて変更されており、アセンブラ命令数がデータベースのfuncAの変更情報の関数単位アセンブラ命令数から5命令増える変更であったときの性能増減比率は以下のように求める。増加分5命令と全関数における対象関数の比重を表す変更関数影響度指標(0から1の値)と関数コール回数(n回)を乗算する。変更関数影響度指標は、ソースコードのアセンブラ総行数における変更関数のアセンブラ総行数の割合である。求めた性能増減比率にデータベースに登録されている関数名funcAの性能増減比率を加算し、変更による最終的な性能増減比率を求める。
FIG. 7 shows a detailed operation flow of the determination process S104 of FIG. First, the changed
図8は、図6のデータベース登録処理S110の詳細の動作フローを示したものである。はじめに入力がソースコード202か変更情報250か判別する(S1100)。入力が初期ソースコード202、更新ソースコード500の場合はアセンブラ命令とコールグラフを抽出する(ステップS1101)。抽出したアセンブラ命令とコールグラフから関数構造情報203と関数単位アセンブラ命令数204を生成する(S1002)。ソースコード202、500と生成した関数構造情報203と関数単位アセンブラ命令数204をソースコード情報201としてデータベース200に登録する。一方、入力が変更情報250等の場合(S1100)、別途、必要な情報がデータベース200に登録される。
FIG. 8 shows a detailed operation flow of the database registration process S110 of FIG. First, it is determined whether the input is the
本実施例によれば、更新ソースコードを受け付けた際に新旧バージョンのソースコード間の性能を予測に基づいて判定し、性能低下の問題がある場合には、更新ソースコードを記述する際に事前に作成者等に通知するので、性能向上と品質向上を可能にし、しかも、設計プロセスの後工程での手戻りを少なくした、組込ソフトウェア開発に利用できるソフトウェア性能逐次予測技術を提供することができる。 According to the present embodiment, when the update source code is received, the performance between the old and new versions of the source code is determined based on the prediction. In order to provide software performance sequential prediction technology that can be used for embedded software development, enabling performance improvement and quality improvement, and reducing rework in the later stages of the design process. it can.
次に、本発明の第2の実施の形態としての性能逐次予測方法、システムを説明する。実施例1の判定部への入力に加えて動的関数コールを用いて性能を予測するものである。実施例1では性能増減比率を計算する際、関数コール数を用いているが、本実施例では、動的関数コール数を用いることにより、実行に即した性能予測が可能になる。 Next, a performance sequential prediction method and system as a second embodiment of the present invention will be described. The performance is predicted using a dynamic function call in addition to the input to the determination unit of the first embodiment. In the first embodiment, the number of function calls is used when calculating the performance increase / decrease ratio. In this embodiment, however, the use of the number of dynamic function calls enables performance prediction in line with execution.
図9は、本実施例のソフトウェア性能予測システムの構成を説明するための図である。本ソフトウェア性能予測システム10は、実施例1で述べたとおり、ソースコードの変更による著しい性能劣化を抑止するため、変更による性能影響(処理時間の増減)を予測するシステムである。ソフトウェア性能予測システム10は、初期ソースコード202、変更ソースコード500及び実行トレース800を入力とする。判定部300’は、初期ソースコード202、変更ソースコード500と実行トレース800と、後述するデータベース200に格納された様々な情報を利用して、変更ソースコード500が、その変更により性能影響(処理時間の増減)をもたらすか否かを判定し、判定した結果である判定結果700を出力し、その判定結果をソフトウェア開発者に通知するための通信部400に入力する。その他の特に言及しない部分には実施例1と同一符号を付して、それらの詳細は省略する。
FIG. 9 is a diagram for explaining the configuration of the software performance prediction system of this embodiment. As described in the first embodiment, the software
図10は、本実施例のソフトウェア性能予測システムの判定部300’の構成を説明するための図である。関数コール算出部303’では、変更関数名と実行トレースから対象関数が動的に何回呼ばれているかをカウントし動的関数コール数307’を出力する。変更情報生成部304は、変更関数アセンブラ増減数252と関数単位アセンブラ命令数204と変更関数名251と動的関数コール回数307’と性能増減比率情報253を入力として受け取り、変更情報250を出力する。その他の特に言及しない部分には同一符号を付して、それらの詳細は省略する。
FIG. 10 is a diagram for explaining the configuration of the
図11は、乗算器322’において動的コール回数307’を用いて性能増減比率を求めることを表した図である。その他の特に言及しない部分には実施例1と同一符号を付して、それらの詳細は省略する。
FIG. 11 is a diagram illustrating obtaining the performance increase / decrease ratio using the
本実施例によれば、更新ソースコードを受け付けた際に新旧バージョンのソースコード間の性能を予測に基づいて判定し、性能低下の問題がある場合には、更新ソースコードを記述する際に事前に作成者等に通知するので、性能向上と品質向上を可能にし、しかも、設計プロセスの後工程での手戻りを少なくした、組込ソフトウェア開発に利用できるソフトウェア性能逐次予測技術を提供することができる。 According to the present embodiment, when the update source code is received, the performance between the old and new versions of the source code is determined based on the prediction. In order to provide software performance sequential prediction technology that can be used for embedded software development, enabling performance improvement and quality improvement, and reducing rework in the later stages of the design process. it can.
次に、本発明の第3の実施の形態としての性能逐次予測方法、システムを説明する。
図12は、変更関数の過去の変更情報がデータベースに存在しない場合の動作フローを示している。データがなかった場合、変更関数における変更情報の代用として、変更関数影響度指標と関数コール回数が一致する関数の変更情報を用いる。入力された変更ソースコードの変更関数の過去の変更情報がデータベースに存在するかを調べる(ステップS1035)。変更関数の過去の変更情報がデータベースにない場合、変更関数影響度指標と関数コール回数が一致する関数を調べる(S1036)。一致する関数がある場合、その関数の変更情報を代用する(S1037)。これは、一般に、表記が類似している場合、同様な機能を表現している蓋然性が高いという実体を前提にしている。これにより入力された変更ソースコードにおける変更関数の変更情報がデータベースに存在しない場合でも性能予測が可能となる。その他のステップにおいて、特に言及しない部分には同一符号を付して、それらの詳細は省略する。
Next, a performance sequential prediction method and system as a third embodiment of the present invention will be described.
FIG. 12 shows an operation flow when past change information of the change function does not exist in the database. If there is no data, the change information of the function whose function function count matches the change function influence index is used as a substitute for the change information in the change function. It is checked whether past change information of the change function of the input change source code exists in the database (step S1035). If there is no past change information of the change function in the database, a function whose change function influence index matches the number of function calls is checked (S1036). If there is a matching function, the change information of the function is substituted (S1037). This is based on the premise that in general, when the notation is similar, there is a high probability of expressing the same function. As a result, performance prediction is possible even when the change information of the change function in the input change source code does not exist in the database. In other steps, parts that are not particularly mentioned are denoted by the same reference numerals and their details are omitted.
図13は、実施例3におけるソフトウェア性能予測システム10の判定部300の構成を説明するための図である。関数コール数算出部303と変更情報生成部304は、変更関数影響度指標と関数コール回数の一致する関数の変更情報を利用し、データベース200に格納された、関数単位アセンブラ命令数204’と、変更情報250’のうちの性能増減比率情報253’を入力とし、対象の修正によって生じる性能の増減(処理時間の増減)を予測し、変更情報250として出力する変更情報生成部304から構成する。その他において、特に言及しない部分には同一符号を付して、それらの詳細は省略する。
FIG. 13 is a diagram for explaining the configuration of the
本実施例によれば、更新ソースコードを受け付けた際に、変更関数の過去の変更情報がデータベースに存在しない場合でもそれに代わる情報を用いて、更新ソースコードの性能を判定し、性能低下の問題がある場合には、更新ソースコードを記述する際に事前に作成者等に通知するので、性能向上と品質向上を可能にし、しかも、設計プロセスの後工程での手戻りを少なくした、組込ソフトウェア開発に利用できるソフトウェア性能逐次予測技術を提供することができる。 According to the present embodiment, when the update source code is received, even if the past change information of the change function does not exist in the database, the performance of the update source code is determined using the alternative information, and there is a problem of performance degradation. If there is an error, the author is notified in advance when writing the updated source code, so that the performance and quality can be improved, and the rework in the later stage of the design process is reduced. Software performance sequential prediction technology that can be used for software development can be provided.
次に、本発明の第4の実施の形態としての性能逐次予測方法、システムを説明する。図14は、実施例1の判定部において、プロジェクト管理者向け情報の出力方法を示した図である。プロジェクトの開発者が変更ソースコードをリポジトリに登録するとき、本ソフトウェア逐次性能予測システムは動作する。本実施例は、登録要求があったときに、管理者向けの情報として開発者毎、モジュール毎、開発拠点ごとに性能増減比率の状況一覧を生成する。また、プロジェクト計画を入力しておき、性能増減比率が決められた数値以上であった場合、プロジェクト管理者に知らせる。これにより、変更による著しい性能劣化を未然に防ぐことが可能となる。 Next, a performance sequential prediction method and system as a fourth embodiment of the present invention will be described. FIG. 14 is a diagram illustrating a method for outputting information for the project manager in the determination unit according to the first embodiment. The software sequential performance prediction system operates when the project developer registers the changed source code in the repository. In this embodiment, when there is a registration request, a list of performance increase / decrease ratios is generated for each developer, each module, and each development base as information for the administrator. In addition, a project plan is input, and if the performance increase / decrease ratio is greater than a predetermined value, the project manager is notified. This makes it possible to prevent significant performance degradation due to changes.
本実施例によれば、複数人で開発する大規模なソフトウェア開発において、新旧バージョンのソースコード間の性能を予測に基づいて判定し、プロジェクト管理者に、開発者毎、モジュール毎、あるいは開発拠点毎の性能低下の有無などの情報を各端末に提供するので、性能向上と品質向上を可能にし、しかも、設計プロセスの後工程での手戻りを少なくした、ソフトウェア性能逐次予測技術を提供することができる。 According to this embodiment, in large-scale software development that is developed by a plurality of people, the performance between the old and new versions of the source code is determined based on the prediction, and the project manager is notified to each developer, each module, or the development base. Providing software performance sequential prediction technology that improves performance and quality, and reduces rework in the later stages of the design process, because information such as the presence or absence of performance degradation for each terminal is provided to each terminal. Can do.
10 ソフトウェア性能予測システム
20(20−1〜20−n) ソフトウェア開発者端末
30 プロジェクト管理者の端末
40 ネットワーク
100 データベース構築部
101 情報入出力制御部
102 コンパイル部
103 関数構造情報生成部
104 関数単位アセンブラ命令抽出部
106 コールグラフ
107 アセンブラ命令
200 データベース
201 ソースコード情報
202 初期ソースコード
203 関数構造情報
204 関数単位アセンブラ命令数
250 変更情報
251 変更関数名
252 修正関数アセンブラ命令数
253 性能増減比率情報
300 判定部
300’ 判定部
301 変更関数抽出部
302 アセンブラ命令数抽出部
303 関数コール数算出部
304 変更情報生成部
307 関数コール回数
320 減算器
321 変更関数影響度算出部
322 乗算器
323 加算器
324 差分値
325 変更関数影響度指標
400 通知部
500 変更ソースコード
700 判定結果。
10 software performance prediction system 20 (20-1 to 20-n)
Claims (15)
前記ソフトウェア性能予測システムは、前記ソフトウェアを登録するデータベースを備えており、かつ、複数の端末に接続可能に構成されており、
前記複数の端末の少なくとも1つから前記ソフトウェアの開発に伴う初期ソースコードもしくは変更ソースコードの入力を受け付け、ソースコード情報として、前記データベースに登録し、
前記変更ソースコードによる前記ソフトウェアの性能を登録済の前記ソースコード情報に含まれる旧ソースコードによる前記ソフトウェアの性能と比較して、新旧ソースコードの性能の低減比率を算出し、
該性能の低減比率が所定の値を超えるか否かを判定し、
前記性能低減比率が前記所定の値を超える場合、外部に前記判定結果を通知する
ことを特徴とするソフトウェア性能逐次予測方法。 A software performance sequential prediction method for predicting software performance associated with a source code change by a software performance prediction system,
The software performance prediction system includes a database for registering the software, and is configured to be connectable to a plurality of terminals.
Accepting input of initial source code or changed source code accompanying development of the software from at least one of the plurality of terminals, registering as source code information in the database,
Compare the performance of the software by the modified source code with the performance of the software by the old source code included in the registered source code information, and calculate the performance reduction ratio of the old and new source code,
Determining whether the reduction ratio of the performance exceeds a predetermined value;
When the performance reduction ratio exceeds the predetermined value, the determination result is notified to the outside.
前記ソフトウェアは、一連機能を含む組込みソフトウェアであり、
前記新旧ソースコードの性能の低減比率は、性能測定に代えて、前記ソースコードの変更による処理時間の変化を予測して見積もりを行うことにより算出される
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 1,
The software is embedded software including a series of functions,
The performance reduction ratio of the old and new source code is calculated by predicting a change in processing time due to the change of the source code and performing estimation instead of performance measurement.
前記ソースコードは、初期ソースコードに前記変更ソースコードによる変更情報を加えて逐次最新のバージョンに更新されるものであり、
前記ソースコードは、分解可能な複数の機能を含んでおり、
前記機能毎の前記変更ソースコードの入力を、空間的にあるいは時間的に分散して存在する前記複数の端末の少なくとも1つから受け付け、
該入力を受け付けた前記端末に前記判定結果を通知する
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 1,
The source code is one that is sequentially updated to the latest version by adding change information from the changed source code to the initial source code,
The source code includes a plurality of decomposable functions,
Receiving the input of the changed source code for each function from at least one of the plurality of terminals existing spatially or temporally distributed;
A software performance sequential prediction method, wherein the determination result is notified to the terminal that has received the input.
前記新旧ソースコードの性能の低減比率の結果の情報を、前記複数の端末に対応する前記フトウェアの開発者毎、あるいは開発拠点毎、前記フトウェアを構成するモジュール毎、の何れかの区分により出力する
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 1,
Output information on the result of the performance reduction ratio of the old and new source code according to one of the categories of each software developer corresponding to the plurality of terminals, each development base, and each module constituting the software. A software performance sequential prediction method.
前記ソフトウェア性能予測システムは、データベース構築部、判定部、及び通知部を備えており、
前記端末から入力されたデータを前記データベースに保持し、
該入力されたデータを変換し前記データベースに登録し、
前記判定部で該入力されたデータによる性能を予測し、該予測値から前記ソフトウェアの性能が劣化するかを判定し、
前記通知部が、前記入力を受け付けた端末に前記性能の劣化を通知する
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 1,
The software performance prediction system includes a database construction unit, a determination unit, and a notification unit,
Holding data input from the terminal in the database;
Convert the input data and register it in the database,
The determination unit predicts performance based on the input data, determines whether the performance of the software deteriorates from the predicted value,
The software performance sequential prediction method, wherein the notification unit notifies the terminal that has received the input of the deterioration of the performance.
前記データベース内に、前記ソースコード情報として、前記ソースコードと関数構造情報と関数単位アセンブラ命数を格納し、前記変更情報として、変更関数名と修正関数アセンブラ命令数と性能増減比率情報を格納する
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 5,
In the database, the source code, function structure information, and function unit assembler instructions are stored as the source code information, and a change function name, a modified function assembler instruction number, and a performance increase / decrease ratio information are stored as the change information. Software performance sequential prediction method.
前記ソースコード情報は、過去に登録された初期ソースコードや前記変更ソースコードと、それらの関数構造を示前記す関数構造情報と、関数毎のコンパイル結果から導き出される前記各関数単位のアセンブラ命令数とを含む、第1の情報と、
前記変更ソースコードにて変更された関数名を示す前記変更関数名と、その変更関数に対し、コンパイルによって得られたアセンブラ命令数を示す前記修正関数アセンブラ命令数と、前記性能低減比率情報を含む、第2の情報とを有し、
前記第1の情報の前記関数構造情報は、前記関数毎の関数コール回数を含む
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 6,
The source code information includes the initial source code or the modified source code registered in the past, the function structure information indicating the function structure thereof, and the number of assembler instructions for each function derived from the compilation result for each function. First information including:
The changed function name indicating the changed function name in the changed source code, the modified function assembler instruction number indicating the number of assembler instructions obtained by compiling the changed function, and the performance reduction ratio information And second information,
The software performance sequential prediction method, wherein the function structure information of the first information includes the number of function calls for each function.
前記判定部は、変更関数抽出部と、アセンブラ命令数抽出部と、関数コール算出部と、変更情報生成部とを備えており、
前記変更関数抽出部で前記変更ソースコードの変更箇所を特定し、
前記アセンブラ命令数抽出部で前記変更ソースコードのアセンブラ命令数を算出し、
前記関数コール算出部で関数コールを算出し、
前記変更情報生成部で、変更情報を生成する
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 6,
The determination unit includes a change function extraction unit, an assembler instruction number extraction unit, a function call calculation unit, and a change information generation unit,
The change function extraction unit identifies the change location of the change source code,
The assembler instruction number extraction unit calculates the assembler instruction number of the modified source code,
The function call calculation unit calculates a function call,
A software performance sequential prediction method, wherein the change information generation unit generates change information.
前記変更情報生成部内において、
前記判定部は、減算器と、変更関数影響度算出部と、乗算器と、加算器とを備えており、
前記減算器で、前記変更関数のアセンブラ命令数と関数単位アセンブラ命令数の差を求め、
前記変更関数影響度算出部で、前記関数単位アセンブラ命令数と前記変更関数名から変更関数影響度指標を求め、
前記乗算器で、前記減算器で求めた前記差分値と前記変更関数影響度指標と前記関数コール回数とから、性能増減比率情報を求め、
前記加算器で、前記性能増減比率情報から前記変更情報を求める
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 8,
In the change information generation unit,
The determination unit includes a subtractor, a change function influence calculation unit, a multiplier, and an adder.
In the subtractor, find the difference between the number of assembler instructions of the change function and the number of function unit assembler instructions,
In the change function influence calculation unit, a change function influence index is obtained from the number of function unit assembler instructions and the change function name,
In the multiplier, the performance increase / decrease ratio information is obtained from the difference value obtained by the subtractor, the change function influence index and the number of function calls,
The software performance sequential prediction method, wherein the adder obtains the change information from the performance increase / decrease ratio information.
前記データベース構築部において、情報入出力制御部で情報の入出力を制御し、コンパイル部でソースコードからアセンブラ命令とコールグラフを出力し、関数構造情報生成部でコールグラフから関数構造情報を生成し、関数単位アセンブラ命令抽出部でアセンブラ命令から関数単位のアセンブラ命令数を抽出する
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 5,
In the database construction unit, the information input / output control unit controls input / output of information, the compile unit outputs assembler instructions and a call graph from the source code, and the function structure information generation unit generates function structure information from the call graph. A software performance sequential prediction method, wherein a function unit assembler instruction extraction unit extracts the number of assembler instructions in function units from assembler instructions.
前記変更関数の過去の変更情報が前記データベースに存在しない場合、前記変更関数における変更情報の代用として、変更関数影響度指標と関数コール回数が一致する関数の変更情報を用いる
ことを特徴とするソフトウェア性能逐次予測方法。 The software performance sequential prediction method according to claim 8,
When the change information of the change function in the past does not exist in the database, the change information of the function whose change function influence index matches the number of function calls is used as a substitute for the change information in the change function. Performance sequential prediction method.
前記ソフトウェアを登録するデータベースを備えており、かつ、複数の端末に接続可能に構成されており、
前記複数の端末の少なくとも1つから初期ソースコードもしくは変更ソースコードの入力を受け付け、ソースコード情報として、前記データベースに登録する機能と、
前記変更ソースコードによる前記ソフトウェアの性能を登録済の前記ソースコード情報に含まれる旧ソースコードによる前記ソフトウェアの性能と比較して、新旧ソースコードの性能の低減比率を算出する機能と、
該性能の低減比率が所定の値を超えるか否かを判定する機能と、
前記性能低減比率が前記所定の値を超える場合、外部に前記判定結果を通知する機能とを備える
ことを特徴とするソフトウェア性能逐次予測システム。 A software performance prediction system that predicts software performance associated with source code changes using a software performance prediction system,
A database for registering the software, and configured to be connectable to a plurality of terminals;
A function of accepting an input of an initial source code or a modified source code from at least one of the plurality of terminals and registering it in the database as source code information;
A function of calculating the performance reduction ratio of the old and new source code by comparing the performance of the software by the changed source code with the performance of the software by the old source code included in the registered source code information;
A function of determining whether the reduction ratio of the performance exceeds a predetermined value;
A software performance sequential prediction system comprising a function of notifying the determination result to the outside when the performance reduction ratio exceeds the predetermined value.
前記ソフトウェアは、一連機能を含む組込みソフトウェアであり、
前記端末から入力されたデータを変換し前記データベースに登録するデータベース構築部と、
該入力されたデータによる性能を予測し、該予測値から前記ソフトウェアの性能が劣化するかを判定する判定部と、
前記入力を受け付けた端末に前記性能の劣化を外部に通知する通知部を備えており、
前記新旧ソースコードの性能の劣化の判定は、前記ソースコードの変更による処理時間の増大に基づいて算出される
ことを特徴とするソフトウェア性能逐次予測システム。 The software performance sequential prediction system according to claim 12,
The software is embedded software including a series of functions,
A database construction unit for converting the data input from the terminal and registering it in the database;
A determination unit that predicts performance based on the input data and determines whether the performance of the software deteriorates from the predicted value;
A notification unit that notifies the terminal of the input of the deterioration of the performance to the outside;
The determination of the deterioration of the performance of the old and new source code is calculated based on an increase in processing time due to the change of the source code.
前記判定部は、
前記変更ソースコードの変更箇所を特定する変更関数抽出部と、
前記変更ソースコードのアセンブラ命令数を算出するアセンブラ命令数抽出部と、
関数コールを算出する関数コール算出部と、
変更情報を生成する変更情報生成部とを備えている
ことを特徴とするソフトウェア性能逐次予測システム。 The software performance sequential prediction system according to claim 13,
The determination unit
A change function extraction unit for identifying a change location of the change source code;
An assembler instruction number extraction unit for calculating the assembler instruction number of the modified source code;
A function call calculation unit for calculating a function call;
A software performance sequential prediction system comprising: a change information generation unit that generates change information.
前記変更情報生成部内において、
前記判定部は、減算器と、変更関数影響度算出部と、乗算器と、加算器とを備えており、
前記減算器で、前記変更関数のアセンブラ命令数と関数単位アセンブラ命令数の差を求め、
前記変更関数影響度算出部で、前記関数単位アセンブラ命令数と前記変更関数名から変更関数影響度指標を求め、
前記乗算器で、前記減算器で求めた前記差分値と前記変更関数影響度指標と前記関数コール回数とから、性能増減比率情報を求め、
前記加算器で、前記性能増減比率情報から前記変更情報を求める
ことを特徴とするソフトウェア性能逐次予測システム。 The software performance sequential prediction system according to claim 14,
In the change information generation unit,
The determination unit includes a subtractor, a change function influence calculation unit, a multiplier, and an adder.
In the subtractor, find the difference between the number of assembler instructions of the change function and the number of function unit assembler instructions,
In the change function influence calculation unit, a change function influence index is obtained from the number of function unit assembler instructions and the change function name,
In the multiplier, the performance increase / decrease ratio information is obtained from the difference value obtained by the subtractor, the change function influence index and the number of function calls,
The software performance sequential prediction system, wherein the adder obtains the change information from the performance increase / decrease ratio information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011103904A JP2012234448A (en) | 2011-05-07 | 2011-05-07 | Software performance sequentially-predicting method and predicting system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011103904A JP2012234448A (en) | 2011-05-07 | 2011-05-07 | Software performance sequentially-predicting method and predicting system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012234448A true JP2012234448A (en) | 2012-11-29 |
Family
ID=47434689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011103904A Withdrawn JP2012234448A (en) | 2011-05-07 | 2011-05-07 | Software performance sequentially-predicting method and predicting system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012234448A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015022890A1 (en) * | 2013-08-12 | 2015-02-19 | 日本電気株式会社 | Software aging test system, software agint test method, and program for software aging test |
WO2022190772A1 (en) | 2021-03-10 | 2022-09-15 | 株式会社日立製作所 | Software performance verification system and software performance verification method |
-
2011
- 2011-05-07 JP JP2011103904A patent/JP2012234448A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015022890A1 (en) * | 2013-08-12 | 2015-02-19 | 日本電気株式会社 | Software aging test system, software agint test method, and program for software aging test |
JPWO2015022890A1 (en) * | 2013-08-12 | 2017-03-02 | 日本電気株式会社 | Software aging test system, software aging test method, and software aging test program |
US9858176B2 (en) | 2013-08-12 | 2018-01-02 | Nec Corporation | Software aging test system, software aging test method, and program for software aging test |
WO2022190772A1 (en) | 2021-03-10 | 2022-09-15 | 株式会社日立製作所 | Software performance verification system and software performance verification method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101957773B (en) | method and system for multiple purpose dynamic analysis | |
KR101310506B1 (en) | Virtual machine and programming language for event processing | |
JP5256280B2 (en) | Using collaboration development information in a team environment | |
US20120066667A1 (en) | Simulation environment for distributed programs | |
CN107924360B (en) | Diagnostic framework in a computing system | |
Kapur et al. | Multi up-gradation software reliability growth model with imperfect debugging | |
US9367428B2 (en) | Transparent performance inference of whole software layers and context-sensitive performance debugging | |
CN113641701B (en) | Data query method, system, heterogeneous acceleration platform and storage medium | |
JP2008257694A (en) | Method and system for estimating resource provisioning | |
Ma et al. | LAMP: data provenance for graph based machine learning algorithms through derivative computation | |
JP2007179488A (en) | Program for predicting source code problem | |
US11106448B2 (en) | Management of updates to externally managed libraries | |
US20100153928A1 (en) | Developing and Maintaining High Performance Network Services | |
EP2199905A1 (en) | Lifecycle management and consistency checking of object models using application platform tools | |
WO2013184680A1 (en) | Automatic parallel performance profiling systems and methods | |
WO2021114757A1 (en) | Optimization method and apparatus for computation graph, computer device, and storage medium | |
JP2012234448A (en) | Software performance sequentially-predicting method and predicting system | |
Troya et al. | Specification and simulation of queuing network models using domain-specific languages | |
US8661424B2 (en) | Auto-generation of concurrent code for multi-core applications | |
CN114697398B (en) | Data processing method, device, electronic equipment, storage medium and product | |
CN116578282A (en) | Code generation method, device, electronic equipment and medium | |
Trubiani et al. | Automated detection of software performance antipatterns in Java-based applications | |
Danciu et al. | Performance awareness in Java EE development environments | |
US20160004982A1 (en) | Method and system for estimating the progress and completion of a project based on a bayesian network | |
Canon et al. | Correlation-aware heuristics for evaluating the distribution of the longest path length of a DAG with random weights |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140805 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140908 |