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 PDF

Info

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
Application number
JP2013135568A
Other languages
Japanese (ja)
Other versions
JP2015011476A (en
Inventor
佐藤 芳信
芳信 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Fuji Electric FA Components and Systems Co Ltd
Original Assignee
Fuji Electric Co Ltd
Fuji Electric FA Components and Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd, Fuji Electric FA Components and Systems Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2013135568A priority Critical patent/JP6045986B2/en
Publication of JP2015011476A publication Critical patent/JP2015011476A/en
Application granted granted Critical
Publication of JP6045986B2 publication Critical patent/JP6045986B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

特開2006−285480号公報JP 2006-285480 A

上述した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.

図1は、本発明の一実施の形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。FIG. 1 is a block diagram showing a functional configuration of a software development support apparatus according to an embodiment of the present invention. 図2は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部が表示する表示画面の構成例を示す図である。FIG. 2 is a diagram showing a configuration example of a display screen displayed by the display unit of the software development support apparatus according to the embodiment of the present invention. 図3は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部におけるCPU設定ボタンのプルダウンメニューの表示例を示す図である。FIG. 3 is a diagram showing a display example of a pull-down menu of a CPU setting button on the display unit of the software development support apparatus according to the embodiment of the present invention. 図4は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部におけるコンパイルボタンのプルダウンメニューの表示例を示す図である。FIG. 4 is a diagram showing a display example of a pull-down menu of the compile button on the display unit of the software development support apparatus according to the embodiment of the present invention. 図5は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部における処理時間確認ボタンのプルダウンメニューの表示例を示す図である。FIG. 5 is a diagram showing a display example of a pull-down menu of a processing time confirmation button on the display unit of the software development support apparatus according to the embodiment of the present invention. 図6は、本発明の一実施の形態に係るソフトウェア開発支援装置を用いて行うソフトウェア開発処理の概要を示すフローチャートである。FIG. 6 is a flowchart showing an outline of software development processing performed using the software development support apparatus according to the embodiment of the present invention. 図7は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部におけるブロック図の表示例を模式的に示す図である。FIG. 7 is a diagram schematically showing a display example of a block diagram in the display unit of the software development support apparatus according to the embodiment of the present invention. 図8は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部が判定結果を表示する表示画面の例(第1例)を示す図である。FIG. 8 is a diagram illustrating an example (first example) of a display screen on which the display unit of the software development support apparatus according to the embodiment of the present invention displays the determination result. 図9は、本発明の一実施の形態に係るソフトウェア開発支援装置の表示部が判定結果を表示する表示画面の例(第2例)を示す図である。FIG. 9 is a diagram illustrating an example (second example) of a display screen on which the display unit of the software development support apparatus according to the embodiment of the present invention displays the determination result. 図10は、本発明の一実施の形態に係るソフトウェア開発支援装置において、分割部がタスクを分割した後に表示部が表示する表示画面の例を示す図である。FIG. 10 is a diagram illustrating an example of a display screen displayed on the display unit after the division unit divides the task in the software development support apparatus according to the embodiment of the present invention. 図11は、本発明の一実施の形態に係るソフトウェア開発支援装置において、分割部がタスクを分割した場合にソースコード生成部が生成したタスク管理ソースコードの例を示す図である。FIG. 11 is a diagram illustrating an example of task management source code generated by the source code generation unit when the division unit divides a task in the software development support apparatus according to the embodiment of the present invention. 図12は、本発明の一実施の形態に係るソフトウェア開発支援装置において、処理時間が制約条件を満たす場合にソースコード生成部が生成したタスク管理ソースコードの例を示す図である。FIG. 12 is a diagram illustrating an example of task management source code generated by the source code generation unit when the processing time satisfies the constraint condition in the software development support device according to the embodiment of the present invention. 図13は、本実施の形態の一変形例に係るソフトウェア開発支援装置の分割部がタスクを分割した後に表示部が表示する表示画面の例を示す図である。FIG. 13 is a diagram illustrating an example of a display screen displayed on the display unit after the division unit of the software development support apparatus according to the modification of the present embodiment divides the task. 図14は、本発明の別な実施の形態に係るソフトウェア開発支援装置の機能構成を示すブロック図である。FIG. 14 is a block diagram showing a functional configuration of a software development support apparatus according to another embodiment of the present invention.

以下、添付図面を参照して、本発明を実施するための形態(以下、「実施の形態」という)を説明する。   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 development support apparatus 1 shown in FIG. 1 is an apparatus that supports the development of software used by being incorporated in industrial equipment such as an inverter that controls driving of a motor. The software development support device 1 is configured using a control unit 2 that controls the overall operation of the device, a storage unit 3 that stores various types of information, and an interface such as a keyboard, a mouse, and a touch panel. And a display unit 5 having a display panel made of liquid crystal, organic EL (Electro Luminescence), or the like, and displaying various kinds of information.

制御部2は、入力部4から入力される情報に基づいて記憶部3が記憶するプログラム要素を基本構成要素として開発対象のソフトウェアの仕様を記述するブロック図を作成するブロック図作成部21と、ブロック図作成部21が作成したブロック図にしたがってプログラムのソースコードを生成するソースコード生成部22と、ソフトウェアを組込む対象の機器が備えるCPU(以下、ターゲットCPUという)を設定するCPU設定部23と、ソースコード生成部22が生成したソースコードを機械語に変換することによってオブジェクトファイルを生成するコンパイル部24と、コンパイル部24が生成したオブジェクトファイルをもとにターゲットCPUが定周期で処理を行うのに必要な処理時間を算出する処理時間算出部25と、処理時間算出部25が算出した処理時間がそのターゲットCPUで実行可能な処理時間であるか否かを判定する判定部26と、判定部26が判定した結果、処理時間がターゲットCPUで実行可能な処理時間でない場合、ターゲットCPUの制約条件を満足するようにプログラムにおけるタスクの分割を行う分割部27と、を有する。   The control unit 2 includes a block diagram creation unit 21 that creates a block diagram that describes the specifications of the software to be developed based on information input from the input unit 4 with the program elements stored in the storage unit 3 as basic components, A source code generation unit 22 that generates a source code of a program according to a block diagram created by the block diagram creation unit 21, and a CPU setting unit 23 that sets a CPU (hereinafter referred to as a target CPU) included in a target device into which software is to be incorporated The target CPU performs processing at a fixed cycle based on the object file generated by the compiling unit 24 that generates the object file by converting the source code generated by the source code generating unit 22 into machine language. A processing time calculation unit 25 for calculating a processing time required for processing, A determination unit 26 that determines whether or not the processing time calculated by the time calculation unit 25 is a processing time that can be executed by the target CPU, and a process that can be executed by the target CPU as a result of the determination by the determination unit 26 When it is not time, it has the division part 27 which divides | segments the task in a program so that the constraints of target CPU may be satisfied.

ブロック図作成部21は、例えばエディタ等のソフトウェアである。ユーザは、表示部5が表示する画面を見ながら、入力部4によってプログラム要素を選択し、選択した複数のプログラム要素間の接続情報を設定入力することにより、ブロック図作成部21に対してブロック図の作成を指示する。ブロック図作成部21は、作成したブロック図を記憶部3(後述するブロック図記憶部32)に格納する。   The block diagram creation unit 21 is software such as an editor. The user selects a program element with the input unit 4 while viewing the screen displayed on the display unit 5, and sets and inputs connection information between the selected program elements. Instructs drawing. The block diagram creation unit 21 stores the created block diagram in the storage unit 3 (a block diagram storage unit 32 described later).

ソースコード生成部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 diagram creation unit 21, and stores it in the storage unit 3 (source code storage unit 33 described later). To do. The source code generation unit 22 generates a source code of a task management function for managing tasks included in the program (hereinafter referred to as task management source code) and stores it in the source code storage unit 33.

CPU設定部23は、ターゲットCPUの種別に加えて、ターゲットCPUのクロック数および処理時間の制限値を制約条件として設定したCPU情報を記憶部3(後述するCPU情報記憶部34)に格納する。   The CPU setting unit 23 stores, in the storage unit 3 (a CPU information storage unit 34 to be described later), CPU information that is set by using the target CPU clock number and the processing time limit value as constraint conditions, in addition to the target CPU type.

処理時間算出部25は、コンパイル部24が生成したオブジェクトファイルから機械語の命令数を抽出し、この命令数に応じた実行クロック数をもとに総実行クロック数を算出する。その後、処理時間算出部25は、算出した総実行クロック数とCPU設定部23が設定したクロック数とを用いて処理時間を算出し、算出結果を記憶部3(後述する処理時間情報記憶部36)に格納する。   The processing time calculation unit 25 extracts the number of machine language instructions from the object file generated by the compilation unit 24, and calculates the total number of execution clocks based on the number of execution clocks corresponding to the number of instructions. Thereafter, the processing time calculation unit 25 calculates the processing time using the calculated total number of execution clocks and the clock number set by the CPU setting unit 23, and stores the calculation result in the storage unit 3 (a processing time information storage unit 36 described later). ).

判定部26は、処理時間算出部25が算出した処理時間とCPU設定部23が設定した処理時間の制約を与える制約処理時間とを比較することにより、その処理時間でターゲットCPUがプログラムを実行可能であるか否かを判定する。   The determination unit 26 compares the processing time calculated by the processing time calculation unit 25 with the constraint processing time that restricts the processing time set by the CPU setting unit 23, so that the target CPU can execute the program with the processing time. It is determined whether or not.

分割部27は、判定部26が判定した結果、処理時間が制約処理時間よりも大きい場合、プログラムの処理を定周期で実行する複数のタスクに分割し、分割したソースコードの情報を記憶部3(後述する分割情報記憶部37)に格納する。   When the processing time is larger than the constraint processing time as a result of the determination by the determination unit 26, the dividing unit 27 divides the program processing into a plurality of tasks that are executed at regular intervals, and stores the information of the divided source code in the storage unit 3 (The division information storage unit 37 described later) stores the information.

以下、分割部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 control unit 2 having the above functional configuration is realized by using a CPU or the like, and is connected to each component of the software development support apparatus 1 via a bus line. The control unit 2 reads out various types of information stored and stored in the storage unit 3 from the storage unit 3, thereby executing arithmetic processing related to the software development support method according to the present embodiment.

次に、記憶部3の機能構成を説明する。記憶部3は、プログラム要素を記憶するプログラム要素記憶部31と、ブロック図作成部21が作成したブロック図を記憶するブロック図記憶部32と、ソースコード生成部22が生成したソースコードおよびタスク管理ソースコードを記憶するソースコード記憶部33と、CPU設定部23が設定したターゲットCPUに関する情報を記憶するCPU情報記憶部34と、コンパイル部24が生成したオブジェクトファイルを記憶するオブジェクトファイル記憶部35と、処理時間算出部25が算出した処理時間に関する情報を記憶する処理時間情報記憶部36と、分割部27がプログラムを分割した結果を含む分割情報を記憶する分割情報記憶部37と、を有する。   Next, the functional configuration of the storage unit 3 will be described. The storage unit 3 includes a program element storage unit 31 that stores program elements, a block diagram storage unit 32 that stores a block diagram created by the block diagram creation unit 21, and source code and task management generated by the source code generation unit 22. A source code storage unit 33 for storing source code, a CPU information storage unit 34 for storing information on the target CPU set by the CPU setting unit 23, and an object file storage unit 35 for storing an object file generated by the compilation unit 24 The processing time information storage unit 36 stores information related to the processing time calculated by the processing time calculation unit 25, and the division information storage unit 37 stores division information including the result of dividing the program by the division unit 27.

