ผมคิดว่าแผนภาพ UML เพียงจะเป็นประโยชน์ถ้าพวกเขาแสดงอะไรบางอย่างที่อยู่ในระดับที่สูงขึ้นของนามธรรมกว่ารหัสของคุณ
การเขียน UML เพียงเพื่อการเขียน UML จะกลายเป็นระบบราชการที่ไม่จำเป็นและทำให้โครงการและรหัสสามารถปรับตัวได้น้อยลงต่อการเปลี่ยนแปลงโดยไม่มีประโยชน์ใด ๆ ทั้งสิ้น
ตัวอย่างเช่นแผนภาพคลาส UML แสดงคลาสทั้งหมดบนแพ็คเกจพร้อมคุณลักษณะและวิธีการทั้งหมด - บางสิ่งที่สามารถสร้างขึ้นอัตโนมัติได้อย่างง่ายดาย - ไม่มีค่าเลย: มันอยู่ในระดับเดียวกับรหัสนามธรรมของคุณ . ยิ่งไปกว่านั้นรหัสจะเป็นแหล่งที่ดีกว่าสำหรับข้อมูลนั้นเพราะมันจะเป็นข้อมูลล่าสุดเสมอและอาจมีการจัดทำเป็นเอกสารและจัดระเบียบในลักษณะที่ง่ายต่อการรู้ว่าวิธีการ / คุณลักษณะ / สิ่งสำคัญกว่ากัน
ในทางกลับกันหากคุณมีแนวคิดเกี่ยวกับระดับที่เป็นนามธรรมของสิ่งที่เป็นนามธรรมสูงกว่าสิ่งที่สามารถแสดงออกได้ในรหัสการทำเอกสารเหล่านั้นในแผนภาพอาจเป็นความคิดที่ดี
ตัวอย่างเช่นแผนภาพแสดงโมดูลนามธรรมระดับสูงกว่าในระบบที่ซับซ้อนด้วยการอ้างอิงและอาจมีคำอธิบายเล็กน้อยเกี่ยวกับความรับผิดชอบของพวกเขาและแพคเกจ / namespace ที่พวกเขาแมปไปในซอร์สโค้ดจะมีประโยชน์มากสำหรับสมาชิกทีมใหม่ ที่จำเป็นต้องได้รับการแนะนำให้รู้จักกับโครงการหรือยังสามารถนำมาใช้ในการพิจารณาว่าควรจะโยนคลาส / ฟังก์ชันการทำงานใหม่ไว้ที่ใด
อีกตัวอย่างของแผนภาพที่มีประโยชน์อาจเป็นแผนภาพลำดับแสดงขั้นตอนระดับสูงที่จะต้องดำเนินการในโปรโตคอลการสื่อสาร บางทีขั้นตอนเหล่านั้นอาจมีนิสัยใจคอและความซับซ้อนเล็กน้อย แต่อาจจะเพียงพอที่จะอธิบายสิ่งเหล่านี้ในโค้ด แผนภาพระดับที่สูงขึ้นสามารถช่วยให้โปรแกรมเมอร์เข้าใจ "ภาพรวม" ของสิ่งต่าง ๆ ได้ง่ายโดยไม่ต้องกังวลเกี่ยวกับความซับซ้อนของการโต้ตอบแต่ละครั้ง
อย่างไรก็ตามนี่เป็นเพียงตัวอย่าง มีหลายกรณีที่ไดอะแกรมอย่างง่ายสามารถช่วยได้มาก เพียงจำไว้ว่าคุณควรทำสิ่งเหล่านี้เฉพาะเมื่อคุณไม่สามารถแสดงบางอย่างในโค้ดได้ หากคุณพบว่าตัวเองใช้ไดอะแกรม UML เพื่ออธิบายซอร์สโค้ดเองให้ทำให้ soruce-code เป็นเอกสารด้วยตนเองแทน
ในที่สุดกฎทั่วไปบางข้อที่ใช้กับรหัสยังสามารถนำไปใช้กับไดอะแกรม: หลีกเลี่ยงการทำซ้ำตัวเองทำให้มันง่ายไม่ต้องกลัวที่จะเปลี่ยนสิ่งต่าง ๆ (เพียงเพราะสิ่งที่บันทึกไว้ในแผนภาพ UML ไม่ได้หมายความว่ามันไม่สามารถ เปลี่ยน) และคิดเสมอว่าใครจะเป็นผู้อ่าน / ดูแลไดอะแกรมเหล่านั้นในอนาคต (อาจเป็นตัวคุณในอนาคต) เมื่อเขียนมัน :)