มีวิธีการใช้ UML ที่แตกต่างกัน ฟาวเลอร์มาร์ตินเรียกโหมดเหล่านี้ UMLและระบุที่สี่: UML เป็นหมายเหตุ , UML เป็น Sketch , UML เป็นพิมพ์เขียวและUML เป็นภาษาเขียนโปรแกรม
UML ในฐานะภาษาโปรแกรมไม่เคยถอดออกจริงๆ มีงานบางส่วนในส่วนนี้ภายใต้ชื่อที่แตกต่างกันเช่นModel Driven Architectureหรือ Model Based Software Engineering ในวิธีการนี้คุณจะสร้างแบบจำลองที่มีรายละเอียดสูงของระบบซอฟต์แวร์ของคุณและสร้างรหัสจากแบบจำลองเหล่านั้น อาจมีกรณีการใช้งานบางอย่างที่วิธีการนี้มีประโยชน์ แต่ไม่ใช่สำหรับซอฟต์แวร์ทั่วไปและโดยเฉพาะอย่างยิ่งไม่ใช่นอก บริษัท ขนาดใหญ่ที่สามารถซื้อเครื่องมือที่ให้ความสำคัญกับวิธีการนี้ เป็นกระบวนการที่ใช้เวลานาน - ฉันสามารถพิมพ์รหัสสำหรับชั้นเรียนได้เร็วกว่าที่ฉันสามารถสร้างแบบจำลองกราฟิกทั้งหมดที่จำเป็นในการใช้งาน
UML เป็นพิมพ์เขียวมักจะเป็นตัวบ่งชี้ของ"การออกแบบขนาดใหญ่ขึ้นหน้า"โครงการ ไม่จำเป็นต้องเป็นของแน่นอน แบบจำลองสามารถอธิบายได้อย่างสมบูรณ์สำหรับการเพิ่มเฉพาะเช่นกัน แต่แนวคิดก็คือเวลาที่ใช้ในการสร้างการออกแบบในรูปแบบของโมเดล UML ที่จะมอบให้กับบุคคลอื่นเพื่อเปลี่ยนเป็นรหัส รายละเอียดทั้งหมดถูกสะกดออกมาและการแปลงเป็นรหัสมีแนวโน้มที่จะเป็นกลไกมากขึ้น
UML as Sketch และ UML as Notes นั้นมีความคล้ายคลึงกัน แต่แตกต่างกันไปตามเวลาที่ใช้ การใช้ UML เป็น Sketch หมายความว่าคุณจะร่างการออกแบบโดยใช้สัญลักษณ์ UML แต่ไดอะแกรมมีแนวโน้มที่จะไม่สมบูรณ์ แต่จะมุ่งเน้นไปที่ลักษณะเฉพาะของการออกแบบที่คุณต้องการสื่อสารกับผู้อื่น UML เป็น Notes นั้นคล้ายกัน แต่ตัวแบบถูกสร้างขึ้นหลังจากรหัสเพื่อช่วยในการทำความเข้าใจฐานรหัส
เมื่อคุณกำลังพิจารณาสิ่งนี้ฉันคิดว่าทุกสิ่งข้างต้นเป็นจริงสำหรับสัญกรณ์แบบจำลองใด ๆ คุณสามารถนำไปใช้กับไดอะแกรมความสัมพันธ์เอนทิตี้ไดอะแกรมIDEFสัญกรณ์การสร้างแบบจำลองกระบวนการทางธุรกิจและอื่น ๆ โดยไม่คำนึงถึงสัญกรณ์การสร้างแบบจำลองคุณสามารถเลือกเมื่อคุณใช้มัน (ก่อนเป็นสเปคหลังจากที่เป็นตัวแทนทางเลือก) และรายละเอียดเท่าไหร่ (รายละเอียดเต็มรูปแบบที่สำคัญด้าน)
อีกด้านหนึ่งคือวัฒนธรรมโอเพ่นซอร์ส
บ่อยครั้งที่โครงการโอเพ่นซอร์สเริ่มต้นเพื่อแก้ไขปัญหาที่บุคคล (หรือวันนี้ บริษัท ) กำลังประสบอยู่ หากมีการเปิดตัวโดยบุคคลจำนวนนักพัฒนาคือ 1 ในกรณีนี้ค่าใช้จ่ายในการสื่อสารต่ำมากและไม่จำเป็นต้องสื่อสารเกี่ยวกับข้อกำหนดและการออกแบบเพียงเล็กน้อย ใน บริษัท มีแนวโน้มที่จะเป็นทีมเล็ก ๆ ในตัวอย่างนี้คุณอาจจำเป็นต้องสื่อสารความเป็นไปได้ในการออกแบบและหารือเกี่ยวกับการแลกเปลี่ยน อย่างไรก็ตามเมื่อคุณตัดสินใจออกแบบแล้วคุณต้องบำรุงรักษาโมเดลของคุณเมื่อฐานรหัสของคุณเปลี่ยนไปตามกาลเวลาหรือทิ้งไป ในเปรียวการสร้างแบบจำลองเงื่อนไข"เอกสารอย่างต่อเนื่อง"และรักษา"แหล่งเดียวของข้อมูล"
โดยสรุปแล้วมีแนวคิดว่ารหัสคือการออกแบบและโมเดลนั้นเป็นเพียงมุมมองทางเลือกของการออกแบบ แจ็ครีฟส์สามเขียนบทความเกี่ยวกับรหัสการออกแบบและมีการอภิปรายเกี่ยวกับ C2 วิกิพีเดียเช่นกันถกความคิดที่ว่ารหัสที่มาการออกแบบ , การออกแบบเป็นรหัสที่มาและรหัสแหล่งที่มาและการสร้างแบบจำลอง หากคุณสมัครสมาชิกความเชื่อนี้ (ซึ่งฉันทำ) ดังนั้นซอร์สโค้ดคือความเป็นจริงและไดอะแกรมใด ๆ ที่ควรมีอยู่เพื่อทำความเข้าใจโค้ดและที่สำคัญกว่านั้นเหตุผลอยู่เบื้องหลังว่าทำไมโค้ดถึงเป็นอย่างนั้น
โครงการโอเพนซอร์ซที่ประสบความสำเร็จเช่นโครงการที่คุณพูดถึงมีผู้บริจาคทั่วโลก ผู้มีส่วนร่วมเหล่านี้มีแนวโน้มที่จะมีความสามารถทางเทคนิคในเทคโนโลยีที่ให้พลังงานซอฟต์แวร์และมีแนวโน้มที่จะเป็นผู้ใช้ซอฟต์แวร์ ผู้ให้ข้อมูลคือผู้ที่สามารถอ่านซอร์สโค้ดได้ง่ายเหมือนกับโมเดลและสามารถใช้เครื่องมือ (IDEs และเครื่องมือวิศวกรรมย้อนกลับ) เพื่อทำความเข้าใจโค้ด (รวมถึงการสร้างโมเดลหากพวกเขารู้สึกว่าต้องการ) พวกเขายังสามารถสร้างภาพร่างของการไหลด้วยตัวเอง
ในสี่โหมดที่ Fowler อธิบายฉันไม่คิดว่าคุณจะพบโครงการโอเพนซอร์ซหรือหลาย ๆ โครงการที่ใช้ภาษาจำลองเป็นภาษาโปรแกรมหรือพิมพ์เขียว สิ่งนี้ออกจากบันทึกย่อและร่างเป็นใช้เป็นไปได้สำหรับ UML ผู้ให้ข้อมูลจะถูกสร้างขึ้นโดยผู้มีส่วนร่วมดังนั้นคุณอาจไม่พบพวกเขาอัปโหลดที่ใดก็ได้ ภาพร่างลดลงตามมูลค่าเมื่อโค้ดมีความสมบูรณ์มากขึ้นและมีแนวโน้มว่าจะไม่ได้รับการบำรุงรักษาเนื่องจากจะใช้ความพยายามในส่วนของผู้มีส่วนร่วม
โครงการโอเพนซอร์ซหลายแห่งไม่มีโมเดลให้ใช้เพราะมันไม่ได้เพิ่มคุณค่า อย่างไรก็ตามนั่นไม่ได้หมายความว่าแบบจำลองนั้นไม่ได้ถูกสร้างขึ้นโดยใครบางคนในช่วงต้นโครงการหรือบุคคลนั้นไม่ได้สร้างแบบจำลองของระบบเอง ถึงเวลาแล้วที่จะมีประสิทธิภาพในการรักษาแหล่งข้อมูลการออกแบบหนึ่งแหล่ง: ซอร์สโค้ด
หากคุณต้องการหาคนแลกเปลี่ยนข้อมูลการออกแบบฉันขอแนะนำให้ดูฟอรัมหรือรายการส่งเมลที่ผู้ให้ข้อมูลใช้ บ่อยครั้งที่ฟอรัมและรายการส่งเมลเหล่านี้ใช้เป็นเอกสารประกอบการออกแบบสำหรับโครงการ คุณอาจไม่พบ UML ที่เป็นทางการ แต่คุณอาจพบว่ามีการแสดงกราฟิกบางอย่างของข้อมูลการออกแบบและแบบจำลองที่นั่น คุณยังสามารถปรากฏในห้องสนทนาหรือช่องทางการสื่อสารอื่น ๆ สำหรับโครงการ - ถ้าคุณเห็นคนพูดถึงการตัดสินใจออกแบบพวกเขาอาจกำลังสื่อสารกับแบบกราฟิก แต่พวกเขาอาจจะไม่กลายเป็นส่วนหนึ่งของที่เก็บเพราะพวกเขาไม่ได้มีค่าเมื่อพวกเขาได้ทำหน้าที่ในการสื่อสาร