บทแนะนำแผนภาพลำดับ – คู่มือฉบับสมบูรณ์พร้อมตัวอย่าง
เผยแพร่แล้ว: 2017-01-27บทแนะนำแผนภาพลำดับนี้จะช่วยให้คุณเข้าใจแผนภาพลำดับได้ดีขึ้น เพื่ออธิบายทุกสิ่งที่คุณจำเป็นต้องรู้ ตั้งแต่วิธีการวาดแผนภาพลำดับไปจนถึงข้อผิดพลาดทั่วไปที่คุณควรหลีกเลี่ยงเมื่อวาดภาพ
ไดอะแกรมการโต้ตอบมี 3 ประเภท; ไดอะแกรมลำดับ ไดอะแกรมการสื่อสาร และไดอะแกรมเวลา ไดอะแกรมเหล่านี้ใช้เพื่อแสดงการโต้ตอบระหว่างส่วนต่างๆ ภายในระบบ ในบรรดาทั้งสาม ไดอะแกรมลำดับเป็นที่ต้องการของทั้งนักพัฒนาและผู้อ่านเหมือนกันเนื่องจากความเรียบง่าย
ในบทช่วยสอนแผนภาพลำดับนี้ คุณจะได้เรียนรู้เกี่ยวกับ
- แผนภาพลำดับคืออะไร
- ลำดับไดอะแกรมสัญกรณ์
- แนวทางปฏิบัติที่ดีที่สุดสำหรับแผนภาพลำดับ
- วิธีการวาดไดอะแกรมลำดับ
- ลำดับไดอะแกรมข้อผิดพลาดทั่วไป
- เทมเพลตและตัวอย่างไดอะแกรมลำดับ
- ลำดับ ไดอะแกรม การนำเสนอ SlideShare
- ความคิดเห็นเกี่ยวกับ Sequence Diagram Guide
แผนภาพลำดับคืออะไร?
ไดอะแกรมลำดับที่นักพัฒนาใช้กันทั่วไป จำลองการโต้ตอบระหว่างอ็อบเจ็กต์ในกรณีใช้งานครั้งเดียว พวกเขาแสดงให้เห็นว่าส่วนต่างๆ ของระบบโต้ตอบกันเพื่อทำหน้าที่อย่างไร และลำดับที่การโต้ตอบเกิดขึ้นเมื่อกรณีการใช้งานเฉพาะถูกดำเนินการ
กล่าวง่ายๆ ก็คือ แผนภาพลำดับแสดงส่วนต่างๆ ของระบบที่ทำงานเป็น 'ลำดับ' เพื่อทำบางสิ่งให้เสร็จ
แสดงส่วนต่างๆ ของระบบทำงานเป็น 'ลำดับ' เพื่อทำงานให้เสร็จ
ลำดับไดอะแกรมสัญกรณ์
ไดอะแกรมลำดับมีโครงสร้างในลักษณะที่แสดงถึงไทม์ไลน์ที่เริ่มต้นที่ด้านบนและค่อยๆ ลงมาเพื่อทำเครื่องหมายลำดับของการโต้ตอบ แต่ละวัตถุมีคอลัมน์และข้อความที่แลกเปลี่ยนระหว่างกันจะถูกแสดงด้วยลูกศร
ภาพรวมโดยย่อของส่วนต่างๆ ของแผนภาพลำดับ
โน้ตเส้นชีวิต
แผนภาพลำดับประกอบด้วยสัญลักษณ์เส้นชีวิตหลายแบบซึ่งควรจัดวางในแนวนอนที่ด้านบนของไดอะแกรม ไม่ควรมีสัญลักษณ์เส้นชีวิตสองเส้นทับซ้อนกัน พวกมันเป็นตัวแทนของอ็อบเจ็กต์หรือส่วนต่าง ๆ ที่โต้ตอบกันในระบบระหว่างลำดับ
สัญกรณ์เส้นชีวิตที่มีสัญลักษณ์องค์ประกอบนักแสดงจะใช้เมื่อแผนภาพลำดับเฉพาะเป็นเจ้าของโดยกรณีการใช้งาน
เส้นชีวิตที่มีองค์ประกอบเอนทิตีแสดงถึงข้อมูลระบบ ตัวอย่างเช่น ในแอปพลิเคชันการบริการลูกค้า เอนทิตีลูกค้าจะจัดการข้อมูลทั้งหมดที่เกี่ยวข้องกับลูกค้า
เส้นชีวิตที่มีองค์ประกอบขอบเขตบ่งชี้ขอบเขตของระบบ/ องค์ประกอบซอฟต์แวร์ในระบบ ตัวอย่างเช่น หน้าจอส่วนต่อประสานกับผู้ใช้ เกตเวย์ฐานข้อมูล หรือเมนูที่ผู้ใช้โต้ตอบด้วยนั้นเป็นขอบเขต
และเส้นชีวิตที่มีองค์ประกอบการควบคุมบ่งชี้ถึงหน่วยงานหรือผู้จัดการที่ควบคุม จัดระเบียบและกำหนดเวลาการโต้ตอบระหว่างขอบเขตและเอนทิตีและทำหน้าที่เป็นสื่อกลางระหว่างกัน
แถบการเปิดใช้งาน
แถบการเปิดใช้งานเป็นกล่องที่วางอยู่บนเส้นชีวิต ใช้เพื่อระบุว่าวัตถุทำงานอยู่ (หรือสร้างอินสแตนซ์) ระหว่างการโต้ตอบระหว่างสองวัตถุ ความยาวของสี่เหลี่ยมแสดงระยะเวลาของวัตถุที่ทำงานอยู่
ในแผนภาพลำดับ การโต้ตอบระหว่างสองวัตถุเกิดขึ้นเมื่อวัตถุหนึ่งส่งข้อความไปยังอีกวัตถุหนึ่ง การใช้แถบการเปิดใช้งานบนเส้นชีวิตของ Message Caller (วัตถุที่ส่งข้อความ) และตัวรับข้อความ (วัตถุที่รับข้อความ) บ่งชี้ว่าทั้งคู่ทำงานอยู่/ถูกสร้างอินสแตนซ์ระหว่างการแลกเปลี่ยนข้อความ
ลูกศรข้อความ
ลูกศรจากผู้โทรข้อความไปยังตัวรับข้อความระบุข้อความในไดอะแกรมลำดับ ข้อความสามารถไหลไปในทิศทางใดก็ได้ จากซ้ายไปขวา ขวาไปซ้าย หรือกลับไปที่ Message Caller เอง แม้ว่าคุณจะสามารถอธิบายข้อความที่ส่งจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่งบนลูกศรได้ แต่ด้วยหัวลูกศรที่แตกต่างกัน คุณสามารถระบุประเภทของข้อความที่ส่งหรือรับได้
ลูกศรข้อความมาพร้อมกับคำอธิบายซึ่งเรียกว่าลายเซ็นข้อความ รูปแบบของลายเซ็นข้อความนี้อยู่ด้านล่าง ทุกส่วนยกเว้น message_name เป็นทางเลือก
แอตทริบิวต์ = message_name (อาร์กิวเมนต์): return_type
- ข้อความแบบซิงโครนัส
ดังที่แสดงในตัวอย่างแถบการเปิดใช้งาน ข้อความแบบซิงโครนัสถูกใช้เมื่อผู้ส่งรอให้ผู้รับประมวลผลข้อความและส่งคืนก่อนที่จะดำเนินการกับข้อความอื่นต่อไป หัวลูกศรที่ใช้ระบุว่าข้อความประเภทนี้เป็นแบบทึบ เช่นเดียวกับที่แสดงด้านล่าง
- ข้อความแบบอะซิงโครนัส
ข้อความแบบอะซิงโครนัสจะใช้เมื่อผู้เรียกข้อความไม่รอให้ผู้รับประมวลผลข้อความและส่งคืนก่อนที่จะส่งข้อความอื่นไปยังวัตถุอื่นภายในระบบ หัวลูกศรที่ใช้แสดงข้อความประเภทนี้คือ ลูกศรแบบเส้น ดังตัวอย่างด้านล่าง
- ส่งข้อความกลับ
ข้อความส่งคืนใช้เพื่อระบุว่าผู้รับข้อความประมวลผลข้อความเสร็จแล้วและกำลังส่งคืนการควบคุมไปยังผู้โทรข้อความ ข้อความส่งคืนเป็นส่วนสัญกรณ์เสริม สำหรับแถบการเปิดใช้งานที่ถูกทริกเกอร์โดยข้อความแบบซิงโครนัสจะหมายถึงข้อความส่งคืนเสมอ
เคล็ดลับ: คุณสามารถหลีกเลี่ยงไม่ให้ไดอะแกรมของคุณยุ่งเหยิงได้ด้วยการลดการใช้ข้อความที่ส่งกลับให้น้อยที่สุด เนื่องจากสามารถระบุค่าที่ส่งกลับในลูกศรข้อความเริ่มต้นได้
- ข้อความสร้างผู้เข้าร่วม
วัตถุไม่จำเป็นต้องมีชีวิตอยู่ตลอดระยะเวลาของลำดับเหตุการณ์ วัตถุหรือผู้เข้าร่วมสามารถสร้างได้ตามข้อความที่ส่ง
สามารถใช้สัญกรณ์กล่องผู้เข้าร่วมที่หลุดเมื่อคุณต้องการแสดงว่าไม่มีผู้เข้าร่วมรายนั้นจนกว่าจะส่งการเรียกการสร้าง หากผู้เข้าร่วมที่สร้างขึ้นทำบางสิ่งทันทีหลังจากสร้าง คุณควรเพิ่มกล่องเปิดใช้งานด้านล่างกล่องผู้เข้าร่วม
- ข้อความการทำลายผู้เข้าร่วม
ในทำนองเดียวกัน ผู้เข้าร่วมเมื่อไม่ต้องการแล้วสามารถลบออกจากไดอะแกรมลำดับได้เช่นกัน ทำได้โดยการเพิ่ม 'X' ที่ส่วนท้ายของเส้นชีวิตของผู้เข้าร่วมดังกล่าว
- ข้อความสะท้อน
เมื่อวัตถุส่งข้อความถึงตัวเองจะเรียกว่าข้อความสะท้อนกลับ จะแสดงด้วยลูกศรข้อความที่เริ่มต้นและสิ้นสุดที่เส้นชีวิตเดียวกันดังแสดงในตัวอย่างด้านล่าง
ความคิดเห็น
โดยทั่วไป ไดอะแกรม UML อนุญาตให้ใส่คำอธิบายประกอบของความคิดเห็นในไดอะแกรม UML ทุกประเภท ออบเจ็กต์ความคิดเห็นเป็นรูปสี่เหลี่ยมผืนผ้าที่มีมุมพับทับดังที่แสดงด้านล่าง ความคิดเห็นสามารถเชื่อมโยงกับวัตถุที่เกี่ยวข้องด้วยเส้นประ
บันทึก: ดูแนวทางปฏิบัติที่ดีที่สุดสำหรับแผนภาพลำดับเพื่อเรียนรู้เกี่ยวกับชิ้นส่วนของลำดับ
แนวทางปฏิบัติที่ดีที่สุดสำหรับแผนภาพลำดับ
- จัดการการโต้ตอบที่ซับซ้อนด้วยส่วนย่อยของลำดับ
ส่วนย่อยของลำดับจะแสดงเป็นกล่องที่เฟรมส่วนของการโต้ตอบระหว่างวัตถุ (ดังแสดงในตัวอย่างด้านล่าง) ในไดอะแกรมลำดับ
ใช้เพื่อแสดงการโต้ตอบที่ซับซ้อน เช่น โฟลว์และลูปทางเลือกในรูปแบบที่มีโครงสร้างมากขึ้น ที่มุมซ้ายบนของแฟรกเมนต์จะมีโอเปอเรเตอร์อยู่ นี่ – ตัวดำเนินการส่วนย่อย – ระบุว่าเป็นชิ้นส่วนประเภทใด
ทางเลือก
ส่วนการรวมทางเลือกจะใช้เมื่อจำเป็นต้องทำการเลือกระหว่างลำดับข้อความตั้งแต่สองลำดับขึ้นไป มันจำลองตรรกะ "ถ้าเป็นเช่นนั้น"
ส่วนอื่นจะแสดงด้วยสี่เหลี่ยมขนาดใหญ่หรือกรอบ มันถูกระบุโดยการกล่าวถึง 'alt' ในกล่องชื่อของเฟรม (หรือที่รู้จักว่าตัวดำเนินการส่วนย่อย)
เพื่อแสดงทางเลือกตั้งแต่สองทางขึ้นไป สี่เหลี่ยมที่ใหญ่กว่าจะถูกแบ่งออกเป็นสิ่งที่เรียกว่าตัวถูกดำเนินการโต้ตอบโดยใช้เส้นประ ดังที่แสดงในตัวอย่างไดอะแกรมลำดับด้านบน ตัวถูกดำเนินการแต่ละตัวมีตัวป้องกันเพื่อทดสอบ และวางไว้ที่มุมซ้ายบนของตัวถูกดำเนินการ
ตัวเลือก
ส่วนของการรวมตัวเลือกใช้เพื่อระบุลำดับที่จะเกิดขึ้นภายใต้เงื่อนไขบางอย่างเท่านั้น มิฉะนั้น ลำดับจะไม่เกิดขึ้น มันจำลองคำสั่ง "ถ้าแล้ว"
คล้ายกับชิ้นส่วนทางเลือก ส่วนตัวเลือกจะแสดงด้วยกรอบสี่เหลี่ยมที่มี 'opt' วางไว้ในกล่องชื่อ
ไม่เหมือนกับแฟรกเมนต์อื่น แฟรกเมนต์ของออปชันไม่ได้ถูกแบ่งออกเป็นสองตัวถูกดำเนินการตั้งแต่สองตัวขึ้นไป ยามของตัวเลือกถูกวางไว้ที่มุมบนซ้าย
(ค้นหาตัวอย่างไดอะแกรมลำดับที่มีแฟรกเมนต์ตัวเลือกในส่วนเทมเพลตไดอะแกรมลำดับและตัวอย่าง)
ลูป
ส่วนของลูปถูกใช้เพื่อแสดงลำดับที่ซ้ำกัน วางคำว่า 'loop' ในกล่องชื่อและสภาพการ์ดใกล้มุมบนซ้ายของกรอบ
นอกเหนือจากการทดสอบบูลีนแล้ว การ์ดป้องกันในส่วนย่อยของลูปสามารถทดสอบเงื่อนไขพิเศษอื่นๆ ได้อีกสองเงื่อนไข นี่คือการวนซ้ำขั้นต่ำ (เขียนเป็น mint = [the number] และการวนซ้ำสูงสุด (เขียนเป็น maxint = [the number])
หากเป็นตัวป้องกันการวนซ้ำขั้นต่ำ การวนซ้ำต้องดำเนินการไม่น้อยกว่าจำนวนที่กล่าวถึง และหากเป็นการป้องกันการวนซ้ำสูงสุด การวนซ้ำจะต้องไม่ดำเนินการเกินจำนวนที่ระบุ
(ค้นหาตัวอย่างส่วนของลูปด้านล่างในเทมเพลตไดอะแกรมลำดับและส่วนตัวอย่าง)
ส่วนอ้างอิง
คุณสามารถใช้ส่วนอ้างอิงเพื่อจัดการขนาดของไดอะแกรมลำดับขนาดใหญ่ได้ ช่วยให้คุณสามารถนำส่วนหนึ่งของไดอะแกรมลำดับหนึ่งกลับมาใช้ใหม่ในอีกรูปแบบหนึ่ง หรือกล่าวอีกนัยหนึ่ง คุณสามารถอ้างอิงส่วนหนึ่งของไดอะแกรมในไดอะแกรมอื่นโดยใช้ส่วนอ้างอิง
ในการระบุส่วนอ้างอิง คุณต้องพูดถึง 'อ้างอิง' ในกล่องชื่อของเฟรมและชื่อของไดอะแกรมลำดับที่อ้างถึงภายในเฟรม
สำหรับส่วนย่อยของลำดับเพิ่มเติม โปรดดู Beyond the Basics of Sequence Diagrams: Part 1 , Part 2 และ Part 3
- วาดไดอะแกรมลำดับที่เล็กลงซึ่งจับสาระสำคัญของกรณีการใช้งาน
แทนที่จะทำให้ไดอะแกรมลำดับของคุณยุ่งเหยิงด้วยอ็อบเจ็กต์และกลุ่มข้อความจำนวนมากที่จะทำให้ผู้อ่านสับสน ให้วาดไดอะแกรมลำดับที่เล็กกว่าสองสามอันที่อธิบายว่าระบบของคุณทำอะไรได้อย่างเหมาะสม ตรวจสอบให้แน่ใจว่าไดอะแกรมพอดีกับหน้าเดียวและเว้นที่ว่างสำหรับบันทึกย่อด้วย
นอกจากนี้ แทนที่จะวาดไดอะแกรมลำดับเป็นโหล ให้ค้นหาว่าสถานการณ์ใดเป็นเรื่องปกติและมุ่งเน้นไปที่สิ่งนั้น และถ้าโค้ดนี้สื่อความหมายได้และสามารถยืนได้ด้วยตัวของมันเอง ไม่จำเป็นต้องวาดแผนภาพลำดับตั้งแต่แรก
วิธีการวาดไดอะแกรมลำดับ
ไดอะแกรมลำดับแสดงถึงสถานการณ์สมมติหรือลำดับเหตุการณ์ในกรณีใช้ครั้งเดียว ลำดับข้อความของไดอะแกรมลำดับจะขึ้นอยู่กับการบรรยายของกรณีการใช้งานเฉพาะ
จากนั้น ก่อนที่คุณจะเริ่มวาดแผนภาพลำดับหรือตัดสินใจว่าควรรวมการโต้ตอบใดไว้ คุณต้องวาดแผนภาพกรณีการใช้งานและเตรียมคำอธิบายอย่างครอบคลุมเกี่ยวกับสิ่งที่กรณีใช้งานนั้นทำ
จากตัวอย่างแผนภาพกรณีการใช้งานข้างต้นของ 'สร้างบัญชีห้องสมุดออนไลน์ใหม่' เราจะเน้นที่กรณีการใช้งานที่ชื่อว่า 'สร้างบัญชีผู้ใช้ใหม่' เพื่อวาดตัวอย่างแผนภาพลำดับของเรา
ก่อนวาดแผนภาพลำดับ จำเป็นต้องระบุวัตถุหรือตัวดำเนินการที่จะเกี่ยวข้องกับการสร้างบัญชีผู้ใช้ใหม่ สิ่งเหล่านี้จะเป็น;
- บรรณารักษ์
- ระบบจัดการห้องสมุดออนไลน์
- ฐานข้อมูลรับรองผู้ใช้
- ระบบอีเมล์
เมื่อคุณระบุออบเจ็กต์แล้ว การเขียนคำอธิบายโดยละเอียดเกี่ยวกับสิ่งที่กรณีใช้งานทำเป็นสิ่งสำคัญ จากคำอธิบายนี้ คุณจะเข้าใจการโต้ตอบ (ซึ่งควรอยู่ในแผนภาพลำดับ) ที่จะเกิดขึ้นระหว่างอ็อบเจ็กต์ด้านบนได้อย่างง่ายดาย เมื่อดำเนินการกรณีการใช้งานแล้ว
นี่คือขั้นตอนที่เกิดขึ้นในกรณีการใช้งานชื่อ 'สร้างบัญชีผู้ใช้ไลบรารีใหม่'
- บรรณารักษ์ขอระบบสร้างบัญชีห้องสมุดออนไลน์ใหม่
- บรรณารักษ์จะเลือกประเภทบัญชีผู้ใช้ห้องสมุด
- บรรณารักษ์กรอกรายละเอียดผู้ใช้
- รายละเอียดของผู้ใช้จะถูกตรวจสอบโดยใช้ฐานข้อมูลประจำตัวผู้ใช้
- บัญชีผู้ใช้ห้องสมุดใหม่ถูกสร้างขึ้น
- ข้อมูลสรุปของรายละเอียดของบัญชีใหม่จะถูกส่งไปยังผู้ใช้ทางอีเมล
จากแต่ละขั้นตอนเหล่านี้ คุณสามารถระบุข้อความที่ควรแลกเปลี่ยนระหว่างออบเจ็กต์ในไดอะแกรมลำดับได้อย่างง่ายดาย เมื่อชัดเจนแล้ว คุณสามารถเริ่มวาดแผนภาพลำดับได้
แผนภาพลำดับด้านล่างแสดงให้เห็นว่าออบเจ็กต์ในระบบการจัดการห้องสมุดออนไลน์โต้ตอบกันอย่างไรเพื่อทำหน้าที่ 'สร้างบัญชีผู้ใช้ห้องสมุดใหม่'
ลำดับไดอะแกรมข้อผิดพลาดทั่วไป
เมื่อวาดไดอะแกรมลำดับ นักออกแบบมักจะทำผิดพลาดทั่วไปเหล่านี้ โดยหลีกเลี่ยงข้อผิดพลาดเหล่านี้ คุณสามารถรับประกันคุณภาพของไดอะแกรมของคุณ
- เพิ่มรายละเอียดมากเกินไป สิ่งนี้ทำให้ไดอะแกรมรกและทำให้อ่านยาก
- ไดอะแกรมลำดับที่ล้าสมัยและล้าสมัยซึ่งไม่เกี่ยวข้องเมื่อเปรียบเทียบกับอินเทอร์เฟซ สถาปัตยกรรมจริง ฯลฯ ของระบบ อย่าลืมเปลี่ยนหรือแก้ไข
- เว้นช่องว่างระหว่างข้อความกรณีการใช้งานและลูกศรข้อความ ทำให้ทุกคนอ่านไดอะแกรมได้ยาก
- ไม่พิจารณาที่มาของลูกศรข้อความอย่างระมัดระวัง
ดูข้อผิดพลาดทั่วไปเหล่านี้ที่อธิบายโดยละเอียดในคู่มือแผนภาพลำดับ: ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยงเมื่อวาดแผนภาพลำดับ
ตัวอย่างแผนภาพลำดับและแม่แบบ
ต่อไปนี้คือตัวอย่างไดอะแกรมลำดับและเทมเพลตบางส่วนที่วาดโดยใช้ Creately สร้างไดอะแกรมลำดับออนไลน์โดยใช้เครื่องมือออนไลน์ของ Creately คลิกที่เทมเพลตเพื่อเปิดในตัวแก้ไข
แผนภาพลำดับของระบบการสอบออนไลน์
ระบบสอบออนไลน์ – Class Diagram (UML)
ตัวอย่างแผนภาพลำดับของระบบการจัดการโรงเรียน
ตัวอย่างของส่วนรวมตัวเลือก
ตัวอย่างลำดับลูป
ต่อไปนี้คือ เทมเพลตไดอะแกรมลำดับ เพิ่มเติม และตัวอย่าง ที่คุณสามารถแก้ไขได้ทันที
บทแนะนำแผนภาพลำดับ – การนำเสนอ SlideShare
คำติชมเกี่ยวกับการสอนแผนภาพลำดับ
บทแนะนำไดอะแกรมลำดับนี้ครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับไดอะแกรมลำดับและการวาด หากคุณมีข้อเสนอแนะหรือคำถามใดๆ เกี่ยวกับบทแนะนำแผนภาพลำดับ โปรดแสดงความคิดเห็นได้
แบบฝึกหัดแผนภาพเพิ่มเติม
- บทช่วยสอนการสร้างแบบจำลองกระบวนการทางธุรกิจ (คุณลักษณะการอธิบายคู่มือ BPM)
- Ultimate Flowchart Guide (คู่มือ Flowchart ฉบับสมบูรณ์พร้อมตัวอย่าง)
- ใช้ Case Diagram Tutorial (คำแนะนำพร้อมตัวอย่าง)