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


การแนะนำ

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

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

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

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

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

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

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

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

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

การพัฒนาซอฟต์แวร์เชิงวัตถุเกี่ยวข้องกับการใช้แบบจำลองเชิงวัตถุในการพัฒนาระบบซอฟต์แวร์และส่วนประกอบต่างๆ

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

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

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

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

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

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

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

ลองพิจารณาแนวคิดพื้นฐานที่ใช้ในการสร้างแบบจำลองวัตถุ

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

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

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

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

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

คุณลักษณะของวัตถุคือค่าที่แสดงลักษณะของวัตถุในระดับเดียวกัน ตัวอย่างคุณลักษณะ: ยี่ห้อ, ปีที่ผลิต, สี (คุณลักษณะของวัตถุในประเภทรถยนต์) ฯลฯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การแทนที่อาจให้บริการตามวัตถุประสงค์ข้อใดข้อหนึ่งต่อไปนี้:

ส่วนขยาย: การดำเนินการใหม่จะขยายการดำเนินการที่สืบทอดมา โดยคำนึงถึงอิทธิพลของแอตทริบิวต์คลาสย่อย

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

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

ความสะดวก.

ขอแนะนำให้ปฏิบัติตามกฎความหมายของการสืบทอดต่อไปนี้:

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

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

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

การดำเนินงานไม่ควรมีการกำหนดนิยามใหม่โดยพื้นฐาน วิธีการทั้งหมดที่ใช้การดำเนินการเดียวกันจะต้องทำการแปลงคุณลักษณะที่คล้ายกัน

การดำเนินงานที่สืบทอดมาสามารถปรับแต่งได้โดยการเพิ่มการดำเนินการเพิ่มเติม

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

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

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

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

ข้อมูลเมตาคือข้อมูลที่อธิบายข้อมูลอื่น ตัวอย่างเช่น คำจำกัดความของคลาสคือข้อมูลเมตา เนื่องจากคลาสอธิบายข้อมูลอื่น - ออบเจ็กต์ของคลาสนี้ โมเดลคือข้อมูลเมตาเนื่องจากอธิบายออบเจ็กต์ที่กำลังสร้างโมเดล อีกตัวอย่างหนึ่งของข้อมูลเมตาคือคลาสนามธรรม

นักแสดงคือบทบาทที่เล่นโดยหน่วยงานที่มีปฏิสัมพันธ์โดยตรงกับระบบ

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

ฉันชอบคำอธิบายแนวคิดของ "นักแสดง" ในงานของ Jim Arlow และ Isle Neustadt "UML 2 และ กระบวนการแบบครบวงจร": "เพื่อให้เข้าใจนักแสดง สิ่งสำคัญคือต้องเข้าใจแนวคิดเรื่องบทบาท บทบาทสามารถมองได้ว่าเป็นหมวกที่สวมใส่ในสถานการณ์บางอย่าง” (หน้า 92)

เมื่อทราบแนวคิดพื้นฐานแล้ว เราก็สามารถพิจารณาสร้างแบบจำลองได้

  1. การสร้างแบบจำลองวัตถุ
    1. การกำหนดคลาส

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

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

คลาสที่ซ้ำซ้อน: หากคลาสตั้งแต่สองคลาสขึ้นไปแสดงข้อมูลเดียวกัน ควรคงคลาสไว้เพียงคลาสเดียวเท่านั้น

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

คลาสที่กำหนดไว้อย่างคลุมเครือ (จากมุมมองของปัญหาที่กำลังพิจารณา)

คุณลักษณะ: คำนามบางคำสอดคล้องกับคุณลักษณะมากกว่าชั้นเรียน ตามกฎแล้วคำนามดังกล่าวจะอธิบายคุณสมบัติของวัตถุ (เช่น ชื่อ อายุ น้ำหนัก ที่อยู่ ฯลฯ )

การดำเนินการ: คำนามบางคำมีแนวโน้มที่จะเป็นชื่อการดำเนินการมากกว่าคลาส (เช่น phone_call ไม่น่าจะหมายถึงคลาสใด ๆ )

บทบาท: คำนามบางคำกำหนดชื่อบทบาทในโมเดลวัตถุ (เช่น เจ้าของ คนขับรถ เจ้านาย พนักงาน ชื่อเหล่านี้ทั้งหมดเกี่ยวข้องกับบทบาทในการขึ้นต่อกันของวัตถุต่างๆ ของคลาสบุคคล)

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

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

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

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

2.3. การกำหนดการอ้างอิง

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

