มาตรฐาน UML กำหนดประเภทไดอะแกรมต่างกันมากกว่าโหลตามที่แสดงในแผนภูมิที่มีประโยชน์นี้:
ที่มา: https://en.wikipedia.org/wiki/File:UML_diagrams_overview.svg
ดูรูปที่ A.5 อนุกรมวิธานของโครงสร้างและแผนภาพพฤติกรรมในสเปค UML 2.5
โปรดทราบว่านี่เป็นตัวอย่างของคลาสไดอะแกรมที่มีความสัมพันธ์แบบย่อยระหว่างชนิดไดอะแกรมและชนิดไดอะแกรมนามธรรมเป็นตัวเอียง ในขณะที่ชนิดไดอะแกรมเหล่านี้เป็นคลาสภายใน UML metamodel ไดอะแกรมคลาสนี้ยังมีประโยชน์ในการแสดงลำดับชั้นโดยไม่มีการเชื่อมต่อกับ OOP
มีกี่ประเภทที่ชัดเจนเพียง แต่นำไปใช้กับ OOP ตัวอย่างเช่นเป็นแผนภาพคลาสหรือแผนภาพวัตถุ แต่ส่วนที่เหลือนั้นใช้ได้อย่างกว้างขวางมากกว่าเพียงแค่ระบบเชิงวัตถุ
State Machine Diagrams - FP ไม่ได้หลีกเลี่ยงสถานะมันทำให้พวกเขาชัดเจน ไดอะแกรมเครื่องรัฐอาจมีประโยชน์ในการอธิบายโฟลว์การควบคุมหรือการเปลี่ยนสถานะต่างๆในโปรแกรม
Activity Diagrams - มีประโยชน์ในกรณีที่คล้ายกันกับ State Machine Diagram แต่ในระดับที่สูงขึ้น สามารถใช้เพื่ออธิบายการไหลของข้อมูลระหว่างระบบย่อยต่างๆหรือเพื่อจำลองกระบวนการทางธุรกิจภายนอก
แผนภาพการโต้ตอบ - จำลองการโต้ตอบระหว่างกระบวนการหลายสถานะ เห็นได้ชัดว่านี่ไม่มีประโยชน์สำหรับการสร้างแบบจำลอง internals ของโปรแกรมการทำงานที่บริสุทธิ์ อย่างไรก็ตาม UML ไม่เพียง แต่เกี่ยวกับการสร้างแบบจำลองโครงสร้างของรหัส แต่ส่วนใหญ่เกี่ยวกับการให้บริการการสร้างแบบจำลองภาษาสากล ด้วยไดอะแกรมการโต้ตอบฉันสามารถใช้ไดอะแกรมการโต้ตอบเพื่อจำลองพฤติกรรมภายนอกระหว่างระบบเช่นระหว่างเบราว์เซอร์และเว็บเซิร์ฟเวอร์ - แม้ว่าจะถูกเขียนโดยใช้เทคนิค FP
ใช้ไดอะแกรมของเคส - การใช้เคสและข้อกำหนดเป็นอิสระจากเทคโนโลยีที่ใช้เพื่อทำให้เป็นจริง OOP หรือ FP ไม่มีความเกี่ยวข้องอย่างแน่นอนที่นี่
แผนผังการปรับใช้ - ประเภทไดอะแกรมนี้ใช้เพื่ออธิบายความสัมพันธ์ระหว่างซอฟต์แวร์ที่รันได้และทรัพยากรฮาร์ดแวร์ ไม่ว่าซอฟต์แวร์นั้นจะถูกเขียนเป็นภาษา FP หรือไม่ก็ตาม
แผนภาพส่วนประกอบ - ภาษาที่ใช้งานได้ส่วนใหญ่มีการสนับสนุนอย่างชัดเจนสำหรับการเขียนโปรแกรมแบบแยกส่วนวันนี้ Component Diagram อธิบายส่วนประกอบ / โมดูลและอินเตอร์เฟสที่เสนอและจำเป็น ทำให้ฉันนึกถึงโมดูล Functor ของ OCaml มากมาย
ไดอะแกรมโปรไฟล์ - อธิบายส่วนขยายของ UML เองและไม่เคยใช้งานจริง
แผนภาพโครงสร้างคอมโพสิต - อธิบายโครงสร้างของคอมโพสิต สามารถใช้เพื่ออธิบายโครงสร้างข้อมูลหรือแม้แต่จุดโต้ตอบของฟังก์ชัน Wikipedia แสดงแผนภาพสำหรับฟังก์ชัน Fibonacci เป็นตัวอย่าง:
ที่มา: https://commons.wikimedia.org/wiki/File:Composite_Struct_Diagram.png
เรียกได้ว่าเป็นตัวเลือกโปรแกรมเมอร์ที่ใช้งานได้แทนที่จะเป็นแผนภาพคลาส แต่ดูเหมือนว่าจะมีการ overengineered อย่างน่ากลัว….
แพ็คเกจไดอะแกรม - แพ็คเกจเทียบเท่ากับเนมสเปซ UML ชนิดไดอะแกรมนี้เป็นส่วนหนึ่งของโครงสร้างพื้นฐานภาษา UML มากกว่าชนิดไดอะแกรมแยกต่างหาก ตัวอย่างเช่นคุณสามารถใช้แพคเกจเพื่อจัดประเภทการใช้ Case Diagram ขนาดใหญ่
ดังที่เราได้เห็นประเภทแผนภาพ UML ต่างๆยังคงมีประโยชน์เมื่อทำการเขียนโปรแกรมการทำงาน
ฉันไม่ค่อยรู้สึกถึงความปรารถนาที่จะใช้ UML เมื่อออกแบบระบบและใช้ UML เป็นหลักในการทำการบ้านที่ได้รับมอบหมายของฉันหรือสื่อสารโครงร่างของสถาปัตยกรรมด้วยแบบร่างอย่างรวดเร็ว แม้แต่ระบบ OOP UML ก็ไม่ได้ให้คุณค่าเพียงพอที่จะใช้งานได้ตลอดเวลา - รหัสจริงบอกได้มากกว่าหนึ่งพันไดอะแกรม ฉันนึกภาพได้ว่าใช้แผนภาพคล้าย UML เพื่ออธิบายการพึ่งพาระหว่างฟังก์ชั่นต่าง ๆ และโครงสร้างข้อมูลในโปรแกรม FP แต่ยังไม่ได้ทำ - สไตล์ส่วนตัวของฉันชอบการผสมผสานของ OOP และ FP ที่ใช้เทคนิค FP ในระดับท้องถิ่น แต่ไม่มีผลกับสถาปัตยกรรมโดยรวม