บทเรียนที่ 4 • Introduction to UML

แนะนำ UML เบื้องต้น สำหรับการวิเคราะห์และออกแบบระบบเชิงวัตถุ

บทเรียนนี้อธิบาย UML: Unified Modeling Language ในฐานะภาษามาตรฐานสำหรับสร้างแบบจำลองระบบ ครอบคลุม Software Modeling, ประเภทของ Model, มุมมองของ UML และภาพรวมแผนภาพสำคัญ เช่น Class, Object, Use Case, Sequence, Collaboration, Component, Deployment, State และ Activity Diagram

UMLภาษาสำหรับแบบจำลอง
ModelsRequirement / Analysis / Design
DiagramsStatic + Dynamic
Lesson Roadmap

จาก Modeling สู่ UML Diagrams

1
Software Modeling
Textual, Mathematical และ Visual Modeling
2
What is UML?
UML คืออะไร และไม่ใช่อะไร
3
UML Views & Types
มุมมองของ UML และชนิดแผนภาพ
4
Core Diagrams
Class, Object, Use Case, Sequence, Activity ฯลฯ
ผู้สอน
ผู้ช่วยศาสตราจารย์ ดร. นัฐพงศ์ ส่งเนียม
xnattapong@gmail.com
Chapter Introduction

บทที่ 4 เรียนเรื่องอะไร

บทเรียนนี้เป็นบทเริ่มต้นของการใช้ UML ในรายวิชาการวิเคราะห์และออกแบบระบบเชิงวัตถุ โดยเชื่อมโยงจากบทก่อนหน้าเรื่อง Object-Oriented, Abstraction และ Unified Process ให้เห็นว่า เมื่อทีมพัฒนาต้องสื่อสารระบบที่ซับซ้อนร่วมกัน จำเป็นต้องมี “ภาษากลาง” สำหรับอธิบายโครงสร้าง พฤติกรรม การติดตั้ง และการทำงานของระบบในรูปแบบที่ทุกฝ่ายเข้าใจตรงกัน

ในสไลด์บทที่ 4 เริ่มจากการทบทวนความรู้เดิม เช่น Abstraction ทั้ง 4 แบบ, SQL, SDLC และแนวคิด Divide & Conquer จากนั้นเข้าสู่ Software Modeling ซึ่งเป็นการสร้างแบบจำลองเพื่อช่วยวิเคราะห์ ออกแบบ และสื่อสารแนวคิดของระบบ แล้วจึงอธิบายว่า UML คืออะไร มีประวัติความเป็นมาอย่างไร มีมุมมองและแผนภาพประเภทใดบ้าง

บทนี้ไม่ใช่เพียงการจำชื่อแผนภาพ UML แต่ต้องเข้าใจว่าแผนภาพแต่ละชนิด “ตอบคำถามอะไร” เช่น Use Case ตอบว่าผู้ใช้ต้องการทำอะไร, Class Diagram ตอบว่าโครงสร้างระบบมีคลาสอะไร, Sequence Diagram ตอบว่าการโต้ตอบเกิดตามลำดับเวลาอย่างไร และ Deployment Diagram ตอบว่าระบบถูกติดตั้งบนโหนดใดบ้าง

วัตถุประสงค์การเรียนรู้
  • อธิบายความหมายของ Modeling และ Software Modeling ได้
  • อธิบายว่า UML คืออะไร และไม่ใช่อะไรได้อย่างถูกต้อง
  • เข้าใจ Model ประเภท Requirement, Analysis และ Design Model
  • จำแนก Structural Diagram และ Behavioral Diagram ได้
  • เลือกใช้ UML Diagram ให้เหมาะกับงานวิเคราะห์และออกแบบระบบได้
Software Modeling

Modeling คืออะไร และทำไมต้องสร้างแบบจำลอง

Modeling คือการสร้างแบบจำลองเพื่อให้เข้าใจปัญหา สื่อสารแนวคิด และออกแบบระบบก่อนพัฒนาเป็นโปรแกรมจริง

ความหมายของ Modeling

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

