Object Oriented Technology

การวิเคราะห์และออกแบบเชิงวัตถุ ตอนที่ 1

แนวคิดเชิงวัตถุ (Object-oriented approach) มีพื้นฐานกำเนิดมาจาก ปัญหาหรือข้อจำกัดของการพัฒนาเชิงกระบวนการ (Procedural approach) ซึ่งจะต้องมีการระบุเฉพาะเจาะจงถึงขั้นตอนของโปรแกรมคอมพิวเตอร์ทีละขั้นตอน ทำให้โปรแกรมเมอร์ต้องสนใจในรายละเอียดแต่ละขั้นเป็นอย่างมาก โปรแกรมที่ได้ก็จะให้ผลที่ดีกับงานเฉพาะด้านเท่านั้น ไม่สามารถนำไปใช้กับงานประเภทอื่นๆ ได้ ดังนั้นแนวคิดเชิงวัตถุ จึงเข้ามามีบทบาทมากขึ้น ทำให้สามารถใช้งานได้อย่างเหมาะสมกับโลกแห่งความจริง โดยจะใช้ได้กับงานหลากหลายประเภท

การวิเคราะห์และออกแบบเชิงวัตถุ: Object-Oriented Analysis and Design

 

วัตถุประสงค์หลักของบทความนี้

  • เพื่อให้ผู้อ่านเข้าใจแนวคิดเกี่ยวกับการวิเคราะห์และออกแบบเชิงวัตถุ
  • เพื่อให้ผู้อ่านเข้าใจลักษณะและความสำคัญของคลาส ออบเจ็กต์ คุณลักษณะต่างๆ และความสัมพันธ์ระหว่างคลาสกับออบเจ็กต์
  • สามารถเขียนการจำลองเชิงวัตถุด้วย UML ได้ทั้ง Use Cass Diagram, Class Diagram, Sequence Diagram, State Transition Diagram และ Activity Diagram
  • สามารถเลือกใช้ Case Tool ต่างๆ มาช่วยในการเขียน UML ได้
  • สามารถวิเคราะห์และออกแบบระบบงานต่างๆ ที่กำลังสนใจ ในรูปแบบเชิงวัตถุได้

Procedural approach กับ Object-Oriented approach

วิธีการพัฒนาแนว Object-Oriented

กระบวนการพัฒนาเชิงวัตถุ จะเริ่มจากการศึกษาความเป็นไปได้ และการวิเคราะห์ระบบเดิมที่มีอยู่

การมองในเชิงวัตถุ (Object) เป็นส่วนประกอบในการวิเคราะห์และออกแบบเชิงวัตถุ โดยวัตถุแต่ละอันจะมีคุณสมบัติ (Attributes หรือเรียกว่า Properties) ของตนเอง ที่จะใช้แสดงถึงลักษณะการทำงาน (Behavior หรือเรียกว่า Methods) ภายใต้คุณสมบัตินั้น

การวิเคราะห์และออกแบบเชิงวัตถุ (OOAD) เป็นวิธีการที่ได้รับความนิยม โดยการดูระบบจากมุมมองของตัวออบเจ็กต์เอง เพราะออบเจ็กต์ทำหน้าที่ปฏิบัติงานและเป็นตัวโต้ตอบหรือปฏิสัมพันธ์กับระบบ โดยผลผลิตสุดท้ายของการวิเคราะห์เชิงวัตถุ คือ การจำลองแบบเชิงวัตถุ (Object Model) ซึ่งจะเป็นตัวแทนของระบบสารสนเทศในความหมายของออบเจ็กต์และแนวความคิดเชิงวัตถุ ซึ่งเมื่อถึงระยะของการทำให้เกิดผลในวงจรการพัฒนาระบบ นักวิเคราะห์ระบบและนักเขียนโปรแกรมก็จะทำการแปลงออบเจ็กต์ให้เป็น ส่วนจำเพาะของรหัสชุดคำสั่ง ซึ่งการใช้วิธีการแยกเป็นส่วนจำเพาะหรือโมดูล่าร์ (Modular) จะช่วยประหยัดเงินและเวลา เนื่องจากสามารถถูกใช้อย่างเต็มที่ สามารถถูกตรวจสอบ และสามารถนำเอากลับมาใช้ใหม่ได้อีก

