نمودار کلاس
در حیطه مباحث مهندسی نرم افزار، نمودار کلاس در زبان مدل سازی یکپارچه یک نوع از نمودارهای ساختاری ایستاست که ساختار یک سیستم را با نمایش کلاسهای سیستم، خصوصیات آنها و روابط بین آنها توصیف می کند.
محتویات |
[ویرایش] مرور کلی
نمودار کلاس اصلیترین جزء سازنده در مدلسازی شی گراست. این نمودار هم برای مدلسازی مفهومی کلی برنامه و هم برای مدلسازی طراحی جزئیات برای ترجمه به کد برنامه نویسی به کار می رود. یک کلاس در این نمودار به صورت جعبه مستطیلی نمایش داده می شود که از سه بخش تشکیل شده است :[۱]
- قسمت بالایی نام کلاس را نمایش می دهد
- قسمت میانی خصوصیات کلاس را نمایش می دهد
- قسمت پایینی شامل متدها و یا عملیاتی است که کلاس انجام می دهد یا بر روی آن انجام می شود.
[ویرایش] عناصر یک نمودار کلاس
[ویرایش] کلاس
یک کلاس نمایشگر یک موجودیت از یک سیستم معین است که پیادهسازی کپسوله شده (encapsulated) ای از یک کارکرد موجودیت دادهشده را ارائه میدهد. این کارکردها از طریق متدهای یک کلاس عرضه میشوند. کلاس همچنین دارای ویژگیهایی است که خصایص یکتای کلاس را تعریف میکنند.در مراحل اولیه انعقاد طراحی سیستم، کلاسها را کلاسهای تحلیلی یا کلیشه (stereotype) مینامند. کلاسهای تحلیلی بر اساس رفتارشان به سه دسته تقسیم می شوند. [۲] :
- کلاسهای مرزی: در یک سیستم چندلایهای (multi-tier) ایدهآل کاربر تنها با کلاسهای مرزی تعامل دارد.
- کلاسهای کنترلی: وظیفه این کلاسها انتقال کنترل از کلاسهای مرزی به کلاسهایی است که منطق برنامه را پیاده میکنند.
- کلاسهای موجودیتی: این کلاسها حاوی منطق اصلی برنامه هستند.
[ویرایش] واسط
واسطها (Interface) گونه ای از کلاسهای تغییر یافته هستند که به جای پیاده سازی کارکرد تنها آن را تعریف می نمایند.[۲] واسطها همه ویژگیهای کلاسها را دارند و تنها تفاوتشان این است که در واسط متدها فقط تعریف می شوند و پیاده سازی در کلاسها انجام می شود.
[ویرایش] بسته
بسته (Package) این امکان را فراهم میکند که کلاسها و واسط هایی را که به یکدیگر شبیه یا مرتبط اند را در گروههایی جمع آوری نمود. گروه بندی عناصر طراحی در یک عنصر بسته باعث خوانایی بیشتر نموداهای کلاس می شود.[۲]
[ویرایش] دسترسی به اعضای کلاس ها
یو ام ال سازوکارهای ویژه ای برای نمایش اعضای کلاس (متدها و خصوصیت ها) و اطلاعاتی اضافی راجع به آنها ارائه می دهد.
[ویرایش] قابلیت دید(Visibility)
برای مشخص کردن قابلیت دید هر یک از اعضای کلاس (یعنی متدهاوخصوصیات) از نمادهایی که در جدول زیر آمده اند استفاده میشود که می بایست قبل از نام کلاس قرار گیرند.[۳]:
| + | عمومی(public) | قابل مشاهده برای تمام اجزایی که به فضای نام مالک آن دسترسی دارند. |
| # | حفاظت شده(protected) | قابل مشاهده برای تمام اعضایی که با فضای نام مالک آن رابطه تعمیم دارند. |
| – | خصوصی(private) | تنها در داخل فضای نام مالک آن قابل مشاهده است. |
| ~ | بسته(package) | در مالکیت فضای نامی است که خود یک package نیست، و توسط عناصری که در همان Package فضای نام مالک آن قرار دارند قابل مشاهده است.تنها عناصری که در مالکیت Packeage ها نباشند می توانند این سطح از قابلیت دید را دارا باشند. هر عنصری که با قابلیت دید package مشخص شود برای تمام عناصری که در نزدیکترین package دربرگیرنده قرار دارند قابل مشاهده خواهد بود.خارج از این نزدیکترین package در بر گیرنده، عنصردارای قابلیت دید package دیده نخواهد شد. |
[ویرایش] حوزه(Scope)
یو ام ال دو نوع حوزه مختلف برای اعضا تعیین میکند : نمونه(instance) و دسته کننده (Classifier) [۳]. در مورد اعضای نمونهای، حوزه، یک نمونه خاص است.برای خصوصیات این بدان معناست که مقدار خصوصیتها در نمونههای مختلف تغییر می کند. برای متدها بدان معنی است که فراخوانی آن روی وضعیت نمونه تاثیر می گذارد یا به عبارت دیگر تنها روی خصوصیات نمونه ای تاثیر دارد. در اعضای دسته کننده، حوزه کلاس است. برای خصوصیات این بدان معناست که مقدار خصوصیت در تمام نمونهها یکسان است. برای متدها این بدان معناست که فراخوانی این متدها بر روی وضعیت نمونهها تاثیری ندارد. در بسیاری از زبانهای برنامه نویسی دسته کنندهها را با کلمه static نشان می دهند. در صورت نیاز به تعریف عضوی از نوع دسته کننده باید زیر آن خط کشید، در غیر این صورت به عنوان پیش فرض حوزه آن نمونه ای در نظرگرفته می شود.
[ویرایش] منابع
- ↑ Scott W. Ambler (2009) نمودارهای کلاس یو ام ال 2. Webdoc 2003-2009. دسترسی در دسامبر 2, 2009
- ↑ ۲٫۰ ۲٫۱ ۲٫۲ نمودار کلاس یوامال 14 مه 2003 . بازیابی شده در 16 آگوست 2010
- ↑ ۳٫۰ ۳٫۱ [http://www.omg.org/cgi-bin/doc?formal/09-02-03 مشخصات زبان مدلسازی یکپارچه نسخه 2.2 (OMG UML) : مه 2009. بازیابی شده در 16 آگوست 2010.