JP2018077613A - 開発支援装置、開発支援方法および開発支援プログラム - Google Patents
開発支援装置、開発支援方法および開発支援プログラム Download PDFInfo
- Publication number
- JP2018077613A JP2018077613A JP2016217900A JP2016217900A JP2018077613A JP 2018077613 A JP2018077613 A JP 2018077613A JP 2016217900 A JP2016217900 A JP 2016217900A JP 2016217900 A JP2016217900 A JP 2016217900A JP 2018077613 A JP2018077613 A JP 2018077613A
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- nodes
- type
- processing
- 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.)
- Granted
Links
- 238000011161 development Methods 0.000 title claims description 98
- 238000000034 method Methods 0.000 title claims description 60
- 238000012545 processing Methods 0.000 claims abstract description 181
- 238000006243 chemical reaction Methods 0.000 claims abstract description 174
- 230000008859 change Effects 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 42
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 10
- 239000002131 composite material Substances 0.000 abstract description 4
- 230000014509 gene expression Effects 0.000 description 61
- 230000006870 function Effects 0.000 description 32
- 230000015572 biosynthetic process Effects 0.000 description 26
- 238000003786 synthesis reaction Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 238000001514 detection method Methods 0.000 description 12
- 238000011144 upstream manufacturing Methods 0.000 description 12
- 238000006467 substitution reaction Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 239000000284 extract Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 230000002194 synthesizing effect Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 101150026173 ARG2 gene Proteins 0.000 description 3
- 101100005166 Hypocrea virens cpa1 gene Proteins 0.000 description 3
- 101100379633 Xenopus laevis arg2-a gene Proteins 0.000 description 3
- 101100379634 Xenopus laevis arg2-b gene Proteins 0.000 description 3
- 101150088826 arg1 gene Proteins 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
[第1の実施の形態]
第1の実施の形態を説明する。
開発支援装置10は、モデル駆動型のソフトウェア開発を支援する。開発支援装置10は、ユーザからの入力に応じてソフトウェアの設計図としてのデータフローモデルを生成し、データフローモデルをディスプレイなどの出力デバイスに対して出力する。開発支援装置10は、ユーザが操作する端末装置などのクライアント装置でもよいし、1以上のクライアント装置からアクセスされるサーバ装置でもよい。
次に、第2の実施の形態を説明する。
図2は、開発支援装置のハードウェア例を示すブロック図である。
図3は、データフローモデルの例を示す図である。
データフローモデルは、ソフトウェアのデータフローを示すモデルである。データフローモデルは、データの種類(データ型)のインスタンスと処理の種類(処理型)のインスタンスとを含み、データ型のインスタンスおよび処理型のインスタンスの間の入出力関係を示す。データ型のインスタンスから処理型のインスタンスへのフローはデータ入力を表し、処理型のインスタンスからデータ型のインスタンスへのフローはデータ出力を表す。
ディスプレイ111にはエディタ画面50が表示される。エディタ画面50は、表示領域としてパレット51、キャンバス52およびプロパティウィンドウ53を含む。
開発支援装置100は、モデル変換ルール61,62を有する。モデル変換ルール61は、処理型である型32に対応付けて予め用意されている。また、モデル変換ルール62は、処理型である型34に対応付けて予め用意されている。
開発支援装置100は、更新時刻テーブル124を有する。更新時刻テーブル124は、データフローモデルに含まれるデータノードそれぞれについて、最後にデータ型が変更された更新時刻を記録する。ここでは、ノード21,22,24,25がキャンバス52に配置され、ノード21とノード22が結線され、ノード24とノード25が結線されているとする。ノード23はまだ配置されておらず、ノード22とノード24の間に結線は存在しない。また、ノード21(データノードD1)の更新時刻が「10:00」であり、ノード25(データノードD2)の更新時刻が「10:05」であるとする。
次に、ノード22のプロパティが編集される。すると、開発支援装置100は、ノード22のプロパティに直接的に依存するノード23のデータ型を自動更新する。具体的には、開発支援装置100は、編集されたプロパティに依存するノード23を対象データノードとし、対象データノードの上流に位置するデータノードのうち更新時刻が最も遅いノード21を基準データノードとする。開発支援装置100は、モデル変換ルール61とノード21のデータ型とノード22のプロパティを用いて、ノード23のデータ型を更新する。更新時刻テーブル124には、ノード23の更新時刻「10:30」が記録される。
合成モデル変換ルール63は、モデル変換ルール61,62から生成される。合成モデル変換ルール63は、データがinputとプロパティp1,p2からデータ型outputを生成する関数gen(input,p1,p2)を含む。関数genは、データ型outputの名称を「ScoreData」に設定する。また、関数genは、データ型inputに含まれる全ての属性をデータ型outputにコピーする。また、関数genは、プロパティp1に含まれる「storedIn」の値を属性名としてもつ新たな属性を、データ型outputに追加する。また、関数genは、属性名が「score」である新たな属性をデータ型outputに追加する。
開発支援装置100は、以下のステップST1〜ST8を通じて、図5のモデル変換ルール61,62から図8の合成モデル変換ルール63を生成する。
このデータフローモデルは、データノードとしてノード26a,26b,26c,26d,26e,26f,26g,26h,26i,26j(データノードD1〜D10)を含む。また、このデータフローモデルは、処理ノードとしてノード27a,27b,27c,27d,27e,27f(処理ノードP1〜P6)を含む。
図11は、開発支援装置の機能例を示すブロック図である。
開発支援装置100は、モデル記憶部121、変換ルール記憶部122および更新時刻記憶部123を有する。これら3つのユニットは、例えば、RAM102またはHDD103に確保した記憶領域を用いて実装される。また、開発支援装置100は、操作検出部131、基準データ判定部132、ルールチェーン算出部133、ルール合成部134、データ型生成部135、モデル更新部136、モデル表示部137およびソースコード生成部138を有する。これら8つのユニットは、例えば、CPU101が実行するプログラムモジュールを用いて実装される。
操作検出部131は、データフローモデルに対するエディタ上の操作を検出する。検出される操作には、データノードのデータ型の変更、処理ノードのプロパティ値の変更、データノードの削除、処理ノードの削除、結線の追加、結線の削除、データノードの選択(フォーカス)などが含まれる。操作検出部131は、検出された操作に応じて、データフローモデルの更新をモデル更新部136に指示する。また、操作検出部131は、所定の操作が検出されたときは、データフローモデルの中から対象データノードを選択する。操作検出部131は、選択した対象データノードを基準データ判定部132に通知する。
図12は、モデル編集の手順例を示すフローチャートである。
(S10)操作検出部131は、エディタ画面50に対する操作を検出する。
(S13)モデル更新部136は、操作に応じてデータフローモデルを更新する。操作がデータノードに対するデータ型の変更である場合、モデル更新部136は、そのデータ型に含まれる属性を更新する。操作が処理ノードに対するプロパティ値の変更である場合、モデル更新部136は、処理型のインスタンスが有するプロパティ値を更新する。操作がデータノードの削除である場合、モデル更新部136は、データフローモデルからデータ型のインスタンスを削除する。操作が処理ノードの削除である場合、モデル更新部136は、データフローモデルから処理型のインスタンスを削除する。操作が結線の追加または削除である場合、モデル更新部136は、インスタンス間の依存関係を更新する。
(S18)モデル更新部136は、実行した更新内容がデータ型の変更であるか判定する。データ型の変更である場合ばステップS19に処理が進み、それ以外の更新内容である場合はモデル編集が終了する。
図13は、モデル編集の手順例を示すフローチャート(続き)である。
(S21)基準データ判定部132は、1以上の基準データノードが存在するか判定する。1以上の基準データノードが存在する場合はステップS22に処理が進み、1つの基準データノードも存在しない場合はステップS27に処理が進む。
(S24)データ型生成部135は、基準データノードのデータ型と、基準データノードと対象データノードの間に位置する中間の処理ノードのプロパティを取得する。データ型生成部135は、基準データノードのデータ型と中間の処理ノードのプロパティと合成モデル変換ルールから、対象データノードのデータ型を生成する。
(S26)モデル更新部136は、更新時刻テーブル124に、対象データノードと対応付けて更新時刻(現在時刻)を記録する。
図14は、基準データ判定の手順例を示すフローチャートである。
以下のステップS31〜S39は再帰関数として実行される。この再帰関数は、Doutを引数として取得し、Dminを戻り値として出力する。
(S33)基準データ判定部132は、Pの入力となるデータノードを1つ選択する(k番目のデータノード)。選択したデータノードをDinとする。
(S35)基準データ判定部132は、ステップS33においてPの入力となるデータノードを全て選択したか判断する。Pの入力を全て選択した場合はステップS36に処理が進み、未選択の入力が存在する場合はステップS33に処理が進む。
(S37)基準データ判定部132は、更新時刻テーブル124を参照して、Dの更新時刻とDoutの更新時刻を比較する。Dの更新時刻がDoutの更新時刻より大きい(遅い)場合、ステップS38に処理が進む。Dの更新時刻がDoutの更新時刻以下である(同じかまたは早い)場合、ステップS39に処理が進む。
(S42)基準データ判定部132は、Dminを基準データノードと判定する。Dminが複数のデータノードの集合である場合、複数の基準データノードが選択される。
(S50)ルールチェーン算出部133は、モデル変換ルールチェーンを空とする。
(S51)ルールチェーン算出部133は、対象データノードをDtとする。
(S53)ルールチェーン算出部133は、データフローモデルから、DbからDtへ至るパス上に存在する処理ノードの列を抽出する。
(S55)ルールチェーン算出部133は、ステップS54で抽出したモデル変換ルールの列を現在のモデル変換ルールチェーンに合成する。このとき、ルールチェーン算出部133は、モデル変換ルールチェーンがデータフロー構造に対応した木構造になるように、共通部分(共通するモデル変換ルールの部分列)を重ね合わせる。
(S60)ルール合成部134は、合成モデル変換ルールを空とする。
(S61)ルール合成部134は、モデル変換ルールチェーンの中から、未抽出のモデル変換ルールのうち最前段のモデル変換ルールを1つ抽出する。
(S63)ルール合成部134は、ステップS62で抽出した式と左辺が同じ式が、合成モデル変換ルールの中に既に存在しているか判断する。左辺が同じ式が存在する場合はステップS64に処理が進み、存在しない場合はステップS65に処理が進む。
(S66)ルール合成部134は、代入式が全属性のコピーを示す式であるか判断する。「attr:=input.attr」は全属性のコピーを示す式である。全属性のコピーを示す式である場合はステップS67に処理が進み、それ以外の式(例えば、データ型の名称を設定する式など)である場合はステップS68に処理が進む。
11 記憶部
12 処理部
13 データフローモデル
14a,14b,14c データノード
15a,15b,15c データ型
16a,16b 処理ノード
17a,17b モデル変換ルール
18 合成モデル変換ルール
Claims (5)
- データ型を示す複数のデータノードとデータ処理を示す複数の処理ノードとを含んでおり前記複数のデータノードおよび前記複数の処理ノードの間の入出力関係を示すデータフローモデルと、前記複数の処理ノードに対応しておりそれぞれが入力のデータ型から出力のデータ型を生成するルールを示す複数のモデル変換ルールと、を記憶する記憶部と、
前記データフローモデルの中から、第1のデータノードから2以上の処理ノードおよび1以上の第3のデータノードを経由して第2のデータノードに到達するデータフローを検出し、前記複数のモデル変換ルールのうち前記2以上の処理ノードに対応する2以上のモデル変換ルールを合成して合成モデル変換ルールを生成し、前記第1のデータノードが示す第1のデータ型が変更された後に所定条件が満たされたタイミングで、変更された前記第1のデータ型および前記合成モデル変換ルールを用いて、前記1以上の第3のデータノードが示す1以上の第3のデータ型の更新をスキップして前記第2のデータノードが示す第2のデータ型を更新する処理部と、
を有する開発支援装置。 - 前記所定条件は、前記第2のデータ型の情報を出力させる要求が発生したことである、
請求項1記載の開発支援装置。 - 前記処理部は更に、前記複数のデータノードのうちの1つのデータノードが示すデータ型が変更される毎に前記1つのデータノードに対応付けて変更時刻を記録し、前記データフローモデルの中の開始点と前記第2のデータノードとの間に存在するデータノードのうち前記変更時刻が最も遅いデータノードを前記第1のデータノードとして選択する、
請求項1記載の開発支援装置。 - コンピュータが実行する開発支援方法であって、
データ型を示す複数のデータノードとデータ処理を示す複数の処理ノードとを含んでおり前記複数のデータノードおよび前記複数の処理ノードの間の入出力関係を示すデータフローモデルの中から、第1のデータノードから2以上の処理ノードおよび1以上の第3のデータノードを経由して第2のデータノードに到達するデータフローを検出し、
前記複数の処理ノードに対応しておりそれぞれが入力のデータ型から出力のデータ型を生成するルールを示す複数のモデル変換ルールのうち、前記2以上の処理ノードに対応する2以上のモデル変換ルールを合成して合成モデル変換ルールを生成し、
前記第1のデータノードが示す第1のデータ型が変更された後に所定条件が満たされたタイミングで、変更された前記第1のデータ型および前記合成モデル変換ルールを用いて、前記1以上の第3のデータノードが示す1以上の第3のデータ型の更新をスキップして前記第2のデータノードが示す第2のデータ型を更新する、
開発支援方法。 - コンピュータに、
データ型を示す複数のデータノードとデータ処理を示す複数の処理ノードとを含んでおり前記複数のデータノードおよび前記複数の処理ノードの間の入出力関係を示すデータフローモデルの中から、第1のデータノードから2以上の処理ノードおよび1以上の第3のデータノードを経由して第2のデータノードに到達するデータフローを検出し、
前記複数の処理ノードに対応しておりそれぞれが入力のデータ型から出力のデータ型を生成するルールを示す複数のモデル変換ルールのうち、前記2以上の処理ノードに対応する2以上のモデル変換ルールを合成して合成モデル変換ルールを生成し、
前記第1のデータノードが示す第1のデータ型が変更された後に所定条件が満たされたタイミングで、変更された前記第1のデータ型および前記合成モデル変換ルールを用いて、前記1以上の第3のデータノードが示す1以上の第3のデータ型の更新をスキップして前記第2のデータノードが示す第2のデータ型を更新する、
処理を実行させる開発支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016217900A JP6744549B2 (ja) | 2016-11-08 | 2016-11-08 | 開発支援装置、開発支援方法および開発支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016217900A JP6744549B2 (ja) | 2016-11-08 | 2016-11-08 | 開発支援装置、開発支援方法および開発支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018077613A true JP2018077613A (ja) | 2018-05-17 |
JP6744549B2 JP6744549B2 (ja) | 2020-08-19 |
Family
ID=62150361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016217900A Active JP6744549B2 (ja) | 2016-11-08 | 2016-11-08 | 開発支援装置、開発支援方法および開発支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6744549B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021527249A (ja) * | 2018-06-06 | 2021-10-11 | アビニシオ テクノロジー エルエルシー | 実行可能グラフの更新 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02151933A (ja) * | 1988-12-05 | 1990-06-11 | Hitachi Ltd | 仕様模擬実行方式 |
JP2008544423A (ja) * | 2005-06-27 | 2008-12-04 | エービー イニティオ ソフトウェア コーポレーション | グラフ型計算のためのメタデータ管理 |
JP2016126474A (ja) * | 2014-12-26 | 2016-07-11 | 富士通株式会社 | 定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置 |
-
2016
- 2016-11-08 JP JP2016217900A patent/JP6744549B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02151933A (ja) * | 1988-12-05 | 1990-06-11 | Hitachi Ltd | 仕様模擬実行方式 |
JP2008544423A (ja) * | 2005-06-27 | 2008-12-04 | エービー イニティオ ソフトウェア コーポレーション | グラフ型計算のためのメタデータ管理 |
US20130297562A1 (en) * | 2005-06-27 | 2013-11-07 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
JP2016126474A (ja) * | 2014-12-26 | 2016-07-11 | 富士通株式会社 | 定義ファイル生成プログラム、定義ファイル生成方法、および情報処理装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021527249A (ja) * | 2018-06-06 | 2021-10-11 | アビニシオ テクノロジー エルエルシー | 実行可能グラフの更新 |
JP7200266B2 (ja) | 2018-06-06 | 2023-01-06 | アビニシオ テクノロジー エルエルシー | 実行可能グラフの更新 |
JP2023033306A (ja) * | 2018-06-06 | 2023-03-10 | アビニシオ テクノロジー エルエルシー | 実行可能グラフの更新 |
JP7381705B2 (ja) | 2018-06-06 | 2023-11-15 | アビニシオ テクノロジー エルエルシー | 実行可能グラフの更新 |
Also Published As
Publication number | Publication date |
---|---|
JP6744549B2 (ja) | 2020-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8892504B2 (en) | Method and system for reconciling meta-data in a data warehouse | |
JP5852967B2 (ja) | Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路 | |
US8667411B2 (en) | Using style elements to copy and paste a selected area of a screen display | |
JPWO2006098031A1 (ja) | キーワード管理装置 | |
CN109614565B (zh) | 网页生成方法与装置 | |
US20080208554A1 (en) | Simulator development system and simulator development method | |
US20110126171A1 (en) | Dynamic native editor code view facade | |
JP5426938B2 (ja) | 情報処理装置、情報処理方法 | |
US20200174757A1 (en) | Application development preview tool and methods | |
JP6744549B2 (ja) | 開発支援装置、開発支援方法および開発支援プログラム | |
JP2020123175A (ja) | コード管理システムおよびコード管理方法 | |
US9244651B2 (en) | Document revision control | |
JP2001357095A (ja) | 半導体装置設計支援装置 | |
KR20110012541A (ko) | 디지털 스토리보드 생성 시스템 | |
JP2012088940A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US11809844B2 (en) | Creating an app method and system | |
CN113296759B (zh) | 用户界面处理方法、用户界面处理系统、设备及存储介质 | |
JP4885569B2 (ja) | スタイルシート生成装置及びスタイルシート生成プログラム | |
JP6993573B2 (ja) | プログラム解析方法、プログラム解析装置およびプログラム解析プログラム | |
CN113377368A (zh) | 项目开发方法、装置、服务器及存储介质 | |
CN105094845A (zh) | 流程建模装置和方法 | |
JP2019153204A (ja) | 文書管理プログラム、文書管理装置および文書管理方法 | |
CN106528183B (zh) | 一种创建控件的方法、装置和计算机程序 | |
JP2008234469A (ja) | 制御システム開発支援装置、制御システム開発支援方法およびその方法をコンピュータに実行させるプログラム | |
JP3019730B2 (ja) | メンテナンス情報管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190807 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20190815 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20190815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200610 |
|
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: 20200630 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200713 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6744549 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |