[สำหรับเวอร์ชัน PDF ของคำตอบนี้ตัวเลขหรือไดอะแกรมนั้นเป็นแบบโต้ตอบและแบบไดนามิก]
องค์ประกอบสุทธิและคำอธิบายประกอบ: ภาษาโปรแกรม Visual วัตถุประสงค์ทั่วไป
ฉันใช้กราฟิกเพื่อจัดระเบียบโปรแกรม JavaScript ™ที่ใช้Acrobat® / JavaScript API วัตถุกราฟิกแต่ละรายการแสดงถึงองค์ประกอบของ Petri Net (สถานที่การเปลี่ยนแปลงการนำเข้าหรือส่งออก) หรือแสดงมากกว่าหนึ่งองค์ประกอบของ Petri Net แต่ละวัตถุกราฟิกเป็นบันทึกย่อขององค์ประกอบสุทธิที่สอดคล้องกัน อย่างไรก็ตามหากวัตถุกราฟิกทุกรายการจับคู่กับองค์ประกอบสุทธิหนึ่งเดียวเท่านั้นมันอาจถูกใช้เพื่อสร้างองค์ประกอบสุทธิ และถ้าวัตถุกราฟิกจับคู่กับองค์ประกอบสุทธิมากกว่าหนึ่งรายการและการทำแผนที่กำหนดไว้อย่างดีแล้วก็อาจใช้เพื่อสร้างองค์ประกอบสุทธิได้ องค์ประกอบ Petri Net มาตรฐานแสดงด้วยกราฟิกบางประเภท: วงกลมคือสถานที่สี่เหลี่ยมจัตุรัสหรือสี่เหลี่ยมผืนผ้าหรือเส้นคือช่วงการเปลี่ยนภาพลูกศรจากวงกลมหนึ่งสี่เหลี่ยมไปยังสี่เหลี่ยมจัตุรัสคืออินพุตและลูกศรจากสี่เหลี่ยมจัตุรัสถึงวงกลมคือ เอาท์พุต นอกจากนี้
[ประเภทคำอธิบายประกอบใน "Standard Petri Net" พบได้ในเวอร์ชัน PDF ของการตอบกลับนี้]
คาร์ลอดัม Petri อธิบายความคิดเหล่านี้ส่วนใหญ่ (รวมถึงประเภทของคำอธิบายประกอบใน "Standard Petri Net" ในวิทยานิพนธ์ปริญญาเอกของเขา (Petri, 1966) นอกจากนี้เขายังใช้องค์ประกอบสุทธิและคำอธิบายประกอบกับคำอธิบายของวงจรตรรกะต่างๆเช่นรูป 6
ประโยชน์และความท้าทาย
ภาษาโปรแกรมเชิงภาพอาจช่วยโปรแกรมเมอร์คอมพิวเตอร์ในการพัฒนาโปรแกรมคอมพิวเตอร์ (Menzies, 2002)
ฉันมีเหตุผลอย่างน้อยสามข้อว่าทำไมฉันจึงพบว่าองค์ประกอบสุทธิและหมายเหตุประกอบมีประโยชน์ (ข้อดี?)
เหตุผลแรก ตรรกะกระบวนการสามารถสร้างได้ทีละองค์ประกอบ ซึ่งหมายความว่าเน็ตสามารถขยายได้โดยการเพิ่มองค์ประกอบให้กับสุทธิที่มีอยู่ (Petri, 1966) ตัวอย่างเช่นรูปแบบของตัวควบคุมสามารถแบ่งออกเป็นองค์ประกอบภายในและภายนอก ส่วนประกอบภายในควบคุมระบบ คอมโพเนนต์ภายนอกอินเตอร์เฟสกับสภาพแวดล้อมโดยการรับอินพุตจากสภาพแวดล้อม รูปที่ 1 เป็นแบบ Petri Net ของส่วนประกอบภายใน เป็นไปได้ที่จะเพิ่มโมเดล Petri Net ของส่วนประกอบภายนอกเข้ากับโมเดล Petri Net ของส่วนประกอบภายในโดยเพิ่มสถานที่และการเปลี่ยนผ่านที่เหมาะสม (รูปที่ 2)
รูปที่ 1 Petri Net Model ของชิ้นส่วนภายในของคอนโทรลเลอร์ (Halloway, Krogh and Giua, 1997)
รูปที่ 2 Petri Net Model ของส่วนประกอบภายในและภายนอกของคอนโทรลเลอร์ (Halloway, Krogh and Giua, 1997)
เหตุผลที่สอง รหัสที่เกี่ยวข้องกับองค์ประกอบสุทธิแต่ละอย่างอาจมาจาก“ ภาษาการเขียนโปรแกรม” มากกว่าหนึ่งภาษา (Petri, 1973) สามารถมาจากภาษาคอมพิวเตอร์เช่น JavaScript, COBOL, ADA และภาษาแอสเซมบลี พวกเขาสามารถมาจากภาษาคณิตศาสตร์เช่นสัญลักษณ์เกี่ยวกับพีชคณิต พวกเขาอาจมาจากร้อยแก้วที่เข้ารหัสเป็นภาษาอังกฤษเยอรมันฝรั่งเศสกรีกตากาล็อกจีน ฯลฯ ดังนั้นจึงอาจใช้เป็นพื้นฐานสำหรับการสื่อสารและการทำงานร่วมกันตลอดวงจรการพัฒนาซอฟต์แวร์หรือระบบ และในหมู่ผู้ใช้ผู้พัฒนาและผู้มีส่วนได้ส่วนเสียต่าง ๆ (Petri, 1973)
เหตุผลที่สาม เป็นไปได้ที่จะมุ่งเน้นไปที่วัตถุกราฟิกบางอย่างในเน็ตและสามารถเขียนรหัสหรือคำอธิบายประกอบแบบลอจิกสำหรับวัตถุกราฟิกที่เกี่ยวข้อง พิจารณารูปแบบ Petri Net ของการ์ดเกมในรูปที่ 3 ถ้าลูกศรสำหรับอินพุต P7 T4 เป็นกราฟิกมาตรฐานสำหรับอินพุตใน Place / Transition Net และหาก m_7 เป็นเครื่องหมายสำหรับตำแหน่ง P7 ดังนั้นคำอธิบายประกอบแบบลอจิกสำหรับ การอัพเดตเครื่องหมายของตำแหน่งอินพุตคือ m_7 = m_7-1 หาก s_9 ^ - เป็นสถานะของอินพุตดังนั้นหมายเหตุประกอบตรรกะสำหรับการอัพเดตสถานะของอินพุตคือ s_9 ^ - = ((m_7 <1)? false: true)
รูปที่ 3 เกมไพ่ Pet Pet Net
ฉันมีเหตุผลอย่างน้อยสามข้อว่าทำไมฉันถึงพบว่าการประยุกต์ใช้ Petri Nets มีความท้าทาย (ข้อเสีย)
หากมีวัตถุกราฟิกมากเกินไปมันจะยากที่จะสร้างหรืออ่านเน็ต ความยากลำบากอาจลดลงได้ด้วยการใช้ส่วนย่อยของกราฟิกและแสดงโดยใช้สัญลักษณ์กราฟิกหนึ่ง, สองหรือสามตัว (Noe, 1973; Petri, 1966) ตัวอย่างเช่นหากโมเดล Petri Net ของการ์ดเกมในรูปที่ 3 ถือว่ามีวัตถุกราฟิกจำนวนมากเกินไปในไดอะแกรมเป็นไปได้ที่จะรวมกราฟิกบางส่วนและยังคงมีข้อมูลเพียงพอที่จะแมปไดอะแกรมในโปรแกรมคอมพิวเตอร์ พิจารณารูปที่ 4 รูปแบบ Petri Net ของเกมเดียวกันที่พบในรูปที่ 3 พร้อมกราฟิกระดับสูง (Chionglo, 2016a)
รูปที่ 4 Petri Net Model ของเกมการ์ดโดยใช้กราฟิกระดับสูง (Chionglo, 2016a)
ในตัวอย่างอื่นส่วนประกอบภายนอกของคอนโทรลเลอร์ในรูปที่ 2 สามารถรวมกันเพื่อสร้างการแสดงกราฟิกที่กระชับยิ่งขึ้นดังแสดงในรูปที่ 5
รูปที่ 5 Petri Net Model ของคอนโทรลเลอร์ที่มีกราฟิกระดับสูงสำหรับส่วนประกอบภายนอก
ในที่สุดชุดของสถานที่ที่ไม่เกิดร่วมกันหรือชุดของช่วงการเปลี่ยนภาพที่ไม่เกิดร่วมกันอาจถูกแสดงโดยใช้วัตถุกราฟิกระดับสูง (Chionglo, 2015)
เหตุผลที่สอง ถึงแม้จะใช้กราฟิกมาตรฐานก็สามารถท้าทายในการวาดและวางตำแหน่งกราฟิกโดยเฉพาะอย่างยิ่งหากคาดว่าไดอะแกรมสุดท้ายจะเป็นมิตรต่อผู้ใช้หรือผู้อ่าน การตัดสินใจบางอย่างสำหรับการสร้างไดอะแกรมที่เป็นมิตรกับผู้ใช้หรือผู้อ่านรวมถึง: เค้าโครงที่เหมาะสมของวัตถุกราฟิก, ขนาดที่เหมาะสมของผืนผ้าใบและรูปร่าง, ความโค้งของลูกศร, ประเภทของหัวลูกศร, ขนาดและแบบอักษรของข้อความ, และตัวเลือกสีสำหรับกราฟิกและข้อความ
เหตุผลที่สาม มันเป็นเรื่องง่ายที่จะสร้างคำอธิบายประกอบขององค์ประกอบสุทธิในลักษณะที่เป็นระเบียบเพราะทุกคำอธิบายประกอบนั้นเกี่ยวข้องโดยตรงหรือโดยอ้อมกับองค์ประกอบสุทธิ อย่างไรก็ตามการแสดงคำอธิบายประกอบทั้งหมดพร้อมกับกราฟิกของทุกองค์ประกอบสุทธิอาจไม่ใช่ความคิดที่ดีเพราะอาจมีข้อมูลมากเกินไปที่แสดงในแผนภาพ ตัวอย่างเช่นพิจารณาไดอะแกรมของแบบจำลอง Petri Net ของวงจรลอจิกซึ่งรวมถึงการอ้างอิงถึงคำอธิบายประกอบคุณสมบัติและตรรกะทั้งหมด (รูปที่ 6) [รุ่นดั้งเดิมมีเงื่อนไขการทดสอบสำหรับสถานะของเอาต์พุตทุกตัว (รูปที่ 31 ในหน้า 78 ของ (Petri, 1966)) เงื่อนไขการทดสอบถูกตัดทิ้งที่นี่เนื่องจากเทียบเท่ากับรุ่นดั้งเดิมสำหรับการทำเครื่องหมายเริ่มต้นที่กำหนด ดังนั้นเอาต์พุตทุกอันจะมีบันทึกย่อแบบลอจิกเดียวสำหรับการคำนวณเครื่องหมายของตำแหน่งเอาต์พุต]
รูปที่ 6 สถานที่ / การเปลี่ยนผ่านสุทธิพร้อมคำอธิบายประกอบ - จากภาพที่ 31 หน้า 78 ของคำแปลภาษาอังกฤษของวิทยานิพนธ์ของ Petri (1966)
วิธีหนึ่งในการลดความท้าทายนี้คือการระบุประเภทของคำอธิบายประกอบที่ใช้ในแบบจำลองและเพื่อกำหนดวัตถุกราฟิกที่มีคำอธิบายประกอบประเภทเหล่านี้ (Petri, 1966) ดังนั้นเมื่อไดอะแกรม Petri Net ประกอบด้วยวัตถุกราฟิกจากคำจำกัดความการตีความวัตถุเหล่านี้ควรรวมคำอธิบายประกอบที่ "มองไม่เห็น" รูปที่ 7 ควรตีความเป็น Standard Petri Net (ดูหมายเหตุประกอบของ Standard Petri Net สำหรับคำจำกัดความ); ดังนั้นคำอธิบายประกอบตรรกะอาจถูกมองข้ามจากแผนภาพ
รูปที่ 7 สถานที่ / การเปลี่ยนแปลงสุทธิ - ตามรูปที่ 31 หน้า 78 ของการแปลภาษาอังกฤษของวิทยานิพนธ์ของ Petri (1966)
อีกวิธีหนึ่งในการลดความท้าทายนี้คือใช้มุมมองฟอร์มของคำอธิบายประกอบเพื่อเติมเต็มหรือเสริมไดอะแกรม (Chionglo, 2016b; 2014) มุมมองอาจแบ่งออกเป็นมุมมองที่เล็กลงและแต่ละมุมมองสามารถแสดงและซ่อน
อ้างอิง
Chionglo, JF (2016a) ตอบกลับไปที่ "วิธีการออกแบบการไหลของสถานะสำหรับเกมตอบสนอง / redux flashcard?" ที่ Stack ล้น มีจำหน่ายที่https://www.academia.edu/34059934/A_Reply_to_How_to_design_a_state_flow_for_a_react_redux_flashcard_game_at_Stack_Overflow
Chionglo, JF (2016b) มุมมองสองรูปแบบของ Petri Net มีจำหน่ายที่http://www.aespen.ca/AEnswers/CAPDissF31P78-form.pdf
Chionglo, JF (2015) การลดจำนวนองค์ประกอบกราฟิกสุทธิในไดอะแกรม Petri Net โดยใช้กราฟิกระดับสูง มีจำหน่ายที่http://www.aespen.ca/AEnswers/WjTpY1429533268
Chionglo, JF (2014) องค์ประกอบสุทธิและคำอธิบายประกอบสำหรับการเขียนโปรแกรมคอมพิวเตอร์: การคำนวณและการโต้ตอบใน PDF มีจำหน่ายที่https://www.academia.edu/26906314/Net_Elements_and_Annotations_for_Computer_Programming_Computations_and_Interactions_in_PDF
ฮัลโลเวย์, LE; Krogh, BH และ Giua, A. (1997) การสำรวจวิธี Petri Net สำหรับระบบเหตุการณ์ไม่ต่อเนื่องแบบควบคุม [รุ่นอิเล็กทรอนิกส์] ระบบไดนามิกเหตุการณ์ไม่ต่อเนื่อง: ทฤษฎีและการประยุกต์ใช้ฉบับ 7. บอสตัน: สำนักพิมพ์ Kluwer Academic, หน้า 151 - 190
Menzies, T. (2002) ปัญหาการประเมินสำหรับภาษาการเขียนโปรแกรมด้วยภาพ ใน SK Chang (Ed) คู่มือวิศวกรรมซอฟต์แวร์และวิศวกรรมความรู้ฉบับที่ 5 2 Emerging Technologies บริษัท World Scientific Publishing Pte จำกัด , หน้า 93 - 101
Noe, JD และ Nutt, GJ (1973) “ มาโคร E-Nets สำหรับการแทนระบบคู่ขนาน”, ธุรกรรม IEEE บนคอมพิวเตอร์, ฉบับที่ C-22, ลำดับ 8, ส.ค. 1973, pp. 718 - 727
Petri, CA (1973) แนวคิดของทฤษฎีเน็ต ในรากฐานทางคณิตศาสตร์ของวิทยาศาสตร์คอมพิวเตอร์: Proc ของ Symposium และ Summer School, High Tatras, 3 - 8 ก.ย. , 1973, หน้า 137 - 146 Inst ของ Acad สโลวัก ของวิทยาศาสตร์, 1973
Petri, CA (1966) การสื่อสารกับ Automota [trans. CF Greene, Jr. ] ภาคผนวก I ถึงรายงานทางเทคนิค RADC-TR-65-377 (เล่มที่ 1) ฐานทัพอากาศ Griffiss, NY: ศูนย์พัฒนาทางอากาศโรม, ฝ่ายวิจัยและเทคโนโลยี, ระบบบัญชาการกองทัพอากาศ, ฐานทัพอากาศ Griffiss ที่ดึง 31 สิงหาคม 2011 จากhttp://www.informatik.uni-hamburg.de/TGI/mitarbeiter/profs/petri/doc/Petri-diss-engl.pdf