JP7385536B2 - Software development support device and software development support method - Google Patents

Software development support device and software development support method Download PDF

Info

Publication number
JP7385536B2
JP7385536B2 JP2020112276A JP2020112276A JP7385536B2 JP 7385536 B2 JP7385536 B2 JP 7385536B2 JP 2020112276 A JP2020112276 A JP 2020112276A JP 2020112276 A JP2020112276 A JP 2020112276A JP 7385536 B2 JP7385536 B2 JP 7385536B2
Authority
JP
Japan
Prior art keywords
model
control
source
software development
development support
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020112276A
Other languages
Japanese (ja)
Other versions
JP2022011264A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo 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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020112276A priority Critical patent/JP7385536B2/en
Publication of JP2022011264A publication Critical patent/JP2022011264A/en
Application granted granted Critical
Publication of JP7385536B2 publication Critical patent/JP7385536B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、機器を制御するモデルベース開発において、制御ソフトウェアの開発を行うソフトウェア開発支援装置及びソフトウェア開発支援方法に関する。 The present invention relates to a software development support device and a software development support method for developing control software in model-based development for controlling equipment.

特定の機能を実現するために機械や装置に組み込まれるコンピュータシステムである組み込みシステムのソフトウェア開発では、機器を制御する処理を実装した制御プログラムを実行することにより、当該機器をリアルタイムで制御する。 In software development for embedded systems, which are computer systems that are built into machines and equipment to achieve specific functions, the equipment is controlled in real time by executing a control program that implements processing to control the equipment.

近年、制御ソフトウェアの開発においては、開発者が制御ソフトウェアのソースコードを記述することに代えて、より簡易に生成でき視認性の良い「(制御)モデル」によって記述する場合がある。この開発手法をモデルベース開発と呼ぶ。 In recent years, in the development of control software, instead of writing the source code of the control software, developers sometimes write it using a "(control) model" that is easier to generate and has better visibility. This development method is called model-based development.

モデルベース開発に対応したプログラム開発環境としては、例えば、MathWorks(登録商標)社のMATLAB(登録商標)がある。開発者は、MATLAB(登録商標)の一機能であるSimulinkを用いて、モデルを記述する。モデルは、ブロックと呼ばれる機能単位及び機能単位間の入出力関係を示す結線によって記述される。 An example of a program development environment compatible with model-based development is MATLAB (registered trademark) from MathWorks (registered trademark). A developer describes a model using Simulink, which is a function of MATLAB (registered trademark). A model is described by functional units called blocks and connections indicating input/output relationships between the functional units.

Simulink(登録商標)を用いて、制御ソフトウェアが実装した機能を記述したモデルは、制御モデルと呼ばれる。この制御モデルを元に、例えばdSpace(登録商標)社のTargetLink(登録商標)を用いて、ソースコードの生成に必要なデータ型やビットレートなどの情報を付加するプロセスはスケーリングと呼ばれる。制御モデルを基に生成されたソースコードをモデルソースと呼ぶ。 A model that describes functions implemented by control software using Simulink (registered trademark) is called a control model. The process of adding information such as data type and bit rate necessary for generating source code based on this control model using, for example, dSpace (registered trademark)'s TargetLink (registered trademark) is called scaling. The source code generated based on the control model is called model source.

公知例として特許文献1には、制御モデルに対してスケーリングを実施してソースコード生成までを自動化する技術が開示されている。 As a well-known example, Patent Document 1 discloses a technique that performs scaling on a control model and automates the process up to source code generation.

また、ソフトウェア開発においてはゼロからソフトウェアを生成してプログラムを生成するよりも、ソフトウェア部品をかき集めて再利用する流用開発を行うことが効果的な手法として知られている。 Furthermore, in software development, it is known that reuse development, in which software components are collected and reused, is an effective method, rather than generating software and programs from scratch.

公知例として特許文献2には、カテゴリ情報が付与されたソフトウェア部品を用意しておき、開発要求を満たすソフトウェア部品を検索してソースコードの流用開発ができるシステムが開示されている。 As a known example, Patent Document 2 discloses a system in which software components to which category information is assigned are prepared, a software component that satisfies a development request is searched for, and source code can be used for development.

特開2017-016416号公報Japanese Patent Application Publication No. 2017-016416 特開2008-040969号公報Japanese Patent Application Publication No. 2008-040969

しかし、制御モデルはプログラム全体の仕様は表現されておらず、プログラム全体の制御仕様は、複数の制御モデルで構成されて制御モデル同士の情報の全制御仕様の特徴を表したモデル(以下特徴モデル)によって表現されている。 However, the control model does not express the specifications of the entire program, and the control specifications of the entire program are composed of multiple control models, and the information between the control models is a model (hereinafter referred to as a feature model) that expresses the characteristics of the entire control specification. ) is expressed by.

特許文献1の技術では、制御モデルのモデルソースの生成はできても、特徴モデルの仕様を満たしたプログラムを生成することはできない。 Although the technique disclosed in Patent Document 1 can generate a model source for a control model, it cannot generate a program that satisfies the specifications of the feature model.

特徴モデルは多数の制御モデルより構成されているため、特徴モデルの仕様を満たすプログラムを生成する毎に制御モデルよりコード生成を行うと、使用する制御モデルの数だけ生成時間を要してしまう。 Since a feature model is composed of a large number of control models, if code is generated from the control models each time a program that satisfies the specifications of the feature model is generated, it will take as much generation time as the number of control models to be used.

特許文献2に記載の技術はソフトウェア部品の検索は容易にできるものの、ソースコード単位の管理ではなく、あくまでもソースコードの一部を部品としてカテゴリ別に管理しているため、分類や処理の依存関係から設計者自身が適切な部品を見つけ出した上でソースコードを生成する必要がある。 Although the technology described in Patent Document 2 makes it easy to search for software components, it does not manage source code units, but instead manages part of the source code as components by category, so it is difficult to understand the classification and processing dependencies. Designers themselves need to find appropriate parts and then generate source code.

そのため、実行プログラムを生成するには、特徴モデルより制御モデル間の依存関係を解析し、実行順序を定義する作業や、異なる演算周期で同一変数を使用する場合に変数の一貫性を確保する受け渡し処理(バッファリング処理)の定義や、コンパイル対象のファイルや設定を定義したコンパイル実行情報(MAKEファイル)をそれぞれ定義する必要があるが、上記特許文献1、2はいずれも上記3点を考慮していない。 Therefore, in order to generate an executable program, it is necessary to analyze the dependencies between control models from the feature model, define the execution order, and pass the variables to ensure consistency when using the same variables in different calculation cycles. Although it is necessary to define the process (buffering process) and compile execution information (MAKE file) that defines files and settings to be compiled, both Patent Documents 1 and 2 take the above three points into consideration. Not yet.

さらに、例えば自動車用電子制御ユニット(Electric Control Unit、以下ECU)の組み込みソフトウェア開発では、マイクロコンピュータ(以下、マイコン)の性能向上に伴う発熱量や消費電力の増加対策として複数のコアを含むマイコンが登場してきており、ソフトウェアを複数のコアに対応可能な構造にすることが求められている。 Furthermore, in the development of embedded software for automotive electronic control units (ECUs), for example, microcomputers containing multiple cores are required to counter the increase in heat generation and power consumption associated with improved performance of microcomputers (hereinafter referred to as microcomputers). It is now emerging, and there is a need for software to have a structure that can support multiple cores.

