JP2020140282A - モジュール取得方法及びモジュール取得装置 - Google Patents
モジュール取得方法及びモジュール取得装置 Download PDFInfo
- Publication number
- JP2020140282A JP2020140282A JP2019033523A JP2019033523A JP2020140282A JP 2020140282 A JP2020140282 A JP 2020140282A JP 2019033523 A JP2019033523 A JP 2019033523A JP 2019033523 A JP2019033523 A JP 2019033523A JP 2020140282 A JP2020140282 A JP 2020140282A
- Authority
- JP
- Japan
- Prior art keywords
- module
- block
- acquisition method
- module acquisition
- identification condition
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】モジュール識別条件に自由度を持たせ、入力信号と出力信号の間に接続されたブロック群以外のモジュールについても取得する。【解決手段】ソフトウェアを構成するモデルファイル202,203に属するブロック線図で表されたブロック群を含むモジュールを記憶するステップと、モジュール識別条件によって所定のブロック構成パターンに適合したモジュールを取得するステップとを備える。また、モジュール識別条件215を外部から入力する。また、モジュール識別条件に適合したモジュールをリスト化するステップ214を備える。【選択図】図2
Description
本発明は、モジュール取得方法及びモジュール取得装置に関する。
車両用など組込みソフトウェアにおいて、ブロック線図の図示で制御モデル(以下、モデル)を表現し、前記モデルを用いた制御およびソフトウェアの開発(以下、モデルベース開発)は開発手法の1つとして一般化してきた。前記モデルベース開発では、上流工程で前記モデルを用いて要求機能をシミュレーションし、上流工程にある間に制御モデルの妥当性確認を実施することで、従来手法において下流工程での不具合検出による手戻りを減らし、開発工数を低減、品質を向上させている。
モデルベース開発を含む一般的なソフトウェア開発において、既存資産の再利用による開発効率向上や品質向上のため、汎用性の高いモジュールはライブラリ化し開発プロジェクト内で再利用することが理想的である。
前記モデルは、四則演算や論理演算などの基本的機能を持つブロックの集合体であるが、複雑なモデルを分かり易くするために、関連ブロックをグループ化し階層構造にしている。
結果として、1つのモデルは、1ないし複数のソフトウェアユニットで構成され、1つのソフトウェアユニットは、1つないし複数のサブシステムで構成される。ソフトウェアユニットは、ソフトウェア実装において1つの関数となる構成単位である。サブシステムは、関連ブロックをグループ化し構成したものであり、例えば時間計測処理など小規模の機能単位毎にまとめたモジュールである。ただし、ブロック数が少なくそのままで分かり易い様な場合、ソフトウェアユニットの中にサブシステムを持たず直接的に、ブロック線図を配置することもある。
モデルベース開発では同一仕様に対し、ライブラリ化せずに前記ソフトウェアユニットか前記サブシステム単位でコピーアンドペーストにて対応した場合は、同一モジュール(クローン)が生成される。類似仕様に対し複数人で並行開発を行う場合などには、類似したモジュールが生成される場合がある。
この様な同一モジュール、類似モジュールを含むモデル群に関し、特許文献1、特許文献2では、入力信号と出力信号の間に接続されたブロック群を取得し、検索対象ファイルから同一または類似のモジュールを検出する方法が開示されている。また、特許文献2では、検出したクローンを共通関数化する方法も開示されている。
モデルベース開発において、1つのモデルは1ないし複数のソフトウェアユニットで構成し実現するが、前記した様なモデル作成方法により、同一または類似モジュールを生成する可能性があるため、ライブラリ化されていれば不要な再検証や、設計ごと流用すれば簡素化可能であった部分の再設計が発生し、開発効率低下や不具合作り込みの懸念がある。モデル設計の効率化と品質確保を図るためには、同一または類似モジュールをライブラリ化し、ライブラリの充足を進めることが必要である。
特許文献1、特許文献2では、入力信号と出力信号の間に接続されたブロック群を取得し、前記ブロック群と同一または類似のモジュール検索を行うため、入力信号と出力信号間のブロック群サイズ(制御仕様の粒度)に左右され、制御仕様によってはブロック群のサイズが大きくなり、類似と分類するための判定箇所が増加するので、類似と判定できるブロック群の数が減ることになる。結果として、十分なライブラリ候補が得られず、汎用性の高いライブラリ候補が得られない可能性がある。また、直接出力信号とならない中間演算処理においても類似したブロック群があり、これらのライブラリ化を図る手段が必要である。
そこで、本発明の目的は、モジュール識別条件に自由度を持たせ、入力信号と出力信号の間に接続されたブロック群以外のモジュールについても取得することである。
上記課題を解決するために、一例としてモジュール取得方法は、ソフトウェアを構成するモデルファイルに属するブロック線図で表されたブロック群を含むモジュールを記憶するステップと、モジュール識別条件によって所定のブロック構成パターンに適合した前記モジュールを取得するステップと、を備える。
本発明によれば、モジュール識別条件に自由度を持たせ、入力信号と出力信号の間に接続されたブロック群以外のモジュールについても取得することができる。
以下、本発明の実施例について、図面を用いて説明する。
図1はライブラリ化候補選出の全体構成図である。
図1において、検索元モジュール(検索キー)取得処理部101が本実施例の対象部であり、検索対象モデルファイルから検索元モジュール取得処理が完了したら102へ進む。
モジュール抽出処理部102では、検索元モジュール取得処理部101で取得した検索キーを用いて同一または類似モジュールの検索を行い、ライブラリ化候補選出処理部103にてライブラリ化候補を選出する構成とする。
なお、検索元モジュール取得処理部101とモジュール抽出処理部102を合せて、モジュール取得部と称する場合がある。
次に、図2はモデルファイルから所定のブロック構成パターンに適合したモジュール(検索キー)を取得する構成図である。
図2において、車両組込み用ソフトウェアを構成するモデルファイル記憶部201は、ソフトウェアユニットA204と、ソフトウェアユニットB205から構成されたモデルファイルA202と、別のモデルファイルB203を記録している。
モジュール検索実行部214は、モデルファイル記憶部201に記録されたモデルファイルA202、モデルファイルB203の構成要素であるモジュールA207、モジュールB208、モジュールC20、モジュールD210、モジュールE211、モジュールG213の中から、モジュール識別条件入力部215にて外部から入力された条件に適合したモジュールを検索し取得する。
取得したモジュールは、所定のブロック構成パターンに適合したモジュール(検索キー)リスト記憶部216に記録する。なお、モジュール207〜213は、グループ化されたブロック群であるサブシステム207、208、210、212、213と、グループ化されていないブロック群209、211がある。
図2に記載したモジュール識別条件入力部215において、モジュール識別条件を(サブシステムであること)かつ(下限≦サブシステム構成ブロック数≦上限)とすることで、モジュールを取得する方法について説明する。
図3はモデルファイル内部のブロック構成例を記載したものである。制御ブロック310は複数存在するブロックの1つであり、これらのブロックを接続することでソフトウェアユニットを構成している。モジュール識別条件の1つであるサブシステムとは、図3に記載のソフトウェアユニット302、ソフトウェアユニット303、サブシステム_名称A304、サブシステム_名称B305に示すグループ化されたブロック群を指す。
また、図3において、306はループ処理部分A、307はループ処理部分B、308はユニットブロックA、309はユニットブロックB、310は制御ブロック、311は指定ブロック周辺ブロック群、312は指定ブロックである。
図4は所定のブロック数で構成されたサブシステム(モジュール)の取得手順である。
図4において、ステップ401では図2に記載したモデルファイルA202、モデルファイルB203の中からブロックの種別がサブシステムであるブロック群を検索し、ステップ402へ進む。
ステップ402では、ステップ401の結果に対しサブシステム検出判定した場合は、ステップ403へ進み該当サブシステム内の構成ブロック数をカウントし、ステップ404へ進む。
ステップ404では構成ブロック数カウント値が上限値と下限値の範囲内か否かの判定を実施する。
ステップ404の結果が上限値と下限値の範囲内である場合、モジュールとして取得し、ステップ405にて取得したモジュールを記憶部に記録し、ステップ406へ進む。
ステップ402、ステップ404にて条件不成立の場合も、ステップ406へ進む。
ステップ406では、検索対象モデルファイル内のサブシステム検索が完了していなければ、401へ戻りサブシステム検索を継続し、サブシステム検索が完了していれば、本モジュール取得処理を完了する。
実施例1に対し、図2に記載したモジュール識別条件入力部215のモジュール識別条件を((サブシステムであること)かつ(所定の名称))かつ(下限≦サブシステム構成ブロック数≦上限)に変更した場合のモジュールを取得する方法について説明する。
モジュール識別条件の中の所定の名称とは、図3に記載のサブシステム_名称A304のことを指す。
図5は所定のブロック数で構成された所定名称のサブシステム(モジュール)の取得手順である。
図5において、ステップ501では図2に記載したモデルファイルA202、モデルファイルB203の中からブロックの種別がサブシステムであるブロック群を検索し、ステップ502へ進む。
ステップ502では、ステップ501の結果に対してサブシステム検出判定した場合は、ステップ503へ進み、指定されたブロック名称との整合判定を実施する。
ステップ503の結果が整合判定した場合、ステップ504へ進み該当サブシステム内の構成ブロック数をカウントし、ステップ505へ進む。
ステップ505では構成ブロック数カウント値が上限値と下限値の範囲内か否かの判定を実施する。
ステップ505の結果が上限値と下限値の範囲内である場合、モジュールとして取得し、ステップ506にて取得したモジュールを記憶部に記録し、ステップ507へ進む。
ステップ502、ステップ503、ステップ505にて条件不成立の場合は、ステップ507へ進む。
ステップ507では、検索対象モデルファイル内のサブシステム検索が完了していなければ、ステップ501へ戻りサブシステム検索を継続し、サブシステム検索が完了していれば、本モジュール取得処理を完了する。
実施例1に対し、図2に記載したモジュール識別条件入力部215のモジュール識別条件を(ループ処理部分であること)かつ(下限≦ループ処理内の構成ブロック数≦上限)に変更した場合のモジュールを取得する方法について説明する。
ループ処理部分とは、図3に記載の入力信号を1サンプリング周期遅らせた出力をするユニットディレイブロック308、309の使用によりブロック結線がループしている部分306、307を指す。
図6は所定のブロック数で構成されたループ処理部分(モジュール)の取得手順である。
図6において、ステップ601では図2に記載したモデルファイル202、203の中からループ処理部分を検索し、602へ進む。
ステップ602では、ステップ601の結果に対しループ処理部分検出判定した場合は、ステップ603へ進み、該当ループ処理内の構成ブロック数をカウントし、ステップ604へ進む。
ステップ604では構成ブロック数カウント値が上限値と下限値の範囲内か否かの判定を実施する。
ステップ604の結果が上限値と下限値の範囲内である場合、モジュールとして取得し、ステップ605にて取得したモジュールを記憶部に記録し、ステップ606へ進む。
ステップ602、ステップ604にて条件不成立の場合は、ステップ606へ進む。
ステップ606では、検索対象モデルファイル内のループ処理部分検索が完了していなければ、601へ戻りループ処理部分検索を継続し、ループ処理部分検索が完了していれば、本モジュール取得処理を完了する。
実施例1に対し、図2に記載したモジュール識別条件入力部215のモジュール識別条件を(指定した名称のブロックを使用していること)かつ(前記指定ブロックと結線された所定サイズのブロック群)に変更した場合のモジュールを取得する方法について説明する。
所定サイズのブロック群とは、図3に記載の312に示す指定ブロックと結線された前後方向に所定ブロック数(図3では前後1ブロックとして記載)までのブロック群311を指す。
図7は所定のブロック数で構成された指定ブロック周辺ブロック群(モジュール)の取得手順である。
図7において、ステップ701では図2に記載したモデルファイル202、203の中から指定した名称のブロックを検索し、ステップ702へ進む。
ステップ702では、ステップ701の結果に対し指定ブロック検出判定した場合は、ステップ703へ進み、該当ブロックと結線された前後方向に所定のブロック数までのブロック群(指定ブロック周辺ブロック群)をモジュールとして取得し記憶部に記録し、ステップ704へ進む。
ステップ702にて条件不成立の場合は、ステップ704へ進む。
ステップ704では、検索対象モデルファイル内の指定ブロック検出検索が完了していなければ、701へ戻り指定ブロック検出検索を継続し、指定ブロック検出検索が完了していれば、本モジュール取得処理を完了する。
以上の実施例によれば、下記のように表現することができる。
すなわち、検索対象モデルファイルから同一または類似モジュール検索時に用いる検索元モジュール(以下、検索キー)を取得する。
次に、取得した検索キーを用いて検索対象モデルファイルから同一または類似モジュールを抽出し、ライブラリ化候補モジュールを選出する。
本発明は前記検索キーの取得に関するもので、検索対象とするモデルファイルを記録した記憶部と、前記課題に対応したモジュールを検索するための条件入力部を備える。さらに、前記記憶部と前記条件入力部の情報を基にモジュールを検索するモジュール検索実行部を備え、前記モジュール検索実行部にて、同一または類似モジュール検索時の検索キーとなる所定のブロック構成パターンに適合したモジュールを取得し、取得したモジュールを全てリスト化して記憶部に記録することを備える。
次に、取得した検索キーを用いて検索対象モデルファイルから同一または類似モジュールを抽出し、ライブラリ化候補モジュールを選出する。
本発明は前記検索キーの取得に関するもので、検索対象とするモデルファイルを記録した記憶部と、前記課題に対応したモジュールを検索するための条件入力部を備える。さらに、前記記憶部と前記条件入力部の情報を基にモジュールを検索するモジュール検索実行部を備え、前記モジュール検索実行部にて、同一または類似モジュール検索時の検索キーとなる所定のブロック構成パターンに適合したモジュールを取得し、取得したモジュールを全てリスト化して記憶部に記録することを備える。
これにより、所定の条件を与え、この条件に適合するモジュールを 入力信号と出力信号の間に接続されたブロック群以外も含め、検索対象のモデルファイルから総当たり検索することで、同一または類似モジュール検索時の検索キーとして使用可能なモジュール(所定のブロック構成パターンに適合したモジュール)を取得できる。
また、前記モジュール識別条件を外部から入力する。
また、前記モジュール識別条件に適合した前記モジュールをリスト化するステップを備える。
また、前記モジュール識別条件は、前記モデルファイル内のブロック種別指定、ブロック名称指定、及び前記ブロック名称指定で指定されたブロック内の構成ブロック数指定のいずれかを含む。
また、前記モジュール識別条件は、前記モデルファイル内のブロック結線ループ処理の指定、及び前記ブロック結線ループ処理の構成ブロック数指定を含む。
また、前記モジュール識別条件は、前記モデルファイル内のブロック名称指定、及び前記ブロック名称指定で指定された前記ブロックと結線された周辺ブロックのブロック数指定を含む。
また、モジュール取得装置は、ソフトウェアを構成するモデルファイルに属するブロック線図で表されたブロック群を含むモジュールを記憶した記憶部と、モジュール識別条件によって所定のブロック構成パターンに適合した前記モジュールを取得するモジュール取得部と、を備える。
101 検索元モジュール(検索キー)取得処理部、
102 モジュール抽出処理部
103 ライブラリ化候補選出処理部
201 モデルファイル記憶部
202 モデルファイルA
203 モデルファイルB
204 ソフトウェアユニットA
205 ソフトウェアユニットB
206 ソフトウェアユニットC
207 モジュールA
208 モジュールB
209 モジュールC
210 モジュールD
211 モジュールE
212 モジュールF
213 モジュールG
214 モジュール検索実行部
215 モジュール識別条件(ブロック構成パターン定義含む)入力部
216 所定のブロック構成パターンに適合したモジュールリスト記憶部
301 モデルファイル
302 ソフトウェアユニット
303 ソフトウェアユニット
304 サブシステム_名称A
305 サブシステム_名称B
306 ループ処理部分A
307 ループ処理部分B
308 ユニットブロックA
309 ユニットブロックB
310 制御ブロック
311 指定ブロック周辺ブロック群
312 指定ブロック
102 モジュール抽出処理部
103 ライブラリ化候補選出処理部
201 モデルファイル記憶部
202 モデルファイルA
203 モデルファイルB
204 ソフトウェアユニットA
205 ソフトウェアユニットB
206 ソフトウェアユニットC
207 モジュールA
208 モジュールB
209 モジュールC
210 モジュールD
211 モジュールE
212 モジュールF
213 モジュールG
214 モジュール検索実行部
215 モジュール識別条件(ブロック構成パターン定義含む)入力部
216 所定のブロック構成パターンに適合したモジュールリスト記憶部
301 モデルファイル
302 ソフトウェアユニット
303 ソフトウェアユニット
304 サブシステム_名称A
305 サブシステム_名称B
306 ループ処理部分A
307 ループ処理部分B
308 ユニットブロックA
309 ユニットブロックB
310 制御ブロック
311 指定ブロック周辺ブロック群
312 指定ブロック
Claims (7)
- ソフトウェアを構成するモデルファイルに属するブロック線図で表されたブロック群を含むモジュールを記憶するステップと、
モジュール識別条件によって所定のブロック構成パターンに適合した前記モジュールを取得するステップと、
を備えることを特徴とするモジュール取得方法。 - 請求項1に記載のモジュール取得方法において、
前記モジュール識別条件を外部から入力することを特徴とするモジュール取得方法。 - 請求項1又は2に記載のモジュール取得方法において、
前記モジュール識別条件に適合した前記モジュールをリスト化するステップを備える
ことを特徴とするモジュール取得方法。 - 請求項1又は2に記載のモジュール取得方法において、
前記モジュール識別条件は、前記モデルファイル内のブロック種別指定、ブロック名称指定、及び前記ブロック名称指定で指定されたブロック内の構成ブロック数指定のいずれかを含む
ことを特徴とするモジュール取得方法。 - 請求項1又は2に記載のモジュール取得方法において、
前記モジュール識別条件は、前記モデルファイル内のブロック結線ループ処理の指定、及び前記ブロック結線ループ処理の構成ブロック数指定を含む
ことを特徴とするモジュール取得方法。 - 請求項1又は2に記載のモジュール取得方法において、
前記モジュール識別条件は、前記モデルファイル内のブロック名称指定、及び前記ブロック名称指定で指定された前記ブロックと結線された周辺ブロックのブロック数指定を含む
ことを特徴とするモジュール取得方法。 - ソフトウェアを構成するモデルファイルに属するブロック線図で表されたブロック群を含むモジュールを記憶した記憶部と、
モジュール識別条件によって所定のブロック構成パターンに適合した前記モジュールを取得するモジュール取得部と、
を備えることを特徴とするモジュール取得装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019033523A JP2020140282A (ja) | 2019-02-27 | 2019-02-27 | モジュール取得方法及びモジュール取得装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019033523A JP2020140282A (ja) | 2019-02-27 | 2019-02-27 | モジュール取得方法及びモジュール取得装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020140282A true JP2020140282A (ja) | 2020-09-03 |
Family
ID=72265062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019033523A Pending JP2020140282A (ja) | 2019-02-27 | 2019-02-27 | モジュール取得方法及びモジュール取得装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020140282A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591104A (zh) * | 2023-11-29 | 2024-02-23 | 摩尔线程智能科技(北京)有限责任公司 | 模型的生成方法、装置、电子设备及存储介质 |
-
2019
- 2019-02-27 JP JP2019033523A patent/JP2020140282A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591104A (zh) * | 2023-11-29 | 2024-02-23 | 摩尔线程智能科技(北京)有限责任公司 | 模型的生成方法、装置、电子设备及存储介质 |
CN117591104B (zh) * | 2023-11-29 | 2024-04-12 | 摩尔线程智能科技(北京)有限责任公司 | 模型的生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781231B (zh) | 基于数据库的批量导入方法、装置、设备及存储介质 | |
JP2000148808A (ja) | スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法 | |
US8965797B2 (en) | Explosions of bill-of-materials lists | |
CN102207956A (zh) | 数据库管理方法、数据库管理***及其程序 | |
CN110019067A (zh) | 一种日志分析方法及*** | |
CN115358643B (zh) | 一种基于消息的上下游单据的生成方法、装置及存储介质 | |
CN107579851A (zh) | 确定资源编排模板的执行顺序的方法和装置 | |
CN114936269A (zh) | 文档搜索平台、搜索方法、装置、电子设备及存储介质 | |
JP2020140282A (ja) | モジュール取得方法及びモジュール取得装置 | |
US20160357844A1 (en) | Database apparatus, search apparatus, method of constructing partial graph, and search method | |
CN105138612A (zh) | 数据一致性差异原因的分析和定位的方法及*** | |
CN117236304A (zh) | 一种基于模板配置的Excel通用导入的实现方法 | |
JP2013077124A (ja) | ソフトウェアテストケース生成装置 | |
CN106681910B (zh) | 一种基于主机代码解析生成测试案例的方法及装置 | |
US20070239794A1 (en) | Method and system for updating logical information in databases | |
CN114879630A (zh) | 车辆故障诊断方法、装置、设备及可读存储介质 | |
JP5487078B2 (ja) | ソフトウェア資産整理方法及び装置 | |
US9251253B2 (en) | Expeditious citation indexing | |
CN113204706A (zh) | 基于MapReduce的数据筛选抽取方法及*** | |
CN113501034B (zh) | 一种针对铁路信号***的测试日志生成方法及装置 | |
CN108595536B (zh) | 人工智能程序员书写数字航天器装配信息描述与存储方法 | |
CN112395473A (zh) | Cae模型中零部件的分类方法、装置和存储介质 | |
CN112560273B (zh) | 面向数据流模型的模型组件执行顺序确定方法及装置 | |
CN116756050B (zh) | 基于mbse的惯性产品用例分析方法、***及存储介质 | |
WO2021240886A1 (ja) | テストスクリプト生成システム、テストスクリプト生成方法、電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190301 |