ในสไลด์อธิบาย Modeling หลายรูปแบบ ได้แก่ Textual Modeling เช่น รหัสเทียม, Mathematics Modeling เช่น สูตรหรือสมการ และ Visual Modeling คือการใช้สัญลักษณ์รูปภาพเพื่อสร้างแบบจำลอง ซึ่ง UML อยู่ในกลุ่ม Visual Modeling

Model vs Prototype: Model ใช้อธิบายงานให้เข้าใจง่าย ส่วน Prototype คือตัวจำลองที่ทำขึ้นก่อนสร้างของจริง
ภาพประกอบ: Software Modeling จาก Requirement สู่ Program
User Requirement Modeling Analysis and Design Model Specification Tools / CASE Tool Manual Coding Program
ภาพนี้เรียบเรียงจากสไลด์ Software Modeling ที่แสดงลำดับ User Requirement → Modeling → Model → Tools/Manual Coding → Program
Textual Modeling

ใช้ข้อความอธิบายตรรกะ เช่น รหัสเทียม Pseudocode, คำอธิบายขั้นตอน หรือ Use Case Description

Mathematics Modeling

ใช้สูตร สมการ หรือสัญลักษณ์ทางคณิตศาสตร์ เช่น ผลรวม ค่าเฉลี่ย หรือโมเดลการคำนวณ

Visual Modeling

ใช้ภาพและสัญลักษณ์ เช่น UML Diagram เพื่อช่วยให้ทีมเข้าใจระบบตรงกัน

What is UML?

UML คืออะไร และไม่ใช่อะไร

UML (Unified Modeling Language) คือภาษาสำหรับสร้างแบบจำลองเชิงวัตถุที่ใช้สัญลักษณ์และแผนภาพมาตรฐาน เพื่อสื่อสารแนวคิดการวิเคราะห์และออกแบบระบบให้ทีมพัฒนา ผู้ใช้ และผู้เกี่ยวข้องเข้าใจตรงกัน UML สามารถใช้ประกอบเอกสารทางเทคนิค เช่น Programmer Manual, Technical Manual และเอกสารออกแบบระบบ

อย่างไรก็ตาม UML ไม่ใช่ภาษาโปรแกรม เช่น Java, C#, VB หรือ Python และ ไม่ใช่กระบวนการพัฒนาระบบ เพราะ UML ไม่บังคับว่าจะต้องใช้ขั้นตอนแบบใดหรือภาษาใดในการเขียนโปรแกรม โครงการหนึ่งอาจใช้ UML ร่วมกับ UP, Agile, Waterfall หรือกระบวนการอื่นได้ตามความเหมาะสม

ข้อควรจำ: UML คือภาษาสำหรับอธิบายแบบจำลอง ไม่ใช่ภาษาเขียนโปรแกรม และไม่ผูกติดกับเครื่องมือหรือแพลตฟอร์มใดตายตัว
ภาพประกอบ: UML เป็นภาษากลางระหว่างผู้เกี่ยวข้อง
UML Modeling Language User SA Programmer Tester ทุกฝ่ายใช้สัญลักษณ์เดียวกัน จึงเข้าใจแบบจำลองระบบตรงกัน
สอดคล้องกับสไลด์ที่กล่าวว่า SA, Programmer, Tester, UI Designer และ User ต้องเข้าใจภาษาและสัญลักษณ์เดียวกัน
Data Type ใน UML

UML ไม่ควรยึดชนิดข้อมูลของภาษาใดภาษาหนึ่ง เช่น real ของ Pascal หรือ float/double ของ Java/C เพราะ UML ควรเป็นกลางต่อภาษาโปรแกรม

Textualข้อความหรือสายอักขระ เช่น ชื่อ ที่อยู่ รหัส
Characterตัวอักษรเดี่ยว
Integralจำนวนเต็ม เช่น อายุ จำนวนสินค้า
Floating-Pointจำนวนทศนิยม เช่น ราคา รายได้ ยอดเงิน
Booleanค่าจริง/เท็จ เช่น TaxPaid
Dateวันที่ เช่น วันเกิด วันที่สั่งซื้อ
Model ในการพัฒนาระบบ
  • Requirement Analysis Model ได้จากการวิเคราะห์ความต้องการ เช่น SRS หรือ Requirement Specification
  • Analysis Model ได้จากการวิเคราะห์หน้าที่ระบบ เช่น Use Case Model และ Class Model
  • Design Model ได้จากการออกแบบระบบ เช่น Class, State, Sequence, Activity และ Deployment Model
