คำศัพท์ Object- Oriented Programming


1 คำศัพท์ Object- Oriented Programming มีอยู่ 15 คำที่ควรรู้

1.Object Oriented
คือแนวความคิดเชิงวัตถุ 


2.Use Cases 

คือ เอกสารที่บรรยายถึงลำดับของเหตุการณ์ (event) ที่ผู้ใช้ (Actor) ปฏิบัติการกระบวนการทำงานหนึ่ง (process) ภายในระบบใด ๆ โดยจริงๆแล้วตัวมันเองก็ไม่ได้บอกถึงความต้องการอย่างเป็นทางการของระบบ จริงๆ ซะทีเดียวเหมือนกับ Requirement Specification หากแต่มันมีลักษณะที่บอกความต้องการอย่างไม่เป็นทางการ แฝงไว้ในลักษณะของการเล่าเรื่องมากกว่า Use Cases จะใช้ รูปวงรี และจะต้องมีชื่อกำกับเสมอ นอกจากนี้แล้วยังมีสัญลักษณ์ที่เป็น เส้นตรงที่แสดงถึงการสื่อสาร(Communication) ระหว่างกันของ Actor และ Use Cases 

3.Actor
คือ สิ่งใดๆก็ตามที่อยู่ภายนอกระบบที่กำลังพัฒนา (External entity) ที่มีการปฏิสัมพันธ์หรือมีส่วนร่วมกับ Use Cases ภายในระบบใดๆ โดยสิ่งดังกล่าวอาจเป็น คน, อุปกรณ์ต่างๆ, ระบบอื่นๆ เป็นต้น

4.Object
คือ หน่วยสนใจของระบบที่ทำให้เกิดเหตุการณ์บางอย่าง ไม่ว่าจะเป็นบุคคล สถานที่ สิ่งของ หรือเหตุการณ์ เช่น
- พนักงาน, ลูกค้า, นักเรียน
- โรงเก็บพัสดุ, สำนักงาน, ตึก, ห้อง
- ผลิตภัณฑ์, พาหนะ, คอมพิวเตอร์, วิดีโอเทป

5.Attribute
คือ ข้อมูลอธิบายคุณสมบัติของ Object ต่างๆ

6.Behavior
คือ พฤติกรรม หรือการกระทำของวัตถุ ซึ่งจะทำบน Attribute ของวัตถุนั้น อาจใช้คำว่า Method, Operation, Service ก็ได้

7.Encapsulation
คือ การรวมหลาย item เข้าด้วยกันใน 1 หน่วย ซึ่งเป็นการปกปิดข้อมูลและการทำงานของ Object ไว้ ซึ่งผู้ใช้จะสามารถใช้งาน Object ผ่าน Method

8.Class
คือ กลุ่มของ object ที่มีโครงสร้างพื้นฐานของ Attribute และ behavior เหมือนกัน เช่น คลาสของหนังสือ ก็จะต้องมีคุณสมบัติ ISBN, copyrightData, edition เหมือนกัน และมี behavior คือ Open(), Close() เหมือนกัน

9.Inheritance
คือ การสืบทอดคุณสมบัติ โดยจะใช้คุณสมบัติของ Object ที่มีอยู่แล้วกำหนดให้กับ Object ตัวใหม่ ซึ่งเป็นที่มาของการ Reuse object
การสืบทอดคุณสมบัติทำให้คลาสลูกไม่ต้องเขียนโปรแกรมใหม่ทั้งหมด เขียนเพิ่มเฉพาะคุณสมบัติเฉพาะของคลาสลูกเท่านั้น

10.Association
- เป็นความสัมพันธ์ระหว่าง Object class
- อาจมีความสัมพันธ์กัน 1class (unary),2 class (binary),3 class (ternary) หรือมากกว่าก็ได้

11.Association Role
- เป็นการเขียน Rule กำกับเส้นความสัมพันธ์ไว้ ซึ่งจะมี Multiplicity (max,min) กำกับไว้ด้วย

12.Messages
เป็นข้อความที่จะเกิดขึ้นเมื่อ Object หนึ่ง ร้องขอ Method ของอีก Object หนึ่ง ที่จะให้ข้อมูลหรือ Action บางอย่าง

13.Polymorphism
หมายถึง การแสดงผลหลายรูปแบบ โดย Object สามารถตอบสนองกับ Message เดียวกัน ได้หลายทาง

14.Activity
กิจกรรม

