# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > تحلیل و طراحی نرم افزار > سوال: aggregation  یا generalization ؟؟

## Modifier

سلام علیکم

چگونه میشه تشخیص داد که رابطه ی aggregation وجود دارد یا generalization ؟

ممنون

یا علی

----------


## smhoseyni

این دو با هم خیلی تفاوت دارند، میشه مثالی بزنید که کجا میان انتخاب یکی از این دو به شک افتاده اید؟

----------


## Elham_gh

> سلام علیکم
> 
> چگونه میشه تشخیص داد که رابطه ی aggregation وجود دارد یا generalization ؟
> 
> ممنون
> 
> یا علی


اگر بين 2 تا كلاس رابطه "نوعي از" بود ، اون  generalization   است
اگر رابطه "جزيي از" بود aggregation ، رابطه  است

----------


## Modifier

سلام علیکم

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

میدونم که بین آرتیکل و سند رابطه ی aggrigation است ولی بین آرتیکل و حساب رو نیمیدونم ؟

یا علی

----------


## Elham_gh

> سلام علیکم
> 
> مثلا در سیستم حسابداری ، یک کلاس داریم به نام حساب شامل یکسری خصوصیات از جمله : کد حساب کل - کد حساب معین - کد حساب تفضیل ------------- همین طور یک کلا سداریم به نام آرتیکل که جزیی از یک کلاس سند است و شمال یکسری خصوصیات از جمله همون هایی که برای کلاس حساب گفتم. 
> 
> میدونم که بین آرتیکل و سند رابطه ی aggrigation است ولی بین آرتیکل و حساب رو نیمیدونم ؟
> 
> یا علی


 دوست عزيز اون راه حل كليدي و ساده اي كه گفتم استفاده كنيد 90% مواقع جواب مي ده.
كلاسهاي شما سند ،آرتيكل و حساب. حالا ببنيد:
آرتيكل نوعي سند است؟ خير(پس  generalization نيست)
آرتيكل جزئي از سند است؟بله(پس رابطه  aggrigation است)
آرتيكل نوعي از حساب است؟خير(پس  generalization نيست)
آرتيكل جزئي از حساب است؟خير(پس  aggrigation نيست)
ارتباطشان يك  association ساده است.
هر زمان شك داشتيد كه رابطه اي aggrigation  هست يا نه، آن را  association  ساده در نظر بگيريد

----------

