1 / 59

تهیه و تنظیم : اسماعیل رنجبر

?. تهیه و تنظیم : اسماعیل رنجبر. UML Unified Modeling Language زبان مدلسازی یکنواخت. مدلسازی چیست؟. مدل سازی یعنی ایجاد تصویری (انتزاعی) از واقعیت این انتزاع ها شامل ساده سازی اند نادیده گرفتن جزئیات نامرتبط فقط جزئیات مفید را نشام میدهند. چرا باید نرم افزار را مدلسازی کرد؟.

gema
Download Presentation

تهیه و تنظیم : اسماعیل رنجبر

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ? تهیه و تنظیم : اسماعیل رنجبر

  2. UML Unified Modeling Language زبان مدلسازی یکنواخت

  3. مدلسازی چیست؟ • مدل سازی یعنی ایجاد تصویری (انتزاعی) از واقعیت • این انتزاع ها شامل ساده سازی اند • نادیده گرفتن جزئیات نامرتبط • فقط جزئیات مفید را نشام میدهند.

  4. چرا باید نرم افزار را مدلسازی کرد؟

  5. تمام صنعت ها برای خودشان زبان مشخصی دارند مثلاً انتگرال در ریاضیات شکل خاصی دارد تمام ریاضی دانان جهان با دیدن این شکل فورا متوجه میشوند که من یک انتگرال را نشان داده ام ریاضیدانان زبان مشترکی برای انتقال مفاهیم دارند درست مثل موسیقی دانها، مهندسان الکترونیک و ساختمان و....

  6. یک زبان مدلسازی همه منظوره استاندارد در زمینه مهندسی نرم افزار است • UML چیست؟ یوام ال یک زبان مدلسازی نسل سوم است و روشی باز برای توصیف ویژگیها، نمایش گرافیکی، ساختن و مستند سازی اجزای یک سیستم نرم افزاری در حال توسعه می باشد. از یو ام ال برای فهمیدن، طراحی، مرور، پیکربندی، نگهداری و کنترل اطلاعات سیستم‌های نرم افزاری استفاده می شود. یو ام ال برای همه روشهای توسعه نرم افزار، همه مراحل چرخه عمر نرم افزار، همه حوزه‌های برنامه‌های کاربردی و هر رسانه ای قابل استفاده است. یو ام ال شامل مفاهیم معنایی، نمادگذاری و راهنمایی برای طراحی می باشد. این زبان شامل فرآیند مرحله به مرحله تولید نرم افزار نیست، بلکه یو ام ال زبانی است که تقریبا تمام شیوه‌های تولید نرم افزار از آن استفاده می کنند. یو ام ال تکنیکهای مدلسازی داده (نمودار رابطه موجودیت)، مدلسازی تجاری، مدلسازی شی و مدلسازی مولفه‌ها را با هم ترکیب می نماید. یو ام ال را می توان در تمامی پروسه‌ها در سراسر چرخه توسعه نرم افزار به کاربرد.

  7. تاریخچه • UMLمستقيماً روشهاي Booch ، Rumbaughو Jacobson را با هم ادغام كرده است، اما محدوده آن بيشتر از سه متدلوژي فوق است. • UML همانطور كه از نامش پيدا است يك زبان مدلسازي است تا يك متدلوژي. بطور معمول، هر متدلوژي شامل حداقل يك زبان مدلسازي و يك پروسه ساخت است.زبان مدلسازي شامل نمودارهايي است كه هر متدلوژي براي نمايش تحليل و طراحي سيستم‌‌ها از آن استفاده مي‌‌كند. • هدف طراحان UML بيشتر تدوين يك زبان مدلسازي شي‌‌گرا بوده تا ارائه يك پروسه ساخت استاندارد، اگر چه طراحان UML يك پروسه ساخت به نام USDPرا نيز ارائه داده‌‌اند شركتهايي مانندUnisys, Rational, Oracle, IBM, Microsoft, HP و ... از شركتهايي هستند كه ازUML استفاده كرده و آن را پشتيباني مي‌‌نمايند.

  8. مفاهیم یو ام ال در قالب دسته هایی به نام دیدطبقه بندی می شوند. • هر "دید" در واقع زیرمجموعه ای از ساخت‌های مدلسازی است که یک جنبه از سیستم را نمایش می دهند. • زبان یکنواخت؟!؟

  9. عناصر سیستم و ارتباط آنها با سایر عناصر را توصیف می کند. برای مدل کردن عناصر سیستم از مفهوم "دسته کننده" (classifier) استفاده می شود. • دسته کننده‌ها شامل کلاس، عملگر(Actor)، مورد کاربرد(Use case)، گره(Node)، همکاری(Collaboration)) و مولفه(component) هستند. دسته کننده‌ها پایه ای می سازند که رفتارهای پویای سیستم روی آن تعریف می شوند. دسته بندی ساختاری حوزه طبقه بندی ساختاری شامل سه دید مختلف است:

  10. رفتار یک سیستم و سایر دسته کننده هارا در مرور زمان توصیف می کند. یک رفتار به صورت تغییراتی در وضعیت سیستم توصیف می‌شود که در دید ایستا ترسیم می شوند. رفتار پویا Dynamic Behavior . حوزه رفتار پویای سیستم شامل سه دید است

  11. توصیف کننده منابع رایانشی در سیستم و چگونگی پیاده سازی مصنوعات مدل روی آنها می باشد. : چیدمان فیزیکی Physical Layout این بخش شامل یک دید است نمودار به کارگیری مورد استفاده در این دید نمایشگر پیاده سازی فیزیکی مصنوعات زمان اجرا روی گره هاست. یک مصنوع در این نمودار یک واحد پیاده سازی فیزیکی مانند یک فایل است و یک گره در واقع یک منبع زمان اجرا مانند یک رایانه، دستگاه و یا حافظه است.

  12. توصیف کننده سازماندهی خود مدلها در واحدهای سلسه مراتبی می باشد. واحد ژنریک سازماندهی مدلها بستهاست.یک مدل در واقع سلسله مراتبی از بسته هاست که انتزاع معنایی کاملی از سیستم از یک دیدگاه خاص است. سازماندهی مدل Model Organization این بخش شامل یک دید است این دید سازمان داخلی خود مدل را مدل می کند. یک مدل از مجموعه ای از بسته‌ها تشکیل می‌شود که در بر دارنده عناصر مدل ( مانند نمودارهای کلاس، ماشین وضعیت و مورد کاربرد) است. نمودار مورد استفاده در این دید نمودار بسته بندی است.

  13. نمودارهای یو ام ال یو ام ال توسط نمودارهایی ساختار و رفتار سیستم را نمایش می دهد.یک سیستم به صورت مجموعه ای از اشیای مجزا مدل می‌شود که برای رسیدن به هدف نهایی سیستم با یکدیگر تعامل دارند.نمودارهای یو ام ال نمایشگر دو دیدگاه مختلف از مدل سیستم هستند :

  14. uml۲٫۲ ۱۴ گونه نمودار مختلف دارد که به دو دسته اصلی تقسیم می شوند. هفت نمودار برای نمایش اطلاعات ساختاری به کار می روند و هفت نمودار دیگر برای نمایش رفتار و برهم کنشها استفاده می شوند. شکل یک نمودار کلاس است که دسته بندی سلسه مراتبی نمودارهای یوام ال را نشان می دهد.

  15. نمودارهای ساختاری Structural Diagrams نمودارهای ساختاری بر روی چیزهای که باید در سیستم مورد نظر شده موجود باشند، تاکید دارد. از آنجا که این نمودارها ساختار را نمایش می دهند، کاربرد گسترده ای در مورد معماری سیستم‌های نرم افزاری دارند.

  16. نمودار مولفه • نمودار به کارگیری • نمودار ساختار مرکب • نمودار شئ • نمودار بسته بندی

  17. نمودارهای رفتاری Behavior diagrams نمودارهای رفتاری بر چیزهایی که باید در سیستم مدل شده اتفاق بیفتد تاکید دارند. از آنجا که این نمودارها نمایشگر رفتار سیستم هستند به گستردگی برای توصیف کارکردهای سیستم نرم افزاری به کار می روند.

  18. نمودار ماشین وضعیت • نمودار فعالیت • نمودار مورد کاربرد

  19. نمودارهای برهمکنش Interaction Diagrams نمودارهای بر هم کنش زیر مجموعه ای از نمودارهای رفتاری هستند که بر گردش کنترل و داده‌ها بین چیزهای مختلف در سیستم مدل شده تاکید دارند.

  20. نمودارکلی برهمکنش • نمودار ارتباطات • نمودار توالی

  21. Watch ReadTime SetTime WatchUser WatchRepairPerson ChangeBattery مرور اولیه UML :نمودارهای مورد کاربرد Use case مورد کاربرد Package بسته Actor عامل نمودارهای مورد کاربرد عملکرد سیستم از دیدگاه کاربر آن را نمایش میدهند.

  22. 1 1 1 2 1 1 LCDDisplay Battery load Time now blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() مرور اولیه UML : نمودارهای کلاس نمودارهای کلاسی ساختار سیستم را نشان میدهند Association ارتباط Class کلاس Multiplicity Watch 1 2 PushButton state push()release() Attribute ویژگی ها Operations عملیات

  23. :Watch :LCDDisplay :Time :WatchUser pressButton1() blinkHours() pressButton1() blinkMinutes() pressButton2() incrementMinutes() refresh() pressButtons1And2() commitNewTime() stopBlinking() مرور اولیه UML: نمودارهای توالی Actor عامل Object شی Message پیام Activation فعال سازی Lifeline خط زندگی

  24. مرور اولیه UML: نمودار وضعی برای اشیا با رفتار پویای جالب Event رویداد Initial state وضعیت اولیه State وضعیت Transition انتقال Final state وضعیت نهایی

  25. قواعد اصلی UML • مستطیل نشان دهنده کلاس یا شی • بیضی نشان هنده عملیات یا موارد کاربرد است. • زیر نام اشیاء خط کشیده میشود • myWatch:SimpleWatch • Joe:Firefighter • زیر نام انواع خط کشیده نمی شود. • SimpleWatch • Firefighter • نمودارها در واقع گراف اند • نود ها مولفه • یال ها نشان دهنده ارتباط

  26. Passenger PurchaseTicket نمودارهای مورد کاربرد • در طول استخراج نیازمندیها برای نشان دادن رفتار بیرونی بکار میروند • Actor (عامل) ها نشان دهنده یک نقش اند یعنی نوعی از کاربران سیستم • Use cases ها نشان دهنده دنباله ای از نعامللات برای نوعی عملیات است • مدل مورد کاربرد مجموعه تمامی موارد کاربرد است. این مدل توصیف کاملی از عملکرد سیستم و محیطش است.

  27. Passenger عامل ها • عامل نشان دهنده مولفه ای بیرون سیستم است که با سیستم تعامل دارد • کاربر • سیستم خارجی • محیط فیزیکی • عامل نامی منحصر بفرد و توصیف اختیاری دارد • مثال • مسافر: فردی در قطار • ماهواره GPS: ارائه مختصات GPS‌ به سیستم

  28. PurchaseTicket مورد کاربرد هر مورد کاربرد نشان دهنده نوعی از عملکرد ارائه شده توسط سیستم در قالب جریان رویداده هاست هر مورد کاربرد شامل: • نام منحصر بفرد • عامل های مشارکت کننده • شرط ورود • شرط خروج • دنباله ای از رویداده ها • نیازمندیهای خاص

  29. مثالی از نمودار مورد کاربرد نام: خرید بلیط عامل ها: مسافر شرط ورود: • مسافر در مقابل توزیع کننده بلیط می ایستد • مسافر پول کافی برای خرید بلیط دارد شرط خروج: • مسافر بلیط دارد دنباله رویدادها: • مسافر تعداد نواحی سفر را انتخاب میکند • توزیع کننده مبلغ را نمایش میدهد • مسافر پول را رائه داده • توزیع کننده مابقی را ارائه میدهد • توزیع کننده بلیط را صادر میکند چیزی جا نمانده؟ موارد استثنائی

  30. Passenger PurchaseTicket <<extends>> OutOfOrder TimeOut <<extends>> <<extends>> <<extends>> Cancel NoChange رابطه<<extends>> • رابطه <<extends>> نشان دهنده موارد استثنائی و نادر است • برای وضوح بیشتر این حالات استثنائی خارج از جریان رویدادهای اصلی آورده میشود • موارد کاربرد جریان های استثنائی میتوانند بیش از یک مورد کاربرد را بسط دهند • جهت یک رابطه <<extends>> به سمت مورد کاربرد بسط داده شده است.

  31. Passenger PurchaseMultiCard PurchaseSingleTicket <<includes>> <<includes>> NoChange Cancel CollectMoney <<extends>> <<extends>> رابطه<<includes>> • رابطه <<includes>> نشان دهنده رفتاری است که در بیرون از مورد کاربرد قرار دارد • دلیل این کار • استفاده مجدد است ولی این به معنی حالت استثنائی نیست • جهت رابطه <<includes>> به سمت مورد استفاده شده است. (برعکس رابطه <<extends>>)

  32. zone:Zone Price: Price TarifSchedule Trip نمودارهای کلاس • نمودارهای کلاس نشان دهنده ساختار سیستم اند • کاربردها: • مدلسازی حوزه مساله در حین تحلیل نیازمندیها • مدلسازی زیرسیستم ها و رابط ها حین طراحی سیستم • مدلسازی کلاس ها هنگام طراحی شی Enumeration getZones() Price getPrice(Zone) * *

  33. TarifSchedule TarifSchedule TarifSchedule Table zone2price Enumeration getZones() Price getPrice(Zone) zone2price getZones() getPrice() Classes Name Signature Attributes Operations • در هر کلاس وضعیت (ویژگی ها) و رفتار (عملیات) جای میگیرد • هر ویژگی یک نوع دارد • هر عملیات یک امضا (signature ) دارد. • تنها بخش اجباری نام کلاس است

  34. tarif_1974:TarifSchedule Instances zone2price = { {‘1’, .20},{‘2’, .40}, {‘3’, .60}} • یک نمونه instance • نام نمونه زیرخط دارد و میتواند شامل نام کلاس باشد • ویژگی ها به همراه مقدارشان ذکر میشوند.

  35. تفاوت بین actor ، class و instance چیست؟ • Actor: • موجودیتی خارج سیستمی که مدل میشود و با سیستم تعامل دارد (مسافر) • Class: • انتزاعی که موجودیتی در حوزه مساله را مدل میکندو باید در داخل سیستم مدل شود (کاربر) • Object: • نمونه ای مشخص از یک کلاس

  36. TarifSchedule TripLeg Associations Enumeration getZones() Price getPrice(Zone) PriceZone * * • Association.ها نشان دهنده ارتباط بین کلاس ها هستند • چندی multiplicity یک وابستگی نشان میدهد که شی مبداً مجاز است به چند شی ارجاع دهد

  37. 1-to-1 and 1-to-many Associations Has-capital Country City * name:String name:String One-to-one association Point * Polygon x: Integer y: Integer draw() One-to-many association

  38. Many-to-Many Associations Lists * * StockExchange Company tickerSymbol 1 * Lists Company StockExchange SX_ID tickerSymbol

  39. Exhaust system TicketMachine ZoneButton 0..2 1 Muffler Tailpipe diameter diameter تجمعAggregation • تجمع نوع خاصی از وابستگی تست که نشان دهنده سلسله مراتب «شامل ....» می باشد • به کلاس اصلیaggregate و به کلاس های اجزا components میگویند • لوزی سیاه نشان دهنده composition است یعنی نوع قوی تجمع که در آن مولفه ها بدون aggregate وجود نخواهند داشت. 3

  40. CancelButton ZoneButton Button توارث • کلاس فرزند ویژگی ها و عملیات را از کلاس پدر به ارث می برد • توارث با حدف افزونگی مدلسازی را ساده تر میکند.

  41. Account Betrag Customer Bank Name Name AccountId Deposit() Withdraw() GetBalance() مدلسازی اشیا در عمل CustomerId CustomerId 1) پیدا کردن اشیا جدید 2) مرور نام ها، ویژگی ها و متدها

  42. Account Betrag Customer Bank CustomerId Name Name AccountId Deposit() AccountId CustomerId Withdraw() GetBalance() مدلسازی اشیا در عمل: سیستم بانکداری * Has 1) پیدا کردن اشیا جدید 2) مرور نام ها، ویژگی ها و متدها 3)پیدا کردن وابستگی های بین اشیاء 4) نامگذاری وابستگی ها 5) تعیین چندی وابستگی ها

  43. Packages بسته ها • یک بسته مکانیزمی در UML برای دسته بندی عناصر است (معمولاً مفهومی در حوزه مساله نیست) • بسته ها ابزارهای پایه گروه بندی مدلهای UML برای افزایش خوانایی آنها هستند • سیستم پیچیده میتواند به چند زیرسیستم تجزیه شود. هر یک از این زیرسیستم ها بصورت یک بسته مدل شده اند. DispatcherInterface Notification IncidentManagement

  44. TicketMachine Passenger selectZone() insertCoins() pickupChange() pickUpTicket() نمودارهای توالی در UML • استفاده در حین تحلیل نیازمندیها • پالایش توصیفات موارد کاربرد • پیدا کردن اشیاء اضافی “participating objects” • استفاده در طراحی سیستم • پالایش رابط های زیر سیستم ها • کلاس ها در ستون ها نمایش داده میشوند • پیام ها با فلش نمایش داده میشوند. • فعالیت ها با مستطیل های باریک نمایش داده میشوند. • خطوط زندگی Lifeline با خط چین نمایش داده میشود.

  45. TarifSchedule Display Passenger selectZone() lookupPrice(selection) displayPrice(price) price پیامهای تودرتو ZoneButton Dataflow • مبدا فلش مشخص کننده فعال سازی activation است که پیام را میفرستد • یک فعال سازی به اندازه تمامی فعالیتهای تودرتو طول میکشد • خطوط افقی نشان دهنده جریان داده اند • خطوط عمودی نشان دهنده خط زندگی اند …to be continued...

  46. CoinIdentifier Display CoinDrop Passenger insertChange(coin) lookupCoin(coin) price displayPrice(owedAmount) [owedAmount<0] returnChange(-owedAmount) Iteration & condition …continued from previous slide... ChangeProcessor * تکرار شرایط • تکرار Iteration با یک ستاره قبل از پیام نشان داده میشود. • شرایط با عبارات منطقی محصور در براکت قبل از پیام نشان داده میشوند. …to be continued...

  47. Passenger createTicket(selection) Ticket print() free() ایجاد و تخریب ....ادامه از اسلاید قبلی ایجاد ChangeProcessor تخریب • ایجاد با پیامی که به شی اشاره دارد نشان داده میشود • تخریب با علامت X ای در انتهای فعالیت تخریب نشان داده میشود.

More Related