JP6045986B2 - Software development support apparatus, software development support method, and software development support program - Google Patents
Software development support apparatus, software development support method, and software development support program Download PDFInfo
- Publication number
- JP6045986B2 JP6045986B2 JP2013135568A JP2013135568A JP6045986B2 JP 6045986 B2 JP6045986 B2 JP 6045986B2 JP 2013135568 A JP2013135568 A JP 2013135568A JP 2013135568 A JP2013135568 A JP 2013135568A JP 6045986 B2 JP6045986 B2 JP 6045986B2
- Authority
- JP
- Japan
- Prior art keywords
- processing time
- program
- unit
- cpu
- division
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 21
- 238000012545 processing Methods 0.000 claims description 193
- 238000010586 diagram Methods 0.000 claims description 72
- 238000004364 calculation method Methods 0.000 claims description 38
- 238000011161 development Methods 0.000 claims description 13
- 230000018109 developmental process Effects 0.000 description 72
- 238000012790 confirmation Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 101100376153 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) TY2A-F gene Proteins 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005401 electroluminescence Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、モータの駆動を制御するインバータ等の産業用機器に組込んで使用するソフトウェアの開発を支援するソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムに関する。 The present invention relates to a software development support apparatus, a software development support method, and a software development support program that support the development of software used by being incorporated in industrial equipment such as an inverter that controls driving of a motor.
従来、モータの駆動を制御するインバータ等の産業用機器に組込んで使用するソフトウェアを開発するための技術として、複数のプログラム要素を用いて開発対象のソフトウェアの仕様を記述するブロック図をもとに、そのソフトウェアを構成するプログラムのソースコードを所定の計算機言語で自動生成する技術が知られている(例えば、特許文献1を参照)。 Conventionally, as a technology for developing software for use in industrial equipment such as inverters that control motor drive, based on a block diagram that describes the specifications of the software to be developed using multiple program elements In addition, a technique for automatically generating a source code of a program constituting the software in a predetermined computer language is known (for example, see Patent Document 1).
組込み対象の機器が備えるCPU(Central Processing Unit)は、リアルタイム性が求められるものの、昨今のパーソナルコンピュータが備えるCPUのように高性能のものではなく、交換も容易ではない。このため、組込み対象の機器が備えるCPUに対しては、該CPUと接続するROM(Read Only Memory)やRAM(Random Access Memory)等のメモリ容量および該CPUの処理時間に対して制約を設けるのが一般的である。 A CPU (Central Processing Unit) included in a device to be incorporated is required to have real-time characteristics, but is not as high-performance as a CPU included in a recent personal computer and is not easily exchanged. For this reason, for the CPU included in the device to be embedded, there are restrictions on the memory capacity such as ROM (Read Only Memory) and RAM (Random Access Memory) connected to the CPU and the processing time of the CPU. Is common.
上述したCPUの制約のうち、メモリ容量に関する制約を満たすか否かについては、コンパイラがソースコードをコンパイルしてオブジェクトファイルを生成する際に容易に判定することができる。これに対して、処理時間に関する制約を満たすか否かについては、判定を行う際にプログラムを実行するCPUの処理能力等の情報が必要であり、コンパイラ側で判定することができない。 It can be easily determined when the compiler compiles the source code and generates the object file whether or not the above-mentioned CPU constraints are satisfied. On the other hand, whether or not the constraint on the processing time is satisfied requires information such as the processing capability of the CPU that executes the program when making the determination, and cannot be determined on the compiler side.
そこで、プログラムを実行するCPUの処理時間を算出することも考えられる。CPUの処理時間を算出するには、そのCPUを備えた組込み対象の機器を実際に動作させる必要がある。しかしながら、この場合には、算出対象のプログラムがCPUの処理時間に対する制約を満たさない状況下で組込み対象の機器を動作させてしまう可能性があり、その機器を不適切な動作状態に陥らせてしまうおそれがあった。 Therefore, it is conceivable to calculate the processing time of the CPU that executes the program. In order to calculate the processing time of a CPU, it is necessary to actually operate a device to be incorporated provided with the CPU. However, in this case, there is a possibility that the device to be incorporated is operated under a situation where the calculation target program does not satisfy the restriction on the processing time of the CPU, and the device is put into an inappropriate operation state. There was a risk of it.
本発明は、上記に鑑みてなされたものであって、組込み対象の機器へ組込むソフトウェアを開発する際に、その機器を不適切な動作状態に陥らせることなく開発を行うことを可能にするソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムを提供することを目的とする。 The present invention has been made in view of the above, and when developing software to be incorporated into a device to be incorporated, software that enables development without causing the device to enter an inappropriate operating state It is an object to provide a development support apparatus, a software development support method, and a software development support program.
上述した課題を解決し、目的を達成するために、本発明に係るソフトウェア開発支援装置は、組込み対象の機器に組込んで該機器が備えるCPUを動作させるソフトウェアの開発を支援するソフトウェア開発支援装置において、前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを機械語に変換するコンパイル部と、前記コンパイル部が変換した機械語に含まれる命令数を抽出することによって前記CPUが前記プログラムを実行する際の処理時間を算出する処理時間算出部と、前記処理時間算出部が算出した処理時間に基づいて前記プログラムを前記CPUに実行させることの可否を判定する判定部と、を備えたことを特徴とする。 In order to solve the above-described problems and achieve the object, a software development support apparatus according to the present invention is a software development support apparatus that supports development of software that is incorporated in a device to be embedded and operates a CPU included in the device. A compile unit that converts source code written in a predetermined computer language into machine language, and the number of instructions included in the machine language converted by the compile unit Accordingly, a processing time calculation unit that calculates a processing time when the CPU executes the program, and whether or not the CPU can execute the program based on the processing time calculated by the processing time calculation unit is determined. And a determination unit.
本発明に係るソフトウェア開発支援装置は、上記発明において、前記CPUが前記プログラムの実行に要する処理時間の制約を与える制約処理時間を設定するCPU設定部をさらに備え、前記判定部は、前記処理時間算出部が算出した処理時間と前記CPU設定部が設定した制約処理時間とを比較することによって前記プログラムを前記CPUに実行させることの可否を判定することを特徴とする。 The software development support apparatus according to the present invention further includes a CPU setting unit that sets a constraint processing time that gives a constraint on a processing time required for the CPU to execute the program in the above invention, and the determination unit includes the processing time By comparing the processing time calculated by the calculation unit with the constraint processing time set by the CPU setting unit, it is determined whether or not the CPU can execute the program.
本発明に係るソフトウェア開発支援装置は、上記発明において、前記CPU設定部は、
前記CPUの動作クロック数をさらに設定し、前記処理時間算出部は、抽出したすべての前記命令数から総実行クロック数を算出し、該総実行クロック数と前記CPU設定部が設定した動作クロック数とをもとに前記処理時間を算出することを特徴とする。
The software development support device according to the present invention is the above invention, wherein the CPU setting unit is
The operation clock number of the CPU is further set, and the processing time calculation unit calculates a total execution clock number from all the extracted instruction numbers, and the total execution clock number and the operation clock number set by the CPU setting unit The processing time is calculated based on the above.
本発明に係るソフトウェア開発支援装置は、上記発明において、前記判定部が前記プログラムを前記CPUに実行させることができないと判定した場合、前記プログラムの処理を前記制約処理時間内でそれぞれ実行可能な複数のタスクに分割する分割部をさらに備えたことを特徴とする。 The software development support apparatus according to the present invention provides a software development support apparatus according to the above invention, wherein when the determination unit determines that the CPU cannot execute the program, the processing of the program can be executed within the constraint processing time. It is further characterized by further comprising a dividing unit that divides the task.
本発明に係るソフトウェア開発支援装置は、上記発明において、前記判定部が判定した結果および前記分割部が分割した結果を表示する表示部をさらに備えたことを特徴とする。 The software development support device according to the present invention is characterized in that, in the above-mentioned invention, the software development support device further includes a display unit for displaying the result determined by the determination unit and the result of division by the division unit.
本発明に係るソフトウェア開発支援装置は、上記発明において、前記表示部は、複数のプログラム要素を用いて前記ソフトウェアの仕様を記述するブロック図を表示するとともに、前記ブロック図において、前記複数のプログラム要素の各々が、前記複数のタスクのいずれに含まれるかを識別可能に表示することを特徴とする。 In the software development support device according to the present invention, in the above invention, the display unit displays a block diagram describing the specifications of the software using a plurality of program elements, and in the block diagram, the plurality of program elements Each of these is displayed so as to be identifiable as to which of the plurality of tasks is included.
本発明に係るソフトウェア開発支援装置は、上記発明において、前記判定部が判定した結果を表示する表示部をさらに備えたことを特徴とする。 The software development support device according to the present invention is characterized in that, in the above invention, the software development support device further comprises a display unit for displaying a result determined by the determination unit.
本発明に係るソフトウェア開発支援方法は、組込み対象の機器に組込んで該機器が備えるCPUを動作させるソフトウェアの開発を支援するソフトウェア開発支援装置が行うソフトウェア開発支援方法において、前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを記憶する記憶部から該ソースコードを読み出して機械語に変換するコンパイルステップと、前記コンパイルステップで変換した機械語に含まれる命令数を抽出することによって前記CPUが前記プログラムを実行する際の処理時間を算出する処理時間算出ステップと、前記処理時間算出ステップで算出した処理時間に基づいて前記プログラムを前記CPUに実行させることの可否を判定する判定ステップと、を備えたことを特徴とする。 A software development support method according to the present invention is a software development support method performed by a software development support apparatus that supports development of software for operating a CPU included in a device to be incorporated into a device to be embedded. A source code of the source code, a compile step for reading the source code from a storage unit storing the source code described in a predetermined computer language and converting it into a machine language, and the number of instructions included in the machine language converted in the compile step A processing time calculation step for calculating a processing time when the CPU executes the program by extracting the CPU, and whether the CPU can execute the program based on the processing time calculated in the processing time calculation step A determination step for determining The features.
本発明に係るソフトウェア開発支援プログラムは、組込み対象の機器に組込んで該機器が備えるCPUを動作させるソフトウェアの開発を支援するソフトウェア開発支援装置に、前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを記憶する記憶部から該ソースコードを読み出して機械語に変換するコンパイルステップと、前記コンパイルステップで変換した機械語に含まれる命令数を抽出することによって前記CPUが前記プログラムを実行する際の処理時間を算出する処理時間算出ステップと、前記処理時間算出ステップで算出した処理時間に基づいて前記プログラムを前記CPUに実行させることの可否を判定する判定ステップと、を実行させることを特徴とする。 A software development support program according to the present invention is a source code of a program constituting the software in a software development support apparatus that supports the development of software that is incorporated in a device to be embedded and operates a CPU included in the device. A compile step of reading the source code from a storage unit storing source code described in a predetermined computer language and converting it into a machine language, and extracting the number of instructions included in the machine language converted in the compile step A processing time calculating step for calculating a processing time when the CPU executes the program; a determining step for determining whether or not the CPU can execute the program based on the processing time calculated in the processing time calculating step; , Is executed.
本発明によれば、組込み対象の機器が備えるCPUがプログラムを実行する際の処理時間に基づいてそのプログラムをCPUに実行させることの可否を判定するため、組込み対象の機器へ組込むソフトウェアを開発する際に、その機器を不適切な動作状態に陥らせることなく開発を行うことが可能となる。 According to the present invention, in order to determine whether or not a CPU included in a device to be embedded can execute the program based on a processing time when the program is executed, software to be embedded in the device to be embedded is developed. In this case, development can be performed without causing the device to enter an inappropriate operating state.
以下、添付図面を参照して、本発明を実施するための形態(以下、「実施の形態」という)を説明する。 DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention (hereinafter referred to as “embodiments”) will be described with reference to the accompanying drawings.
図1は、本発明の一実施の形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。同図に示すソフトウェア開発支援装置1は、モータの駆動を制御するインバータ等の産業用機器に組込んで使用するソフトウェアの開発を支援する装置である。ソフトウェア開発支援装置1は、当該装置の動作を統括して制御する制御部2と、各種情報を記憶する記憶部3と、キーボード、マウス、タッチパネル等のインタフェースを用いて構成され、各種情報の入力を受け付ける入力部4と、液晶または有機EL(Electro Luminescence)等からなる表示パネルを有し、各種情報を表示出力する表示部5と、を備える。
FIG. 1 is a block diagram showing a functional configuration of a software development support apparatus according to an embodiment of the present invention. A software
制御部2は、入力部4から入力される情報に基づいて記憶部3が記憶するプログラム要素を基本構成要素として開発対象のソフトウェアの仕様を記述するブロック図を作成するブロック図作成部21と、ブロック図作成部21が作成したブロック図にしたがってプログラムのソースコードを生成するソースコード生成部22と、ソフトウェアを組込む対象の機器が備えるCPU(以下、ターゲットCPUという)を設定するCPU設定部23と、ソースコード生成部22が生成したソースコードを機械語に変換することによってオブジェクトファイルを生成するコンパイル部24と、コンパイル部24が生成したオブジェクトファイルをもとにターゲットCPUが定周期で処理を行うのに必要な処理時間を算出する処理時間算出部25と、処理時間算出部25が算出した処理時間がそのターゲットCPUで実行可能な処理時間であるか否かを判定する判定部26と、判定部26が判定した結果、処理時間がターゲットCPUで実行可能な処理時間でない場合、ターゲットCPUの制約条件を満足するようにプログラムにおけるタスクの分割を行う分割部27と、を有する。
The
ブロック図作成部21は、例えばエディタ等のソフトウェアである。ユーザは、表示部5が表示する画面を見ながら、入力部4によってプログラム要素を選択し、選択した複数のプログラム要素間の接続情報を設定入力することにより、ブロック図作成部21に対してブロック図の作成を指示する。ブロック図作成部21は、作成したブロック図を記憶部3(後述するブロック図記憶部32)に格納する。
The block
ソースコード生成部22は、ブロック図作成部21が作成したブロック図にしたがって、例えばC言語等の所定の計算機言語によるソースコードを生成し、記憶部3(後述するソースコード記憶部33)に格納する。また、ソースコード生成部22は、プログラムに含まれるタスクを管理するタスク管理関数のソースコード(以下、タスク管理ソースコードという)を生成し、ソースコード記憶部33に格納する。
The source code generation unit 22 generates source code in a predetermined computer language such as C language in accordance with the block diagram created by the block
CPU設定部23は、ターゲットCPUの種別に加えて、ターゲットCPUのクロック数および処理時間の制限値を制約条件として設定したCPU情報を記憶部3(後述するCPU情報記憶部34)に格納する。
The
処理時間算出部25は、コンパイル部24が生成したオブジェクトファイルから機械語の命令数を抽出し、この命令数に応じた実行クロック数をもとに総実行クロック数を算出する。その後、処理時間算出部25は、算出した総実行クロック数とCPU設定部23が設定したクロック数とを用いて処理時間を算出し、算出結果を記憶部3(後述する処理時間情報記憶部36)に格納する。
The processing
判定部26は、処理時間算出部25が算出した処理時間とCPU設定部23が設定した処理時間の制約を与える制約処理時間とを比較することにより、その処理時間でターゲットCPUがプログラムを実行可能であるか否かを判定する。
The
分割部27は、判定部26が判定した結果、処理時間が制約処理時間よりも大きい場合、プログラムの処理を定周期で実行する複数のタスクに分割し、分割したソースコードの情報を記憶部3(後述する分割情報記憶部37)に格納する。
When the processing time is larger than the constraint processing time as a result of the determination by the
以下、分割部27が行う分割処理の例を具体的に説明する。
分割部27は、ソースコードに対応するブロック図を構成するプログラム要素のうち最後段(または最前段)のプログラム要素を基準として、ターゲットCPUの制約処理時間を超えるまで接続線によって接続されたプログラム要素をたどっていき、処理時間を積算する。これにより、制約処理時間を超える前までのプログラム要素が1つのタスクとして分割されることとなる。分割部27は、ここで説明した処理を、すべてのプログラム要素の処理時間が積算されるまで実行する。
このように、分割部27は、プログラム要素の処理順を考慮したタスクの分割を行うため、各タスクの処理時間が制約処理時間を超えないようにすることができるとともに、論理的な破綻を生じさせない態様でタスクを分割することができる。
Hereinafter, an example of the dividing process performed by the dividing unit 27 will be specifically described.
The dividing unit 27 is a program element that is connected by a connection line until the constraint processing time of the target CPU is exceeded with reference to the program element at the last stage (or the first stage) among the program elements constituting the block diagram corresponding to the source code. Follow the steps to accumulate the processing time. Thereby, the program elements before the constraint processing time is exceeded are divided as one task. The dividing unit 27 executes the processing described here until the processing times of all program elements are accumulated.
As described above, since the dividing unit 27 divides the task in consideration of the processing order of the program elements, the processing time of each task can be prevented from exceeding the constraint processing time, and a logical failure occurs. Tasks can be divided in such a way that they are not allowed.
なお、分割部27が分割処理を行う際に、基準とするプログラム要素に対して直前(または直後)のプログラム要素が複数存在する場合には、いずれか1つの処理時間を積算してもよいし、すべての処理時間を積算してもよい。また、タスクの分割の仕方が複数通り存在する場合、分割部27は、分割数が少ない方を優先して選択するようにしてもよいし、タスク別の処理時間を母集団としたときの標準偏差が小さい分割の仕方を優先して選択するようにしてもよい。 When the dividing unit 27 performs the dividing process, if there are a plurality of program elements immediately before (or immediately after) the reference program element, any one processing time may be added up. All processing times may be integrated. Further, when there are a plurality of ways of dividing a task, the dividing unit 27 may preferentially select the one with a smaller number of divisions, or a standard when the processing time for each task is a population. You may make it select preferentially the method of a division | segmentation with a small deviation.
以上の機能構成を有する制御部2は、CPU等を用いて実現され、ソフトウェア開発支援装置1の各構成部位とバスラインを介して接続されている。制御部2は、記憶部3が記憶、格納する各種情報を記憶部3から読み出すことにより、本実施の形態に係るソフトウェア開発支援方法に関連した演算処理を実行する。
The
次に、記憶部3の機能構成を説明する。記憶部3は、プログラム要素を記憶するプログラム要素記憶部31と、ブロック図作成部21が作成したブロック図を記憶するブロック図記憶部32と、ソースコード生成部22が生成したソースコードおよびタスク管理ソースコードを記憶するソースコード記憶部33と、CPU設定部23が設定したターゲットCPUに関する情報を記憶するCPU情報記憶部34と、コンパイル部24が生成したオブジェクトファイルを記憶するオブジェクトファイル記憶部35と、処理時間算出部25が算出した処理時間に関する情報を記憶する処理時間情報記憶部36と、分割部27がプログラムを分割した結果を含む分割情報を記憶する分割情報記憶部37と、を有する。
Next, the functional configuration of the
記憶部3は、本実施の形態に係るソフトウェア開発支援プログラムや所定のOS(Operating System)を起動するプログラム等が予め記憶されたROM、および各処理の演算パラメータやデータ等を記憶するRAM等を用いて実現される。上述した各種プログラムは、通信ネットワークを介してダウンロードすることによって取得することも可能である。ここでいう通信ネットワークは、例えばLAN(Local Area Network)、WAN(Wide Area Network)、公衆回線網等によって実現されるものであり、有線、無線を問わない。
The
次に、表示部5の機能構成を説明する。図2は、表示部5が表示する表示画面の構成例を示す図である。同図に示す表示画面100には、ユーザが入力部4を介して選択可能なメニューボタンとして、ブロック図の各種ファイル操作を入力するためのファイルボタン101、ブロック図を構成するプログラム要素の選択を行うプログラム要素選択ボタン102、プログラム要素間の接続を設定する接続ボタン103、ブロック図に基づくソースコードの作成を指示するソースコード生成ボタン104、ターゲットCPUの設定を行うCPU設定ボタン105、ソースコードのコンパイルを指示するコンパイルボタン106、および処理時間の確認および確認結果に応じた処理を行う処理時間確認ボタン107が表示される。
Next, the functional configuration of the
ユーザは、入力部4が有するマウスを用いて所望の操作に対応するボタンの表示位置にマウスポインタを位置合わせした後、マウスボタンをクリックすることによってソフトウェア開発支援装置1に実行させる動作を選択入力する。以下、マウスポインタを位置合わせした後にマウスボタンをクリックする操作を、単にクリックするという。
The user selects and inputs an operation to be performed by the software
図3は、CPU設定ボタン105のプルダウンメニューの表示例を示す図である。CPU設定ボタン105がクリックされると、プルダウンメニューとして「CPU選択」、「CPUクロック数」および「CPU制約処理時間」が表示される。このうち、「CPU選択」がクリックされると、さらに下層のプルダウンメニューとして、選択可能なターゲットCPUの種類を表示する(図示せず)。これに対して、「CPUクロック数」にはクロック数を入力するためのボックスが表示され、「CPU制約処理時間」には処理時間を入力するためのボックスが表示される。ユーザは、入力部4によって所望のクロック数および制約処理時間を対応するボックスに入力する。CPU設定ボタン105を用いて設定された情報は、CPU設定部23がCPU情報記憶部34に格納する。
FIG. 3 is a diagram illustrating a display example of a pull-down menu of the
図4は、コンパイルボタン106のプルダウンメニューの表示例を示す図である。コンパイルボタン106がクリックされると、プルダウンメニューとして「コンパイル実行」、「コンパイル結果確認」および「コンパイル設定」が表示される。
FIG. 4 is a diagram illustrating a display example of a pull-down menu of the compile
図5は、処理時間確認ボタン107のプルダウンメニューの表示例を示す図である。処理時間確認ボタン107がクリックされると、プルダウンメニューとして「処理時間確認」、「タスク分割実行」、「タスク管理ソースコード生成」および「タスク管理ソースコード保存」が表示される。
FIG. 5 is a diagram illustrating a display example of a pull-down menu of the processing
以上の機能構成を有するソフトウェア開発支援装置1は、1つのコンピュータを用いて実現してもよいし、複数のコンピュータを用いて実現してもよい。後者の場合には、通信ネットワークを介してデータの送受信を行いながら、互いに連携して処理を行うようにすることも可能である。なお、ここでいうコンピュータは、汎用のパーソナルコンピュータやサーバ等によって構成することができる。また、通信ネットワークを介した複数のコンピュータからなるクライアント・サーバシステムによってソフトウェア開発支援装置1を構成する場合には、入力部4および表示部5の機能をクライアント端末に具備させる一方、制御部2および記憶部3の機能を一または複数のサーバに具備させるような構成としてもよい。
The software
次に、ソフトウェア開発支援装置1を用いて行うソフトウェア開発処理について説明する。図6は、ソフトウェア開発支援装置1を用いて行うソフトウェア開発処理の概要を示すフローチャートである。まず、ブロック図作成部21は、ユーザによる入力部4を介したプログラム要素および接続線の入力に基づいてブロック図を作成し、作成したブロック図をブロック図記憶部32に格納する(ステップS1)。ユーザは、図2に示す表示画面100に表示されたプログラム要素選択ボタン102を用いてプログラム要素を選択し、接続ボタン103を用いてプログラム要素間を接続する接続線を選択する。
Next, software development processing performed using the software
図7は、表示部5におけるブロック図の表示例を模式的に示す図である。同図に示す表示画面200に表示されるブロック図201は、6つのプログラム要素211〜216と、プログラム要素間の接続関係を示す5本の接続線221〜225とを備える。各プログラム要素には、機能名と識別用のIDが表示されている。例えば、プログラム要素211は、機能名がAであり、IDがF001である。また、各接続線には、識別用のIDが表示されている。例えば、接続線221のIDはW001である。なお、各プログラム要素のボックスの中に、機能を具体的に表現する図を付加してもよい。
FIG. 7 is a diagram schematically illustrating a display example of a block diagram on the
ブロック図201のより具体的な構成を説明する。ブロック図201は、接続線221〜225の矢印の向きからも明らかなように、表示画面200の左から右へ処理が進んでいくことを示している。ブロック図201の最前段には2つのプログラム要素211および214が設けられている一方、ブロック図201の最後段にはプログラム要素216が設けられている。ブロック図201には、プログラム要素211→プログラム要素212→プログラム要素213→プログラム要素216という処理の流れと、プログラム要素214→プログラム要素215→プログラム要素216という処理の流れが存在する。
A more specific configuration of the block diagram 201 will be described. The block diagram 201 indicates that the processing proceeds from the left to the right of the
プログラム要素211は、自身を起点として伸びる接続線221を介してプログラム要素212(機能名:B、ID:F002)に接続する。
プログラム要素212は、自身を起点として伸びる接続線222(ID:W002)を介してプログラム要素213(機能名:C、ID:F003)に接続する。
プログラム要素213は、自身を起点として伸びる接続線223(ID:W003)を介してプログラム要素216(機能名:F、ID:F006)に接続する。
プログラム要素214(機能名:D、ID:F004)は、自身を起点として伸びる接続線224(ID:W004)を介してプログラム要素215(機能名:E、ID:F005)に接続する。
プログラム要素215は、自身を起点として伸びる接続線225(ID:W005)を介してプログラム要素216に接続する。
The
The
The
The program element 214 (function name: D, ID: F004) is connected to the program element 215 (function name: E, ID: F005) via a connection line 224 (ID: W004) extending from itself.
The
ステップS1の後、ソースコード生成部22は、ユーザによる入力部4を介したソースコード生成指示信号の入力に応じて、ブロック図作成部21が作成したブロック図に対応するソースコードを生成し、ソースコード記憶部33へ格納する(ステップS2)。このソースコードは、上述したように、C言語等の計算機言語によって生成される。
After step S1, the source code generation unit 22 generates source code corresponding to the block diagram created by the block
続いて、CPU設定部23は、ユーザによる入力部4を介した入力に応じて、ターゲットCPUの設定入力を行う(ステップS3)。ユーザは、CPU設定ボタン105をクリックしてプルダウンメニューを表示した後(図3を参照)、ターゲットCPUの種類を選択するとともに、入力部4によってクロック数や制約処理時間を入力する。
Subsequently, the
この後、コンパイル部24は、ユーザによる入力部4を介したコンパイル指示信号の入力に応じて、ソースコード記憶部33からソースコードを読み出し、読み出したソースコードを機械語に変換してオブジェクトファイルを生成する(ステップS4)。このコンパイル処理をソフトウェア開発支援装置1に実行させる際、ユーザは、コンパイルボタン106をクリックしてプルダウンメニューを表示した後、「コンパイル実行」をクリックする(図4を参照)。なお、ユーザがコンパイルの結果を確認する場合には、図4に示すプルダウンメニューのうち「コンパイル結果確認」をクリックすればよい。また、ユーザがコンパイルの設定を確認したり変更したりする場合には、図4に示すプルダウンメニューのうち「コンパイル設定」をクリックして設定画面を表示させて設定を行えばよい。
Thereafter, the compiling
続いて、処理時間算出部25は、ユーザによる入力部4を介した処理時間算出指示信号の入力に応じて、生成したオブジェクトファイルの処理時間を算出し、算出結果を処理時間情報記憶部36に格納する(ステップS5)。具体的には、処理時間算出部25は、オブジェクトファイルから機械語の命令数を抽出し、この命令数に応じた総実行クロック数を算出した後、この総実行クロック数とCPU情報記憶部34が記憶するクロック数とを用いて処理時間を算出する。この処理を処理時間算出部25に実行させる際、ユーザは、処理時間確認ボタン107をクリックしてプルダウンメニューを表示した後(図5を参照)、「処理時間確認」メニューをクリックする。
Subsequently, the processing
続いて、判定部26は、処理時間算出部25が算出した処理時間とCPU情報記憶部34が記憶する制約処理時間とを比較することにより、処理時間が制約条件を満たすか否かを判定する(ステップS6)。具体的には、判定部26は、処理時間が制約処理時間よりも小さい場合、処理時間が制約条件を満たすと判定する一方、処理時間が制約処理時間以上である場合、処理時間が制約条件を満たさないと判定する。
Subsequently, the
その後、表示部5は、判定部26の判定結果を表示する(ステップS7)。図8は、表示部5が判定結果を表示する表示画面の例(第1例)を示す図である。同図に示す表示画面300において、ブロック図201には、プログラム要素211〜216における命令数と処理時間の算出結果表示ボックス231〜236がそれぞれ対応付けて表示される。
Then, the
具体的には、プログラム要素211に対応する算出結果表示ボックス231には、算出結果として、命令数200、処理時間100μsが表示されている。
プログラム要素212に対応する算出結果表示ボックス232には、命令数160、処理時間80μsが表示されている。
プログラム要素213に対応する算出結果表示ボックス233には、命令数80、処理時間40μsが表示されている。
プログラム要素214に対応する算出結果表示ボックス234には、命令数120、処理時間60μsが表示されている。
プログラム要素215に対応する算出結果表示ボックス235には、命令数100、処理時間50μsが表示されている。
プログラム要素216に対応する算出結果表示ボックス236には、命令数200、処理時間100μsが表示されている。
Specifically, the calculation result display box 231 corresponding to the
The calculation result display box 232 corresponding to the
The calculation
In the calculation
In the calculation
In the calculation
また、表示画面300の下方には、処理時間解析結果を表す処理時間解析結果テーブル301、およびターゲットCPUの制約条件に関連した情報を表す制約情報302が表示されている。
処理時間解析結果テーブル301は、タスクごとのプログラム要素、プログラム要素に対応した命令数および処理時間、タスクごとの合計の処理時間(タスクID別処理時間)を示す。処理時間解析結果テーブル301では、1つのタスク(タスクID:1)に6つのプログラム要素211〜216が含まれ、タスクID別処理時間430μsが表示されている。また、プログラム要素211〜216の命令数の合計860も表示されている。
制約情報302は、制約処理時間(500μs)、タスク分割数(1)、および判定結果(OK)を有する。このうち、判定結果は、判定部26がタスクID別処理時間(430μs)と制約処理時間(500μs)との比較に基づいて判定した結果である。すなわち、表示画面300に示す場合、タスクID別処理時間が制約処理時間よりも小さいため、判定部26は処理時間としてのタスクID別処理時間がターゲットCPUで実行可能な処理時間であると判定する。
In the lower part of the
The processing time analysis result table 301 indicates the program elements for each task, the number of instructions corresponding to the program elements and the processing time, and the total processing time for each task (processing time for each task ID). In the processing time analysis result table 301, six
The
なお、表示部5における表示内容が表示画面100から表示画面300に遷移する途中の中間状態として、ステップS5で処理時間算出部25が算出した結果を示す算出結果表示ボックス231〜236を表示する一方、処理時間解析結果テーブル301および制約情報302は表示しない状態の表示画面を表示部5が表示するようにしてもよい。
As the intermediate state in the middle of the transition of the display content on the
図9は、表示部5が判定結果を表示する表示画面の例(第2例)を示す図である。同図に示す表示画面400は、制約情報401の表示内容が、上述した表示画面300(図8を参照)と異なっている。表示画面400では、制約情報401に含まれる制約処理時間が200μsとなっており、タスクID別処理時間(430μs)が制約処理時間よりも大きい。この場合、判定部26は、タスクID別処理時間がターゲットCPUで実行不可能であると判定するため、制約情報401に含まれる判定結果が「NG」と表示されている。
FIG. 9 is a diagram illustrating an example (second example) of a display screen on which the
判定部26による判定の結果、ターゲットCPUの処理時間が制約条件を満たさない場合(ステップS8:No)、分割部27は、ユーザによる入力部4を介した分割指示の入力に応じて、プログラムのタスクを分割し、分割結果を分割情報記憶部37に格納する(ステップS9)。この処理を分割部27に実行させる際、ユーザは、処理時間確認ボタン107をクリックしてプルダウンメニューを表示した後(図5を参照)、「タスク分割実行」メニューをクリックする。
As a result of the determination by the
この後、表示部5は、分割部27の分割結果を表示する(ステップS10)。図10は、分割部27がタスクを分割した後に表示部5が表示する表示画面の例を示す図である。同図に示す表示画面410は、表示部5が図9に示す表示画面400を表示している状態で分割部27が分割処理を行った後の表示例を示している。
図10において、処理時間解析結果テーブル411は、6つのプログラム要素211〜216を3つのタスク(タスクID:1〜3)に分割したことを示している。具体的には、処理時間解析結果テーブル411は、プログラム要素211、212を1つのタスク(タスクID:1)とし、プログラム要素213、214を別のタスク(タスクID:2)とし、プログラム要素215、216をさらに別のタスク(タスクID:3)として、プログラムを3つのタスクに分割したことを示している。
また、処理時間解析結果テーブル411は、タスクIDが2であるタスクを他の2つのタスクと異なる態様(網掛け)で表示している。このため、処理時間解析結果テーブル411を見たユーザは、タスクの分割の仕方を明確に把握することができる。
Thereafter, the
In FIG. 10, the processing time analysis result table 411 indicates that the six
Further, the processing time analysis result table 411 displays a task having a task ID of 2 in a mode (shaded) different from the other two tasks. For this reason, the user who has seen the processing time analysis result table 411 can clearly understand how to divide tasks.
図10に示す場合、プログラムのタスクを3つに分割することで、タスクID別処理時間は、タスクID=1のタスクが180μs、タスクID=2のタスクが100μs、タスクID=3のタスクが150μsとなり、すべてのタスクにおいてタスクID別処理時間が制約処理時間(200μs)よりも小さくなっている。このため、制約情報412では、判定結果が「OK」と表示されている。
In the case shown in FIG. 10, by dividing the program task into three, the processing time for each task ID is 180 μs for the task ID = 1, 100 μs for the task ID = 2, and 100 μs for the task ID = 3. 150 μs, and the processing time for each task ID is shorter than the constraint processing time (200 μs) in all tasks. Therefore, in the
なお、本実施の形態では、分割部27がタスクを分割した際に処理時間の判定も合わせて行うこととしているが、分割部27がタスクを分割した結果を用いて、判定部26が再度ターゲットCPUにおけるプログラム実行の可否を判定するようにしてもよい。
In the present embodiment, when the dividing unit 27 divides the task, the processing time is also determined. However, the determining
以上説明したステップS10に続くステップS11において、ソースコード生成部22は、ユーザによる入力部4を介したタスク管理ソースコードの生成指示に応じて、タスク管理ソースコードを生成し、生成したタスク管理ソースコードをソースコード記憶部33に格納する(ステップS11)。このステップS11の後、ソフトウェア開発支援装置1は、一連の処理を終了する。
In step S11 following step S10 described above, the source code generation unit 22 generates a task management source code in response to a task management source code generation instruction via the input unit 4 by the user, and the generated task management source The code is stored in the source code storage unit 33 (step S11). After this step S11, the software
ステップS11の処理を具体的に説明する。ソースコード生成部22は、ステップS10でタスクが分割された場合には、分割されたタスクごとに処理が行われるように、分割されたタスクを管理するタスク管理関数のソースコードを生成する。この処理をソースコード生成部22に実行させる際、ユーザは、処理時間確認ボタン107をクリックしてプルダウンメニューを表示した後(図5を参照)、「タスク管理ソースコード生成」メニューをクリックする。その後、ソースコード生成部22が生成したタスク管理ソースコードの内容をユーザが確認し、問題がなければ、処理時間確認ボタン107のプルダウンメニューに表示される「タスク管理ソースコード保存」をクリックすることにより、そのタスク管理ソースコードをソースコード記憶部33に格納する。なお、ステップS11において、ソースコード生成部22がタスク管理ソースコードを生成した後、生成したタスク管理ソースコードを、ユーザからの指示を待たずに自動的にソースコード記憶部33に格納するようにしてもよい。
The process of step S11 will be specifically described. When the task is divided in step S10, the source code generation unit 22 generates source code of a task management function that manages the divided task so that the process is performed for each divided task. When the source code generation unit 22 executes this processing, the user clicks the processing
図11は、分割部27がタスクを分割した場合にソースコード生成部22が生成したタスク管理ソースコードの例を示す図である。同図に示すタスク管理ソースコード500はC言語を用いて記述されている。具体的には、タスク管理ソースコード500は、switch文により、1つ目のタスク(case 0)をプログラム要素211(ID:F001)、212(ID:F002)から構成してタスクIDを1とし、2つ目のタスク(case 1)をプログラム要素213(ID:F003)、214(ID:F004)から構成してタスクIDを2とし、3つ目のタスク(case 2)をプログラム要素215(ID:F005)、216(ID:F006)から構成してタスクIDを3とすることを記述している。
FIG. 11 is a diagram illustrating an example of task management source code generated by the source code generation unit 22 when the division unit 27 divides a task. The task
ここで、ステップS8において、判定部26が判定した結果、処理時間が制約条件を満たす場合(ステップS8:Yes)を説明する。この場合、ソフトウェア開発支援装置1は、ステップS11(タスク管理ソースコード生成処理)へ移行する。図12は、判定部26が判定した結果、処理時間が制約条件を満たす場合に、ステップS11においてソースコード生成部22が生成するタスク管理ソースコードの例を示す図である。同図に示すタスク管理ソースコード600は、6つのプログラム要素211〜216(ID:F001〜F006)によって1つのタスクを構成している。
Here, the case where the processing time satisfies the constraint condition as a result of the determination by the
なお、分割部27がタスクを分割した場合には、組込み対象の機器へソフトウェアを組込む際に、ソースコードをタスクごとに実行形式に変換して組込みを行うこととなる。 When the dividing unit 27 divides the task, when the software is incorporated into the device to be incorporated, the source code is converted into an execution format for each task and incorporated.
以上説明した本発明の一実施の形態によれば、ターゲットCPUがプログラムを実行する際の処理時間を算出し、この処理時間に基づいてソフトウェアを構成するプログラムをターゲットCPUに実行させることの可否を判定するため、プログラムがターゲットCPUにおける処理時間の制約を満たさない場合にはターゲットCPUを動作させないで済む。したがって、組込み対象の機器へ組込むソフトウェアを開発する際に、その機器を不適切な動作状態に陥らせることなく開発を行うことが可能となる。 According to the embodiment of the present invention described above, the processing time when the target CPU executes the program is calculated, and whether or not the target CPU can execute the program constituting the software based on the processing time is determined. In order to make a determination, the target CPU need not be operated if the program does not satisfy the processing time constraint in the target CPU. Therefore, when developing software to be incorporated into a device to be incorporated, development can be performed without causing the device to enter an inappropriate operating state.
また、本実施の形態によれば、1つのプログラムをターゲットCPUに実行させることができないと判定した場合には、そのプログラムの処理を各々が制約処理時間内で処理可能な複数のタスクに分割するため、ターゲットCPUを確実に制約処理時間内で動作させることが可能なソフトウェアを開発することができる。 Further, according to the present embodiment, when it is determined that one program cannot be executed by the target CPU, the processing of the program is divided into a plurality of tasks that can be processed within the restricted processing time. Therefore, software capable of reliably operating the target CPU within the restricted processing time can be developed.
また、本実施の形態によれば、プログラムをターゲットCPUに実行させることの可否を判定した後に判定結果を表示部で表示するため、ユーザは判定結果を明確に把握することができる。 Further, according to the present embodiment, since the determination result is displayed on the display unit after determining whether or not the target CPU can execute the program, the user can clearly grasp the determination result.
図13は、本実施の形態の一変形例として、分割部27がタスクを分割した後に表示部5が表示する表示画面の例(第2例)を示す図である。同図に示す表示画面700では、ブロック図701において、分割されたタスクごとのプログラム要素の組合せが明示されている。具体的には、タスクID=1のタスクを構成するプログラム要素211、212を閉領域T1が包囲し、タスクID=2のタスクを構成するプログラム要素213、214を閉領域T2が包囲し、タスクID=3のタスクを構成するプログラム要素215、216を閉領域T3が包囲した態様で表示している。ここで、3つの閉領域T1〜T3は、互いに交わりを有しない閉領域である。このようにブロック図701でタスクの分割の仕方を明示することにより、ユーザはタスクの分割について一段と容易にかつ直感的に認識することができる。
FIG. 13 is a diagram illustrating an example (second example) of a display screen displayed on the
なお、閉領域で包囲することによってタスクごとのプログラム要素の組合せを明示する代わりに、タスクごとにプログラム要素のボックスの線の色を変えてもよいし、タスクごとにプログラム要素のボックスを異なる色で塗りつぶしてもよい。 Instead of specifying the combination of program elements for each task by enclosing it in a closed area, the color of the line of the program element box may be changed for each task, or the program element box may be different for each task. You may fill with.
ここまで、本発明を実施するための形態を説明してきたが、本発明は、上述した一実施の形態によってのみ限定されるべきものではない。
図14は、本発明の別な実施の形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。同図に示すソフトウェア開発支援装置11は、制御部12において分割部を有しないことと、記憶部13において分割情報記憶部を有しないことを除いて、ソフトウェア開発支援装置1と同様の機能構成を有する。ソフトウェア開発支援装置11は、判定部26が、処理時間算出部25によって算出された処理時間が制約条件を満たすか否かを判定し、表示部5がその判定結果(OK/NG)を表示する機能を有している。このようなソフトウェア開発支援装置11によれば、ユーザは、開発対象のオブジェクトファイルが制約条件を満足するか否かを容易に認識することが可能となる。
Up to this point, the mode for carrying out the present invention has been described. However, the present invention should not be limited only by the above-described embodiment.
FIG. 14 is a block diagram showing a functional configuration of a software development support apparatus according to another embodiment of the present invention. The software development support apparatus 11 shown in the figure has the same functional configuration as that of the software
なお、本発明において、ソフトウェア開発支援装置が入力部および/または表示部を備えていなくてもよい。この場合には、ソフトウェア開発支援装置に対して外部の入力装置および/または表示装置を接続することによって上述した一実施の形態と同様の機能を実現すればよい。 In the present invention, the software development support apparatus may not include the input unit and / or the display unit. In this case, a function similar to that of the above-described embodiment may be realized by connecting an external input device and / or display device to the software development support device.
また、本発明において、例えばブロック図を作成する前の段階で、ターゲットCPUの設定を行うようにしてもよい。この場合には、ブロック図の作成を行う際に、制約条件を満たさないブロック図を作成できないようにすることが可能となる。したがって、ユーザは、制約条件を確認しながらブロック図の作成を行うことができる。 Further, in the present invention, for example, the target CPU may be set at a stage before creating a block diagram. In this case, when creating a block diagram, it is possible to prevent creation of a block diagram that does not satisfy the constraint conditions. Therefore, the user can create a block diagram while confirming the constraint conditions.
また、本発明において、作成済みのブロック図を別のターゲットCPUに対して適用することも可能である。この場合、CPU設定部23が新たに設定したターゲットCPUの情報に基づいて、判定部26が新たなターゲットCPUにおけるプログラムの実行可否を判定するようにすればよい。
In the present invention, the created block diagram can be applied to another target CPU. In this case, based on the information of the target CPU newly set by the
また、本発明において適用可能な計算機言語はC言語に限られるわけではなく、PLC(Programmable Logic Controller)に適用されるラダー言語、構造化言語(ST言語)、UML(Unified Modelling Language)、BASIC、アセンブリ言語等でもよい。 Further, the computer language applicable in the present invention is not limited to the C language, but a ladder language, a structured language (ST language), a UML (Unified Modeling Language), a BASIC, and the like applied to a PLC (Programmable Logic Controller). An assembly language or the like may be used.
また、本発明に係るソフトウェア開発支援プログラムを、ハードディスク、フラッシュメモリ、CD−ROM、DVD−ROM、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に記録して、広く流通させることも可能である。本発明に係るソフトウェア開発支援プログラムの上述した記録媒体への書き込みは、その記録媒体を製品として出荷する際に行ってもよいし、通信ネットワークを介したダウンロードにより行ってもよい。 Further, the software development support program according to the present invention can be recorded on a computer-readable recording medium such as a hard disk, a flash memory, a CD-ROM, a DVD-ROM, or a flexible disk and widely distributed. The writing of the software development support program according to the present invention to the above-described recording medium may be performed when the recording medium is shipped as a product, or may be performed by downloading via a communication network.
なお、本明細書において参照したフローチャートにおけるステップの前後関係はあくまでも一例に過ぎず、本発明の主旨を逸脱せず、かつ論理的に矛盾のない範囲で変更することが可能である。 The order of the steps in the flowcharts referred to in this specification is merely an example, and can be changed without departing from the spirit of the present invention and logically consistent.
このように、本発明は、ここでは記載していない様々な実施の形態等を含みうるものであり、特許請求の範囲により特定される技術的思想を逸脱しない範囲内において種々の設計変更等を施すことが可能である。 Thus, the present invention can include various embodiments and the like not described herein, and various design changes and the like can be made without departing from the technical idea specified by the claims. It is possible to apply.
1、11 ソフトウェア開発支援装置
2、12 制御部
3、13 記憶部
4 入力部
5 表示部
21 ブロック図作成部
22 ソースコード生成部
23 CPU設定部
24 コンパイル部
25 処理時間算出部
26 判定部
27 分割部
31 プログラム要素記憶部
32 ブロック図記憶部
33 ソースコード記憶部
34 CPU情報記憶部
35 オブジェクトファイル記憶部
36 処理時間情報記憶部
37 分割情報記憶部
100、200、300、400、410、700 表示画面
101 ファイルボタン
102 プログラム要素選択ボタン
103 接続ボタン
104 ソースコード生成ボタン
105 CPU設定ボタン
106 コンパイルボタン
107 処理時間確認ボタン
201、701 ブロック図
211、212、213、214、215、216 プログラム要素
221、222、223、224、225 接続線
231、232、233、234、235、236 算出結果表示ボックス
301、411 処理時間解析結果テーブル
302、401、412 制約情報
500、600 タスク管理ソースコード
T1、T2、T3 閉領域
DESCRIPTION OF
Claims (5)
前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを機械語に変換するコンパイル部と、
前記コンパイル部が変換した機械語に含まれる命令数を抽出することによって前記CPUが前記プログラムを実行する際の処理時間を算出する処理時間算出部と、
前記CPUが前記プログラムの実行に要する処理時間の制約を与える制約処理時間を設定するCPU設定部と、
前記処理時間算出部が算出した処理時間と前記CPU設定部が設定した制約処理時間とを比較することによって前記プログラムを前記CPUに実行させることの可否を判定する判定部と、
情報の入力を受け付ける入力部と、
前記判定部が前記プログラムを前記CPUに実行させることができないと判定した場合において、前記入力部が前記プログラムの処理を前記制約処理時間内でそれぞれ実行可能な複数のタスクに分割する分割指示の入力を受け付けたとき、前記プログラムの処理を前記複数のタスクに分割する分割部と、
前記制約処理時間および前記判定部が判定した結果を表示する表示部と、
を備え、
前記表示部は、
前記判定部による判定結果が否である場合において、前記分割部が処理を行ったとき、前記分割部が分割した結果として前記複数のタスクを識別可能に表示することを特徴とするソフトウェア開発支援装置。 In a software development support apparatus that supports the development of software that operates a CPU included in a device to be incorporated into the device to be embedded,
A compiling unit that converts source code written in a predetermined computer language into machine language, which is a source code of a program constituting the software;
A processing time calculating unit that calculates a processing time when the CPU executes the program by extracting the number of instructions included in the machine language converted by the compiling unit;
A CPU setting unit for setting a constraint processing time that gives a constraint on a processing time required for the CPU to execute the program;
A determination unit that determines whether the CPU can execute the program by comparing the processing time calculated by the processing time calculation unit and the constraint processing time set by the CPU setting unit;
An input unit that accepts input of information;
When the determination unit determines that the CPU cannot execute the program, the input unit inputs a division instruction that divides the processing of the program into a plurality of tasks that can be executed within the constraint processing time, respectively. A division unit that divides the processing of the program into the plurality of tasks,
A display unit for displaying the constraint processing time and a result determined by the determination unit;
Equipped with a,
The display unit
In a case where the determination result by the determination unit is NO, when the division unit performs processing, the software development support device displays the plurality of tasks in an identifiable manner as a result of division by the division unit .
前記CPUの動作クロック数をさらに設定し、
前記処理時間算出部は、
抽出したすべての前記命令数から総実行クロック数を算出し、該総実行クロック数と前記CPU設定部が設定した動作クロック数とをもとに前記処理時間を算出することを特徴とする請求項1に記載のソフトウェア開発支援装置。 The CPU setting unit
Further setting the number of operating clocks of the CPU,
The processing time calculation unit
The total execution clock number is calculated from all the extracted numbers of instructions, and the processing time is calculated based on the total execution clock number and the operation clock number set by the CPU setting unit. software development support apparatus according to 1.
複数のプログラム要素を用いて前記ソフトウェアの仕様を記述するブロック図を表示するとともに、各プログラム要素に対応づけて前記処理時間算出部の算出結果を表示し、
前記複数のプログラム要素の各々が、前記複数のタスクのいずれに含まれるかを識別可能に表示することを特徴とする請求項1または2に記載のソフトウェア開発支援装置。 The display unit
Displaying a block diagram describing the software specifications using a plurality of program elements, displaying the calculation result of the processing time calculation unit in association with each program element,
Each of the previous SL plurality of program element, a software development support system according to claim 1 or 2, characterized in that identifiably displayed or contained in any of the plurality of tasks.
前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを記憶する記憶部から該ソースコードを読み出して機械語に変換するコンパイルステップと、
前記コンパイルステップで変換した機械語に含まれる命令数を抽出することによって前記CPUが前記プログラムを実行する際の処理時間を算出する処理時間算出ステップと、
前記処理時間算出ステップで算出した処理時間と前記CPUが前記プログラムの実行に要する処理時間の制約を与える制約処理時間とを比較することによって前記プログラムを前記CPUに実行させることの可否を判定する判定ステップと、
前記制約処理時間および前記判定ステップで判定した結果を表示する判定結果表示ステップと、
前記判定ステップで前記プログラムを前記CPUに実行させることができないと判定した場合において、前記プログラムの処理を前記制約処理時間内でそれぞれ実行可能な複数のタスクに分割する分割指示の入力を受け付けたとき、前記プログラムの処理を前記複数のタスクに分割する分割ステップと、
前記判定ステップの判定結果が否である場合において、前記分割ステップが処理を行ったとき、前記分割ステップが分割した結果として前記複数のタスクを識別可能に表示する分割結果表示ステップと、
を備えたことを特徴とするソフトウェア開発支援方法。 In a software development support method performed by a software development support apparatus that supports development of software that operates a CPU included in a device to be incorporated into the device to be embedded,
A compiling step of reading the source code from a storage unit that stores source code of a program constituting the software and described in a predetermined computer language, and converting the read source code into a machine language;
A processing time calculating step for calculating a processing time when the CPU executes the program by extracting the number of instructions included in the machine language converted in the compiling step;
Determining whether to allow the CPU to execute the program by comparing the processing time calculated in the processing time calculating step with a constraint processing time that imposes a constraint on a processing time required for the CPU to execute the program Steps,
A determination result display step for displaying the constraint processing time and the result determined in the determination step;
When it is determined in the determination step that the CPU cannot execute the program, and an input of a division instruction for dividing the program processing into a plurality of tasks that can be executed within the constraint processing time is received. A division step of dividing the processing of the program into the plurality of tasks;
In a case where the determination result of the determination step is NO, when the division step performs processing, a division result display step for displaying the plurality of tasks in an identifiable manner as a result of the division step division;
A software development support method characterized by comprising:
前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを記憶する記憶部から該ソースコードを読み出して機械語に変換するコンパイルステップと、
前記コンパイルステップで変換した機械語に含まれる命令数を抽出することによって前記CPUが前記プログラムを実行する際の処理時間を算出する処理時間算出ステップと、
前記処理時間算出ステップで算出した処理時間と前記CPUが前記プログラムの実行に要する処理時間の制約を与える制約処理時間とを比較することによって前記プログラムを前記CPUに実行させることの可否を判定する判定ステップと、
前記制約処理時間および前記判定ステップで判定した結果を表示する判定結果表示ステップと、
前記判定ステップで前記プログラムを前記CPUに実行させることができないと判定した場合において、前記プログラムの処理を前記制約処理時間内でそれぞれ実行可能な複数のタスクに分割する分割指示の入力を受け付けたとき、前記プログラムの処理を前記複数のタスクに分割する分割ステップと、
前記判定ステップの判定結果が否である場合において、前記分割ステップが処理を行ったとき、前記分割ステップが分割した結果として前記複数のタスクを識別可能に表示する分割結果表示ステップと、
を実行させることを特徴とするソフトウェア開発支援プログラム。 In a software development support apparatus that supports the development of software that operates in the CPU included in the device to be incorporated into the device to be embedded,
A compiling step of reading the source code from a storage unit that stores source code of a program constituting the software and described in a predetermined computer language, and converting the read source code into a machine language;
A processing time calculating step for calculating a processing time when the CPU executes the program by extracting the number of instructions included in the machine language converted in the compiling step;
Determining whether to allow the CPU to execute the program by comparing the processing time calculated in the processing time calculating step with a constraint processing time that imposes a constraint on a processing time required for the CPU to execute the program Steps,
A determination result display step for displaying the constraint processing time and the result determined in the determination step;
When it is determined in the determination step that the CPU cannot execute the program, and an input of a division instruction for dividing the program processing into a plurality of tasks that can be executed within the constraint processing time is received. A division step of dividing the processing of the program into the plurality of tasks;
In a case where the determination result of the determination step is NO, when the division step performs processing, a division result display step for displaying the plurality of tasks in an identifiable manner as a result of the division step division;
A software development support program characterized by causing
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013135568A JP6045986B2 (en) | 2013-06-27 | 2013-06-27 | Software development support apparatus, software development support method, and software development support program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013135568A JP6045986B2 (en) | 2013-06-27 | 2013-06-27 | Software development support apparatus, software development support method, and software development support program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015011476A JP2015011476A (en) | 2015-01-19 |
JP6045986B2 true JP6045986B2 (en) | 2016-12-14 |
Family
ID=52304598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013135568A Expired - Fee Related JP6045986B2 (en) | 2013-06-27 | 2013-06-27 | Software development support apparatus, software development support method, and software development support program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6045986B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021149609A (en) * | 2020-03-19 | 2021-09-27 | キヤノン株式会社 | Information processing method, and information processing device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05150975A (en) * | 1991-11-28 | 1993-06-18 | Hitachi Ltd | Automatic program evaluation method |
JP2000330775A (en) * | 1999-05-17 | 2000-11-30 | Mitsubishi Electric Corp | Method for developing built-in system |
JP4898365B2 (en) * | 2006-09-15 | 2012-03-14 | 株式会社リコー | Embedded program development apparatus and program automatic generation method |
JP5153724B2 (en) * | 2009-06-09 | 2013-02-27 | 三菱電機株式会社 | Processing time estimation device and processing time estimation program |
JP5404463B2 (en) * | 2010-02-12 | 2014-01-29 | 三菱電機株式会社 | Control device and management device |
JP2012145987A (en) * | 2011-01-07 | 2012-08-02 | Hitachi Ltd | Method for indicating software performance problem |
JP2013109652A (en) * | 2011-11-22 | 2013-06-06 | Le Tekku:Kk | Compiler, control method of program module generated by compiler, and control device which achieves control method |
-
2013
- 2013-06-27 JP JP2013135568A patent/JP6045986B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015011476A (en) | 2015-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3798817B1 (en) | User interface logical and execution view navigation and shifting | |
US9792354B2 (en) | Context aware user interface parts | |
EP3798757A1 (en) | Task based configuration presentation context | |
US9141345B2 (en) | Simplified user controls for authoring workflows | |
US20130152038A1 (en) | Project management workflows | |
JP5619328B1 (en) | Sequence program creation support device | |
JP6258159B2 (en) | Program information generation system, method, and program | |
EP3798759A1 (en) | Preferential automation view curation | |
CN115495069B (en) | Model-driven coal industry software process implementation method, device and equipment | |
JP6045986B2 (en) | Software development support apparatus, software development support method, and software development support program | |
KR20140045101A (en) | Three-dimensional modeling method using parametric data | |
JP5425317B2 (en) | Motion SFC program parts creation device | |
JP4902567B2 (en) | Work procedure manual creation system and work procedure manual creation program | |
JP2007264724A (en) | Management system and method for cad data | |
KR101498877B1 (en) | Program-producing device and image control system | |
JP2013235508A (en) | Object-oriented program generation device, method therefor, and program | |
JP2005327192A (en) | Hardware design system and method thereof | |
JP2011165051A (en) | Development support device, method and program | |
JP7404022B2 (en) | Program generation device and program generation method | |
KR20130060523A (en) | Data minig process automation system, method thereof and recordable medium storing the method | |
JP5948926B2 (en) | Object-oriented program generator, program | |
JP2016197291A (en) | Object-oriented model generation device, object-oriented model generation method, and object-oriented model generation program | |
JP2014153783A (en) | Object-oriented program generation device, object-oriented program generation method, and program for object-oriented program generation | |
WO2023143746A1 (en) | System and method for managing artifacts related to apps | |
JP5636017B2 (en) | Class diagram creation device and class diagram creation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160915 |
|
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: 20161025 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161116 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6045986 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |