จัดทำตารางคุณลักษณะเปรียบเทียบของระบบปฏิบัติการสมัยใหม่ Linux และ Windows: ลักษณะเปรียบเทียบ ระบบปฏิบัติการของตระกูล Linux

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

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

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

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

หนึ่งในวิธีการเหล่านี้ก็คือ โมเดลไดนามิก ระบบย่อย มันถูกสร้างขึ้นหลังจากสร้างโมเดลอ็อบเจ็กต์ของระบบย่อยและได้ตกลงและดีบั๊กไว้ก่อนหน้านี้ โมเดลไดนามิกของระบบย่อยประกอบด้วยไดอะแกรมสถานะของอ็อบเจ็กต์ระบบย่อย

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

เหตุการณ์หนึ่งเกิดขึ้น ณ จุดใดจุดหนึ่ง ตัวอย่างกิจกรรม: การปล่อยจรวด, เริ่มการแข่งขัน 100 ม., เริ่มวางสายไฟ, การออกเงิน ฯลฯ กิจกรรมไม่มีระยะเวลา (หรือเจาะจงกว่านั้นคือใช้เวลาเพียงเล็กน้อย)

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

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

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

กระบวนการสร้างโมเดลออบเจ็กต์ประกอบด้วยขั้นตอนต่อไปนี้:

คำจำกัดความของวัตถุและคลาส

การเตรียมพจนานุกรมข้อมูล:

การพิจารณาการพึ่งพาระหว่างวัตถุ

การกำหนดคุณสมบัติของวัตถุและการเชื่อมต่อ

การจัดระเบียบและลดความซับซ้อนของคลาสเมื่อใช้การสืบทอด

การวิจัยและปรับปรุงแบบจำลองเพิ่มเติม

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

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

เวลานำ:

2 – 3 บทเรียน

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

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

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

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

โอ ชื่อเต็ม.,

โอ ที่อยู่,

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

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

โอ วันเกิด,

โอ กลุ่ม);

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

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

โอ รหัส;

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

โอ พิเศษ,

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

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

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

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

· ชื่อเต็ม.,

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


สั่งงาน

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

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

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


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



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

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

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

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

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

แบบจำลองวัตถุ

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

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

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

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

การวิเคราะห์เชิงวัตถุเป็นวิธีการที่รับรู้ความต้องการของระบบในแง่ของคลาสและวัตถุที่ระบุในสาขาวิชา

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

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

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

ใน คำจำกัดความนี้ประกอบด้วยสองส่วนที่สำคัญ: การออกแบบเชิงวัตถุ

1) ขึ้นอยู่กับการสลายตัวเชิงวัตถุ

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



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

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

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

คำจำกัดความนี้สามารถแบ่งออกเป็นสามส่วน:

1) OOP ถูกใช้เป็น องค์ประกอบพื้นฐาน วัตถุ,ไม่ใช่อัลกอริธึม

2) แต่ละวัตถุคือ สำเนาเฉพาะเจาะจงใด ๆ ระดับ;

3) มีการจัดชั้นเรียน ตามลำดับชั้น.

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

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

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

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

  • สิ่งที่เป็นนามธรรม;
  • การห่อหุ้ม;
  • ความเป็นโมดูลาร์;
  • ลำดับชั้น

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

  • พิมพ์;
  • ความเท่าเทียม;
  • การเก็บรักษา

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

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

นามธรรมขึ้นอยู่กับแนวคิดของไคลเอ็นต์และเซิร์ฟเวอร์

ลูกค้าวัตถุใด ๆ ที่ใช้ทรัพยากรของวัตถุอื่น (เรียกว่า เซิร์ฟเวอร์).

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

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

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

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

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

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

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

ลำดับชั้น - นี่คือการเรียงลำดับของนามธรรม การจัดเรียงตามระดับ

ประเภทหลัก โครงสร้างลำดับชั้นในส่วนที่เกี่ยวข้องกับระบบที่ซับซ้อน พวกมันคือโครงสร้างคลาส (ลำดับชั้น "is-a") และโครงสร้างวัตถุ (ลำดับชั้น "ส่วนหนึ่งของ")

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

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

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

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

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

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


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


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

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

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


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