(Road Map) คุณลักษณะของระบบงาน เป็นต้น ผังงานเชิงวัตถุเบื้องต้น 1

Download Report

Transcript (Road Map) คุณลักษณะของระบบงาน เป็นต้น ผังงานเชิงวัตถุเบื้องต้น 1

วัตถ ุประสงค์
1.
2.
3.
4.
บอกความหมายและองค์ ประกอบของวัตถุได้
บอกความสั มพันธ์ ที่เกีย่ วข้ องระหว่ างวัตถุได้
บอกหลักการพืน้ ฐานของวิธีการเชิงวัตถุได้
อธิบายผังงานเชิงวัตถุได้
หลักการวิเคราะห์และออกแบบ
1. ผังงานเชิงวัตถุเบือ้ งต้ น
2. หลักการเชิงวัตถุ
3. ผังงานเชิงวัตถุยูเอ็มแอล (UML)
ผังงานเชิงวัตถ ุเบื้องต้น
การวิเคราะห์ และออกแบบระบบงาน
โดยใช้ วธิ ีการ
เชิ ง วั ต ถุ จะมี ค วามแตกต่ า งจากการวิ เ คราะห์ และออกแบบ
ระบบงาน เชิงโครงสร้ าง (Structure System Analysis and
Design) ในหลายแนวทางได้ แก่ ขั้นตอนการปฏิบัติงาน (Road
Map) คุณลักษณะของระบบงาน เป็ นต้ น
ผังงานเชิงวัตถ ุเบื้องต้น
คุณลักษณะของระบบงานมีรูปแบบหลายลักษณะ เช่ น
ต่ อเนื่อง (Sequential), รอคอยปริมาณก่ อนการประมวลผล
(Batch Processing), คู่ขนาน (Parallel) และโต้ ตอบทันที
(Interactive) ระบบงานที่มีลกั ษณะการทางานแบบ รอคอย
และต่ อเนื่อง (Batch – Sequential Processing) จะเหมาะสม
กับแนวทางการวิเคราะห์ และออกแบบระบบงานเชิงโครงสร้ าง
ในขณะที่ระบบงานเชิงวัตถุเหมาะสมกับลักษณะงานทีโ่ ต้ ตอบ
ทันทีและคู่ขนาน (Interactive – Parallel Processing)
ผังงานเชิงวัตถ ุเบื้องต้น
นอกจากนั้น ด้ วยหลักการรวมหมู่ (Encapsulation) และการ
ถ่ ายทอดคุณลักษณะ (Inheritance) ทาให้ การพัฒนาระบบงาน
ขนาดใหญ่ ๆ ดาเนินการได้ สะดวกและรวดเร็วกว่ าวิธีการแบบ
โครงสร้ าง
แนวทางในการปฏิบัตงิ าน (Road Map) ของการวิเคราะห์
และออกแบบระบบงานเชิงโครงสร้ างจะมีข้นั ตอนคร่ าวๆ คือการ
จัดทาผังปริบท (Context Diagram-DFD ระดับ 0)
ผังงานเชิงวัตถ ุเบื้องต้น
การทาผังความเชื่อมโยงข้ อมูล (Entity–Relation Ship Diagram)
การทาผัง DFD ระดับ 1,2,3 การจัดทาโฟล์ ชาร์ ตระบบงาน (System
Flowchart) และการสร้ างผังโครงสร้ าง (Structure Chart)
ส่ วนการวิเคราะห์ และออกแบบระบบงานเชิงโครงสร้ าง จะ
มีข้นั ตอนย่ อยๆ คือ การสร้ างผังปริบท (Context Model Diagram)
การสร้ างผังกลุ่มงาน (Use case Diagram) การจัดสร้ างผังความ
สั มพันธ์ ระหว่ างวัตถุ (Object Association Model) การกาหนด
รายละเอียดวัตถุเชื่อมต่ อและควบคุม (Interface-Control Object)
ผังงานเชิงวัตถ ุเบื้องต้น
การจัดสร้ างผังแสดงพฤติกรรมของวัตถุ (Interaction/Sequence
Diagram) การจัดทาผังรายละเอียดของแต่ ละวัตถุ ( Class
Responsibility Collaboration Card) การจัดทาผังความเชื่อมโยง
วัตถุ (Class Diagram) การจัดกลุ่มวัตถุ (Component Diagram)
และการจัดทาผังแสดงระบบงาน (Deployment Diagram) เป็ นต้ น
ในเนือ้ หาทีจ่ ะกล่ าวต่ อไปนีจ้ ะครอบคลุมหลักการและแนว
ทางของการวิเคราะห์ และออกแบบระบบงานเชิงวัตถุ แสดงขั้นตอน
และการสร้ างผังงานต่ างๆ โดยแสดงเป็ นกรณีศึกษา
ผังงานเชิงวัตถ ุเบื้องต้น
การวิเคราะห์ และออกแบบระบบงานเชิงวัตถุ จะมีลกั ษณะ
ต่ างจากการวิเคราะห์ และออกแบบระบบงานเชิงโครงสร้ าง ตรงที่
ขั้นตอนการวิเคราะห์ และการออกแบบไม่ แปลกแยกชัดเจน เหมือน
วิธีการแบบโครงสร้ าง และในเอกสารตาราต่ างๆ มักจะมีการจาแนก
สองขั้นตอนไว้ ต่างกัน ในทีน่ ีจ้ งึ ขอระบุขอบเขตของสองสิ่ งไว้ ดงั นี้
การวิเคราะห์ ระบบงานเชิงวัตถุ เป็ นเทคนิคที่ใช้ ในการศึกษา
หาวัตถุของระบบงานปัจจุบัน ศึกษาพฤติกรรมการนามาใช้ ใหม่
การค้ นหาวัตถุใหม่ เกีย่ วกับระบบงาน (Application Domain)
ผังงานเชิงวัตถ ุเบื้องต้น
สุ ดท้ ายคือการแสดงภาพความเชื่อมโยงของวัตถุต่างๆ เข้ าด้ วยกัน
การออกแบบระบบงานเชิงวัตถุ จะเป็ นขั้นตอนในการปรับ
ปรุงเพิม่ เติมผังกลุ่มงาน เพือ่ ให้ มีลกั ษณะเป็ นรู ปธรรมมากขึน้
(Interface Control Object) การกาหนดพฤติกรรม (Behavior)
และการติดต่ อกัน (Interaction) และการจัดทาผังงานเชิงวัตถุต่างๆ
ที่พร้ อมต่ อการพัฒนาโปรแกรมหรือกาหนดสถาปัตยกรรมต่ อไป
ผังงานเชิงวัตถ ุเบื้องต้น
การแสดงภาพต่ างๆ ออกมาให้ เป็ นรู ปธรรมมีรูปแบบที่
ยอมรับกัน เพือ่ ใช้ ในการติดต่ อสื่ อสารระหว่ างกลุ่มผู้ใช้ กลุ่มผู้
วิเคราะห์ - ออกแบบ กลุ่มผู้พฒ
ั นาให้ เข้ าใจไปในทิศทางเดียวกัน
จะใช้ เทคนิคการสร้ างผังงานเชิงวัตถุ (Object Modeling) ซึ่งใน
ปัจจุบันเทคนิคการสร้ างผังงานเชิงวัตถุจะนิยมใช้ วธิ ีการรู ปแบบ
และขั้นตอนตามมาตรฐาน UML (Unified Modeling Language)
ซึ่งพัฒนาโดยองค์ กร OMG (Object Management Group)
หลักการเชิงวัตถ ุ
ในหัวข้ อนีจ้ ะกล่ าวถึงนิยามตัวอย่ างทั่วๆไป ที่จาเป็ นต้ อง
ทราบเกีย่ วกับหลักการเชิงวัตถุ ซึ่งหลักการเชิงวัตถุจะมีความ
แตกต่ างจากแนวคิดของโปรแกรมเดิมๆ ทีไ่ ด้ รับการเรียนรู้ มา ใน
วิธีการเชิงวัตถุ โดยภาพรวมๆ จะนาเอาโปรแกรมและแฟ้มข้ อมูล
มาห่ อหุ้มเข้ าด้ วยกัน (Encapsulated) ผู้ทจี่ ะใช้ งานแฟ้มข้ อมูล ซึ่ง
ดูแลโดยวัตถุน้ัน จะต้ องร้ องขอผ่ านคาร้ องขอ (Message) จากนั้น
วัตถุจงึ จะสั่ งการให้ โปรแกรม (Method/Behavior) ภายในวัตถุ
ดาเนินการให้
หลักการเชิงวัตถ ุ
ส่ วนวิธีการอืน่ ๆ จะมีการพิจารณาโปรแกรมและแฟ้ มข้ อมูล
แยกออกจากกันโดยเด็ดขาด
Window
Status line
Help line
Location
Border
Display hand shake()
Display Data()
} ชื่อวัตถุ
} แฟ้ มข้ อมูล
} กลุ่มโปรแกรม
หลักการเชิงวัตถ ุ
วัตถุ (Object)
“สิ่ งทีส่ ามารถมองเห็น จับต้ องสั มผัสหรือรู้ สึกได้ ” แต่ ใน
ด้ านของหลักการเชิงวัตถุ จะเพิม่ เติมความหมายขึน้ คือ “เกีย่ วกับ
การรับทราบพฤติกรรมและข้ อมูลของวัตถุน้ันๆ” ดังนั้นความ
หมายจึงค่ อนไปทางวัตถุในลักษณะทีม่ ีการกระทา (Active) และมี
ข้ อมูลในตัวมันมากกว่ าวัตถุทขี่ าดการกระทา ตัวอย่ างของวัตถุ
ได้ แก่ Employee,Customer,Student ตัวอย่ างของวัตถุเชิงการ
กระทา (Event Object) ได้ แก่ Order, Payment, Registration
หลักการเชิงวัตถ ุ
ตัวแปร (Attribute)
เป็ นสิ่ งทีใ่ ช้ ในการพรรณนาคุณลักษณะของวัตถุหนึ่งๆ เช่ น
วัตถุลูกค้ า (Custom) ประกอบด้ วยตัวแปร CustomerNumber,
CustomerName,HomeProvince,WorkProvince,Gender เป็ นต้ น
ในความหมายของวัตถุลูกค้ า เป็ นกลุ่มของลูกค้าทีม่ ีลกั ษณะเดียวกัน
มารวมกันเป็ นพวกเดียวกัน ในกลุ่มจะประกอบด้ วยหลายๆ คน แต่
ละคนจะเรียก หน่ วยวัตถุ(Instance) เช่ น 123, นาย ก รักดี, นนทบุรี
กทม, ชาย และ 321, นาง ข รักเรียน, ปทุมธานี, กทม, หญิง เป็ นต้ น
หลักการเชิงวัตถ ุ
กระบวนการ (Method/Behavior)
เป็ นการกระทา(Process/Method) ซึ่งวัตถุสามารถกระทา
และเกีย่ วข้ องกับข้ อมูลต่ างๆ ของวัตถุน้ันๆ ตัวอย่ างเช่ น วัตถุประตู
การกระทาของวัตถุน้ันๆ ได้ แก่ Open,Shut,Loch,Unloch เป็ นต้ น
การทีว่ ตั ถุหนึ่งๆ สามารถกระทาต่ อข้ อมูล(แฟ้มข้ อมูล) ของตัววัตถุ
เองได้ นั้นเป็ นที่มาของความหมายคาว่ า การห่ อหุ้มวัตถุ (Object
Encapsulation)
หลักการเชิงวัตถ ุ
กล่ มุ วัตถุ (Class)
เป็ นกลุ่มของวัตถุ(Object) ซึ่งมีคุณลักษณะของ Attribute
และ Method Behavior ร่ วมกัน บางครั้งอาจเขียนว่ าObject Class
การรวมกลุ่มของวัตถุทคี่ ล้ ายกันเข้ าด้ วยกัน มักจะต้ องกาหนดชื่อ
ของกลุ่มออกมาเพือ่ เป็ นตัวแทน (Dummy Object) วัตถุตวั แทน
(Mother Object) นี้ จะรวมคุณลักษณะร่ วมทีว่ ตั ถุลูกๆ ต้ องใช้
(Child Object Or Subtype) ไว้ ในตัวมันจึงดูเสมือนว่ าลูกๆ
หลักการเชิงวัตถ ุ
ได้ รับคุณลักษณะจากแม่ ให้ (Inheritance) คุณลักษณะทีถ่ ่ ายทอด
ให้ ได้ แก่ Attribute และ Method หากมองจาก Child Object ไม่
จาเป็ นต้ องมี Attribute , Method อยู่ในตัวเอง แต่ จะไปขอใช้
Reuse จาก Mother Object หรือ Super Type
หลักการเชิงวัตถ ุ
การสืบทอดคณ
ุ ลักษณะ( Inheritance)
เป็ นเทคนิคในการพยายามรวมกลุ่ม Attribute และ Method
ต่ างๆ ที่ใช้ ร่วมกันระหว่ าง Subtype Object ไปไว้ ใน Super Type
Object วิธีการนีเ้ ป็ นการทาให้ เป็ นรู ปแบบทั่วไป (Generalization)
ในบางครั้ง Subtype บางตัวอาจมี Attribute และ Method หรือ
ทั้งสองอย่ าง ที่เป็ นพิเศษเฉพาะของงาน สิ่ งเหล่ านีจ้ ะเป็ นลักษณะ
พิเศษทีอ่ ยู่กบั เฉพาะวัตถุน้ันๆ สิ่ งนีเ้ รียกว่ า Specialization ซึ่งเป็ น
ลักษณะพิเศษทีไ่ ม่ ได้ รับจากวัตถุแม่
หลักการเชิงวัตถ ุ
ความสัมพันธ์ ระหว่ างวัตถุและคลาส (Object/Class Relationship)
กลุ่ ม ของวั ต ถุ ที่ มี ค วามเกี่ ย วข้ อ งกั น จะแสดงไว้ ใ นผั ง
ความสั มพั น ธ์ ระหว่ างวั ต ถุ ซึ่ งอาจมี ร ะดั บ /น้ า หนั ก ของ
ความสั มพันธ์ กันหลายลักษณะ (Multiplicity)
รู ปแบบ
ความสั ม พั น ธ์ จ ะคล้ า ยคลึ ง กั บ ระดั บ ความสั ม พั น ธ์ ข องData
Entity ในผัง ER Diagram ระดับ ของความสั มพันธ์ มีดงั นี้
Customer Order
Place
Item Ordered
หลักการเชิงวัตถ ุ
หมายถึง วัตถุCustomer Order มีการกาหนดรายการที่จะสั่ งซื้อใน
ใบสั่ งซื้อ (วัตถุ Customer Order) โดยระบุรายการสั่ งซื้อไว้ 0
รายการ หรือ 1 หรือมากกว่ า 1 รายการ เป็ นต้ น
Class Object
ความสั มพันธ์ แบบ : 1 (0nly 0ne)
ความสั มพันธ์ แบบ : 0 หรือ 1 แบบไม่ บังคับ
ความสั มพันธ์ แบบ : 0 หรือ 1 เท่ านั้น
หลักการเชิงวัตถ ุ
1+
1,8
ความสั มพันธ์ แบบ : 1 หรือมากกว่ า
ความสั มพันธ์ แบบขอบเขตค่ าต่าสุ ด , สู งสุ ด
Multiplicity เป็ นการระบุจานวนหน่ วยวัตถุ(Instances Or
Occurrences) ของวัตถุหนึ่งๆ ทีม่ ีตวั หนึ่งหน่ วยวัตถุของวัตถุอนื่ ๆ
ซึ่งมีขนาดความสั มพันธ์ (Degree Of Relationship) ปกติความ
สั มพันธ์ กนั ของวัตถุจะเป็ นแบบสองทิศสองทาง (Bidirection)
หลักการเชิงวัตถ ุ
การร้ องขอบริ การ (Message)
การติดต่ อระหว่ างวัตถุหนึ่งกับอีกวัตถุหนึ่ง หรือมากกว่ า
หนึ่งวัตถุ จะใช้ วธิ ีการส่ งข่ าวสาร เพือ่ ร้ องขอบริการ เช่ น
Order
Customer
Order Number
Order Date
Add Order()
Modify Order()
Display Status()
Delete Order()
หลักการเชิงวัตถ ุ
Customer ร้ องขอให้ Order ทางาน Display status
รายละเอียดของใบส่ งหมายเลข 9681 โดยวัตถุ Order จะทา
การดึงข้ อมูลต่ างๆ ซึ่งวัตถุ Order ดูแลอยู่มาประมวลผลส่ งคืน
ให้ วตั ถุ Customer ต่ อไป ในบางครั้งอาจไม่ ได้ ร้องขอบริการ แต่
จะร้ องขอให้ วตั ถุทาเรื่องหนึ่งๆ (Action) เช่ น วัตถุประตูถูกร้ อง
ขอให้ กระทา Close( ) , Open( ) เป็ นต้ น
หลักการเชิงวัตถ ุ
กระบวนการแปลกแยก (Polymorphism)
เป็ นพฤติกรรมทีม่ ีชื่อเดียวกันปรากฏอยู่ในต่ างวิตก และมี
การกระทาในปลีกย่ อยทีแ่ ตกต่ างกันไป พฤติกรรมนีอ้ าจจะได้ รับ
การถ่ ายทอดมาจากวัตถุแม่ (Super Type Object) แล้ ววัตถุลูกแต่
ละงาน จะมีการกระทาทีแ่ ตกต่ างจากกัน โดยวัตถุแม่ จะอธิบายหรือ
กาหนดคุณลักษณะพฤติกรรมไว้ คร่ าวๆ (Abstract) ส่ วนวัตถุลูกจะ
ทาการให้ รายละเอียดที่เฉพาะลงไปเปลีย่ นแปลงชัดเจน
(Overside)จากทีก่ าหนดไว้ ในวัตถุแม่
หลักการเชิงวัตถ ุ
ตัวอย่ างเช่ น วัตถุแม่ ประตู ประกอบด้ วยวัตถุลูก เช่ น ประตูแบบ
บานเปิ ด ประตูแบบเลือ่ น วัตถุแม่ จะมีพฤติกรรมเปิ ด ปิ ด และการ
คล้ องกุญแจ (Lock) ซึ่งวัตถุลูกทั้งสองจะได้ พฤติกรรมนีไ้ ปหมด
แต่ วตั ถุลูกแต่ ละตัวจะมีการกระทาทีแ่ ตกต่ างกัน เช่ น เปิ ดด้ วยการ
ดันประตูออก เปิ ดด้ วยการาเลือ่ นประตูไปด้ านข้ าง เป็ นต้ น
ตัวอย่ างต่ อมา ได้ แก่ วัตถุแม่ ภาพเรขาคณิต(Polygon) มีวตั ถุลูก
ได้ แก่ สามเหลีย่ ม สี่ เหลีย่ มจัตุรัส สี่ เหลีย่ มผืนผ้ า
หลักการเชิงวัตถ ุ
ผังวัตถุแสดงความเป็ นประเภทหนึ่ง (Association)
กลุ่มวัตถุบางกลุ่มอาจมีลกั ษณะบางอย่ างรวมกับวัตถุแม่ ได้ ดงั
ตัวทีก่ ล่ าวไว้ แล้ ว แต่ วตั ถุแม่ อาจจะมีวตั ถุลูกนีห้ รือไม่ กไ็ ด้ วัตถุลูก
เพียงเป็ นวัตถุประเภทหนึ่งๆ ของวัตถุแม่ เท่ านั้น
ตัวอย่ าง นักศึกษา เจ้ าหน้ าที่ อาจารย์ เป็ นบุคลากรประเภท
หนึ่ง ในมหาวิทยาลัยพฤติกรรม Walb, Eat ในวัตถุแม่ จะถ่ ายทอด
ให้ วตั ถุลูกทุกตัว ดังนั้น Walb,Eat จึงเป็ นลักษณะทัว่ ไปถ่ ายทอด
(Generalization)
หลักการเชิงวัตถ ุ
ส่ วนวัตถุลูก นักศึกษามีกจิ กรรมพิเศษ(Specialization) คือ Learn
แตกต่ างพิเศษจากแม่ และวัตถุอนื่ ๆ
บุคลากรใน
มหาวิทยาลัย
Super Type
Walk , Eat
นักศึกษา
เจ้ าหน้ าที่
อาจารย์
Learn
Service
Teach
หลักการเชิงวัตถ ุ
ผังวัตถุแสดงความเป็ นส่ วนหนึ่งของวัตถุแม่ (Aggregation)
กลุ่มวัตถุบางกลุ่ม อาจเป็ นวัตถุทเี่ ป็ นส่ วนหนึ่งของวัตถุแม่
การถ่ ายทอดคุณลักษณะจากแม่ มาสู่ ลูก ก็กระทาในลักษณะปกติ
Personal
Computer
1+
CPU
Monitor
Keyboard
Printer
ผังงานเชิงวัตถ ุ UML
ในหัวข้ อนีจ้ ะกล่ าวถึงผังงานเชิงวัตถุต่าง ๆ ทีใ่ ช้ ในการแสดง
รายละเอียดต่ าง ๆ เกีย่ วกับวัตถุ เพือ่ แสดงรายละเอียดในมุมต่ าง ๆ
ของวัตถุและความเกีย่ วข้ องกันและกัน ซึ่งจะช่ วยให้ การศึกษาระบบ
งานปัจจุบันและการออกแบบระบบงานใหม่ มีแผนภาพประกอบที่
ชัดเจนสื่ อความเข้ าใจ (Communication) ระหว่ างผู้วเิ คราะห์ และ
ออกแบบระบบงานกับผู้ใช้ (User) ได้ ดี ผังงานต่ างๆ มีการพัฒนาการ
มามากมายผู้พฒ
ั นาหลาย ๆ คน ต่ างมีแนวคิดและสร้ างสรรค์ เทคนิค
ผังงานออกมาหลายวิธีการ แต่ วธิ ีการทีเ่ ป็ นที่ยอมรับมากทีส่ ุ ด
ผังงานเชิงวัตถ ุ UML
ในปัจจุบันคือ วิธีการยูเอ็มแอล (Unified Modeling Language)
ซึ่งจะได้ อธิบายเทคนิคผังงานดังต่ อไปนี้
แผนภาพปริ บท (Context model diagram)
เป็ นผังที่ใช้ แสดงภาพถึงระบบงานโดยภาพรวมว่ าเกี่ยวข้ อง
กับเรื่องใดและมีผู้เกีย่ วข้ องกับระบบงานเป็ นใครบ้ าง ซึ่งผู้เกีย่ วข้ อง
อาจเป็ นคน ระบบงาน ฯลฯ ซึ่งแต่ ละคนมีกจิ กรรมหลักๆใดต่ อ
ระบบงาน ผู้เกีย่ วข้ อง อาจเป็ นผู้ให้ ข้อมูลหรือเป็ นผู้ใช้ ข้อมูลกับ
ระบบงาน
ผังงานเชิงวัตถ ุ UML
ผังงานนีจ้ ะแสดงภาพในเชิงมหภาพ เพือ่ ให้ เห็นกิจกรรมหลัก ๆ
ของทั้งระบบงาน ผู้วเิ คราะห์ ระบบ จะใช้ ในการทวนว่ ามี
กิจกรรมต่ างๆ ครบถ้ วนกับความต้ องการของผู้ใช้ หรือไม่
Actor l
Information
Actor i
Using activity
System
Actorm
Initiate
Activity
Actor j
ผังงานเชิงวัตถ ุ UML
ผังกิจกรรม (Use Case Diagram)
เป็ นผังงานทีใ่ ช้ ในการระบุกจิ กรรม (event) ต่ าง ๆ ที่เกิดขึน้
ในระบบงาน ใคร (Action) คนใดเป็ นก่ อให้ เกิดหรือให้ ข้อมูล
(initiate) และระบบงานทาการตอบสนอง(Response) ด้ วยวิธีการ
ใด ในผังกิจกรรมจะมีสัญลักษณ์ หลัก ๆ สองสิ่ ง คือ
ผู้กระทา (Actor) เป็ นผู้ร้องขอต่ อระบบในการแลกเปลีย่ น
ข้ อมูลอาจจะเป็ นคนหรือระบบงานภายนอกอืน่ ๆ สั ญลักษณ์ ที่ใช้ คอื
ผังงานเชิงวัตถ ุ UML
Actor
กิจกรรม (Use Case)
เป็ นกลุ่มของกิจกรรมย่ อยๆ ทีม่ าประกอบร่ วมกันทางาน
เป็ นขั้นตอน ซึ่งอาจเป็ นอัตโนมัติหรือด้ วยมือ(Manual) เพือ่ ให้
เสร็จภารกิจงานหนึ่งๆ สั ญลักษณ์ ที่ใช้ คอื
Use Case
ผังงานเชิงวัตถ ุ UML
การจัดทาผังกิจกรรม เป็ นสิ่ งทีผ่ ้ ูวเิ คราห์ ระบบงานต้ อง
กระทาเนื่องจาก
1. ใช้ ในการสื่ อสารรายละเอียด ภาพรวมคร่ าว ๆ ของระบบงาน
2. ช่ วยในการตรวจทานความต้ องการของระบบงาน
3. ช่ วยในการค้ นหาวัตถุ และความสั มพันธ์ ของวัตถุ
4. ใช้ ในการทดสอบระบบงาน (Use Test)
5. ใช้ เป็ นคู่มือประกอบระบบงาน
ผังงานเชิงวัตถ ุ UML
Actor name
Communication
Association name
Use Case name
โดยปกติแล้ ว กลุ่มของกิจกรรมในแต่ ละ Use case จะเป็ น
กิจกรรมย่ อยที่เกีย่ วข้ องกัน เพือ่ ทางานหนึ่งๆ ให้ สาเร็จและกลุ่ม
งานนีม้ ักจะกระทาในเวลาทีต่ ่ อเนื่องกัน เมื่อมีเหตุการณ์ หนึ่ง ๆ มา
กระตุ้น(Trigger) เหตุการณ์ นีเ้ รียก Temporal Event หากกลุ่ม
ของกิจกรรมทีม่ ารวมกันเป็ นหนึ่ง Use case มีขนาดใหญ่ หรือมี
หลายกิจกรรมย่ อยๆ และเป็ นกิจกรรมที่เฉพาะเจาะจงกับUse case
ผังงานเชิงวัตถ ุ UML
อาจจะใช้ วธิ ีการแตก Use case ออกเป็ น Use case ย่ อยๆ
เรียกว่ า Extended Use Case เช่ น
Submit Promotion extend
Member
Generate WareHouse
Piching Ticket
extend
Calculate Subtotal
& sales tax
ผังงานเชิงวัตถ ุ UML
บ่ อยครั้งทีพ่ บว่ ามีกลุ่มของกิจกรรมบางพวกทีอ่ าจถูกเรียก
ใช้ งานบ่ อยโดยต่ าง Use Case ดังนั้นกลุ่มกิจกรรมนีน้ ักวิเคราะห์
ระบบจะพยายามแยกออกมาเป็ นกลุ่มๆ หนึ่งเรียกว่ า Abstract Use
Case ตัวอย่ างเช่ น
use
Submit Promotion
Order
Abstract use case
Generate Error
Report
use
Submit Regular
Order
ผังงานเชิงวัตถ ุ UML
ผังงานวัตถุ (Class Diagram)
เป็ นผังทีแ่ สดงให้ เป็ นว่ าในระบบงานมีวตั ถุประเภทใดบ้ าง
และวัตถุมีความสั มพันธ์ เกีย่ วข้ องกันอย่ างไร เช่ น การเรียกใช้
บริการ การเรียกใช้ การกระทา การสื บทอดคุณลักษณะ/พฤติกรรม
พฤติกรรมแปลกแยก เป็ นต้ น การได้ มาซึ่งผังงานวัตถุกระทาได้
หลายวิธี และไม่ สามารถดาเนินการจัดทาผังงานวัตถุได้ เบ็ดเสร็จ
ในครั้งคราวเดียวไว้ อาจต้ องอาศัยผังงานต่ างๆ รวบรวมราย
ละเอียดต่ างๆ
ผังงานเชิงวัตถ ุ UML
มาบรรจงบรรจุลงไปในแต่ ละวัตถุ จนกระทัง่ ครบถ้ วนสมบูรณ์
วัตถุหนึ่ง ๆ อาจจะเกีย่ วข้ องกับวัตถุอนื่ ๆ มากน้ อยต่ างกัน ความ
เกีย่ วข้ องทีก่ ระจายอยู่ตามจุดต่ าง ๆ ต้ องนามาผนวกรวมกันเป็ น
ตัวแปร และพฤติกรรมในวัตถุ ต่ าง ๆ
วัตถุต่าง ๆ ในผังงานวัตถุ จะประกอบด้ วยวัตถุหลัก ๆ สาม
ประเภทด้ วยกัน คือ
1. Entity Object เป็ นวัตถุทไี่ ด้ กล่ าวถึงมาตั้งแต่ ต้น ในวัตถุจะมี
ข้ อมูลข่ าวสาร และการกระทาอยู่ในตัวมันเอง
ผังงานเชิงวัตถ ุ UML
อาจเรียกชื่ออีกอย่ างว่ า Database Engine คุณลักษณะของมันจะมี
กิจกรรม(Active) เมื่อถูกเรียกใช้ งานเท่ านั้น คุณลักษณะนีเ้ รียกว่ า
Persistent สั ญลักษณ์ ที่ใช้ คอื วงกลม
Entity Object Name
ผังงานเชิงวัตถ ุ UML
2. Interface Object เป็ นวัตถุทใี่ ช้ ในการรับข้ อมูลและหรือแสดง
ข้ อมูลระหว่ าง Actor (user) กับระบบงาน อาจเป็ นหน้ าจอ ATM
หรือเครื่องพิมพ์ เครื่องอ่ านการ์ ด เป็ นต้ น หากเป็ นหน้ าจอ Object
นี้ จะปรากฏอยู่เป็ นเวลาหนึ่งๆ จนเลือกเมนู หรือ เปลีย่ นแปลง
รายการข้ อมูล สั ญลักษณ์ ทใี่ ช้ คอื
หรือ
Interface Object Name
ผังงานเชิงวัตถ ุ UML
3. Control Object เป็ นวัตถุทชี่ ่ วยในการจัดการ สั่ งการให้ วตั ถุ
ต่ างๆ ทางานภายใต้ Use Case หนึ่งๆ จนสาเร็จเป็ นวัตถุควบคุม
สั่ งการ (Control) ตัวอย่ าง เช่ น user สั่ งการให้ อ่านข้ อมูลลูกค้ า
ตามรหัสลูกค้ าทีก่ าหนด จากแฟ้มข้ อมูลลูกค้ า ผ่ านหน้ าจอ วัตถุ
ทีห่ น้ าจอนีจ้ ะส่ งข้ อมูลต่ างๆ ให้ วตั ถุควบคุมการอ่ านข้ อมูลจะสั่ ง
การ (โดย message) ให้ วตั ถุข้อมูลลูกค้ า (Data Entity Object)
ค้ นหาข้ อมูล และดึงข้ อมูลลูกค้ าตามรหัสทีก่ าหนดออกมาข้ อมูล
จะถูกส่ งผ่ านวัตถุควบคุมลาเลียงไปให้ วตั ถุหน้ าจอ
ผังงานเชิงวัตถ ุ UML
แสดงผลต่ อไปสั ญลักษณ์ ที่ใช้ คอื
Control Object name
การออกแบบระบบงานจะมีการออกแบบวัตถุ Interface
และวัตถุควบคุม (Main Program Control) ไปด้ วย แต่ เนื่องจาก
หากรวมวัตถุท้งั หมด ทุกประเภทวัตถุมาแสดงจะกินพืน้ ที่มาก
ดังนั้นจึงนิยมแสดงผังงานวัตถุเฉพาะ Data Entity Object
ผังงานเชิงวัตถ ุ UML
ผังงานเกีย่ วเนื่อง (Sequence Diagram)
ผังงานเกีย่ วเนื่อง ใช้ ในการแสดงภาพการกระทาย่ อย ๆ
ต่ างๆ เป็ นขั้นตอนตั้งแต่ ต้นเรียงลาดับไปเป็ นขั้นตอนของหนึ่งผัง
กิจกรรม(Use Case) โดยมีการกาหนดเป็ นช่ วงเวลาซึ่งแต่ ละช่ วง
เวลาจะมีกจิ กรรมย่ อยๆ หรือ method ในแต่ ละ Object ทางาน
ร่ วมกัน
ประโยชน์ ของผังงานเกีย่ วเนื่องจะช่ วยในการแสดง
Scenario ของพฤติกรรมย่ อยๆ ทั้งหมดของแต่ ละ Use case ใน
ทางกลับกันจะช่ วยในการค้ นหาวัตถุต่างๆว่ าต้ องมี Method ใดบ้ าง
ผังงานเชิงวัตถ ุ UML
เพือ่ บริการให้ กบั Use Case หนึ่งๆ ดังนั้นเมื่อรวม Method ทั้งหมด
ทีป่ รากฏในทุก Use Case
ของเฉพาะวัตถุหนึ่งๆ จะทาให้ ได้
Method ทั้งหมดในวัตถุน้ันๆ ได้
นอกจากนั้นประโยชน์ ของ
Sequence Diagram คือช่ วยแสดงให้ เห็นว่ าจะมีข้นั ตอนตั้งแต่ ต้น
จนจบ ว่ ามีการทาซ้า(Do loop) มีการเลือกกระทา(If Then Else)
มีการเลือกทางเลือก (Do Case) ใดบ้ าง หากนาทุกอย่ างมาเขียน
รวมกันจะกลายเป็ นโปรแกรมหลัก(Main Program) ทีค่ วบคุม
Method ต่ าง ๆ (โปรแกรมย่ อย) ของหนึ่ง Use Case
ผังงานเชิงวัตถ ุ UML
สั ญลักษณ์ ของ Sequence Diagram ประกอบด้ วย Actor :
Object และ“
”แสดง message“
”แสดงการรับทราบ
(Acknowledge) “ ” แสดงช่ วงเวลาที่เกีย่ วข้ องกันในการเริ่มต้ น รอคอยการทางานหนึ่งๆ (เมื่อเสร็จ 1 State) ตัวอย่ างแสดง
Client
Get Assembly
ผังงานเชิงวัตถ ุ UML
: Assembly
Client External Actor
1. Get Cost
2. Get Cost
4. Cost
3. Cost
: Part
ผังงานเชิงวัตถ ุ UML
จากภาพ Client จะร้ องขอวัตถุ Assembly ให้ หาราคาของ
ผลิตภัณฑ์ หนึ่ง หากจัดทาขึน้ มาจะต้ องใช้ ต้นทุนเท่ าไร(1) วัตถุ
Assembly จะถามราคาต้ นทุนของส่ วนประกอบ Part ว่ ามีราคา
เท่ าไร(2) วัตถุ Part จะตอบราคามาให้ (3) เมื่อวัตถุ Assembly ได้
ราคาแล้ ว อาจจะมีการประมวลผลหาต้ นทุนทีแ่ ท้ จริง แล้ วแจ้ งผล
ราคามาให้ กบั Client ทราบต่ อไป(4)
ผังงานเชิงวัตถ ุ UML
ในการวิเคราะห์ และออกแบบระบบงานจะใช้ Sequence Diagram
ในการช่ วยศึกษาระบบงานและออกแบบระบบงาน โดยเฉพาะใน
การออกแบบระบบงาน การจัดทา Sequence Diagram จะต้ องมี
การระบุ Interface Object ซึ่งจะเป็ นวัตถุแรกทีส่ ั มผัส User
บริเวณพืน้ ที่กลางๆ (Column) มักจะเป็ น Control Object และ
Entity Object (Database Engine)
มักจะอยู่ขวาสุ ดของผัง
Sequence Diagram ตัวอย่ างเช่ น
ผังงานเชิงวัตถ ุ UML
: Student
: Registration
Form
: Registration
Manager
: Physic 101
1. Fill in info
2. Submit
3. Add course
(somchai,physic101)
4. Are you open ?
5. Add (somchai)
ผังงานเชิงวัตถ ุ UML
วัตถุ Registration Form คือ หน้ าจอรอรับการป้ อนข้ อมูล
การขอเพิม่ รายวิชาที่เรียนของนักศึกษาในวิชา Physis101 เมื่อป้ อน
ข้ อมูลเสร็จสิ้น จะกดปุ่ มคาสั่ ง Submit เพือ่ ขอเพิม่ รายวิชา วัตถุ
Registration Form จะส่ ง Message Add Course ที่มีชื่อนักศึกษา
และชื่อวิชาทีจ่ ะขอเพิม่ ไปให้ วตั ถุ Registration Manager ซึ่งเป็ น
วัตถุควบคุม(Control Object) วัตถุ Registration Manager จะส่ ง
Message ไปสู่ วตั ถุPhysic101 ซึ่งเป็ นฐานข้ อมูล หากมีการเปิ ดสอน
จะทาการ Add นักศึกษา SOMCHAI ลงไปในฐานข้ อมูล Physic101
ผังงานเชิงวัตถ ุ UML
ผังสถานะ (State Transition Diagram)
เป็ นผังแสดงชีวประวัตขิ องหนึ่งวัตถุ โดยมีเหตุการณ์ ต่างๆ
(Events) ซึ่งอาจเป็ นการกระทา(Method) หรือการโต้ ตอบสถานะ
(Control) กระทาให้ สถานะ(State) เปลีย่ นจากสถานะหนึ่งเป็ นอีก
สถานะหนึ่ง ผังState Chart เป็ นพฤติกรรมเชิงพลวัติ(Dynamic)
ของวัตถุหนึ่ง ประโยชน์ ของผังState Transition Diagram คือใช้
แสดงรายละเอียดการทางานภายใต้ ภาวะร้ องขอจากหลากวัตถุรอบ
นอก แสดงการกระทาภายในเป็ นขั้นเป็ นตอน
ผังงานเชิงวัตถ ุ UML
และแสดงภาวะการติดต่ อกับวัตถุอนื่ ๆ การร้ องขอบริการจากวัตถุ
อืน่ ๆ สรุปคือการทางานคล้ ายๆ เป็ นโปรแกรมควบคุม Methods
ย่ อยๆ ภายในวัตถุหนึ่งๆ เพือ่ ประมวลผลภายใน ติดต่ อการร้ องขอ
การบริการวัตถุต่างๆ ภายนอก ซึ่งอาจเรียก Main Program ของ
Object นั้น ๆ สั ญลักษณ์ พนื้ ฐาน ได้ แก่
แสดงจุดตั้งต้ น
แสดงการร้ องขอ/โต้ ตอบ
แสดงจุดสิ้นสุ ด
แสดงสถานะ
ผังงานเชิงวัตถ ุ UML
Start
Idle
Handshake
Time Out
Handshaking
Acknowledge Handshake
Time Out
Done
Receive Data
Receive Data
ผังงานเชิงวัตถ ุ UML
จากภาพเป็ นการแสดงสภาวะการทางานต่ างๆ ที่เกิดขึน้ ภาย
ในวัตถุ Receive Object โดยมี Event Handshake, Acknowledge
Handshake, Handshake, Time Out, Done, Receive Data ส่ วน
สถานะได้ แก่ Idle ,Handshaking และ Receive Data เนื่องจาก
วัตถุนี้ ไม่ มีการสิ้นสุ ดจึงไม่ ปรากฏสั ญลักษณ์ สิ้นสุ ดการทางาน
ตัวอย่ างต่ อไป จะแสดงภาพการทางานของการลงทะเบียนเรียนใน
รายวิชาโดยนักศึกษา
ผังงานเชิงวัตถ ุ UML
Initialization
cancel
Canceled
do: Notify Registered Students
do: Initialize Course
Add student
/set count=0
cancel
Add student[count<10]
Open
entry: Register Student
exit: Increment Count
[Count = 10]
cancel
Close
do: Finalize Course
ผังงานเชิงวัตถ ุ UML
การลงทะเบียนจะกระทาเมื่อนักศึกษาทีล่ งทะเบียนในวิชา
ดังกล่ าวมีไม่ เกิน10 คน Sequence Diagram นีจ้ ะแสดงการทางาน
ของ Method ต่ างๆ ของวัตถุ Course โครงร่ างของโปรแกรม
คร่ าวๆ ดังนี้
ผังงานเชิงวัตถ ุ UML
Start
Do initialize
Count = 0
1
No
Add student
Yes
No
Register
Yes
Count = Count+1
Cancel
Stop
No
ผังงานเชิงวัตถ ุ UML
ผังกิจกรรม (Activity Diagran)
ผังกิจกรรมมีลกั ษณะคล้ ายผังสถานะ State transition
Diagram แต่ การเปลีย่ นสถานะ (Transition) จะไม่ มีเหตุการณ์
กระตุ้น(Trigger ) การควบคุมจะกระทาโดยทันที (Immediately)
เมื่อกิจกรรมหนึ่งๆ ซึ่งกระทาโดยสถานะ(State หรือวัตถุ) ดาเนิน
การสาเร็จ(Done) ตั้งแต่ เริ่มต้ นกิจกรรมจนกระทั่งสิ้นสุ ด สั ญลักษณ์
ต่ างๆ ที่ใช้ Activity Diagram จะคล้ ายคลึงกับผัง State Transition
Diagram และเนื่องจาก Activity บางประเภทอาจจะกระทา
ผังงานเชิงวัตถ ุ UML
แบบต่ อเนื่องหรือแบบคู่ขนาน จึงมีการสร้ างผังออกมาในลักษณะ
Forks And Join
ในบางครั้งนักวิเคราะห์ ต้องการแสดงภาพ
Activity ออกมาโดยจาแนกตามกลุ่มของวัตถุโดยการเขียนออกมา
ในลักษณะ Swin Lanes ตัวอย่ างของผัง Activity Diagram แบบ
Ordinary
ผังงานเชิงวัตถ ุ UML
Show Message Box
“Printing” On Screen
Create Postscript
File
Send Postscript
File to Printer
Remove Message
Box
ผังงานเชิงวัตถ ุ UML
ตัวอย่ าง Activity แบบ Forks and Joins
ผังงานเชิงวัตถ ุ UML
ตัวอย่ าง Activity แบบ Swin lanes และ Object Flow
Displayer
Sumpler
ผังงานเชิงวัตถ ุ UML
จากตัวอย่ าง Activity แบบ Swin Lanes เป็ นการแสดงความ
สั มพันธ์ ของกิจกรรมที่ต่อเนื่องกัน (Immediately) เมื่อมี Method
หนึ่งๆ การทางานเสร็จ และมีการเกีย่ วข้ องกับวัตถุได้ หลายตัวใน
แต่ ละช่ อง (Lanes) ดังนั้น Activity Diagram จึงใช้ แสดง
พฤติกรรมการทางาน คล้ ายคลึงกับผัง Sequence Diagram ในการ
ใช้ งานบางครั้งจึงเลือกใช้ ผังระบบงานอย่ างใดอย่ างหนึ่ง หรือทั้ง
สองก็ได้
ผังงานเชิงวัตถ ุ UML
Customer
Sales
Request Product
Process Order
Customer
Pull Items
O: Order
Ship Order
Receive Order
Bill Customer
B: Bill
Pay Bill
Close Order
ผังงานเชิงวัตถ ุ UML
ซึ่งจะมีลกั ษณะคล้ าย Sequence Diagram ดังต่ อไปนี้
: Customer
: Sales
: Warehouse
Request Product ()
Pull Items ()
Ship Order ()
Receive Order ()
Bill Customer ()
Pay Bill ()
ผังงานเชิงวัตถ ุ UML
จากตัวอย่ างทั้งหมดข้ างต้ น จะเห็นว่ า Activity Diagram
ทาหน้ าที่เป็ น State Transition Diagram หากเจาะจงเฉพาะวัตถุ
เดียว และจะเป็ น Sequence Diagram หรือ Interaction Diagram
กรณีทเี่ กีย่ วข้ องกับหลายวัตถุ
ผังงานเชิงวัตถ ุ UML
ผังองค์ ประกอบ (Component Diagram)
ผังองค์ ประกอบ
ใช้ แสดงโครงสร้ างและแสดงความ
สั มพันธ์ ขององค์ ประกอบซอฟต์ แวร์ องค์ ประกอบของซอฟต์ แวร์
อาจหมายถึง Source Code , Executable Component หรือ
Runtime Component ผัง Component Diagram แสดงภาพของ
ระบบงานออกมาเป็ นเชิง รู ปธรรม (physical world) ตัวอย่ างเช่ น
ผังงานเชิงวัตถ ุ UML
people.dll
register.exe
User
student
course.dll
Course
ผังงานเชิงวัตถ ุ UML
ผังแสดงส่ วนประกอบระบบงาน (Deploying The System)
ผังแสดงส่ วนประกอบของระบบงาน ใช้ ในการแสดงภาพ
ของระบบงานว่ ามีส่วนประกอบใดบ้ าง ทั้งส่ วนที่เป็ น Run-Time
Process Element ฐานข้ อมูลSystem Software Hardware เป็ นต้ น
ผังDeployment Diagram มีความคล้ ายคลึงกับSystem Flowchart
ตัวอย่ างเช่ น
ผังงานเชิงวัตถ ุ UML
Registration
Database
Main
Building
Library
Dorm