เช่นเดียวกับชื่อของคลาสที่เป็นไปได้ที่ได้มาจากคำนามที่พบในคำสั่งเบื้องต้นของปัญหาการสมัคร ชื่อของการอ้างอิงที่เป็นไปได้สามารถได้รับจากคำกริยาหรือวลีคำกริยาที่พบในเอกสารที่ระบุ นี่คือวิธีที่พวกเขามักจะอธิบาย: ตำแหน่งทางกายภาพ (follows_after, is_part, is_contained), การกระทำโดยตรง (leads_to_movement), การสื่อสาร (talks_to), การเป็นเจ้าของ (has, is_part) ฯลฯ

จากนั้นคุณควรลบการขึ้นต่อกันที่ไม่จำเป็นหรือไม่ถูกต้องออกโดยใช้เกณฑ์ต่อไปนี้:

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

ควรกำจัดการพึ่งพาที่ไม่เกี่ยวข้องและเกี่ยวข้องกับการนำไปใช้งาน

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

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

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

เมื่อลบการขึ้นต่อกันที่ซ้ำซ้อนออกแล้ว คุณต้องชี้แจงความหมายของการขึ้นต่อกันที่เหลือดังนี้:

การขึ้นต่อกันที่มีชื่อไม่ถูกต้อง: ควรเปลี่ยนชื่อเพื่อให้ความหมายชัดเจน

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

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

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

ต้องระบุและเพิ่มการพึ่งพาที่ไม่ได้บัญชีลงในโมเดล

2.4. การปรับแต่งคุณสมบัติ

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

คุณลักษณะมักจะสอดคล้องกับคำนาม ตัวอย่างเช่น car_color (คุณสมบัติของวัตถุ) cursor_position (สถานะของวัตถุ) ตามกฎแล้วแอตทริบิวต์จะมีผลเพียงเล็กน้อยต่อโครงสร้างของโมเดลออบเจ็กต์

นอกจากคุณลักษณะของวัตถุแล้ว ยังจำเป็นต้องป้อนคุณลักษณะของการขึ้นต่อกันระหว่างคลาสด้วย (ความสัมพันธ์ระหว่างวัตถุ)

เมื่อระบุคุณลักษณะ จะมีหลักเกณฑ์ต่อไปนี้:

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

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

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

ตัวระบุ ตัวระบุวัตถุเชื่อมโยงกับการใช้งาน ในช่วงแรกของการออกแบบ ไม่ควรถือเป็นคุณลักษณะ

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

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

รายละเอียดที่ไม่สำคัญ ขอแนะนำให้ละเว้นแอตทริบิวต์ที่ไม่ส่งผลต่อการดำเนินการส่วนใหญ่

2.5. การแยกระบบย่อย

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

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


ฯลฯ............

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ออบเจ็กต์อินเทอร์เฟซของกระบวนการทางธุรกิจที่กำลังศึกษา:

  • 1. ผู้จัดการฝ่ายบริการลูกค้า คุณสมบัติ: ชื่อนามสกุล ตำแหน่ง เงินเดือน. ความรับผิดชอบ: โต้ตอบกับลูกค้า, สั่งซื้อ, รับการชำระเงินจากลูกค้าสำหรับการสั่งซื้อ.
  • 2. เจ้าของร้านที่มีความรับผิดชอบทางการเงิน คุณสมบัติ: ชื่อนามสกุล ตำแหน่ง เงินเดือน. ความรับผิดชอบ: โต้ตอบกับซัพพลายเออร์ รับวัสดุ และลงนามในใบแจ้งหนี้
  • 3.พนักงานขับรถส่งของ. คุณสมบัติ: ชื่อนามสกุล ตำแหน่ง เงินเดือน. หน้าที่ความรับผิดชอบ : จัดส่งผลิตภัณฑ์สำเร็จรูปให้กับลูกค้า

วัตถุควบคุมของกระบวนการทางธุรกิจที่กำลังศึกษา:

  • 1. นักออกแบบ. คุณสมบัติ: ชื่อนามสกุล ตำแหน่ง เงินเดือน. ความรับผิดชอบ: การออกแบบผลิตภัณฑ์ การจัดการโครงการ การควบคุม
  • 2. ผู้ปฏิบัติงาน การบัญชีอัตโนมัติ- คุณสมบัติ: ชื่อนามสกุล ตำแหน่ง เงินเดือน. ความรับผิดชอบ: ดูแลรักษาบันทึกอัตโนมัติทำงานกับฐานข้อมูล
  • 3. ผู้เชี่ยวชาญด้านเฟอร์นิเจอร์ (ผู้ประกอบ) คุณสมบัติ: ชื่อนามสกุล ตำแหน่ง เงินเดือน. หน้าที่รับผิดชอบ : ผลิตสินค้าตามโครงการ