เมื่อนำไปใช้จริง ควรเลือก Model ให้เหมาะกับคำถาม เช่น “ระบบต้องทำอะไร” ใช้ Use Case, “ระบบมีโครงสร้างอะไร” ใช้ Class, “ทำงานตามลำดับเวลาอย่างไร” ใช้ Sequence
History of UML

ประวัติความเป็นมาของ UML

UML เกิดจากการรวมแนวคิดเชิงวัตถุหลายสายให้กลายเป็นมาตรฐานเดียว

จาก Method Wars สู่ UML

ในช่วงทศวรรษ 1970-1990 แนวคิดเชิงวัตถุมีวิธีการและสัญลักษณ์หลายแบบ ทำให้เกิดปัญหาการสื่อสารระหว่างทีม เพราะแต่ละวิธีใช้สัญลักษณ์ไม่เหมือนกัน สไลด์เรียกช่วงนี้ว่า Method Wars

ต่อมา Grady Booch, Jim Rumbaugh และ Ivar Jacobson หรือที่เรียกว่า Three Amigos ได้รวมแนวคิดสำคัญ ได้แก่ Booch Method, OMT และ OOSE เข้าด้วยกันที่ Rational Software และเสนอ UML ไปยัง OMG เพื่อให้เป็นมาตรฐานสำหรับสร้างแบบจำลองเชิงวัตถุ

แนวคิดหลัก: UML ถูกสร้างขึ้นเพื่อแก้ปัญหาการสื่อสารและสร้างมาตรฐานร่วมในการอธิบายระบบเชิงวัตถุ
ภาพประกอบ: Timeline ประวัติ UML
1970sObject-orientedmethod 1990sMethod Wars 1994/95Three Amigosรวมแนวคิด 1997UML 1.1มาตรฐาน OMG 2001UML 2.0 Booch + OMT + OOSE → Unified Modeling Language
สรุปจากสไลด์ประวัติ UML ที่กล่าวถึง Method Wars, Three Amigos, Rational Software, OMG และการพัฒนา UML รุ่นต่าง ๆ
UML Views

มุมมองหลักของ UML

UML ใช้อธิบายระบบจากหลายมุมมอง เพื่อให้ผู้เกี่ยวข้องแต่ละกลุ่มมองเห็นสิ่งที่ตนสนใจ

ภาพประกอบ: 5 Views ของ UML
UML Views Use-case View Logical View Component View Deployment View Concurrency View
สรุปจากสไลด์ UML Views: Use-case, Logical, Component, Concurrency และ Deployment View

แต่ละ View ใช้ตอบคำถามอะไร

  • Use-case View มองจากผู้ใช้ภายนอกหรือระบบภายนอก ใช้ Use Case Diagram อธิบายหน้าที่ที่ผู้ใช้คาดหวัง
  • Logical View อธิบายโครงสร้างและพฤติกรรมของระบบ เช่น Class, Object, State, Sequence, Collaboration และ Activity Diagram
  • Component View อธิบายองค์ประกอบย่อยในการ Implement และ Dependency ระหว่าง Component
  • Concurrency View มองกระบวนการ การสื่อสาร และ Synchronization โดยใช้ Dynamic Diagram และ Implementation Diagram
  • Deployment View อธิบายโครงสร้างทางกายภาพของการติดตั้งระบบ เช่น โหนด เครื่อง Server และเครือข่าย
การเลือก View ช่วยให้การออกแบบไม่สับสน เช่น นักวิเคราะห์สนใจ Use Case, Programmer สนใจ Logical/Component, System Engineer สนใจ Deployment
UML Diagrams

ประเภทของ UML Diagram

ในบทเรียนนี้เน้นภาพรวม 9 แผนภาพหลัก โดยแบ่งเป็น Structural Diagrams และ Behavioral Diagrams

Structural Diagrams

ใช้แสดงโครงสร้างแบบค่อนข้างคงที่ของระบบ เช่น คลาส อ็อบเจกต์ องค์ประกอบไฟล์ และโครงสร้างการติดตั้ง

Class Diagram

โครงสร้างคลาสและความสัมพันธ์

Object Diagram

ตัวอย่าง Object ณ ช่วงเวลาใดเวลาหนึ่ง

Component Diagram

องค์ประกอบซอฟต์แวร์และ dependency

Deployment Diagram

โหนด ฮาร์ดแวร์ และการติดตั้ง

Behavioral Diagrams

ใช้แสดงพฤติกรรม การโต้ตอบ ลำดับเวลา สถานะ และกระแสกิจกรรมของระบบ

Use Case Diagram

ฟังก์ชันที่ผู้ใช้ต้องการจากระบบ

Sequence Diagram

ลำดับการส่ง Message ตามเวลา

Collaboration Diagram

การทำงานร่วมกันของ Object

State / Activity

สถานะและกระแสงานของระบบ

หมายเหตุ: สไลด์ระบุ UML 2.0 มี 14 diagrams เช่น Package, Class, Object, Component, Deployment, Use Case, Activity, State Machine, Communication, Sequence, Timing, Interaction Overview และ Profile Diagram แต่ในบทนี้เน้นกลุ่มแผนภาพหลักที่ใช้ในรายวิชา
Class & Object Diagrams

Class Diagram และ Object Diagram

สองแผนภาพนี้เป็นพื้นฐานสำคัญของ UML เพราะใช้แสดงโครงสร้างของระบบเชิงวัตถุ

Class Diagram

Class Diagram ใช้แสดงโครงสร้างของคลาส คุณลักษณะ เมธอด และความสัมพันธ์ระหว่างคลาส เช่น Association, Aggregation, Dependency และ Generalization เป็นแผนภาพที่อยู่ในมุมมอง Logical View และใช้มากทั้งในขั้นวิเคราะห์และออกแบบ

ส่วนประกอบหลักของ Class คือ Class Name, Attributes และ Operations โดยสามารถระบุ Visibility เช่น + public, - private และ # protected รูปแบบทั่วไปของ Attribute คือ visibility attribute_name : type ส่วน Operation คือ visibility operationName(parameter:type) : result type

Person
- TaxIDNo : Textual
- Name : Textual
+ Income : Floating-Point
+ TaxPaid : Boolean
+ calcTax()
+ calcTaxBal() : Floating-Point
ตัวอย่างรูปแบบ Class จากสไลด์บทที่ 4
ภาพประกอบ: Class Diagram แบบย่อและ Multiplicity
อาจารย์ นักเรียน สอน 1..1 1..* คน รถยนต์ เจ้าของ 1..1 0..* Multiplicity ระบุจำนวนความสัมพันธ์ของคลาส
ภาพนี้เรียบเรียงจากสไลด์หลักการเขียน Class Diagram แบบย่อ พร้อมชื่อความสัมพันธ์และ Multiplicity

Object Diagram

Object Diagram ใช้แสดงวัตถุจริงหรือ Instance ของคลาสในช่วงเวลาหนึ่ง เป็นเหมือนภาพ Snapshot ของระบบ โดยแสดงชื่อ Object, ชื่อ Class, ค่าของ Attribute และ Link ระหว่าง Object

ตัวอย่างเช่น Class Diagram อาจเขียนว่า “ลูกค้าเป็นลูกค้าของธนาคาร” ส่วน Object Diagram จะระบุสถานการณ์เฉพาะ เช่น “นัฐพงศ์:ลูกค้า เป็นลูกค้าของ ทหารไทย:ธนาคาร”

ภาพประกอบ: Object Diagram จากสถานการณ์จริง
นัฐพงศ์ : ลูกค้า ชื่อ = "นัฐพงศ์" ประเภท = "บุคคล" กสิกร : ธนาคาร ชื่อธนาคาร = "กสิกร" ถอนเงิน 500 บาท Link
ดัดแปลงจากสไลด์ตัวอย่าง Object Diagram ที่เปรียบเทียบ Class Diagram กับ Object Diagram
Physical View

Component Diagram และ Deployment Diagram

สองแผนภาพนี้ใช้มองระบบในเชิงกายภาพและการติดตั้งจริง

Component Diagram

