uml.ppt

‫معرفی زبان مدلسازی ‪UML‬‬
‫ارديبهشت ‪1384‬‬
‫معرفی ‪RUP‬‬
‫‪ UML ‬اواسط دهه ‪ 90‬توسط شرکت ‪ Rational‬ارائه‬
‫گردید و در سال ‪ 1997‬توسط ‪ OMG‬پذیرفته شد‪.‬‬
‫تفاوت نگاه شیی گرا و ساختیافته‬
‫چند تعریف‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Object‬موجودیت یا شی ئ یکی از فقرات زیر از نظر قوه‬
‫ادراک بشر است‪:‬‬
‫یک شی ئ ملموس یا مرئی‪ ،‬چیزی که می تواند شعور شود‪،‬‬
‫چیزی که مورد فعل یا فکر قرار می گیرد‪)Booch ( .‬‬
‫‪ :Class‬توصیفی از یک یا چند موجودیت که مجموعه صفات‬
‫و متدهای یکسان دارند‪.‬‬
‫‪ :Instance‬مورد یا نمونه عبارتست از هر یک از‬
‫موجودیتهای متعلق به یک کالس‬
‫‪ :Attribute‬نوعی داده است که به ازائ هر یک از نمونه های‬
‫یک کالس مقدار خاص خود را دارد‪.‬‬
‫‪ :Method‬رفتار خاصی که موجودیت موظف به انجام است‪.‬‬
‫روابط‬
‫‪ :Inheritance ‬توارث‪ ،‬رابطه بین دو کالس که این‬
‫امکان را فراهم می کند که تعریف یا پیاده سازی یک‬
‫کالس بر مبنای کالسهای دیگر انجام شود‬
‫‪ :Aggregation ‬تجمع‪ ،‬رابطه ای بین موجودیتها که‬
‫در آن کالس کل با کالس جزئ متناظر می شود‪.‬‬
‫‪ :Association ‬رابطه انجمنی‪ ،‬رابطه بین دو یا چند‬
‫کالس که مدلی از قلمرو مساله است که تناظرهایی بین‬
‫یک موجودیت و موجودیتهای دیگر برای انجام‬
‫وظائفش با آنها نیاز دارد‪ ،‬را نشان می دهد‪.‬‬
‫روابط‬
‫‪ :Encapsulation ‬مخفی سازی اطالعات یا لفاف‬
‫بندی‪ ،‬فرایند مخفی سازی قسمتی از جزئیات یک‬
‫موجودیت که به فهماندن خصوصیات اصلی آن کمکی‬
‫نمی کند‪.‬‬
‫‪ :Abstraction ‬تجرید‪ ،‬یک تجرید خصوصیات‬
‫اصلی یک موجودیت را که آنرا از تمام موجودیت های‬
‫دیگر متمایز می کند نشان می دهد‪)Booch ( .‬‬
‫‪ :Polymorphism ‬چندریختی‪ ،‬مفهومی در تئوری‬
‫انواع که در آن یک اسم می تواند نشان دهنده‬
‫موجودیتهای کالسهای مختلفی باشد که بواسطه یک‬
‫فوق کالس مشترک با هم مرتبط می شوند‪.‬‬
‫نمودارها‬
‫‪ UML ‬برای مدل کردن سه جنبه ساختاری‪ ،‬رفتاری‪،‬‬
‫معماری نرم افزار دارای نمودار است‪.‬‬
‫‪ ‬ساختاری‪ :‬نمودار کالس‬
‫‪ ‬رفتاری‪ :‬نمودار مورد کاربرد‪ ،‬نمودار فعالیت‪ ،‬نمودار‬
‫حالت‪ ،‬نمودارهای تعامل‬
‫‪ ‬معماری‪ :‬نمودار مولفه‪ ،‬نمودار استقرار‬
‫مورد کاربرد‬
‫‪ ‬مشخص کننده رفتاری از سیستم یا زیر سیستم یا هر‬
‫عنصر واجد رفتار است و مجموعه ای است از توالی‬
‫ها عملیاتی (بهمراه شق های مختلف این توالی ها) که‬
‫سستم جهت در اختیار قراردادن یک نتیجه ملموس‬
‫مورد نظر کاربر (کنشگر) انجام می دهد‪.‬‬
‫‪ ‬تعریف دیگر‪ :‬یک مورد کاربرد مجموعه ای از‬
‫سناریوهاست که برای یک هدف مشترک کنار هم قرار‬
‫گرفته اند‪.‬‬
‫‪ ‬سناریو‪ :‬توالی تعدادی تعامل بین کاربر و سیستم‬
‫مورد کاربرد‬
‫‪ ‬کنشگر‪ :‬نقش یا مجموعه ای از نقش ها که معرف‬
‫کاربر خاصی از سیستم است‬
‫کاربرد موارد کاربرد‬
‫‪ ‬اساسی ترین ابزار در بیان نیازمندیها می باشند‪.‬‬
‫‪ ‬ابزار طرح ریزی و کنترل یک پروژه تکرار شونده‬
‫هستند‪.‬‬
‫‪ ‬موارد کاربرد منظر خارجی سیستم را نشان می دهند‪.‬‬
‫نمودار کالس‬
‫‪ ‬کالس‪ :‬شرحی از مجموعه ای از موجودیتها که صفات‪،‬‬
‫عملیات‪ ،‬ارتباطات و معنای یکسان دارند‪.‬‬
‫چه موقع از نمودارهای کالس استفاده کنیم؟‬
‫‪ ‬نمودارهای کالس به مثابه ستون فقرات متدهای شی ئ گرایی‬
‫هستند‪ .‬در نتیجه اغلب مورد استفاده قرار می گیرند‬
‫‪ ‬نمودارهای کالس را با سه نوع دید می توان رسم کرد‪:‬‬
‫‪ ‬مفهومی‪ :‬برای بیان مفاهیم دامنه مورد مطالعه استفاده می شود‪ .‬این‬
‫مفاهیم طبیعتا به کالسهای پیاده سازی مرتبط می شوند ولی اغلب‬
‫نگاشت مستقیم وجود ندارد‪ .‬در نتیجه در این نوع کالسها باید حداقل نگاه‬
‫به پیاده سازی وجود داشته باشد یا اینکه اساسا مستقل از زبان باشند‪.‬‬
‫‪ ‬توصیف‪ :‬در اینجا نگاه به نرم افزار است ولی نه به پیاده سازی بلکه به‬
‫واسطهای نرم افزاری‪ .‬تولید شی گرا تفاوت زیادی بین پیاده سازی و‬
‫واسط قایل است اگرچه زبانهای شی گرایی مفهوم واسط و پیاده سازی‬
‫را در نوع نگاه خود به کالس ترکیب می کنند‪ .‬یک واسط می تواند‬
‫چندین کالس پیاده سازی داشته باشد و یک کالس می تواند چندین واسط‬
‫را پیاده سازی کند‪.‬‬
‫‪ ‬پیاده سازی‪ :‬این نوع نگاه کالسهای پیاده سازی را می نگرد که اغلب‬
‫چنین نگاهی به نمودارهای کالس می شود ولی بهتر است با دید توصیف‬
‫به نمودارهای کالس بنگریم‬
‫نمودارهای توالی‬
:
: Order
OrderEntry...
prepare( )
MacallanLine :
OrderLine
: DeliveryItem
MacallanStock
: StockItem
: ReorderItem
prepare( )
hasStock := check( )
[hasStock]: remove( )
needsToReorder( )
new( )
new( )
‫نمودارهای همکاری‬
‫ وقتی می خواهیم به رفتار تعدادی شی ئ درون یک مورد‬
‫کاربرد نگاه کنیم‬
: OrderEntryWindow
1: prepare( )
: Order
5: needsToReorder( )
2: prepare(3:) hasStock := check( )
4: [hasStock]: remove( )
MacallanLine :
OrderLine
7: new( )
: DeliveryItem
MacallanStock :
StockItem
6: new( )
: ReorderItem
‫بسته ها ( ‪) Packages‬‬
‫‪ ‬بسته ها‪ :‬یک مکانیزم همه منظوره برای سازماندهی عناصر‬
‫بصورت گروهها بسته بندی (‪ )Packaging‬یک مفهوم منطقی‬
‫است‪.‬‬
‫نمودارهای حالت‬
‫ مدل کردن جنبه های دینامیک‬
[ not all items checked ] / get next item
/ get first item
Checking
[ All items checked && all items available ]
do/ check item
Dispatching
do/ initiate delivery
[ All items checked && some items not in stock ]
Item Received[ all items available ]
Delivered
Items Received[ some items not in stock ]
Delivered
Waiting
‫نمودارهای فعالیت‬
،‫ نمودار فعالیت نوعی نمودار حالت است که در آن حالتها‬
‫فعالیت می باشند‬
Receive Order
Fill Order
Send Invoice
Overnight
Delivery
Regular Delivery
Receive
Payment
‫نمودار استقرار‬
‫‪ ‬یک نمودار استقرار رابطه فیزیکی بین مولفه های نرم افزاری و سخت‬
‫افزاری یک سیستم را نشان می دهد‬
‫نمودار مولفه‬