ออบเจ็กต์ใช้เป็นตัวแทนของ คน สถานที่ เหตุการณ์ หรือทรานแซคชั่น จะมีแอททริบิวท์ ซึ่งแสดงคุณสมบัติที่อธิบายถึงลักษณะของออบเจ็กต์นั้นๆ เช่น แอททริบิวท์ของรถยนต์ คือ ยี่ห้อ แบบ และสี นอกจากนั้น ออบเจ็กต์ยังมีเมทธอดซึ่งเป็นวิธีการปฏิบัติตามที่ได้รับเมซเสจ เช่น รถยนต์แสดงเมทธอดที่เรียกว่าเปิดที่ปัดน้ำฝนเพื่อส่งเมซเสจให้มีการเคลื่อนไหวของที่ปัดน้ำฝน ดังรูปที่ 6.3 แสดงตัวอย่างของแอททริบิวท์ เมทธอดและเมซเสจของออบเจ็กต์รถยนต์

ออปเจ็กต์รถยนต์

บนรูปข้างบนเป็นออปเจ็กต์ที่มีแอททริบิวท์ เช่น ยี่ห้อ แบบ สี สามารถแสดงเมทธอดตามเมซเสจที่ได้รับ เช่น เมื่อได้รับเมซเสจให้เหยียบเบรค เมทธอดคือ การหยุดที่ไฟแดง หรือการให้หมุนก้านปัดน้ำฝนเพื่อเปิดที่ปัดน้ำฝน

ข้อดีของ Object-oriented (OO)

  1. ลดความซับซ้อนของการพัฒนาระบบ และยังทำให้การสร้างและการดูแลเป็นไปได้ง่าย และรวดเร็ว
  2. พัฒนาความสามารถในการสร้าง และคุณภาพของโปรแกรมเมอร์ เนื่องจาก เมื่อมีการวางโครงร่างการนำมาใช้งาน และมีการทดสอบ เราสามารถที่จะนำระบบนี้ไปใช้กับระบบอื่นๆ ได้อีก
  3. ระบบที่มีการพัฒนาด้วย Object-oriented (OO) จะมีความยืดหยุ่น สามารถแก้ไข และเพิ่มเติม ได้อย่างง่าย
  4. Object-Oriented (OO) จะถูกนักวิเคราะห์ระบบมองในแง่ของระบบในโลกของความเป็นจริง ไม่ใช่แค่เพียงระดับของโปรแกรมทางภาษา (Programming Language) คือ สามารถหาทาง แก้ไขปัญหาที่เกิดขึ้นได้อย่างทันที

คลาสและองค์ประกอบของคลาส

Class (คลาส)

คลาส คือ กลุ่มของออบเจ็กต์ที่มีแอททริบิวท์และเมทธอดเหมือนกัน เช่น Honda City สีแดง, รถตู้รับส่งนักเรียน, รถบรรทุกฮีโน่ 6 ล้อ, Toyota Wish สีดำ และอื่นๆ ต่างก็เป็นพาหนะ ดังนั้นตัวอย่างรถทั้งหมดจึงอยู่ในคลาส VEHICLE

จากตัวอย่างข้างต้นนั้น เราจะเรียก Honda City สีแดง, รถตู้รับส่งนักเรียน, รถบรรทุกฮีโน่ 6 ล้อ และ Toyota Wish สีดำ ว่าเป็น อินสแตนส์ (instance) ของคลาส VEHICLE

ออบเจ็กต์ภายในคลาสสามารถแบ่งกลุ่มออกเป็นซับคลาส (Subclass) ซึ่งในซับคลาสก็มีการแบ่งเป็นประเภทต่างๆ ได้อีก เช่น TRUCK Object เป็นซับคลาสใน VEHICLE Class นอกจากนั้นยังมี CAR, MINIVAN และ SCHOOL BUS เป็นซับคลาสใน VEHICLE Class เช่นกัน ดูตัวอย่างในรูปข้างล่าง ให้สังเกตว่าซับคลาสทั้ง 4 ประเภทมีลักษณะประจำคล้ายกับของ VEHICLE เช่น ผู้ผลิต แบบ ปี น้ำหนักและสี แต่อย่างไรก็ตาม ซับคลาสแต่ละประเภทสามารถจะมีลักษณะประจำที่ไม่เป็นลักษณะร่วมกันได้ เช่น ปริมาณสูงสุดในการบรรทุกของรถบรรทุก หรือตำแหน่งที่ตั้งของประตูฉุกเฉินของรถรับส่งนักเรียน เป็นต้น

อินสแตนต์ของ VEHICLE Class และแอททริบิวท์และเมทธอด ใน VEHICLE Class

คลาสสามารถที่จะจัดกลุ่มเพิ่มได้ เรียกว่า ซุปเปอร์คลาส (Superclass) เช่น NOVEL Class อยู่ในซุปเปอร์คลาสที่เรียกว่า BOOK เพราะว่านิยายทั้งหมดเป็นหนังสือ ใน NOVEL Class สามารถมีซับคลาสต่างๆ ได้เช่น ชนิดปกแข็งและชนิดปกอ่อน ดูตัวอย่างที่คล้ายกันในรูปข้างล่าง คือ EMPLOYEE Class อยู่ในซุปเปอร์คลาสที่เรียกว่า PERSON เพราะว่าพนักงานทุกคนเป็นคน และมี INSTRUCTOR เป็นซับคลาสของ EMPLOYEE เป็นต้น

ตัวอย่างของซุปเปอร์คลาส คลาส และซับคลาสของคน

วัตถุหรือออบเจ็กต์ (Objects)

วัตถุหรือออบเจ็กต์ หมายถึงสิ่งต่างๆ ที่เราให้ความสนใจ เช่น นักศึกษา ปากกา ใบลงทะเบียนเรียน บัญชีเงินฝากธนาคาร ตารางเที่ยวบิน เป็นต้น
ในรูปข้างล่าง แสดงถึง CHILD Object ซึ่งมีแอททริบิวท์ คือ ชื่อ อายุ เพศ และสีผม หากครอบครัวนี้มีลูก 3 คน ก็จะมีอินสแตนส์ของ CHILD Object 3 แบบ สามารถแสดงเมทธอด คือ หยิบของเล่น กินอาหารเย็น เล่นของเล่น เพื่อส่งสัญญาณให้ CHILD Object แสดงผลต่างๆ ดังกล่าว ส่วนการส่งเมซเสจ ทำเพื่อให้ CHILD Object นั้นเข้าใจ เช่น การส่งเมซเสจว่า ”DINNER’S READY” บอกให้ CHILD Object เดินมาที่โต๊ะเพื่อรับประทานอาหาร และส่งเมซเสจว่า ”SHARE WITH YOUR BROTHER/SISTER” เพื่อบอกให้ CHILD Object ให้ความร่วมมือกับ CHILD Object คนอื่นๆ

แสดงอินสแตนท์ของ CHILD Object รวมทั้งแอททริบิวท์และเมทธอดของ Object

ส่วนทั้งหมดนี้เราจะรู้ในเรื่องของ Class ไปบ้างแล้วนะครับ, บทความต่อไปจะเป็นคุณสมับติ และ Attribute ของ Objected Oriented Technology ครับ

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

One Comment

Leave a Reply

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน