สิ่งสำคัญที่เราต้องรู้เกี่ยวกับ UML คืออะไร?


18

ฉันต้องการลายเส้นของการออกแบบและพฤติกรรมของโปรแกรมให้มีความคล่องตัวมากขึ้นและมีภาษาร่วมกับนักพัฒนาอื่น ๆ

ฉันดู UML และตามหลักการแล้วดูเหมือนว่าจะเป็นสิ่งที่ฉันกำลังมองหา แต่ดูเหมือนว่าจะเกินกำลัง ข้อมูลที่ฉันค้นพบทางออนไลน์ดูเหมือนจะมีความป่องๆและวิชาการ

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


1
ฉันชอบชื่อเดิมที่ดีกว่าอย่างน้อยจุดเริ่มต้น: "สิ่งที่มีประโยชน์มากที่สุด 10% ของ UML คืออะไร" มิฉะนั้นแก้ไขดี!
Joey Adams

หากคุณมีเอกสารที่เขียนออกมาแล้วอาจเป็น uml คุณก็ไม่คุ้นเคยกับสิ่งที่พวกเขาตัดสินใจที่จะเรียกเอกสารประเภทของคุณ
Ryathal

คำตอบ:


4

ชอบคำถาม - เหมือนกับที่ฉันถามตัวเอง:

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

นี่คือสิ่งที่ฉันได้พบ:

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

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

มีความแตกต่างเป็นครั้งคราวระหว่างหนังสือสองเล่มเกี่ยวกับไวยากรณ์ที่เป็นของเวอร์ชันมาตรฐาน UML อย่างไรก็ตามสิ่งเหล่านี้เป็นเพียงนาทีและไม่จำเป็นสำหรับการใช้ไดอะแกรม UML ในการสื่อสารแนวคิดการออกแบบ (ตัวอย่างเช่น: ว่า UML 2 อนุญาตการแยกหลายหลากแบบต่อเนื่องหรือไม่เช่นแสดงว่าคุณสมบัติบางอย่างอาจมีวัตถุ X, Y หรือ Z มากกว่าศูนย์, หนึ่ง, หลายหรือมากกว่า X พูดเมื่อชื่อผู้เข้าร่วมควรขีดเส้นใต้ .. )

สำหรับการแนะนำทั้งหมดที่ไม่ใช่ด้านวิชาการและใช้คำน้อย:บล็อกนี้มีบทความเกี่ยวกับส่วนต่างๆของ UML: http://blog.diadraw.com/category/uml/

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


ลิงค์บล็อกที่ดี
Hanno Fietz

8

ผมชอบมาร์ตินฟาวเลอร์ของUML กลั่น สั้นและหวานและเพียงพอสำหรับการอภิปรายในไวท์บอร์ด รับสำเนาสองสามชุดแล้วส่งต่อให้กับทีม


1
+1 สำหรับการกล่าวถึงหนังสือเล่มนี้ฉันลืมไปแล้วในขณะที่เขียนคำตอบ!
Alexander Galkin

2
คุณสามารถเพิ่มประสบการณ์เกี่ยวกับหนังสือของคุณได้อีกเล็กน้อยหรือไม่?

อะไรคือสาเหตุของการลงคะแนนเสียง
kevin cline

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

2
@ kevincline ฉันมักจะลิงค์ไปที่ Amazon เพราะมันจะแปลงลิงค์นั้นเป็น URL ของผู้อ้างอิงสำหรับ Stack Exchange หากมีคนคลิกและซื้อจาก URL นั้น Stack Exchange สามารถทำเงินได้ นอกจากนี้ยังเป็นเรื่องเล็กน้อยโดยมีชื่อหนังสือผู้แต่งและข้อมูล ISBN จาก Amazon เพื่อค้นหาหนังสือในผู้ขายหนังสือเล่มโปรดที่คุณเลือก
Thomas Owens

5

ไดอะแกรมอย่างเดียวไม่ได้มีประโยชน์เสมอไป ตัวอย่างเช่นกรณีการใช้แผนภาพไม่สามารถถ่ายทอดกฎเกณฑ์ทางธุรกิจโดยละเอียด ไดอะแกรมคลาสอาจมีประโยชน์มากเนื่องจากคุณสามารถสร้างรหัสคลาสและ DLLs ได้

ฉันพบว่าไดอะแกรมเหล่านี้มีประโยชน์มากที่สุด:

  • ใช้ Case Diagram
  • คลาสไดอะแกรม
  • แผนภาพกิจกรรม
  • แผนภาพลำดับ

มีทรัพยากรที่มีประโยชน์มากมาย แต่ให้ตรวจสอบสิ่งเหล่านี้:

แก้ไข -1 เพื่อตอบสนองต่อความคิดเห็นของมาร์ค

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


+1 สำหรับชั้น , ลำดับและกิจกรรมแผนภาพ ฉันไม่มั่นใจเลยในการใช้ Case Diagrams นอกเหนือจากที่กล่าวมาเป็นรายงานที่ยอดเยี่ยมเนื่องจากผู้ใช้ดูเหมือนจะชอบภาพ
Sjoerd

