(57)【要約】【課題】モデルにより記述された処理を理解し易くする。【解決手段】開発支援装置は、予め定められた処理手順を示すブロックと、複数のブロックを対応付けることで、これらのブロック間のデータの入出力を示す結線とにより、コンピュータによる処理を記述したモデルを表示させる。開発支援装置により実行される説明情報表示処理のＳ１００〜Ｓ１３０では、モデルにおいて記述された処理についての説明を示す説明情報が生成される。より詳しくは、これらのステップでは、複数の種類の説明情報を生成可能であり、処理に応じた種類の説明情報が生成される。また、Ｓ１３５，Ｓ１４０では、生成された説明情報が、モデルと共に表示される。【選択図】図３
2018180629.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた処理手順を示すブロック（２０１〜２２７）と、複数の前記ブロックを対応付けることで、これらのブロック間のデータの入出力を示す結線（２６０〜２６８）とにより、コンピュータによる処理を記述したモデル（２００）を表示させる表示装置（１）であって、
前記処理についての説明を示す説明情報（３００，３０１）を生成する部位であって、異なる表現方法でなされた前記説明を示す複数の種類の前記説明情報を生成可能であり、前記処理に応じた前記種類の前記説明情報を生成するよう構成された生成部（Ｓ１００〜Ｓ１３０）と、
前記生成部により生成された前記説明情報を、前記モデルと共に表示させるよう構成された表示部（Ｓ１３５，Ｓ１４０）と、
を備える表示装置。
【請求項２】
請求項１に記載の表示装置であって、
前記ブロックには、該ブロックが示す前記処理手順に基づく種別が定められており、
前記生成部は、前記処理を記述する前記ブロックの前記種別と前記結線とに応じた種類の前記説明情報を生成するよう構成されている
表示装置。
【請求項３】
請求項１又は請求項２に記載の表示装置であって、
予め定められた条件が充足されたか否かに応じて選択が行われる前記処理を、選択処理とし、
前記生成部は、前記選択処理に応じた前記種類の前記説明情報として、言語に基づく前記説明を示す前記説明情報を生成するよう構成されている
表示装置。
【請求項４】
請求項１から請求項３のうちのいずれか１項に記載の表示装置であって、
数値を算出するための前記処理を、演算処理とし、
前記生成部は、前記演算処理に応じた前記種類の前記説明情報として、数式に基づく前記説明を示す前記説明情報を生成するよう構成されている
表示装置。
【請求項５】
請求項１から請求項４のうちのいずれか１項に記載の表示装置であって、
前記生成部は、予め定められた前記処理については、前記説明情報を生成しないよう構成されている
表示装置。
【請求項６】
請求項１から請求項５のうちのいずれか１項に記載の表示装置であって、
前記ブロックには、該ブロックの前記処理手順に応じたテンプレートが定められており、
前記生成部は、複数の前記ブロックと前記結線とにより記述された前記処理についての前記説明情報を、これらのブロックに定められた前記テンプレートと、該結線によるこれらのブロックの対応付けとに基づき生成するよう構成されている
表示装置。
【請求項７】
予め定められた処理手順を示すブロック（２０１〜２２７）と、複数の前記ブロックを対応付けることで、これらのブロック間のデータの入出力を示す結線（２６０〜２６８）とにより、コンピュータによる処理を記述したモデル（２００）を表示させる表示装置としてコンピュータを動作させる表示プログラム（５０）であって、
前記処理についての説明を示す説明情報（３００，３０１）を生成する部位であって、異なる表現方法でなされた前記説明を示す複数の種類の前記説明情報を生成可能であり、前記処理に応じた前記種類の前記説明情報を生成するよう構成された生成部（Ｓ１００〜Ｓ１３０）と、
前記生成部により生成された前記説明情報を、前記モデルと共に表示させるよう構成された表示部（Ｓ１３５，Ｓ１４０）として、
コンピュータを動作させる表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータによる処理を記述したモデルを表示する技術に関する。
【背景技術】
【０００２】
プログラム開発の手法として、モデルベース開発が知られている。モデルベース開発では、処理手順を示すブロックと、ブロック間のデータの入出力を示す結線とを含むモデルにより、コンピュータによる処理が記述される。そして、モデルに基づき、ソースコードが自動生成される。
【０００３】
ここで、特許文献１のモデル記述形式修正装置は、複数のモデルから生成された各ソースコードに、同一又は類似する処理の記述があるか否かを判定する。そして、このような処理の記述がある場合には、モデル記述形式修正装置は、モデルにおける該処理の記述を、他のモデルにおける該処理の記述と同一となるように修正する。これにより、これらのモデルの記述が統一され、モデルの可読性が向上する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２０１０４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、モデルにより記述された処理が複雑である場合等には、モデルの記述が統一されていたとしても十分な可読性が得られず、モデルにより記述された処理の理解が困難となる恐れがある。
【０００６】
本開示は、モデルにより記述された処理を理解し易くすることを目的とする。
【課題を解決するための手段】
【０００７】
本開示の表示装置（１）は、予め定められた処理手順を示すブロック（２０１〜２２７）と、複数のブロックを対応付けることで、これらのブロック間のデータの入出力を示す結線（２６０〜２６８）とにより、コンピュータによる処理を記述したモデル（２００）を表示させる。表示装置は、生成部（Ｓ１００〜Ｓ１３０）と、表示部（Ｓ１３５，Ｓ１４０）と、を備える。生成部は、処理についての説明を示す説明情報（３００，３０１）を生成する部位であって、異なる表現方法でなされた説明を示す複数の種類の説明情報を生成可能であり、処理に応じた種類の説明情報を生成するよう構成されている。また、表示部は、生成部により生成された説明情報を、モデルと共に表示させるよう構成されている。
【０００８】
このような構成によれば、モデルに含まれる全部又は一部のブロックにより記述された処理について、該処理に応じた種類の説明情報が生成される。そして、該モデルと共に、該説明情報が表示される。このため、モデルにより記述された処理が理解し易くなる。
【０００９】
また、本開示の一側面は、上述した表示装置としてコンピュータを動作させる表示プログラムに関するものである。
このような表示プログラムによれば、上述した表示装置と同様、モデルにより記述された処理が理解し易くなる。
【００１０】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の開発支援装置（換言すれば、ＰＣ）のブロック図である。
【図２】本実施形態において各種別のブロックに定められたフラグの値及びテンプレートを示す表である。
【図３】本実施形態の説明情報表示処理のフローチャートである。
【図４】本実施形態の説明情報表示処理の対象となるモデルの説明図である。
【図５】本実施形態におけるテンプレートの継承についての説明図である。
【図６】本実施形態におけるテンプレートの継承についての説明図である。
【図７】本実施形態の開発支援装置により表示されるモデル及び説明情報の説明図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本開示の実施形態を説明する。
［構成］
図１に示すように、本実施形態のＰＣ１は、ディスプレイ１０，ＨＤＤ２０，ＣＰＵ３０，ＲＯＭ４０，ＲＡＭ５０，入力装置６０等を備える。
【００１３】
ディスプレイ１０は、ＣＰＵ３０から受けた映像信号を、ユーザに対して映像として表示する。
入力装置６０は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をＣＰＵ３０に出力する。
【００１４】
ＲＡＭ５０は読み出し、書き込み可能な揮発性メモリであり、ＲＯＭ４０は読み出し専用の不揮発性メモリであり、ＨＤＤ２０は読み出し、書き込み可能な不揮発性メモリである。ＲＯＭ４０，ＨＤＤ２０には、ＣＰＵ３０が読み出して実行するプログラム等が予め記憶されている。
【００１５】
ＲＡＭ５０は、ＣＰＵ３０がＲＯＭ４０，ＨＤＤ２０に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域や、作業用のデータを一時的に保存するための記憶領域等として用いられる。つまり、ＲＡＭ５０は、非遷移的実体的記録媒体に相当する。
【００１６】
ＣＰＵ３０は、ＯＳをＨＤＤ２０から読み出して実行し、ＨＤＤ２０に記憶されている各種プログラムをＯＳ上のプロセスとして実行する。また、このプロセスにおいて、ＣＰＵ３０は、必要に応じて入力装置６０から信号の入力を受け付け、ディスプレイ１０に映像信号を出力し、ＲＡＭ５０，ＨＤＤ２０に対してデータの読み出し／書き込みの制御を行う。なお、ＣＰＵ３０の数は、１つでも良いし、複数であっても良い。
【００１７】
［開発支援ツールについて］
ＰＣ１には、開発支援ツールがインストールされている。開発支援ツールは、ＨＤＤ２０に保存され、ＯＳ上のプロセスとして実行されるアプリケーションの１つである。ＰＣ１は、開発支援ツールを動作させることで、モデルの作成や検証等を行う開発支援装置として稼動する。開発支援ツールを動作させることで、開発支援ツールに対応する方法が実行される。また、開発支援ツールの機能は、ソフトウェアに限らず、その一部又は全部について、ハードウェアを用いて実現してもよい。また、該機能がハードウェアである電子回路によって実現される場合、その電子回路は、多数の論理回路を含むデジタル回路、又は、アナログ回路、或いは、これらの組合せによって実現されても良い。
【００１８】
開発支援装置は、車載装置等といった電子装置を制御する組み込みシステム向けのプログラム開発に用いられることが考えられる。しかし、開発支援装置は、ＰＣ等の電子装置で動作するアプリケーション等を含むあらゆる用途のプログラム開発に用いることができる。
【００１９】
開発支援装置は、入力装置６０に対する操作に従いモデルを作成すると共に、モデルからソースコードを生成する。ここで、モデルとは、ソースコードよりも記述が簡易になり、且つ、人による可読性を高くする目的で定められたモデル言語仕様に基づいて作成されるプログラムの一表現形態である。換言すれば、モデルは、コンピュータによる処理を記述したものである。なお、モデルの一例として、Ｓｉｍｕｌｉｎｋ（登録商標）によって作成されるＳｉｍｕｌｉｎｋモデルを挙げることができる。Ｓｉｍｕｌｉｎｋ（登録商標）モデルを、Ｍａｔｌａｂ（登録商標）上で動作するＲｅａｌ  Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐ（登録商標）に入力することにより、該モデルに対応するソースコードが生成される。
【００２０】
本実施形態におけるモデルは、特定の処理手順を示すブロックと呼ばれる機能単位の組合せとして記述される。以後、処理手順に基づくブロックの分類を、種別とする。処理手順が同一であるブロックは、種別が同一となる。各種別のブロックは、該ブロックが示す処理手順に応じた形状で表現されても良い。また、ユーザは、各ブロックに対し付加情報を設定できる。付加情報とは、例えば、ブロックに定められた名称であっても良いし、該ブロックが出力する変数や定数の名称等であっても良い。そして、モデルが表示された際、該モデルに含まれるブロックに隣接して、該ブロックの付加情報が表示されても良い。
【００２１】
そして、モデルに含まれるブロックの間には、これらのブロック間のデータの入出力、及び、これらのブロックに対応する処理手順の順序を示す結線が配される。換言すれば、これらのブロックは、結線により対応付けられる。結線は、当該結線により対応付けられたブロックに接続される。なお、結線は、これらのブロックに接続されていなくても良い。
【００２２】
また、結線は矢印として構成されており、矢印の向きによりデータが出力される向きが示される。つまり、ブロックは、結線を挟んで、該結線により対応付けられた（換言すれば、接続関係を有する）他のブロックと連なった状態で配される。そして、これらのブロック間では、結線の矢印の向きに従い、一方のブロックから他方のブロックにデータが出力される。以後、接続関係を有する複数のブロックにおいて、結線の矢印が向かう側のブロックを接続先と記載し、その反対側のブロックを接続元と記載する。
【００２３】
［説明情報について］
開発支援装置は、モデルに含まれるブロックと結線とにより記述されたコンピュータの処理についての説明を示す説明情報を生成する。開発支援装置は、複数の種類の説明情報を生成可能である。各種類の説明情報は、異なる表現方法でなされた処理の説明を示し、開発支援装置は、処理に応じた種類の説明情報を生成する。そして、開発支援装置は、モデルと共に、該モデルに基づき生成した説明情報を表示する。本実施形態では、一例として、説明情報の種類として、言語説明情報と数式説明情報とが設けられている。言語説明情報は、言語に基づく説明を示す。換言すれば、言語説明情報は、主に言語により処理を説明したものである。また、数式説明情報は、数式に基づく説明を示す。換言すれば、数式説明情報は、主に数式により処理を説明したものである。
【００２４】
本実施形態では、ブロックと結線とにより記述された処理として、選択処理と、演算処理と、非表示処理とを含む複数の種類が設けられている。選択処理では、条件が充足されたか否かに応じて選択が行われる。本実施形態では、一例として、選択肢が２つである選択を行う処理を、選択処理としている。しかし、選択肢が３つ以上である選択を行う処理を、選択処理としても良い。また、演算処理は、数値を算出するための処理である。また、非表示処理とは、言語や数式等による説明よりも、モデルを参照した方が内容を把握しやすいと考えられる処理である。本実施形態では、一例として、選択肢が３つ以上である選択を行う処理を、非表示処理としている。
【００２５】
開発支援装置は、ブロックと結線とにより記述された処理の種類を、該ブロックの種別と該結線により示される接続関係とに基づき判別する。そして、該処理の種類に応じた種類の説明情報が生成される。具体的には、選択処理については言語説明情報が生成され、演算処理については数式説明情報が生成される。また、非表示処理については、説明情報が生成されない。
【００２６】
より詳しくは、モデルに含まれる各ブロックに対し、その種別に基づきフラグが設定され、フラグの値に基づき、複数のブロックにより記述された処理の種類が判別される。また、ブロックにはテンプレートが設定され、該処理を記述する複数のブロックに設定されたテンプレートに基づき、説明情報が生成される。
【００２７】
図２に示すように、ブロックの各種別に対応して、フラグの値とテンプレートとが定められている。そして、モデルに含まれる各ブロックは、その種別に応じた値のフラグが設定される。フラグの値として、１，０と、０，１と、０，０と、−１，−１との４種類が設けられている。詳細は後述するが、１，０は選択処理に、０，１は演算処理に、０，０は非表示処理に対応する。また、−１，−１は、接続元のブロックのフラグの値が継承されることを示す。
【００２８】
また、テンプレートは、対応する種別のブロックの処理手順に応じた内容を有する。そして、モデルに含まれる各ブロックには、その種別に対応して定められたテンプレートが設定される。なお、テンプレートが定められていないブロックの種別が存在しても良い。テンプレートは、例えば、説明情報の全部又は一部の内容を示す言語又は数式を含んでいても良い。ここで、テンプレートは、例えば、予め定められた変換ルールに従い説明情報に変換される記号を含んでいても良い。より詳しくは、該変換ルールとは、例えば、組版処理システムであるＬＡＴＥＸにおいて、数式等を表示するために用いられるルールであっても良い。図２に示すように、一例として、種別“Ｄｉｖｉｓｉｏｎ”に対応するテンプレートは、“￥ｆｒａｃ”という記号の列を含んでいる。該記号の列は、ＬＡＴＥＸにて、分数を示す数式を表示するために用いられる。また、一例として、種別“ＳＱＲＴ”に対応するテンプレートは、“￥ｓｑｒｔ”という記号の列を含んでいる。該記号の列は、ＬＡＴＥＸにて、平方根を示す数式を表示するために用いられる。
【００２９】
そして、詳細は後述するが、選択処理や演算処理の説明情報は、該処理を記述する複数のブロックに設定されたテンプレートと、これらのブロックの接続関係とに基づき生成される。すなわち、これらのブロックにおいて、接続元のブロックのテンプレートを、該ブロックの接続先のブロックに継承し、これらのブロックのテンプレートを組み合わせることで、説明情報が生成される。より詳しくは、テンプレートは、固定部分と可変部分を有する。図２に例示されているテンプレートにおいては、［］の内側が可変部分を示し、それ以外の部分が固定部分を示す。可変部分の内容は、接続元のブロックからテンプレートを継承することで定められる。換言すれば、可変部分には、接続元のブロックのテンプレートに基づく情報が配置される。なお、可変部分、又は、固定部分のみを有するテンプレートが設けられていても良い。
【００３０】
［説明情報表示処理について］
次に、入力データから把握されるモデルの説明情報を生成し、該モデルと共に説明情報を表示する説明情報表示処理について、図３を用いて説明する。本処理は、ユーザからの指示に応じて、開発支援装置のＣＰＵにより実行される。
【００３１】
Ｓ１００では、開発支援装置は、モデルに含まれる各ブロックについて、該ブロックの種別に応じた値のフラグを設定し、Ｓ１０５に移行する。
Ｓ１０５では、開発支援装置は、−１，−１が設定されたブロックに対し、該ブロックの接続元のブロックのフラグの値を設定することで、接続元のブロックのフラグを継承させ、Ｓ１１０に移行する。
【００３２】
Ｓ１１０では、開発支援装置は、フラグと接続関係等とに基づき、モデルに含まれる各ブロックを１又は複数のグループに分類し、Ｓ１１５に移行する。グループは、１又は複数のブロックを含む。また、以下の（ａ），（ｂ）条件を充足させる複数のブロックは、１のグループに分類される。
【００３３】
（ａ）フラグの値が同一である。
（ｂ）該グループに属するいずれかのブロックと接続関係を有する。
Ｓ１１５では、開発支援装置は、接続元が存在しないブロックを特定すると共に、特定されたブロックに対し、該ブロックの種別に対応するテンプレートを設定する。この時、該テンプレートの可変部分が設定される。
【００３４】
Ｓ１２０では、開発支援装置は、継承先ブロックを選択する。具体的には、開発支援装置は、直前にＳ１１５が実行された場合であれば、Ｓ１１５でテンプレートが設定されたブロックを継承元ブロックとする。一方、そうでない場合には、開発支援装置は、直前に実行されたＳ１２５においてテンプレートの継承がなされたブロックを、継承元ブロックとする。そして、開発支援装置は、継承元ブロックの接続先のブロックを継承先ブロックとして選択すると共に、継承先ブロックに対し、該継承先ブロックの種別に対応するテンプレートを設定し、Ｓ１２５に移行する。
【００３５】
Ｓ１２５では、開発支援装置は、継承元ブロックのテンプレートを、該継承元ブロックの接続先である継承先ブロックのテンプレートに継承する。換言すれば、該継承先ブロックのテンプレートの可変部分が、該継承元ブロックのテンプレートに基づき設定される。具体的には、例えば、該継承先ブロックのテンプレートの可変部分に、該継承元ブロックのテンプレートの全てが配置されても良いし、該テンプレートの一部が配置されても良い。また、例えば、該可変部分に、該継承元ブロックのテンプレートに改変を加えた情報が配置されても良い。
【００３６】
なお、継承先ブロックの種別に対応するテンプレートが存在しない場合には、該継承先ブロックに対し、該継承先ブロックの接続元である継承元ブロックのテンプレートを設定することで、テンプレートが継承されても良い。
【００３７】
続くＳ１３０では、開発支援装置は、モデルに含まれる全ブロックについて、テンプレートが継承されたか否かを判定する。そして、肯定判定の場合には（Ｓ１３０：Ｙｅｓ）、Ｓ１３５に移行する。一方、否定判定の場合には（Ｓ１３０：Ｎｏ）、開発支援装置は、継承先ブロックの選択を解除し、Ｓ１２０に移行する。
【００３８】
なお、継承先ブロックに複数の接続元のブロックが存在する場合が想定される。さらに、これらの全ての接続元のブロックにて、テンプレートの継承が完了していない場合が想定される。このような場合、開発支援装置は、該継承先ブロックへのテンプレートの継承を行わず、該継承先ブロックが選択された状態を維持したまま、Ｓ１２０に移行しても良い。そして、開発支援装置は、これらの全ての接続元のブロックにてテンプレートの継承が完了した後に、該継承先ブロックへのテンプレートの継承を行っても良い。
【００３９】
Ｓ１３５では、開発支援装置は、説明情報を入力データに付加する。具体的には、フラグの値が１，０であるブロックが属するグループは、言語説明情報を付加する対象グループとして特定される。また、フラグの値が０，１であるブロックが属するグループは、数式説明情報を付加する対象グループとして特定される。そして、対象グループに属するブロックのうち、フラグの値が異なるブロックを接続先とするブロックが、対象ブロックとして特定される。さらに、開発支援装置は、対象ブロックに設定されたテンプレートに基づき、該対象ブロックを含む対象グループにより記述された処理の説明情報を生成する。そして、開発支援装置は、該対象ブロックに対応付けた状態で、該説明情報を入力データに付加する。なお、開発支援装置は、対象グループに属する対象ブロック以外のブロックに対し、説明情報を対応付けても良い。
【００４０】
続くＳ１４０では、開発支援装置は、説明情報が付加された入力データに基づき、該入力データから把握されるモデルをディスプレイ１０に表示し、本処理を終了する。この時、該モデルと共に、対象ブロックに対応付けられた状態で、該対象ブロックを含む対象グループについての説明情報が表示される。
【００４１】
［具体例について］
次に、図３に示すモデル２００に対して説明情報表示処理が行われた場合の具体例について説明する。
【００４２】
（１）処理の対象となるモデルについて
モデル２００は、第１〜第５入力ブロック２０１〜２０５と、第１〜第６定数ブロック２０６〜２１０，２１９と、変換ブロック２１２，２１３，２２４と、多分岐ブロック２１１と、第１，第２比較ブロック２２１，２２２と、ＡＮＤブロック２２５と、切替ブロック２２６と、減算ブロック２１４，２１５と、２乗ブロック２１６，２１７と、加算ブロック２１８と、ルートブロック２２０と、除算ブロック２２３と、出力ブロック２２７とを有する。また、モデル２００は、これらのブロック同士を対応付ける結線２６０〜２６８を有する。
【００４３】
第１〜第５入力ブロック２０１〜２０５は、それぞれ、接続先である多分岐ブロック２１１、第１，第２比較ブロック２２１，２２２、変換ブロック２１２、減算ブロック２１４，２１５、及び、変換ブロック２１３に、変数を出力する。第１〜第５入力ブロック２０１〜２０５の種別は、Ｉｎｐｏｒｔとなる。
【００４４】
また、第１〜第６定数ブロック２０６〜２１０，２１９は、それぞれ、接続先である多分岐ブロック２１１、第１，第２比較ブロック２２１，２２２、及び、除算ブロック２２３に、固定値を接続先のブロックに出力する。第１〜第６定数ブロック２０６〜２１０，２１９の種別は、Ｃｏｎｓｔとなる。
【００４５】
また、変換ブロック２１２，２１３，２２４は、それぞれ、第３，第５入力ブロック２０３，２０５、及び、除算ブロック２２３から入力された数値のデータ型を変換し、接続先である減算ブロック２１４，２１５、及び、切替ブロック２２６に出力する。変換ブロック２１２，２１３，２２４の種別は、Ｃｏｎｖｅｒｔとなる。
【００４６】
また、多分岐ブロック２１１は、第１入力ブロック２０１から入力された変数に基づき、第１〜第３定数ブロック２０６〜２０８から入力された数値を選択し、選択した数値を、接続先のブロックである切替ブロック２２６に出力する。多分岐ブロック２１１の種別は、Ｍｕｌｉｐｏｒｔ  Ｓｗｉｔｃｈとなる。
【００４７】
また、第１，第２比較ブロック２２１，２２２は、それぞれ、２つの接続元から入力された２つの数値の大小を比較し、比較結果を示す１ビットの２進数の数値を、接続先であるＡＮＤブロック２２５に出力する。第１，第２比較ブロック２２１，２２２の種別は、それぞれ、Ｃｏｍｐａｒｅ１，Ｃｏｍｐａｒｅ２となる。
【００４８】
また、ＡＮＤブロック２２５は、２つの接続元から入力された２進数の数値のＡＮＤを算出し、算出結果を、接続先である切替ブロック２２６に出力する。ＡＮＤブロック２２５の種別は、ＡＮＤとなる。
【００４９】
また、切替ブロック２２６は、ＡＮＤブロック２２５から入力された数値が１か否かを判定すると共に、判定結果に応じて、多分岐ブロック２１１及び変換ブロック２２４から入力された２つの数値のうちの一方を選択する。そして、切替ブロック２２６は、選択した数値を、接続先である出力ブロック２２７に出力する。切替ブロック２２６の種別は、Ｓｗｉｔｃｈとなる。
【００５０】
また、減算ブロック２１４は、変換ブロック２１２と第４入力ブロック２０４とから入力された２つの数値の差を算出し、算出結果を、接続先である２乗ブロック２１６に出力する。また、減算ブロック２１５は、変換ブロック２１３と第４入力ブロック２０４とから入力された２つの数値の差を算出し、算出結果を、接続先である２乗ブロック２１７に出力する。
【００５１】
また、２乗ブロック２１６，２１７は、それぞれ、減算ブロック２１２，２１３から入力された１つの数値を２乗し、算出結果を、接続先である加算ブロック２１８に出力する。
【００５２】
また、加算ブロック２１８は、２乗ブロック２１６，２１７から入力された２つの数値の和を算出し、算出結果を、接続先であるルートブロック２２０に出力する。
また、ルートブロック２２０は、加算ブロック２１８から入力された１つの数値の平方根を算出し、算出結果を、接続先である除算ブロック２２３に出力する。ルートブロック２２０の種別は、ＳＱＲＴとなる。
【００５３】
また、除算ブロック２２３は、ルートブロック２２０及び第６定数ブロック２１９から入力された２つの数値の商を算出し、算出結果を、接続先である変換ブロック２２４に出力する。除算ブロック２２３の種別は、Ｄｉｖｉｓｉｏｎとなる。
【００５４】
また、出力ブロック２２７は、切替ブロック２２６からの数値の入力を受け付ける。
（２）ブロックの分類について
次に、説明情報表示処理のＳ１００〜Ｓ１１０にて行われる、モデルに含まれるブロックの分類について説明する。
【００５５】
図４に示すように、第１，第２比較ブロック２２１，２２２、ＡＮＤブロック２２５、及び、切替ブロック２２６に設定されるフラグの値は、１，０となる。また、同様に、減算ブロック２１４，２１５、２乗ブロック２１６，２１７、加算ブロック２１８、ルートブロック２２０、及び、除算ブロック２２３に設定されるフラグの値は、０，１となり、変換ブロック２２４に設定されるフラグの値は、−１，−１となる。また、モデル２００に含まれる他のブロックに設定されるフラグの値は、０，０となる。
【００５６】
また、変換ブロック２２４の接続元である除算ブロック２２３のフラグの値は、０，１である。このため、上述した継承により、変換ブロック２２４のフラグの値には、除算ブロック２２３のフラグの値である０，１が設定される。
【００５７】
したがって、Ｓ１１０において、第１，第２比較ブロック２２１，２２２、ＡＮＤブロック２２５、及び、切替ブロック２２６は、グループ２４０に分類される。また、減算ブロック２１４，２１５、２乗ブロック２１６，２１７、加算ブロック２１８、ルートブロック２２０、除算ブロック２２３、及び、変換ブロック２２４は、グループ２４１に分類される。
【００５８】
（３）テンプレートの継承について
次に、説明情報表示処理のＳ１１５〜Ｓ１３０にて行われる、テンプレートの継承について説明する。
【００５９】
Ｓ１１５では、入力ブロック２０１〜２０５、及び、定数ブロック２０６〜２１０，２１９が、接続元が存在しないブロックとして特定され、これらのブロックにテンプレートが設定される。そして、Ｓ１２０〜１３０の処理を繰り返すことで、テンプレートの継承が行われる。ここでは、図５，６により、モデル２００における第２入力ブロック２０２、第４，第５定数ブロック２０９，２１０、第１，第２比較ブロック２２１，２２２、ＡＮＤブロック２２５、及び、切替ブロック２２６に対して行われるテンプレートの継承を例示する。
【００６０】
まず、Ｓ１１５にて、ＬＯＯＰ１に含まれる第２入力ブロック２０２、及び、第４，第５定数ブロック２０９，２１０が、接続元が存在しないブロックとして特定される。これらのブロックには、それぞれ、図２，６に示すテンプレートが設定される。なお、図４，５に示すように、第２入力ブロック２０２、及び、第４，第５定数ブロック２０９，２１０の付加情報は、それぞれ、“制御値２”、“定数４”、及び、“定数５”となる。また、これらのブロックのテンプレートは、図２，６において“付加情報”と示された可変部分を有する。該可変部分には、ブロックの付加情報が配置される。その結果、これらのブロックには、図６の「ＬＯＯＰ１」に示すテンプレートが設定される。
【００６１】
これに続く１回目のＳ１２０〜１３０の処理では、ＬＯＯＰ１に含まれる第２入力ブロック２０２、及び、第４，第５定数ブロック２０９，２１０が、継承元ブロックとして特定される。また、ＬＯＯＰ２に含まれる第１，第２比較ブロック２２１，２２２が、継承先ブロックとして特定される。そして、第２入力ブロック２０２、及び、第４定数ブロック２０９のテンプレートが、第１比較ブロック２２１に継承される。また、第２入力ブロック２０２、及び、第５定数ブロック２１０のテンプレートが、第２比較ブロック２２２に継承される。第１，第２比較ブロック２２１，２２２のテンプレートは、図２，６において“入力１”，“入力２”と示された可変部分を有する。“入力１”には、上側の接続点で第１，第２比較ブロック２２１，２２２と接続する結線２６１を介して接続関係を有する第２入力ブロック２０２のテンプレートが配置される。また、“入力２”には、下側の接続点で第１，第２比較ブロック２２１，２２２と接続する結線２６２，２６３を介して接続関係を有する第４，第５定数ブロック２０９，２１０のテンプレートが配置される。その結果、第１，第２比較ブロック２２１，２２２には、図６の「ＬＯＯＰ２」に示すテンプレートが設定される。
【００６２】
２回目のＳ１２０〜１３０の処理では、ＬＯＯＰ２に含まれる第１，第２比較ブロック２２１，２２２が、継承元ブロックとして特定される。また、ＬＯＯＰ３に含まれるＡＮＤブロック２２５が、継承先ブロックとして特定される。そして、第１，第２比較ブロック２２１，２２２のテンプレートが、ＡＮＤブロック２２５に継承される。ＡＮＤブロック２２５のテンプレートは、図２，６において“入力１”，“入力２”と示された可変部分を有する。“入力１”には、上側の接続点でＡＮＤブロック２２５と接続する結線２６４を介して接続関係を有する第１比較ブロック２２１のテンプレートが配置される。また、“入力２”には、下側の接続点でＡＮＤブロック２２５と接続する結線２６５を介して接続関係を有する第２比較ブロック２２２のテンプレートが配置される。このため、これらのブロックには、図６の「ＬＯＯＰ３」に示すテンプレートが設定される。
【００６３】
３回目のＳ１２０〜１３０の処理では、ＬＯＯＰ３に含まれるＡＮＤブロック２２５が、継承元ブロックとして特定される。また、ＬＯＯＰ４に含まれる切替ブロック２２６が、継承先ブロックとして特定される。そして、ＡＮＤブロック２２５のテンプレートが、切替ブロック２２６に継承される。さらに、多分岐ブロック２１１及び変換ブロック２２４のテンプレートが、切替ブロック２２６に継承される。切替ブロック２２６のテンプレートは、図２，６において“入力１”，“入力２”，“入力３”と示された可変部分を有する。“入力１”には、中央の接続点で切替ブロック２２６と接続する結線２６６を介して接続関係を有するＡＮＤブロック２２５のテンプレートが配置される。また、“入力２”には、上側の接続点で切替ブロック２２６と接続する結線２６７を介して接続関係を有する多分岐ブロック２１１のテンプレートが配置される。また、“入力３”には、下側の接続点で切替ブロック２２６と接続する結線２６８を介して接続関係を有する変換ブロック２２４のテンプレートが配置される。このため、切替ブロック２２６には、図６の「ＬＯＯＰ４」に示すテンプレートが設定される。なお、図６に示す該テンプレートでは、“入力２”及び“入力３”に配置されるテンプレートの記載は、省略されている。
【００６４】
（４）説明情報の表示について
Ｓ１３５では、モデル２００におけるグループ２４０，２４１が、対象グループとして特定される。また、グループ２４０における切替ブロック２２６と、グループ２４１における変換ブロック２２４とが、対象ブロックとして特定される。そして、切替ブロック２２６に設定されたテンプレートに基づき、グループ２４０に属するブロック及び結線により記述された、選択処理についての言語説明情報３００が生成される。また、変換ブロック２２４に設定されたテンプレートに基づき、グループ２４１に属するブロック及び結線により記述された、演算処理についての数式説明情報３０１が生成される。言語説明情報３００は、切替ブロック２２６に対応付けられた状態で、モデル２００を示す入力データに付加される。また、数式説明情報３０１は、変換ブロック２２４に対応付けられた状態で、該入力データに付加される。なお、対象ブロック以外のブロックについては、説明情報は生成されない。
【００６５】
そして、Ｓ１４０では、図７に示すように、該入力データに基づきモデルが表示される。この時、言語説明情報３００は、切替ブロック２２６の付近に配置されることで、切替ブロック２２６に対応付けられる。また、数式説明情報３０１は、変換ブロック２２４の付近に配置されることで、変換ブロック２２４に対応付けられる。
【００６６】
［効果］
上記実施形態によれば、以下の効果を奏する。
（１）上記実施形態によれば、モデルに含まれる全部又は一部のブロックにより記述された処理について、該処理に応じた種類の説明情報が生成される。そして、該モデルと共に、該説明情報が表示される。このため、モデルにより記述された処理が理解し易くなる。したがって、例えば、モデルにより複雑な演算が記述されている場合や、実装段階で必要となる複雑な処理がモデルにより記述されている場合であっても、モデルの検証やレビュー等を容易に実施可能となる。
【００６７】
（２）また、各ブロックには、その処理手順に応じた種別が定められている。また、ブロックの種別と、該ブロックと他のブロックとを対応付ける結線とに基づき、ブロックにより記述された処理の種類が判別される。そして、該処理に対し、該処理の種類に応じた種類の説明情報が生成される。このため、より理解し易い説明情報を生成可能となる。
【００６８】
（３）また、予め定められた条件が充足されたか否かに応じて選択が行われる選択処理に対しては、主に言語を用いた説明を示す説明情報が生成される。このため、選択処理の理解が容易となる。
【００６９】
（４）また、数値を算出するための演算処理に対しては、主に数式を用いた説明を示す説明情報が生成される。このため、演算処理の理解が容易となる。
（５）また、モデルを参照した方が内容を把握しやすいと考えられる非表示処理に対しては、説明情報が生成されない。つまり、上記実施形態の開発支援装置によりモデルが表示された際、該モデルにおける非表示処理を記述したブロックについては、説明情報が表示されない。このため、非表示処理の理解が容易となる。
【００７０】
（６）また、複数のブロックにより記述された処理の説明情報は、これらのブロックに定められたテンプレートと、これらのブロックの接続関係とに基づき生成される。このため、ブロックにより記述される様々な処理の説明情報を、適切に生成可能となる。
【００７１】
［他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００７２】
（１）上記実施形態では、処理手順が同一であるブロックが同一種別に分類され、ブロックの各種別に対応してテンプレートが定められている。しかし、処理手順が同一又は類似するブロックが、同一種別に分類されるようにしても良い。また、複数の種別のブロックに対応して、同一のテンプレートが定められていても良い。また、ブロックの種別とは無関係に、テンプレートが定められていても良い。より詳しくは、例えば、詳細情報表示処理において、ブロックにより記述される処理の目的や、該処理により実現される機能等に応じたテンプレートが、該ブロックに設定されても良い。そして、上記実施形態と同様にして、このようなテンプレートに基づき説明情報が生成されても良い。
【００７３】
（２）上記実施形態では、数式又は言語に基づく説明情報が生成される。しかしながら、例えば、静止画、動画、又は、音声等に基づく説明情報が生成されるようにしても良い。より詳しくは、例えば、静止画や動画は、モデルにより記述された処理により生成される信号、静止画、又は、動画等を示すものであっても良いし、音声は、該処理により生成される信号、又は、音声等を示すものであっても良い。
【００７４】
（３）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【００７５】
（４）上述した開発支援装置及び開発支援ツールの他、当該開発支援装置を構成要素とするシステム、開発支援ツールを記録した半導体メモリ等の非遷移的実態的記録媒体、開発支援装置及び開発支援ツールにより実現される処理に相当する方法など、種々の形態で本開示を実現することもできる。
【００７６】
［特許請求の範囲との対応］
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
【００７７】
開発支援装置が表示装置の一例に、開発支援ツールが表示プログラムの一例に相当する。また、説明情報表示処理のＳ１００〜Ｓ１３０が生成部の一例に、Ｓ１３５，Ｓ１４０が表示部の一例に相当する。
【符号の説明】
【００７８】
１…ＰＣ、１０…ディスプレイ、２０…ＨＤＤ、３０…ＣＰＵ、４０…ＲＯＭ、５０…ＲＡＭ、６０…入力装置、２００…モデル、２０１〜２２７…出力ブロック、２４０，２４１…グループ、２６０〜２６８…結線、３００…言語説明情報、３０１…数式説明情報。
【図１】
2018180629.tif 000003
【図２】
2018180629.tif 000004
【図３】
2018180629.tif 000005
【図４】
2018180629.tif 000006
【図５】
2018180629.tif 000007
【図６】
2018180629.tif 000008
【図７】
2018180629.tif 000009