06-14-2013
|
|
مدیر بخش مکانیک - ویندوز و رفع اشکال
|
|
تاریخ عضویت: Sep 2009
نوشته ها: 2,586
سپاسها: : 5,427
6,159 سپاس در 1,794 نوشته ایشان در یکماه اخیر
|
|
مدل کردن روابط بین اشیاء
مدل کردن روابط بین اشیاء
در OOP وقتی که برنامه اجرا میشود، اشیاء مختلفی با یکدیگر کار میکنند تا وظایف برنامه را انجام دهند. برای مثال، در برنامه رزرو پرواز، برای رزرو کردن یک صندلی، شیء Reservation باید با شیء Flight رابطه برقرار کند. این رابطه باید در نمودار کلاس مدل شود. با بررسی افعال در مستند SRS اغلب این رابطههای کشف میشوند. در ادامه برخی از مهمترین رابطهها بین کلاسها به وجود میآید بیان میشوند.
اتحاد[۴]
وقتی که یک کلاس به کلاس دیگری مراجعه میکند یا از آن استفاده میکند میگوییم که این کلاسها یک اتحاد را شکل داده اند. شما یک خط بین این دو کلاس میکشید تا این اتحاد را نشان دهید و برای آن یک نام تعیین میکنید. برای مثال، یک پرواز دارای تعدادی صندلی است در برنامه رزرو بلیط هواپیما. این موضوع در نمودار زیر بیان شده است.
گاهی اوقات یک نمونه از یک کلاس با چندین نمونه از کلاس دیگر ارتباط دارد. برای مثال وقتی که یک مشتری یک رزرو را انجام میدهد، یک اتحاد بین مشتری و رزرو ایجاد میشود. چون یک مشتری ممکن است چندین بلیط را رزرو کند، بنابراین یک نمونه از کلاس مشتری ممکن است که با چندین نمونه از کلاس رزرو رابطه داشته باشد. در شکل زیر این موضوع بیان شده است.
حالتی ممکن است وجود داشته باشد که یک نمونه از یک کلاس با چندین نمونه از کلاس خودش رابطه داشته باشد. برای مثال یک نمونه از کلاس خلبان، کاپیتان است و نمونه دیگر کمک خلبان. خلبان کمک خلبان را مدیریت میکند. این سناریو به عنوان یک اتحاد با خود[۵] شناخته میشود و با رسم خط ارتباطی از کلاس به خودش مدل میشود، مطابق شکل زیر:
وراثت
وراثت یعنی وقتی که چندین کلاس در برخی خصوصیات و عملکردها اشتراک داشته باشند، یک کلاس پایه میتواند این اشتراکات را در بر بگیرد. سپس کلاسهای فرزند با ارث بری از کلاس پایه، این خصوصیات و عملکردها را داشته باشند و علاوه بر آن، خصوصیات و عملکردهای منحصربفرد خود را ایجاد کنند. این مفهوم در نمودار کلاس با یک خط که یک سر آن دارای پیکان بسته به سمت کلاس پایه است، نشان داده میشود. برای مثال کلاس مشتری شرکتی و مشتری موردی میتوانند خصوصیات و عملکردهای کلاس پایه مشتری را به ارث ببرند، مطابق شکل زیر.
اجتماع
وقتی که یک کلاس با ترکیب سایر کلاسها شکل میگیرد، آنها به صورت اجتماع بیان میشوند. این با رسم یک خط بین کلاسها نمایش داده میشود. قرار گرفتن یک لوزی کنار هر کلاس بیان کننده سطح بالاتر سلسله مراتب آن است. برای مثال، در برنامه انبار قطعات هواپیما نمودار کلاس زیر را خواهیم داشت:
کلاس های اتحادی
وقتی که کلاسها و ارتباطات بین آنها ایجاد میشوند، ممکن است وضعیتی پیش آید که یک خصوصیت را نتوان در یک کلاس قرار دارد بلکه باید در یک اتحاد بین کلاسها قرار گیرد. برای مثال ر برنامه انبار قطعات که در بالا اشاره شد، ممکن است کلاسهای قطعه و تولید کننده را داشته باشیم.
به خاطر اینکه یک قطعه ممکن است بیش از یک تهیه کننده داشته باشد و یک تهیه کننده بیش از یک قطعه تولید کند، کجا باید قیمت قطعه قرار گیرد؟ آن نمیتواند به صورت خصوصیتی در کلاس قطعه یا تولید کننده باشد. راه حل این است که یک کلاس اتحادی با نام قیمت قطعه تعریف کنیم. این مدل با استفاده از خط چین بین اتحاد و کلاس اتحادی مشخص میشود، مطابق شکل زیر.
نمودار کلاس تکمیل شده برنامه رزرو بلیط پرواز
شکل زیر نمودار کلاس تکمیل شده برنامه رزرو بلیط هواپیما را نمایش میدهد. این نمودار شامل ک
ویرایش توسط bigbang : 06-14-2013 در ساعت 08:02 PM
|
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید
|
|