@ Joeerd ขอบคุณสำหรับความคิดเห็นของคุณ ตามที่คุณระบุไว้ถูกต้องผู้ใช้จะได้รับการรักโดยใช้เคส นอกจากนี้การใช้ไดอะแกรมกรณีมีหลายค่า พวกเขาอนุญาตให้คุณระบุนักแสดง (ประถมศึกษาและมัธยมศึกษา) และอนุญาตให้คุณค้นพบ "กรณี C-Level Cse" ความสัมพันธ์กับไดอะแกรมกิจกรรมและคลาสไดอะแกรมของคุณคืออะไรสร้างการทำงานร่วมกันในข้อกำหนดของคุณ โปรดจำไว้ว่าไม่ใช่การแทนที่สำหรับกฎทางธุรกิจโดยละเอียดและเอกสารข้อกำหนดที่ครบถ้วน
NoChance

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

@ MarkTrapp ขอบคุณสำหรับความคิดเห็นของคุณและสำหรับการแก้ไข
NoChance

2

หากคุณพอใจเพียง 10%คุณไม่ควรพยายามเรียนรู้จากหนังสือ UML แต่คุณควรอ่านหนังสือที่ดีเกี่ยวกับการวิเคราะห์เชิงวัตถุหรือรูปแบบการออกแบบ - หนังสือเหล่านี้ให้ 10% ที่คุณกำลังมองหา

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

ทำไมฉันถึงแนะนำหน้านี้อย่างแน่นอน (ถามในความคิดเห็น)

มีหลายสาเหตุที่ฉันชอบมากกว่าเหตุผลอื่น ๆ :

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

คุณสามารถเพิ่มเติมเกี่ยวกับประสบการณ์ของคุณด้วยคำแนะนำเหล่านี้ได้หรือไม่? แล้วคนอื่น ๆ ไม่ใช่ช่วยให้คุณเข้าใจ UML บ้าง

1

การอ้างอิงพ็อกเก็ต UML 2.0 จาก O'Reilly นั้นมีรายละเอียดมากกว่านั้นเล็กน้อย แต่อาจเป็นตัวเลือกที่ดีที่สุดเนื่องจากมีขนาดเล็กพอที่จะค้นหาสิ่งที่คุณต้องการได้อย่างรวดเร็ว แต่ยังมีคำอธิบายเมื่อคุณต้องการ และเป็นข้อมูลล่าสุดซึ่งไม่ใช่กรณีของ "แผ่นโกง UML" หรือบัตรอ้างอิงที่ฉันพบในเว็บ - ส่วนใหญ่อธิบาย UML 1.x


คุณสามารถเพิ่มเติมเกี่ยวกับประสบการณ์ของคุณกับหนังสือเล่มนี้ได้ไหม? แล้วถ้าเป็นหนังสือเล่มอื่นไม่ใช่ช่วยให้คุณเข้าใจ UML ได้บ้าง

@ Mark Trapp: ส่วนใหญ่แล้วความจริงที่ว่ามันมีขนาดเล็กดังนั้นคุณสามารถรับของที่จำเป็นทั้งหมดได้อย่างรวดเร็วโดยไม่หลงทางในรายละเอียดและกรณีพิเศษ
Michael Borgwardt

0

มีสามส่วนดังนี้:

  1. รับการอ้างอิง UML อย่างเป็นทางการ

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

  2. ใช้ UML เพื่อทำโมเดล

    เมื่อคุณมีข้อมูลอ้างอิงให้เริ่มใช้มันเพื่อสร้างแบบจำลองระบบหรือระบบที่คุณเริ่มใช้งาน คุณอาจต้องการใช้คลาสไดอะแกรมซีเควนซ์ลำดับและไดอะแกรมสถานะสำหรับสถานการณ์ส่วนใหญ่ หากมีบางสิ่งที่คุณไม่แน่ใจให้ไปที่การอ้างอิงของคุณและค้นหาการใช้งาน "ถูกต้อง" - หากยังไม่ได้ผลให้ลองใช้ Googling หรือถามใน Stack Overflow เช่นเดียวกับการเขียนโปรแกรมการฝึกฝนเป็นกุญแจสำคัญ

  3. ใช้UML บางตัวในโครงการจริง

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

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


0

ฉันจะบอกว่าถ้าคุณรู้ว่า UML แผนภาพทั้งหมดจะให้มุมมองที่แตกต่างกันในใบสมัครของคุณ มีหนังสือหลายเล่ม

หากคุณไม่ทราบ UML วิธีที่ง่ายที่สุดคือสร้างไดอะแกรมคลาส / ลำดับซึ่งย้อนกลับจากรหัสที่มีอยู่เท่านั้น คุณเพียงแค่ต้องย้อนกลับรหัสที่มีอยู่ใน UML และเพิ่มบันทึกย่อของคุณเองในคลาส / ลำดับไดอะแกรม คลาสไดอะแกรมจะให้มุมมองแบบสแตติกของแอ็พพลิเคชันของคุณไดอะแกรมลำดับจะอธิบายวิธีการไหลและดังนั้นลักษณะการทำงานของแอปพลิเคชัน UML Job เสร็จสิ้นแล้วและไม่มีข้อผิดพลาด :)

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