قید ALAP پریماورایی در پراجکت
احتمالا میدونین که عملکرد قید As Late As Possible تو پریماورا و پراجکت فرق میکنه. وقتی فعالیتی رو تو پریماورا ALAP کنین، شناوری آزادش صفر میکنه، ولی اگه این کار رو تو پراجکت کنین، شناوری کلش صفر میشه.
قید ALAP پراجکت باعث میشه که شناوری کل تمام فعالیتهایی که مستقیم یا غیر مستقیم وابستگیای به فعالیت ALAP شده دارن هم صفر بشه.
هرکدوم از این دو نوع قید کاربردهای خودش رو داره، و خیلی خوب میشد اگه هر دو نرمافزار هر دو نوع قید رو ارائه میکردن، که متاسفانه نمیکنن.
حالا اومدیم و تو پراجکت نیاز به ALAP پریماورایی پیدا کردین. تکلیف چیه؟
میشه با یه مقدار عملیات آکروباتیک موضوع رو حل کرد.
این هم برنامه مثال:
فعالیتی که میخوایم شناوری آزادش صفر باشه، فعالیت a هست. چرا؟
فرض کنین مثلا a یه فعالیت تدارکاتیه. c رنگ دیواره، b خود دیوارکشیه، d هم بقیه کارها. a هم رنگیه که باید برای اونجا بخریم. حالا کی باید بخریمش؟
میشه a رو SF با c کرد تا زمانبندیش درست بشه. ولی تو این حالت اگه a به تاخیر بیفته، c رو به تاخیر نمیندازه، در نتیجه اهمیتش تو برنامه مشخص نمیشه. به این خاطره که ترجیح میدیم a رو پیشنیاز c کنیم (در واقعیت هم همینطوره). حالا اگه معمولی این کار رو کنیم، a تو شروع پروژه شروع میشه، چون خودش پیشنیاز نداره. زمان مناسبش چه موقع باشه؟ بهترین گزینه زمانیه که شناوری آزادش رو صفر کنه، یعنی فعالیت قید ALAP پریماورایی داشته باشه. اگه همینطوری بهش قید ALAP بدیم، چنین نتیجهای میگیریم:
که اصلا جالب نیست، چون c رو برده به آخر پروژه.
بعضیها اینجور مواقع قید Start No Earlier Than میذارن و بهش تاریخی میدن که a رو تا اندازه مناسب جلو ببره. ولی این راه هم مشکلش اینه که اگه زمانبندی c تغییر کنه، اصلاح نمیشه. پس جالب نیست.
من همون قید ALAP پریماورا رو میپسندم. راه حلش هم سادهس.
یادتونه قبلا درباره تاریخهای موثر در شناوری چه توضیحی داده بودم؟
همین ماجرا کلید حل مسئلهس.
روی تاریخ شروع c کلیک کنید، بعد ctrl+c رو بزنین تا کپی بشه. حالا روی فیلد deadline فعالیت a کلیک کنین و از منوها paste special رو انتخاب کنین. گزینه Paste link رو انتخاب کنین و روی ok کلیک کنین.
علامت فرجه رو میبینین؟
الان a فرجهای داره که تاریخش همون تاریخ شروع فعالیت c هست. هروقت زمانبندی c تغییر کنه، تاریخ این فرجه هم به تناظر اون تغییر میکنه و به عبارت دیگه، فرجه a همیشه همون شروع c خواهد بود. میدونین که فرجه شناوری فعالیت رو محدود میکنه.
حالا اگه a رو ALAP کنیم همچین چیزی میبینیم:
و این میشه همون چیزی که لازم داشتیم.
این کار رو با هر ترکیبی از فعالیتها هم میشه انجام داد. اگه به جای a مجموعهای از aها داشته باشیم، کافیه که به آخرین a فرجه بدین و اولین a رو ALAP کنین.