記憶部3は、本実施の形態に係るソフトウェア開発支援プログラムや所定のOS(Operating System)を起動するプログラム等が予め記憶されたROM、および各処理の演算パラメータやデータ等を記憶するRAM等を用いて実現される。上述した各種プログラムは、通信ネットワークを介してダウンロードすることによって取得することも可能である。ここでいう通信ネットワークは、例えばLAN(Local Area Network)、WAN(Wide Area Network)、公衆回線網等によって実現されるものであり、有線、無線を問わない。   The storage unit 3 includes a ROM in which a software development support program according to the present embodiment, a program for starting a predetermined OS (Operating System), and the like are stored in advance, and a RAM in which calculation parameters and data of each process are stored. To be realized. The various programs described above can also be obtained by downloading via a communication network. The communication network here is realized by, for example, a local area network (LAN), a wide area network (WAN), a public line network, etc., and may be wired or wireless.

次に、表示部5の機能構成を説明する。図2は、表示部5が表示する表示画面の構成例を示す図である。同図に示す表示画面100には、ユーザが入力部4を介して選択可能なメニューボタンとして、ブロック図の各種ファイル操作を入力するためのファイルボタン101、ブロック図を構成するプログラム要素の選択を行うプログラム要素選択ボタン102、プログラム要素間の接続を設定する接続ボタン103、ブロック図に基づくソースコードの作成を指示するソースコード生成ボタン104、ターゲットCPUの設定を行うCPU設定ボタン105、ソースコードのコンパイルを指示するコンパイルボタン106、および処理時間の確認および確認結果に応じた処理を行う処理時間確認ボタン107が表示される。   Next, the functional configuration of the display unit 5 will be described. FIG. 2 is a diagram illustrating a configuration example of a display screen displayed by the display unit 5. In the display screen 100 shown in the figure, as a menu button that can be selected by the user via the input unit 4, a file button 101 for inputting various file operations in the block diagram, and selection of program elements constituting the block diagram are displayed. A program element selection button 102 to perform, a connection button 103 for setting connection between program elements, a source code generation button 104 for instructing creation of a source code based on a block diagram, a CPU setting button 105 for setting a target CPU, and a source code A compile button 106 for instructing compilation and a processing time confirmation button 107 for confirming the processing time and performing processing according to the confirmation result are displayed.

ユーザは、入力部4が有するマウスを用いて所望の操作に対応するボタンの表示位置にマウスポインタを位置合わせした後、マウスボタンをクリックすることによってソフトウェア開発支援装置1に実行させる動作を選択入力する。以下、マウスポインタを位置合わせした後にマウスボタンをクリックする操作を、単にクリックするという。   The user selects and inputs an operation to be performed by the software development support apparatus 1 by clicking the mouse button after aligning the mouse pointer with the display position of the button corresponding to the desired operation using the mouse of the input unit 4. To do. Hereinafter, the operation of clicking the mouse button after aligning the mouse pointer is simply referred to as clicking.

図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 CPU setting button 105. When the CPU setting button 105 is clicked, “CPU selection”, “CPU clock number”, and “CPU constraint processing time” are displayed as pull-down menus. Among these, when “CPU selection” is clicked, selectable target CPU types are displayed as a pull-down menu in a lower layer (not shown). On the other hand, a box for inputting the number of clocks is displayed in “CPU clock number”, and a box for inputting the processing time is displayed in “CPU constraint processing time”. The user inputs a desired number of clocks and constraint processing time into the corresponding boxes by the input unit 4. Information set using the CPU setting button 105 is stored in the CPU information storage unit 34 by the CPU setting unit 23.

図4は、コンパイルボタン106のプルダウンメニューの表示例を示す図である。コンパイルボタン106がクリックされると、プルダウンメニューとして「コンパイル実行」、「コンパイル結果確認」および「コンパイル設定」が表示される。   FIG. 4 is a diagram illustrating a display example of a pull-down menu of the compile button 106. When the compile button 106 is clicked, “Compile execution”, “Compilation result confirmation”, and “Compile setting” are displayed as pull-down menus.

図5は、処理時間確認ボタン107のプルダウンメニューの表示例を示す図である。処理時間確認ボタン107がクリックされると、プルダウンメニューとして「処理時間確認」、「タスク分割実行」、「タスク管理ソースコード生成」および「タスク管理ソースコード保存」が表示される。   FIG. 5 is a diagram illustrating a display example of a pull-down menu of the processing time confirmation button 107. When the processing time confirmation button 107 is clicked, “processing time confirmation”, “task division execution”, “task management source code generation”, and “task management source code storage” are displayed as pull-down menus.

以上の機能構成を有するソフトウェア開発支援装置1は、1つのコンピュータを用いて実現してもよいし、複数のコンピュータを用いて実現してもよい。後者の場合には、通信ネットワークを介してデータの送受信を行いながら、互いに連携して処理を行うようにすることも可能である。なお、ここでいうコンピュータは、汎用のパーソナルコンピュータやサーバ等によって構成することができる。また、通信ネットワークを介した複数のコンピュータからなるクライアント・サーバシステムによってソフトウェア開発支援装置1を構成する場合には、入力部4および表示部5の機能をクライアント端末に具備させる一方、制御部2および記憶部3の機能を一または複数のサーバに具備させるような構成としてもよい。   The software development support apparatus 1 having the above functional configuration may be realized by using one computer or may be realized by using a plurality of computers. In the latter case, it is also possible to perform processing in cooperation with each other while transmitting and receiving data via a communication network. In addition, the computer here can be comprised by a general purpose personal computer, a server, etc. When the software development support apparatus 1 is configured by a client / server system including a plurality of computers via a communication network, the functions of the input unit 4 and the display unit 5 are provided in the client terminal, while the control unit 2 and It is good also as a structure which equips one or several server with the function of the memory | storage part 3. FIG.

次に、ソフトウェア開発支援装置1を用いて行うソフトウェア開発処理について説明する。図6は、ソフトウェア開発支援装置1を用いて行うソフトウェア開発処理の概要を示すフローチャートである。まず、ブロック図作成部21は、ユーザによる入力部4を介したプログラム要素および接続線の入力に基づいてブロック図を作成し、作成したブロック図をブロック図記憶部32に格納する(ステップS1)。ユーザは、図2に示す表示画面100に表示されたプログラム要素選択ボタン102を用いてプログラム要素を選択し、接続ボタン103を用いてプログラム要素間を接続する接続線を選択する。   Next, software development processing performed using the software development support apparatus 1 will be described. FIG. 6 is a flowchart showing an outline of software development processing performed using the software development support apparatus 1. First, the block diagram creating unit 21 creates a block diagram based on the program elements and connection lines input via the input unit 4 by the user, and stores the created block diagram in the block diagram storage unit 32 (step S1). . The user uses the program element selection button 102 displayed on the display screen 100 shown in FIG. 2 to select a program element, and uses the connection button 103 to select a connection line that connects the program elements.

図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 display unit 5. A block diagram 201 displayed on the display screen 200 shown in the figure includes six program elements 211 to 216 and five connection lines 221 to 225 indicating connection relations between program elements. Each program element displays a function name and an identification ID. For example, the program element 211 has a function name A and an ID F001. In addition, an ID for identification is displayed on each connection line. For example, the ID of the connection line 221 is W001. In addition, you may add the figure which expresses a function concretely in the box of each program element.

ブロック図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 display screen 200 as is apparent from the directions of the arrows of the connection lines 221 to 225. Two program elements 211 and 214 are provided in the foremost stage of the block diagram 201, while a program element 216 is provided in the last stage of the block diagram 201. In the block diagram 201, there are a process flow of program element 211 → program element 212 → program element 213 → program element 216 and a process flow of program element 214 → program element 215 → program element 216.

プログラム要素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 program element 211 is connected to the program element 212 (function name: B, ID: F002) via a connection line 221 extending from itself.
The program element 212 is connected to the program element 213 (function name: C, ID: F003) via a connection line 222 (ID: W002) extending from itself.
The program element 213 is connected to the program element 216 (function name: F, ID: F006) via a connection line 223 (ID: W003) extending from itself.
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 program element 215 is connected to the program element 216 via a connection line 225 (ID: W005) extending from itself.

ステップ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 diagram creation unit 21 according to the input of the source code generation instruction signal via the input unit 4 by the user, Store in the source code storage unit 33 (step S2). As described above, this source code is generated by a computer language such as C language.

続いて、CPU設定部23は、ユーザによる入力部4を介した入力に応じて、ターゲットCPUの設定入力を行う(ステップS3)。ユーザは、CPU設定ボタン105をクリックしてプルダウンメニューを表示した後(図3を参照)、ターゲットCPUの種類を選択するとともに、入力部4によってクロック数や制約処理時間を入力する。   Subsequently, the CPU setting unit 23 performs setting input of the target CPU in accordance with the input through the input unit 4 by the user (step S3). After the user clicks the CPU setting button 105 to display a pull-down menu (see FIG. 3), the user selects the type of the target CPU and inputs the number of clocks and the constraint processing time through the input unit 4.

この後、コンパイル部24は、ユーザによる入力部4を介したコンパイル指示信号の入力に応じて、ソースコード記憶部33からソースコードを読み出し、読み出したソースコードを機械語に変換してオブジェクトファイルを生成する(ステップS4)。このコンパイル処理をソフトウェア開発支援装置1に実行させる際、ユーザは、コンパイルボタン106をクリックしてプルダウンメニューを表示した後、「コンパイル実行」をクリックする(図4を参照)。なお、ユーザがコンパイルの結果を確認する場合には、図4に示すプルダウンメニューのうち「コンパイル結果確認」をクリックすればよい。また、ユーザがコンパイルの設定を確認したり変更したりする場合には、図4に示すプルダウンメニューのうち「コンパイル設定」をクリックして設定画面を表示させて設定を行えばよい。   Thereafter, the compiling unit 24 reads the source code from the source code storage unit 33 in response to the input of the compile instruction signal via the input unit 4 by the user, converts the read source code into a machine language, and converts the object file into Generate (step S4). When causing the software development support apparatus 1 to execute the compile processing, the user clicks the compile button 106 to display a pull-down menu, and then clicks “compile execution” (see FIG. 4). When the user confirms the compilation result, it is only necessary to click “Compilation Result Confirmation” in the pull-down menu shown in FIG. When the user confirms or changes the compile setting, the user may click the “compile setting” in the pull-down menu shown in FIG. 4 to display the setting screen and perform the setting.

続いて、処理時間算出部25は、ユーザによる入力部4を介した処理時間算出指示信号の入力に応じて、生成したオブジェクトファイルの処理時間を算出し、算出結果を処理時間情報記憶部36に格納する(ステップS5)。具体的には、処理時間算出部25は、オブジェクトファイルから機械語の命令数を抽出し、この命令数に応じた総実行クロック数を算出した後、この総実行クロック数とCPU情報記憶部34が記憶するクロック数とを用いて処理時間を算出する。この処理を処理時間算出部25に実行させる際、ユーザは、処理時間確認ボタン107をクリックしてプルダウンメニューを表示した後(図5を参照)、「処理時間確認」メニューをクリックする。   Subsequently, the processing time calculation unit 25 calculates the processing time of the generated object file in response to the input of the processing time calculation instruction signal by the user via the input unit 4, and the calculation result is stored in the processing time information storage unit 36. Store (step S5). Specifically, the processing time calculation unit 25 extracts the number of machine language instructions from the object file, calculates the total number of execution clocks corresponding to the number of instructions, and then calculates the total execution clock number and the CPU information storage unit 34. Is used to calculate the processing time. When causing the processing time calculation unit 25 to execute this processing, the user clicks the processing time confirmation button 107 to display a pull-down menu (see FIG. 5), and then clicks the “processing time confirmation” menu.

続いて、判定部26は、処理時間算出部25が算出した処理時間とCPU情報記憶部34が記憶する制約処理時間とを比較することにより、処理時間が制約条件を満たすか否かを判定する(ステップS6)。具体的には、判定部26は、処理時間が制約処理時間よりも小さい場合、処理時間が制約条件を満たすと判定する一方、処理時間が制約処理時間以上である場合、処理時間が制約条件を満たさないと判定する。   Subsequently, the determination unit 26 determines whether the processing time satisfies the constraint condition by comparing the processing time calculated by the processing time calculation unit 25 with the constraint processing time stored in the CPU information storage unit 34. (Step S6). Specifically, when the processing time is smaller than the constraint processing time, the determination unit 26 determines that the processing time satisfies the constraint condition. On the other hand, when the processing time is equal to or greater than the constraint processing time, Judge that it does not meet.

その後、表示部5は、判定部26の判定結果を表示する(ステップS7)。図8は、表示部5が判定結果を表示する表示画面の例(第1例)を示す図である。同図に示す表示画面300において、ブロック図201には、プログラム要素211〜216における命令数と処理時間の算出結果表示ボックス231〜236がそれぞれ対応付けて表示される。   Then, the display part 5 displays the determination result of the determination part 26 (step S7). FIG. 8 is a diagram illustrating an example (first example) of a display screen on which the display unit 5 displays the determination result. In the display screen 300 shown in the figure, the block diagram 201 displays the number of instructions in the program elements 211 to 216 and the calculation result display boxes 231 to 236 of the processing time in association with each other.

具体的には、プログラム要素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 program element 211 displays the number of instructions 200 and the processing time 100 μs as the calculation results.
The calculation result display box 232 corresponding to the program element 212 displays the number of instructions 160 and the processing time of 80 μs.
The calculation result display box 233 corresponding to the program element 213 displays the number of instructions 80 and the processing time 40 μs.
In the calculation result display box 234 corresponding to the program element 214, the number of instructions 120 and the processing time 60 μs are displayed.
In the calculation result display box 235 corresponding to the program element 215, the number of instructions 100 and the processing time 50 μs are displayed.
In the calculation result display box 236 corresponding to the program element 216, the number of instructions 200 and the processing time 100 μs are displayed.

また、表示画面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 display screen 300, a processing time analysis result table 301 representing processing time analysis results and constraint information 302 representing information related to the constraint conditions of the target CPU are displayed.
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 program elements 211 to 216 are included in one task (task ID: 1), and processing time by task ID 430 μs is displayed. In addition, the total number of instructions 860 of the program elements 211 to 216 is also displayed.
The constraint information 302 includes a constraint processing time (500 μs), a task division number (1), and a determination result (OK). Among these, the determination result is a result determined by the determination unit 26 based on the comparison between the task ID processing time (430 μs) and the constraint processing time (500 μs). That is, as shown in the display screen 300, since the processing time for each task ID is shorter than the constraint processing time, the determination unit 26 determines that the processing time for each task ID as the processing time is a processing time that can be executed by the target CPU. .

なお、表示部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 display unit 5 from the display screen 100 to the display screen 300, calculation result display boxes 231 to 236 indicating the results calculated by the processing time calculation unit 25 in step S5 are displayed. The display unit 5 may display a display screen in a state where the processing time analysis result table 301 and the constraint information 302 are not displayed.

図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 display unit 5 displays the determination result. The display screen 400 shown in the figure is different from the display screen 300 described above (see FIG. 8) in the display contents of the constraint information 401. On the display screen 400, the constraint processing time included in the constraint information 401 is 200 μs, and the task ID processing time (430 μs) is longer than the constraint processing time. In this case, since the determination unit 26 determines that the processing time for each task ID cannot be executed by the target CPU, the determination result included in the constraint information 401 is displayed as “NG”.

判定部26による判定の結果、ターゲットCPUの処理時間が制約条件を満たさない場合(ステップS8:No)、分割部27は、ユーザによる入力部4を介した分割指示の入力に応じて、プログラムのタスクを分割し、分割結果を分割情報記憶部37に格納する(ステップS9)。この処理を分割部27に実行させる際、ユーザは、処理時間確認ボタン107をクリックしてプルダウンメニューを表示した後(図5を参照)、「タスク分割実行」メニューをクリックする。   As a result of the determination by the determination unit 26, when the processing time of the target CPU does not satisfy the constraint condition (step S8: No), the dividing unit 27 executes the program according to the input of the division instruction via the input unit 4 by the user. The task is divided, and the division result is stored in the division information storage unit 37 (step S9). When causing the dividing unit 27 to execute this processing, the user clicks the processing time confirmation button 107 to display a pull-down menu (see FIG. 5), and then clicks the “execute task division” menu.

この後、表示部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 display unit 5 displays the division result of the division unit 27 (step S10). FIG. 10 is a diagram illustrating an example of a display screen displayed on the display unit 5 after the division unit 27 divides the task. A display screen 410 shown in the figure shows a display example after the dividing unit 27 performs the dividing process in a state where the display unit 5 displays the display screen 400 shown in FIG. 9.
In FIG. 10, the processing time analysis result table 411 indicates that the six program elements 211 to 216 are divided into three tasks (task IDs: 1 to 3). Specifically, the processing time analysis result table 411 includes the program elements 211 and 212 as one task (task ID: 1), the program elements 213 and 214 as another task (task ID: 2), and the program element 215. 216 is a further task (task ID: 3), and the program is divided into three tasks.
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 constraint information 412, the determination result is displayed as “OK”.

なお、本実施の形態では、分割部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 unit 26 uses the result of dividing the task by the dividing unit 27 to target again. Whether or not the CPU can execute the program may be determined.

以上説明したステップ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 development support apparatus 1 ends a series of processes.

ステップ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 time confirmation button 107 to display a pull-down menu (see FIG. 5), and then clicks the “task management source code generation” menu. Thereafter, the user confirms the contents of the task management source code generated by the source code generation unit 22, and if there is no problem, click “save task management source code” displayed in the pull-down menu of the processing time confirmation button 107. Thus, the task management source code is stored in the source code storage unit 33. In step S11, after the source code generation unit 22 generates the task management source code, the generated task management source code is automatically stored in the source code storage unit 33 without waiting for an instruction from the user. May be.

図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 management source code 500 shown in the figure is described using C language. Specifically, in the task management source code 500, the first task (case 0) is composed of program elements 211 (ID: F001) and 212 (ID: F002) with a switch statement, and the task ID is set to 1. The second task (case 1) is composed of program elements 213 (ID: F003) and 214 (ID: F004), the task ID is 2, and the third task (case 2) is program element 215 ( ID: F005) and 216 (ID: F006), and the task ID is set to 3.

