ระเบียบวิธีในการสร้างแบบจำลองวัตถุ ใน OOP โปรแกรมเมอร์จะเลือกคลาสจากคำอธิบายของสาขาวิชาก่อน จากนั้นจึงสร้างแบบจำลองออบเจ็กต์สำหรับการแก้ปัญหา และหลังจากนั้นจึงดำเนินการวิเคราะห์วิธีการและคุณสมบัติของพวกเขา วัตถุเป็นเอนทิตีที่แยกจากกัน

การส่งผลงานที่ดีของคุณไปยังฐานความรู้เป็นเรื่องง่าย ใช้แบบฟอร์มด้านล่าง

งานที่ดีไปที่ไซต์">

นักศึกษา นักศึกษาระดับบัณฑิตศึกษา นักวิทยาศาสตร์รุ่นเยาว์ ที่ใช้ฐานความรู้ในการศึกษาและการทำงาน จะรู้สึกขอบคุณเป็นอย่างยิ่ง

โพสต์บน http://www.allbest.ru/

การแนะนำ

1.1 หลักการทางทฤษฎีพื้นฐานของเทคโนโลยีการเขียนโปรแกรมเชิงวัตถุ แนวคิดพื้นฐานของแนวทางเชิงวัตถุ

1.2 วัตถุแนวคิด

2. การก่อสร้าง แบบจำลองวัตถุ สาขาวิชา“การจัดระเบียบกระบวนการสโมสรกีฬา” โดยใช้ภาษาการสร้างแบบจำลอง UML

2.1 ลักษณะของภาษาการสร้างแบบจำลอง UML

2.1.1 ประวัติโดยย่อของ UML

2.1.2 ภาษา UML

2.1.3 คำศัพท์ UML

2.1.4 มุมมองการควบคุมแบบจำลอง

3.1 คำอธิบายโครงสร้างแอปพลิเคชัน

บทสรุป

รายชื่อแหล่งที่มา

ภาคผนวก ก

การแนะนำ

สโมสรกีฬาดำเนินกิจกรรมครบวงจรเพื่อพัฒนาวัฒนธรรมทางกายภาพและการกีฬาในหมู่เยาวชนและสมาชิกในครอบครัว มีสโมสรกีฬาเพิ่มมากขึ้นเรื่อยๆ รวมถึงส่วนกีฬาหลายแห่งด้วย กระบวนการลงทะเบียนเยาวชนที่เกี่ยวข้องกับส่วนเหล่านี้ใช้เวลานานและเป็นกระบวนการที่ซับซ้อน ดังนั้นคำถามเกี่ยวกับการทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติจึงมีความเกี่ยวข้องมากขึ้น

เมื่อใช้คอมพิวเตอร์ กระบวนการนี้จะแม่นยำและรวดเร็วยิ่งขึ้น ปราศจากความยุ่งยากมากมายที่เกิดขึ้นเมื่อจัดระเบียบด้วยตนเอง

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

สามารถสร้างโมเดลออบเจ็กต์ของโดเมนได้โดยใช้ภาษา Visual Object Modeling UML หรือเป็นผลิตภัณฑ์ซอฟต์แวร์ในภาษาการเขียนโปรแกรมบางภาษาที่รองรับเทคโนโลยีการเขียนโปรแกรมออบเจ็กต์ ตัวอย่างคือภาษา Object Pascal

งานวิจัยนี้มีวัตถุประสงค์เพื่อศึกษาระเบียบวิธีเชิงวัตถุและเทคโนโลยีการเขียนโปรแกรมโดยใช้ตัวอย่างภาษา Object Pascal วิธีการและเครื่องมือในการสร้างแบบจำลองวัตถุของสาขาวิชาและประยุกต์ความรู้ที่ได้รับมาสร้างแบบจำลองวัตถุของสาขาวิชานั้น” การจัดระเบียบการทำงานของสโมสรกีฬา”

เพื่อให้บรรลุเป้าหมายของการศึกษานี้ จึงมีการกำหนดภารกิจต่อไปนี้:

· ศึกษาหลักการทางทฤษฎีพื้นฐานของระเบียบวิธีเชิงวัตถุ

· พิจารณาภาษา UML และสร้างแบบจำลองวัตถุของสาขาวิชาโดยใช้ภาษานี้

· พัฒนาแอปพลิเคชันที่ใช้ชุดคลาสเพื่อแสดงข้อมูลเกี่ยวกับนักกีฬา

วัตถุประสงค์ของการศึกษาหลักสูตรนี้คือวิธีการออกแบบเชิงวัตถุ

หัวข้อของการศึกษานี้เป็นโมเดลวัตถุของสาขาวิชา "การจัดระเบียบการทำงานของสโมสรกีฬา" และคุณสมบัติหลัก

สมมติฐานการวิจัยคือการนำโมเดลวัตถุไปใช้ในสภาพแวดล้อมการพัฒนาการมองเห็นของ Delphi โดยใช้หลักการพื้นฐานของระเบียบวิธีเชิงวัตถุ จะทำให้กระบวนการรวบรวม จัดเก็บ และประมวลผลข้อมูลเกี่ยวกับผู้เข้าร่วมสโมสรกีฬาง่ายขึ้น

ในขั้นตอนของการวิเคราะห์สาขาวิชาและการออกแบบโครงสร้างแอปพลิเคชัน จำเป็นต้องสร้างแผนภาพคลาส UML

ในกระบวนการเขียนโครงงานรายวิชาใช้วิธีการวิจัยดังนี้

· วิธีการพรรณนาใช้เพื่อนำเสนอแง่มุมทางทฤษฎีของปัญหาและอธิบายลักษณะเฉพาะของวัตถุประสงค์การศึกษาโดยย่อ

· วิธีเปรียบเทียบและวิเคราะห์ ช่วยให้คุณสามารถเปรียบเทียบมุมมองที่แตกต่างกันในหัวข้อที่กำลังพิจารณาและวิเคราะห์วัตถุประสงค์ของการศึกษา

· แนวทางที่เป็นระบบ ใช้เพื่อสรุปผลลัพธ์ที่ได้รับและระบุความสัมพันธ์เชิงตรรกะ

1. บทบัญญัติทางทฤษฎีพื้นฐานของระเบียบวิธีเชิงวัตถุ

1.1 แนวคิดพื้นฐานของแนวทางเชิงวัตถุ

รูปแบบการเขียนโปรแกรมภาษาเฉพาะเรื่อง

เป็นเวลานานแล้วที่การเขียนโปรแกรมใช้โมเดลที่มีโครงสร้างและมุ่งเน้นขั้นตอน การเลือกเป้าหมายโครงการดำเนินการโดยใช้หนึ่งในสองวิธีที่เรียกว่า "จากบนลงล่าง" และ "จากล่างขึ้นบน"

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

2. แนวทาง "จากล่างขึ้นบน" หมายความว่าขั้นตอนต่างๆ ถูกเขียนขึ้นเพื่อแก้ไขปัญหาง่ายๆ จากนั้นจึงรวมเข้าด้วยกันเป็นขั้นตอนที่ซับซ้อนมากขึ้นเรื่อยๆ จนกว่าจะบรรลุผลตามที่ต้องการ

แนวคิดการเขียนโปรแกรมที่สำคัญคือการเขียนโปรแกรมเชิงขั้นตอนและการเขียนโปรแกรมเชิงวัตถุ

การเขียนโปรแกรมเชิงขั้นตอนคือการเขียนโปรแกรมในภาษาที่จำเป็น ซึ่งสามารถรวบรวมคำสั่งที่ดำเนินการตามลำดับเป็นรูทีนย่อยได้ ซึ่งก็คือหน่วยโค้ดที่ใหญ่กว่า โดยใช้กลไกของภาษานั้นเอง

การเขียนโปรแกรมเชิงวัตถุ (OOP) เป็นรูปแบบการเขียนโปรแกรมที่รวบรวมพฤติกรรมในโลกแห่งความเป็นจริงในลักษณะที่ซ่อนรายละเอียดการใช้งาน

ออบเจ็กต์เป็นเอนทิตีที่แยกจากกันซึ่งโดดเด่นท่ามกลางเอนทิตีอื่นๆ เนื่องจากคุณสมบัติ ลักษณะการทำงาน และการโต้ตอบกับออบเจ็กต์แอปพลิเคชันอื่นๆ

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

มีความแตกต่างที่สำคัญสองประการระหว่าง OOP และการเขียนโปรแกรมเชิงขั้นตอน:

1. ใน OOP โปรแกรมเมอร์จะเลือกคลาสจากคำอธิบายของสาขาวิชาก่อน จากนั้นจึงสร้างแบบจำลองออบเจ็กต์สำหรับการแก้ปัญหา และหลังจากนั้นจึงดำเนินการวิเคราะห์วิธีการและคุณสมบัติของพวกเขา

2. วิธีการและคุณสมบัติเชื่อมโยงกับคลาสที่มีวัตถุประสงค์เพื่อดำเนินการที่เกี่ยวข้อง

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

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

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

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

คลาสคือชุดของวัตถุที่มี คุณสมบัติทั่วไปและพฤติกรรม ดังนั้น คลาสสามารถถูกกำหนดให้เป็นชุมชนหนึ่งของอ็อบเจ็กต์เฉพาะ เพื่อเป็นการอธิบายสิ่งที่พวกเขาควรเป็นและสิ่งที่พวกเขาควรทำ หากวัตถุมีอยู่ในแอปพลิเคชันจริง ๆ คลาสก็คือนามธรรมที่จัดกลุ่มวัตถุออกเป็นกลุ่มเดียวตามคุณสมบัติและพฤติกรรมในสภาพแวดล้อมที่วัตถุนั้นมีอยู่และโต้ตอบกัน ตัวอย่างเช่น Button1 บนฟอร์ม ที่มีคุณสมบัติและการดำเนินการเฉพาะทั้งหมด เป็นอ็อบเจ็กต์ของคลาส Button

พฤติกรรมเป็นลักษณะเฉพาะที่วัตถุหนึ่งส่งผลต่อวัตถุอื่นหรือเปลี่ยนแปลงตัวเองภายใต้อิทธิพลของมันอย่างไร พฤติกรรมส่งผลต่อการเปลี่ยนแปลงสถานะของวัตถุ

เทคโนโลยีการเขียนโปรแกรมเชิงวัตถุมีพื้นฐานอยู่บน "สามเสาหลัก": การห่อหุ้ม การสืบทอด และความหลากหลาย

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

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

Polymorphism (“ หลายรูปแบบ”) - ความสามารถในการใช้นิพจน์เดียวกันเพื่อแสดงถึงการดำเนินการที่แตกต่างกันความสามารถของคลาสลูกหลานในการใช้วิธีการที่อธิบายไว้สำหรับคลาสบรรพบุรุษในรูปแบบที่แตกต่างกันเช่น ความสามารถในการดำเนินการต่าง ๆ หรือเข้าถึงวัตถุโดยใช้ชื่อเดียวกันระหว่างการทำงานของโปรแกรม ประเภทต่างๆ- Polymorphism ถูกนำมาใช้ผ่านวิธีการแทนที่ในคลาสที่สืบทอด (วิธีการมีชื่อเดียวกันและพารามิเตอร์เดียวกัน แต่ทำงานต่างกัน) - นี่คือกลไก วิธีการเสมือนผ่าน การเชื่อมโยงแบบไดนามิก(การเชื่อมโยงแบบไดนามิก) Polymorphism ยังถูกนำมาใช้เป็น "การโอเวอร์โหลด" ของวิธีการ (วิธีการมีชื่อเดียวและ พารามิเตอร์ที่แตกต่างกัน) คือการใช้เครื่องหมาย + เพื่อระบุการบวกในคลาสจำนวนจริงหรือจำนวนเต็มและคลาสสตริง ข้อความที่คล้ายกันจะให้ผลลัพธ์ที่แตกต่างกันโดยสิ้นเชิง Polymorphism ให้ความสามารถในการสรุปคุณสมบัติทั่วไป

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

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

การพิมพ์เป็นวิธีหนึ่งในการป้องกันการใช้อ็อบเจ็กต์ของคลาสหนึ่งแทนที่จะเป็นอีกคลาสหนึ่ง หรืออย่างน้อยก็เพื่อควบคุมการใช้งานดังกล่าว

ความเท่าเทียมเป็นคุณสมบัติที่แยกแยะวัตถุที่ใช้งานอยู่ออกจากวัตถุที่ไม่โต้ตอบ

ความคงอยู่คือความสามารถของวัตถุที่จะดำรงอยู่ได้ทันเวลา โดยมีชีวิตรอดจากกระบวนการที่ทำให้เกิดวัตถุนั้น และ (หรือ) ในอวกาศ โดยเคลื่อนตัวจากพื้นที่ที่อยู่เดิมของมัน

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

ดังนั้นในกระบวนการพัฒนาโปรแกรมเชิงวัตถุจึงมีความจำเป็น:

1. กำหนดชุดของคลาสอ็อบเจ็กต์ที่สร้างมันขึ้นมา (การสลายตัว)

2. สำหรับแต่ละคลาสอ็อบเจ็กต์ ให้ระบุชุดข้อมูลที่จำเป็น (ฟิลด์)

3. สำหรับแต่ละคลาสของออบเจ็กต์ ให้ระบุชุดของการดำเนินการ (วิธีการ) ที่ดำเนินการโดยออบเจ็กต์

4. สำหรับแต่ละคลาสของอ็อบเจ็กต์ ให้ระบุเหตุการณ์ที่อ็อบเจ็กต์จะตอบสนอง และเขียนขั้นตอนการจัดการที่สอดคล้องกัน

ซอร์สโค้ดต้องมีคำอธิบายคลาสสำหรับออบเจ็กต์ซอฟต์แวร์ทั้งหมด นอกจากนี้ จะต้องอธิบายตัวแปรซึ่งมีประเภทเป็นชื่อของคลาสที่เกี่ยวข้อง อินสแตนซ์ของคลาส (อ็อบเจ็กต์) ถูกสร้างขึ้นระหว่างการทำงานของโปรแกรม

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

สมาชิกของชั้นเรียนสามารถ:

1. ช่องที่ใช้ในการจัดเก็บข้อมูล

2. คุณสมบัติเป็นวิธีการเข้าถึงข้อมูลส่วนตัว

3. วิธีการที่กำหนดการทำงานของวัตถุ

4. เหตุการณ์และตัวจัดการเหตุการณ์เป็นวิธีการจัดการโปรแกรม

1.2 วัตถุแนวคิด

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

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

1. วิธีการคือฟังก์ชันหรือขั้นตอนที่ใช้การกระทำที่เป็นไปได้กับวัตถุ

2. เหตุการณ์คือวิธีการปฏิสัมพันธ์ของวัตถุระหว่างกัน ออบเจ็กต์สร้างเหตุการณ์ที่ระบุและดำเนินการเพื่อตอบสนองต่อเหตุการณ์ที่ระบุ เหตุการณ์จะคล้ายคลึงกับข้อความที่ออบเจ็กต์รับและส่ง

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

4. คุณสมบัติ - เครื่องหมาย คุณภาพ (พารามิเตอร์) บางอย่างที่แยกจากกันของวัตถุ

ตัวอย่างเช่น คุณสมบัติอาจเป็นขนาดของออบเจ็กต์ ชื่อ หรือชื่อก็ได้ ชุดคุณสมบัติของวัตถุจะกำหนดสถานะของวัตถุ โดยทั่วไปคุณสมบัติคือชุดของตัวแปรและค่าคงที่ที่เก็บค่าที่กำหนดพารามิเตอร์ของวัตถุ

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

วัตถุมีลักษณะเฉพาะตามคุณลักษณะ ตัวอย่างเช่น คุณลักษณะของรถยนต์คือความเร็วสูงสุด กำลังเครื่องยนต์ สีตัวถัง ฯลฯ คุณลักษณะของเครื่องขยายเสียงคือ ช่วงความถี่ กำลังเอาต์พุต ความเพี้ยนของฮาร์โมนิก ระดับเสียง เป็นต้น

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

ด้วยวิธีนี้ ออบเจ็กต์จะห่อหุ้มคุณลักษณะและวิธีการ ซ่อนการใช้งานจากออบเจ็กต์อื่นๆ ที่โต้ตอบกับมัน และใช้ฟังก์ชันการทำงานของมัน

แนวทางเชิงวัตถุมีพื้นฐานมาจากการใช้แบบจำลองอย่างเป็นระบบสำหรับการพัฒนาระบบซอฟต์แวร์โดยไม่ขึ้นกับภาษา โดยยึดหลักในทางปฏิบัติ

ระยะสุดท้ายต้องการคำชี้แจง Pragmatics ถูกกำหนดโดยวัตถุประสงค์ของการพัฒนาระบบซอฟต์แวร์: สำหรับการให้บริการลูกค้าธนาคาร, สำหรับการจัดการการดำเนินงานของสนามบิน, สำหรับการให้บริการฟุตบอลโลก ฯลฯ การกำหนดเป้าหมายเกี่ยวข้องกับวัตถุและแนวคิดของโลกแห่งความเป็นจริงที่เกี่ยวข้องกับระบบซอฟต์แวร์ที่กำลังพัฒนา (ดูรูปที่ 1.2.1)

ด้วยแนวทางเชิงวัตถุ วัตถุและแนวคิดเหล่านี้จะถูกแทนที่ด้วยแบบจำลอง เช่น โครงสร้างที่เป็นทางการบางอย่างที่เป็นตัวแทนในระบบซอฟต์แวร์

รูปที่ 1.2.1 อรรถศาสตร์

โมเดลไม่มีคุณสมบัติและคุณสมบัติทั้งหมดของออบเจ็กต์ (แนวคิด) ที่เป็นตัวแทน แต่มีเพียงคุณสมบัติและคุณสมบัติที่จำเป็นสำหรับระบบซอฟต์แวร์ที่กำลังพัฒนาเท่านั้น ดังนั้นแบบจำลองจึง "ด้อยกว่า" และดังนั้นจึงง่ายกว่าวัตถุ (แนวคิด) ที่แบบจำลองนั้นเป็นตัวแทน แต่สิ่งสำคัญไม่ได้เป็นเช่นนั้น แต่โมเดลนั้นเป็นโครงสร้างที่เป็นทางการ: ลักษณะที่เป็นทางการของโมเดลช่วยให้เราสามารถกำหนดการพึ่งพาอย่างเป็นทางการระหว่างโมเดลเหล่านั้นกับการดำเนินการอย่างเป็นทางการกับโมเดลเหล่านั้นได้ สิ่งนี้ช่วยลดความยุ่งยากทั้งการพัฒนาและการศึกษา (การวิเคราะห์) แบบจำลองและการนำไปใช้งานบนคอมพิวเตอร์ โดยเฉพาะอย่างยิ่งลักษณะที่เป็นทางการของแบบจำลองทำให้เราสามารถรับแบบจำลองที่เป็นทางการของระบบซอฟต์แวร์ที่ได้รับการพัฒนาเป็นองค์ประกอบของแบบจำลองที่เป็นทางการของส่วนประกอบต่างๆ

