3. دیاگرامهای Iteration:
درباره دیاگرامهای Iteration
دياگرامهاي Iteration نشان مي دهند چگونه object ها در بعضي رفتارها(Behavior) با هم مشاركت دارند.اين نمودارها Objectها و پيغامهاي ردو بدل شده را در يك use case مشخص نشان مي دهند. دو نوع نمودار Iteration وجود دارد:
نمودار Sequence
نمودار Collaboration
Object naming schema:
يكياز جزئئياتي كه بايد بهش اشاره بشه Object naming schema است كه در داخل Class role ها از آن استفاده مي شود. و به فرم object name: Class name است كه هم اسم object و هم اسم كلاس را مي توان حذف كرد اما هميشه : را باقي مي گذاريم كه معلوم شود كه اين فيلد به چي چيزي شاره مي كند.
3.1. دیاگرامهای Sequence:
در باره دیاگرامهای Sequence
نمودارهاي Sequence ، عكس العملهاي متقابل كلاسها را توصيف مي كنه، به اصطلاح ردو بدل پيغامهاي يك lifeline.
پیغامها
پيغامها فلشهايي هستند كه ارتباطات بين object ها در زمان حيات object را نشان مي دهند.
اين زمان حيات خطي عمودي است كه lifeline(خط عمر) ناميده مي شود كه مدت حيات يك object را در مدت iteration يا عكس العملها نشان مي دهد. پيغامهاي خاص نيز وجود دارند مثل پيغام self delegation كه object پيغامي رو به خودش در همان lifeline ارسال مي كند.
ما مي توانيم به پيغامها بيتهاي كنترلي هم اضافه كنيم. 2 بيت كنترلي وجود دارد:
شرط(condition) :يك گزاره منطقي استكه تعيين مي كند كي پيغام فرستاده شود(فقط زماني كه شرط درست باشد)
شاخص iteration : شاخصي كه تعيين ميكند كه پيغام جند بار به object هاي متعدد فرستاده شود.
نوع ديگري از پيغامهاي خاص ،پيغام بازگشتي است.پيغام بازگشتي را نمي توان به عنوان پيغام معمولي و عادي در نظر گرفت به خاطر اينكه در واقع پيغام بازگشتي ، يك پيغام واقعي نيست. اون بيشتر شبيه برگشت از يك پيغام است. اين بازگشتها نبايد براي هر پيغامي استفاده شوند ،مگر تنها زماني كه به واضح شدن دياگرام كمك مي كنند.
فرآیند های همزمان
از نمودار Sequence براي نمايش دادن فرآيندهاي همزمان نيز استفاده مي شود.در اين نوع نمودارها ، ما مي تونيم Activationها ، پيغامهاي غير همزمان (asynchronous) و حذفيات(deletions) به عنوان add-ones ببينيم.
Activationها: بلكهايي از زمان هستند كه تععين مي كنند كه چه زماني يك فرايند مشخص فعال مي شود.
پيغام غير همزمان:از object ي فرستاده مي شود كه قبل ادامه كارش منتظر پاسخي از گيرنده پيغام نيست (مترجم-يعني پيغام مي فرستد ، بدون اينكه منتظر جوابي بماند به بقيه كارش ادامه مي دهد. معمولا اين گونه پيغامها به 3 منظور استفاده مي شوند:
• ايجاد thread جديد
• ساختن object جديد
• ارتباط با thread ي كه در حال حاضر در حال اجراست.
حذفيات(deletions): براي نمايش دادن حذف يك object استفاده مي شود. يك object مي تواند خودش ، خودش را نابود كند يا توسط پيغامي از object ديگر نابود شود.
حلقه ها(loops): تكرار يا حلقه در نمودار Sequence به صورت يك مستطيل نمايش داده مي شود.
دیاگرام
3.2. دیاگرامهای Collaboration:
درباره دیاگرامهای Collaboration
در نمودار Collaboration ،به جاي يك باكس در بالاي نمودار(مثل نمودار Sequence ) ، هر object با يك آيكن نشون داده مي شود وترتيب پيغامها با شماره مشخص مي شود.
به خاطر اينكه ديدن و متوجه شدن نمودار Sequence سخت تر است ،نمودار هاي Collaboration تمركزشون روي همكاري Objectهاست، (اينكه چطور با هم ارتباط دارند).
شماره گذاری سریال و پشت سر هم
براي نمايش توالي مي توان از شماره گذاري ساده يا اعشاري پيغامها استفاده كرد. با شماره گذاري ساده پيغامها پيگيري توالي راحتتر است. هر چند در UML شماره گذاري اعشاري هم استفاده مي شود ، براي اينكه بتوان فهميدكدام operation ، ديگر Operation هاي جديد را فراخواني مي كند.
دیاگرام
مقایسه دایاگرامهای Sequence و Collaboration
همانطور كه قبلا گفته شد، نمودار Sequence روي توالي تمركز دارد در حاليكه نمودار Collaboration بر اين تمركز دارد كه چطور Object هاي مختلف با هم ارتباط دارند.
نكته مهم اينه كه چه نمودار Sequence و چه مودار Collaboration يك مشخه اصلي دارند و آن هم سادگي است.(مترجم-بايد ساده و به دور از پيچيدگي پياده سازي شوند)
چه زمان باید از دیاگرامهای Iteration استفاده کرد؟
همانطور كه قبلا گفته شد، نمودارهاي iteration براي نمايش رفتار object ها متفاوت داخل يك use case ساده ، استفاده مي شوند. مشخصه اصليشون سادگي است به همين جهت اگر بخواهيد رفتارهاي پيچيده بيشتري به آنها اضافه كنيد وضوح خود را از دست خواهند داد. اين نمودارها براي نمايش همكاري بين object ها مناسبند ، اما به يك طريق.
قسمت بعدیState diagram