مقدمه: چرا به نمودارهای ساختار ترکیبی روی آوردم
به عنوان یک مهندس نرمافزار که سالها درگیر طراحیهای پیچیده سیستم بودهام، اغلب متوجه شدهام که نمودارهای کلاسیک در توضیح اینکه اجزای مختلف در زمان اجرا واقعاً چگونه تعامل دارند، کافی نیستند.چگونهاجزای مختلف واقعاً در زمان اجرا با یکدیگر تعامل دارند. در آن لحظه به نمودارهای ساختار ترکیبی UML 2.0 پی بردم که تغییر بزرگی در بصریسازی معماریهای داخلی اشیاء ایجاد کرد.
در این راهنما، تجربه عملی خودم در یادگیری و به کارگیری نمودارهای ساختار ترکیبی را به اشتراک میگذارم، از طریق مثالهای واقعی، نکات کاربردی در پیادهسازی و دلایلی که این نوع نمودار باید جایی در ابزارهای مدلسازی شما داشته باشد. چه دانشجویی باشید که UML یاد میگیرید و چه حرفهای که مستندات طراحی خود را بهبود میبخشید، این راهنما به شکل بررسی، هم شفافیت مفهومی و هم بینشهای قابل اجرا ارائه میدهد.

دقیقاً چه چیزی نمودار ساختار ترکیبی است؟
نمودار ساختار ترکیبی یکی از اشیاء جدیدی است که به UML 2.0 اضافه شده است. نمودار ساختار ترکیبی یک نمودار ساختاری UML است که شامل کلاسها، رابطها، بستهها و روابط بین آنها میشود و دید منطقی از کل یا بخشی از یک سیستم نرمافزاری ارائه میدهد. این نمودار ساختار داخلی (شامل قسمتها و اتصالات) یک طبقهبندی ساختاری یا همکاری را نشان میدهد.
نمودار ساختار ترکیبی نقشی مشابه نمودار کلاس دارد، اما به شما اجازه میدهد تا در توصیف ساختار داخلی چندین کلاس و نشان دادن تعاملات بین آنها به جزئیات بیشتری بپردازید. میتوانید کلاسهای داخلی و قسمتها را به صورت گرافیکی نمایش دهید و ارتباطات را هم بین کلاسها و هم درون خود کلاسها نشان دهید.

دید من: فرض کنید نمودار کلاسی مانند نقشه زمینبندی یک ساختمان است، در حالی که نمودار ساختار ترکیبی مانند یک اسکن ایکس-ریز است که سیمکشی، لولهکشی و تیرهای ساختاری در داخل دیوارها را نشان میدهد. قابلیت «نگاه کردن به داخل» که این نمودار دارد، آن را به این مقدار ارزشمند میکند.
UML را سریعتر، بهتر و آسانتر یاد بگیرید
آیا به دنبال ابزاری رایگان UML برای یادگیری سریعتر، آسانتر و سریعتر UML هستید؟ نسخه جامع Visual Paradigm یک نرمافزار UML است که از همه انواع نمودارهای UML پشتیبانی میکند. این ابزار مدلساز UML بینالمللی برنده جایزه است و همچنان کاربرپسند، شهودی و کاملاً رایگان است.
دانلود رایگان
هدف نمودار ساختار ترکیبی: این نمودار چه مشکلاتی را حل میکند؟
-
نمودارهای ساختار ترکیبی به کاربران اجازه میدهند تا «به داخل یک شیء نگاه کنند» و دقیقاً بفهمند که این شیء از چه چیزهایی تشکیل شده است.
-
اقدامات داخلی یک کلاس، از جمله روابط کلاسهای داخلی، قابل جزئیاتگذاری هستند.
-
اشیاء به عنوان ترکیبی از سایر اشیاء طبقهبندی شده نشان داده میشوند.
نکته تجربه کاربری: وقتی اولین بار از این نمودارها برای مستندسازی یک معماری میکروسرویسها استفاده کردم، تیم من نهایتاً درک کرد که خدمات «جعبه سیاه» ما چگونه به صورت داخلی هماهنگی میکردند. شفافیت بصری زمان آموزش کاربران جدید را تقریباً 40 درصد کاهش داد.
نمودار ساختار ترکیبی در یک نگاه
-
نمودارهای ساختار ترکیبی قسمتهای داخلی یک کلاس را نشان میدهند.
-
قسمتها با نام مشخص میشوند:
نامقسمت:نوعقسمت[تکرار] -
کلاسهای تجمیعی بخشی از یک کلاس هستند، اما قسمتها لزوماً کلاس نیستند؛ قسمت هر عنصری است که برای تشکیل کلاس محتوی است.

نکته حرفهای: همیشه قسمتهای خود را به وضوح با استفاده از الگوی
نام:نوع[تعداد]استاندارد نامگذاری. اگرچه کوچک به نظر میرسد، اما ساعتها از سردرگمی در بازبینی کد جلوگیری میکند.
استخراج نمودار ساختار ترکیبی از نمودار کلاس: یک مثال واقعی از دنیای واقعی
سناریوی فروشگاه آنلاین
فرض کنید که ما در حال مدلسازی یک سیستم برای یک فروشگاه آنلاین هستیم. مشتری به ما گفته است که مشتریان میتوانند در یک برنامه عضویت شرکت کنند که به آنها امکان دریافت پیشنهادهای ویژه و حمل و نقل با تخفیف را میدهد، بنابراین ما شیء مشتری را گسترش دادهایم تا گزینه عضو و گزینه استاندارد را فراهم کند.
بیایید فروشگاه آنلاین را با استفاده از یک نمودار کلاس مدل کنیم:

ما یک کلاس برای آیتم داریم که ممکن است توسط کلاس سفارش تجمیع شود، که خود توسط کلاس مشتری تشکیل شده و این کلاس نیز توسط کلاس مدیر فروشگاه تشکیل شده است.ما تعداد زیادی شیء داریم که در نهایت در شیءهای دیگر قرار میگیرند.
همه چیز به نظر میرسد که در داخل StoreManager قرار میگیردبنابراین ما میتوانیم یک نمودار ساختار ترکیبی ایجاد کنیم تا واقعاً ببینیم این چیست که از آن ساخته شده است.

در مثال بالا، ما میتوانیم ببینیم:
-
مدیر فروشگاه از دیدگاه خود، به جای سیستم به طور کلی.
-
مدیر فروشگاه به طور مستقیم دو نوع شیء را شامل میشود (مشتریوآیتم)دو فلش ترکیبی در نمودار کلاس.
-
نمودار ساختار ترکیبی اینجا به صورت واضحتر نشان میدهد که زیرنوعهای مشتری در آن گنجانده شدهاند.
-
توجه داشته باشید که نوع هر دو این قطعات مشتری است، زیرا فروشگاه هر دو را به عنوان شیء مشتری میبیند.
-
ما همچنین یک اتصالدهنده را میبینیم که رابطه بین آیتم و سفارش را نشان میدهد.
-
سفارش به طور مستقیم در کلاس مدیر فروشگاه قرار ندارد اما ما میتوانیم روابط با قسمتهای نهفته در شیءهایی که آنها تجمیع میکند را نشان دهیم.
بینش من: این مثال به طور کامل نشان میدهد که چرا هنگامی که ذینفعان میپرسند، «اما این درون چگونه کار میکند؟» به نمودارهای ساختار ترکیبی مراجعه میکنم. نمودار کلاس نشان میدهد که چه چیزی به چه چیزی مرتبط است؛چه چیزیبه چه چیزی مرتبط استچه چیزی؛ نمودار ساختار ترکیبی نشان میدهد که چگونه آنها به صورت داخلی با یکدیگر تعامل دارند.چگونهآنها به صورت داخلی با یکدیگر تعامل دارند.
نمودار کلاس در مقابل نمودار ساختار ترکیبی: رفع ابهام
سوال: آیا دو نمودار زیر معنای یکسانی را بیان میکنند؟
پاسخ: در یک نمودار کلاس ارجاع بین Description و Pricing مبهم است؛ به طور دقیق، آنها دقیقاً یکسان نیستند.
-
نمودار کلاس نشان میدهد که Description به یک شی Pricing ارجاع خواهد داشت
-
اما مشخص نمیکند که آیا ارجاع بین این دو شی به صورت صریح درون آیتم قرار دارد یا خیر

اگر از نمودار ساختار ترکیبی استفاده کنیم، معنای متعلق بودن رابطه ارتباطی به طور قطع مشخص میشود.
-
ارجاع بین شیهای Description و Pricing به شیهایی محدود میشود که توسط Item ساخته شدهاند.
-
پیادهسازیهای خاص فعالیت یک شی میتواند به طور واضح مدلسازی شود.
نگاه کاربر حرفهای: من دیدهام تیمها هفتهها را صرف بحث کردن کنند که آیا یک رابطه ترکیبی یا جمعیتی است. یک نمودار ساختار ترکیبی به خوبی طراحی شده، این ابهام را از ابتدا از بین میبرد. این مستنداتی است که از بحثهای اضافی جلوگیری میکند.
ارجاع به قسمتهای خارجی: مدلسازی وابستگیهای دنیای واقعی
ما مثالهایی دیدهایم که نشان میدهد نمودارهای ساختار ترکیبی عالی هستند برای توصیف جمعیت، اما مدلهای شما همچنین نیاز به شامل کردن ارجاع به شیهای خارج از کلاسی دارند که در حال مدلسازی هستید.
اما در مورد ارجاع به یک شی خارجی با استفاده از نمودار ساختار ترکیبی مانند مثال زیر چطور؟

-
ارجاع به شیهای خارجی به صورت یک قسمت با مستطیل نقطهچین نشان داده میشود.
-
اگرچه شی مورد ارجاع خارج از کلاس است، اما خود ارجاع درون کلاس مدلشده قرار دارد و گام مهمی در نشان دادن پیادهسازی آن است.
یادداشت میدانی: هنگام مدلسازی ادغام با APIهای طرف سوم، همیشه از مستطیلهای نقطهچین برای ارجاعات خارجی استفاده میکنم. این کار به صورت بصری به توسعهدهندگان اعلام میکند: «این وابستگی خارج از کد ما قرار دارد — با دقت مدیریت کنید.»
مفاهیم پایهای نمودار ساختار ترکیبی: بلوکهای ساختمانی
entites اصلی ساختار ترکیبی که در مشخصات UML 2.0 شناسایی شدهاند، طبقهبندیهای ساختاری، قسمتها، پورتها، اتصالها و همکاریها هستند.
همکاری
همکاری ساختاری از قسمتهای همکار (نقشها) را توصیف میکند. همکاری از طریق استفاده از همکاری به یک عملیات یا یک طبقهبندی متصل میشود. شما از همکاری زمانی استفاده میکنید که فقط نقشها و اتصالاتی را که برای دستیابی به هدف خاصی از همکاری لازم است، تعریف کنید.
به عنوان مثال، هدف یک همکاری میتواند تعریف نقشها یا اجزای یک طبقهبندی باشد. با جداسازی نقشهای اصلی، یک همکاری ساختار را سادهتر و رفتار در یک مدل را شفافتر میکند.
مثال: در این مثال چرخها و موتور قسمتهای همکاری هستند و محور جلو و محور عقب اتصالها هستند. ماشین ساختار ترکیبی است که قسمتها و اتصالات بین آنها را نشان میدهد.

قسمتها
یک قسمت عنصری در نمودار است که مجموعهای از یک یا چند نمونهای را که یک طبقهبندی ساختاری محتوی آن است، نشان میدهد. قسمت نقش یک نمونه در یک طبقهبندی را توصیف میکند. شما میتوانید قسمتها را در بخش ساختار یک طبقهبندی و در چند نمودار UML مانند ساختار ترکیبی، کلاس، شی، مؤلفه، نصب و بستهبندی ایجاد کنید.
پورت
یک پورت نقطه تعامل بین یک نمونه طبقهبندی و محیط آن یا بین رفتار طبقهبندی و قسمتهای داخلی آن را تعریف میکند.
رابط
نمودار ساختار ترکیبی از نمادگذاری کره و گنجه برای رابطهای ارائهشده و مورد نیاز پشتیبانی میکند. رابطها میتوانند به صورت نمایش داده یا مخفی شوند، همانطور که نیاز است.
اتصال
یک خط که رابطهای در یک مدل را نشان میدهد. هنگامی که ساختار داخلی یک طبقهبندی را مدل میکنید، میتوانید از یک اتصالدهنده برای نشان دادن ارتباط بین دو یا چند نمونه از یک قطعه یا پورت استفاده کنید. اتصالدهنده رابطه بین اشیاء یا نمونههایی که به نقشهایی در یک طبقهبندی ساختاریافته متصل شدهاند را تعریف میکند و ارتباط بین آن نقشها را شناسایی میکند. محصول به طور خودکار نوع اتصالدهندهای که باید ایجاد شود را مشخص میکند.
مثال نمودار ساختار مرکب: تجزیه سیستم کامپیوتر
بیایید نمودار ساختار مرکب برای یک سیستم کامپیوتر که شامل فهرست زیر از قطعات است، توسعه دهیم:
-
واحد تأمین قدرت (PSU)
-
درایو هارد دیسک (HDD)
-
مادربرد (MB)
-
درایو نوری (DVD-RW)
-
ماژول حافظه (MM)
برای همین لحظه فرض میکنیم که مادربرد نوعی است که کارت صدا و کارت نمایشگر درون آن ساخته شده است:

چرا این مثال کار میکند: این نمودار ترکیب کامپیوتر عالی برای یادگیری است، زیرا همه میدانند که قطعات کامپیوتر چگونه با هم سازگار میشوند. هنگامی که این مدل ذهنی را درک کنید، به کارگیری الگوهای مشابه در معماری نرمافزار به طور طبیعی و آسان میشود.
چگونه نمودار ساختار مرکب در UML رسم کنیم: آموزش گام به گام
نمودار ساختار مرکبنوعی ازنمودار UMLکه ساختار داخلی یک کلاس یا همکاری را نمایش میدهد. نوعی از نمودار قطعه است که عمدتاً در مدلسازی یک سیستم از دیدگاه کوچکمقیاس استفاده میشود.
ایجاد نمودار ساختار مرکب
مراحل زیر را انجام دهید تا نمودار ساختار مرکب UML ایجاد کنید:
-
انتخاب کنیدنمودار > جدیداز نوار ابزار برنامه.
-
در پنجرهنمودار جدیدپنجره، انتخاب کنیدنمودار ساختار مرکب.
-
کلیک کنیدبعدی.
-
نام و توضیحات نمودار را وارد کنید. اینمکانفیلد امکان انتخاب مدلی را برای ذخیره نمودار فراهم میکند.
-
کلیک کنید تأیید.
ایجاد یک کلاس
برای ایجاد یک کلاس در ساختار ترکیبی، کلیک کنید کلاس روی نوار ابزار نمودار و سپس روی نمودار کلیک کنید.

یک کلاس ایجاد خواهد شد.

ایجاد یک قسمت
برای ایجاد یک قسمت درون یک کلاس:
-
موشی را روی کلاس ببرید.
-
روی کلیک کنیدکاتالوگ منابع دکمه.

-
انتخاب کنید قسمت جدید از کاتالوگ منابع.

یک قسمت ایجاد شد.