本発明は、上記のような課題に鑑みて、特徴モデルで定義された制御仕様からプログラムを生成し、モデルソースにカテゴリ情報を付与することなく部品をモデルソース単位で管理することができ、また、複数のコアを含むプロセッサへも対応することができるソフトウェア開発支援装置を提供することを目的とする。 In view of the above-mentioned problems, the present invention generates a program from control specifications defined in a feature model, allows parts to be managed in model source units without adding category information to model sources, and , an object of the present invention is to provide a software development support device that can also support a processor including multiple cores.

本発明は、第1のプロセッサとメモリを有するソフトウェア開発支援装置であって、制御モデルの実行順序を含んでソフトウェアの制御仕様を記述した特徴モデルを受け付けて、当該特徴モデルを構成している制御モデルを解析し、前記制御モデルの演算周期と、前記制御モデルの実行順序を解析して実行順序情報として出力する特徴モデル解析部と、前記制御モデルを受け付けて、前記制御モデルの演算周期を含んでファイル名が当該制御モデルと同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデルの仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成部と、前記特徴モデルから分析された前記制御モデルと同名のモデルソースを前記モデルソース記憶部から収集するモデルソース収集部と、複数のコアを有して前記ソフトウェアを実行する第2のプロセッサの情報を入力するプロセッサ情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコアの処理に最適化するために前記演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部と、を有する。 The present invention is a software development support device having a first processor and a memory, which receives a feature model that describes a software control specification including an execution order of the control model, and controls the feature model constituting the feature model. a feature model analysis unit that analyzes the model, analyzes the calculation cycle of the control model and the execution order of the control model, and outputs the result as execution order information; a model source generation unit that generates a model source whose file name is the same as the control model, tests whether the generated model source matches the specifications of the control model, and then stores it in a model source storage unit; , a model source collection unit that collects a model source having the same name as the control model analyzed from the feature model from the model source storage unit; and a second processor that has a plurality of cores and executes the software. Receiving input processor information, and processing assignment information for each core based on the calculation cycle and execution order information in order to optimize the software for processing of the plurality of cores with respect to the collected model source. and a parallel processing generation unit that generates.

本発明によれば、複数のコアを含むプロセッサ向けに最適化されたソフトウェアを開発することができる。また、ソースコードの収集から、演算の実行順序の設定、接続情報の設定、コンパイル、コア別の処理の割り当てを自動で実施できるので、設計作業の工数削減を図ることができる。 According to the present invention, software optimized for a processor including multiple cores can be developed. Furthermore, since the collection of source code, setting of execution order of calculations, setting of connection information, compilation, and allocation of processing to each core can be automatically carried out, it is possible to reduce the number of man-hours for design work.

また、本発明は実施形態に制限されず、本発明の範囲を逸脱しなければ、ECU以外の組み込み制御機器やモデル情報を基にしたソフトウェア開発手法に対して様々な応用が可能である。よって、特徴モデルを基に特徴モデルで表現された制御仕様を満たすプログラムを自動で出力することができる。 Further, the present invention is not limited to the embodiments, and various applications can be made to embedded control devices other than ECUs and software development methods based on model information without departing from the scope of the present invention. Therefore, based on the feature model, it is possible to automatically output a program that satisfies the control specifications expressed by the feature model.

本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 The details of at least one implementation of the subject matter disclosed herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosed subject matter will be apparent from the following disclosure, drawings, and claims.

本発明の実施例を示し、制御モデルと特徴モデルの関係図である。FIG. 2 is a relationship diagram between a control model and a feature model, showing an embodiment of the present invention. 本発明の実施例を示し、制御モデルの一例を示す図である。1 is a diagram illustrating an example of a control model according to an embodiment of the present invention; FIG. 本発明の実施例を示し、ソフトウェア開発支援装置の機能の一例を示すブロック図である。FIG. 1 is a block diagram showing an example of the functions of a software development support device according to an embodiment of the present invention. 本発明の実施例を示し、ソフトウェア開発支援装置の構成の一例を示すブロック図である。1 is a block diagram showing an example of the configuration of a software development support device according to an embodiment of the present invention. FIG. 本発明の実施例を示し、ソフトウェア開発支援装置で行われる処理の一例を示すフローチャートである。1 is a flowchart illustrating an example of processing performed by a software development support device according to an embodiment of the present invention. 本発明の実施例を示し、特徴モデル解析部で行われる使用モデル特定処理の図である。FIG. 6 is a diagram illustrating a usage model identification process performed by a feature model analysis unit according to an embodiment of the present invention. 本発明の実施例を示し、特徴モデル解析部の演算周期毎の演算実行順序リストの例である。1 is an example of a calculation execution order list for each calculation cycle of a feature model analysis unit, showing an embodiment of the present invention. 本発明の実施例を示し、特徴モデル解析部の演算周期毎の変数接続処理の定義の一例を示す図である。FIG. 7 is a diagram illustrating an example of the definition of variable connection processing for each calculation cycle of the feature model analysis unit according to an embodiment of the present invention. 本発明の実施例を示し、異なる演算周期で同一変数を使用している制御モデルの図である。FIG. 3 is a diagram of a control model in which the same variable is used in different calculation cycles, showing an embodiment of the present invention. 本発明の実施例を示し、ソフトウェア開発支援装置の接続処理追加部の構成図である。FIG. 2 is a configuration diagram of a connection processing addition unit of a software development support device, showing an embodiment of the present invention. 本発明の実施例を示し、接続処理追加部の演算周期毎の演算実行順序定義の一例を示す図である。FIG. 6 is a diagram illustrating an example of the calculation execution order definition for each calculation cycle of the connection processing addition unit according to the embodiment of the present invention. 本発明の実施例を示し、ソフトウェア開発支援装置の並列処理生成部の構成図である。1 is a configuration diagram of a parallel processing generation unit of a software development support device, showing an embodiment of the present invention; FIG. 本発明の実施例を示し、2つのプロセッサコアに並列処理を割り当てた例を示す図である。FIG. 2 is a diagram illustrating an embodiment of the present invention and illustrating an example in which parallel processing is assigned to two processor cores.

以下に本発明の実施形態について図面を参照しつつ説明を行う。 Embodiments of the present invention will be described below with reference to the drawings.

図1は、制御モデルA102-A~制御モデルG102-Gと特徴モデル101の関係を示した図である。特徴モデル101は複数の制御モデルA102-A2~制御モデルG102-Gによって構成されており、それぞれの制御モデル同士は共通変数の算出と、参照タイミングによって実行順序が決められる。そして、特徴モデル101は、生成するソフトウェア全体の制御仕様及び制御モデルの処理順序が記述されている。 FIG. 1 is a diagram showing the relationship between the control models A102-A to G102-G and the feature model 101. The feature model 101 is composed of a plurality of control models A102-A2 to G102-G, and the execution order of each control model is determined by calculation of common variables and reference timing. The feature model 101 describes the control specifications of the entire software to be generated and the processing order of the control model.

なお、以下の説明では、制御モデルA~Gを個々に特定しない場合には「-」以降を省略した符号「制御モデル102」を用いる。また、他の構成要素の符号についても同様である。 In the following description, when the control models A to G are not individually specified, the symbol "control model 102" will be used, omitting the part after "-". Further, the same applies to the symbols of other constituent elements.

