-
Notifications
You must be signed in to change notification settings - Fork 26
دو نوع دیاگرام در UML:
- دیاگرامهای ساختاری.
- ساختار استاتیک سیستم
- کلاسها، کامپوننتها، اشیاء و ...
- دیاگرامهای رفتاری.
- رفتار داینامیک بین اشیاء در سیستم
- متدها، همکاریها و کولبریشنها، اکتیویتیها
- یوزکیس دیاگرامها و سیکوئنس دیاگرامها
کلاس دیاگرام، از نوع دیاگرامهای ساختاریست.
هدف کلاس دیاگرام: نشان دادن انواعی که مدل شدهاند:
- کلاس
- اینترفیس
- نوع داده
- کامپوننت
این نمودار به سه قسمت تقسیم میشود:
- نام کلاس
- اوصاف کلاس (Class Attributes)
- عملیات کلاس (Class Operations)
به نمودار بالا دقت کنید. نام کلاس و متد withdrawal ایتالیک است. که توسط دو کلاس مشتق شده، پیادهسازی شدهاند.
رابطهٔ بین دو شیء را اسوسیشن میگوییم. انواع رابط:
- یک به یک
- یک به چند
- چند به یک
- چند به چند
مثال: دانشجو و دانشکده رابطهٔ اسوسیشن دارند.
انوع اسوسیشن:
هر دو کلاس میدانند که با هم در رابطه هستند.
- کلاس Plane نقش assignedPlane را دراین رابطه بازی میکند. 0..1 یعنی، برای یک نمونه از Flight ممکن است صفر یا یک Plane منسوب شده باشد.
- کلاس Flight نقش assignedFlights را در این رابطه بازی میکند. 0..* یعنی برای یک Plaen ممکن است صفر تا بینهایت پرواز منسوب شده باشد.
کلاس OverdrawnAccountsReport از کلاس BankAccount اطلاع دارد. و کلاس BankAccount نقش overdrawnAccounts را بازی میکند. در این رابطه، کلاس BankAccount نمیداند که به کلاس OverdrawnAccountsReport مرتبط شده است. (Loose Coupling)
به یک گزارش بانکی ممکن است صفر یا چند حساب بانکی منسوب شده باشد.
نمونهای از کلاس Employee میتواند مدیر نمونهٔ دیگری از کلاس Employee باشد. 0..* یعنی ممکن است نمونهای از کلاس Employee مدیر هیچ نمونهٔ دیگری نباشد.
رابطهٔ اگریگیشن همان رابطهٔ Has-a است. یعنی شیءای که حاوی شیء دیگریست. رابطهٔ اگریگیشن حالت خاصی از اسوسیشن است.
مثال: رابطهٔ بین تایر و ماشین، اگریگیشن است. تایر میتواند وجود داشته باشد در حالی که هنوز ماشین آماده نشده است. (بیسیک اگریگیشن)
اگر لایفسایکل اجزاء مستقل از کل سیستم نباشد، به چنین اگریگیشنی، کامپوزیشن اگریگیشن میگویند.
رابطهٔ کامپوزیشن حالت خاصی از اگریگیشن است. اگر وجود شیء محتوی وابسته به وجود شیء حاوی خود باشد، به این اگریگیشن، کامپوزیشن میگوییم.
- فرق بین کامپوزیشن و اگریگیشن چیست؟
- یک کتابخانه که محتوی دانشجو و کتاب است را در نظر بگیرید.
- رابطهٔ بین کتابخانه و دانشجو چیست؟ اسوسیشن
- رابطهٔ بین کتابخانه و کتاب چیست؟ کامپوزیشن
جنرالیزیشن از رابطهٔ Is-a از طرف کلاس ویژه به کلاس عمومی، استفاده میکند.
مثال: هیئت علمی، انسان است. دانشجو نیز انسان است. رابطهٔ بین دانشجو و انسان و همچنین رابطهٔ بین هیئت علمی و انسان، جنرالیزیشن است.
رابطهٔ بین اینترفیس و کلاس پیاده شدهٔ اینترفیس را ریالازیشن مینامند. یا رابطهٔ بین طرح و نقشهٔ اولیه و شیء پیاده شدهٔ آن.
وقتی ساختار یا رفتار یک کلاس تغییر کند و متعاقباً بر روی کلاس دیگری تأثیر بگذارد.
مثلا: رابطهٔ بین شکل و دایره دیپندنسیست.
- http://javapapers.com/oops/association-aggregation-composition-abstraction-generalization-realization-dependency/
- http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
بالای نام اینترفیس، عبارت «interface» را قرار میدهیم تا نمودار آن از نمودار کلاس قابل تمیز باشد.
همان طور که قبلاً گفتیم، رابطهٔ بین اینترفیس و کلاس پیادهسازی شدهٔ آن را، ریالایزیشن مینامیم. که با پیکان نقطهچین از طرف کلاس پیادهسازی شده به طرف اینترفیس نمایش میدهیم.
وقتی تو کلاس با هم رابطهٔ اسوسیشن دارند، میتوانیم کلاس دیگری به این رابطه اضافه کنیم تا اطلاعات باارزش بیشتری در مورد این رابطه در اختیارمان قرار دهد.
در دیاگرام زیر، هر گام دو نمونه از کلاس Flight و FrequentFlyer با یکدیگر اسوشیت شوند، یک نمونه از کلاس MileageCreadit نیز وجود خواهد داشت.
- Mark Visibility type
- + Public
- # Protected
- - Private
- ~ Package
Instance Name : Class Name
فرق بین دو دیاگرام زیر را ببینید: