From Wikipedia, the free encyclopedia
در حیطه مباحث مهندسی نرمافزار، نمودار کلاس در زبان مدل سازی یکپارچه یک نوع از نمودارهای ساختاری ایستاست که ساختار یک سیستم را با نمایش کلاسهای سیستم، خصوصیات آنها و روابط بین آنها توصیف میکند.
نمودار کلاس اصلیترین جزء سازنده در مدلسازی شی گراست. این نمودار هم برای مدلسازی مفهومی کلی برنامه و هم برای مدلسازی طراحی جزئیات برای ترجمه به کد برنامهنویسی به کار میرود. یک کلاس در این نمودار به صورت جعبه مستطیلی نمایش داده میشود که از سه بخش تشکیل شده است:[1]
یک کلاس نمایشگر یک موجودیت از یک سیستم معین است که پیادهسازی کپسوله شده (encapsulated) ای از یک کارکرد موجودیت دادهشده را ارائه میدهد. این کارکردها از طریق متدهای یک کلاس عرضه میشوند. کلاس همچنین دارای ویژگیهایی است که خصایص یکتای کلاس را تعریف میکنند. در مراحل اولیه انعقاد طراحی سیستم، کلاسها را کلاسهای تحلیلی یا کلیشه (stereotype) مینامند. کلاسهای تحلیلی بر اساس رفتارشان به سه دسته تقسیم میشوند:[2]
واسطها (Interface) گونهای از کلاسهای تغییر یافته هستند که به جای پیادهسازی کارکرد تنها آن را تعریف مینمایند.[2] واسطها همه ویژگیهای کلاسها را دارند و تنها تفاوتشان این است که در واسط متدها فقط تعریف میشوند و پیادهسازی در کلاسها انجام میشود.
بسته (Package) این امکان را فراهم میکند که کلاسها و واسطهایی را که به یکدیگر شبیه یا مرتبط اند را در گروههایی جمعآوری نمود. گروهبندی عناصر طراحی در یک عنصر بسته باعث خوانایی بیشتر نمودارهای کلاس میشود.[2]
یو امال سازوکارهای ویژهای برای نمایش اعضای کلاس (متدها و خصوصیتها) و اطلاعاتی اضافی راجع به آنها ارائه میدهد.
برای مشخص کردن قابلیت دید هر یک از اعضای کلاس (یعنی متدهاوخصوصیات) از نمادهایی که در جدول زیر آمدهاند استفاده میشود که میبایست قبل از نام کلاس قرار گیرند:[3]
+ | عمومی(public) | قابل مشاهده برای تمام اجزایی که به فضای نام مالک آن دسترسی دارند. |
# | حفاظت شده(protected) | قابل مشاهده برای تمام اعضایی که با فضای نام مالک آن رابطه تعمیم دارند. |
– | خصوصی(private) | تنها در داخل فضای نام مالک آن قابل مشاهده است. |
~ | بسته(package) | در مالکیت فضای نامی است که خود یک package نیست، و توسط عناصری که در همان Package فضای نام مالک آن قرار دارند قابل مشاهده است. تنها عناصری که در مالکیت Packeageها نباشند میتوانند این سطح از قابلیت دید را دارا باشند. هر عنصری که با قابلیت دید package مشخص شود برای تمام عناصری که در نزدیکترین package دربرگیرنده قرار دارند قابل مشاهده خواهد بود. خارج از این نزدیکترین package در بر گیرنده، عنصر دارای قابلیت دید package دیده نخواهد شد. |
یو امال دو نوع حوزه مختلف برای اعضا تعیین میکند: نمونه(instance) و دسته کننده (Classifier).[3] در مورد اعضای نمونهای، حوزه، یک نمونه خاص است. برای خصوصیات این بدان معناست که مقدار خصوصیتها در نمونههای مختلف تغییر میکند. برای متدها بدان معنی است که فراخوانی آن روی وضعیت نمونه تأثیر میگذارد یا به عبارت دیگر تنها روی خصوصیات نمونهای تأثیر دارد. در اعضای دسته کننده، حوزه کلاس است. برای خصوصیات این بدان معناست که مقدار خصوصیت در تمام نمونهها یکسان است. برای متدها این بدان معناست که فراخوانی این متدها بر روی وضعیت نمونهها تأثیری ندارد. در بسیاری از زبانهای برنامهنویسی دسته کنندهها را با کلمه static نشان میدهند. در صورت نیاز به تعریف عضوی از نوع دسته کننده باید زیر آن خط کشید، در غیر این صورت به عنوان پیش فرض حوزه آن نمونهای در نظرگرفته میشود.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.