ここで、ステップ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 determination unit 26 in step S8 (step S8: Yes) will be described. In this case, the software development support device 1 proceeds to step S11 (task management source code generation processing). FIG. 12 is a diagram illustrating an example of task management source code generated by the source code generation unit 22 in Step S11 when the processing time satisfies the constraint condition as a result of the determination by the determination unit 26. The task management source code 600 shown in the figure forms one task with six program elements 211 to 216 (ID: F001 to F006).

なお、分割部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 display unit 5 after the division unit 27 divides a task as a modification of the present embodiment. In the display screen 700 shown in the figure, in the block diagram 701, combinations of program elements for each divided task are clearly shown. Specifically, the closed region T1 surrounds the program elements 211 and 212 constituting the task with the task ID = 1, and the closed region T2 surrounds the program elements 213 and 214 constituting the task with the task ID = 2. The program elements 215 and 216 constituting the task with ID = 3 are displayed in a manner surrounded by the closed region T3. Here, the three closed regions T1 to T3 are closed regions that do not intersect each other. In this way, by clearly indicating the method of task division in the block diagram 701, the user can recognize the task division more easily and intuitively.

なお、閉領域で包囲することによってタスクごとのプログラム要素の組合せを明示する代わりに、タスクごとにプログラム要素のボックスの線の色を変えてもよいし、タスクごとにプログラム要素のボックスを異なる色で塗りつぶしてもよい。   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 development support apparatus 1 except that the control unit 12 does not have a division unit and the storage unit 13 does not have a division information storage unit. Have. In the software development support device 11, the determination unit 26 determines whether the processing time calculated by the processing time calculation unit 25 satisfies the constraint condition, and the display unit 5 displays the determination result (OK / NG). It has a function. According to such a software development support apparatus 11, the user can easily recognize whether or not the development object file satisfies the constraint condition.

なお、本発明において、ソフトウェア開発支援装置が入力部および/または表示部を備えていなくてもよい。この場合には、ソフトウェア開発支援装置に対して外部の入力装置および/または表示装置を接続することによって上述した一実施の形態と同様の機能を実現すればよい。   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 CPU setting unit 23, the determination unit 26 may determine whether or not the program can be executed on the new target CPU.

また、本発明において適用可能な計算機言語は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 SYMBOLS 1,11 Software development support apparatus 2,12 Control part 3,13 Storage part 4 Input part 5 Display part 21 Block diagram preparation part 22 Source code generation part 23 CPU setting part 24 Compiling part 25 Processing time calculation part 26 Judgment part 27 Division | segmentation Unit 31 Program element storage unit 32 Block diagram storage unit 33 Source code storage unit 34 CPU information storage unit 35 Object file storage unit 36 Processing time information storage unit 37 Division information storage unit 100, 200, 300, 400, 410, 700 Display screen DESCRIPTION OF SYMBOLS 101 File button 102 Program element selection button 103 Connection button 104 Source code generation button 105 CPU setting button 106 Compile button 107 Processing time confirmation button 201,701 Block diagram 211,212,213,214,215,21 Program element 221, 222, 223, 224, 225 Connection line 231, 232, 233, 234, 235, 236 Calculation result display box 301, 411 Processing time analysis result table 302, 401, 412 Constraint information 500, 600 Task management source code T1, T2, T3 closed region

Claims (5)

組込み対象の機器に組込んで該機器が備えるCPUを動作させるソフトウェアの開発を支援するソフトウェア開発支援装置において、
前記ソフトウェアを構成するプログラムのソースコードであって所定の計算機言語で記述されたソースコードを機械語に変換するコンパイル部と、
前記コンパイル部が変換した機械語に含まれる命令数を抽出することによって前記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の動作クロック数をさらに設定し、
前記処理時間算出部は、
抽出したすべての前記命令数から総実行クロック数を算出し、該総実行クロック数と前記CPU設定部が設定した動作クロック数とをもとに前記処理時間を算出することを特徴とする請求項に記載のソフトウェア開発支援装置。
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に実行させることの可否を判定する判定ステップと、
前記制約処理時間および前記判定ステップで判定した結果を表示する判定結果表示ステップと、
前記判定ステップで前記プログラムを前記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に実行させることの可否を判定する判定ステップと、
前記制約処理時間および前記判定ステップで判定した結果を表示する判定結果表示ステップと、
前記判定ステップで前記プログラムを前記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
JP2013135568A 2013-06-27 2013-06-27 Software development support apparatus, software development support method, and software development support program Expired - Fee Related JP6045986B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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