فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87
آزمايشگاه سيستم های همشمند خلاصه دياگرام های UML 9 نوع دياگرام در UML وجود دارد. Class Diagram Object Diagram * Component Diagram Deployment Diagram Use case Diagram * Sequence Diagram Collaboration Diagram State chart Diagram Activity Diagram * Not Applicable for architecture description. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند … خلاصه دياگرام های UML برخی اجزای UML برای توصيف Runtime ، برخی برای Design/Build Time و برخی برای توصيف هر دو به کار ميروند. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند … خلاصه دياگرام های UML آزمايشگاه سيستم های همشمند
اجزای دياگرام های و دوره حيات آنها Object (R) Class (B/R) Package (B) Sub-system (B) Layer (B) Component (R) Interface (B/R) Process (R) آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند قراردادها يک نمونه دياگرام آزمايشگاه سيستم های همشمند
... قراردادها General UML Features Stereotype : مکانيزمی جهت ايجاد المان های جديد از طريق افزودن semantic ، constraint يا property (هايي) به المانهای اصلی UML . درون << >> يا با آيکون مخصوصی نشان داده ميشود. مثال: Subsystem يک Stereotyped Package است که آيکون خاص خود را دارد. آزمايشگاه سيستم های همشمند
... قراردادها General UML Features Tagged Value : امکان افزودن ليستی از property ها به يک المان. از ديد معماری نرم افزار، برای component ها، process ها، interface ها، thread ها، association ها، dependency ها و node ها مفيد است. نام و مقدار آن درون {} نوشته ميشود. آزمايشگاه سيستم های همشمند
... قراردادها General UML Features Multi-instance : نمايش خلاصه يک المان که در Runtime بيش از يک نمونه دارد. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند ... قراردادها View Labels برچسبی شامل مشخصه های اصلی يک View شامل Title: Description of the view. Type: Based on the viewpoint name. Date: Last date updated. Responsible: Person(s) responsible for creating the view. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند دياگرام ها دياگرام هايي که ميتوانند در توسعه view های مختلف معماری نرم افزار استفاده شوند. آزمايشگاه سيستم های همشمند
Component instance diagram component در اينجا به معنای component instance (زمان اجرا) استفاده ميشود. اين دياگرام کلاً مربوط به runtime است. برای Build/Design Time از دياگرام Subsystem استفاده ميکنيم. آزمايشگاه سيستم های همشمند
…Component instance diagram آزمايشگاه سيستم های همشمند
Class and subsystem diagrams تمرکز Class diagram روی گروهی از المانهای مدل مانند کلاس ها، بسته ها، زيرسيستم ها، موجوديتهای ديتابيس يا table های آن است. Subsystem Diagram گروهی از زيرسيستم ها و ارتباطات آنها را (از طريق اينترفيس ها) نشان ميدهد. کلاس های مهم و سيستم های خارجی هم نمايش داده ميشوند. آزمايشگاه سيستم های همشمند
…Class and subsystem diagrams آزمايشگاه سيستم های همشمند
Interaction (sequence & collaboration) diagram Interaction diagram نمونه هايي از المان های مدل و پيام های تبادلی ميان آنها را نشان ميدهد. به طور سنتی از Object استفاده ميشده اما نمونه المانهای ديگر هم قابل استفاده است. در معماری، تمرکز بر Component ها و نمونه process ها حائز اهميت است. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند Sequence diagram پيام ها ميان نمونه ها ممکن است همزمان يا غير همزمان باشند. آزمايشگاه سيستم های همشمند
Collaboration diagram شبيه دياگرام sequence اما با وضوح بيشتر. مناسب برای تعداد نمونه ها و ارتباطات کم. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند Deployment diagram ارتباط ميان نودها، component های درون آنها و فرآيندها را نشان ميدهد. Process Diagram هم نوعی از اين دياگرام است که نودها و component ها در آن نيستند. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند Statechart diagram نمايش رفتار پويا (ديناميک) المان های سيستم است. در معماری، برای نمايش حالت component ها، فرآيند ها و thread ها به کار ميرود. برای کلاسهای اصلی سيستم هم قابل ارائه است. جهت انجام تست در معماری کاربرد دارد. مثال: حالات مختلف بخش هشدار در يک سيستم هشدار دهنده سخت افزاری. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند … Statechart Diagram آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند Activity diagram نوعی از state diagram که جريان فعاليت های سيستم را نشان ميدهد. آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند مديريت پيچيدگی کم کردن پيچيدگی، رمز موفقيت در توسعه سيستم های بزرگ است که بايد به صورت سازماندهی شده و با حفظ سازگاری انجام شود. ساده سازی صريح (Explicit) ارجح است، يعنی دياگرام ها بايد به وضوح بيان کننده ساده سازی های انجام شده روی آنها باشند. تمرکز هر دياگرام روی موضوع خاصی از سيستم باشد. آزمايشگاه سيستم های همشمند
استراتژی های مديريت پيچيدگی Use case focused modeling Element focused modeling Level of details Controlling the number of models Use supplemental textual information آزمايشگاه سيستم های همشمند
Use case focused modeling تمرکز روی يک use case يا سناريو (مسير خاصی از use case) برای توسعه معماری بسيار مفيد است چون تمام المان های درگير در اجرای يک use case را در بر ميگيرد. Interaction diagram روی يک سناريو متمرکز است. بقيه نمودارها هم با اين شيوه قابل توليد هستند. آزمايشگاه سيستم های همشمند
Element focused modeling مثال: توليد يک view برای نمايش وابستگی های يک subsystem نمايش ارتباطات اصلی يک مجموعه خاص از المان های مدل (چند component ، چند subsystem يا چند object) آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند Level of details گاهی بيان جزئيات از اهداف مورد نظر يک view نيست. مثلاً: در نمايش وابستگی اينترفيس subsystem ها، بيان وابستگی کافی است و جزئيات اينترفيس ها مد نظر نيست. بيان پارارمترهای متدها در بخش تحليل، مورد نياز نيست. آزمايشگاه سيستم های همشمند
Controlling the number of models تعداد مدل ها با افزايش سايز سيستم به صورت تصاعدی افزايش مي يابد. توليد مدل به خودی خود هدف ما نيست. مدل سازی برای فهم و تکميل Design سيستم و نيز مستند سازی انجام ميشود. راه حل: اولويت بندی. مدل های exploratory ، موقت هستند. مدل های Documentation ، ماندگار و مهم تر هستند. کار با مدل های ناقص، در امر معماری نرم افزار مشکل آفرين است. تطابق مدل با کد: راه حل: مهندسی معکوس برای ارتباط دادن کد توليد شده به مدل. آزمايشگاه سيستم های همشمند
Use supplemental textual information نمودارها به تنهايي مکانيزم مناسبی برای بيان اطلاعات پيچيده نيستند. استفاده از توضيحات و جداول نيز ضروری است. مثال: توصيف زيرسيستم ها، اينترفيس ها، اکتورها و ... کارآيي و ديگر ويژگی های نودها توضيح جزئيات sequence ها UML OCL برای بيان پيش شرط ها و پس شرطها توضيح حالت ها در يک state diagram آزمايشگاه سيستم های همشمند
آزمايشگاه سيستم های همشمند Recommended Readings UML specification: www.omg.org www.uml.org UML Users Guide (Booch et al., 1999) آزمايشگاه سيستم های همشمند