ดังนั้นแนวทางเชิงวัตถุจึงช่วยรับมือกับปัญหาที่ซับซ้อนเช่น

· ลดความซับซ้อนของซอฟต์แวร์

· เพิ่มความน่าเชื่อถือของซอฟต์แวร์

· ให้ความสามารถในการปรับเปลี่ยนส่วนประกอบซอฟต์แวร์แต่ละรายการโดยไม่ต้องเปลี่ยนส่วนประกอบที่เหลือ

· รับประกันความเป็นไปได้ของการนำส่วนประกอบซอฟต์แวร์แต่ละรายการกลับมาใช้ใหม่

การประยุกต์ใช้แนวทางเชิงวัตถุอย่างเป็นระบบช่วยให้เราสามารถพัฒนาระบบซอฟต์แวร์ที่มีโครงสร้างดี เชื่อถือได้ และปรับเปลี่ยนได้ง่าย สิ่งนี้อธิบายถึงความสนใจของโปรแกรมเมอร์ในแนวทางเชิงวัตถุและภาษาการเขียนโปรแกรมเชิงวัตถุ แนวทางเชิงวัตถุเป็นหนึ่งในพื้นที่ที่มีการพัฒนาอย่างรวดเร็วที่สุดของการเขียนโปรแกรมเชิงทฤษฎีและประยุกต์

1.3 เครื่องมือสำหรับการใช้เทคโนโลยีการเขียนโปรแกรมเชิงวัตถุ

ในเทคโนโลยี OOP ความสัมพันธ์ระหว่างข้อมูลและอัลกอริธึมจะสม่ำเสมอมากขึ้น ขั้นแรก คลาส (แนวคิดพื้นฐานของเทคโนโลยีนี้) จะรวมข้อมูล (ตัวแปรที่มีโครงสร้าง) และวิธีการ (ฟังก์ชัน) ประการที่สอง รูปแบบของการโต้ตอบระหว่างฟังก์ชันและข้อมูลมีความแตกต่างกันโดยพื้นฐาน เมธอด (ฟังก์ชัน) ที่เรียกใช้บนวัตถุหนึ่งมักจะไม่เรียกใช้ฟังก์ชันอื่นโดยตรง ขั้นแรกเขาต้องมีสิทธิ์เข้าถึงวัตถุอื่น (สร้าง รับตัวชี้ ใช้วัตถุภายในในวัตถุปัจจุบัน ฯลฯ) หลังจากนั้นเขาสามารถเรียกหนึ่งในนั้นได้แล้ว วิธีการที่ทราบ- ดังนั้นโครงสร้างของโปรแกรมจึงถูกกำหนดโดยการโต้ตอบของวัตถุในคลาสที่แตกต่างกันซึ่งกันและกัน ตามกฎแล้ว จะมีลำดับชั้นของคลาส และเทคโนโลยี OOP สามารถเรียกได้ว่าเป็นการเขียนโปรแกรมแบบ "คลาสต่อคลาส"

การเขียนโปรแกรมใดๆ จะดำเนินการตามหลักการข้อใดข้อหนึ่งจากสี่ข้อ:

หลักการของความเป็นโมดูลาร์

หลักการ “จากทั่วไปไปสู่เฉพาะเจาะจง”

· หลักการทีละขั้นตอน

· หลักการวางโครงสร้าง

การเขียนโปรแกรมแบบโมดูลาร์- หลักการของโมดูลาร์ถูกกำหนดขึ้นตามความต้องการในการพัฒนาโปรแกรมในรูปแบบของชุดโมดูล (ฟังก์ชัน) ในกรณีนี้ การแบ่งออกเป็นโมดูลไม่ควรมีลักษณะทางกล แต่ขึ้นอยู่กับตรรกะของโปรแกรม:

1. ขนาดโมดูลต้องจำกัด

2. โมดูลจะต้องดำเนินการเชิงตรรกะและการดำเนินการที่สมบูรณ์

3. โมดูลต้องเป็นสากล นั่นคือเมื่อใดก็ตามที่เป็นไปได้ กำหนดพารามิเตอร์: คุณลักษณะที่เปลี่ยนแปลงได้ทั้งหมดของการกระทำที่กำลังดำเนินการจะต้องส่งผ่านพารามิเตอร์

4. พารามิเตอร์อินพุตและขอแนะนำให้ส่งผลลัพธ์ของโมดูลไม่ผ่านตัวแปรโกลบอล แต่ผ่านพารามิเตอร์ที่เป็นทางการและผลลัพธ์ของฟังก์ชัน

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

ศูนย์รวมของหลักการของโมดูลาร์คือห้องสมุด คุณสมบัติมาตรฐาน- ก็มักจะจัดให้ ชุดสมบูรณ์การกระทำที่กำหนดพารามิเตอร์โดยใช้ โครงสร้างทั่วไปข้อมูล. ห้องสมุดเป็นโปรแกรมที่คล้ายกัน มีการแปลโดยอิสระและจัดอยู่ในแค็ตตาล็อกห้องสมุด

การเขียนโปรแกรมจากบนลงล่าง การออกแบบโปรแกรมจากบนลงล่างคือการพัฒนามาจากการกำหนดทั่วไปอย่างไม่เป็นทางการของการดำเนินการบางอย่างของโปรแกรม ภาษาธรรมชาติ, “จากทั่วไปไปสู่เฉพาะ”: เพื่อแทนที่ด้วยหนึ่งในสามโครงสร้างภาษาโปรแกรมอย่างเป็นทางการ:

· ลำดับการกระทำอย่างง่าย

· โครงสร้างการเลือกหรือคำสั่ง if;

· การทำซ้ำหรือการสร้างวงจร

ในสัญลักษณ์ของอัลกอริทึม สิ่งนี้สอดคล้องกับการเคลื่อนไหวจากโครงสร้างภายนอก (ครอบคลุม) ไปยังโครงสร้างภายใน (ซ้อนกัน) การออกแบบเหล่านี้อาจมีคำอธิบายการกระทำอย่างไม่เป็นทางการในส่วนต่างๆ กล่าวคือ การออกแบบจากบนลงล่างมีลักษณะเป็นขั้นเป็นตอน ให้เราทราบคุณสมบัติหลักของแนวทางนี้:

· เริ่มแรกโปรแกรมได้รับการกำหนดในรูปแบบของการกระทำที่ไม่เป็นทางการในภาษาธรรมชาติ

· พารามิเตอร์อินพุตและผลลัพธ์ของการดำเนินการจะถูกกำหนดในขั้นต้น

· ขั้นตอนถัดไปของรายละเอียดจะไม่เปลี่ยนโครงสร้างของโปรแกรมที่ได้รับในขั้นตอนก่อนหน้า

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

· โครงสร้างข้อมูลที่จำเป็นได้รับการออกแบบไปพร้อมกับรายละเอียดของโปรแกรม

การเขียนโปรแกรมทีละขั้นตอน การออกแบบจากบนลงล่างมีลักษณะเป็นแบบค่อยเป็นค่อยไป เพราะมันเกี่ยวข้องกับการแทนที่รูปแบบคำพูดแต่ละครั้งด้วยโครงสร้างภาษาเดียว แต่ในกระบวนการพัฒนาโปรแกรมอาจมีขั้นตอนอื่นที่เกี่ยวข้องกับการกำหนดสูตรวาจาให้ละเอียดยิ่งขึ้น

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

โดยทั่วไปแล้วลง การออกแบบทีละขั้นตอนโปรแกรมไม่รับประกันการรับโปรแกรมที่ "ถูกต้อง" แต่ช่วยให้คุณสามารถกลับไปยังขั้นตอนบนสุดของรายละเอียดได้เมื่อตรวจพบการหยุดชะงัก

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

การเขียนโปรแกรมแบบมีโครงสร้างเป็นแบบโมดูลาร์ จากบนลงล่าง การออกแบบอัลกอริทึมและโครงสร้างข้อมูลทีละขั้นตอน

แนวทางการเขียนโปรแกรมเชิงวัตถุประกอบด้วย 3 องค์ประกอบหลัก:

· การวิเคราะห์เชิงวัตถุ (OOA)

· การออกแบบเชิงวัตถุ (OOD)

· การเขียนโปรแกรมเชิงวัตถุ (OOP)

ในสาขาวิชาวิศวกรรมใดๆ การออกแบบมักจะหมายถึงแนวทางที่เป็นหนึ่งเดียว ซึ่งเรามองหาวิธีในการแก้ปัญหาเฉพาะ เพื่อให้มั่นใจว่างานจะบรรลุผลสำเร็จ ในบริบทของการออกแบบทางวิศวกรรม เป้าหมายการออกแบบหมายถึงการสร้างระบบที่

ตอบสนองความต้องการที่กำหนด (อาจไม่เป็นทางการ) ข้อกำหนดการทำงาน;

· สอดคล้องกับข้อจำกัดที่กำหนดโดยอุปกรณ์

· ตอบสนองข้อกำหนดที่ชัดเจนและโดยปริยายสำหรับประสิทธิภาพและการใช้ทรัพยากร

· เป็นไปตามเกณฑ์การออกแบบผลิตภัณฑ์ที่ชัดเจนและโดยปริยาย

· ตอบสนองข้อกำหนดสำหรับกระบวนการพัฒนา เช่น ระยะเวลาและต้นทุน รวมถึงการใช้เครื่องมือเพิ่มเติม

การออกแบบเกี่ยวข้องกับการคำนึงถึงข้อกำหนดที่ขัดแย้งกัน สินค้าของบริษัทเป็นโมเดลที่ทำให้เราเข้าใจโครงสร้าง ระบบในอนาคตสร้างสมดุลระหว่างข้อกำหนดและร่างแผนการดำเนินงาน

โปรแกรมเป็นแบบจำลองเชิงตัวเลขของระบบที่กำลังออกแบบ (รูปที่ 1.3.1)

ข้าว. 1.3.1. โครงสร้างโปรแกรม

ความสำคัญของการสร้างแบบจำลอง การสร้างแบบจำลองแพร่หลายไปทั่วทุกสาขาวิศวกรรม โดยส่วนใหญ่เป็นเพราะมีการใช้หลักการของการสลายตัว นามธรรม และลำดับชั้น แต่ละโมเดลจะอธิบายบางส่วนของระบบที่กำลังพิจารณา และในทางกลับกัน เราก็สร้างโมเดลใหม่โดยอิงจากโมเดลเก่า ซึ่งเรามั่นใจไม่มากก็น้อย โมเดลช่วยให้เราควบคุมความล้มเหลวได้ เราประเมินพฤติกรรมของแต่ละโมเดลในสถานการณ์ปกติและไม่ปกติ จากนั้นทำการปรับเปลี่ยนที่เหมาะสมหากเราไม่พอใจกับบางสิ่งบางอย่าง

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

· สัญลักษณ์ - ภาษาสำหรับอธิบายแต่ละรุ่น

· กระบวนการ - กฎสำหรับการออกแบบแบบจำลอง

·เครื่องมือ - เครื่องมือที่เร่งกระบวนการสร้างแบบจำลองและกฎการทำงานของแบบจำลองได้รวมไว้แล้ว เครื่องมือช่วยระบุข้อผิดพลาดในระหว่างกระบวนการพัฒนา

วิธีการออกแบบที่ดีจะขึ้นอยู่กับของแข็ง พื้นฐานทางทฤษฎีและในขณะเดียวกันก็ทำให้โปรแกรมเมอร์มีอิสระในการแสดงออกในระดับหนึ่ง

โมเดลเชิงวัตถุ มีประโยชน์มากที่สุดในการสร้างแบบจำลองที่เน้นไปที่ออบเจ็กต์ที่พบในโดเมนเอง ซึ่งก่อให้เกิดสิ่งที่เรียกว่าการสลายตัวเชิงวัตถุ

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

เนื่องจากแบบจำลองอาคารมีความสำคัญอย่างยิ่งเมื่อออกแบบ ระบบที่ซับซ้อนการออกแบบเชิงวัตถุมีโมเดลให้เลือกมากมาย (แสดงในรูปที่ 1.3.2) โมเดลการออกแบบเชิงวัตถุสะท้อนถึงลำดับชั้นของทั้งคลาสและอ็อบเจ็กต์ระบบ โมเดลเหล่านี้ครอบคลุมช่วงที่สำคัญที่สุดทั้งหมด โซลูชั่นการออกแบบซึ่งจะต้องคำนึงถึงเมื่อออกแบบระบบที่ซับซ้อนและเป็นแรงบันดาลใจให้เราสร้างการออกแบบที่มีคุณสมบัติทั้งห้าของระบบที่ซับซ้อนที่ออกแบบมาอย่างดี

ข้าว. 1.3.2 โมเดลเชิงวัตถุ

OOP คืออุดมการณ์การเขียนโปรแกรมที่อิงจากการรวมข้อมูลและขั้นตอนต่างๆ ที่สามารถทำงานร่วมกับข้อมูลนี้เรียกรวมกันว่าคลาส

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

สำหรับตัวอย่างการใช้งานคลาส ลองดูที่การนำแนวคิดของหนังสือไปใช้โดยใช้คลาสเพื่อกำหนดการเป็นตัวแทนของหนังสือ TBook และชุดฟังก์ชันสำหรับการทำงานกับตัวแปรประเภทนี้:

PagesCount: จำนวนเต็ม;

ฟังก์ชั่น CompareWithBook (OtherBook: TBook): จำนวนเต็ม;

ขั้นตอน ShowTitle;

ตัวสร้างสร้าง (NewTitle, New

ความสามารถทางปัญญาของมนุษย์มีจำกัด เราสามารถขยายขอบเขตของมันได้โดยใช้การสลายตัว นามธรรม และลำดับชั้น

ระบบที่ซับซ้อนสามารถศึกษาได้โดยการมุ่งเน้นไปที่วัตถุหรือกระบวนการ มีเหตุผลที่ดีที่จะใช้การสลายตัวเชิงวัตถุ ซึ่งโลกถูกมองว่าเป็นกลุ่มสะสมของวัตถุที่ได้รับคำสั่ง ซึ่งในกระบวนการโต้ตอบซึ่งกันและกัน จะเป็นตัวกำหนดพฤติกรรมของระบบ

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

2. การสร้างโมเดลวัตถุของโดเมนหัวเรื่อง “การจัดระเบียบกระบวนการของสโมสรกีฬา” โดยใช้ภาษาการสร้างแบบจำลอง UML

2.1 แนวคิดของภาษา UML

UML (Unified Modeling Language) เป็นภาษาการสร้างแบบจำลองกราฟิกแบบครบวงจรสำหรับการอธิบาย การแสดงภาพ การออกแบบ และการบันทึกระบบเชิงวัตถุ UML ได้รับการออกแบบมาเพื่อสนับสนุนกระบวนการสร้างแบบจำลองซอฟต์แวร์โดยใช้แนวทางเชิงวัตถุ เพื่อจัดระเบียบความสัมพันธ์ระหว่างแนวความคิดและ แนวคิดของโปรแกรมสะท้อนถึงความท้าทายของการปรับขนาดระบบที่ซับซ้อน โมเดล UML ถูกใช้ในทุกขั้นตอน วงจรชีวิตเครื่องมือซอฟต์แวร์ ตั้งแต่การวิเคราะห์ธุรกิจไปจนถึงการบำรุงรักษาระบบ องค์กรต่างๆ อาจใช้ UML ตามที่เห็นสมควร ขึ้นอยู่กับปัญหาและเทคโนโลยีที่พวกเขาใช้

2.1.1 ประวัติโดยย่อของ UML

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

ตามคำร้องขอของกลุ่มการจัดการวัตถุ (OMG) องค์กรที่รับผิดชอบในการนำมาตรฐานมาใช้ในด้านนั้น เทคโนโลยีวัตถุและฐานข้อมูล ปัญหาเร่งด่วนของการรวมและมาตรฐานได้รับการแก้ไขโดยผู้เขียนวิธีการเชิงวัตถุที่ได้รับความนิยมสูงสุดสามวิธี ได้แก่ G. Booch, D. Rambo และ A. Jacobson ซึ่งร่วมกันสร้างเวอร์ชัน UML 1.1 ซึ่งได้รับการอนุมัติโดย OMG ในปี 1997 เป็น มาตรฐาน

จากความสนใจที่เพิ่มขึ้นใน UML บริษัทต่างๆ เช่น Digital Equipment Corporation, Hewlett-Packard, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle Corporation, Rational Software ได้เข้าร่วมการพัฒนาเวอร์ชันใหม่ของภาษา ภายในกลุ่มพันธมิตร UML เท็กซัส อินสทรูเมนท์สและยูนิซิส ผลลัพธ์ของการทำงานร่วมกันคือข้อกำหนด UML 1.0 ซึ่งเปิดตัวในเดือนมกราคม 1997 ตามมาในเดือนพฤศจิกายนของปีเดียวกันด้วยเวอร์ชัน 1.1 ซึ่งมีการปรับปรุงสัญกรณ์และส่วนขยายความหมายบางส่วน UML 1.4.2 ได้รับการรับรองเป็นมาตรฐานสากลโดย ISO/IEC 19501:2005

ข้อมูลจำเพาะอย่างเป็นทางการสำหรับ UML 2.0 เวอร์ชันล่าสุดเผยแพร่ในเดือนสิงหาคม พ.ศ. 2548 ความหมายของภาษาได้รับการปรับปรุงและขยายอย่างมีนัยสำคัญเพื่อรองรับ Model Driven Development - MDD methodology เวอร์ชันล่าสุด UML 2.4.1 ได้รับการเผยแพร่ในเดือนสิงหาคม 2554 UML 2.4.1 ได้รับการรับรองเป็นมาตรฐานสากลโดย ISO/IEC 19505-1, 19505-2

2.1.2 ภาษา UML

ภาษาใดก็ตามประกอบด้วยคำศัพท์และกฎเกณฑ์ในการรวมคำเพื่อสร้างโครงสร้างที่มีความหมาย โดยเฉพาะอย่างยิ่งนี่คือวิธีโครงสร้างภาษาการเขียนโปรแกรมเช่น UML คุณลักษณะที่โดดเด่นของมันคือคำศัพท์ของภาษานั้นประกอบด้วยองค์ประกอบกราฟิก ถึงทุกคน สัญลักษณ์กราฟิกความหมายเฉพาะสอดคล้องกัน ดังนั้นโมเดลที่สร้างขึ้นโดยนักพัฒนารายหนึ่งสามารถเข้าใจได้โดยบุคคลอื่นอย่างชัดเจน เช่นเดียวกับเครื่องมือซอฟต์แวร์ที่ตีความ UML โดยเฉพาะอย่างยิ่งจากที่นี่เป็นไปตามที่โมเดลซอฟต์แวร์ที่นำเสนอใน UML สามารถแปลเป็นภาษาโปรแกรม OO ได้โดยอัตโนมัติ (เช่น Java, C++, VisualBasic) นั่นคือหากมีเครื่องมือสร้างแบบจำลองภาพที่ดีที่รองรับ UML ก็มี สร้างโมเดลแล้วเราก็จะได้รับช่องว่างด้วย รหัสโปรแกรมสอดคล้องกับรุ่นนี้

ควรเน้นว่า UML เป็นภาษา ไม่ใช่วิธีการ โดยจะอธิบายว่าองค์ประกอบใดในการสร้างโมเดลและวิธีอ่าน แต่ไม่ได้บอกว่าโมเดลใดควรได้รับการพัฒนาและในกรณีใด ในการสร้างวิธีการตาม UML จำเป็นต้องเสริมด้วยคำอธิบายของกระบวนการพัฒนาซอฟต์แวร์ ตัวอย่างของกระบวนการดังกล่าวคือ Rational Unified Process ซึ่งจะกล่าวถึงในบทความต่อๆ ไป

2.1.3 พจนานุกรม UML

แบบจำลองนี้แสดงในรูปแบบของเอนทิตีและความสัมพันธ์ระหว่างสิ่งเหล่านั้น ซึ่งแสดงไว้ในไดอะแกรม

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

ความสัมพันธ์แสดงความเชื่อมโยงต่างๆ ระหว่างเอนทิตี UML กำหนดประเภทความสัมพันธ์ต่อไปนี้:

· การพึ่งพาแสดงให้เห็นการเชื่อมโยงระหว่างสองเอนทิตี เมื่อการเปลี่ยนแปลงในหนึ่งในนั้น - เป็นอิสระจากกัน - สามารถส่งผลกระทบต่อความหมายของอีกสิ่งหนึ่ง - ขึ้นอยู่กับ การขึ้นต่อกันจะแสดงด้วยลูกศรประที่ส่งตรงจากเอนทิตีที่ขึ้นต่อกันไปยังเอนทิตีอิสระ

· การเชื่อมโยงคือความสัมพันธ์เชิงโครงสร้างที่แสดงให้เห็นว่าวัตถุของเอนทิตีหนึ่งเชื่อมโยงกับวัตถุของอีกวัตถุหนึ่ง ในรูปแบบกราฟิก การเชื่อมโยงจะแสดงเป็นเส้นที่เชื่อมต่อเอนทิตีที่เกี่ยวข้อง การเชื่อมโยงทำหน้าที่นำทางระหว่างวัตถุ ตัวอย่างเช่น การเชื่อมโยงระหว่างคลาส "คำสั่งซื้อ" และ "ผลิตภัณฑ์" สามารถใช้เพื่อค้นหาผลิตภัณฑ์ทั้งหมดที่ระบุในคำสั่งซื้อเฉพาะในด้านหนึ่ง หรือเพื่อค้นหาคำสั่งซื้อทั้งหมดที่มีผลิตภัณฑ์นี้ในอีกด้านหนึ่ง เป็นที่ชัดเจนว่าโปรแกรมที่เกี่ยวข้องจะต้องใช้กลไกที่ให้การนำทางดังกล่าว หากจำเป็นต้องนำทางในทิศทางเดียว จะมีลูกศรระบุที่ส่วนท้ายของการเชื่อมโยง กรณีพิเศษของการสมาคมคือการรวมกลุ่ม - ความสัมพันธ์ในรูปแบบ "ทั้งหมด" - "บางส่วน" โดยกราฟิกจะเน้นด้วยเพชรที่ส่วนท้ายใกล้กับเนื้อเอสเซนส์ทั้งหมด

· ลักษณะทั่วไปคือความสัมพันธ์ระหว่างเอนทิตีหลักและเอนทิตีลูก โดยพื้นฐานแล้ว ความสัมพันธ์นี้สะท้อนถึงคุณสมบัติของการสืบทอดสำหรับคลาสและอ็อบเจ็กต์ ลักษณะทั่วไปจะแสดงเป็นเส้นที่ลงท้ายด้วยรูปสามเหลี่ยมที่มุ่งไปยังเอนทิตีหลัก ลูกสืบทอดโครงสร้าง (คุณลักษณะ) และพฤติกรรม (วิธีการ) ของผู้ปกครอง แต่ในขณะเดียวกันก็สามารถมีองค์ประกอบโครงสร้างใหม่และวิธีการใหม่ได้ UML อนุญาต มรดกหลายอย่างเมื่อเอนทิตีเกี่ยวข้องกับเอนทิตีหลักมากกว่าหนึ่งรายการ

· การใช้งาน - ความสัมพันธ์ระหว่างเอนทิตีที่กำหนดข้อกำหนดของพฤติกรรม (อินเทอร์เฟซ) กับเอนทิตีที่กำหนดการใช้งานของพฤติกรรมนี้ (คลาส ส่วนประกอบ) ความสัมพันธ์นี้มักใช้เมื่อสร้างโมเดลส่วนประกอบ และจะอธิบายรายละเอียดเพิ่มเติมในบทความต่อๆ ไป

ไดอะแกรม UML มีไดอะแกรมต่อไปนี้:

· แผนภาพที่อธิบายพฤติกรรมของระบบ:

ไดอะแกรมของรัฐ

· แผนภาพกิจกรรม

· ไดอะแกรมวัตถุ

แผนภาพลำดับ

· แผนภาพการทำงานร่วมกัน

· ไดอะแกรมที่อธิบายการใช้งานจริงของระบบ:

· ไดอะแกรมส่วนประกอบ

· ไดอะแกรมการปรับใช้

2.1.4 โครงสร้างการจัดการแบบจำลอง

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

UML จัดให้

· คำอธิบายลำดับชั้นของระบบที่ซับซ้อนโดยการเน้นแพ็คเกจ

· การทำให้ข้อกำหนดด้านการทำงานอย่างเป็นทางการสำหรับระบบโดยใช้อุปกรณ์ของกรณีการใช้งาน

· รายละเอียดความต้องการของระบบโดยการสร้างไดอะแกรมกิจกรรมและสถานการณ์จำลอง

· การระบุคลาสข้อมูลและการสร้างแบบจำลองข้อมูลเชิงแนวคิดในรูปแบบของคลาสไดอะแกรม

· การระบุคลาสที่อธิบายอินเทอร์เฟซผู้ใช้และสร้างโครงร่างการนำทางบนหน้าจอ

· คำอธิบายกระบวนการโต้ตอบของวัตถุเมื่อทำหน้าที่ของระบบ

· คำอธิบายพฤติกรรมของวัตถุในรูปแบบของกิจกรรมและไดอะแกรมสถานะ

· คำอธิบายส่วนประกอบซอฟต์แวร์และการโต้ตอบผ่านอินเทอร์เฟซ

· คำอธิบายสถาปัตยกรรมทางกายภาพของระบบ

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

2.2 คำอธิบายการทำงานของหัวข้อ “การจัดระเบียบการทำงานของสโมสรกีฬา”

ขึ้นอยู่กับลักษณะของการเชื่อมต่อระหว่างแผนกขององค์กรโครงสร้างองค์กรประเภทต่อไปนี้มีความโดดเด่น: เชิงเส้น, การทำงาน, การทำงานเชิงเส้นและเมทริกซ์

งานของสโมสรกีฬาแห่งนี้ใช้โครงสร้างการจัดการเชิงเส้นตรง

สโมสรกีฬาแก้ไขปัญหาต่อไปนี้:

· การมีส่วนร่วมของเยาวชนและสมาชิกในครอบครัวในการพลศึกษาและการกีฬาอย่างเป็นระบบ

· การศึกษาคุณสมบัติทางกายภาพและศีลธรรม เสริมสร้างสุขภาพและลดการเจ็บป่วย เพิ่มระดับความพร้อมทางวิชาชีพและกิจกรรมทางสังคมของเยาวชน

· จัดและดำเนินกิจกรรมสันทนาการ พลศึกษา และกีฬา

· การก่อตั้งสมาคมกีฬาสมัครเล่น สโมสร ส่วนต่างๆ และทีมกีฬา

· การส่งเสริมวัฒนธรรมทางกายภาพและการกีฬา วิถีชีวิตที่มีสุขภาพดี การจัดระเบียบการพักผ่อนที่มีความหมาย การมีส่วนร่วมของคนหนุ่มสาวในวงกว้างในกิจกรรมทางสังคมและการเมือง

สโมสรกีฬาทำหน้าที่ดังต่อไปนี้:

· นำวัฒนธรรมทางกายภาพและการกีฬาไปใช้ในกิจกรรมของเยาวชน ชีวิตและนันทนาการของพวกเขา ส่งเสริมวิถีชีวิตที่มีสุขภาพดีต่อสู้เพื่อเอาชนะ นิสัยไม่ดี;

·สร้างเงื่อนไขขององค์กรและระเบียบวิธีที่จำเป็นสำหรับการฝึกวัฒนธรรมทางกายภาพและการกีฬาในรูปแบบและประเภทต่าง ๆ ตามประเพณีที่จัดตั้งขึ้นในประเทศ

· แนะนำรูปแบบและวิธีการใหม่ๆ พลศึกษาประสบการณ์ขั้นสูงและความสำเร็จทางวิทยาศาสตร์ ใช้อย่างมีเหตุผลและมีประสิทธิภาพ ฐานวัสดุ;

· พัฒนาหลักการทางสังคมในทุกวิถีทางที่เป็นไปได้ในงานพลศึกษา สุขภาพและการกีฬา

· ให้ความช่วยเหลือแก่โรงเรียนมัธยมและวิทยาลัยในการจัดกิจกรรมนันทนาการมวลชน พลศึกษา และกีฬา

· จัดกระบวนการศึกษาและฝึกอบรมในส่วนกีฬา (ทีมชาติ)

· พัฒนาและดำเนินการแผนปฏิทินสำหรับกิจกรรมนันทนาการมวลชน พลศึกษา และกีฬา เพื่อให้มั่นใจในความปลอดภัยของการดำเนินการ

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

· จัดให้มีการควบคุมทางการแพทย์เกี่ยวกับสถานะสุขภาพของผู้ที่เกี่ยวข้องร่วมกับหน่วยงานด้านสุขภาพ วัฒนธรรมทางกายภาพและกีฬาประเภทต่างๆ (ทีมชาติ)

· จัดทำแผนปัจจุบันและแผนระยะยาวสำหรับการพัฒนากิจกรรมพลศึกษา สุขภาพ การศึกษาและการกีฬา และประมาณการค่าใช้จ่ายสำหรับสโมสร

· ภายในขอบเขตของความสามารถ เลือกและวางบุคลากรพลศึกษา

· อาจมีธง ตราสัญลักษณ์ ชุดกีฬา แสตมป์ หัวจดหมาย

· ดำเนินการแข่งขันมวลชน วันกีฬาสี (มหาวิทยาลัย) ค่ายการศึกษาและการฝึกอบรม

· ตามขั้นตอนที่ได้รับอนุมัติ ส่งทีมและนักกีฬารายบุคคลเข้าร่วมการแข่งขัน

· ออกใบรับรองที่เหมาะสม (ตรา) ให้กับสมาชิกของทีมมหาวิทยาลัย

2.3 การสร้างแผนผังชั้นเรียนสำหรับหัวข้อ “การจัดกระบวนการของสโมสรกีฬา”

สโมสรกีฬามีสี่ส่วนตามสโมสร:

· บาสเก็ตบอล

· วอลเลย์บอล

· เทนนิส

เมื่อผู้สมัครนักกีฬาสมัครเข้าชมรมกีฬาเพื่อลงทะเบียนในส่วนใด ๆ การลงทะเบียนจะดำเนินการซึ่งเกี่ยวข้องกับการดำเนินการดังต่อไปนี้:

· ข้อมูลเกี่ยวกับนักกีฬาจะถูกป้อนลงในตารางโดยระบุ 5 ช่อง: นามสกุล, ชื่อ, อายุ, โทรศัพท์, ส่วน

· นักกีฬาจะถูกแบ่งออกเป็นส่วนที่ส่งใบสมัคร

· ผู้ปกครองของนักกีฬาจะได้รับตารางในส่วนของสโมสรกีฬา

สำหรับองค์กร การดำเนินการที่ถูกต้องสโมสร การประสานงานการทำงานของส่วนต่าง ๆ การจ้างโค้ช ผู้บริหารสโมสรกีฬาเป็นผู้กรอกกำหนดการ

เมื่อเข้าร่วมชมรม นักกีฬาจะถูกป้อนเข้าไปในโต๊ะที่ระบุหมวด นักกีฬาทุกคนที่เกี่ยวข้องกับสโมสรจะต้องเข้าไปในตารางหลักที่ระบุส่วนนั้น

สำหรับ การแสดงภาพแผนภาพ UML ถูกสร้างขึ้นสำหรับกระบวนการทำงานของสโมสรกีฬา (รูปที่ 2.3.1)

ข้าว. 2.3.1 รูปแบบเชิงวัตถุของสโมสรกีฬา

3. การก่อสร้างแบบจำลองวัตถุของโดเมนหัวเรื่อง “การจัดระเบียบการทำงานของสโมสรกีฬา” โดยใช้สภาพแวดล้อมการเขียนโปรแกรมภาพเดลฟี

3.1 คำอธิบายโครงสร้างแอปพลิเคชัน

แอปพลิเคชั่นนี้เป็นส่วนหนึ่งของแพ็คเกจ Sport ประกอบด้วยคลาส: คลาส TPeople

คลาส “TPeople” ช่วยให้คุณสร้างและสะสมข้อมูลเกี่ยวกับเด็กที่เกี่ยวข้องกับเรื่องนี้ได้ สปอร์ตคลับซึ่งเรียกว่า "โอกอนยอค" มีห้าฟิลด์: ชื่อถูกระบุโดยสตริง "ชื่อ"; นามสกุลระบุโดยสตริง "Famil"; อายุถูกเก็บไว้ในตัวแปรตัวเลข (int) "อายุ"; หมายเลขโทรศัพท์ระบุโดยสตริง "Tel"; ส่วนที่ฝึกนักกีฬาระบุด้วยสตริง “Sekc”

TPeople = คลาส

ชื่อ: สตริง;

ครอบครัว: สตริง;

อายุ: จำนวนเต็ม;

โทร: สตริง;

วินาที: สตริง;

ตัวสร้างสร้าง (AName: String);

จบ;

ในกรณีนี้ ฟิลด์จะถูกป้อนได้สองวิธี:

กำลังโหลดค่าจากไฟล์ที่บันทึกด้วยนามสกุล LST (รูปที่ 3.1.1.)

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

var F: ไฟล์ข้อความ;

ฉัน: จำนวนเต็ม;

เริ่ม

พยายาม

ด้วย OpenDlg, PersonsList.Items ทำ

เริ่ม

ถ้าไม่ดำเนินการให้ออก;

LoadFromFile(ชื่อไฟล์);

AssignFile(F, Copy(ชื่อไฟล์,1,ความยาว(ชื่อไฟล์)-4)+".lso");

รีเซ็ต(F);

ฉัน:= 0;

ในขณะที่ไม่ใช่ EOF(F) ทำ

เริ่ม

วัตถุ [i] := TPeople.Create ("");

Readln(F, (Objects[i] as TPeople).Name);

Readln(F, (Objects[i] as TPeople).Famil);

Readln(F, (Objects[i] as TPeople).Age);

Readln(F, (Objects[i] as TPeople).tel);

Readln(F, (Objects[i] as TPeople).sekc);

อิงค์(i);

จบ;

ปิดไฟล์(F);

จบ;

ยกเว้น

บน E: EFOpenError ทำ ShowMessage("เกิดข้อผิดพลาดในการเปิดไฟล์");

สิ้นสุด;สิ้นสุด;

ข้าว. 3.1.1 การอัพโหลดไฟล์

วิธีที่สองในการกรอกตารางคือการป้อนข้อมูลโดยใช้ส่วนประกอบแก้ไข (รูปที่ 3.1.2)

ข้าว. 3.1.2 การกรอกตารางโดยใช้องค์ประกอบแก้ไข

นอกจากนี้ค่าของฟิลด์ "ส่วน" จะถูกเลือกจากค่าของคอมโพเนนต์ Combobox และกำหนดให้กับบรรทัด "Sekc" (รูปที่.3.1.3)

ข้าว. 3.1.3 ส่วนประกอบคอมโบบ็อกซ์

ค่าที่ป้อนสามารถปรับได้โดยเลือกค่าที่ต้องการแล้วคลิกปุ่ม "เปลี่ยน" (รูปที่ 3.1.4)

ข้าว. 3.1.4 การเปลี่ยนแปลงค่า

โปรแกรมจัดให้มีการลบค่าโดยการลบหนึ่งรายการ (รูปที่ 3.1.5) และการลบรายการทั้งหมด (รูปที่ 3.1.6)

การลบหนึ่งระเบียนทำได้โดยการเลือกค่าแล้วคลิกปุ่ม "ลบ"

ข้าว. 3.1.5 การลบหนึ่งรายการ

หากต้องการล้างข้อมูลทั้งหมด ให้คลิกปุ่ม "ล้าง"

ข้าว. 3.1.6 ปุ่ม “ล้าง”

วิธีการกำจัดทั้งสองวิธีดำเนินการโดยใช้วิธีการต่อไปนี้:

ขั้นตอน TMainForm.ToolButton4Click (Sender: TObject);

เริ่ม

ด้วย PersonsList ทำ Items.Delete(ItemIndex);

จบ;

ขั้นตอน TMainForm.ToolButton5Click (ผู้ส่ง: TObject);

เริ่ม

PersonsList.Items.Clear;

จบ;

หลังจากกรอกตารางนักกีฬาแล้วจำเป็นต้องบันทึกไว้เพื่อใช้ในอนาคต ทำได้โดยการคลิกปุ่ม "บันทึก" (รูปที่ 3.1.7) หลังจากคลิกปุ่มนี้ กล่องโต้ตอบจะเปิดขึ้น โดยระบุโฟลเดอร์จัดเก็บไฟล์และชื่อ (รูปที่ 3.1.8)

เอกสารที่คล้ายกัน

    คำอธิบายสั้น ๆสาขาวิชา ความเกี่ยวข้องของการพัฒนาแบบจำลองระบบสารสนเทศเชิงวัตถุสำหรับ ห้องสมุดการศึกษา- สร้าง Use Case Diagram, Sequence Diagram, Collaboration Diagram, Class Diagram

    งานหลักสูตรเพิ่มเมื่อ 06/01/2552

    การพัฒนาระบบย่อยเชิงวัตถุ การบัญชีคลังสินค้าสำหรับบริษัท "KavkazYugAvto" คำอธิบายโดยย่อของสาขาวิชา การวาดไดอะแกรมของตำแหน่ง กรณีใช้งาน ลำดับ ส่วนประกอบ และคลาส กำลังสร้างโค้ด C++

    งานหลักสูตรเพิ่มเมื่อ 26/06/2554

    องค์ประกอบพื้นฐานของแบบจำลองวัตถุ สาระสำคัญและข้อดีของแนวทางเชิงวัตถุ แนวคิดของวัตถุและคลาส UML ภาษาการสร้างแบบจำลองแบบรวม แผนภาพคลาสและปฏิสัมพันธ์: วัตถุประสงค์ โครงสร้าง และตัวอย่างการใช้งาน

    บทคัดย่อเพิ่มเมื่อ 06/09/2552

    คำอธิบายของหัวข้อ "ร้านค้าสำหรับขาย ส่วนประกอบคอมพิวเตอร์". การก่อสร้าง ER และ โมเดลเชิงสัมพันธ์ข้อมูล เอนทิตี และความสัมพันธ์ การสร้าง ER และแบบจำลองข้อมูลเชิงสัมพันธ์ การสืบค้น มุมมอง ขั้นตอนการจัดเก็บสำหรับสาขาวิชา

    งานหลักสูตรเพิ่มเมื่อ 15/06/2014

    ความเกี่ยวข้องและความสำคัญเชิงปฏิบัติของระบบซอฟต์แวร์ ชมรมคอมพิวเตอร์- การวิเคราะห์โดเมน แผนภาพคลาส แบบจำลองทางกายภาพของระบบ การพัฒนาโครงการ Visual IS โดยใช้ภาษา UML2.0 และสภาพแวดล้อมการสร้างแบบจำลอง Microsoft Visio

    งานหลักสูตรเพิ่มเมื่อ 21/06/2014

    การวิเคราะห์รายวิชา "การแข่งขันกวี" โดยใช้แนวทางเชิงวัตถุ การพัฒนา แอปพลิเคชันหน้าต่างและคำอธิบาย แบบจำลองข้อมูลสาขาวิชา คำอธิบายของขั้นตอน C++ ที่พัฒนาขึ้นและผลการทดสอบแอปพลิเคชัน

    งานหลักสูตร เพิ่มเมื่อ 18/06/2013

    การสร้างแบบจำลองเชิงฟังก์ชัน IDEF0 คำอธิบายกระบวนการทำงานทั้งหมดของฝ่ายสนับสนุนด้านเทคนิค การสลายตัวของแผนภาพบริบทและกระบวนการหลัก การสร้างโมเดลกระบวนการโดเมนในมาตรฐาน IDEF1X อินเทอร์เฟซของโปรแกรมควบคุมการจราจร

    รายงานการปฏิบัติ เพิ่มเมื่อ 22/11/2557

    การสร้างแบบจำลองสารสนเทศของสาขาวิชาโดยใช้วิธีการ แผนภาพ ER- การสร้างความสัมพันธ์ฐานข้อมูลโดยใช้ ภาษา SQL- การกรอกฐานข้อมูล การสร้างแบบสอบถามไปยังฐานข้อมูลชมรมคอมพิวเตอร์ สร้างรายงานด้วย โดยใช้ไมโครซอฟต์เวิร์ดและไมโครซอฟต์เอ็กเซล

    งานหลักสูตรเพิ่มเมื่อ 26/02/2552

    คำอธิบายโดยย่อของสาขาวิชา สร้างกรณีการใช้งาน ลำดับ การทำงานร่วมกัน คลาส ตำแหน่ง ไดอะแกรมส่วนประกอบ การเพิ่มรายละเอียดให้กับคำอธิบายการดำเนินการและการกำหนดคุณลักษณะ CLASS กำลังสร้างโค้ด C++

    งานหลักสูตรเพิ่มเมื่อ 29/06/2554

    ลักษณะทั่วไปของคลังสินค้าในฐานะที่เป็นเป้าหมายของกิจกรรมทางเศรษฐกิจ สร้างกรณีการใช้งานและไดอะแกรมลำดับ การสร้างแผนภาพการทำงานร่วมกันขององค์กร วัตถุประสงค์ของคลาสและไดอะแกรมส่วนประกอบ กำลังสร้างโค้ด C++

การสร้างโมเดลออบเจ็กต์ของปัญหาโดยใช้ภาษาการสร้างแบบจำลอง UML

งานเสร็จสิ้นใน StarUML

เวลานำ:

2 – 3 บทเรียน

เพื่อปกป้องงานของคุณ คุณต้องจัดเตรียมโปรเจ็กต์ที่สร้างขึ้นในแพ็คเกจ Rational Rose รวมถึงไดอะแกรมสามประเภท: กรณีการใช้งาน คลาส (อินเทอร์เฟซ ข้อมูล) และลำดับสำหรับแต่ละฟังก์ชัน

งานตัวอย่าง:

มีความจำเป็นต้องจัดให้มีการจัดเก็บในฐานข้อมูล ข้อมูลต่อไปนี้:

- ข้อมูลนักเรียน

โอ ชื่อเต็ม

โอ ที่อยู่,

โอ รายละเอียดหนังสือเดินทาง

โอ หมายเลขบันทึก

โอ วันเดือนปีเกิด

โอ กลุ่ม);