ออบเจ็กต์เอนทิตีของกระบวนการทางธุรกิจที่กำลังศึกษา:

  • 1. เช็ค - เอกสารที่ออกให้เมื่อชำระเงินตามคำสั่งซื้อ
  • 2. แคตตาล็อก - เอกสารที่สะท้อนถึงกลุ่มผลิตภัณฑ์
  • 3. แบบฟอร์มการสั่งซื้อ - เอกสารที่มีหมายเลขคำสั่งซื้อ, วันที่สั่งซื้อ, ข้อมูลลูกค้า, ประเภทที่เลือก, แบบร่างผลิตภัณฑ์, ความปรารถนาของลูกค้า
  • 4.การออกแบบผลิตภัณฑ์-การออกแบบเฟอร์นิเจอร์ตามสั่ง
  • 5. การขอวัสดุ - เอกสารแสดงลักษณะ วัสดุที่จำเป็นและปริมาณของพวกเขา
  • 6. ฐานข้อมูล - โปรแกรมที่ช่วยให้คุณเก็บรักษาบันทึกวัสดุในบริษัท
  • 7. วัสดุ - จำเป็นสำหรับการผลิตผลิตภัณฑ์ตามสั่ง
  • 8. ใบแจ้งหนี้ - เอกสารที่ลงนามเมื่อจัดส่งวัสดุ
  • 9. ผลิตภัณฑ์สำเร็จรูปเป็นผลจากการผลิตซึ่งมีลักษณะเป็นคำสั่งซื้อใด ๆ

ตารางที่ 5.1 แสดงคำอธิบายความสัมพันธ์ของวัตถุระหว่างกัน

ตาราง 5.1 คำอธิบายว่าวัตถุโต้ตอบกันอย่างไร

วัตถุการสื่อสาร

ประเภทของการสื่อสาร

ลูกค้า - ผู้จัดการบัญชี

ทัศนคติในการสื่อสาร

ลูกค้าติดต่อผู้จัดการเพื่อสั่งผลิตเฟอร์นิเจอร์

ผู้จัดการ-ลูกค้า

ทัศนคติในการสื่อสาร

ผู้จัดการจัดเตรียมแคตตาล็อกภาพร่างผลิตภัณฑ์ที่เป็นไปได้ให้กับลูกค้า

ลูกค้า - แคตตาล็อก

อัตราส่วนการใช้งาน

ลูกค้าเลือกแบบร่างที่เหมาะสม

ลูกค้า - ผู้จัดการ

ทัศนคติในการสื่อสาร

ลูกค้าแสดงทางเลือกและความปรารถนาของเขา

ผู้จัดการ-ลูกค้า

ทัศนคติในการสื่อสาร

ผู้จัดการจะอธิบายเงื่อนไขและข้อกำหนด

ลูกค้า - ผู้จัดการ

ทัศนคติในการสื่อสาร

ลูกค้าชำระเงินสำหรับการสั่งซื้อ

ผู้จัดการ - ตรวจสอบ

อัตราส่วนการใช้งาน

ผู้จัดการกำลังพิมพ์เช็ค

ผู้จัดการ-ลูกค้า

ทัศนคติในการสื่อสาร

ผู้จัดการมอบเช็คให้กับลูกค้า

ผู้จัดการ - แบบฟอร์มการสั่งซื้อ

อัตราส่วนการใช้งาน

ผู้จัดการสร้างแบบฟอร์มคำสั่งซื้อ

ผู้จัดการ-นักออกแบบ

ทัศนคติในการสื่อสาร

ผู้จัดการนำแบบฟอร์มคำสั่งซื้อไปให้นักออกแบบในแผนกออกแบบ

นักออกแบบ - แบบฟอร์มสั่งซื้อ

อัตราส่วนการใช้งาน

ผู้ออกแบบยอมรับแบบฟอร์มการสั่งซื้อ

อัตราส่วนการใช้งาน

ผู้ออกแบบพัฒนาโครงการ

นักออกแบบ-ออกแบบผลิตภัณฑ์

อัตราส่วนการใช้งาน

ผู้ออกแบบประเมินโครงการ

ผู้ออกแบบ - ขอวัสดุ

อัตราส่วนการใช้งาน

ผู้ออกแบบสร้างคำขอวัสดุ

ผู้ออกแบบ - ผู้ดำเนินการบัญชีอัตโนมัติ

ทัศนคติในการสื่อสาร

ผู้ออกแบบส่งคำขอวัสดุไปยังผู้ดำเนินการบัญชีอัตโนมัติ

ผู้ดำเนินการบัญชีอัตโนมัติ - ขอวัสดุ

อัตราส่วนการใช้งาน