15.UML (Unified Modeling Language)
เป็นเครื่องมือใหม่ที่ได้รับการยอมรับเพิ่มขึ้นตลอดเวลา เริ่มประยุกต์ใช้กับระบบงานมากขึ้น เพราะเป็นเครื่องมือที่มีความหลากหลายในการแสดงแบบซอฟต์แวร์ เป็นโมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP (Object Oriented Programming) รูปแบบของภาษามี Notation เป็นสัญลักษณ์สำหรับสื่อความหมาย มีกฎระเบียบที่มีความหมายต่อการเขียนโปรแกรม (Coding) ดังนั้นการใช้ UML จะต้องทราบความหมายของ Notation เช่น generalize, association, dependency, class และ package สิ่งเหล่านี้มีความจำเป็นต่อการตีความการออกแบบ ก่อนนำไป Implement ระบบงานจริง ในปัจจุบันมีเครื่องมือมากมายที่สามารถแปลง Model UML เป็น Code ภาษาต่างๆ ยกตัวอย่าง เช่น ภาษา Java, Power builder และ VB เป็นต้น





1.1 Abstraction 

 คือ กระบวนการการให้ความคิดรวบยอดกับวัตถุใด ๆ เพื่อสร้าง class ซึ่งแบ่งได้เป็น 4 กระบวนการ ดังต่อไปนี้
     1.1.1 Classification Abstraction เป็น กระบวนการที่ใช้แยกประเภทวัตถุต่าง ๆ ที่อยู่ในกรอบความคิด เพื่อให้ความคิดรวบยอดแก่วัตถุเหล่านั้น จนกระทั่งได้ Class พื้นฐานตามต้องการ
     1.1. 2.Aggregation Abstraction คือ กระบวนการที่นำเอา Class พื้นฐาน มารวมกัน หรือ ประกอบกัน เพื่อให้เกิด class ที่ใหญ่ขึ้น (แต่ยังไม่หมด)
     1.1.3. Generalization Abstraction คือ กระบวนการในการนำ class ที่มีลักษณะเหมือนกันหรือคล้ายกันหรือมีสมบัติอย่างใดอย่างหนึ่งร่วมกัน มาจัดหมวดหมู่ เป็น class เดียวกัน ในทำนองกลับกัน ถ้ามี class                   
      1.1.4.Association Abstraction
 คือ กระบวนการในการสร้างความสัมพันธ์ ระหว่าง class ต่าง  ๆ ใน Problem domain ที่เราสนใจ โดยเป็นการอธิบายความสัมพันธ์ ของ class ในเชิงกิจกรรม

1.2 Encapsulation คือ

โดยทั่วไป encapsulation คือการรวมของสิ่งหนึ่งภายในอีกสิ่ง ดังนั้นสิ่งที่รวมไม่ปรากฎ decapsulation คือขจัดหรือทำให้สิ่งของปรากฎเหมือนก่อนการทำ encapsulation
           1.2.1.ใน object-oriented programming, encapsulation คือการรวมภายในอ๊อบเจคโปรแกรมของทรัพยากรทั้งหมดที่จำเป็นสำหรับอ๊อบเจคให้ทำงาน โดยพื้นฐานคือ เมธอด และข้อมูล อ๊อบเจคได้รับการกล่าวถึง “ตีพิมพ์อินเตอร์เฟซของตัวเอง” อ๊อบเจคอื่นยึดติดกับอินเตอร์เฟซเหล่านี้เพื่อใช้อ๊อบเจคนี้โดยปราศจากความกังวลการทำงานกับอ๊อบเจค ความคิดคือ “ไม่บอกว่าจะเรื่องนี้อย่างไร ให้ทำ” อ๊อบเจคสามารถคิดถึงการบรรจุอะตอม อินเตอร์เฟซของอ๊อบเจคประกอบด้วยเมธอดสาธารณะและข้อมูลประกอบ
            1.2.2. ในด้านโทรคมนาคม encapsulation เป็นการรวมของโครงสร้างข้อมูลหนึ่งภายในอีกโครงสร้าง ดังนั้นโครงสร้างข้อมูลแรกได้รับการซ่อนตามเวลา ตัวอย่าง แพ็คเก็ตข้อมูลฟอร์แม็ต TCP/IP สามารถห่อหุ้มภายในเฟรม ATM (อีกชนิดของการส่งผ่านข้อมูล) ภายในบริบทของการส่งผ่านและรับเฟรม ATM แพ็คเก็ตที่ห่อหุ้มเป็นกระแสของบิตระหว่างข้อมูล ATM ที่อธิบายการส่งผ่าน

1.3 Modularity คือ