- ข้อมูลเกี่ยวกับความเชี่ยวชาญพิเศษ

โอ ชื่อของความเชี่ยวชาญพิเศษ

โอ รหัส;

- ข้อมูลเกี่ยวกับกลุ่ม

โอ พิเศษ,

โอ ปีที่เข้าศึกษา

โอ หมายเลขกลุ่ม

ตรวจสอบให้แน่ใจว่ามีการออกเอกสาร "รายการกลุ่ม" ที่มีฟิลด์ต่อไปนี้:

· หมายเลขซีเรียล,

· ชื่อเต็ม

· บันทึกหมายเลข


สั่งงาน

การสร้างแบบจำลองวัตถุดำเนินการในแพ็คเกจ Rational Rose เมื่อต้องการทำเช่นนี้ เรามาสร้างโปรเจ็กต์ว่างกันดีกว่า คุณควรเริ่มต้นการทำงานด้วย Use Case Diagram มันถูกสร้างขึ้นในพื้นที่หลักของส่วน Use Case View ดังแสดงในรูปที่ 9

ก่อนที่จะเริ่มสร้างไดอะแกรม จำเป็นต้องกำหนดบทบาทของผู้ใช้ระบบ (ผู้แสดง) และหน้าที่ของผู้ใช้ (กรณีการใช้งาน) ในกรณีของเรา มีนักแสดงสองคนที่ทำงานร่วมกับระบบ: “พนักงานของแผนกการศึกษา” และ “พนักงานของสำนักงานคณบดี” หน้าที่ของพนักงานแผนกการศึกษารวมถึงการรักษารายการพิเศษ (ภายใต้ รักษารายการเราจะเข้าใจการเพิ่มบันทึก ปรับเปลี่ยน และลบทิ้ง) หน้าที่ของพนักงานสำนักงานคณบดี ได้แก่ การเก็บรักษารายชื่อนักศึกษาและการเก็บรักษารายชื่อกลุ่ม

แผนภาพที่สร้างขึ้นจะแสดงในรูป 10.


ถัดไป ในส่วน มุมมองแบบลอจิคัล คุณควรสร้างไดอะแกรมคลาสสองไดอะแกรม เมื่อต้องการทำเช่นนี้ คุณสามารถสร้างสองแพ็คเกจ แผนภาพแรกควรมีคลาสอินเทอร์เฟซของแอปพลิเคชันที่ได้รับการออกแบบ (ดูรูปที่ 11) ในรูปนี้ ในคลาส "รายชื่อกลุ่ม" และ "รายชื่อนักเรียน" การดำเนินการเพิ่ม เปลี่ยนแปลง และลบจะถูกละไว้เพื่อหลีกเลี่ยงไม่ให้ตัวเลขเกะกะ รายชื่อกลุ่ม (ชั้นล่าง) เป็นเอกสารผลลัพธ์ (นำหน้าด้วยคลาส "การเลือกกลุ่ม" เนื่องจากจำเป็นต้องได้รับรายชื่อนักเรียนในกลุ่มใดกลุ่มหนึ่ง) แผนภาพที่สองคือเอนทิตีฐานข้อมูล (ดูรูปที่ 12)



แผนภาพคลาสที่สร้างขึ้นจะแสดงแอปพลิเคชันในอนาคตทุกรูปแบบและความสัมพันธ์ของแอปพลิเคชันในอนาคต

คุณควรป้อนข้อมูลสำคัญและสร้างการเชื่อมต่อ (จากเมนูบริบทลูกศร - หลายหลาก)

ขั้นตอนต่อไปของการสร้างแบบจำลองออบเจ็กต์คือการสร้างไดอะแกรมลำดับ ไดอะแกรมลำดับจะถูกสร้างขึ้นสำหรับแต่ละกรณีการใช้งานในแผนภาพกรณีการใช้งาน ในการเพิ่มไดอะแกรมลำดับให้กับกรณีการใช้งาน คุณจะต้องเลือกไดอะแกรมนั้นในแผนผังและเรียกเมนูบริบทบนไดอะแกรมนั้น (NewàSequence Diagram) ดังแสดงในรูปที่ 1 13.

ตัวอย่างของแผนภาพลำดับสำหรับแบบอย่าง "การรักษารายการความเชี่ยวชาญพิเศษ" จะแสดงไว้ในรูปที่ 1 14.

ควรสังเกตว่าเมื่อสร้างไดอะแกรมประเภทนี้สำหรับเอกสารเอาต์พุต "รายการกลุ่ม" ในกรณีของเรา คุณควรเลือกกลุ่มในรูปแบบ "การเลือกกลุ่ม" ก่อน (ซึ่งในทางกลับกันควรได้รับข้อมูลจาก "กลุ่ม" ” เอนทิตี) จากนั้นแสดงเอกสารฟอร์มเอาต์พุตซึ่งมีข้อมูลที่มาจากเอนทิตี "นักเรียน"

พื้นฐานแนวคิดของแนวทางเชิงวัตถุคือแบบจำลองวัตถุ หลักการสำคัญของการก่อสร้างคือ:

· สิ่งที่เป็นนามธรรม;

· การห่อหุ้ม;

· ความเป็นโมดูลาร์;

· ลำดับชั้น

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

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

การห่อหุ้มคือการแปลคุณสมบัติและพฤติกรรมทางกายภาพภายในนามธรรมเดียว (เรียกว่า "กล่องดำ") โดยซ่อนการใช้งานไว้เบื้องหลังอินเทอร์เฟซสาธารณะ

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

การห่อหุ้มมีความคล้ายคลึงกับแนวคิดเรื่องการซ่อนข้อมูล นี่คือความสามารถในการซ่อนรายละเอียดมากมายของวัตถุจากโลกภายนอก โลกภายนอกวัตถุคือทุกสิ่งที่อยู่ภายนอก รวมถึงส่วนที่เหลือของระบบด้วย การซ่อนข้อมูลให้ประโยชน์เช่นเดียวกับการห่อหุ้ม นั่นคือความยืดหยุ่น

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

ความเป็นโมดูลช่วยลดความซับซ้อนของระบบโดยอนุญาตให้มีการพัฒนาแต่ละโมดูลอย่างเป็นอิสระ การห่อหุ้มและการแยกส่วนจะสร้างอุปสรรคระหว่างนามธรรม

ลำดับชั้นเป็นระบบลำดับชั้นของนามธรรม ซึ่งจัดเรียงตามระดับ

ประเภทหลักของโครงสร้างลำดับชั้นที่เกี่ยวข้องกับระบบที่ซับซ้อนคือโครงสร้างคลาส (ลำดับชั้นตามระบบการตั้งชื่อ) และโครงสร้างของวัตถุ (ลำดับชั้นตามองค์ประกอบ) ตัวอย่างของลำดับชั้นของคลาสเป็นแบบเรียบง่ายและการสืบทอดหลายรายการ (คลาสหนึ่งใช้ส่วนโครงสร้างหรือฟังก์ชันตามลำดับของคลาสอื่นตั้งแต่หนึ่งคลาสขึ้นไป) และลำดับชั้นของอ็อบเจ็กต์คือการรวมกลุ่ม

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

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


การสร้างแบบจำลองแพร่หลายไปทั่วทุกสาขาวิศวกรรม โดยส่วนใหญ่เป็นเพราะมีการใช้หลักการของการสลายตัว นามธรรม และลำดับชั้น แต่ละโมเดลจะอธิบายส่วนหนึ่งของระบบที่พิจารณา และในทางกลับกัน เราก็สร้างโมเดลใหม่โดยอิงจากโมเดลเก่า ซึ่งเรามั่นใจไม่มากก็น้อย โมเดลช่วยให้เราควบคุมความล้มเหลวได้ เราประเมินพฤติกรรมของแต่ละโมเดลในสถานการณ์ปกติและไม่ปกติ จากนั้นทำการปรับเปลี่ยนที่เหมาะสมหากเราไม่พอใจกับบางสิ่งบางอย่าง


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

ประโยชน์ของโมเดลออบเจ็กต์

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


1. โมเดลออบเจ็กต์ช่วยให้คุณใช้ความสามารถในการแสดงออกของการเขียนโปรแกรมเชิงวัตถุและเชิงวัตถุได้อย่างเต็มที่ Stroustrup ตั้งข้อสังเกตว่า "การใช้ประโยชน์จากภาษาอย่าง C++ ไม่ได้ชัดเจนเสมอไป การปรับปรุงประสิทธิภาพและคุณภาพของโค้ดอย่างมีนัยสำคัญสามารถทำได้ง่ายๆ โดยใช้ C++ เป็น 'C ที่ได้รับการปรับปรุง' พร้อมด้วยองค์ประกอบของ data abstraction อย่างไรก็ตาม A อื่นๆ อีกมากมาย ความก้าวหน้าที่สำคัญคือการนำลำดับชั้นของคลาสมาใช้ในกระบวนการออกแบบ นี่คือสิ่งที่เรียกว่าการออกแบบเชิงวัตถุ และนี่คือจุดที่แสดงให้เห็นถึงประโยชน์ของ C++ ในวิธีที่ดีที่สุดเท่าที่จะเป็นไปได้"ประสบการณ์ได้แสดงให้เห็นว่าเมื่อใช้ภาษาต่างๆ เช่น Smalltalk, Object Pascal, C++, CLOS และ Ada ภายนอกโมเดลออบเจ็กต์ คุณลักษณะที่แข็งแกร่งที่สุดจะถูกละเลยหรือนำไปใช้ในทางที่ผิด
2. การใช้แนวทางแบบอิงวัตถุจะเพิ่มระดับของการรวมตัวและความเหมาะสมในการพัฒนาอย่างมีนัยสำคัญ ใช้ซ้ำไม่เพียงแต่โปรแกรมเท่านั้น แต่ยังรวมไปถึงโครงการต่างๆ ซึ่งท้ายที่สุดจะนำไปสู่การสร้างสภาพแวดล้อมการพัฒนา ระบบเชิงวัตถุมักจะมีขนาดกะทัดรัดกว่าระบบที่ไม่ใช่เชิงวัตถุ และนี่หมายถึงไม่เพียงแต่ลดปริมาณโค้ดโปรแกรมเท่านั้น แต่ยังเป็นการลดต้นทุนของโครงการด้วยเนื่องจากการใช้การพัฒนาก่อนหน้านี้ซึ่งทำให้ต้นทุนและเวลาเพิ่มขึ้น
3. การใช้โมเดลออบเจ็กต์นำไปสู่การสร้างระบบตามคำอธิบายระดับกลางที่มีความเสถียร ซึ่งช่วยให้กระบวนการเปลี่ยนแปลงง่ายขึ้น สิ่งนี้ทำให้ระบบมีโอกาสที่จะพัฒนาแบบค่อยเป็นค่อยไป และไม่นำไปสู่การปรับปรุงใหม่ทั้งหมด แม้ว่าในกรณีที่มีการเปลี่ยนแปลงที่สำคัญในข้อกำหนดเริ่มต้นก็ตาม
4. โมเดลออบเจ็กต์ช่วยลดความเสี่ยงในการพัฒนาระบบที่ซับซ้อน สาเหตุหลักมาจากกระบวนการบูรณาการขยายออกไปตลอดระยะเวลาการพัฒนา แทนที่จะกลายเป็นเหตุการณ์ที่เกิดขึ้นเพียงครั้งเดียว วิธีการแบบออบเจ็กต์ประกอบด้วยชุดของขั้นตอนการออกแบบที่คิดมาอย่างดี ซึ่ง ยังช่วยลดระดับความเสี่ยงและเพิ่มความมั่นใจในความถูกต้องของการตัดสินใจ
5. แบบจำลองวัตถุมุ่งเน้นไปที่การรับรู้ของมนุษย์ต่อโลก หรือตามคำพูดของ Robson ที่ว่า "ผู้คนจำนวนมากที่ไม่รู้ว่าคอมพิวเตอร์ทำงานอย่างไร พบว่าแนวทางเชิงวัตถุกับระบบที่เป็นธรรมชาติโดยสมบูรณ์"