ผู้ดำเนินการบัญชีอัตโนมัติยอมรับใบสมัครวัสดุ

ผู้ดำเนินการบัญชีอัตโนมัติ - ฐานข้อมูล

อัตราส่วนการใช้งาน

ผู้ดำเนินการบัญชีอัตโนมัติจะตรวจสอบความพร้อมของวัสดุที่จำเป็นด้วยวัสดุที่มีอยู่

เจ้าของร้านที่มีความรับผิดชอบทางการเงิน - ซัพพลายเออร์

ทัศนคติในการสื่อสาร

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

ซัพพลายเออร์ - เจ้าของร้านที่มีความรับผิดชอบทางการเงิน

ทัศนคติในการสื่อสาร

การส่งมอบวัสดุ

เจ้าของร้านที่มีความรับผิดชอบทางการเงิน - วัสดุ

อัตราส่วนการใช้งาน

การรับวัสดุ

เจ้าของร้านที่รับผิดชอบทางการเงิน - ใบแจ้งหนี้

อัตราส่วนการใช้งาน

ลงนามในใบแจ้งหนี้

เจ้าของร้านที่มีความรับผิดชอบทางการเงิน - นักสะสม

ทัศนคติในการสื่อสาร

ข้อความเกี่ยวกับความพร้อมของวัสดุในคลังสินค้า

ผู้ออกแบบ-ผู้ประกอบ

ทัศนคติในการสื่อสาร

การโอนการออกแบบผลิตภัณฑ์ไปยังผู้ประกอบ

ผู้ประกอบ-การออกแบบผลิตภัณฑ์

อัตราส่วนการใช้งาน

ช่างประกอบเฟอร์นิเจอร์รับและศึกษาการออกแบบผลิตภัณฑ์

ช่างประกอบ - สินค้าสำเร็จรูป

อัตราส่วนการใช้งาน

ผู้ประกอบเป็นผู้จัดทำผลิตภัณฑ์

ช่างประกอบ-ผู้ออกแบบ

ทัศนคติในการสื่อสาร

ผู้ประกอบเรียกผู้ออกแบบเพื่อควบคุมคุณภาพของผลิตภัณฑ์

ผู้ออกแบบ - สินค้าสำเร็จรูป

อัตราส่วนการใช้งาน

การควบคุมคุณภาพผลิตภัณฑ์

ผู้ออกแบบ-ผู้ประกอบ

ทัศนคติในการสื่อสาร

ผู้ออกแบบให้การประเมินคุณภาพของผลิตภัณฑ์

ช่างประกอบ - สินค้าสำเร็จรูป

อัตราส่วนการใช้งาน

การแก้ไขข้อบกพร่องในผลิตภัณฑ์สำเร็จรูป

นักสะสม - พนักงานขับรถส่งต่อ

ทัศนคติในการสื่อสาร

ส่งมอบแบบฟอร์มการสั่งซื้อและผลิตภัณฑ์สำเร็จรูปให้กับพนักงานขับรถส่งต่อ

พนักงานขับรถส่งสินค้า-ลูกค้า

ทัศนคติในการสื่อสาร

การโอนผลิตภัณฑ์สำเร็จรูป

หมายเหตุ: หากมีวัสดุที่จำเป็นในสต็อก ระบบจะข้ามย่อหน้าที่ 18, 19, 20, 21 ของตารางนี้

โมเดลไดนามิกของการโต้ตอบระหว่างแผนกและลูกค้าในแบบอย่าง “การขายผลิตภัณฑ์ที่กำหนดเอง” แสดงในรูปที่ 5.1 โมเดลไดนามิกของการโต้ตอบระหว่างแผนก พนักงาน และลูกค้าในแบบอย่าง “การสั่งซื้อ” แสดงในรูปที่ 5.2 โมเดลไดนามิก ของการมีปฏิสัมพันธ์ระหว่างแผนก พนักงาน และลูกค้าในแบบอย่าง "การออกแบบ" แสดงในรูปที่ 5.3 รูปแบบแบบไดนามิกของการปฏิสัมพันธ์ของพนักงาน ในแบบอย่าง "การผลิต" แสดงในรูปที่ 5.4

รูปที่ 5.1 แผนภาพลำดับของกรณีการใช้งานการขายผลิตภัณฑ์แบบกำหนดเอง

รูปที่ 5.2 แผนภาพลำดับของกรณีการใช้งาน "สั่งซื้อ"

รูปที่ 5.3 แผนภาพลำดับกรณีการใช้งานการออกแบบ

รูปที่ 5.4 แผนภาพลำดับของกรณีการใช้งานด้านการผลิต

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

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

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

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

· ลำดับชั้น

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

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

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

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

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

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

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

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

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

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