“ UML เป็นสิ่งที่เลวร้ายที่สุดที่เคยเกิดขึ้นกับ MDD” ทำไม?


17

วิลเลียมคุกในทวีตเขียนว่า:

" UML เป็นสิ่งที่เลวร้ายที่สุดที่เคยเกิดขึ้นกับ MDD ตอนนี้หลายคนโชคดีที่ตระหนักถึงสิ่งนี้ ... "

ฉันต้องการทราบเหตุผลที่อยู่เบื้องหลังการอ้างสิทธิ์นั้น (เห็นได้ชัดว่าฉันไม่ได้อ้างถึงความเห็นส่วนตัวของเขา)

ฉันสังเกตเห็นว่ามีหลายคนที่อยู่ที่นั่นไม่ชอบ UML มากขนาดนั้น นอกจากนี้ยังมีมูลค่าการกล่าวขวัญว่าเขาอยู่ในสถาบันการศึกษาที่ UML เป็นจอกศักดิ์สิทธิ์ของการออกแบบและการสร้างแบบจำลองที่มีประสิทธิภาพ


15
ฉันจะบอกว่าMDDเป็นสิ่งที่แย่ที่สุดที่เคยเกิดขึ้นกับ MDD
Michael Borgwardt

คำตอบ:


39

ฉันเป็นนักวิชาการที่โพสต์ทวีตดั้งเดิม ทวีตไม่ได้มีไว้เพื่อเป็นบทความวิชาการ พวกเขาเป็นโฆษณาและฉันคิดว่าพวกเขาสามารถโต้เถียง นี่คือทวีตติดตามของฉัน:

1) UML ถูกสร้างขึ้นเพื่อออกแบบโมเดล OO มันมีผลกระทบต่อคุณกำลังสร้างแบบจำลองรหัสของระบบไม่ใช่พฤติกรรมของระบบ UML อยู่ในระดับที่ไม่ถูกต้อง

2) ความคิดที่ว่ารูปแบบไดอะแกรม 7 (หรือ 13) ใน UML สามารถครอบคลุมทุกอย่างได้อย่างบ้าคลั่ง สิ่งที่เกี่ยวกับ GUI, wireframes เว็บ, การอนุญาต, ฯลฯ ???

3) UML สนับสนุนแนวคิดที่ว่าโมเดลต้องเป็นแบบกราฟิก ไร้สาระ! โมเดลข้อความและกราฟิกมีประโยชน์และมักจะใช้แทนกันได้

4) UML นั้นใหญ่เกินไปและซับซ้อนเกินไปและในเวลาเดียวกันก็มีข้อ จำกัด มาก ต้นแบบและโปรไฟล์ไม่ได้มีประสิทธิภาพสำหรับส่วนขยายที่ใช้งานได้

โปรดทราบว่าฉันไม่จำเป็นต้องพูดว่า UML ไม่ดี ฉันแค่พูดว่ามันไม่ได้ช่วยเป้าหมายของ "การพัฒนาแบบจำลองที่ขับเคลื่อนด้วย" ซึ่งเป็นสิ่งที่ฉันสนใจฉันไม่เข้าใจความคิดเห็นเกี่ยวกับ "จอกศักดิ์สิทธิ์"


10
+1 สำหรับการค้นหาและตอบคำถามเกี่ยวกับ prog.SE เกี่ยวกับทวีตของคุณเอง!
Warren P

ดังนั้นการพัฒนาแบบจำลองที่ขับเคลื่อนด้วยฉันก็ดูเหมือนจะเกี่ยวกับการมีรูปแบบภาพ และถ้าไม่ใช่ UML แล้วจะเป็นอย่างไร (หมายเหตุฉันไม่เคยชอบ MDD และฉันเกลียด UML แต่ฉันยินดีที่จะให้ MDD-sans-UML ช็อตฉันควรลองทำอย่างไรดี
Warren P

1
@Warren P: คุณไม่ชอบ MDD และ UML อะไร
dan_l

1
ฉันได้ลบคำตอบของฉันเพราะเห็นได้ชัดว่าฉันผิดเกี่ยวกับสิ่งที่คุณหมายถึง แต่ฉันขอยืนยันว่า UML เช่นภาษาใด ๆ เป็นเครื่องมือสื่อสารไม่ใช่เครื่องมือออกแบบ คุณตอบว่า 'ภาษาการเขียนโปรแกรมจำนวนมากมีคำว่า "ภาษา" ในชื่อของพวกเขา แต่นั่นไม่ได้หมายความว่าพวกเขามีไว้สำหรับการสื่อสารเท่านั้นไม่ใช่การดำเนินการ' - ฉันคิดว่าคุณพลาดจุดที่การสื่อสาร IS ติดต่อกับคอมพิวเตอร์ คุณจะไม่ใช้ COBOL เป็นเครื่องมือออกแบบเช่นกัน
pdr

ฉันคิดว่าความคิดเห็น "จอกศักดิ์สิทธิ์" นั้นอ้างอิงถึงความถี่ในการสอน

8

UML นั้นเทียบเท่ากับการเอาไขควงและค้อนมาอัดเข้าด้วยกันและเรียกมันว่า "Universal Fastening Tool" ในทางทฤษฎีมันสามารถนำมาใช้เพื่อเป็นตัวแทนของสิ่งต่าง ๆ ในรายละเอียดมากในทางปฏิบัติมันเป็นเครื่องมือที่มีการบูรณาการที่ไม่ดีซึ่งอ้างว่าเป็นเครื่องมือเดียว


สิ่งที่ตลกก็คือมีอยู่แล้วที่Harborfreight.com/impact-screwdriver-set-with-case-37530.html
Buddhi741

3

ฉันคิดว่ายังมีอีกกรณีที่ MDD เป็นสิ่งที่เลวร้ายที่สุดที่เกิดขึ้นกับ UML (เหตุใดเราจะมี UML2 ที่เรามีอยู่) แต่ไม่สนใจสิ่งนั้น ...

MDD = ตัวขับเคลื่อนโมเดล <การออกแบบ | การพัฒนา> แนวความคิดนี้จะสามารถพัฒนาวิธีการแก้ปัญหาในระดับที่เป็นนามธรรมที่เหมาะสมกับปัญหาของปัญหานั่นคือมันเป็นความพยายามที่จะแสดงวิธีการแก้ปัญหาในไวยากรณ์ที่เป็นธรรมชาติมากที่สุดสำหรับการแสดงการแก้ปัญหาเหล่านั้น โดเมนปัญหานั้นโดดเด่นด้วยแบบจำลองการดำเนินงาน (นั่นคือโดยรุ่นที่สามารถดำเนินการโดยคอมพิวเตอร์) ดังนั้น MDD อาจเป็นวิธีที่น่าสนใจมากแม้ว่าจะมีข้อกำหนดหลักสองข้อ:

  1. หนึ่งจะต้องสามารถที่จะรวบรวมภาษาที่เป็นรูปแบบที่เหมาะสมสำหรับการดำเนินการคอมพิวเตอร์ (รูปแบบจะต้องมีการดำเนินงาน ); และ
  2. ต้องสร้างภาษาการสร้างแบบจำลองสำหรับโดเมนปัญหา

ฉันเข้าใจว่าความพยายามของ UML2 นั้นมีจุดมุ่งหมายเพื่อกล่าวถึงจุดที่ 1 ซึ่งอาจอยู่ภายใต้ความเชื่อที่ว่าประสบการณ์ทางอุตสาหกรรมของ UML นั้นแสดงให้เห็นว่าประเด็นที่ 2 นั้นเป็นที่น่าพอใจสำหรับโดเมนปัญหาจำนวนมาก น่าเสียดายและนี่คือสิ่งที่ฉันคิดว่า William Cook กำลังดำเนินอยู่ UML ไม่พอใจจุดที่ 2 สำหรับทุกที่ที่อยู่ใกล้กับปัญหาที่คิด ฉันไม่ได้พูดจากประสบการณ์ส่วนตัว แต่ฉันคิดว่าประสบการณ์อุตสาหกรรมของการใช้ MDD กับ UML มีผลลัพธ์ทั่วไปสองประการ:

  • ซอร์สโค้ดที่สร้างจาก UML นั้นจะต้องมีการปรับแต่งเพื่อแก้ไขช่องว่างเล็ก ๆ เหล่านั้นระหว่างการออกแบบ UML และข้อกำหนดของโปรแกรม (บังคับให้นักพัฒนาทำงานกับโค้ดที่สร้างขึ้นซึ่งมีมาตรฐานที่แตกต่างกันสำหรับการบำรุงรักษาและลด ); หรือ
  • UML สับสนกับรายละเอียดมากมายที่ลดการใช้งานเป็นภาษาสำหรับการสื่อสารเกี่ยวกับการออกแบบ

    ไม่ว่ากรณีใดสัญญาของ MDD จะไม่ได้ผล UML อาจถูกพิจารณาว่าเป็นสิ่งที่เลวร้ายที่สุดที่เกิดขึ้นกับ MDD เพราะมันได้รับความสนใจจากนักพัฒนาเครื่องมือ MDD ในการยกเว้นรุ่นที่อาจใช้งานได้จริง (แม้ว่าจะเป็นปัญหาซอฟต์แวร์ขนาดเล็ก)


  • -2

    UML นั้นยอดเยี่ยมตราบใดที่มันเป็นเพียงภาษาจำลอง หากคุณพยายามเชื่อมต่อ MDD กับ UML เพื่อรับมุมมองแบบกราฟิกแสดงว่าไม่มีประโยชน์ MDD จะยอดเยี่ยมหากไม่มี UML และ UML ที่ไม่มี MDD

    สมมติว่า UML และ MDD หย่ากันวันนี้เพื่อมีชีวิตที่ดีขึ้นไม่ได้อยู่ด้วยกันอีก :-)


    มันไม่ได้ "ยอดเยี่ยม" ในทุกระดับ ผู้ใช้ภาษาโปรแกรม ADA หายนะ (Booch) สร้างไดอะแกรมแบบเด็ก ๆ และเชื่อมโยงกับวิธีสร้างไดอะแกรมระดับที่รุนแรงกว่าเพื่อสร้าง UML UML กลายเป็นเครื่องมือสร้างรายได้จากผู้จำหน่ายซอฟต์แวร์รายใหญ่ทันที มันน่ากลัว แต่ก็รอดพ้นจากการทิ้งไดอะแกรมชนิดใหม่ (นั่นคือ UML ล่วงหน้า) เช่นลำดับการไหลของข้อมูลเป็นต้นไม่มีอะไรที่ครอบคลุมได้ ไม่มีสกีมาฐานข้อมูลไม่มีไดอะแกรมเลเยอร์มันเต็มไปด้วยช่องว่างและเต็มไปด้วยไดอะแกรมที่ไร้ประโยชน์ในเวลาเดียวกัน
    Rick O'Shea
    โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
    Licensed under cc by-sa 3.0 with attribution required.