แสดงการออกแบบของโปรแกรมคอมโพสิตที่มีโมดูลหลาย
            การออกแบบระบบที่ถูกแบ่งออกเป็นชุดของหน่วยปฏิบัติการ (ชื่อโมดูล) ที่สามารถประกอบเป็นโปรแกรมขนาดใหญ่ โมดูลหมายถึงชุดของความกังวลที่เกี่ยวข้องกับ ก็สามารถรวมคอลเลกชันขององค์ประกอบที่เกี่ยวข้องเช่นคุณสมบัติมุมมองหรือตรรกะทางธุรกิจและชิ้นส่วนของโครงสร้างพื้นฐานเช่นการบริการสำหรับการบันทึกหรือตรวจสอบผู้ใช้ โมดูลที่เป็นอิสระจากอีกคนหนึ่ง แต่สามารถติดต่อสื่อสารกับแต่ละอื่น ๆ ในแฟชั่นคู่หลวม
            โปรแกรมต้นแบบการจัดแสดงนิทรรศการคอมโพสิต ตัวอย่างเช่นพิจารณาโครงการธนาคารออนไลน์ ผู้ใช้สามารถเข้าถึงความหลากหลายของฟังก์ชั่เช่นการโอนเงินระหว่างบัญชีการจ่ายเงินค่าและการปรับปรุงข้อมูลส่วนบุคคลจากอินเตอร์เฟซผู้ใช้คนเดียว (UI) อย่างไรก็ตามเบื้องหลังแต่ละฟังก์ชั่นเหล่านี้เป็นโมดูลที่ไม่ต่อเนื่อง โมดูลเหล่านี้สื่อสารกับแต่ละอื่น ๆ และมีระบบ back-end เช่นเซิร์ฟเวอร์ฐานข้อมูล บริการโปรแกรมรวมองค์ประกอบภายในโมดูลที่แตกต่างและจัดการการสื่อสารกับผู้     ใช้ ผู้ใช้จะเห็นมุมมองแบบบูรณาการที่มีลักษณะเช่นโปรแกรมเดียว

1.4 Hierarchy คือ

       1. โครงสร้างข้อมูลแบบลำดับชั้น (Hierarchy) จุดเด่น คือ เนื่องจากมีการแบ่งแยกกลุ่มอย่างชัดเจน อีกทั้งความสัมพันธ์ระหว่างชั้นข้อมูลก็เป็นสิ่งที่คนส่วนใหญ่คุ้นเคย จึงไม่ยากเกินจะเข้าใจ  เนื่องจากความแพร่หลายในการใช้โครงสร้างระบบข้อมูลแบบนี้ เมื่อเรานำมาใช้กับข้อมูลในเว็บไซต์ก็จะทำให้ผู้ใช้เข้าใจโครงสร้างของข้อมูลที่ซับซ้อนในเว็บได้ง่ายและรวดเร็ว ซึ่งถือเป็นโครงสร้างที่เหมาะสมกับข้อมูลบนเว็บมาก เพราะในทุกวัน ๆ เว็บจะเริ่มจากหน้าโฮมเพจก่อนเสมอ แล้วจึงแบ่งแยกออกเป็นส่วนย่อย ๆ และด้วยวิธีการจัดลำดับชั้นจากบนลงล่าง ทำให้สามารถกำหนดขอบเขตของเนื้อหาภายในเว็บไซต์ได้อย่างรวดเร็ว โดยเริ่มจากการกำหนดหัวข้อหลักของข้อมูล แล้วจึงเลือกใช้แบบแผนระบบข้อมูล (organizational scheme) ที่เหมาะสมกับข้อมูล           2. โครงสร้างแบบไฮเปอร์เท็กซ์ (Hypertext) จุดเด่น คือ จากการที่ระบบไฮเปอร์เท็กซ์ได้เปิดช่องทางให้มีการเชื่อมโยงระหว่างรายการใด ๆ ในลำดับชั้นข้อมูลที่ต่างกัน จึงเหมาะที่จะนำระบบไฮเปอร์เท็กซ์มาใช้เป็นส่วนเสริมให้กับโครงสร้างข้อมูลแบบลำดับชั้นที่มีอยู่แล้ว           3. โครงสร้างแบบฐานข้อมูล (Database Model) จุดเด่น คือ เหมาะที่จะนำไปใช้กับเว็บขนาดใหญ่ที่มีผู้รับผิดชอบเรื่องระบบฐานข้อมูลโดยเฉพาะ ฐานข้อมูลเป็นการจัดระบบข้อมูลที่เป็นที่นิยมมากประเภทหนึ่ง โดยข้อมูลจะถูกจัดอยู่ในรูปแถวและคอลัมน์ด้วยกฎเกณฑ์บางอย่างที่มีการกำหนดไว้เฉพาะฐานข้อมูลนั้น ๆ การนำระบบฐานข้อมูลมาใช้ในเว็บไซต์จะช่วยเพิ่มความสามารถในการค้นหาข้อมูลได้อย่างถูกต้องและรวดเร็ว นอกจากนั้นการใช้ระบบฐานข้อมูลยังช่วยเพิ่มความสะดวกในการดูแลและปรับปรุงเนื้อหาอย่างมีประสิทธิภาพอีกด้วย