制御モデルA102-Aの出力は、制御モデルB102-Bと制御モデルE102-Eへ入力される。制御モデルB102-Bは制御モデルA102-Aの出力に所定の処理を行って制御モデルC102-Cへ出力する。制御モデルD102-Dは制御モデルC102-Cの出力に所定の処理を行って制御モデルG102-Gへ出力する。 The output of control model A102-A is input to control model B102-B and control model E102-E. Control model B102-B performs predetermined processing on the output of control model A102-A and outputs it to control model C102-C. The control model D102-D performs predetermined processing on the output of the control model C102-C and outputs it to the control model G102-G.

制御モデルE102-Eは制御モデルA102-Aの出力に所定の処理を行って制御モデルF102-Fへ出力する。制御モデルF102-Fは制御モデルE102-Eの出力に所定の処理を行って制御モデルG102-Gへ出力する。制御モデルG102-Gは、制御モデルD102-Dと制御モデルF102-Fの出力に所定の処理を行った結果を出力する。 The control model E102-E performs predetermined processing on the output of the control model A102-A and outputs it to the control model F102-F. The control model F102-F performs predetermined processing on the output of the control model E102-E and outputs it to the control model G102-G. The control model G102-G outputs the result of performing predetermined processing on the outputs of the control model D102-D and the control model F102-F.

なお、本実施例の制御モデル102は、周知のモデルベース開発で利用されるモデルを用いることができ、制御単位の演算処理を記述したブロック線図などで構成される。 Note that the control model 102 of this embodiment can be a model used in well-known model-based development, and is composed of a block diagram or the like that describes arithmetic processing in units of control.

図2は、制御モデル102の内部処理の一例を示した図である。制御モデル102の内部では図に示したように一つ以上の入力値X(201)に対して一つ以上の処理A(211)~処理C(213)を行って一つ以上の出力値(本実施例ではY、Zの2つ)202、203を算出している。また、出力値Y、Z(202、203)はマルチコアのプロセッサで演算を行う場合の演算コアを指定する情報も含む。 FIG. 2 is a diagram showing an example of internal processing of the control model 102. Inside the control model 102, as shown in the figure, one or more processes A (211) to C (213) are performed on one or more input values X (201) to obtain one or more output values ( In this embodiment, two values (Y and Z) 202 and 203 are calculated. Further, the output values Y and Z (202, 203) also include information specifying the calculation core when calculation is performed by a multi-core processor.

図3Aは、ソフトウェア開発支援装置301の機能の一例を示すブロック図である。 FIG. 3A is a block diagram showing an example of the functions of the software development support device 301.

ソフトウェア開発支援装置301は入力として、制御モデル102及び特徴モデル303の情報を必要とする。モデルソース生成部304では、入力された制御モデル102をTargetLink(登録商標)等のオートコーディング機能を使用してC言語で記述されたソースコードを生成する。 The software development support device 301 requires information on the control model 102 and feature model 303 as input. The model source generation unit 304 generates source code written in C language from the input control model 102 using an autocoding function such as TargetLink (registered trademark).

この制御モデル102を基に出力されたソースコードはモデルソースと呼ばれる。この際に制御モデル102と、生成されたモデルソースとでは拡張子を除いたファイル名が同一であり、モデルソースには実行される演算周期の情報が含まれている。 The source code output based on this control model 102 is called a model source. At this time, the control model 102 and the generated model source have the same file name excluding the extension, and the model source includes information on the calculation cycle to be executed.

本実施例のモデルソース生成部304では、制御モデル102から出力されるモデルソースは1制御モデルから1モデルソースとしているが、制御モデル102内で行われている1つの演算を1つのモデルソースとして出力してもよい。 In the model source generation unit 304 of this embodiment, the model source output from the control model 102 is one model source from one control model, but one calculation performed within the control model 102 is treated as one model source. You can also output it.

モデルソース生成部304は、生成したソースコードと、入力された制御モデル102とで等価性を検証し、モデルソースに対しての変数の入出力値が仕様通りとなっているか単体テストを実施する。 The model source generation unit 304 verifies equivalence between the generated source code and the input control model 102, and performs a unit test to determine whether input and output values of variables to the model source are in accordance with specifications.

制御モデル102は流用変更等で内容が変更された場合は、更新毎にファイル名の末尾に更新回数の数字を付与する等して、名前を変えることで同名ファイルが重複することを防ぐ。 When the content of the control model 102 is changed due to diversion or the like, the name is changed by adding a number indicating the number of updates to the end of the file name each time the file is updated, thereby preventing files with the same name from being duplicated.

モデルソース生成部304で生成されたモデルソースは、モデルソース記憶部305に記憶され、モデルソース記憶部305には特徴モデル101で使用される全ての制御モデル102を予め記憶しておく。特徴モデル解析部306は、入力された特徴モデル101を解析する。(詳細な処理は後述する。) The model source generated by the model source generation unit 304 is stored in the model source storage unit 305, and all control models 102 used in the feature model 101 are stored in the model source storage unit 305 in advance. The feature model analysis unit 306 analyzes the input feature model 101. (Detailed processing will be described later.)

モデルソース収集部307では、特徴モデル解析部306で特定した制御モデル情報を基に同じ制御モデル102から生成されたモデルソースをモデルソース記憶部305より収集して収集モデルソースリスト901(図9参照)を生成する。 The model source collection unit 307 collects model sources generated from the same control model 102 based on the control model information specified by the feature model analysis unit 306 from the model source storage unit 305, and creates a collected model source list 901 (see FIG. 9). ) is generated.

モデルソース収集部307が収集したモデルソースは、それぞれ単体テストを実施済のため、収集したモデルソースに対して新たにテスト等の確認作業を実施する必要はない。 Each of the model sources collected by the model source collection unit 307 has already been subjected to a unit test, so there is no need to perform a new test or other confirmation work on the collected model sources.

モデルソース収集部307が収集したモデルソースに対しては接続処理追加部308で制御モデル102間の接続情報を定義する(詳細な処理は後述する)。 For the model sources collected by the model source collection unit 307, a connection processing adding unit 308 defines connection information between the control models 102 (detailed processing will be described later).

並列処理生成部309は、マルチコアプロセッサ向けの処理を追加する(詳細な処理は後述する)。並列処理生成部309では、特徴モデル解析部306と、接続処理追加部308と、プロセッサ情報310で入力された制御対象ECUのプロセッサのコア数の情報や、処理能力、コア毎のアドレスの割り当て情報を基に並列処理を生成し、モデルソースへ適用する。 The parallel processing generation unit 309 adds processing for multi-core processors (detailed processing will be described later). The parallel processing generation unit 309 uses the feature model analysis unit 306, the connection processing addition unit 308, and information on the number of cores of the processor of the controlled ECU input in the processor information 310, processing capacity, and address assignment information for each core. Generate parallel processing based on and apply it to the model source.

並列処理が適用されたモデルソースはコンパイルに必要な情報を満たしているため、コンパイル部311でコンパイルを実施できる。コンパイル部311では、モデルソース及び追加した接続処理を基にプロセッサ上で処理を実行可能な実行ファイルへの変換を行う。コンパイル部311でコンパイルが実行されたファイル(プログラム)はプログラム出力部312より出力される。 Since the model source to which parallel processing has been applied satisfies the information necessary for compilation, the compiling unit 311 can compile it. The compiling unit 311 converts the model source and the added connection processing into an executable file that can be processed on the processor. The file (program) compiled by the compile unit 311 is output from the program output unit 312.

図3Bは、ソフトウェア開発支援装置301の構成の一例を示すブロック図である。ソフトウェア開発支援装置301はプロセッサ11と、メモリ12と、ストレージ装置13と、入出力装置14と、ネットワーク装置15を含む計算機である。 FIG. 3B is a block diagram showing an example of the configuration of the software development support device 301. The software development support device 301 is a computer including a processor 11 , a memory 12 , a storage device 13 , an input/output device 14 , and a network device 15 .

入出力装置14は、キーボードやマウスあるいはタッチパネル等の入力装置と、ディスプレイ等の出力装置で構成される。ネットワーク装置15は、ネットワーク16に接続されて、他の装置と通信を行うことができる。 The input/output device 14 includes an input device such as a keyboard, a mouse, or a touch panel, and an output device such as a display. Network device 15 is connected to network 16 and can communicate with other devices.

メモリ12には、モデルソース生成部304と、特徴モデル解析部306と、モデルソース収集部307と、接続処理追加部308と、並列処理生成部309と、コンパイル部311と、プログラム出力部312がプログラムとしてロードされてプロセッサ11によって実行される。また、メモリ12には、各プログラムが用するデータとしてモデルソース記憶部305が格納される。 The memory 12 includes a model source generation section 304, a feature model analysis section 306, a model source collection section 307, a connection processing addition section 308, a parallel processing generation section 309, a compiling section 311, and a program output section 312. It is loaded as a program and executed by the processor 11. Furthermore, a model source storage unit 305 is stored in the memory 12 as data used by each program.

プロセッサ11は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ11は、モデルソース生成プログラムに従って処理を実行することでモデルソース生成部304として機能する。他のプログラムについても同様である。さらに、プロセッサ11は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。 The processor 11 operates as a functional unit that provides predetermined functions by executing processes according to the programs of each functional unit. For example, the processor 11 functions as the model source generation unit 304 by executing processing according to the model source generation program. The same applies to other programs. Furthermore, the processor 11 also operates as a functional unit that provides functions for each of the plurality of processes executed by each program. A computer and a computer system are devices and systems that include these functional units.

ソフトウェア開発支援装置301で行われる処理の一例を図4のフローチャートに示す。ソフトウェア開発支援装置301の特徴モデル解析部306は、特徴モデル303で使用されている制御モデル102の特定と、制御モデル102のリストの生成を行う(401)。この処理については、図5で後述する。 An example of the processing performed by the software development support device 301 is shown in the flowchart of FIG. The feature model analysis unit 306 of the software development support device 301 identifies the control models 102 used in the feature models 303 and generates a list of control models 102 (401). This process will be described later with reference to FIG.

次に、特徴モデル解析部306は、制御モデル102の処理を行うコアの割り当て情報を抽出する(402)。なお、コアの割り当て情報は、例えば、制御モデル102から抽出することができる。そして、特徴モデル解析部306は、各制御モデル102の演算周期と演算順序を解析して演算実行順序リストを生成する(403)。この処理については、図6で詳述する。 Next, the feature model analysis unit 306 extracts allocation information of cores that process the control model 102 (402). Note that the core assignment information can be extracted from the control model 102, for example. Then, the feature model analysis unit 306 analyzes the calculation cycle and calculation order of each control model 102 and generates a calculation execution order list (403). This process will be explained in detail with reference to FIG.

また、モデルソース生成部304は制御モデルを入力してモデルソースを生成してモデルソース記憶部305に格納する。モデルソース収集部307は、演算実行順序リストに対応するモデルソースを収集して接続処理追加部308へ出力する。 Furthermore, the model source generation unit 304 inputs the control model, generates a model source, and stores it in the model source storage unit 305. The model source collection unit 307 collects model sources corresponding to the calculation execution order list and outputs them to the connection processing addition unit 308.

その後、接続処理追加部308は、異なる演算周期で同一変数を使用している制御モデル102を検索する(404)。接続処理追加部308は、検索の結果、異なる演算周期で同一変数を使用する制御モデル102が存在する場合には、変数接続処理のソースコードを生成する(405)。 After that, the connection processing addition unit 308 searches for control models 102 that use the same variables in different calculation cycles (404). As a result of the search, if there is a control model 102 that uses the same variable in different calculation cycles, the connection process addition unit 308 generates a source code for the variable connection process (405).

並列処理生成部309は、生成したソースコードを接続先の演算周期毎に割り当てる(406)。この処理については、図7で後述する。そして、接続処理追加部308は、処理が完了していない変数接続処理があるか否かを判定し(407)、全ての変数接続処理が完了するまでこの上記ステップ404~406の処理を繰り返して実行する。 The parallel processing generation unit 309 allocates the generated source code to each calculation cycle of the connection destination (406). This process will be described later with reference to FIG. Then, the connection process addition unit 308 determines whether there is any variable connection process that has not been completed (407), and repeats the above steps 404 to 406 until all variable connection processes are completed. Execute.

上記の処理によって、ソフトウェア開発支援装置301は、異なる演算周期で同一変数を使用している制御モデル102間で変数を受け渡す変数接続処理を自動的に追加することが可能となる。 The above process enables the software development support apparatus 301 to automatically add a variable connection process for passing variables between control models 102 that use the same variable in different calculation cycles.

図5は、特徴モデル解析部306の使用モデル特定処理の一例を示す図である。特徴モデル解析部306は、入力された特徴モデル101に含まれる制御モデル102の演算順序を解析し、各制御モデル102毎に予め設定されたコア割り当て情報502-1、502-2を付与する。 FIG. 5 is a diagram illustrating an example of the usage model identification process of the feature model analysis unit 306. The feature model analysis unit 306 analyzes the calculation order of the control models 102 included in the input feature model 101, and assigns core allocation information 502-1, 502-2 set in advance to each control model 102.

特徴モデル解析部306は、使用する制御モデル102とコアの割り当て情報502を含む使用モデル及びコア割り当てリスト501を生成する。使用モデル及びコア割り当てリスト501には使用する制御モデル102と、制御モデルA102-A~制御モデルG102-Gのコア割り当て情報502が含まれる。 The feature model analysis unit 306 generates a usage model and core assignment list 501 that includes the control model 102 to be used and core assignment information 502. The usage model and core assignment list 501 includes the control model 102 to be used and core assignment information 502 for the control models A 102-A to G 102-G.

なお、コアの割り当て情報は、ソフトウェア開発支援装置301が生成したプログラムを実行する制御対象ECUのプロセッサコアの情報である。 Note that the core assignment information is information on the processor core of the controlled ECU that executes the program generated by the software development support device 301.

図6は、特徴モデル解析部306が生成する演算周期毎の演算実行順序リスト600の一例を示す図である。特徴モデル解析部306は、特徴モデル101から抽出した制御モデル102のそれぞれについて制御周期と実行順序を解析して、演算実行順序リスト600を生成する。 FIG. 6 is a diagram showing an example of a calculation execution order list 600 for each calculation cycle generated by the feature model analysis unit 306. The feature model analysis unit 306 analyzes the control cycle and execution order of each of the control models 102 extracted from the feature model 101, and generates an operation execution order list 600.

演算実行順序リスト600は、例えば、10msの演算周期で実行する制御モデル102のリスト601と、20msの演算周期で実行する制御モデル102のリスト602と、100msの演算周期で実行する制御モデル102のリスト603が含まれる。各リスト601~603内では演算の実行順序で制御モデル102が列記される。 The calculation execution order list 600 includes, for example, a list 601 of control models 102 to be executed in a calculation cycle of 10ms, a list 602 of control models 102 to be executed in a calculation cycle of 20ms, and a list 602 of control models 102 to be executed in a calculation cycle of 100ms. A list 603 is included. In each list 601 to 603, the control models 102 are listed in the order of execution of calculations.

図7は、特徴モデル解析部306の演算周期毎の変数接続処理定義701の一例を示す図である。 FIG. 7 is a diagram showing an example of variable connection processing definition 701 for each calculation cycle of the feature model analysis unit 306.

演算周期毎の変数接続処理定義701は、異なる演算周期で同一変数を使用する制御モデル102で実施する処理のソースコードを含む。 The variable connection process definition 701 for each calculation cycle includes the source code of the process executed by the control model 102 that uses the same variable in different calculation cycles.

図8は、異なる演算周期で同一の変数を使用している制御モデル102間の表記の一例を示す図である。 FIG. 8 is a diagram illustrating an example of notation between control models 102 that use the same variables in different calculation cycles.

図示の例では、10msの周期で演算が行われている制御モデルA(102-A)から同じく10msの周期で演算が行われている制御モデルB(102-B)と20msで演算が行われている制御モデルE(102-E)に変数情報が受け渡されている例を示す。 In the illustrated example, calculations are performed in 20ms from control model A (102-A), which performs calculations at a cycle of 10ms, to control model B (102-B), which also performs calculations at a cycle of 10ms. An example is shown in which variable information is passed to control model E (102-E).

特徴モデルには、同じ演算周期の制御モデル102に変数情報を受け渡す処理はないが、異なる演算周期で変数情報を受け渡す際は、制御モデル102の間に接続処理804を表すブロックが挿入される。よって、異なる演算周期に変数情報を受け渡している箇所は、この接続処理804のブロックを検索すればよい。 The feature model does not include a process for passing variable information to the control model 102 with the same calculation cycle, but when passing variable information in a different calculation cycle, a block representing the connection process 804 is inserted between the control models 102. Ru. Therefore, the connection process 804 block can be searched for locations where variable information is passed in different calculation cycles.

図9は、接続処理追加部308の構成の一例を示すブロック図である。図3Aで示したモデルソース収集部307で収集された収集モデルソースリスト901に、特徴モデル解析部306で抽出された演算実行順序リスト600と、変数接続処理定義701を適用することで特徴モデル101とモデルソースの振る舞いを一致させる接続処理追加済モデルソース1101を生成する。 FIG. 9 is a block diagram showing an example of the configuration of the connection processing addition unit 308. By applying the calculation execution order list 600 extracted by the feature model analysis unit 306 and the variable connection processing definition 701 to the collected model source list 901 collected by the model source collection unit 307 shown in FIG. 3A, the feature model 101 is A model source 1101 with connection processing added that matches the behavior of the model source is generated.

具体的には、接続処理追加部308は収集モデルソースリスト901から、モデルソースのファイル名及びモデルソースの演算周期の情報を取得する。次に、MAKEファイル生成部904はモデルソースのファイル名の情報を用いてコンパイルの際に対象となるソースファイルを定義するMAKEファイルの生成を行う。 Specifically, the connection processing addition unit 308 acquires information on the file name of the model source and the calculation cycle of the model source from the collected model source list 901. Next, the MAKE file generation unit 904 uses the information on the file name of the model source to generate a MAKE file that defines a source file to be compiled.

関数実行順序定義ファイル生成部905は、モデルソースの演算周期の情報と演算周期毎の演算実行順序リスト600を基に、演算周期毎の関数実行順序定義ファイルを生成する(図10参照)。 The function execution order definition file generation unit 905 generates a function execution order definition file for each calculation cycle based on the calculation cycle information of the model source and the calculation execution order list 600 for each calculation cycle (see FIG. 10).

また、変数情報受け渡し処理定義ファイル生成部906は、変数接続処理定義701を基に変数情報受け渡し処理定義ファイルを生成する。そして、接続処理適用部907は、上記の処理で生成されたMAKEファイルと、関数実行順序定義ファイルと、変数情報受け渡し処理定義ファイルを収集モデルソースリスト901に追加して接続処理追加済モデルソース1101として出力し、モデルソースが格納されているフォルダに保存する。 Further, the variable information transfer process definition file generation unit 906 generates a variable information transfer process definition file based on the variable connection process definition 701. Then, the connection processing application unit 907 adds the MAKE file generated in the above processing, the function execution order definition file, and the variable information passing processing definition file to the collected model source list 901, and adds the connection processing added model source 1101. and save it in the folder where the model source is stored.

図10は、接続処理追加部308の演算周期毎の演算実行順序定義1001の一例を示す図である。 FIG. 10 is a diagram illustrating an example of an operation execution order definition 1001 for each operation cycle of the connection processing addition unit 308.

演算周期毎の演算実行順序定義1001は、演算周期毎に制御モデル102の実行順序を定義したソースコードで記述される。 The calculation execution order definition 1001 for each calculation cycle is written in source code that defines the execution order of the control model 102 for each calculation cycle.

図11は、並列処理生成部309の構成の一例を示すブロック図である。並列処理生成部309は、接続処理追加部308から出力された接続処理追加済モデルソース1101に対して、使用プロセッサ情報保管部1102の情報を基に、制御対象ECUのプロセッサのコア毎に制御モデル102の処理を割り当てる。 FIG. 11 is a block diagram showing an example of the configuration of the parallel processing generation unit 309. The parallel processing generation unit 309 generates a control model for each core of the processor of the ECU to be controlled based on the information in the used processor information storage unit 1102 for the connection processing added model source 1101 output from the connection processing addition unit 308. 102 processes are assigned.

使用プロセッサ情報保管部1102は、特徴モデル101の入力時又は予め、ソフトウェアの書き込み先の電子基板(制御対象ECU)で使用されているプロセッサのコア数や、各コアの処理能力、コア毎のアドレス割り当て情報をプロセッサ情報310として入力する。また、設定するコア数は2コアに限定されず、シングルコアや2より多いコア数に設定することも可能である。 The used processor information storage unit 1102 stores the number of cores of the processor used in the electronic board (control target ECU) to which the software is written, the processing capacity of each core, and the address of each core at the time of inputting the feature model 101 or in advance. Allocation information is input as processor information 310. Further, the number of cores to be set is not limited to two cores, and may be set to a single core or a number of cores greater than two.

並列化処理適用部1103では、特徴モデル解析部306で生成した使用モデル及びコア割り当てリスト501と、演算実行順序定義1001、使用プロセッサ情報保管部1102、の情報を基に制御モデル102毎にコア割り当て情報502を付与する。具体的にはマイコン毎に定められたアドレスの割り当て情報を基に、各コア毎に割り当てられた処理を該当コアのアドレス領域に定義する。 The parallel processing application unit 1103 allocates cores for each control model 102 based on the usage model and core allocation list 501 generated by the feature model analysis unit 306, the operation execution order definition 1001, and the information in the usage processor information storage unit 1102. Information 502 is given. Specifically, based on address assignment information determined for each microcomputer, the processing assigned to each core is defined in the address area of the corresponding core.

図12は、2コアのプロセッサに並列化した処理を割り当てた例を示す。図示の例は、ソフトウェア開発支援装置301で生成したプログラムを制御対象ECU50で実施する例を示す。 FIG. 12 shows an example in which parallel processing is assigned to a two-core processor. The illustrated example shows an example in which a program generated by the software development support device 301 is executed by the ECU 50 to be controlled.

制御対象ECU50は、デュアルコアのプロセッサ51と、RAM(Random access memory)52と、ROM(Read Only memory)53と図示しないインタフェースを有する。 The controlled ECU 50 includes a dual-core processor 51, a RAM (Random Access Memory) 52, a ROM (Read Only Memory) 53, and an interface (not shown).

ソフトウェア開発支援装置301で生成したプログラムはROM53に書き込まれ、RAM52にロードされてからプロセッサ51の第1コア52-1又は第2コア52-2で実行される。 The program generated by the software development support device 301 is written to the ROM 53, loaded to the RAM 52, and then executed by the first core 52-1 or the second core 52-2 of the processor 51.

第1コア52-1には、制御モデルA(102-A)と、制御モデルB(102-B)及び制御モデルC(102-C)の処理が割り当てられ、 第2コア52-2には、制御モデルE(102-E)及び制御モデルF(102-F)の処理が割り当てられる。 The first core 52-1 is assigned the processing of control model A (102-A), control model B (102-B) and control model C (102-C), and the second core 52-2 is assigned the processing of control model A (102-A), control model B (102-B), and control model C (102-C). , control model E (102-E), and control model F (102-F).

このようにソフトウェア開発支援装置301は、制御モデル102の単位で第1コア52-1と第2コア52-2に処理を分割して割り当てを行う。本実施例のソフトウェア開発支援装置301を用いれば、特徴モデル101で表現された演算処理の依存関係を反映した並列化処理を自動的に生成することができる。 In this way, the software development support device 301 divides and allocates processing to the first core 52-1 and the second core 52-2 in units of control models 102. By using the software development support device 301 of this embodiment, it is possible to automatically generate parallel processing that reflects the dependency relationship of the calculation processing expressed by the feature model 101.

以上、本開示の好ましい実施形態について説明した。 The preferred embodiments of the present disclosure have been described above.

こうして、本実施例では、ソフトウェア開発支援装置301へ入力された特徴モデル101から制御仕様を満たすプログラムを生成することができる。さらに、マルチコアプロセッサ向けの処理を生成することも可能となる。 In this manner, in this embodiment, a program that satisfies the control specifications can be generated from the feature model 101 input to the software development support device 301. Furthermore, it is also possible to generate processing for multi-core processors.

この実施例は1つのコンピュータを用いて実行してもよいし、処理毎に異なるコンピュータを用いて実行しても構わない。あるいはインターネット等のネットワークで連携された複数のコンピュータ間で各工程の結果を送受信することでソフトウェア開発を実施するようにしてもよい。 This embodiment may be executed using one computer, or may be executed using different computers for each process. Alternatively, software development may be performed by transmitting and receiving the results of each step between multiple computers linked via a network such as the Internet.

<結び>
以上のように、上記実施例のソフトウェア開発支援装置301は、以下のような構成とすることができる。
<Conclusion>
As described above, the software development support device 301 of the above embodiment can have the following configuration.

(1)第1のプロセッサ(11)とメモリを有するソフトウェア開発支援装置(301)であって、制御モデル(102)の実行順序を含んでソフトウェアの制御仕様を記述した特徴モデル(101)を受け付けて、当該特徴モデル(101)を構成している制御モデル(102)を解析し、前記制御モデル(102)の演算周期と、前記制御モデル(102)の実行順序を解析して実行順序情報(演算実行順序リスト600)として出力する特徴モデル解析部(306)と、前記制御モデル(102)を受け付けて、前記制御モデル(102)の演算周期を含んでファイル名が当該制御モデル(102)と同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデル(102)の仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成部(304)と、前記特徴モデル(101)から分析された前記制御モデル(102)と同名のモデルソースを前記モデルソース記憶部(305)から収集するモデルソース収集部(307)と、複数のコア(第1コア52-1、第2コア52-2)を有して前記ソフトウェアを実行する第2のプロセッサ(51)の情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコア(51)の処理に最適化するために前記演算周期と実行順序情報(600)に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部(309)と、を有することを特徴とするソフトウェア開発支援装置。 (1) A software development support device (301) having a first processor (11) and a memory, which receives a feature model (101) that describes software control specifications including the execution order of a control model (102). Then, the control model (102) constituting the feature model (101) is analyzed, and the calculation cycle of the control model (102) and the execution order of the control model (102) are analyzed to obtain execution order information ( A feature model analysis unit (306) that outputs a calculation execution order list 600) receives the control model (102) and specifies a file name including the calculation cycle of the control model (102). a model source generation unit (304) that generates an identical model source, tests whether the generated model source matches the specifications of the control model (102), and then stores it in a model source storage unit; A model source collection unit (307) that collects a model source having the same name as the control model (102) analyzed from the feature model (101) from the model source storage unit (305), and a plurality of cores (first core 52- 1, a second processor (51) having a second core 52-2) and executing the software, and executes the software on the plurality of cores (51) with respect to the collected model sources. ); a parallel processing generation unit (309) that generates processing allocation information for each core based on the calculation cycle and execution order information (600) in order to optimize the processing of Support equipment.

上記構成により、ソフトウェア開発支援装置301は、複数のコアを含むプロセッサ向けに最適化されたソフトウェアを開発することができる。 With the above configuration, the software development support device 301 can develop software optimized for a processor including multiple cores.

(2)上記(1)に記載のソフトウェア開発支援装置(301)であって、前記特徴モデル解析部(306)は、前記制御モデル(102)が使用する変数情報を抽出し、前記特徴モデル解析部(306)から前記制御モデル(102)の実行順序情報(600)と演算周期と変数情報を取得して、前記制御モデル(102)間で演算周期が異なる変数の接続処理を追加する接続処理追加部(308)と、前記接続処理追加部(308)及び前記並列処理生成部(309)の処理結果を適用された前記モデルソースをコンパイルするコンパイル部(311)と、前記コンパイルされたプログラムを出力するプログラム出力部(312)と、をさらに有することを特徴とするソフトウェア開発支援装置。 (2) In the software development support device (301) according to (1) above, the feature model analysis unit (306) extracts variable information used by the control model (102) and analyzes the feature model. A connection process that acquires execution order information (600), calculation cycle, and variable information of the control model (102) from the unit (306), and adds a connection process of variables with different calculation cycles between the control models (102). an adding unit (308); a compiling unit (311) that compiles the model source to which the processing results of the connection processing addition unit (308) and the parallel processing generation unit (309) are applied; A software development support device further comprising: a program output unit (312) for outputting a program.

上記構成により、ソフトウェア開発支援装置301は、ソースコードの収集から、演算の実行順序の設定、接続情報の設定、コンパイル、コア別の処理の割り当てを自動で実施できるので、設計作業の工数削減を図ることができる。 With the above configuration, the software development support device 301 can automatically collect source code, set the execution order of calculations, set connection information, compile, and allocate processing to each core, thereby reducing the man-hours of design work. can be achieved.

(3)上記(2)に記載のソフトウェア開発支援装置(301)であって、前記接続処理追加部(308)は、前記制御モデル(102)間で異なる演算周期で同一の変数を使用している制御モデル(102)を検出した場合に前記変数の接続処理のソースコードを生成することを特徴とするソフトウェア開発支援装置。 (3) In the software development support device (301) according to (2) above, the connection processing addition unit (308) uses the same variable at different calculation cycles between the control models (102). A software development support device characterized in that when a control model (102) is detected, a source code for the variable connection process is generated.

上記構成により、ソフトウェア開発支援装置301は、異なる演算周期で同一変数を使用している制御モデル102間で変数を受け渡す接続処理を自動的に追加することが可能となる。 With the above configuration, the software development support apparatus 301 can automatically add connection processing for passing variables between control models 102 that use the same variables in different calculation cycles.

