การแนะนำ
ลักษณะที่สำคัญที่สุดของระบบคือโครงสร้างและกระบวนการทำงาน โครงสร้างของระบบเป็นที่เข้าใจกันว่าเป็นชุดความสัมพันธ์ที่มีความเสถียรตามเวลาระหว่างองค์ประกอบหรือส่วนประกอบต่างๆ เป็นโครงสร้างที่เชื่อมโยงองค์ประกอบทั้งหมดเข้าด้วยกันและป้องกันไม่ให้ระบบสลายตัวเป็นส่วนประกอบที่แยกจากกัน โครงสร้างของระบบสามารถสะท้อนถึงความสัมพันธ์ที่หลากหลาย รวมถึงการซ้อนองค์ประกอบของระบบหนึ่งไปยังอีกระบบหนึ่ง ในกรณีนี้ เป็นธรรมเนียมที่จะเรียกระบบย่อยหรือระบบที่เล็กกว่าว่าระบบย่อย กระบวนการทำงานของระบบมีความสัมพันธ์อย่างใกล้ชิดกับการเปลี่ยนแปลงคุณสมบัติหรือพฤติกรรมเมื่อเวลาผ่านไป ในเวลาเดียวกัน ลักษณะสำคัญของระบบคือสถานะของระบบ ซึ่งเข้าใจว่าเป็นชุดของคุณสมบัติหรือคุณลักษณะที่สะท้อนถึงคุณลักษณะที่สำคัญที่สุดของพฤติกรรมของระบบในแต่ละช่วงเวลา คุณสมบัติทั่วไปของทุกรุ่นคือความคล้ายคลึงกัน ระบบเดิม- ความสำคัญของแบบจำลองอาคารอยู่ที่ความเป็นไปได้ที่จะใช้แบบจำลองเหล่านี้เพื่อรับข้อมูลเกี่ยวกับคุณสมบัติหรือพฤติกรรมของระบบดั้งเดิม ในกรณีนี้ กระบวนการสร้างและการประยุกต์ใช้แบบจำลองในภายหลังเพื่อให้ได้ข้อมูลเกี่ยวกับระบบดั้งเดิมเรียกว่าการสร้างแบบจำลอง รุ่นทั่วไประบบประกอบด้วยบางส่วน ข้อมูลสำคัญเกี่ยวกับคุณสมบัติการทำงานของระบบที่กำหนดซึ่งให้แนวคิดเกี่ยวกับพฤติกรรมต่อไปของมัน
การศึกษากระบวนการสร้างแบบจำลองเป็นเป้าหมายของการศึกษาในงานรายวิชานี้ การก่อสร้างแบบเฉพาะ แบบจำลองวัตถุโดยการศึกษาพฤติกรรมของเธอจะถือเป็นหัวข้อวิจัย เพื่อให้บรรลุเป้าหมายนี้จึงมีการใช้ วิธีการดังต่อไปนี้: การศึกษาวรรณกรรมที่จำเป็น การเปรียบเทียบ ตัวอย่างจากประสบการณ์ชีวิต เนื่องจากการสร้างแบบจำลองวัตถุจะดำเนินการโดยใช้ตัวอย่างการบริการรถยนต์จึงจำเป็นต้องศึกษาหลักการดำเนินงานขององค์กรนี้ ในการดำเนินการนี้ เพียงเข้าไปเยี่ยมชมเว็บไซต์อย่างเป็นทางการของบริการรถยนต์ต่างๆ แต่เพื่อศึกษาหลักการสร้างแบบจำลองวัตถุ ฉันศึกษาวรรณกรรมทางวิทยาศาสตร์ในประเทศและต่างประเทศ กลายเป็นกิจกรรมที่น่าตื่นเต้นมาก
ในที่สุดเป้าหมายของฉัน งานหลักสูตรกลายเป็น: การสร้างแบบจำลองออบเจ็กต์ของระบบข้อมูล “ออโต้เซอร์วิส” เพื่อศึกษาหลักการสร้างแบบจำลองออบเจ็กต์ อธิบายขั้นตอนการก่อสร้าง เพื่อพิสูจน์ความสำคัญของการมีความรู้นี้และความสามารถในการนำไปใช้ในทางปฏิบัติ
โครงสร้างของงานหลักสูตรมีดังนี้ ขั้นแรก มีการศึกษาทฤษฎีการสร้างแบบจำลองวัตถุประสงค์ จากนั้นทดสอบการนำทฤษฎีไปใช้โดยใช้ตัวอย่างเชิงปฏิบัติ
- แนวคิดพื้นฐานของแนวทางเชิงวัตถุ
แนวทางเชิงวัตถุนั้นขึ้นอยู่กับการใช้แบบจำลองอย่างเป็นระบบ วัตถุและแนวคิดมีส่วนร่วมในการกำหนดเป้าหมาย โลกแห่งความเป็นจริงที่เกี่ยวข้องกับระบบซอฟต์แวร์ที่กำลังพัฒนา ด้วยแนวทางเชิงวัตถุ วัตถุและแนวคิดเหล่านี้จะถูกแทนที่ด้วยแบบจำลอง เช่น โครงสร้างที่เป็นทางการบางอย่างที่เป็นตัวแทนในระบบซอฟต์แวร์
โมเดลไม่มีคุณสมบัติและคุณสมบัติทั้งหมดของวัตถุหรือแนวคิดที่เป็นตัวแทน แต่มีเพียงคุณสมบัติและคุณสมบัติที่จำเป็นสำหรับระบบซอฟต์แวร์ที่กำลังพัฒนาเท่านั้น ดังนั้นโมเดลจึงง่ายกว่าวัตถุ (แนวคิด) ที่มันเป็นตัวแทน สิ่งนี้ช่วยลดความยุ่งยากทั้งการพัฒนาและการศึกษา (การวิเคราะห์) แบบจำลองและการนำไปใช้งานบนคอมพิวเตอร์ โดยเฉพาะอย่างยิ่งลักษณะที่เป็นทางการของแบบจำลองทำให้เราสามารถรับแบบจำลองที่เป็นทางการของระบบซอฟต์แวร์ที่ได้รับการพัฒนาเป็นองค์ประกอบของแบบจำลองที่เป็นทางการของส่วนประกอบต่างๆ
ดังนั้นแนวทางเชิงวัตถุจะช่วยรับมือกับปัญหาที่ซับซ้อน เช่น การลดความซับซ้อนของซอฟต์แวร์ เพิ่มความน่าเชื่อถือของซอฟต์แวร์ ทำให้สามารถปรับเปลี่ยนได้ ส่วนประกอบแต่ละส่วนซอฟต์แวร์โดยไม่ต้องเปลี่ยนส่วนประกอบอื่น ๆ ทำให้มั่นใจถึงความเป็นไปได้ของการนำส่วนประกอบซอฟต์แวร์แต่ละรายการกลับมาใช้ใหม่
การประยุกต์ใช้แนวทางเชิงวัตถุอย่างเป็นระบบช่วยให้เราสามารถพัฒนาระบบซอฟต์แวร์ที่มีโครงสร้างดี เชื่อถือได้ และปรับเปลี่ยนได้ง่าย สิ่งนี้อธิบายถึงความสนใจของโปรแกรมเมอร์ในแนวทางเชิงวัตถุ แนวทางเชิงวัตถุเป็นหนึ่งในพื้นที่ที่มีการพัฒนาอย่างรวดเร็วที่สุดของการเขียนโปรแกรมเชิงทฤษฎีและประยุกต์
การพัฒนาซอฟต์แวร์เชิงวัตถุเกี่ยวข้องกับการใช้แบบจำลองเชิงวัตถุในการพัฒนาระบบซอฟต์แวร์และส่วนประกอบต่างๆ
การพัฒนาเชิงวัตถุสามารถเริ่มได้ตั้งแต่ขั้นแรก วงจรชีวิต- ไม่เกี่ยวข้องกับภาษาการเขียนโปรแกรมที่ควรจะใช้ระบบซอฟต์แวร์ที่กำลังพัฒนา: ภาษานี้อาจไม่ใช่เชิงวัตถุ ในขั้นตอนการพัฒนา วัตถุคือโครงสร้างที่เป็นทางการบางส่วน (เช่น สี่เหลี่ยมที่มี มุมโค้งมนด้วยความช่วยเหลือซึ่งแสดงเป็นไดอะแกรม) ยังไม่ได้เชื่อมโยงในทางใดทางหนึ่งกับการใช้งานในอนาคตในภาษาการเขียนโปรแกรมภาษาใดภาษาหนึ่ง
การพัฒนาซอฟต์แวร์เชิงวัตถุเกี่ยวข้องกับการใช้วิธีการเชิงวัตถุ (เทคโนโลยี) โดยทั่วไป วิธีการเชิงวัตถุเหล่านี้ได้รับการสนับสนุนโดยเครื่องมือซอฟต์แวร์ แต่ถึงแม้จะไม่มีเครื่องมือดังกล่าว แต่ก็มีประโยชน์ เนื่องจากช่วยให้มีความเข้าใจที่ดีเกี่ยวกับแง่มุมและคุณสมบัติต่างๆ ของระบบซอฟต์แวร์ที่กำลังพัฒนา ซึ่งต่อมาช่วยอำนวยความสะดวกในการใช้งาน การทดสอบ การบำรุงรักษา การพัฒนาเวอร์ชันใหม่ และการปรับเปลี่ยนที่สำคัญยิ่งขึ้น
การออกแบบระบบแอพพลิเคชั่นซอฟต์แวร์เริ่มต้นด้วยการวิเคราะห์ข้อกำหนดที่จะต้องปฏิบัติตาม การวิเคราะห์ดังกล่าวดำเนินการเพื่อให้เข้าใจวัตถุประสงค์และสภาวะการทำงานของระบบเพียงพอที่จะสามารถร่างการออกแบบเบื้องต้นได้
ด้วยแนวทางเชิงวัตถุ การวิเคราะห์ความต้องการของระบบขึ้นอยู่กับการพัฒนาแบบจำลองของระบบนี้ แบบจำลองของระบบ (หรือวัตถุหรือปรากฏการณ์อื่นใด) เป็นคำอธิบายอย่างเป็นทางการของระบบ ซึ่งระบุวัตถุหลักที่ประกอบขึ้นเป็นระบบและความสัมพันธ์ระหว่างวัตถุเหล่านี้ แบบจำลองอาคารเป็นวิธีที่แพร่หลายในการศึกษาวัตถุและปรากฏการณ์ที่ซับซ้อน โมเดลละเว้นรายละเอียดมากมายที่ทำให้เข้าใจได้ยาก การสร้างแบบจำลองแพร่หลายทั้งในด้านวิทยาศาสตร์และเทคโนโลยี
โมเดลช่วยในการตรวจสอบประสิทธิภาพของระบบที่อยู่ระหว่างการพัฒนาในช่วงแรกของการพัฒนา สื่อสารกับลูกค้าของระบบ ชี้แจงข้อกำหนดสำหรับระบบ และทำการเปลี่ยนแปลง (หากจำเป็น) ในการออกแบบระบบ (ทั้งสองอย่างตั้งแต่เริ่มต้น การออกแบบและขั้นตอนอื่นๆ ของวงจรชีวิต)
โมเดลที่พัฒนาและดีบั๊กในระยะแรกของวงจรชีวิตระบบยังคงใช้ในระยะต่อๆ ไปทั้งหมด อำนวยความสะดวกในการเขียนโปรแกรมระบบ การดีบักและการทดสอบ การบำรุงรักษา และการปรับเปลี่ยนเพิ่มเติม
โมเดลออบเจ็กต์อธิบายโครงสร้างของออบเจ็กต์ที่ประกอบขึ้นเป็นระบบ คุณลักษณะ การดำเนินการ และความสัมพันธ์กับออบเจ็กต์อื่นๆ โมเดลวัตถุควรสะท้อนแนวคิดและวัตถุในโลกแห่งความเป็นจริงที่มีความสำคัญต่อระบบที่กำลังพัฒนา แบบจำลองวัตถุสะท้อนถึงหลักปฏิบัติของระบบที่กำลังพัฒนา ซึ่งแสดงออกมาในการใช้คำศัพท์ พื้นที่ใช้งานที่เกี่ยวข้องกับการใช้ระบบที่กำลังพัฒนา
ลองพิจารณาแนวคิดพื้นฐานที่ใช้ในการสร้างแบบจำลองวัตถุ
วัตถุเป็นสิ่งที่เป็นนามธรรมหรือสิ่งใดก็ตามที่มีขอบเขตที่กำหนดไว้อย่างชัดเจนซึ่งสมเหตุสมผลในบริบทของปัญหาแอปพลิเคชันที่กำลังพิจารณา การแนะนำออบเจ็กต์มีสองเป้าหมาย: การทำความเข้าใจงานที่ประยุกต์ (ปัญหา) และการแนะนำพื้นฐานสำหรับการใช้งานบนคอมพิวเตอร์
วัตถุประสงค์ของการพัฒนาโมเดลออบเจ็กต์คือการอธิบายออบเจ็กต์ที่รวมกันเป็นระบบที่ออกแบบ เช่นเดียวกับการระบุและระบุการขึ้นต่อกันต่างๆ ระหว่างออบเจ็กต์
คลาสเป็นตัวอธิบายสำหรับชุดของวัตถุที่มีคุณสมบัติเหมือนกัน คลาสอธิบายคุณสมบัติของวัตถุจำนวนหนึ่ง แต่ละอ็อบเจ็กต์เป็นอินสแตนซ์ของคลาสเดียวเท่านั้น
อ็อบเจ็กต์ทั้งหมดในคลาสเดียวกันมีลักษณะเฉพาะด้วยชุดคุณลักษณะที่เหมือนกัน อย่างไรก็ตาม การจัดกลุ่มออบเจ็กต์เป็นคลาสไม่ได้ถูกกำหนดโดยชุดของคุณลักษณะ แต่โดยความหมาย ตัวอย่างเช่น วัตถุที่มั่นคงและม้าสามารถมีคุณสมบัติเหมือนกันได้: ราคาและอายุ ยิ่งไปกว่านั้น พวกมันสามารถอยู่ในคลาสเดียวกันได้หากถูกพิจารณาว่าเป็นปัญหาเพียงแค่เป็นผลิตภัณฑ์หรือเป็นถึง ชั้นเรียนที่แตกต่างกันซึ่งเป็นธรรมชาติมากกว่า
การรวมอ็อบเจ็กต์เข้าเป็นคลาสช่วยให้คุณสามารถนำนามธรรมมาสู่ปัญหาและพิจารณาในรูปแบบทั่วไปมากขึ้น คลาสมีชื่อ (เช่น ม้า) ที่ใช้กับอ็อบเจ็กต์ทั้งหมดของคลาสนั้น นอกจากนี้ คลาสประกอบด้วยชื่อของคุณลักษณะที่กำหนดไว้สำหรับวัตถุ ในแง่นี้ คำอธิบายของคลาสจะคล้ายกับคำอธิบายของประเภทโครงสร้าง (เรกคอร์ด) นอกจากนี้ แต่ละวัตถุยังมีความหมายเหมือนกับอินสแตนซ์ของโครงสร้าง (ตัวแปรหรือค่าคงที่ของประเภทที่สอดคล้องกัน)
คุณลักษณะของวัตถุคือค่าที่แสดงลักษณะของวัตถุในระดับเดียวกัน ตัวอย่างคุณลักษณะ: ยี่ห้อ, ปีที่ผลิต, สี (คุณลักษณะของวัตถุในประเภทรถยนต์) ฯลฯ
การดำเนินการคือฟังก์ชัน (หรือการแปลง) ที่สามารถนำไปใช้กับอ็อบเจ็กต์ของคลาสที่กำหนดได้ ตัวอย่างการดำเนินงาน: ตรวจสอบ ถอด ติดตั้ง (สำหรับออบเจ็กต์ของประเภทอะไหล่)
อ็อบเจ็กต์ทั้งหมดของคลาสที่กำหนดใช้อินสแตนซ์เดียวกันของแต่ละการดำเนินการ (เช่น การเพิ่มจำนวนอ็อบเจ็กต์ของคลาสหนึ่งๆ ไม่ได้เพิ่มจำนวนการโหลด รหัสโปรแกรม- ออบเจ็กต์ที่ใช้เรียกการดำเนินการจะถูกส่งผ่านไปเป็นอาร์กิวเมนต์โดยนัย (พารามิเตอร์)
การดำเนินการเดียวกันนี้สามารถนำไปใช้กับอ็อบเจ็กต์ที่มีคลาสต่างกันได้ การดำเนินการดังกล่าวเรียกว่า polymorphic เนื่องจากอาจมีรูปแบบที่แตกต่างกันสำหรับคลาสที่ต่างกัน
การขึ้นต่อกันระหว่างคลาสเป็นแบบสองทาง: ทุกคลาสในการขึ้นต่อกันมีสิทธิ์เท่าเทียมกัน สิ่งนี้เป็นจริงแม้ในกรณีที่ชื่อของการขึ้นต่อกันดูเหมือนจะแนะนำทิศทางในการขึ้นต่อกันนั้น การขึ้นต่อกันระหว่างคลาสสอดคล้องกับการขึ้นต่อกันระหว่างอ็อบเจ็กต์ของคลาสเหล่านี้ การขึ้นต่อกัน เช่นเดียวกับคลาส สามารถมีแอตทริบิวต์ได้
discriminator เป็นคุณลักษณะของประเภท "การแจงนับ" ซึ่งแสดงว่าคุณสมบัติของวัตถุใดที่ใช้ลักษณะทั่วไปที่กำหนด
บทบาทจะกำหนดด้านหนึ่งของการอ้างอิง ในการขึ้นต่อกันแบบไบนารี มีการกำหนดบทบาทสองบทบาท ชื่อบทบาทระบุด้านหนึ่งของการอ้างอิงโดยไม่ซ้ำกัน บทบาททำให้สามารถดูการขึ้นต่อกันแบบไบนารีเป็นความสัมพันธ์ระหว่างอ็อบเจ็กต์และชุดของอ็อบเจ็กต์ที่ต้องพึ่งพาได้ แต่ละบทบาทคือการกำหนดอ็อบเจ็กต์หรือชุดของอ็อบเจ็กต์ที่เชื่อมต่อกันด้วยการขึ้นต่อกันกับอ็อบเจ็กต์ที่ปลายอีกด้านของการขึ้นต่อกัน ชื่อบทบาทสามารถถือเป็นแอตทริบิวต์ที่ได้รับซึ่งชุดค่าคือชุดของอ็อบเจ็กต์ที่เกี่ยวข้องกับบทบาทนั้น ในการขึ้นต่อกันแบบไบนารี ชื่อบทบาทคู่หนึ่งสามารถใช้เพื่อระบุการขึ้นต่อกันนั้นได้
ต้องระบุชื่อบทบาทในกรณีที่สร้างการพึ่งพาระหว่างอ็อบเจ็กต์ของคลาสเดียวกัน ชื่อบทบาทต้องไม่ซ้ำกันเนื่องจากใช้เพื่อแยกแยะอ็อบเจ็กต์ที่เกี่ยวข้องกับการขึ้นต่อกัน
ตัวระบุเป็นคุณลักษณะที่ช่วยให้คุณสามารถลดหลายหลากของการขึ้นต่อกันที่มีประสิทธิผล ตัวระบุจะใช้ในการขึ้นต่อกันแบบหนึ่งต่อกลุ่มหรือหลายกลุ่มต่อกลุ่ม
การรวมกลุ่มคือการพึ่งพาระหว่างคลาสของออบเจ็กต์คอมโพสิตและคลาสที่แสดงถึงส่วนประกอบของออบเจ็กต์เหล่านี้ (ความสัมพันธ์ "ทั้งหมด"-"บางส่วน")
ลักษณะทั่วไปและการสืบทอดทำให้สามารถระบุความคล้ายคลึงระหว่างคลาสต่างๆ ของออบเจ็กต์ และกำหนดการจำแนกประเภทของออบเจ็กต์ได้หลายระดับ ดังนั้น ในระบบกราฟิกอาจมีคลาสที่กำหนดการแสดงรูปทรงเรขาคณิตต่างๆ เช่น จุด เส้น (เส้นตรง ส่วนโค้งของวงกลม และเส้นโค้งที่กำหนดโดยเส้นโค้ง) รูปหลายเหลี่ยม วงกลม ฯลฯ
discriminator เป็นคุณลักษณะของประเภท "การแจงนับ" ซึ่งแสดงว่าคุณสมบัติของวัตถุใดที่ใช้ลักษณะทั่วไปที่กำหนด
ควรสังเกตว่าควรหลีกเลี่ยงการจำแนกประเภทหลายระดับอย่างกว้างขวาง เนื่องจากพฤติกรรมของคลาสย่อยในระดับต่ำกว่าของการจำแนกประเภทหลายระดับอาจเป็นเรื่องยากที่จะเข้าใจ: คุณลักษณะและการดำเนินการของคลาสดังกล่าวส่วนใหญ่ (และบ่อยครั้งทั้งหมด) ได้รับการกำหนดไว้ ในซูเปอร์คลาสในระดับต่างๆ หากจำนวนระดับการจำแนกมีมากเกินไป คุณจะต้องเปลี่ยนโครงสร้างของระบบเล็กน้อย
ลักษณะทั่วไปและการสืบทอดถูกนำมาใช้กันอย่างแพร่หลายไม่เพียง แต่ในการวิเคราะห์ข้อกำหนดสำหรับระบบซอฟต์แวร์และการออกแบบเบื้องต้นเท่านั้น แต่ยังรวมถึงการนำไปใช้ด้วย
บางครั้งมันจำเป็นสำหรับคลาสย่อยที่จะแทนที่การดำเนินการที่กำหนดไว้ในซูเปอร์คลาสตัวใดตัวหนึ่ง เพื่อให้บรรลุเป้าหมายนี้ การดำเนินการที่สามารถได้รับมาจากซูเปอร์คลาสอันเป็นผลมาจากการสืบทอดก็ถูกกำหนดไว้ในคลาสย่อยด้วย คำจำกัดความใหม่นี้ "ปิดบัง" คำจำกัดความในซูเปอร์คลาส ดังนั้นการดำเนินการที่ถูกแทนที่ในคลาสย่อย ไม่ใช่คลาสที่สืบทอดมา จะถูกนำไปใช้ โปรดจำไว้ว่าการดำเนินการแต่ละรายการถูกกำหนดโดยลายเซ็น ดังนั้นลายเซ็นของการแทนที่การดำเนินการจะต้องตรงกับลายเซ็นของการดำเนินการในซูเปอร์คลาสที่ถูกแทนที่โดยการดำเนินการ
การแทนที่อาจให้บริการตามวัตถุประสงค์ข้อใดข้อหนึ่งต่อไปนี้:
ส่วนขยาย: การดำเนินการใหม่จะขยายการดำเนินการที่สืบทอดมา โดยคำนึงถึงอิทธิพลของแอตทริบิวต์คลาสย่อย
ข้อจำกัด: การดำเนินการใหม่ถูกจำกัดให้ดำเนินการเพียงส่วนหนึ่งของการดำเนินการของการดำเนินการที่สืบทอดมา โดยใช้ข้อมูลเฉพาะของอ็อบเจ็กต์ของคลาสย่อย
การเพิ่มประสิทธิภาพ: การใช้เฉพาะของวัตถุคลาสย่อยช่วยให้คุณลดความซับซ้อนและเพิ่มความเร็วของวิธีการที่เกี่ยวข้อง
ความสะดวก.
ขอแนะนำให้ปฏิบัติตามกฎความหมายของการสืบทอดต่อไปนี้:
การดำเนินการค้นหาทั้งหมด (การดำเนินการที่ใช้ค่าแอตทริบิวต์แต่ไม่ได้เปลี่ยนแปลง) จะต้องสืบทอดโดยคลาสย่อยทั้งหมด
การดำเนินการทั้งหมดที่เปลี่ยนค่าแอตทริบิวต์จะต้องสืบทอดในส่วนขยายทั้งหมด
การดำเนินการทั้งหมดที่เปลี่ยนค่าของคุณลักษณะที่ถูก จำกัด หรือคุณลักษณะที่กำหนดการขึ้นต่อกันจะต้องบล็อกในส่วนขยายทั้งหมด
การดำเนินงานไม่ควรมีการกำหนดนิยามใหม่โดยพื้นฐาน วิธีการทั้งหมดที่ใช้การดำเนินการเดียวกันจะต้องทำการแปลงคุณลักษณะที่คล้ายกัน
การดำเนินงานที่สืบทอดมาสามารถปรับแต่งได้โดยการเพิ่มการดำเนินการเพิ่มเติม
ด้วยการปฏิบัติตามกฎเหล่านี้ ซึ่งน่าเสียดายที่ไม่ค่อยได้รับการสนับสนุนโดยภาษาการเขียนโปรแกรมเชิงวัตถุ คุณสามารถทำให้โปรแกรมที่คุณกำลังพัฒนามีความเข้าใจมากขึ้น ปรับเปลี่ยนได้ง่ายขึ้น และไม่ไวต่อข้อผิดพลาดและการกำกับดูแลต่างๆ น้อยลง
คลาสนามธรรมไม่สามารถมีวัตถุได้เนื่องจากไม่ได้กำหนดการดำเนินการกับวัตถุ วัตถุจะต้องอยู่ในคลาสย่อยที่เป็นรูปธรรมของคลาสนามธรรม คลาสนามธรรมใช้เพื่อระบุอินเทอร์เฟซสำหรับการดำเนินการ (วิธีการที่นำไปใช้ในการดำเนินการเหล่านี้จะถูกกำหนดในภายหลังในคลาสย่อยของคลาสนามธรรม) คลาสนามธรรมมีความสะดวกในระหว่างขั้นตอนของการวิเคราะห์ความต้องการของระบบ เนื่องจากคลาสนามธรรมช่วยให้เราสามารถระบุการเปรียบเทียบในการดำเนินการที่แตกต่างกันซึ่งดูเหมือนจะกำหนดไว้ในระบบที่กำลังวิเคราะห์
การสืบทอดหลายรายการทำให้คลาสมีซูเปอร์คลาสได้มากกว่าหนึ่งรายการ โดยสืบทอดคุณสมบัติ (คุณลักษณะและการดำเนินการ) ของซูเปอร์คลาสทั้งหมด คลาสที่มีซูเปอร์คลาสหลายคลาสเรียกว่าคลาสแบบยูเนียน คุณสมบัติของคลาสบรรพบุรุษที่ปรากฏมากกว่าหนึ่งครั้งในกราฟการสืบทอดจะได้รับการสืบทอดในสำเนาเดียวเท่านั้น ความขัดแย้งระหว่างคำจำกัดความแบบคู่ขนานสร้างความคลุมเครือที่ต้องแก้ไขระหว่างการใช้งาน ในทางปฏิบัติ ควรหลีกเลี่ยงความคลุมเครือหรือความเข้าใจที่ไม่ดี แม้ว่าภาษาการเขียนโปรแกรมเฉพาะที่เลือกเพื่อใช้ระบบจะให้ความสามารถในการแก้ไขโดยใช้ลำดับความสำคัญหรือวิธีการอื่น
ในการออกแบบเชิงวัตถุ เราจัดการกับชุดของวัตถุที่เชื่อมต่อถึงกัน แต่ละอ็อบเจ็กต์สามารถถือเป็นตัวแปรหรือค่าคงที่ของประเภทโครงสร้าง (ด้วยวิธีนี้ วิธีการที่อธิบายไว้ในอ็อบเจ็กต์จะถือเป็นที่อยู่ของฟังก์ชันที่ได้รับอนุญาตให้ใช้กับอ็อบเจ็กต์นี้) ดังนั้นชุดของวัตถุจึงเป็นชุดของข้อมูลที่เชื่อมต่อถึงกันเช่น สิ่งที่คล้ายกับฐานข้อมูลมาก ดังนั้นการประยุกต์ใช้แนวคิดฐานข้อมูลจึงมักมีประโยชน์ในการวิเคราะห์เชิงวัตถุและการออกแบบระบบซอฟต์แวร์ประยุกต์เชิงวัตถุ
ข้อมูลเมตาคือข้อมูลที่อธิบายข้อมูลอื่น ตัวอย่างเช่น คำจำกัดความของคลาสคือข้อมูลเมตา เนื่องจากคลาสอธิบายข้อมูลอื่น - ออบเจ็กต์ของคลาสนี้ โมเดลคือข้อมูลเมตาเนื่องจากอธิบายออบเจ็กต์ที่กำลังสร้างโมเดล อีกตัวอย่างหนึ่งของข้อมูลเมตาคือคลาสนามธรรม
นักแสดงคือบทบาทที่เล่นโดยหน่วยงานที่มีปฏิสัมพันธ์โดยตรงกับระบบ
นักแสดงกำหนดบทบาทที่เอนทิตีภายนอกบางส่วนเล่นเมื่อมีการโต้ตอบโดยตรงกับระบบที่กำหนด อาจแสดงถึงบทบาทของผู้ใช้หรือบทบาทที่ดำเนินการโดยระบบอื่นหรือชิ้นส่วนของฮาร์ดแวร์ที่แตะขอบเขตของระบบ
ฉันชอบคำอธิบายแนวคิดของ "นักแสดง" ในงานของ Jim Arlow และ Isle Neustadt "UML 2 และ กระบวนการแบบครบวงจร": "เพื่อให้เข้าใจนักแสดง สิ่งสำคัญคือต้องเข้าใจแนวคิดเรื่องบทบาท บทบาทสามารถมองได้ว่าเป็นหมวกที่สวมใส่ในสถานการณ์บางอย่าง” (หน้า 92)
เมื่อทราบแนวคิดพื้นฐานแล้ว เราก็สามารถพิจารณาสร้างแบบจำลองได้
- การสร้างแบบจำลองวัตถุ
- การกำหนดคลาส
การวิเคราะห์ข้อกำหนดภายนอกสำหรับระบบแอปพลิเคชันที่ออกแบบช่วยให้เราสามารถกำหนดออบเจ็กต์และคลาสของออบเจ็กต์ที่เกี่ยวข้องกับปัญหาแอปพลิเคชันที่ระบบนี้ต้องแก้ไข คุณต้องเริ่มต้นด้วยการระบุคลาสที่เป็นไปได้จากข้อความที่เป็นลายลักษณ์อักษรของปัญหาที่นำไปใช้ ( เงื่อนไขการอ้างอิงและเอกสารอื่นๆ ที่ลูกค้าจัดเตรียมให้) นี่เป็นขั้นตอนการพัฒนาที่ยากและมีความรับผิดชอบเนื่องจากชะตากรรมในอนาคตของโครงการส่วนใหญ่ขึ้นอยู่กับมัน
เมื่อระบุคลาสที่เป็นไปได้ คุณควรพยายามระบุคลาสให้ได้มากที่สุด โดยจดชื่อของแต่ละคลาสที่อยู่ในใจ โดยเฉพาะอย่างยิ่ง คำนามแต่ละคำที่ปรากฏในคำแถลงเบื้องต้นของปัญหาสามารถมีคลาสที่สอดคล้องกันได้ ดังนั้น เมื่อระบุคลาสที่เป็นไปได้ คำนามแต่ละคำจึงมักจะเชื่อมโยงกับคลาสที่เป็นไปได้
คลาสที่ซ้ำซ้อน: หากคลาสตั้งแต่สองคลาสขึ้นไปแสดงข้อมูลเดียวกัน ควรคงคลาสไว้เพียงคลาสเดียวเท่านั้น
คลาสที่ไม่เกี่ยวข้อง (ไม่เกี่ยวข้องโดยตรงกับปัญหา): สำหรับแต่ละชื่อของคลาสที่เป็นไปได้ จะถูกประเมินว่ามีความจำเป็นเพียงใดในระบบในอนาคต (มักจะประเมินได้ยากมาก) ไม่รวมคลาสที่ไม่เกี่ยวข้อง
คลาสที่กำหนดไว้อย่างคลุมเครือ (จากมุมมองของปัญหาที่กำลังพิจารณา)
คุณลักษณะ: คำนามบางคำสอดคล้องกับคุณลักษณะมากกว่าชั้นเรียน ตามกฎแล้วคำนามดังกล่าวจะอธิบายคุณสมบัติของวัตถุ (เช่น ชื่อ อายุ น้ำหนัก ที่อยู่ ฯลฯ )
การดำเนินการ: คำนามบางคำมีแนวโน้มที่จะเป็นชื่อการดำเนินการมากกว่าคลาส (เช่น phone_call ไม่น่าจะหมายถึงคลาสใด ๆ )
บทบาท: คำนามบางคำกำหนดชื่อบทบาทในโมเดลวัตถุ (เช่น เจ้าของ คนขับรถ เจ้านาย พนักงาน ชื่อเหล่านี้ทั้งหมดเกี่ยวข้องกับบทบาทในการขึ้นต่อกันของวัตถุต่างๆ ของคลาสบุคคล)
โครงสร้างการใช้งาน: ไม่ควรเปรียบเทียบชื่อที่เกี่ยวข้องกับการเขียนโปรแกรมและฮาร์ดแวร์คอมพิวเตอร์กับคลาสในขั้นตอนนี้มากกว่า เนื่องจากไม่ได้สะท้อนถึงคุณสมบัติของระบบแอปพลิเคชันที่ออกแบบ ตัวอย่างของชื่อดังกล่าว: รูทีนย่อย กระบวนการ อัลกอริธึม การขัดจังหวะ ฯลฯ
หลังจากกำจัดชื่อของคลาสที่เป็นไปได้ที่ไม่จำเป็น (ฟุ่มเฟือย) ทั้งหมดแล้ว จะได้รับรายชื่อคลาสเบื้องต้นที่ประกอบขึ้นเป็นระบบที่ออกแบบ
- การเตรียมพจนานุกรมข้อมูล
แต่ละคำมีการตีความมากเกินไป ดังนั้นจึงจำเป็นที่จุดเริ่มต้นของการออกแบบเพื่อเตรียมพจนานุกรมข้อมูลที่มีคำจำกัดความที่ชัดเจนและไม่คลุมเครือของวัตถุทั้งหมด (คลาส) คุณลักษณะ การดำเนินงาน บทบาท และเอนทิตีอื่น ๆ ที่พิจารณาในโครงการ หากไม่มีพจนานุกรมดังกล่าว การหารือเกี่ยวกับโครงการกับเพื่อนนักพัฒนาและลูกค้าระบบก็ไม่มีความหมาย เนื่องจากทุกคนสามารถตีความคำศัพท์ที่พูดคุยกันในแบบของตนเองได้
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 ช่วยให้คุณสามารถจัดการความซับซ้อนของระบบโดยมุ่งเน้นไปที่คุณสมบัติที่สำคัญของวัตถุ นามธรรมเน้นความสนใจไปที่ คุณสมบัติภายนอกวัตถุและช่วยให้คุณสามารถแยกคุณสมบัติที่สำคัญที่สุดของพฤติกรรมออกจากรายละเอียดการใช้งาน ทางเลือก ชุดที่ถูกต้องนามธรรมสำหรับสิ่งที่กำหนด สาขาวิชาแสดงถึง งานหลักการออกแบบเชิงวัตถุ นามธรรมขึ้นอยู่กับขอบเขตและมุมมอง - สิ่งสำคัญในบริบทหนึ่งอาจไม่สำคัญในอีกบริบทหนึ่ง วัตถุและคลาสเป็นนามธรรมพื้นฐานของโดเมน
การห่อหุ้มคือการแปลคุณสมบัติและพฤติกรรมทางกายภาพภายในนามธรรมเดียว (เรียกว่า "กล่องดำ") โดยซ่อนการใช้งานไว้เบื้องหลังอินเทอร์เฟซสาธารณะ
การห่อหุ้มเป็นกระบวนการแยกออกจากกัน แต่ละองค์ประกอบวัตถุที่กำหนดโครงสร้างและพฤติกรรมของมัน การห่อหุ้มทำหน้าที่แยกส่วนต่อประสานของวัตถุซึ่งสะท้อนถึงพฤติกรรมภายนอกออกจากการใช้งานภายในของวัตถุ วิธีการแบบออบเจ็กต์สันนิษฐานว่าทรัพยากรดั้งเดิมซึ่งสามารถจัดการได้โดยการดำเนินการของออบเจ็กต์เท่านั้นที่ถูกซ่อนไว้ สภาพแวดล้อมภายนอก- นามธรรมและการห่อหุ้มเป็นส่วนเสริม: นามธรรมเน้นความสนใจไปที่ลักษณะภายนอกของวัตถุ ในขณะที่การห่อหุ้ม (หรือการจำกัดการเข้าถึง) จะป้องกันไม่ให้วัตถุของผู้ใช้มองเห็นโครงสร้างภายในของวัตถุ
การห่อหุ้มมีความคล้ายคลึงกับแนวคิดเรื่องการซ่อนข้อมูล นี่คือความสามารถในการซ่อนรายละเอียดมากมายของวัตถุจากโลกภายนอก โลกภายนอกวัตถุคือทุกสิ่งที่อยู่ภายนอก รวมถึงส่วนที่เหลือของระบบด้วย การซ่อนข้อมูลให้ประโยชน์เช่นเดียวกับการห่อหุ้ม นั่นคือความยืดหยุ่น
ความเป็นโมดูลาร์เป็นคุณสมบัติของระบบที่เกี่ยวข้องกับความเป็นไปได้ของการสลายตัวของระบบย่อย (โมดูล) ที่เชื่อมต่อกันอย่างแน่นหนาภายในจำนวนหนึ่ง แต่เชื่อมต่อระหว่างกันอย่างอ่อนแอ
ความเป็นโมดูลช่วยลดความซับซ้อนของระบบโดยอนุญาตให้มีการพัฒนาแต่ละโมดูลอย่างเป็นอิสระ การห่อหุ้มและการแยกส่วนจะสร้างอุปสรรคระหว่างนามธรรม
ลำดับชั้นเป็นระบบลำดับชั้นของนามธรรม ซึ่งจัดเรียงตามระดับ
ประเภทหลักของโครงสร้างลำดับชั้นที่เกี่ยวข้อง ระบบที่ซับซ้อนคือโครงสร้างของคลาส (ลำดับชั้นตามระบบการตั้งชื่อ) และโครงสร้างของวัตถุ (ลำดับชั้นตามองค์ประกอบ) ตัวอย่างของลำดับชั้นของคลาสนั้นง่ายและ มรดกหลายอย่าง(คลาสหนึ่งใช้ส่วนโครงสร้างหรือฟังก์ชันตามลำดับของคลาสอื่นตั้งแต่หนึ่งคลาสขึ้นไป) และลำดับชั้นของอ็อบเจ็กต์คือการรวมกลุ่ม
สามารถจัดชั้นเรียนได้ดังนี้ โครงสร้างลำดับชั้นซึ่งตาม รูปร่างคล้ายกับแผนการจำแนกประเภทในตรรกะเชิงแนวคิด ลำดับชั้นของแนวคิดถูกสร้างขึ้นดังนี้ แนวคิดหรือหมวดหมู่ทั่วไปที่สุดถือเป็นแนวคิดที่มีปริมาณมากที่สุดและตามด้วยเนื้อหาที่เล็กที่สุด นี่คือที่สุด ระดับสูงนามธรรมสำหรับลำดับชั้นที่กำหนด แล้วให้ แนวคิดทั่วไประบุไว้นั่นคือปริมาณลดลงและเนื้อหาเพิ่มขึ้น แนวคิดทั่วไปน้อยกว่าปรากฏขึ้น ซึ่งในไดอะแกรมลำดับชั้นจะต่ำกว่าแนวคิดดั้งเดิมหนึ่งระดับ กระบวนการสร้างแนวคิดที่เป็นรูปธรรมนี้สามารถดำเนินต่อไปได้จนกระทั่ง ระดับล่างจะไม่ได้รับแนวคิด ข้อกำหนดเพิ่มเติมซึ่งในบริบทนี้เป็นไปไม่ได้หรือทำไม่ได้