[この返信のPDFバージョンでは、図または図はインタラクティブで動的です。]
ネット要素と注釈:汎用視覚プログラミング言語
グラフィックを使用して、Acrobat®/ JavaScript APIを使用するJavaScript™プログラムを編成します。各グラフィックオブジェクトは、ペトリネット要素(場所、遷移、入力または出力)を表すか、複数のペトリネット要素を表します。各グラフィックオブジェクトは、実際には対応するネット要素の注釈です。ただし、すべてのグラフィックオブジェクトが1つだけのネット要素にマップされる場合、それを使用してネット要素を生成できます。また、グラフィックオブジェクトが複数のネット要素にマップされ、そのマッピングが明確に定義されている場合は、ネット要素の生成にも使用できます。標準のペトリネット要素は、特定の種類のグラフィックスで表されます。円は場所、正方形または長方形または線は遷移、円から正方形への矢印は入力、正方形から円への矢印は出力。さらに、
[「標準ペトリネット」の注釈のタイプは、この返信のPDFバージョンにあります。]
カールアダムペトリは、これらのアイデアの大部分(博士論文(ペトリ、1966年)の「標準ペトリネット」の注釈のタイプを含む)を説明しました。また、ネット要素と注釈を図6。
利点と課題
ビジュアルプログラミング言語は、コンピュータープログラマーがコンピュータープログラムを開発するのに役立ちます(Menzies、2002)。
ネット要素と注釈が便利だと思う理由が少なくとも3つあります(利点は?)。
最初の理由。プロセスロジックは、一度に1つの要素を作成できます。これは、既存のネットに要素を追加することでネットを拡張できることを意味します(Petri、1966)。たとえば、コントローラのモデルは、内部コンポーネントと外部コンポーネントに分割できます。内部コンポーネントはシステムを調整します。外部コンポーネントは、環境からの入力を受け入れることにより、環境と連動します。図1は、内部コンポーネントのペトリネットモデルです。適切な場所とトランジションを追加することにより、外部コンポーネントのペトリネットモデルを内部コンポーネントのペトリネットモデルに追加できます(図2)。
図1コントローラーの内部コンポーネントのペトリネットモデル(Halloway、Krogh and Giua、1997)
図2コントローラーの内部および外部コンポーネントのペトリネットモデル(Halloway、Krogh and Giua、1997)
第二の理由。各ネット要素に関連付けられたコードは、複数の「プログラミング言語」から取得できます(Petri、1973)。JavaScript、COBOL、ADA、アセンブリ言語などのコンピューター言語から取得できます。それらは代数記号などの数学言語に由来します。これらは、英語、ドイツ語、フランス語、ギリシャ語、タガログ語、中国語などでエンコードされた散文から取得できます。したがって、ソフトウェアまたはシステム開発ライフサイクル全体のコミュニケーションとコラボレーションの基盤として使用できます。そして、異なるユーザー、開発者、利害関係者の間で(Petri、1973)。
第三の理由。ネット内の特定のグラフィックスオブジェクトに焦点を当て、関連するグラフィックスオブジェクトのコードまたはロジックアノテーションを書き出すことができます。図3のカードゲームのペトリネットモデルについて考えます。入力P7T4の矢印がプレース/遷移ネットの入力の標準グラフィックであり、m_7がプレースP7のマークである場合、入力場所のマークの更新はm_7 = m_7-1です。s_9 ^-が入力のステータスである場合、入力のステータスを更新するための論理注釈はs_9 ^-=((m_7 <1)?false:true)です。
図3カードゲームのペトリネットモデル
ペトリネットの適用が難しいと思う理由が少なくとも3つあります(欠点は?)
グラフィックスオブジェクトが多すぎる場合、ネットの作成や読み取りが困難になります。難易度は、グラフィックのサブセットを取得し、1つ、2つ、または3つのグラフィックシンボルを使用して表現することで軽減できます(Noe、1973; Petri、1966)。たとえば、図3のカードゲームのペトリネットモデルの図にグラフィックオブジェクトが多すぎると考えられる場合、図の一部を組み合わせても、図をコンピュータープログラムにマップするのに十分な情報を維持できます。図4に、高レベルのグラフィックスを備えた図3にある同じゲームのペトリネットモデルを検討してください(Chionglo、2016a)。
図4高レベルグラフィックスを使用したカードゲームのペトリネットモデル(Chionglo、2016a)
別の例では、図2のコントローラーの外部コンポーネントを組み合わせて、図5に示すようなより簡潔なグラフィック表現を作成できます。
図5外部コンポーネント用の高レベルグラフィックスを備えたコントローラーのペトリネットモデル
最後に、相互に排他的な一連の場所または相互に排他的な一連の遷移も、高レベルのグラフィックスオブジェクトを使用して表すことができます(Chionglo、2015年)。
第二の理由。標準のグラフィックスであっても、特に最終的なダイアグラムがユーザーフレンドリーまたはリーダーフレンドリーであることを期待する場合、グラフィックスを描画して配置するのは難しい場合があります。ユーザーまたは読みやすい図を作成するための決定には、グラフィックスオブジェクトの適切なレイアウト、キャンバスと形状の適切な寸法、矢印の曲率、矢印の種類、テキストのサイズとフォント、グラフィックとテキストの色の選択。
第三の理由。すべての注釈はネット要素に直接または間接的に関連付けられているため、ネット要素の注釈を整然と作成するのは簡単です。ただし、すべての注釈をすべてのネット要素のグラフィックスとともに表示することは、ダイアグラムに表示される情報が多すぎる可能性があるため、良いアイデアとは言えません。たとえば、すべてのプロパティと論理注釈への参照を含む論理回路のペトリネットモデルの図を考えてみましょう(図6)。[元のモデルには、すべての出力のステータスのテスト条件が含まれていました((Petri、1966)の78ページの図31)。テスト条件は、指定された初期マーキングの元のモデルと同等であるため、ここでは省略されました。したがって、すべての出力には、出力場所のマークを計算するための1つの論理注釈があります。]
図6注釈付きのプレイス/トランジションネット-ペトリの論文(1966)の英訳の図31ページ78に基づく
この課題を軽減する1つの方法は、モデルで使用される注釈のタイプを識別し、これらのタイプの注釈を含むグラフィックスオブジェクトを定義することです(Petri、1966)。したがって、ペトリネットダイアグラムが定義のグラフィックスオブジェクトで構成されている場合、これらのオブジェクトの解釈には「見えない」注釈を含める必要があります。図7は、標準ペトリネットとして解釈する必要があります(定義については、標準ペトリネットの注釈を参照してください)。したがって、論理注釈は図から省略できます。
図7プレイス/トランジションネット-ペトリ論文(1966年)の英訳の図31ページ78に基づく
この課題を緩和する別の方法は、注釈のフォームビューを使用して、図を補完または補足することです(Chionglo、2016b; 2014)。ビューはさらに小さなビューに分割でき、各ビューは表示および非表示にできます。
参照資料
JF Chionglo(2016a)。Stack Overflowの「React / Redux Flashcardゲームの状態フローを設計する方法」への返信。https://www.academia.edu/34059934/A_Reply_to_How_to_design_a_state_flow_for_a_react_redux_flashcard_game_at_Stack_Overflowで入手できます。
JF Chionglo(2016b)。ペトリネットの2つのフォームビュー。http://www.aespen.ca/AEnswers/CAPDissF31P78-form.pdfで入手できます。
JF Chionglo(2015)。高レベルのグラフィックスを使用して、ペトリネット図のネット要素グラフィックスの数を減らします。http://www.aespen.ca/AEnswers/WjTpY1429533268で入手できます。
JF Chionglo(2014)。コンピュータプログラミングのネット要素と注釈:PDFでの計算と相互作用。https://www.academia.edu/26906314/Net_Elements_and_Annotations_for_Computer_Programming_Computations_and_Interactions_in_PDFで入手できます。
ハロウェイ、LE; Krogh、BH and Giua、A.(1997)。制御された離散イベントシステムのペトリネット手法の調査[電子版]。離散イベント動的システム:理論と応用、Vol。7.ボストン:Kluwer Academic Publishers、pp。151 – 190。
メンジーズ、T。(2002)。ビジュアルプログラミング言語の評価の問題。SKチャン(エド)。ソフトウェア工学と知識工学ハンドブック、Vol。2新興テクノロジー。世界科学出版社 Pte。Ltd.、pp。93 – 101。
Noe、JD、Nutt、GJ(1973)。「並列システムの表現のためのマクロE-Net」、IEEE Transactions on Computers、vol。C-22、No。8、1973年8月、718〜727ページ。
ペトリ、カリフォルニア(1973)。ネット理論の概念。コンピュータサイエンスの数学的基礎:Proc。シンポジウムとサマースクール、ハイタトラ、1973年9月3日〜8日、137〜146ページ。数学。研究所 スロバキアのAcadの。1973年の科学。
ペトリ、カリフォルニア(1966)。Automotaとの通信[trans。CFグリーン、ジュニア]。テクニカルレポートRADC-TR-65-377の補足I(ボリュームI)。グリフィス空軍基地、ニューヨーク:ローマ航空開発センター、研究技術部、空軍システム司令部、グリフィス空軍基地。http://www.informatik.uni-hamburg.de/TGI/mitarbeiter/profs/petri/doc/Petri-diss-engl.pdfから2011年8月31日取得。