980 likes | 1.17k Views
مقدمه ای بر Unified Modeling Language علیرضا کاظمی نیا. به نام خدا . All Models Are Wrong Some Models Are Useful. Origin unknown. Today’s Topics . Unified Modeling Language introduction Object Oriented Analysis and Design Class Diagrams Sequence Diagrams Activity Diagrams
E N D
مقدمه ای بر Unified Modeling Language علیرضا کاظمی نیا به نام خدا All Models Are Wrong Some Models Are Useful. Origin unknown
Today’s Topics • Unified Modeling Language introduction • Object Oriented Analysis and Design • Class Diagrams • Sequence Diagrams • Activity Diagrams • Use Case Diagrams • Conclusion
Unified Modeling Language
UML • در واقع مجموعه ای از زبان ها (notation ها و نمودار ها) است که هر کدام برای منظور خاص در موقعیت های خاص خود به کار گرفته می شوند. • UML زبان بین المللی مهندسی نرم افزار است. • UML بر پایه ی شی گرایی می باشد. • ویرایش های مختلف آن از سال 1996 تا کنون به وجود آمده اند و هم اکنون ویرایش 2.3 آن جدیدترین ویرایش است.
The creators Grady Booch Ivar Jacobson James Rumbaugh
Today’s Topics • Unified Modeling Language introduction • Object Oriented Analysis and Design • Class Diagrams • Sequence Diagrams • Activity Diagrams • Use Case Diagrams • Conclusion
Object Oriented Analysis & Design
ObjectOrientation • object ها را همه می شناسند. به اطراف خود نگاه کنید چه اشیایی می بینید؟
Object حالت و رفتار • اشیا در دنیای واقعی دو خاصیت دارند: راه رفتن دویدن غذا خوردن خوابیدن نشستن نام نژاد رنگ وزن قد
Message • پیغام ها، درخواست هایی هستند که در آن ها یک شی از یک شی دیگر می خواهد که کاری را انجام دهد. این پیغام دهی اغلب دو طرفه است یعنی یک شی می تواند هم گیرنده ی پیغام باشد و در جایی دیگر هم فرستنده ی پیغام باشد. این پیغام ها می توانند متد هایی را فراخوانی کنند و این امر در جای خود می تواند به تولید پیغام های جدیدی منجر شود.
Encapsulation • encapsulation جزئیات پیاده سازی یک کلاس را از اشیایی که به آن پیغام می فرستند پنهان می کند. به این ترتیب اشیا مجبور نیستند که نگران روش پیاده سازی شیی که به آن پیغام می فرستند باشند و این امر به ساده شدن پیاده سازی و تغییر در برنامه می انجامد. Walk! Encapsulate what varies.
Inheritance • با استفاده از وراثت می تواند به صورت حالت خاصی از یک کلاس کلی تر تعریف شود که تمام حالات و رفتارهای حالت کلی تر را دارد. به حالت کلی superclass و به حالت خاص subclass می گویند. وراثت از تلف شدن وقت جلوگیری می کند (چرا؟).
Polymorphism • امکان ارسال یک پیغام به چند گیرنده ی انجام شدن درخواست پیغام به روش های مختلف بسته به کلاس گیرنده. چه جوری؟
MakeNoise( ) hiss buzz moo miaow
Today’s Topics • Unified Modeling Language introduction • Object Oriented Analysis and Design • Class Diagrams • Sequence Diagrams • Activity Diagrams • Use Case Diagrams • Conclusion
Class Diagrams
Classdiagram Write the code for class dog.
1 این فلش چیو نشون می ده؟ Now adjust your code.
1 * Now adjust your code.
1 * Now adjust your code. Notice anything wrong?
Today’s Topics • Unified Modeling Language introduction • Object Oriented Analysis and Design • Class Diagrams • Sequence Diagrams • Activity Diagrams • Use Case Diagrams • Conclusion
sequence Diagrams
SequenceDiagram • کاربرد: توصیف نحوه ی تعامل اشیا با هم بر اساس زمان، نشان دادن اشیا وlifeline آن ها و انتقال پیام ها بین اشیا. • در یک sequence diagram می توان موارد زیادی را نشان داد که در زیر به آن ها اشاره می شود.
Lifeline • نشان دهنده ی یک شرکت کننده در تعامل بین اشیا است. در واقع می توان گفت نشان دهنده ی یک شی یا موجودیت است. • lifeline را به وسیله ی یک مستطیل که یک خط عمودی به آن متصل است نشان می دهند. در مستطیل نام موجودیت و نوع (کلاس) آن مشخص می شود.
Message • نشان دهنده ی ارتباط بین دو lifeline که با فلش از فرستنده به گیرنده نشان داده می شود. این فلش یا باید به صورت مستقیم یا رو به پایین باشد و نمی توان آن را به صورت رو به بالا نشان داد (چرا؟) • انواع مختلقی برای پیغام ها می توان در نظر گرفت: • تماس همگام (synchronous call) • تماس ناهمگام (asynchronous call) • ایجاد (create) • حذف (delete) • پاسخ (reply)
Synchronous call • synchronous call درخواست انجام یک عملیات است. پیغام فرستاده می شود و تا زمانی که جواب آن دریافت شود اجرا متوقف می شود.
Asynchronous call • پیغام فرستاده می شود ولی اجرا متوقف نمی شود و انتظار برای رسیدن جواب رخ نمی دهد.
Create • زمانی که پیغام create به یک lifeline فرستاده می شود به آن lifeline گفته می شود که خود را ایجاد کند (ha?) • در دنیای واقعی این پیغام به runtime environment فرستاده می شود.
Delete • از یک lifeline به lifeline دیگر فرستاده می شود و نشان دهنده ی پایان عمر lifeline پذیرنده است. این پایان عمر با X نشان دادن می شود. در نسخه های قبلی UML به آن Stop گقته می شد.
Reply • بدون شرح!!!!!
Messageby presence of events • بسته به اینکه ارسال و دریافت برای پیغام ها رخ داده باشد می توان آن ها را به 4 نوع تقسیم کرد: • پیغام کامل: هم ارسال و هم دریافت برای آن وجود دارد؛ • پیغام گم شده: فقط رخداد ارسال برای آن وجود دارد؛ • پیغام پیدا شده: فقط رخداد دریافت برای آن وجود دارد؛ • پیغام ناشناخته: نه رخداد ارسال و نه رخداد دریافت برای آن وجود دارد؛
Messages by presence of events فرستنده مشخص نیست و فرض می شود خارج از محدوده ی نمودار قرار دارد. گیرنده مشخص نیست و فرض می شود پیغام به مقصد نرسیده است.
Interaction fragment • Execution Specification • نشان دهنده ی قمستی از دوره ی زندگی یک موجودیت است که در آن مشغول به انجام کاری، فرستادن سیگنال است یا منتظر پاسخ درخواست خود از یک موجودیت می باشد. Overlapping ES Execution Specification
Interaction Specification 2. Destruction Event
Interaction Specification 3. State Invariant • نشان دهنده ی یک محدودیت در زمان اجرا است. این محدودیت قبل از اجرای عمل مربوط سنجیده می شود.
فرق بین alt و opt چیه؟ if(guard) some action else nothing if(guard) some action else other action
Combined Fragment Explanation?