มันน่าจะมีอยู่ความสับสนมากเกี่ยวกับความแตกต่างระหว่างส่วนทั้งการเชื่อมโยงแนวคิดรวมตัวและองค์ประกอบ ปัญหาหลักคือความเข้าใจผิดอย่างกว้างขวาง (แม้แต่ในหมู่นักพัฒนาซอฟต์แวร์ผู้เชี่ยวชาญและในหมู่ผู้เขียน UML) ว่าแนวคิดของการจัดองค์ประกอบมีความหมายถึงการพึ่งพาวงจรชีวิตระหว่างส่วนทั้งหมดและส่วนต่างๆเพื่อให้ชิ้นส่วนไม่สามารถดำรงอยู่ได้หากไม่มีทั้งส่วน แต่มุมมองนี้เพิกเฉยต่อข้อเท็จจริงที่ว่ายังมีบางกรณีของการเชื่อมโยงบางส่วนกับส่วนที่ไม่สามารถแบ่งปันได้ซึ่งชิ้นส่วนนั้นสามารถแยกออกจากกันได้และรอดจากการทำลายล้างทั้งหมด
ในเอกสารข้อมูลจำเพาะของ UML คำจำกัดความของคำว่า "องค์ประกอบ" มักจะบอกเป็นนัยถึงส่วนที่ไม่สามารถแบ่งปันได้ แต่ยังไม่ชัดเจนว่าอะไรคือลักษณะที่กำหนดของ "องค์ประกอบ" และอะไรเป็นเพียงลักษณะทางเลือก แม้ในเวอร์ชันใหม่ (ณ ปี 2015) UML 2.5 หลังจากพยายามปรับปรุงคำจำกัดความของคำว่า "องค์ประกอบ" ก็ยังคงคลุมเครือและไม่ได้ให้คำแนะนำใด ๆ ในการสร้างแบบจำลองการเชื่อมโยงบางส่วนกับส่วนที่แชร์ไม่ได้ ชิ้นส่วนที่สามารถถอดออกจากชิ้นส่วนและอยู่รอดจากการถูกทำลายได้ซึ่งทั้งหมดตรงข้ามกับกรณีที่ชิ้นส่วนไม่สามารถถอดออกได้และถูกทำลายพร้อมกับทั้งชิ้น พวกเขากล่าวว่า
หากอ็อบเจ็กต์คอมโพสิตถูกลบอินสแตนซ์ส่วนทั้งหมดที่เป็นอ็อบเจ็กต์จะถูกลบออก
แต่ในเวลาเดียวกันพวกเขายังกล่าวว่า
อ็อบเจ็กต์ส่วนหนึ่งอาจถูกลบออกจากอ็อบเจ็กต์คอมโพสิตก่อนที่อ็อบเจ็กต์คอมโพสิตจะถูกลบดังนั้นจึงไม่ถูกลบออกจากอ็อบเจ็กต์คอมโพสิต
ความสับสนนี้ชี้ให้เห็นถึงความไม่สมบูรณ์ของนิยาม UML ซึ่งไม่ได้คำนึงถึงการพึ่งพาวงจรการใช้งานระหว่างส่วนประกอบและคอมโพสิต ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องทำความเข้าใจว่าคำจำกัดความ UML สามารถปรับปรุงได้อย่างไรโดยการแนะนำ UML stereotype สำหรับองค์ประกอบ<< ที่แยกกันไม่ออก >> ซึ่งส่วนประกอบไม่สามารถแยกออกจากคอมโพสิตได้ดังนั้นจึงต้องถูกทำลายทุกครั้งที่คอมโพสิตถูกทำลาย
องค์ประกอบ
ดังที่Martin Fowler ได้อธิบายไว้ประเด็นหลักในการกำหนดลักษณะการจัดองค์ประกอบคือ "วัตถุสามารถเป็นส่วนหนึ่งของความสัมพันธ์ขององค์ประกอบเดียวเท่านั้น" นอกจากนี้ยังมีการอธิบายไว้ในบล็อกโพสต์ที่ยอดเยี่ยมUML Composition vs Aggregation vs Associationโดย Geert Bellekens นอกเหนือจากการกำหนดลักษณะเฉพาะขององค์ประกอบนี้แล้ว (ที่จะมีส่วนที่เป็นเอกสิทธิ์หรือไม่สามารถแบ่งปันได้ ) องค์ประกอบยังอาจมาพร้อมกับการพึ่งพาวงจรชีวิตระหว่างคอมโพสิตและส่วนประกอบ ในความเป็นจริงมีสองประเภทของการอ้างอิงดังกล่าว:
- เมื่อใดก็ตามที่ต้องแนบองค์ประกอบเข้ากับคอมโพสิตเสมอหรือกล่าวอีกนัยหนึ่งคือเมื่อมีองค์ประกอบที่บังคับตามที่แสดงโดยการทวีคูณ "หนึ่งเดียว" ที่ด้านคอมโพสิตของบรรทัดองค์ประกอบนั้นจะต้องถูกนำมาใช้ใหม่ ใน (หรือติดใหม่กับ) คอมโพสิตอื่นหรือถูกทำลายเมื่อคอมโพสิตปัจจุบันถูกทำลาย นี่คือตัวอย่างขององค์ประกอบระหว่าง
Person
และHeart
แสดงในแผนภาพด้านล่าง หัวใจอาจถูกทำลายหรือปลูกถ่ายให้กับบุคคลอื่นเมื่อเจ้าของเสียชีวิต
- เมื่อใดก็ตามที่ไม่สามารถแยกส่วนประกอบออกจากคอมโพสิตได้หรือกล่าวอีกนัยหนึ่งคือเมื่อแยกออกจากกันไม่ได้เมื่อนั้นส่วนประกอบจะต้องถูกทำลายเมื่อคอมโพสิตถูกทำลาย ตัวอย่างขององค์ประกอบดังกล่าวกับชิ้นส่วนแยกออกเป็นองค์ประกอบระหว่างและ
Person
Brain
โดยสรุปการขึ้นต่อกันของวงจรชีวิตใช้กับกรณีเฉพาะขององค์ประกอบเท่านั้น แต่ไม่ใช่โดยทั่วไปดังนั้นจึงไม่ใช่ลักษณะที่กำหนด
ข้อมูลจำเพาะของ UML ระบุ: "บางส่วนอาจถูกลบออกจากอินสแตนซ์แบบผสมก่อนที่อินสแตนซ์ผสมจะถูกลบดังนั้นจึงไม่ถูกลบในฐานะส่วนหนึ่งของอินสแตนซ์แบบผสม" ในตัวอย่างของCar
- Engine
องค์ประกอบดังที่แสดงในแผนภาพต่อไปนี้เห็นได้ชัดว่าเครื่องยนต์สามารถถอดออกจากรถได้ก่อนที่รถจะถูกทำลายซึ่งในกรณีนี้เครื่องยนต์จะไม่ถูกทำลายและสามารถนำกลับมาใช้ใหม่ได้ นี่เป็นนัยโดยศูนย์หรือหนึ่งคูณที่ด้านคอมโพสิตของเส้นองค์ประกอบ
ความหลายหลากของการเชื่อมโยงขององค์ประกอบที่สิ้นสุดที่ด้านคอมโพสิตคือ 1 หรือ 0..1 ขึ้นอยู่กับความจริงว่าส่วนประกอบมีส่วนประกอบที่จำเป็น (ต้องแนบกับคอมโพสิต) หรือไม่ หากส่วนประกอบต่างๆแยกออกจากกันไม่ได้แสดงว่ามีส่วนประกอบที่จำเป็น
การรวม
การรวมตัวเป็นรูปแบบพิเศษของการเชื่อมโยงอีกรูปแบบหนึ่งที่มีความหมายที่ตั้งใจไว้ของความสัมพันธ์แบบส่วนหนึ่ง - ทั้งหมดโดยที่ส่วนของทั้งหมดสามารถแบ่งปันกับผู้ค้าส่งรายอื่นได้ ตัวอย่างเช่นเราสามารถจำลองการรวมกันระหว่างชั้นเรียนDegreeProgram
และCourse
ดังที่แสดงในแผนภาพต่อไปนี้เนื่องจากหลักสูตรเป็นส่วนหนึ่งของหลักสูตรปริญญาและหลักสูตรสามารถใช้ร่วมกันระหว่างสองหลักสูตรหรือมากกว่านั้นได้ (เช่นปริญญาวิศวกรรมสามารถใช้ C หลักสูตรการเขียนโปรแกรมที่มีปริญญาวิทยาศาสตร์คอมพิวเตอร์)
อย่างไรก็ตามแนวคิดของการรวมกับชิ้นส่วนที่แชร์ได้นั้นไม่ได้มีความหมายมากนักดังนั้นจึงไม่มีผลกระทบใด ๆ ต่อการนำไปใช้งานและนักพัฒนาจำนวนมากจึงไม่ต้องการใช้เพชรสีขาวในไดอะแกรมคลาสของพวกเขา แต่เป็นเพียงการสร้างแบบจำลองการเชื่อมโยงธรรมดา แทน. ข้อมูลจำเพาะ UML ระบุว่า: "ความหมายที่แม่นยำของการรวมที่ใช้ร่วมกันแตกต่างกันไปตามพื้นที่แอปพลิเคชันและผู้สร้างโมเดล"
ความทวีคูณของการเชื่อมโยงของการรวมที่สิ้นสุดที่ด้านข้างทั้งหมดอาจเป็นตัวเลขใดก็ได้ (*) เนื่องจากส่วนหนึ่งอาจเป็นของหรือใช้ร่วมกันระหว่าง wholes จำนวนเท่าใดก็ได้