مهندسی نرم افزار - آموزش Rational Rose - SSADM

مطالب راجع به تجزیه و تحلیل سیستم

مهندسی نرم افزار - آموزش Rational Rose - SSADM

مطالب راجع به تجزیه و تحلیل سیستم

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

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

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

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

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

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

در کلاس دیاگرام چهار نوع رابطه وجود دارد که می توانید آنها را بین کلاسها برقرار کنید . 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  بررسی کنید . سعی کنید کلاسهایی را پیدا کنید که مشترکات بسیار زیادی باهم دارند . مثلاً در یک دانشگاه هم دانشجو و هم استاد و هم کارمند از کلاس انسان ارث بری دارند .

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

نظرات 11 + ارسال نظر
طاهره ثقفی چهارشنبه 24 مهر‌ماه سال 1387 ساعت 04:04 ب.ظ

سلام
من به یکسری اطلاعات در RUP نیاز دارم .لطف کنید کمکم کنید .
یک نمونه template از سند توصیف نیازمندی های نرم افزار (SRS)
یک نمونه template از Risk list
یک نمونه template از طرح مدیریت نیازمندی ها
من نیاز فوری به این مطالب دارم . توضیحشان و همچنین نمدار طراحیشان در Rational

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

کارشناسی ارشد فراگیر پیام نور چهارشنبه 1 آبان‌ماه سال 1387 ساعت 10:45 ب.ظ http://hamisheonline.blogfa.com

با سلام خدمت دوستان
برای قبولی راحت و ادامه تحصیل در رشته مهندسی کامپیوتر مقطع ارشد ، من جزوات کمیابی رو معرفی می کنم که معجزه می کنه و با تسلط بروی آنها براحتی قبول خواهید شد
منابع کمیاب کارشناسی ارشد فراگیر پیام نور رشته کامپیوتر را می توانید از وب سایت همیشه آنلاین دریافت کنید
http://www.hamisheonline.com

ندا شنبه 18 آبان‌ماه سال 1387 ساعت 03:10 ب.ظ

سلام.یه سوال داشتم.می خواستم بدونم چه جوری میشه توی sequense diagram شرط رو نشون داد.

در نمودار توالی نمی توان شرط را نشان داد ولی می توان یک سری توضیحات را در مورد روند کار نوشت . شرط را در نمودارهای فعالیت و حالت نشان می دهند

پریسا پنج‌شنبه 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بشم ...وارد یاهو میلم هم هر چی سعی می کنم نمی تونم بشم. ممکنه راهنماییم کنید؟( حدود دو هفته س اینجوری شده)
تشکر.

رضا گلاب چهارشنبه 23 بهمن‌ماه سال 1387 ساعت 09:21 ق.ظ http://rezagolab.blogfa.com

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

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

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

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

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

....................
منتظر خبر شما هستم
یا علی

تحلیل گر شنبه 21 آذر‌ماه سال 1388 ساعت 02:08 ب.ظ

سلام
اگر در مثالی که گفتید دو نوع کارمند ساعتی و تمام وقت داشته باشیم، در نمودار usecase هم باید Actor کارمند را به دو Actor ساعتی و تمام وقت Specialise کنیم.بعد usecase هایی که توسط هر دو انجام می شود را باید به Parent شان وصل کنیم،درسته؟

سلام
دقیقاْ درست میگید.
موفق باشید

هدی چهارشنبه 22 دی‌ماه سال 1389 ساعت 02:36 ق.ظ

سلام خیییییییییییلی ممنون وبلاگتون عالی
به درد من که خیلی خورد حیفم اومد تشکر نکنم!

سمیرا پنج‌شنبه 15 دی‌ماه سال 1390 ساعت 10:50 ق.ظ

سلام.
مطالبتون خیلی عالی بود .ممنون
در رابطه با محقق سازی(Realization) و بصری سازی هم میشه توضیح بدین

[ بدون نام ] پنج‌شنبه 11 اسفند‌ماه سال 1390 ساعت 11:24 ق.ظ

ممنون ...کمکم کرد

mohamad یکشنبه 7 تیر‌ماه سال 1394 ساعت 01:05 ب.ظ

ممنون
فردا امتحان مهندسی نرم افزار دارم.
:-)

فائزه سه‌شنبه 14 دی‌ماه سال 1395 ساعت 11:52 ب.ظ

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

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد