[이 회신의 PDF 버전의 경우 그림 또는 다이어그램은 대화식이며 동적입니다.]
넷 요소와 주석 : 범용 비주얼 프로그래밍 언어
그래픽을 사용하여 Acrobat® / JavaScript API를 사용하는 JavaScript ™ 프로그램을 구성합니다. 각 그래픽 개체는 Petri Net 요소 (장소, 전환, 입력 또는 출력)를 나타내거나 둘 이상의 Petri Net 요소를 나타냅니다. 각 그래픽 객체는 실제로 해당 네트 요소의 주석입니다. 그러나 모든 그래픽 객체가 하나의 네트 요소에만 매핑되는 경우 네트 요소를 생성하는 데 사용될 수 있습니다. 그리고 그래픽 객체가 둘 이상의 네트 요소에 매핑되고 매핑이 잘 정의되어 있으면 네트 요소를 생성하는 데 사용될 수도 있습니다. 표준 Petri Net 요소는 특정 유형의 그래픽으로 표시됩니다 : 원은 장소, 정사각형 또는 직사각형 또는 선은 전환, 원에서 사각형으로의 화살표는 입력이며, 정사각형에서 원으로의 화살표는 산출. 더욱이,
[ "표준 페트리 넷"의 주석 유형은이 회신의 PDF 버전에 있습니다.]
Carl Adam Petri는 박사 학위 논문 (Petri, 1966)에서 "Standard Petri Net"의 주석 유형을 포함하여 이러한 아이디어의 대부분을 설명했으며, 그림과 같은 여러 논리 회로의 설명에 순 요소 및 주석을 적용했습니다. 6.
장점과 도전
시각적 프로그래밍 언어는 컴퓨터 프로그래머가 컴퓨터 프로그램을 개발하는 데 도움이 될 수 있습니다 (Menzies, 2002).
넷 요소와 주석이 유용한 이유는 적어도 세 가지가 있습니다 (이점).
전나무 이유. 프로세스 로직은 한 번에 하나의 요소를 만들 수 있습니다. 이는 기존 네트에 요소를 추가하여 네트를 확장 할 수 있음을 의미합니다 (Petri, 1966). 예를 들어, 컨트롤러 모델은 내부 구성 요소와 외부 구성 요소로 나눌 수 있습니다. 내부 구성 요소가 시스템을 조정합니다. 외부 구성 요소는 환경의 입력을 승인하여 환경과 인터페이스합니다. 그림 1은 내부 구성 요소의 Petri Net 모델입니다. 적절한 위치와 전환을 추가하여 외부 구성 요소의 Petri Net 모델을 내부 구성 요소의 Petri Net 모델에 추가 할 수 있습니다 (그림 2).
그림 1 컨트롤러 내부 구성 요소의 페트리 넷 모델 (Halloway, Krogh and Giua, 1997)
그림 2 컨트롤러 내부 및 외부 구성 요소의 페트리 넷 모델 (Halloway, Krogh and Giua, 1997)
두 번째 이유. 각 순 요소와 관련된 코드는 둘 이상의 "프로그래밍 언어"(Petri, 1973)에서 제공 될 수 있습니다. JavaScript, COBOL, ADA와 같은 컴퓨터 언어 및 어셈블리 언어에서 제공 될 수 있습니다. 대수 기호와 같은 수학 언어에서 나올 수 있습니다. 영어, 독일어, 프랑스어, 그리스어, 타갈로그어, 중국어 등으로 인코딩 된 산문에서 나올 수 있습니다. 따라서 소프트웨어 또는 시스템 개발 수명주기 전반에 걸쳐 커뮤니케이션 및 협업의 기초로 사용될 수 있습니다. 그리고 다른 사용자, 개발자 및 이해 관계자들 사이에서 (Petri, 1973).
세 번째 이유. 넷에서 특정 그래픽스 객체에 집중하고 관련 그래픽스 객체에 대한 코드 또는 로직 주석을 작성할 수 있습니다. 그림 3에서 카드 게임의 Petri Net 모델을 고려하십시오. 입력 P7 T4의 화살표가 Place / Transition Net의 입력에 대한 표준 그래픽이고 m_7이 P7의 마크인 경우 논리 주석은 다음과 같습니다. 입력 장소의 마크를 업데이트하는 것은 m_7 = m_7-1입니다. s_9 ^-가 입력 상태 인 경우 입력 상태를 업데이트하기위한 논리 주석은 s_9 ^-= ((m_7 <1)? false : true)입니다.
그림 3 카드 게임의 Petri Net 모델
Petri Nets의 적용이 어려운 이유는 세 가지가 있습니다 (불이익?).
그래픽 객체가 너무 많으면 네트를 생성하거나 읽기가 어렵습니다. 어려움은 그래픽의 서브셋을 취함으로써 완화 될 수 있고 하나, 둘 또는 세 개의 그래픽 심볼을 사용하여 표현할 수있다 (Noe, 1973; Petri, 1966). 예를 들어, 그림 3의 카드 게임의 Petri Net 모델이 다이어그램에 너무 많은 그래픽 객체를 갖는 것으로 간주되는 경우 일부 그래픽을 결합하고 다이어그램을 컴퓨터 프로그램에 매핑하기에 충분한 정보를 유지할 수 있습니다. 높은 수준의 그래픽 (Chionglo, 2016a)이있는 그림 3과 동일한 게임의 Petri Net 모델 인 그림 4를 고려하십시오.
그림 4 고급 그래픽을 사용한 카드 게임의 Petri Net 모델 (Chionglo, 2016a)
다른 예에서,도 2의 제어기의 외부 구성 요소는도 5에 도시 된 바와 같이보다 간결한 그래픽 표현을 생성하기 위해 결합 될 수있다.
그림 5 외부 구성 요소를위한 고급 그래픽이있는 컨트롤러의 페트리 넷 모델
마지막으로, 상호 배타적 인 장소 집합 또는 상호 배타적 인 전이 세트는 고급 그래픽 객체를 사용하여 표현 될 수도 있습니다 (Chionglo, 2015).
두 번째 이유. 표준 그래픽을 사용하더라도 최종 다이어그램이 사용자에게 친숙하거나 독자에게 친숙 할 것으로 예상되는 경우 특히 그래픽을 그리고 배치하는 것이 어려울 수 있습니다. 사용자 친화적이거나 독자 친화적 인 다이어그램을 만들기위한 결정에는 다음과 같은 것들이 포함됩니다 : 그래픽 객체의 적절한 레이아웃, 캔버스와 도형의 적절한 치수, 화살표의 곡률, 화살표 머리의 종류, 텍스트의 크기와 글꼴, 그래픽 및 텍스트의 색상 선택.
세 번째 이유. 모든 주석은 순 요소와 직간접 적으로 관련되어 있기 때문에 순 요소의 주석을 순서대로 쉽게 생성 할 수 있습니다. 그러나 다이어그램에 너무 많은 정보가 표시 될 수 있기 때문에 모든 주석의 그래픽과 함께 모든 주석을 표시하는 것은 좋은 생각이 아닙니다. 예를 들어, 모든 속성 및 로직 주석에 대한 참조를 포함하는 로직 회로의 Petri Net 모델 다이어그램을 고려하십시오 (그림 6). [원래 모델에는 모든 출력의 상태에 대한 테스트 조건이 포함되어 있습니다 (Petri, 1966 년의 78 페이지 그림 31); 테스트 조건은 주어진 초기 마킹에 대한 원래 모델과 동일하므로 여기서 생략되었습니다. 따라서 모든 출력에는 출력 위치의 마크를 계산하기위한 하나의 논리 주석이 있습니다.]
그림 6 주석이있는 장소 / 전이 망 – Petri 논문 논문의 영어 번역의 그림 31-78 페이지
이 문제를 해결하는 한 가지 방법은 모델에 사용 된 주석 유형을 식별하고 이러한 유형의 주석을 포함하는 그래픽 객체를 정의하는 것입니다 (Petri, 1966). 따라서 Petri Net 다이어그램이 정의의 그래픽 객체로 구성된 경우 이러한 객체의 해석에는 "보이지 않는"주석이 포함되어야합니다. 그림 7은 표준 페트리 네트로 해석되어야합니다 (정의는 표준 페트리 네트의 주석 참조). 그러므로, 논리 주석은 다이어그램에서 생략 될 수있다.
그림 7 장소 / 전환 망 – Petri 논문 논문의 영어 번역 그림 31 페이지 78을 기반으로 함 (1966)
이 문제를 완화하는 또 다른 방법은 주석의 양식보기를 사용하여 다이어그램을 보완하거나 보완하는 것입니다 (Chionglo, 2016b; 2014). 뷰들은 더 작은 뷰들로 더 분할 될 수 있고, 각각의 뷰는 디스플레이되고 숨겨 질 수있다.
참고 문헌
JF Chionglo (2016a). Stack Overflow에서 "React / redux 플래시 카드 게임의 상태 흐름을 디자인하는 방법"에 대한 답변. 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). Petri Net의 두 가지 형태보기. http://www.aespen.ca/AEnswers/CAPDissF31P78-form.pdf 에서 사용할 수 있습니다.
JF Chionglo (2015). 고급 그래픽을 사용하여 Petri Net 다이어그램의 순 요소 그래픽 수를 줄입니다. 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 에서 사용 가능합니다 .
Halloway, LE; Krogh, BH 및 Giua, A. (1997). 제어 된 이산 이벤트 시스템을위한 Petri Net 방법에 대한 조사 [전자 버전]. 개별 이벤트 동적 시스템 : 이론 및 응용, Vol. 7. 보스턴 : Kluwer Academic Publishers, 151 – 190 쪽.
Menzies, T. (2002). 비주얼 프로그래밍 언어에 대한 평가 문제. SK Chang (Ed)에서. 소프트웨어 공학 및 지식 공학 핸드북, Vol. 2 신흥 기술. 세계 과학 출판사 Pte. Ltd., 93 – 101 쪽.
Noe, JD and Nutt, GJ (1973). "병렬 시스템의 표현을위한 매크로 E-Nets", 컴퓨터의 IEEE 트랜잭션, vol. C-22, No. 8, 1973 년 8 월, pp. 718 – 727.
캘리포니아 페트리 (1973). 순 이론의 개념. 컴퓨터 과학의 수학적 기초 : Proc. 1973 년 9 월 3 일 – 8 일, High Tatras, Symposium and Summer School, 137 – 146 쪽. Inst. 슬로바키아 아카데 과학의 1973.
캘리포니아 페트리 (1966). Automota와의 통신 [trans. CF Greene, Jr.]. 기술 보고서 RADC-TR-65-377 (볼륨 I)에 대한 보충 I. 뉴욕 그리피스 공군 기지 : 로마 공군 기지, 연구 및 기술 부서, 공군 시스템 사령부, 그리피스 공군 기지. http://www.informatik.uni-hamburg.de/TGI/mitarbeiter/profs/petri/doc/Petri-diss-engl.pdf 에서 2011 년 8 월 31 일에 확인 함 .