X
تبلیغات
پیکوفایل
رایتل

انواع رابطه ها در کلاس دیاگرام و راههای تشخیص

سه‌شنبه 23 مهر‌ماه سال 1387 ساعت 02:22 ق.ظ

سلام خدمت دوستان

"سلام،
از مطالبتون ممنون،
ولی ای کاش در مورد انوع ارتباطات کلاس و اینکه چطور میتوان نوع ارتباط رو تشخیص داد هم توصیح میدادید" 

جمله بالا نظر یکی از دوستان است که به نکته خوبی اشاره کرده اند و من هم با برسی در سهای چهارده و پانزده مربوط به آموزش رشنال متوجه این کمبود شدم و تصمیم گرفتم که در یک پست جداگانه به این مطلب اشاره کنم .  

**************************************************

انواع رابطه ها در کلاس دیاگرام 

در کلاس دیاگرام چهار نوع رابطه وجود دارد که می توانید آنها را بین کلاسها برقرار کنید . association , dependency, aggregation , generalization

Association رابطه های معنایی بین کلاسها هستند که در نمودار کلاس بوسیله یک خط ساده به هم متصل می شوند .  وقتی یک association دو کلاس را به هم وصل می کند ، هر کلاس می تواند از طریق یک نمودار توالی یا همکاری به کلاس دیگر پیغام بفرستد . association می توانند دو طرفه یا یک طرفه باشند . با یک association ، رز(Rose) صفتها را در کلاسها قرار می دهد . برای مثال اگر یک رابطه association بین یک کلاس خانه و یک کلاس شخص وجود دارد ، Rose یک صفت شخص (Person) را درون خانه (House) قرار می دهد تا به خانه بگوید که چه کسی صاحب آن است و یک صفت خانه را درون شخص قرار می دهد تا به شخص بگوید صاحب چه خانه ای هستند .

 

   

Dependency شبیه به association ها هستند با یک تفاوت که همیشه یک طرفه هستند . Rose در یک رابطه Dependency صفتها را برای کلاسها تولید نمی کند . Dependency ها با فلش خط چین نشان داده می شوند . 

   

Aggregation ها یک فرم قویتر از association  ها هستند . یک Aggregation  یک رابطه بین یک واحد کل و بخشهای آن می باشد . برای مثال رابطه بین یک کلاس ماشین را در نظر بگیرید با یک کلاس موتور یا یک کلاس بدنه . aggregation  ها مانند یک خط با یک لوزی در کنار کلاسی که واحد کل را نمایش می دهد نشان داده می شوند . 

   

Generalization ها برای نشان دادن یک رابطه وراثتی بین کلاسها استفاده می شوند .  

    

پیدا کردن رابطه ها

1)     1) کار را با بررسی نمودارهای توالی و همکاری آغاز کنید . اگر کلاس A از طریق یک نمودار توالی یا همکاری پیامی را به کلاس B  بفرستد ، یک رابطه باید بین آنها وجود داشته باشد . معمولاً رابطه های که با این روش پیدا می کنید ، association یا dependency هستند .

2)    2) کلاسهایتان را بررسی کنید و به دنبال رابطه های کل به جزء بگردید . هر کلاسی که از سایر کلاسها تشکیل شده ، ممکن است در یک aggregation  شرکت کند .

3)    3) کلاس هایتان را بررسی کنید و به دنبال رابطه های generalization  بگردید . سعی کنید کلاسهایی را پیدا کنید که انواع مختلف داشته باشند . مثلاً در یک شرکت ممکن است کارمند به دوصورت ساعتی و حقوقی باشد ، در این صورت ما یک کلاس کارمند ساعتی و یک کلاس کارمند حقوقی داریم که هر کدام از یک کلاس کارمند ارث بری دارند .

4)    4) کلاسها یتان را برای یافتن رابطه های بیشتر generalization  بررسی کنید . سعی کنید کلاسهایی را پیدا کنید که مشترکات بسیار زیادی باهم دارند . مثلاً در یک دانشگاه هم دانشجو و هم استاد و هم کارمند از کلاس انسان ارث بری دارند .

در رابطه با کلاسهایی که خیلی رابطه بین آنها است محتاط باشید . یک معیار برای یک برنامه خوب طراحی شده ، کم بودن تعداد رابطه ها در سیستم است . یک کلاس با تعداد زیادی رابطه نیاز دارد تا درباره تعداد زیادی کلاسهای دیگر بداند . در نتیجه استفاده مجدد می تواند سخت تر شود و سختی نگهداری می تواند بیشتر باشد . اگر هر کدام از کلاسهای دیگر تغییر کنند ، کلاس اصلی ممکن است تحت تاثیر فراوان قرار گیرد .

نظرات (10)
چهارشنبه 24 مهر‌ماه سال 1387 ساعت 04:04 ب.ظ
سلام
من به یکسری اطلاعات در RUP نیاز دارم .لطف کنید کمکم کنید .
یک نمونه template از سند توصیف نیازمندی های نرم افزار (SRS)
یک نمونه template از Risk list
یک نمونه template از طرح مدیریت نیازمندی ها
من نیاز فوری به این مطالب دارم . توضیحشان و همچنین نمدار طراحیشان در Rational
امتیاز: 2 0
پاسخ:
سلام . متاسفانه من مطالبی را که خواسته اید آماده ندارم . اگه در این باره اطلاعاتی خوب یبدست آوردم برای شما ارسالش می کنم
چهارشنبه 1 آبان‌ماه سال 1387 ساعت 10:45 ب.ظ
با سلام خدمت دوستان
برای قبولی راحت و ادامه تحصیل در رشته مهندسی کامپیوتر مقطع ارشد ، من جزوات کمیابی رو معرفی می کنم که معجزه می کنه و با تسلط بروی آنها براحتی قبول خواهید شد
منابع کمیاب کارشناسی ارشد فراگیر پیام نور رشته کامپیوتر را می توانید از وب سایت همیشه آنلاین دریافت کنید
http://www.hamisheonline.com
امتیاز: 4 1
شنبه 18 آبان‌ماه سال 1387 ساعت 03:10 ب.ظ
سلام.یه سوال داشتم.می خواستم بدونم چه جوری میشه توی sequense diagram شرط رو نشون داد.
امتیاز: 3 1
پاسخ:
در نمودار توالی نمی توان شرط را نشان داد ولی می توان یک سری توضیحات را در مورد روند کار نوشت . شرط را در نمودارهای فعالیت و حالت نشان می دهند
پنج‌شنبه 23 آبان‌ماه سال 1387 ساعت 08:30 ب.ظ
سلام
من چن وقته نمی تونم on بشم.واردیاهو میلم هم نمی تونم بشم . این پیغام رو میده مسنجرم:(please try again to re .enter your id and password if you have forgetten your id or password . click sign. in problems?
من آی دی و پسوردم رو درست وارد می کنم و فراموش هم نکردم و چندین بار دوباره سعی می کنم ولی موفق نمیشم onبشم ...وارد یاهو میلم هم هر چی سعی می کنم نمی تونم بشم. ممکنه راهنماییم کنید؟( حدود دو هفته س اینجوری شده)
تشکر.
امتیاز: 1 1
چهارشنبه 23 بهمن‌ماه سال 1387 ساعت 09:21 ق.ظ
سلام دوست من
وبلاگتو دیدم.
خسته نباشی.اگه مایل به تبادل لینک هستی
من 4 تا وبلاگ دارم.
با این نامها منو لینک کن و بعدش بهم خبر بده
تا در هر 4 تا وبلاگم لینک کنم شما رو.

http://webdesignhtml.blogfa.com/
CSS & HTML آموزش کامل

.................
http://cssdesign.blogfa.com/
free template

..................
http://rezagolab.blogfa.com/
طراحی سایت و برنامه نویسی وب

...................
http://rezagcar.blogfa.com/
مشخصات فنی خودرو

....................
منتظر خبر شما هستم
یا علی
امتیاز: 1 0
شنبه 21 آذر‌ماه سال 1388 ساعت 02:08 ب.ظ
سلام
اگر در مثالی که گفتید دو نوع کارمند ساعتی و تمام وقت داشته باشیم، در نمودار usecase هم باید Actor کارمند را به دو Actor ساعتی و تمام وقت Specialise کنیم.بعد usecase هایی که توسط هر دو انجام می شود را باید به Parent شان وصل کنیم،درسته؟
امتیاز: 1 1
پاسخ:
سلام
دقیقاْ درست میگید.
موفق باشید
چهارشنبه 22 دی‌ماه سال 1389 ساعت 02:36 ق.ظ
سلام خیییییییییییلی ممنون وبلاگتون عالی
به درد من که خیلی خورد حیفم اومد تشکر نکنم!
امتیاز: 0 0
پنج‌شنبه 15 دی‌ماه سال 1390 ساعت 10:50 ق.ظ
سلام.
مطالبتون خیلی عالی بود .ممنون
در رابطه با محقق سازی(Realization) و بصری سازی هم میشه توضیح بدین
امتیاز: 0 1
پنج‌شنبه 11 اسفند‌ماه سال 1390 ساعت 11:24 ق.ظ
ممنون ...کمکم کرد
امتیاز: 0 0
یکشنبه 7 تیر‌ماه سال 1394 ساعت 01:05 ب.ظ
ممنون
فردا امتحان مهندسی نرم افزار دارم.
:-)
امتیاز: 0 0
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)

نام :
ایمیل :
وب/وبلاگ :
ایمیل شما بعد از ثبت نمایش داده نخواهد شد