Professional Documents
Culture Documents
Studentid - Name - Address - Telephonenumber - Blood - Subject: Student
Studentid - Name - Address - Telephonenumber - Blood - Subject: Student
การวิเคราะห์และออกแบบระบบเชิงวัตถุดว้ ย UML
การวิเคราะห์และออกแบบระบบเชิงวัตถุเป็นแนวคิดที่พยายามจัดระบบกระบวนการพัฒนาระบบงาน
ให้มีระเบียบ และสามารถนาโปรแกรมที่เคยเขียนมาก่อนให้สามารถนากลับมาใช้งานใหม่ การวิเคราะห์ระบบ
เชิงวัตถุเป็นการอธิบายระบบสารสนเทศว่าประกอบด้วยสิ่งต่าง ๆ ที่เรียกว่า วัตถุ (Object) ทั้งที่จับต้องได้และ
จับต้องไม่ได้ ผลลัพธ์สุดท้ายของการวิเคราะห์ระบบเชิงวัตถุก็คือ แบบจาลองเชิงวัตถุ (Object Model) ที่
นาเสนอระบบสารสนเทศในลักษณะเชิงวัตถุ จากนั้นในระหว่างขั้นตอนของการพัฒนาระบบในวงจรการพัฒนา
ระบบ (SDLC) สามารถแปลงเป็นการออกแบบเชิงวัตถุได้โดยตรงโดยใช้โปรแกรมเชิงวัตถุในการพัฒนา เช่น
C++ Java เป็นต้น
13.1 แนวคิดเชิงวัตถุ
แนวคิดเชิงวัตถุมุ่งเน้นสิ่งต่าง ๆ ที่ใกล้เคียงกับโลกแห่งความจริงในลักษณะรูปธรรมโดยมองระบบเป็น
กลุ่มของวัตถุที่มีปฏิกริยาต่อกันด้วยการนาข้อมูลและฟังก์ชันการทางานรวมเข้าด้วยกันเป็นวัตถุ ทาให้ข้อมูลที่
เป็นวัตถุนั้นสามารถอธิบายคุณสมบัติรวมทั้งฟังก์ชันการทางานในตัวเองได้
1. วัตถุหรืออ็อบเจ็กต์ (Object)
คือ ทุกสิ่งที่เราสนใจในเหตุการณ์ใดเหตุการณ์หนึ่งทั้งที่จับต้องได้และจับต้องไม่ได้ เช่น คน สถานที่
เหตุการณ์ หรือรายการต่าง ๆ เป็ นต้น วัตถุจะประกอบด้วยคุณสมบัติ กิจกรรม การกระทา วิธีการ และมี
ความสัมพันธ์กันระหว่างวัตถุภายในระบบ
2. คลาส (Class)
คื อ กลุ่ ม ของวั ต ถุ ที่ มี โ ครงสร้ า งและพฤติ ก รรมที่ เ หมื อ นกั น หรื อ อาจเปรี ย บได้ ว่ า คลาส
เปรียบเสมือนแม่พิมพ์ที่ใช้เพื่อสร้างวัตถุ เช่น นิยามคลาสของรถยนต์ว่ามี 4 ล้อ ใช้น้ามันเป็นเชื้อเพลิง ฉะนั้นจึง
สามารถจัดรถยนต์ฮอนด้า รถยนต์โตโยต้า รถยนต์ฟอร์ด เป็น อ็อบเจ็กต์ของคลาสรถยนต์ได้ แต่ไม่สามารถจัด
รถจักรยานยนต์ เป็ น อ็อบเจ็กต์ในคลาสรถยนต์ได้ เพราะมีคุณสมบัติไ ม่ตรงกับนิยามที่วางไว้ เป็นต้น คลาส
ประกอบด้วย ชื่อของคลาส แอททริบิวท์ และโอเปอเรชั่น ในภาพที่ 13.1 แสดงคลาส Student ที่มี 6 แอททริ
บิวท์ และ 2 โอเปอเรชั่น
ชื่อคลาส Student
-StudentID
-Name
แอททริบิวท์ -Address
-TelephoneNumber
-Blood
-Subject
โอเปอเรชั่น +Register()
+DropCourse()
3. แอททริบวิ ท์ (Attributes)
คือ คุณสมบัติที่ใช้บรรยายคลาสหรืออ็อบเจ็กต์โดยคุณสมบัติเหล่านี้อยู่ภายในขอบเขตที่เราสนใจ
เท่านั้น เช่น จากอ็อบเจ็กต์รถยนต์ฮอนด้าในคลาสรถยนต์ คุณสมบัติที่สามารถอธิบายคลาสรถยนต์ได้คือ สี
ขนาดเครื่องยนต์ รุ่น ความเร็ว เป็นต้น เช่น คลาสStudent มีแอททริบิวท์ที่บรรยายคุณสมบัติได้ คือ รหัส
นักศึกษา (StudentID) ชื่อ-สกุล (Name) ที่อยู่ (Address) เบอร์โทรศัพท์ (TelephoneNumber) กรุ๊ปเลือด
(Blood) และสาขาวิชา (Subject)
4. การดาเนินการหรือโอเปอเรชัน่ (Operation) หรือ เมธอด (Method)
ในอ็อบเจ็กต์แต่ละอ็อบเจ็กต์ต้องมีความสามารถในการดาเนินการ หมายถึง การกระทาที่อ็อบ
เจ็กต์สามารถกระทาได้หรือสามารถถูกร้องขอให้กระทาได้ ความสามารถในการดาเนินการบางอย่างถูกแสดง
ออกมาให้เห็นเป็นพฤติกรรมได้ต้องเกิดจากการสื่อสารหรือปฏิสัมพันธ์กันระหว่างอ็ อบเจ็กต์ ในทางการเขียน
โปรแกรม เมธอด (Method) เป็นชุดคาสั่งที่เขียนขึ้นมาอย่างเป็นลาดับขั้นตอนเพื่อให้มีการดาเนินการขึ้นมักใช้
คาว่า “Operation” และ “Method” ในความหมายเดียวกัน เช่น คลาสรถยนต์มีโอเปอเรชัน วิ่ง เลี้ยว สตาร์ท
เครื่ อ งยนต์ ดับ เครื่ องยนต์ เป็ น ต้น คลาส Student มีความสามารถในการดาเนินการได้ คือ ลงทะเบีย น
(Register())ยกเลิกรายวิชา (DropCourse())
5. การสืบทอดคุณสมบัติ (Inheritance)
เป็นวิธีการในการสร้างคลาสใหม่จากคลาสเดิมที่มีอยู่ การสืบทอดคุณสมบัติถือเป็นเรื่องที่สาคัญ
สาหรับเทคโนโลยีเชิงวัตถุ เนื่องจากการสืบทอดคุณสมบัตินี้ทาให้เกิดข้อดี คือ ทาให้ได้ระบบที่มีโครงสร้างที่เป็น
ระบบ ปรับเปลี่ยนได้ง่าย และทาให้ลดเวลา ค่าใช้จ่ายในการพัฒนาระบบการสืบทอดคุณสมบัติของคลาสใน
ระบบทาให้เกิดคลาสย่อย (Subclass) คลาสย่อยจะรับคุณสมบัติของคลาสที่ให้กาเนิด ซึ่งเรียกว่า คลาสหลัก
(Super Class) เช่น คลาส Employee เป็นคลาสหลักที่มีแอททริบิวท์ 8 แอททริบิวท์ที่อธิบายคุณสมบัติของ
คลาส Employee และมีโอเปอเรชัน 4 โอเปอเรชัน จากคลาส Employee สามารถสืบทอดคุณสมบัติของ
คลาสให้เกิดเป็นคลาสย่อยคือ คลาส Manager ที่มีคุณสมบัติทุกอย่างเหมือนคลาสหลัก แต่มีคุณสมบัติเพิ่ม
ขึ้นมาคือมีแอททริ บิวท์ เงินประจาตาแหน่ง (Ex_salary) และโอเปอเรชันออกคาสั่ง (Order) ซึ่งเป็น
ลักษณะเฉพาะของคลาส Manager ดังแสดงในภาพที่ 13.2
6. โพลิมอร์ฟสิ ซึม (Polymorhpism)
หมายถึง คลาสต่างกันสามารถตอบสนองต่อการดาเนินการชื่อเดียวกัน โดยอาจให้พฤติกรรมหรือ
วิธีการกระทาต่อการดาเนินการนั้นต่างกันได้ เช่น Draw() คือ ฟังก์ชันการวาดซึ่งมีความสามารถในการวาดรูป
ได้หลายลักษณะมิได้เฉพาะเจาะจงเช่น การวาดรูปวงกลม วงรี สามเหลี่ยม สี่เหลี่ยม เป็นต้น ซึ่งหากต้องการให้
มีการตอบสนองรูปวาดต่าง ๆ ผู้ใช้สามารถติดต่อได้ด้วยการใช้ฟังก์ชัน Draw()เพียงฟังก์ชันเดียวส่วนจะมีการ
ตอบสนองการวาดในลักษณะใดนั้นขึ้นอยู่กับรายละเอียดของคาสั่ง ดังนั้นผู้ใช้งานไม่จาเป็นต้องจดจาฟังก์ชันใน
การวาดมากมายซึ่งแตกต่างจากการเขียนโปรแกรมแบบเดิมที่จาเป็นต้องมีฟังก์ชันการวาดต่าง ๆ ในการวาดรูป
เหล่านั้น เช่น ฟังก์ชันวาดรูปสี่เหลี่ยม ฟังก์ชันวาดรูปสามเหลี่ยม ฟังก์ชันวาดรูปวงกลม เป็นต้น
3
Employee
-Name
-Date of birth
คลาสหลัก (Super Class) -Social security number
-Telephone number
-Hire date
-Title
-Pay rate
-Status
+Get hired()
+Terminate()
+Change telephone()
+Change address()
Manager
-Ex_salary
คลาสย่อย (Sub Class) +Order()
7. เอ็นแคปซูเลชัน (Encapsulation)
หมายถึง กระบวนการซ่อนรายละเอียดของคุณลักษณะต่าง ๆ และรายละเอียดการทางานของ
คลาสไว้ภายในโดยการที่สิ่งที่อยู่ภายนอกคลาสจะติดต่อกับคลาสได้ต้องติดต่อผ่านทางช่ องทางที่คลาสเตรียมไว้
ให้เท่านั้น หลักการนี้ทาให้เกิดการมองคลาสใน 2 ลักษณะคือ การมองคลาสจากภายใน และมองคลาสจาก
ภายนอก ถ้ามองคลาสจากภายในตัวคลาสเองจะเห็นรายละเอียดทั้งหมดของคลาสแต่ถ้ามองคลาสจากภายนอก
จะเห็นเฉพาะสิ่งที่คลาสเปิดเผยให้ได้เห็นผ่านทางที่กาหนดเท่านั้ น การที่สิ่งที่อยู่ภายนอกคลาสไม่สามารถเห็น
รายละเอียดของคลาสจากภายนอกได้นั้นเรียกว่า การซ่อนข้อมูล (Information Hiding) ซึ่งหมายถึง การซ่อน
รายละเอียดของแอททริบิวท์และการดาเนินการของคลาสจากภายนอก ระดับในการเข้าถึงแอททริบิว ท์และ
โอเปอเรชันของคลาส มี 3 ระดับ คือ ไพรเวต (Private) โปรเท็กเท็ต (Protected) และพับลิก (Public)
7.1 ไพรเวต แอททริบิวท์และ/หรือการดาเนินการของคลาสที่ถูกกาหนดเป็นไพรเวต ไม่ถูกเปิดเผย
แก่ ภ ายนอกและไม่ ส ามารถเข้ า ถึ ง ได้ โ ดยตรงจากภายนอก แต่ ส ามารถเข้ า ถึ ง ได้ จ ากภายในตั ว คลาสเอง
สัญลักษณ์ที่ใช้ระบุในแผนภาพว่าแอททริบิวท์ใดการดาเนินการใดเป็นไพรเวตคือ เครื่องหมายลบ (-)
7.2 โปรเท็กเท็ต แอททริบิวท์และ/หรือการดาเนินการของคลาสที่ถูกกาหนดให้เป็น โปรเท็กเท็ต
จะไม่ถูกเปิดเผยแก่ภายนอกและไม่สามารถเข้าถึงได้โดยตรงจากภายนอก แต่สามารถเข้าถึงได้จากภายในตัว
คลาสเองโปรเท็กเท็ตแอททริบิวท์และโปรเท็กเท็ตโอเปอเรชั่ นจะถูกถ่ายทอดไปให้กับ คลาสย่อยและสามารถ
เข้าถึงได้จากภายในซับคลาสสัญลักษณ์ที่ใช้ในแผนภาพคือ เครื่องหมายชาร์ป (#)
7.3 พับลิก แอททริบิวท์ และ/หรือการดาเนินการของคลาสที่ถูกกาหนดให้ เป็น พับลิกจะถูก
เปิดเผยและถูกเข้าถึงได้โดยตรงจากภายนอกไม่มีการปกปิดใด ๆ ทั้งสิ้น รวมทั้งยังสามารถถ่ายทอดไปยัง คลาส
ย่อยได้ด้วยแอททริบิวท์และการดาเนินการที่ถูกกาหนดให้เป็นพับลิกสัญลักษณ์ที่ใช้ในแผนภาพคือ เครื่องหมาย
บวก (+)
4
1..1 0..*
3. Aggregation Abstraction
เป็นความสัมพันธ์อีกชนิดหนึ่ง โดยที่ Aggregation หมายถึง ความสัมพันธ์ระหว่างคลาสหรืออ็อบ
เจ็กต์แบบต่างระดับกัน คือ คลาสหนึ่งมีความสัมพันธ์แบบเป็นองค์ประกอบของอีกคลาสหนึ่งและกระบวนการ
5
* * *
*
* *
1..n 1..1 0..n
Student Lecturer TeachingMeterial
4. Generalization Abstraction
Generalization หมายถึง ความสัมพันธ์แบบต่างระดับระหว่างคลาสหลัก (Superclass) กับคลาส
ย่อย (Subclass) โดยที่คลาสย่อยจะสืบทอดคุณลักษณะทั้งแอททริบิวท์และการดาเนินการที่สาคัญของคลาส
หลักนั้นมาด้วยทาให้คลาสรองมีแอททริบิวท์และการดาเนินการบางอย่างเหมือน กับคลาสหลัก ในขณะเดียวกัน
คลาสย่อยก็จะสามารถสร้างแอททริบิวท์และการดาเนินการเพิ่มเติมได้ด้วย
ตัวอย่าง ในการสั่งซื้อสินค้า ลูกค้าสามารถเลือกได้ว่าจะชาระเงินด้วยวิธีใดระหว่างการชาระด้วยเช็ค และชาระ
ด้ว ยบั ต รเครดิ ต ไม่ ว่า ลู กค้ าจะเลื อกช าระเงิน ด้ว ยวิ ธีใดก็จั ดเป็นใบสั่ งซื้ อเหมือ นกั น จะแตกต่า งกั นเพีย ง
รายละเอียดของการชาระเงินเท่านั้น ดังนั้นคลาสใบสั่งซื้อสินค้าจึงสามารถถ่ายทอดคุณลักษณะไปยังคลาสใหม่
คือ คลาสใบสั่งซื้อด้วยเช็ค (OrderCheque) และใบสั่งซื้อด้วยบัตรเครดิต (OrderCredit) โดยที่ทั้งสองคลาส
ใหม่มแี อททริบิวท์และการดาเนินการเพิ่มเติมตามสมควร
Order
-orderID
-orderDate
-custID
-orderItem
-shipDate
-totalPrice
+addOrder()
+caluTotal()
+changeShipdate()
OrderCheque OrderCredit
-chequeNo -cardNo
-chequeDate -expDate
+verifyPmt()
13.3 ภาษายูเอ็มแอล
ยูเอ็มแอล (Unified Modeling Language : UML) เป็นภาษาสัญลักษณ์รูปภาพมาตรฐานที่ใช้เพื่อ
ถ่ายทอดความคิดที่มีต่อระบบให้ออกมาเป็นแผนภาพซึ่งประกอบไปด้วยรูปภาพหรือสัญลักษณ์ตามกฎในการ
สร้างแผนภาพซึ่งเรียกได้ว่ายูเอ็มแอลเป็นภาษาสาหรับใช้ในการสร้างแบบจาลองเชิงวัตถุ
13.3.1 ข้อดีของยูเอ็มแอล
ในการใช้ยูเอ็มแอลเป็นภาษามาตรฐานในการวิเคราะห์และออกแบบระบบเชิงวัถตุ จะมีข้อดี
หลายประการดังนี้
1. เป็ น ภาษารู ป ภาพมาตรฐาน หรือภาษาสากลที่ใช้ในการพัฒ นาซอฟต์แวร์เชิงวัตถุและ
สามารถใช้ในการเปลี่ยนแบบจาลองได้อย่างสื่อความหมายรวมถึงการจัดสร้างเอกสารการวิเคราะห์ออกแบบ
ระบบ การประยุกต์ใช้ยูเอ็มแอลจะทาให้ผู้ร่วมงานมีความเข้าใจและสามารถแลก เปลี่ยนผลของการวิเคราะห์
และออกแบบระบบในขั้นตอนต่าง ๆ ได้อย่างรวดเร็วและตรงกัน
2. สามารถนาเสนอและสนับสนุน หลักการเชิงวัตถุได้อย่างครบถ้วน ชัดเจน ทาให้นักพัฒนา
ระบบสามารถทาความเข้าใจปัญหาและค้นพบวิธีการแก้ไขได้อย่งรวดเร็วและง่ายยิ่งขึ้น
3. ไม่ผูกติดกับภาษาโปรแกรมภาษาใดภาษาหนึ่ง คือสามารถถูกแปลงเป็นระบบจริง ด้วย
ภาษาเชิงวัตถุใดก็ได้
4. เป็นภาษาที่ง่ายต่อการทาความเข้าใจ
5. สามารถถูกแปลงเป็นภาษาที่ใช้ในการสร้างระบบขึ้นจริงได้อย่างอัตโนมัติ ทาให้ลดเวลา
และค่าใช้จ่ายในการพัฒนาระบบ
6. สนับสนุนการขยายปรับปรุงระบบ
7. ในการพัฒนาสิ่งต่าง ๆ จะถูกบันทึกความคิดของนักพัฒนาในลักษณะของเอกสารที่พร้อม
จะนามาทาความเข้าใจได้อย่างรวดเร็ว
13.3.2 องค์ประกอบของยูเอ็มแอล
องค์ประกอบของภาษายูเอ็มแอลมี 3 ส่วน คือ
1. สัญลักษณ์ทั่วไป (Things) คือสัญลักษณ์พื้นฐานที่ถูกใช้งานในการสร้างไดอะแกรม
แบ่งเป็นหมวดย่อยได้ดังนี้
1) หมวดโครงสร้าง (Structural) ได้แก่ ยูเคส คลาส อินเทอร์เฟซ คอมโพเนนต์ คอลแล
บอเรชั่น และโหนด
2) หมวดพฤติกรรม (Behavioral) คือส่วนที่เป็นไดนามิกของยูเอ็มแอล ซึ่งได้แก่ อินเตอร์
แอ็กชั่น สเตตแมชชีน
3) หมวดการจัดกลุ่ม (Grouping) เพื่อใช้ในการรวบรวมองค์ประกอบต่าง ๆ ในโมเดลให้
เหมาะสม ได้แก่ แพ็กเกจ
4) หมวดคาอธิบายประกอบ (Annotational) ได้แก่ โน้ต (Note)
2. ความสัมพันธ์ (Relationship) มี 3 ชนิด คือ
1) ความสัมพันธ์แบบพึ่งพา (Dependency Relationship)
7
13.4 ยูเคสไดอะแกรม
เมื่อ เริ่ มต้ น การพั ฒ นาระบบทุก ครั้ง ผู้ พั ฒ นาจะต้อ งเริ่มต้ นที่ ขั้น ตอนแรก คือการค้น หาและเก็ บ
รวบรวมข้อมูล ความสามารถของระบบที่ผู้ ใช้ต้องการซึ่งถือว่าส าคัญมากในการพัฒ นาระบบในมาตรฐาน
ยูเอ็มแอลจะใช้ยูสเคสไดอะแกรมเพื่อเป็นเทคนิคในการจาลองความต้องการของผู้ใช้รวมถึง แสดงความสามารถ
ของระบบ ยูสเคสไดอะแกรมเป็นไดอะแกรมมาตรฐานที่สามารถทาความเข้าใจได้โดยง่าย
13.4.1 ส่วนประกอบสาคัญในยูสเคสไดอะแกรม
ส่วนประกอบที่สาคัญของยูสเคสไดอะแกรมมี 3 ส่วนคือ ยูสเคส (Use Case) แอ็กเตอร์
(Actor) เส้นแสดงความสัมพันธ์ (Relationship) ในการสร้างยูสเคสไดอะแกรมสิ่งสาคัญคือการค้นหาว่าระบบ
ทาอะไรได้บ้าง โดยไม่สนว่าจะทางานอย่างไรหรือใช้เทคนิคการสร้างอย่างไร
1. ยู ส เคส คื อ ความสามารถหรื อ ฟั ง ก์ ชั น ที่ ร ะบบจะต้ อ งท าได้ จึ ง จะถื อ ว่ า ระบบไม่ มี
ข้อผิดพลาด ซึ่งมีคุณสมบัติดังนี้
1) ต้องถูกกระทาโดยแอ็กเตอร์และแอ็กเตอร์เป็นผู้ติดต่อกับระบบตามยูสเคสที่กาหนด
2) ยูสเคสรับข้อมูลจากแอ็ กเตอร์และส่งข้อมูลให้แอ็กเตอร์ นั่นคือแอ็กเตอร์ กระทากับ
ยูสเคสโดยการส่งข้อมูลเข้าสู่ระบบตามยูสเคสหรือรอรับค่าที่ระบบส่งกลับให้
8
Register
Check Course
ภาพที่ 13.7 สัญลักษณ์แอ็กเตอร์เจ้าหน้าที่พัสดุ
«uses»
«uses»
«extends» «extends»
«extends» «extends»
13.4.2 ประโยชน์ของยูสเคสไดอะแกรม
ยูสเคสไดอะแกรมจะจาลองการทางานต่าง ๆ ของระบบ ซึ่งจะช่วยให้สามารถมองระบบได้
อย่างชัดเจนขึ้น ยูสเคสไดอะแกรมมีประโยชน์สรุปได้ดังนี้
1. เพื่อให้ผู้พัฒนาทราบถึงความสามารถของระบบว่าต้องทาอะไรได้บ้าง
2. เพื่อทราบถึงผู้ใช้งานในแต่ละส่วนของระบบ
3. ทาให้การติดต่อสื่อสารระหว่างผู้พัฒนากับลูกค้าหรือระหว่างผู้พัฒนาด้วยกันทาได้ง่าย
4. ใช้ ใ นการทดสอบระบบซอฟต์ แ วร์ ว่ า ท างานได้ ค รบถ้ ว นตามความต้ อ งการหรื อ ไม่
เนื่องจากนักพัฒนาส่วนใหญ่ มักไม่มีแนวทางหรือขั้นตอนในการทดสอบอย่างเป็นระบบระเบียบชัดเจนไม่รู้ว่า
จะต้องเริ่มทดสอบส่วนใดก่อน
13.5 คลาสไดอะแกรม
คลาสไดอะแกรมเป็ นไดอะแกรมที่แสดงการใช้งานคลาส อ็อบเจ็กต์ และมีการสร้างความสั มพันธ์
ระหว่างคลาสหรืออ็อบเจ็กต์เหล่านั้น เช่น การสืบทอดคุณสมบัติของคลาส เป็นต้น การหาคลาสของอ็อบเจ็กต์
ได้ต้องสามารถจัดหมวดหมู่ของอ็อบเจ็กต์ได้ การหาคลาสจากอ็อบเจ็กต์ควรให้อยู่ในระบบที่กาลัง สร้างเช่น
ระบบจั ด ซื้ อ สามารถหาคลาสของระบบได้ คื อ คลาสลู ก ค้ า คลาสใบสั่ ง ซื้ อ คลาสใบเสนอราคา คลาส
ใบเสร็จรับเงิน เป็นต้น
13.5.1 การสร้างคลาสไดอะแกรม
วัตถุประสงค์ของการสร้างคลาสไดอะแกรมเพื่อแสดงถึงโครงสร้างของระบบที่ประกอบด้วย
คลาส และความสัมพันธ์ระหว่างคลาส คลาสไดอะแกรมถือว่าเป็นไดอะแกรมที่มีความสาคัญมากเพราะถูกใช้
เป็นไดอะแกรมหลักในการสร้างไดอะแกรมอื่นอีกหลายประเภทสิ่งสาคัญในการสร้างคลาสไดอะแกรม คือ การ
ค้นหาแนวคิดต่าง ๆ ที่อยู่ในขอบข่ายของระบบที่กาลังสนใจ มีวิธีการในการค้นหาคลาสดังนี้
1. คานามที่ปรากฏอยู่ในคาบรรยายยูสเคสจะถูกสร้างเป็นคลาส เช่น คลาสรถยนต์ คลาสวิชา
เรียน คลาสหนังสือ คลาสสินค้า เป็นต้น
2. คาวิเศษณ์ที่ปรากฏอยู่ในคาบรรยายยูสเคสจะถูกสร้างเป็น แอททริบิวท์ เช่น สีรถ รุ่นรถ
ยี่ห้อรถ เป็นต้น
3. คากิริยาที่ปรากฏอยู่ในคาบรรยายยูสเคสจะถูกสร้างเป็นโอเปอเรชั่ น เช่น สตาร์ทรถ เบรก
ลงทะเบียน ยกเลิกรายวิชา เป็นต้น
13.5.2 สัญลักษณ์
ตามมาตรฐานยูเอ็มแอล คลาสไดอะแกรมประกอบไปด้วยสัญลักษณ์ของคลาสและเส้นแสดง
ความสัมพันธ์ สัญลักษณ์คลาสประกอบด้วย 3 ส่วนคือ ชื่อคลาส (Class Name) แอททริบิวท์และโอเปอเรชั่น
ความสัมพันธ์ระหว่างคลาส ซึ่งความสัมพันธ์เหล่านี้สามารถเป็นได้ 3 รูปแบบ ดังนี้
1. ความสัมพันธ์แบบพึ่งพิง (Dependency) ความสัมพันธ์แบบนี้เกิดขึ้นเมื่อการเปลี่ยนแปลง
ที่เกิดขึ้นกับคลาสที่ถูกพึ่งพิง (Independent Class) ส่งผลต่อคลาสที่พึ่งพิง (Dependent Class) คลาส
11
ดังกล่าว การจาลองความสัมพันธ์แบบนี้สามารถทาได้โดยวาดเส้นตรงแบบประที่มีหัวลูกศรเป็นเส้นโปร่งชี้จาก
คลาสรองที่พึ่งพิงไปยังคลาสหลักที่ถูกพึ่งพิง
2. ความสัมพันธ์แบบถ่ายทอด (Generalization) คือความสัมพันธ์ระหว่างคลาสหลักและ
คลาสรองนั่นเอง การจาลองความสัมพันธ์แบบนี้สามารถทาได้โดยวาดเส้นตรงทึบที่มีหัวลูกศรเป็นสี่เหลี่ยมโปร่ง
ชี้จากคลาสรองไปยังคลาสหลัก
3. ความสัมพันธ์แบบเชื่อมโยง (Association) เป็นความสัมพันธ์อีกชนิดหนึ่งระหว่างคลาส
1
1 * has 1
1 *
* *
has do 1
*1
*
has
has * * * * *
n n n 1
n
do *1
1
* 1 do 1 n do 1
do * 1
*
* * *
1 1*
*
n 1 1
1 * *
consist
*
*
do n
do 1
do *
do do
* *
n 1 1
*
Consist has *
n 1 1
n
*1 ** * *
n n n
* * * 1
*
has
has has has
* * *
1 1 1
*
n
1 has n
* *
13.6 สเตตชาร์ตไดอะแกรม
สเตตชาร์ ตไดอะแกรมบอกถึงพฤติกรรมของคลาสต่าง ๆ ในระบบว่ามีส ถานะอะไรบ้างจะเปลี่ ยน
สถานะเมื่อเกิดเหตุการณ์อะไร สเตตชาร์ตไดอะแกรมของแต่ละคลาสประกอบไปด้วยสถานะที่สามารถเกิดขึ้น
ได้ เช่น คนอยู่ในสถานะกาลังเดิน รถอยู่ในสถานะกาลังวิ่ง เป็นต้น เมื่อเวลาผ่านไปหรือมีเหตุการณ์บางอย่าง
เกิดขึ้นย่อมทาให้เกิดการเปลี่ยนสถานะหรือเปลี่ยนพฤติกรรมได้ สเตตชาร์ตไดอะแกรมในยูเอ็มแอลมีจุดเริ่มต้น
สถานะและจุดสิ้นสุดสถานะ โดยจุดเริ่มต้นมีสัญลักษณ์เป็นรูปวงกลมทึบและจุด สิ้นสุดสถานะเป็นรูปวงกลม
โปร่งล้อมรอบวงกลมทึบข้างใน ส่วนสถานะในไดอะแกรมถูกแสดงเป็นรูปสี่เหลี่ยมหัวมนรูปร่างเหมือนแคปซูล
และเชื่อมกันด้วยเส้นลูกศรชี้จากสถานะหนึ่งไปยังอีกสถานะหนึ่งสามารถเขียนคาอธิบายเหตุการณ์ที่ทาให้
เปลี่ยนสถานะตรงเส้นลูกศรได้ ดังตัวอย่างภาพที่ 13.10
12
Success
13.6 ซีเควนไดอะแกรม
ซีเควนไดอะแกรมบ่งบอกถึงในยูสเคสนั้นวัตถุแต่ละตัวจะติดต่อสื่อสารกันอย่างไร มีขั้น ตอนการทางาน
อย่ างไร โดยเน้ น ไปที่แกนเวลาเป็น ส าคัญถ้าเวลาเปลี่ ยนขั้นตอนการทางานจะเปลี่ ยนโดยมีแอ็กเตอร์เป็น
ผู้กระทาเริ่มต้น ในยูเอ็มแอลซีเควนไดอะแกรมมีแกนสมมติ 2 แกนคือ แกนนอนและแกนตั้ง แกนนอนแสดง
ขั้นตอนการทางานและการส่งข้อความของแต่ละวัตถุว่า ต้องทาอะไรเมื่อใด แกนตั้งเป็นแกนเวลาโดยแกนนอน
และแกนตั้งต้องสัมพันธ์กัน ในซีเควนไดอะแกรมมีสัญลักษณ์ของวัตถุหรือคลาสแทนรูปสี่เหลี่ยมเรียงกันตาม
แนวนอน ภายในบรรจุชื่ออ็อบเจ็กต์ตามด้วยเครื่องหมายทวิภาค ( : )และชื่อคลาส เส้นประที่อยู่ในแนวแกน
เวลาแสดงถึ ง ชี วิ ต ของวั ต ถุ สี่ เ หลี่ ย มแนวตั้ ง ที่ อ ยู่ ต าแหน่ ง เดี ย วกั บ วั ต ถุ ห รื อ คลาสเรี ย กว่ า แอ็ ก ทิ เ วชั น
(Activation) ซึ่งใช้แสดงช่วงเวลาที่วัตถุกาลังปฏิบัติงาน และเส้นที่ทาหน้าที่ส่งข้อมูลระหว่างวัตถุ
Frm Status
1:GetDocBuy()
2:
3: When-Mouse-Double Click()
CallFrm()
ตัวอย่าง จากระบบสารสนเทศจัดซื้อจัดจ้างพัสดุแสดงภาพรวมของระบบได้โดยใช้แอ็กทิวิตี้ไดอะแกรม
14
[ / ]
[ / / ]
13.9 คอมโพเนนต์ไดอะแกรม
แสดงความสัมพันธ์ที่เชื่อมต่อกันระหว่างซอฟต์แวร์คอมโพเนนต์ในระบบว่าประกอบด้วยไฟล์อะไรบ้าง
ซึ่งอาจเป็นไฟล์ซอร์สโค้ด (Source Code) ไฟล์ไบนารี (Binary Code) และไฟล์เอ็กซิคิวต์ (Executable
Code) การตั้งชื่อของคอมโพเนนต์ในคอมโพเนนต์ไดอะแกรมจะใช้ชื่อของคลาสจากคลาสไดอะแกรมไม่ใช่ชื่อ
ของอินสแทนซ์ (Instance) สัญลักษณ์ของคอมโพเนนต์ในคอมโพเนนต์ไดอะแกรมถูกแสดงเป็นสี่เหลี่ยม
ประกอบด้วยสี่เหลี่ยมเล็ก 2 รูปติดอยู่ที่ขอบด้านซ้าย และอาจเชื่อมต่อกันด้วยเส้นแสดงความสัมพันธ์
13.10 ดีพลอยเมนต์ไดอะแกรม
แสดงการเชื่อมต่อของอุปกรณ์ฮาร์ดแวร์ในระบบและมักใช้ร่วมกับคอมโพเนนต์ไดอะแกรมโดยข้างใน
ฮาร์ดแวร์อาจประกอบไปด้วยซอฟต์แวร์คอมโพเนนต์ ดีพลอยเมนต์ไดอะแกรมแสดงอยู่ในรูปอินสแทนซ์ และ
แสดงในช่วงเวลาของการรันหรือระหว่างการเอ็กซิคิวต์ ดังนั้นไฟล์คอมโพเนนต์ของระบบที่ไม่ได้ใช้สาหรับรันจะ
ไม่ปรากฎในไดอะแกรมนี้แต่มีในคอมโพเนนต์ของไฟล์ที่ใช้ทางานจริงเท่านั้น
สั ญลั กษณ์ ของดีพ ลอยเมนต์ไ ดอะแกรมเป็น การเชื่ อมกั นระหว่ างโหนดซึ่ง คือ ฮาร์ ดแวร์ก็ จะบรรจุ
อินสแทนซ์ของซอฟต์แวร์คอมโพเนนต์ที่ถูกแสดงด้วยสัญลักษณ์ของคอมโพเนนต์ไว้ข้างใน แต่ละคอมโพเนนต์
เชื่อมต่อกันโดยใช้ความสัมพันธ์แบบพึ่งพิงโดยชี้จากคอมโพเนนต์ที่ขอใช้บริการไปยังคอมโพเนนต์อื่นเหมือนกับ
คอมโพเนนต์ไดอะแกรมโดยบนลูกศรอาจมีคากากับอยู่ภายใต้เครื่องหมายสเตอริโอไทป์เพื่อสร้างความกระจ่าง
ยิ่งขึ้นหากจาเป็น สัญลักษณ์ของโหนดถูกแสดงด้วยรูปลูกบาศก์ 3 มิติ ภายในบรรจุชื่อที่แสดงถึงประเภทของ
โหนดถ้าเป็นโหนดอินสแทนซ์จะมีทั้งชื่อจริงและประเภทของโหนดและต้องขีดเส้นใต้ที่ชื่อของโหนดเพื่อแสดงว่า
เป็นอินสแทนซ์หรืออ๊อบเจ็กต์ ชื่อของโหนดเป็นชื่อเฉพาะ ส่วนประเภทของโหนดเป็นการบ่งบอกว่าโหนดนั้นคือ
อุปกรณ์ชนิดอะไร โหนดอาจถูกเชื่อมต่อกับโหนดอื่นได้ ซึ่งแสดงว่าอุปกรณ์แต่ละตัวมีการติดต่อสื่อสารกัน
อย่างไรผ่านระบบเครือข่าย อาจมีคากากับภายใต้สัญลักษณ์สเตอริโอไทป์เพื่อบอกว่าทั้ง 2 โหนดนี้เชื่อมต่อกัน
ด้วยการสื่อสารวิธีใดซึ่งก็คือชนิดของช่องสัญญาณของเครือข่ายหรือโปรโตคอล เช่น <<TCP/IP>> เป็นต้น
* *
* *
* *
* *
Forms Runtime
Ms Windows 2000 Server MS Windows 2000 Profressional
13.11 บทสรุป
การวิเคราะห์และออกแบบระบบเชิงวัตถุเป็นแนวคิดที่พยายามพัฒนาระบบโดยนาโปรแกรมเดิมที่มีอยู่
กลับมาใช้งานใหม่ การวิเคราะห์ ระบบเชิงวัตถุอาศัยแนวคิดเชิงวัตถุที่ประกอบด้วย วัตถุ คลาส แอททริบิวท์
โอเปอเรชั่น/เมธอด การสืบทอดคุณสมบัติ โพลิมอร์ฟิสซึม และเอ็นแคปซูเลชัน ในการมองสิ่งต่าง ๆ ภายใน
16
ระบบนักวิเคราะห์แต่ละคนมีวิธีการมองที่ไม่เหมือนกัน ดังนั้นจึงต้องมีกระบวนการสร้างแนวความคิดของคลาส
จากกลุ่มของอ็อบเจ็กต์ ซึ่งเรียกว่า แอ็บสเตรคชั่น (Abstraction) มีกระบวนการที่สาคัญ 4 กระบวนการคือ
Classification Abstraction Association Abstraction Aggregation Abstraction และ Generalization
Abstraction ซึง่ ทาให้สามารถนิยามคลาสได้ทั้งหมดในระบบเพื่อดาเนินการในการพัฒนาระบบต่อไป
ยูเอ็มแอลเป็นภาษาสัญลักษณ์รูปภาพมาตรฐานที่ใช้เพื่อถ่ายทอดความคิดที่มีต่อระบบให้ออกมาเป็น
แผนภาพประกอบด้วยรูปภาพหรือสัญลักษณ์ตามกฎการสร้างแผนภาพยูเอ็มแอลเป็นภาษาสาหรับใช้ในการ
สร้ า งแบบจ าลองเชิ ง วั ต ถุ ไดอะแกรมของยู เ อ็ ม แอลประกอบด้ ว ย 8 ไดอะแกรม โดยแต่ ล ะไดอะแกรม
เปรียบเสมือนมุมมองในด้านต่าง ๆ ของระบบที่กาลังพัฒนาช่วยให้การวิเคราะห์และออกแบบระบบเป็นไปได้
อย่างมีประสิทธิภาพ ยูสเคสไดอะแกรม คือไดอะแกรมเชิงพฤติกรรมซึ่งแสดงถึงกลุ่มของยูสเคส แอ็กเตอร์ และ
ความสัมพันธ์ ซึ่งเป็นมุมมองภายนอกระบบ คลาสไดอะแกรม คือไดอะแกรมเชิงโครงสร้างที่แสดงถึงกลุ่มของ
คลาส และความสัมพันธ์ของคลาส บีเฮฟเยอร์ไดอะแกรม (Behavioral Diagram) คือไดอะแกรมที่บ่งบอก
พฤติ ก รรมของตั ว ระบบ ได้ แ ก่ สเตตชาร์ ต ไดอะแกรม ซี เ ควนไดอะแกรม คอลแลบอเรชั่ น ไดอะแกรม
และแอ็กทิวิตี้ไดอะแกรม กลุ่มอิมพลีเมนเตชั่นไดอะแกรม (Implementation Diagram) ประกอบด้วย
สัญลักษณ์ที่ใช้แสดงถึง โครงสร้างของซอร์สโค้ดหรือไฟล์และโครงสร้างของส่วนประกอบที่เชื่อมต่อกันในระบบ
ซึ่งคือฮาร์ดแวร์และซอฟต์แวร์ที่ใช้ในระบบนั่นเองได้แก่ คอมโพเนนต์ไดอะแกรม และดีพลอยเมนต์ไดอะแกรม
คาถามทบทวน
1. จงอธิบายความหมายของคาต่อไปนี้
1.1 Object
1.2 Class
1.3 Method
1.4 Polymorphism
1.5 Encapsulation
2. จงอธิบายหลักการวิเคราะห์และออกแบบระบบเชิงวัตถุ
3. ยูเอ็มแอล คืออะไร มีข้อดีอย่างไร
4. จากกรณีศึกษาต่อไปนี้ ให้สร้างยูสเคสไดอะแกรม และคลาสไดอะแกรม
คณะวิ ท ยาศาสตร์ ข องสถาบั น การศึ ก ษาแห่ ง หนึ่ ง มี บุ ค ลากรหลายประเภท ได้ แ ก่ อาจารย์
นักศึกษา และเจ้าหน้าที่ โดยอาจารย์แต่ละท่านมีหน้าที่ในการสอนอย่างน้อยหนึ่งวิชา นักศึกษามีหน้าที่ใน
การศึกษาวิชาใดวิชาหนึ่งหรือมากกว่า 1 วิชา ในขณะที่เจ้าหน้าที่ คือ เจ้าหน้าที่ห้องปฏิบัติการต่าง ๆ ซึ่งใน 1
ห้องต้องมีเจ้าหน้าที่อย่างน้อย 1 คนดูแล