(4)上記(2)に記載のソフトウェア開発支援装置であって、前記接続処理追加部(308)は、前記特徴モデル解析部(306)で解析された実行順序情報と演算周期と、前記接続処理追加部(308)で検索された変数の接続処理と、前記モデルソース収集部(307)で収集されたモデルソースに基づいて、演算周期毎の実行順序定義ファイルと、演算周期毎の変数情報受け渡し処理定義ファイルと、コンパイル時に使用するMAKEファイルと、を生成して、前記収集されたモデルソースへ追加することを特徴とするソフトウェア開発支援装置。 (4) In the software development support device according to (2) above, the connection processing addition unit (308) stores the execution order information and calculation cycle analyzed by the feature model analysis unit (306), and the connection process addition unit (308). Based on the variable connection process searched by the process addition unit (308) and the model source collected by the model source collection unit (307), an execution order definition file for each calculation cycle and variable information for each calculation cycle are created. A software development support device characterized by generating a transfer processing definition file and a MAKE file used during compilation and adding them to the collected model sources.

上記構成により、ソフトウェア開発支援装置301は、ソースコードの収集から、演算の実行順序の設定、接続情報の設定、コンパイル、コア別の処理の割り当てを自動で実施できるので、設計作業の工数削減を図ることができる。 With the above configuration, the software development support device 301 can automatically collect source code, set the execution order of calculations, set connection information, compile, and allocate processing to each core, thereby reducing the man-hours of design work. can be achieved.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。 Note that the present invention is not limited to the above-described embodiments, and includes various modifications. For example, the embodiments described above are described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described. Furthermore, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, addition, deletion, or replacement of other configurations to some of the configurations of each embodiment may be applied singly or in combination.

また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above-mentioned configurations, functions, processing units, processing means, etc. may be partially or entirely realized in hardware by designing, for example, an integrated circuit. Moreover, each of the above-mentioned configurations, functions, etc. may be realized by software by a processor interpreting and executing a program that realizes each function. Information such as programs, tables, files, etc. that implement each function can be stored in a memory, a recording device such as a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Further, the control lines and information lines are shown to be necessary for explanation purposes, and not all control lines and information lines are necessarily shown in the product. In reality, almost all components may be considered to be interconnected.

101 特徴モデル
102-A~102-G 制御モデル
301 ソフトウェア開発支援装置
304 モデルソース生成部
305 モデルソース記憶部
306 特徴モデル解析部
307 モデルソース収集部
308 接続処理追加部
309 並列処理生成部
310 プロセッサ情報入力部
311 コンパイル部
312 プログラム出力部
501 使用モデル及びコア割り当てリスト
502 コア割り当て情報
600 演算実行順序リスト
701 変数接続処理定義
901 収集モデルソース一覧
904 MAKEファイル生成部
905 関数実行順序定義ファイル生成部
906 変数情報受け渡し処理定義ファイル生成部
907 接続処理適用部
1102使用プロセッサ情報保管部
1103並列化処理適用部
101 Feature models 102-A to 102-G Control model 301 Software development support device 304 Model source generation unit 305 Model source storage unit 306 Feature model analysis unit 307 Model source collection unit 308 Connection processing addition unit 309 Parallel processing generation unit 310 Processor information Input section 311 Compilation section 312 Program output section 501 Usage model and core assignment list 502 Core assignment information 600 Operation execution order list 701 Variable connection processing definition 901 Collection model source list 904 MAKE file generation section 905 Function execution order definition file generation section 906 Variables Information delivery processing definition file generation section 907 Connection processing application section 1102 Processor information storage section 1103 Parallelization processing application section

Claims (8)