ایجاد یک پورت
برای ایجاد یک پورت که به یک کلاس متصل میشود:
-
موشی را روی کلاس ببرید.
-
روی کلیک کنیدکاتالوگ منابع دکمه.

-
انتخاب کنید پورت جدید از کاتالوگ منابع.

یک پورت ایجاد شد.

تعیین نوع پورت
روی پورت کلیک راست کنید و انتخاب کنیدباز کردن مشخصات…از منوی کشویی. پنجرهمشخصات پورتپنجره باز میشود.
روی جعبه ترکیبینوعکلیک کنید و یک کلاس انتخاب کنید.

کلیک کنیدتأییددکمه برای اعمال تغییرات. نوع در عنوان پورت نمایش داده خواهد شد.

ایجاد یک اتصالدهنده
برای ایجاد اتصالدهنده، کلیک کنیداتصالدهندهروی نوار ابزار نمودار.

از شکل منبع کشیده شروع کنید، موشی را روی شکل مقصد ببرید و سپس دکمه موشی را رها کنید تا اتصالدهنده ایجاد شود.

برای تکمیل نمودار ادامه دهید.

پیشنهاد ابزار: من چندین ابزار UML را آزمودم و رابط کشیدن و رها کردن Visual Paradigm برای نمودارهای ساختار مرکب بیشترین منطقی بود. تنها ویژگی کاتالوگ منابع ساعتها را از جستجوی منویی نجات میدهد.
مرور اجزای کلیدی: راهنمای سریع شما
در Visual Paradigm، نمودار ساختار مرکب یک نمودار ساختاری UML است که برای نمایش ساختار داخلی یک کلاس، مؤلفه یا همکاری استفاده میشود. برخلاف نمودار کلاس استاندارد که روابط ثابت را نشان میدهد، این نمودار «جعبه را باز میکند» تا نشان دهد که اجزای داخلی چگونه در حین اجرا با یکدیگر تعامل دارند تا به یک هدف خاص برسند.
عناصر ضروری:
-
اجزای: نمونههای داخلی که نقشهای خاصی در داخل طبقهبندیکننده محتوی ایفا میکنند.
-
پورتها: نقاط تعامل که نحوه ارتباط طبقهبندیکننده یا جزء با محیط یا سایر اجزای داخلی را تعریف میکنند.
-
اتصالدهندهها: ارتباطاتی که اجزا یا پورتها را به هم متصل میکنند.
-
رابطها: رابطههای پشتیبانی شده (لولیپاپ) و مورد نیاز (سکت) برای تعریف وابستگیهای خارجی.
کمکهای پشتیبانی شده توسط هوش مصنوعی
گزینه هوش مصنوعی: شما میتوانید همچنین از تولیدکننده نمودار هوش مصنوعی با توصیف ساختار سیستم خود و اجازه دادن به هوش مصنوعی برای خودکارسازی قرارگیری قطعات و اتصالدهندهها.
تجربه من با ابزارهای هوش مصنوعی: در ابتدا شکاک بودم، اما توصیف «یک پردازنده پرداخت با مؤلفههای اعتبارسنجی، رمزنگاری و ثبترویداد» و دریافت یک نمودار آغازین در چند ثانیه؟ این واقعاً طلای بهرهوری است. فقط به یاد داشته باشید: هوش مصنوعی یک طرح اولیه تولید میکند—شما هنوز باید جزئیات را بهبود بخشید.
نتیجهگیری: چه زمانی و چرا از نمودارهای ساختار مرکب استفاده کنیم
پس از سالها استفاده از نمودارهای UML در پروژههای سازمانی، میتوانم با اطمینان بگویم که نمودارهای ساختار مرکب یک شکاف حیاتی در مستندسازی طراحی سیستم پر میکنند. اینها جایگزین نمودارهای کلاس نیستند—بلکه یک تکمیل قدرتمند هستند.
از نمودارهای ساختار مرکب استفاده کنید وقتی که نیاز دارید:
-
مستندسازی معماری داخلی کلاسها یا مؤلفههای پیچیده
-
شفافسازی تعاملات زمان اجرا بین اشیاء نهفته
-
ورود اعضای جدید تیم با نقشههای سیستم بصری و شهودی
-
حل ابهام در مورد روابط ترکیبی در مقابل تجمعی
-
مدلسازی رابطهای مبتنی بر پورت برای طراحیهای ماژولار و قابل آزمون
آنها را حذف کنید وقتی که:
-
شما در حال مستندسازی سلسله مراتب کلاسهای ساده و صاف هستید
-
مخاطبان شما تنها به نمای کلی سیستم نیاز دارند
-
محدودیتهای زمانی سرعت را نسبت به عمق طراحی اولویت میدهند
منحنی یادگیری کم است، به ویژه با ابزارهای مدرن مانند Visual Paradigm. با یک مؤلفه پیچیده در سیستم خود شروع کنید، ساختار داخلی آن را نمودار کنید و ببینید چگونه گفتگوهای تیم را از «فکر میکنم که اینگونه کار میکند…» به «اینجا دقیقاً چگونه کار میکند» تبدیل میکند.
نمودارهای ساختار مرکب فقط یکی دیگر از اشیاء UML نیستند—اینها عدسیای هستند که کارکرد داخلی سیستم شما را به شدت واضح میکنند. و در محیط نرمافزاری پیچیده امروز، این شفافیت تنها زیبا نیست؛ بلکه ضروری است.
منابع
- نمودار ساختار مرکب چیست؟: راهنمای جامع از Visual Paradigm که تعاریف، اهداف، مثالها و آموزشهای گام به گام برای ایجاد نمودارهای ساختار مرکب در UML را پوشش میدهد.
- چه زمانی از نمودارهای ساختار مرکب استفاده کنیم: راهنمای عملی برای طراحان سیستم: نصایح عملی در شناسایی سناریوهایی که در آنها نمودارهای ساختار مرکب بیشترین ارزش را در فرآیندهای طراحی و مستندسازی سیستم ایجاد میکنند.
- تسلط به UML 2.5: نمودارهای ساختار مرکب: ماژول عمیق از سری تسلط UML Visual Paradigm که بر روی نمودارهای ساختاری با روشهای مدلسازی آگیل تمرکز دارد.
- مرجع نمودار ساختار ترکیبی UML: راهنمای سریع پوشش دهنده سینتکس، نمادگذاری و بهترین روشها برای عناصر نمودار ساختار ترکیبی.
- مدلسازی نمودار ساختار ترکیبی پایهگذاری شده بر هوش مصنوعی: راهنمای استفاده از ابزارهای هوش مصنوعی برای شتاب بخشیدن به ایجاد و بهبود نمودارهای ساختار ترکیبی.
- کشیدن نمودارهای ساختار ترکیبی: راهنمای کاربر: مستندات رسمی کاربر Visual Paradigm با دستورالعملهای دقیق برای ایجاد و ویرایش نمودارهای ساختار ترکیبی.
- Generator نمودار ساختار ترکیبی هوش مصنوعی: OpenDocs: مستندات فنی ویژگی تولید نمودار پایهگذاری شده بر هوش مصنوعی Visual Paradigm، شامل مثالهای استفاده و گزینههای پیکربندی.
- یادداشتهای انتشار Generator نمودار ساختار ترکیبی هوش مصنوعی: اعلان انتشار و مرور ویژگیهای قابلیت تولید نمودار هوش مصنوعی در Visual Paradigm.
- راهنمای جریان کار ویرایشگر نمودار هوش مصنوعی: مستندات جریان کار گام به گام برای استفاده از ویرایشگر نمودار کمکشده توسط هوش مصنوعی به منظور ایجاد نمودارهای ساختار ترکیبی به صورت کارآمد.
This post is also available in Deutsch, English, Español, Français, English, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.