Component Diagram ใช้อธิบายซอฟต์แวร์หรือองค์ประกอบของระบบ เช่น Source Code, Executable, Database File, DLL, Library และ Report เพื่อให้ผู้พัฒนาต่อเข้าใจว่าโปรแกรมประกอบด้วยไฟล์หรือโมดูลใดบ้าง

สไลด์ยกตัวอย่าง Course.dll, People.dll, Register.exe, Billing.exe และ Billing System แสดงให้เห็นความสัมพันธ์ขององค์ประกอบซอฟต์แวร์ในระดับ Physical View

Deployment Diagram

Deployment Diagram ใช้แสดงสถาปัตยกรรมของระบบในลักษณะ Physical Architecture เช่น เครื่อง Client, Application Server, Database Server, Network, Protocol และ Component ที่ติดตั้งในแต่ละ Node

แผนภาพนี้สำคัญตอนติดตั้งระบบและมักอยู่ใน Technical Manual หรือ Programmer Manual เพื่อให้ผู้ติดตั้งเข้าใจโครงสร้างเครื่องและการเชื่อมต่อ

ภาพประกอบ: Web Application แบบ 3-Tier Deployment
Client Node Browser / Mobile App HTML / CSS / JS Application Server Web Server API Component Business Logic Database Server Database Customer / Product / Order HTTP/HTTPS SQL/ORM
แผนภาพนี้สรุปแนวคิดจากสไลด์ Client-Server, 2-Tier และ 3-Tier Architecture รวมกับ Deployment Diagram
Behavioral Diagrams

Use Case, Sequence, Collaboration, State และ Activity Diagram

แผนภาพกลุ่มนี้ช่วยอธิบายพฤติกรรมของระบบ การโต้ตอบ และลำดับการทำงาน

Use Case Model

Use Case Model ใช้ในขั้นตอนเก็บ Requirement โดยแสดงฟังก์ชันหรือการกระทำที่ระบบต้องรองรับจากมุมมองผู้ใช้ ประกอบด้วย Actor, Use Case, Communicates-Association และ System Boundary

สไลด์ยกตัวอย่างระบบ ATM ที่มี Bank Customer, Cashier, Maintenance Crew และ use case เช่น Deposit Funds, Withdraw Cash, Transfer Funds และ Maintain ATM

ภาพประกอบ: Use Case Diagram ระบบ ATM แบบย่อ
An Automated Teller Machine Bank Customer Maintenance Crew Deposit Funds Withdraw Cash Transfer Funds Maintain ATM
ดัดแปลงจากตัวอย่าง Use Case Diagram ระบบ ATM ในสไลด์บทที่ 4
ภาพประกอบ: Sequence Diagram การสั่งซื้อสินค้าแบบย่อ
User Website Server Database 1 เลือกสินค้า 2 requestProducts() 3 queryProduct() 4 result 5 products 6 แสดงรายการ 7 สั่งซื้อ / ยืนยันคำสั่งซื้อ
สอดคล้องกับสไลด์ Sequence Diagram ที่อธิบายการส่ง Message ระหว่าง Object ตามลำดับเวลา

Sequence และ Collaboration Diagram

Sequence Diagram เน้นลำดับเวลา เหมาะกับ Requirement ที่ต้องบอกว่าอะไรทำก่อน-หลัง เช่น ผู้ใช้เลือกสินค้า เว็บไซต์เรียกข้อมูลจาก Server, Server ดึงข้อมูลจาก Database แล้วส่งผลกลับมาแสดง

Collaboration Diagram หรือใน UML 2 เรียกว่า Communication Diagram เน้นความสัมพันธ์และการร่วมทำงานของ Object มากกว่าการเรียงเวลาแบบชัดเจน ใช้ดูว่า Object ตัวใดติดต่อกับ Object ตัวใด และมี Message อะไรเกิดขึ้นระหว่างกัน

SequenceCollaboration / Communication
เน้นลำดับเวลาเน้นความสัมพันธ์และการสื่อสาร
เหมาะกับขั้นตอนที่ต้องทำก่อน-หลังเหมาะกับการมองภาพรวมการทำงานร่วมกัน
ใช้ Lifeline และ Messageใช้ Object Link และ Message Number