第1のプロセッサとメモリを有するソフトウェア開発支援装置であって、
制御モデルの実行順序を含んでソフトウェアの制御仕様を記述した特徴モデルを受け付けて、当該特徴モデルを構成している制御モデルを解析し、前記制御モデルの演算周期と、前記制御モデルの実行順序を解析して実行順序情報として出力する特徴モデル解析部と、
前記制御モデルを受け付けて、前記制御モデルの演算周期を含んでファイル名が当該制御モデルと同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデルの仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成部と、
前記特徴モデルから分析された前記制御モデルと同名のモデルソースを前記モデルソース記憶部から収集するモデルソース収集部と、
複数のコアを有して前記ソフトウェアを実行する第2のプロセッサの情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコアの処理に最適化するために前記演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部と、
を有することを特徴とするソフトウェア開発支援装置。
A software development support device having a first processor and a memory,
A feature model that describes the control specifications of the software including the execution order of the control model is received, the control models that make up the feature model are analyzed, and the calculation cycle of the control model and the execution order of the control model are determined. a feature model analysis unit that analyzes and outputs it as execution order information;
Accepting the control model, generating a model source that includes the calculation cycle of the control model and having the same file name as the control model, and checking whether the generated model source matches the specifications of the control model. a model source generation unit that stores the model source in the model source storage unit after testing;
a model source collection unit that collects a model source having the same name as the control model analyzed from the feature model from the model source storage unit;
receiving information about a second processor having a plurality of cores and executing the software, and calculating the calculation cycle for optimizing the software for processing of the plurality of cores with respect to the collected model sources; and a parallel processing generation unit that generates processing allocation information for each core based on the execution order information;
A software development support device characterized by having:
請求項1に記載のソフトウェア開発支援装置であって、
前記特徴モデル解析部は、前記制御モデルが使用する変数情報を抽出し、
前記特徴モデル解析部から前記制御モデルの実行順序情報と演算周期と変数情報を取得して、前記制御モデル間で演算周期が異なる変数の接続処理を追加する接続処理追加部と、
前記接続処理追加部及び前記並列処理生成部の処理結果を適用された前記モデルソースをコンパイルするコンパイル部と、
前記コンパイルされたプログラムを出力するプログラム出力部と、
をさらに有することを特徴とするソフトウェア開発支援装置。
The software development support device according to claim 1,
The feature model analysis unit extracts variable information used by the control model,
a connection process addition unit that acquires execution order information, calculation cycle, and variable information of the control model from the feature model analysis unit, and adds connection processing of variables with different calculation cycles between the control models;
a compiling unit that compiles the model source to which the processing results of the connection processing addition unit and the parallel processing generation unit are applied;
a program output unit that outputs the compiled program;
A software development support device further comprising:
請求項2に記載のソフトウェア開発支援装置であって、
前記接続処理追加部は、
前記制御モデル間で異なる演算周期で同一の変数を使用している制御モデルを検出した場合に前記変数の接続処理のソースコードを生成することを特徴とするソフトウェア開発支援装置。
The software development support device according to claim 2,
The connection processing addition unit includes:
A software development support device characterized in that when a control model using the same variable in different calculation cycles is detected between the control models, a source code for the variable connection process is generated.
請求項2に記載のソフトウェア開発支援装置であって、
前記接続処理追加部は、前記特徴モデル解析部で解析された実行順序情報と演算周期と、前記接続処理追加部で追加された変数の接続処理と、前記モデルソース収集部で収集されたモデルソースに基づいて、演算周期毎の実行順序定義ファイルと、演算周期毎の変数情報受け渡し処理定義ファイルと、コンパイル時に使用するMAKEファイルと、を生成して、前記収集されたモデルソースへ追加することを特徴とするソフトウェア開発支援装置。
The software development support device according to claim 2,
The connection processing addition unit performs execution order information and calculation cycles analyzed by the feature model analysis unit, connection processing of variables added by the connection processing addition unit, and model sources collected by the model source collection unit. Based on this, an execution order definition file for each calculation cycle, a variable information passing process definition file for each calculation cycle, and a MAKE file used during compilation are generated and added to the collected model sources. Features of software development support equipment.
第1のプロセッサとメモリを有する計算機でソフトウェアの開発を支援するソフトウェア開発支援方法であって、
前記計算機が、制御モデルの実行順序を含んでソフトウェアの制御仕様を記述した特徴モデルを受け付けて、当該特徴モデルを構成している制御モデルを解析し、前記制御モデルの演算周期と、前記制御モデルの実行順序を解析して実行順序情報として出力する特徴モデル解析ステップと、
前記計算機が、前記制御モデルを受け付けて、前記制御モデルの演算周期を含んでファイル名が当該制御モデルと同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデルの仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成ステップと、
前記計算機が、前記特徴モデルから分析された前記制御モデルと同名のモデルソースを前記モデルソース記憶部から収集するモデルソース収集ステップと、
前記計算機が、複数のコアを有して前記ソフトウェアを実行する第2のプロセッサの情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコアの処理に最適化するために前記演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成ステップと、
を含むことを特徴とするソフトウェア開発支援方法。
A software development support method for supporting software development on a computer having a first processor and a memory, the method comprising:
The computer receives a feature model that describes the control specifications of the software including the execution order of the control model, analyzes the control models that make up the feature model, and determines the calculation cycle of the control model and the control model. a feature model analysis step for analyzing the execution order of and outputting it as execution order information;
The computer receives the control model, generates a model source that includes the calculation cycle of the control model and has the same file name as the control model, and specifies that the generated model source matches the specifications of the control model. a model source generation step in which the model source is stored in the model source storage unit after testing whether the
a model source collection step in which the computer collects a model source having the same name as the control model analyzed from the feature model from the model source storage unit;
The computer receives information about a second processor that has a plurality of cores and executes the software, and optimizes the software for processing of the plurality of cores with respect to the collected model sources. a parallel processing generation step of generating processing allocation information for each core based on the calculation cycle and execution order information;
A software development support method characterized by comprising:
請求項5に記載のソフトウェア開発支援方法であって、
前記特徴モデル解析ステップは、前記制御モデルが使用する変数情報を抽出し、
前記計算機が、前記制御モデルの実行順序情報と演算周期と変数情報を取得して、前記制御モデル間で演算周期が異なる変数の接続処理を追加する接続処理追加ステップと、
前記計算機が、前記接続処理追加ステップ及び前記並列処理生成ステップの処理結果が適用された前記モデルソースをコンパイルするコンパイルステップと、
前記計算機が、前記コンパイルされたプログラムを出力するプログラム出力ステップと、
をさらに含むことを特徴とするソフトウェア開発支援方法。
The software development support method according to claim 5,
The feature model analysis step extracts variable information used by the control model,
a connection process addition step in which the computer acquires execution order information, calculation period, and variable information of the control model, and adds connection processing of variables having different calculation periods between the control models;
a compiling step in which the computer compiles the model source to which the processing results of the connection processing addition step and the parallel processing generation step are applied;
a program output step in which the computer outputs the compiled program;
A software development support method further comprising:
請求項6に記載のソフトウェア開発支援方法であって、
前記接続処理追加ステップは、
前記制御モデル間で異なる演算周期で同一の変数を使用している制御モデルを検出した場合に前記変数の接続処理のソースコードを生成することを特徴とするソフトウェア開発支援方法。
7. The software development support method according to claim 6,
The connection processing addition step is
A software development support method comprising: generating a source code for the variable connection process when a control model using the same variable in different calculation cycles is detected between the control models.
請求項6に記載のソフトウェア開発支援方法であって、
前記接続処理追加ステップは、前記特徴モデル解析ステップで解析された実行順序情報と演算周期と、前記接続処理追加ステップで追加された変数の接続処理と、前記モデルソース収集ステップで収集されたモデルソースに基づいて、演算周期毎の実行順序定義ファイルと、演算周期毎の変数情報受け渡し処理定義ファイルと、コンパイル時に使用するMAKEファイルと、を生成して、前記収集されたモデルソースへ追加することを特徴とするソフトウェア開発支援方法。
7. The software development support method according to claim 6,
The connection processing addition step includes the execution order information and calculation cycle analyzed in the feature model analysis step, the connection processing of the variables added in the connection processing addition step, and the model source collected in the model source collection step. Based on this, an execution order definition file for each calculation cycle, a variable information passing process definition file for each calculation cycle, and a MAKE file used during compilation are generated and added to the collected model sources. Characteristic software development support method.
JP2020112276A 2020-06-30 2020-06-30 Software development support device and software development support method Active JP7385536B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020112276A JP7385536B2 (en) 2020-06-30 2020-06-30 Software development support device and software development support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020112276A JP7385536B2 (en) 2020-06-30 2020-06-30 Software development support device and software development support method

Publications (2)

Publication Number Publication Date
JP2022011264A JP2022011264A (en) 2022-01-17
JP7385536B2 true JP7385536B2 (en) 2023-11-22

Family

ID=80148059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020112276A Active JP7385536B2 (en) 2020-06-30 2020-06-30 Software development support device and software development support method

Country Status (1)

Country Link
JP (1) JP7385536B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208843A (en) 2011-03-30 2012-10-25 Keihin Corp Development support device
WO2017009895A1 (en) 2015-07-10 2017-01-19 三菱電機株式会社 Program generation device and method therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208843A (en) 2011-03-30 2012-10-25 Keihin Corp Development support device
WO2017009895A1 (en) 2015-07-10 2017-01-19 三菱電機株式会社 Program generation device and method therefor

Also Published As

Publication number Publication date
JP2022011264A (en) 2022-01-17

Similar Documents

Publication Publication Date Title
JP4629768B2 (en) Parallelization processing method, system, and program
Manotas et al. Seeds: A software engineer's energy-optimization decision support framework
US10338956B2 (en) Application profiling job management system, program, and method
US11221834B2 (en) Method and system of intelligent iterative compiler optimizations based on static and dynamic feedback
JP4886838B2 (en) Parallelization method, system, and program
JP5479942B2 (en) Parallelization method, system, and program
Siracusa et al. A cad-based methodology to optimize hls code via the roofline model
US10078500B2 (en) Method and system for automatic code generation
JP2013164657A (en) Parallelization method, system and program
Bruce et al. Enabling reproducible and agile full-system simulation
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
Panadero et al. A tool for selecting the right target machine for parallel scientific applications
Welton et al. Exposing hidden performance opportunities in high performance GPU applications
JP7385536B2 (en) Software development support device and software development support method
JPH05101141A (en) High-level composition device
US10528691B1 (en) Method and system for automated selection of a subset of plurality of validation tests
Skinner et al. LiveSim: A fast hot reload simulator for HDLs
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
JP7410269B2 (en) Automated verification of high-level construct optimization using test vectors
US20230048929A1 (en) Parallel simulation qualification with performance prediction
Voss et al. On predictable reconfigurable system design
Hauck et al. Deriving performance-relevant infrastructure properties through model-based experiments with Ginpex
Hu et al. A performance prototyping approach to designing concurrent software architectures
Vysocký et al. Application instrumentation for performance analysis and tuning with focus on energy efficiency
JP5056493B2 (en) Virtual software generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231012

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: 20231017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231110

R150 Certificate of patent or registration of utility model

Ref document number: 7385536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150