Sequence diagram สามารถส ง message แบบไม ม function ได ไหม

หากเราจะอธิบายการทำงานของระบบบางอย่างให้คนอื่นเข้าใจได้ง่าย ๆ คงหนีไม่พ้นการทำ diagram ที่สามารถแสดงให้เห็นถึงกระบวนการของระบบ ขั้นตอนการทำงาน หรือเห็นแต่ละกลุ่มที่มีหน้าที่ในระบบนั้น ๆ

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

sequence diagram และ activity diagram ทั้งสองอย่างนี้เป็นส่วนหนึ่งของ Unified Modeling Language (UML) คือเป็นภาษาภาพที่มีมาตรฐานกลางที่ใช้ในการอธิบายระบบ เพื่อให้เกิดความเข้าใจแก่ผู้ออกแบบกับโปรแกรมเมอร์ หรือฝั่งที่เกี่ยวกับ business ส่วนใหญ่จะถูกใช้ในบริบทเกี่ยวกับการพัฒนาซอฟต์แวร์ แต่ก็สามารถใช้อธิบายระบบต่าง ๆ เพื่อให้คนทำงานทั่วไปเข้าใจได้เช่นกัน

Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
ตัวอย่าง activity diagram (ซ้าย) และ sequence diagram (ขวา)

Activity diagram

เป็น diagram ที่แสดงถึง workflow กิจกรรมของระบบ แสดงขั้นตอนการทำงานหนึ่งไปสู่อีกอันหนึ่ง โดยวิธีการเขียนจะต้องมีจุดเริ่มต้น-จุดสิ้นสุด และมีกิจกรรมต่าง ๆ ที่เกิดขึ้นระหว่างจุดเริ่มต้นกับจุดสิ้นสุด

สัญลักษณ์พื้นฐาน

สัญลักษณ์ชื่อคำอธิบาย

Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Initial State / Start Pointจุดเริ่มต้น
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Activity or Action Stateกิจกรรม
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Object FlowGuardsการไหลของกิจกรรม
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Guardsกรณีมีเงื่อนไข
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Synchronizationกรณีมีการทำกิจกรรมพร้อม ๆ กัน
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Final State / End Pointจุดสิ้นสุด

ตัวอย่าง Activity diagram

Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Activity diagram – การกรอกข้อมูลลงทะเบียนเข้าร่วมโครงการ

ทั้งนี้ activity diagram สามารถแบ่งหมวดหมู่ของกิจกรรมได้ด้วยการเขียนเป็นแบบ Swimlanes ที่จะจัดกิจกรรมแต่ละอันตามหมวดหมู่ หรือผู้ที่รับผิดชอบกิจกรรมนั้น เพื่อให้เห็นภาพของระบบได้ง่ายขึ้น เช่น การบริการลูกค้าของร้านอาหาร จะแบ่งเป็น 3 ส่วน ได้แก่ ลูกค้า พนักงาน พ่อครัว

ตัวอย่าง activity diagram แบบ Swimlanes

Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Activity diagram แบบ Swimlanes – การบริการลูกค้าของร้านอาหาร

Sequence diagram

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

สัญลักษณ์พื้นฐาน

สัญลักษณ์ชื่อคำอธิบาย

Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Actorผู้กระทำต่อระบบ
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Objectอ็อบเจกต์ที่ต้องทำกิจกรรม
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Lifelineเส้นการมีอยู่ของอ็อบเจกต์
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Focus of Control / Activationแสดงถึงจุดเริ่มต้นและจุดสิ้นสุดของช่วงการทำกิจกรรม
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Messageคำสั่ง หรือฟังก์ชันการทำงานที่มีการส่งไป
Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Callback / Self Delegationคำสั่ง หรือฟังก์ชันการทำงานที่เรียกภายในตัวเอง

ตัวอย่าง sequence diagram

Sequence diagram สามารถส ง message แบบไม ม function ได ไหม
Sequence diagram – ระบบการซื้อของออนไลน์ผ่านเว็บไซต์

โดยทั้ง 2 diagram นี้สามารถทำออนไลน์ผ่านเว็บบราวเซอร์ได้เลย ตัวอย่างที่มีให้ใช้งานได้ฟรี เช่น diagrams.net, visual-paradigm online ที่สามารถทำได้ทั้ง activity diagram และ sequence diagram และผู้เขียนขอแนะนำเว็บไซต์ทำ sequence diagram แบบ codebase (ทำ diagram ด้วยการเขียนเป็นโค้ด) ทำให้ไม่ต้องเสียเวลาจัดรูปแบบ ปรับขนาดกล่อง ข้อความต่าง ๆ แค่พิมพ์ให้ถูกลำดับ ถูกไวยากรณ์ของเว็บไซต์ที่เราใช้งาน เช่น SequenceDiagram.org, WebSequenceDiagrams

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

เนื้อหาโดย วริศ หลิ่มโตประเสริฐ ตรวจทานและปรับปรุงโดย อิสระพงศ์ เอกสินชล

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.

"Calling a method" and "sending a message" are simply two terms from two different communities for the same thing.

When Alan Kay came up with the term "Object Orientation", he was heavily inspired by what would later become the ARPANet and then the Internet: independent machines ("objects") with their own private memory ("instance variables") that communicate with each other by sending messages.

So, in the lingo of Smalltalk and its successors, derivatives and cousins (Self, Ruby, Python, ECMAScript/JavaScript, Objective-C, Java, …) objects send messages to other objects and those objects then "respond" to that message however they see fit. The most popular reaction is to invoke a method of the same name (i.e. if you send the message foo to bar, the result will be that the foo method of bar will be invoked), but an object may also forward the message to another object or respond with a pre-calculated value (instance variable), or just blatantly ignore it.

In the lingo of Simula and its family, this is called "calling a method" and the process of deciding what to do in response is called "virtual dispatch. In the C++ family, it is called "calling a virtual function" and "vtable lookup".

But it's all more or less the same.

Personally, I prefer the messaging metaphor, because it highlights encapsulation (when you send a message to someone, you have no idea what he does with the message, the only thing you can observe is the reply), and because it evokes the analogies of handing the message off to someone else etc.

รูปแบบของไดอะแกรม มีกี่กลุ่ม อะไรบ้าง

ส่วนประกอบต่าง ๆ ของระบบ ไดอะแกรมที่ใช้สำหรับการวิเคราะห์ระบบนี้มี 3 ไดอะแกรม คือ Use Case Diagram, Class Diagram และ Sequence Diagram ซึ่งรายละเอียดทั้ง 3 ไดอะแกรม มีดังนี้ 1. Use Case Diagram เป็นไดอะแกรมที่ช่วยให้ผู้พัฒนาทราบถึงความสามารถของ

Sequence Diagram ใช้สำหรับทำอะไร

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

Use Case Diagram ใช้สื่อสารอะไร

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

ข้อใดเป็นประโยชน์ของ Sequence Diagram

ช่วยแสดงรายละเอียดของลำดับขั้นตอนในการทำงานของแต่ละ Use Case ทั้งหมดที่มีอยู่ในระบบ ( Use Case เป็นการวิเคราะห์ระบบในภาพรวม ) ช่วยในการพิจารณาว่า Class ใน Class Diagram ที่สร้างขึ้นมีการทำงาน (Method) ใดขาดหายไป หรือควรเพิ่มเติมเข้าไปอีกหรือไม่