State Transition Diagram

ใช้อธิบายสถานะของ Object หรือระบบ และเหตุการณ์ที่ทำให้เปลี่ยนสถานะ เช่น คำสั่งซื้ออาจมีสถานะ Draft → Confirmed → Paid → Shipped → Completed หรือ Cancelled

เหมาะกับระบบที่มีสถานะชัดเจน เช่น ระบบคำสั่งซื้อ ระบบจองคิว ระบบสมัครสมาชิก หรือระบบควบคุมอุปกรณ์

Activity Diagram

Activity Diagram ใช้แสดงลำดับกระแสกิจกรรมของการทำงาน เช่น ขั้นตอนการลงทะเบียน ขั้นตอนการสั่งพิมพ์เอกสาร หรือขั้นตอนการสั่งซื้อสินค้า ประกอบด้วย Initial State, Action State, Control Flow, Decision, Fork/Join, Swimlane และ Final State

สไลด์ยกตัวอย่าง Operation “print” ที่มีการตรวจสอบ disk full ถ้าพื้นที่เต็มจะแสดงข้อความแจ้งเตือน ถ้ามีพื้นที่ว่างจึงสร้าง postscript file และสั่งพิมพ์

ภาพประกอบ: Activity Diagram การสั่งพิมพ์เอกสารแบบย่อ
PrintFile() เริ่มสั่งพิมพ์ Disk full? [disk full] Show MessageBox "Disk full" [free space] Create PostScript Printer.Print(file)
ดัดแปลงจากตัวอย่าง Activity Diagram ของ Operation “print” ในสไลด์บทที่ 4
Summary

สรุปบทเรียนที่ 4

1) Modeling ช่วยให้เข้าใจและสื่อสารระบบง่ายขึ้น

แบ่งได้เป็น Textual, Mathematics และ Visual Modeling

2) UML คือ Modeling Language

ไม่ใช่ภาษาโปรแกรม และไม่ใช่กระบวนการพัฒนาระบบ

3) UML เกิดจากการรวมแนวคิดเชิงวัตถุ

Booch, OMT และ OOSE ถูกพัฒนาเป็นมาตรฐาน UML

4) UML มีหลายมุมมอง

Use-case, Logical, Component, Concurrency และ Deployment View

5) Diagram แต่ละชนิดตอบคำถามต่างกัน

Class ดูโครงสร้าง, Use Case ดูความต้องการ, Sequence ดูลำดับเวลา, Activity ดูกระแสงาน

แบบฝึกหัดท้ายบทที่ 4

  1. อธิบายความหมายของ Modeling และยกตัวอย่าง Textual, Mathematics และ Visual Modeling อย่างละ 1 ตัวอย่าง
  2. อธิบายว่า UML คืออะไร และเพราะเหตุใด UML จึงไม่ใช่ภาษาโปรแกรม
  3. เปรียบเทียบ Requirement Analysis Model, Analysis Model และ Design Model
  4. จงจำแนก UML Diagram ต่อไปนี้ว่าเป็น Structural หรือ Behavioral: Class, Object, Component, Deployment, Use Case, Sequence, Activity
  5. ออกแบบ Class Diagram แบบย่อของระบบร้านกาแฟ โดยมีคลาสอย่างน้อย 5 คลาสและความสัมพันธ์อย่างน้อย 4 ความสัมพันธ์
  6. เขียน Object Diagram จากสถานการณ์ “สมชายสั่งกาแฟลาเต้ 1 แก้วที่ร้าน CoffeeOne”
  7. เขียน Use Case Diagram แบบย่อของระบบ ATM หรือระบบร้านค้าออนไลน์
  8. อธิบายความแตกต่างระหว่าง Sequence Diagram กับ Collaboration Diagram
  9. เขียน Activity Diagram ขั้นตอนการ Login เข้าระบบ โดยมีเงื่อนไขรหัสผ่านถูก/ผิด
แนวทางการตอบ: อย่าเริ่มจากการจำสัญลักษณ์อย่างเดียว ให้เริ่มจากคำถามว่า “ต้องการอธิบายอะไร” แล้วจึงเลือก Diagram ให้เหมาะสม

เรียนจบบทที่ 4 แล้ว

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