1.5 class คือ

     Class คือ แบบรูปดาวที่สร้างจากแม่แบบ (Template) และ Object คือ ดาวที่สร้างจากแม่แบบรูปดาว หรือ Class นั้นเอง ซึ่ง Object ที่ถูกสร้างขึ้นมาจะมีลักษณะเหมือนกับ Class ที่เป็นต้นแบบ แต่โดยคุณสมบัติของ Object แล้ว จะสามารถเพิ่มคุณสมบัติเฉพาะของตัวเองขึ้นมาได้ เช่น เพิ่มสีขึ้นมาเป็นคุณสมบัติเฉพาะตัวเองขึ้นมาได้ ทำให้ดาวแต่ละรูปมีสีสันที่ต่างกันไป แต่คุณสมบัติพื้นฐานจะได้รับการสืบทอดมาจาก class ที่เป็นต้นแบบยังเหมือนเดิม นั้นคือขนาดของรูปดาวจะเท่ากันทุกรูป เพราะได้จากแม่พิมพ์ตัวเดียวกัน หรือ มาจาก class เดียวกันนั้นเอง    ประโยชน์ของ Class   จะเห็นได้ว่า Class ของการสร้างรูปดาวนั้น จะประกอบด้วยวิธีการทำ ซึ่งทำถ้ามีวิธการที่ต่างกันออกไป เช่น มีการผสมสีต่างๆ ให้รูปดาวแต่ละรูปมีสีที่ไม่เหมือนกันแล้ว เราก็จะได้รูปดาวที่มีลักษณะเฉพาะที่ต่างกัน นั้นคือมีสีที่ไม่เหมือนกัน ลองนึกเปรียบเทียบกับการเขียนโปรแกรม ซึ่งมีความซับซ้อน หลายขั้นตอน ใน 1 class เมื่อ โปรแกรมเมอร์จำเป็นต้องแก้ไข หรือพัฒนาโปรแกรมนั้น เค้าจะทำอย่างไร ? โปรแกรมเมอร์ก็เพียงเข้าไปดูใน class แล้วแก้ไขหรือเพิ่มเติมขั้นตอนต่างๆแทรกลงใน class ไม่จำเป็นต้องนั่งไล่วิธีต่างๆตั้งแต่แรก ซึ่งทำให้การแก้ไขโปแกรมของโปรแกรมเมอร์เป็นไปได้โดยง่าย เพราะโปรแกรมถูกจัดให้เป็นสัดส่วนไว้แล้ว

1.6 object

Object ที่มีโครงสร้างพื้นฐานพฤติกรรมเดียวกัน ดังนั้น Object ที่มีคุณสมบัติลักษณะเดียวกันนี้ จะรวมกลุ่มอยู่ใน Class เดียวกัน จึงสามารถสรุปได้ว่า Class คือ ต้นแบบข้อมูล ที่มีไว้เพื่อสร้าง Object นั่นเอง Class นอกจากจะมีชื่อ Class ที่บอกคุณสมบัติของ Class นั้นแล้ว ยังมี Attribute และ Operation ต่างๆ ซึ่งเป็นตัวอธิบายรายละเอียด และหน้าที่ต่างๆด้วย   ตัวอย่าง Class เช่น 

Object จะประกอบไปด้วย ?

  1. Attribute หรือ ที่บางคนชอบเรียกว่า Object Data กลับมาดู ถ้าเรามอง สุนัขเป็น Object สิ่งที่เป็น attribute ของ Object สุนัข ก็คือ ชื่อของสุนัข , เพศของสุนัข และ พันธ์ของสุนัข นั้นเอง หรือ ถ้าเรามอง เครื่องคอมพิวเตอร์ ของเราเป็น Object ส่วนที่เป็น attribute ของ Object เครื่องคอมพิวเตอร์ ก็จะเป็น ชนิดของคอมพิวเตอร์ , ยี่ห้อ หรือ รุ่น ของเครื่องคอมพิวเตอร์ นั้นเอง
  2. Method หรือ Object Behavior แปลเป็นไทยก็ ส่วนของพฤติกรรม ของ Object อย่างเช่น Object สุนัข จะมี method เป็น เห่า , วิ่ง หรือ กินข้าว และ เครื่องคอมพิวเตอร์ จะมี method เป็น การคำนวน , เล่นเกมร์ , วาดรูป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น