แผนภาพคลาส UML เพียงพอสำหรับการออกแบบระบบ JavaScript หรือไม่


23

ระบุว่า UML นั้นมุ่งเน้นไปที่แนวทางแบบคลาสสิกมากขึ้นในการวางแนววัตถุมันยังคงใช้งานได้ในวิธีที่เชื่อถือได้ในการออกแบบระบบ JavaScript หรือไม่?

ปัญหาเฉพาะอย่างหนึ่งที่ฉันเห็นได้คือแผนภาพคลาสนั้นอันที่จริงแล้วความคิดเห็นเชิงโครงสร้างของระบบและ JavaScript เป็นตัวขับเคลื่อนพฤติกรรมที่มากขึ้นคุณจะจัดการกับมันอย่างไร

โปรดจำไว้ว่าฉันไม่ได้พูดถึงโดเมนโลกแห่งความจริงที่นี่; มันเป็นแบบจำลองสำหรับการแก้ปัญหาที่ฉันพยายามทำให้สำเร็จ


7
พวกเราหลายคนบอกว่า UML นั้นไม่เพียงพอที่จะออกแบบอะไรจริงๆ ฉันเห็นว่าสิ่งเดียวที่มีคุณค่าในหลักการทั้งหมดของ UML คือแผนภาพลำดับ แผนภาพ UML อื่น ๆ ที่ฉันพยายามเข้าใจได้รับการอธิบายเป็นภาษาอังกฤษได้ดียิ่งขึ้น แต่นั่นเป็นเรื่องส่วนตัวสำหรับสิ่งที่มันเป็น
จิมมี่ฮอฟฟา

1
@JimmyHoffa ฉันเห็นด้วยในระดับมาก โดยเฉพาะอย่างยิ่งกับ IDE ที่ทันสมัยโปรแกรมเมอร์ควรสามารถดูซอร์สโค้ดเชิงวัตถุได้อย่างง่ายดายและรับข้อมูลเดียวกัน (และอื่น ๆ ) ที่ปรากฎในแผนภาพคลาส ฉันสามารถจินตนาการไดอะแกรมของคลาสมีประโยชน์มากขึ้นก่อน IDE สมัยใหม่ด้วยการเน้นไวยากรณ์และโครงร่างที่สร้างขึ้นโดยอัตโนมัติ คลาสไดอะแกรมอาจเหมาะสำหรับการอธิบายโครงสร้างเชิงวัตถุให้กับผู้ที่ไม่มีประสบการณ์การเขียนโปรแกรมหรือในโครงการขนาดใหญ่ที่ไม่มีเวลาเพียงพอสำหรับนักพัฒนาในการอธิบายการออกแบบให้ทุกคนด้วยวาจา
David Kaczynski

1
@JimmyHoffa คุณช่วยแนะนำหนังสือหรือแหล่งข้อมูลที่ดีเกี่ยวกับระบบที่จำลองโดยใช้ไดอะแกรมลำดับโดยเฉพาะหรือไม่? ฉันอ่านการใช้ UML และรูปแบบและให้รูปแบบตัวอย่างที่ดีจริง ๆ โดยใช้ UML ในทางปฏิบัติแทนการอธิบายไดอะแกรมและไวยากรณ์
Songo

@JimmyHoffa: ฉันเห็นด้วยกับคุณเกือบ แต่ไม่ใช่เกี่ยวกับไดอะแกรมลำดับ - เนื่องจากแผนภาพลำดับ IMHO ไม่แสดงสิ่งที่ไม่สามารถแสดงออกได้ดีขึ้นด้วยรหัสหลอก ชนิดไดอะแกรมเท่านั้นที่ใช้งานได้จริงสำหรับฉันคือไดอะแกรมการไหลของข้อมูลและไม่ใช่ส่วนหนึ่งของ UML
Doc Brown

@DocBrown ยุติธรรมพอขอเพียงแค่เห็นว่าการเรียนรู้ UML ควรหลีกเลี่ยงและค่อนข้างอ่านของ Strunk ขาวควรเปลี่ยนมันอาจ :)
จิมมี่ฮอฟฟา

คำตอบ:


18

ดูเหมือนว่าคุณกำลังถามสองสิ่งที่แตกต่างกัน

  • สามารถใช้ UML เพื่อแสดงถึงระบบจาวาสคริปต์ได้หรือไม่?
  • สามารถใช้คลาสไดอะแกรมเพื่ออธิบายระบบจาวาสคริปต์ได้หรือไม่

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

ค่อนข้างเป็นไปได้ว่าระบบจาวาสคริปต์ไม่ได้ใช้การออกแบบเชิงวัตถุ ในกรณีเช่นนี้แผนภาพระดับอาจไม่เหมาะสมตามที่คุณชี้ อย่างไรก็ตามเนื่องจากจาวาสคริปต์รองรับการออกแบบเชิงวัตถุจึงเป็นไปได้ที่แผนภาพระดับจะแสดงระบบโดยใช้จาวาสคริปต์ได้อย่างมีประสิทธิภาพ ขึ้นอยู่กับการใช้งานจาวาสคริปต์จริงๆ


5

คำตอบของคุณถูกซ่อนอยู่ในคำถามของคุณ:

ปัญหาเฉพาะอย่างหนึ่งที่ฉันเห็นได้คือแผนภาพคลาสนั้นอันที่จริงแล้วความคิดเห็นเชิงโครงสร้างของระบบและจาวาสคริปต์นั้นเป็นพฤติกรรมที่ขับเคลื่อนได้มากกว่าคุณจะจัดการกับมันอย่างไร

ดูเทคนิคBDD (การพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม)และเลือกเครื่องมือที่เหมาะกับความต้องการในการออกแบบของคุณ

การอภิปรายที่เกี่ยวข้องที่คุณอาจพบว่ามีประโยชน์ที่จะมอง - วิธีการเขียนเรื่องราว / สถานการณ์ BDD และบทความที่ครอบคลุมมากจากนิตยสาร Code - การพัฒนาพฤติกรรมขับเคลื่อน

ป.ล. : โดยทั่วไปแล้วUML represent general types of behaviorอย่างไรก็ตามมันยังสามารถใช้ในการสร้างแบบจำลองการออกแบบของคุณด้วยหมวดหมู่ที่เลือกไว้อย่างถูกต้อง (เช่นแผนภาพลำดับ)I would reference the Wikipedia and find the right UML diagram category to use.


ดูเหมือนว่าจะเป็นคำนิยามปัญหาหรือแนวทางการจัดการการพัฒนา ฉันกำลังพูดถึงการออกแบบระดับต่ำกว่าใกล้กับโซลูชัน
Julio Rodrigues

4

มีการทำงานเพื่อปรับแอปพลิเคชันเว็บให้เป็น UML ซึ่งเรียกว่าส่วนขยาย WAE และมีหนังสือที่ชื่อว่า Building Web Applications with UML โดย Jim Conallen อธิบายรายละเอียด คุณสามารถดูตัวแปรและฟังก์ชั่นของ JavaScript ในแผนภาพคลาส

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

ไดอะแกรมที่สร้างโดยแพ็คเกจ node.js "wavi"


3

มีรูปแบบพฤติกรรมใน UML ที่คุณสามารถใช้เพื่ออธิบายพฤติกรรมของระบบเช่นแผนภาพลำดับหรือแผนภาพสถานะแผนภูมิ


1

ใช่คุณสามารถใช้ UML สะดุดตาที่สุดแผนภาพลำดับ

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

จากประสบการณ์ของผมในการออกแบบ Javascript ปลายด้านหน้าใน UML ผมได้เขียนกระดาษสีขาวในเรื่อง: การออกแบบทางเทคนิคใน UML สำหรับการใช้งานเชิงมุม


0

ดูเหมือนว่าคุณสามารถใช้ UML สำหรับ JavaScript ได้ แต่จะขึ้นอยู่กับว่าคุณจะเข้าหางานของคุณอย่างไร

โดยเฉพาะJS / UMLสามารถอัตโนมัติเอกสาร UML สำหรับ JSDoc, Dojo, ยูอิ

ฉันเดาว่ามีอะไรมากกว่านั้น แต่ยังไม่เจอสิ่งอื่นใด


คำถามนี้ถามคำถามนี้อย่างไร
ริ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.