Процессийн зөв цагийг тооцоолох алгоритм. "Jet Infosystems" шинэлэг технологи, шийдлийн төвийн техникийн захирал (тооцоолох)


Танилцуулга

Үйлдвэрлэлийг зохион байгуулах семинарын зорилго нь онолын мэдлэгээ өргөжүүлэх, гүнзгийрүүлэх, үйлдвэрлэлийн зохион байгуулалт, төлөвлөлтийн талаархи практикт хамгийн түгээмэл тохиолддог асуудлыг шийдвэрлэхэд шаардлагатай ур чадварыг эзэмшүүлэх явдал юм.

Семинар нь сургалтын үндсэн хэсгүүдийн даалгавруудыг багтаасан болно. Сэдэв бүрийн эхэнд арга зүйн товч заавар, онолын мэдээлэл, шийдэл бүхий ердийн даалгавар, бие даан шийдвэрлэх даалгаврыг танилцуулсан болно.

Сэдэв бүрт арга зүйн заавар, онолын товч мэдээлэл байгаа нь энэхүү семинарыг захидал харилцааны сургалтанд ашиглах боломжийг олгодог.


Үргэлжлэх хугацааны тооцоо үйлдвэрлэлийн мөчлөг

Үр ашгийн үзүүлэлт болгон үйлдвэрлэлийн үйл явцЭнэ нь үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацаа юм.

Үйлдвэрлэлийн мөчлөг- хөдөлмөрийн объектуудын үйлдвэрлэлийн явцад байх хугацаа, түүхий эд гаргах, эцсийн бүтээгдэхүүн гаргах хүртэл.

Үйлдвэрлэлийн мөчлөг нь дараахь зүйлээс бүрдэнэ ажлын цаг,энэ хугацаанд хөдөлмөр зарцуулж байгаа ба завсарлагааны цаг... Завсарлагааны шалтгааныг харгалзан дараахь байдлаар хувааж болно.

1) асаалттай байгалийнэсвэл технологийн хувьд - эдгээр нь бүтээгдэхүүний шинж чанараас үүдэлтэй;

2) зохион байгуулалтын(ээлжийн хоорондох завсарлага).

Үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацаа нь дараахь бүрэлдэхүүн хэсгүүдээс бүрдэнэ.

Цикл = tтэдгээр + tидэх + t tr + tк.к. + tм. + t m.ts.

хаана tтэдгээр- технологийн ажиллагааны хугацаа;

иддэг -байгалийн үйл явцын цаг (хатаах, хөргөх гэх мэт);

t tr -хөдөлмөрийн объект тээвэрлэх хугацаа;

t c.c. -чанарын хяналтын хугацаа;

t m.o -хамтарсан унтах хугацаа;

t m.ts. -хэлтэс хоорондын агуулахад зарцуулсан цаг;

(tгурав tк.к. -тай хослуулж болно t m.o).

Үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацааг тооцоолох нь үйлдвэрлэлийн төрлөөс хамаарна. Масс үйлдвэрлэлд үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацаа нь бүтээгдэхүүн урсаж байх хугацаанаас хамаарна.

Цикл = tМ -д,

хаана t v- суллах мөчлөг;

М.- ажлын байрны тоо.

Доор суллах тактикҮйлдвэрлэсэн нэг бүтээгдэхүүн болон дараагийн бүтээгдэхүүнийг гаргах хоорондох хугацааны интервалыг ойлгох хэрэгтэй.

Суллах мөчлөгийг томъёогоор тодорхойлно

t in = Teff / V,

хаана Теф- тооцооны хугацаанд (ээлжийн, өдөр, жил) ажилчны цагийн үр дүнтэй сан;

V- тухайн үеийн үйлдвэрлэлийн хэмжээ (байгалийн нэгжээр).

Жишээ: Т см = 8 цаг = 480 мин; T эгнээ = 30 мин; → Тэфф = 480 - - 30 = 450 мин.

B = 225 ширхэг; → t h = 450/225 = 2 мин.

V цуврал үйлдвэрлэлболовсруулалтыг багц хэлбэрээр хийдэг бол технологийн мөчлөгийн үргэлжлэх хугацааг үйлдвэрлэлийн нэгжээр биш харин бүхэл бүтэн багцаар тодорхойлно. Түүгээр ч зогсохгүй багцыг үйлдвэрлэлд нэвтрүүлэх аргаас хамааран өөр өөр мөчлөгийн хугацааг авдаг. Бүтээгдэхүүнийг үйлдвэрлэлд шилжүүлэх гурван арга байдаг: дараалсан, зэрэгцээ ба холимог (цуваа зэрэгцээ).


Би... Ат тууштайхөдлөх хэсгүүд, дараагийн үйлдэл бүр өмнөх үйл ажиллагаа дууссаны дараа л эхэлдэг. Эд ангиудын дараалсан хөдөлгөөний мөчлөгийн хугацаа дараахь хэмжээтэй тэнцүү байх болно.

хаана n - боловсруулж буй хэсгийн хэсгүүдийн тоо;

t ширхэгби- үйл ажиллагааны хэсэг хугацааны хэмжээ;

C i- нэг хүнд ногдох ажлын тоо би th үйл ажиллагаа;

м- технологийн процессын үйл ажиллагааны тоо.

5 ширхэг багц өгдөг. Багцыг 4 үйлдлээр дараалан дамжуулдаг; Эхний үйл ажиллагааны үргэлжлэх хугацаа - 10 минут, хоёр дахь нь - 20 минут, гурав дахь нь - 10 минут, дөрөв дэх нь - 30 минут (Зураг 1).

Зураг 1

Т.мөчлөг = Т.сүүлийн = 5 (10 + 20 + 10 + 30) = 350 мин.

Эд ангиудын дараалсан хөдөлгөөн нь тоног төхөөрөмжийг зогсолтгүй ажиллуулах боломжийг олгодог давуу талтай. Гэхдээ түүний сул тал бол энэ тохиолдолд үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацаа хамгийн их байх явдал юм. Нэмж дурдахад ажлын хэсгүүдэд ихээхэн хэмжээний эд ангиудыг бий болгодог бөгөөд энэ нь үйлдвэрлэлийн нэмэлт зай шаарддаг.

II... Ат ЗэрэгцээБагцын хөдөлгөөн, бие даасан хэсгүүдийг ажлын байранд хойшлуулдаггүй, гэхдээ бүхэлд нь боловсруулах ажлыг дуустал хүлээхгүйгээр дараагийн үйл ажиллагаанд шууд шилжүүлдэг. Ийнхүү ажлын хэсэг бүрт хэсэг хэсгүүдийн зэрэгцээ хөдөлгөөн хийснээр нэг багцын өөр өөр хэсгүүдэд янз бүрийн үйлдлүүдийг нэгэн зэрэг гүйцэтгэдэг.

Бүтээгдэхүүний зэрэгцээ хөдөлгөөнөөр багц боловсруулах хугацаа эрс багасдаг.

dl .

хаана n n- доторх хэсгүүдийн тоо багцыг шилжүүлэх(тээврийн ачаа), өөрөөр хэлбэл нэг үйлдлээс нөгөөд нэгэн зэрэг шилжүүлсэн бүтээгдэхүүний тоо;

Dl - хамгийн урт үйл ажиллагааны мөчлөг.

Бүтээгдэхүүний багцыг нэгэн зэрэг ажиллуулснаар бүхэл бүтэн хэсгүүдийн боловсруулалтыг зөвхөн урт хугацааны ажил богино хугацаанд хийдэг ажлын байранд тасралтгүй явуулдаг. Богино ажиллагаа урт хугацааны дараа хийгддэг тохиолдолд. илүү урт (бидний жишээнд - гурав дахь үйлдэл), эдгээр үйлдлүүдийн гүйцэтгэлийг үе үе гүйцэтгэдэг. сул зогсолт бүхий тоног төхөөрөмж. Өмнөх (урт) ажиллагаа нь үүнийг зөвшөөрдөггүй тул энд хэсэг хэсгүүдийг цаг алдалгүй шууд боловсруулах боломжгүй юм.

Бидний жишээнд: n= 5, t 1 = 10; t 2 = 20; t 3 = 10; t 4 = 30; хамт= 1.

Т.уур = 1 (10 + 20 + 10 + 30) + (5-1) 30 = 70 + 120 = 190 мин.

Хэсэг хэсгүүдийн зэрэгцээ хөдөлгөөний схемийг авч үзье (Зураг 2):

Зураг 2

III... Багцын зарим хэсгийг боловсруулах явцад гарсан бүх тасалдлыг арилгахын тулд үүнийг ашиглана уу зэрэгцээ цувааэсвэл холимогэхлүүлэх арга бөгөөд үүнд хэсгүүдийг (боловсруулсны дараа) нэг нэгээр нь, эсвэл "тээвэрлэх" хоцрогдол хэлбэрээр (тус бүр нь хэд хэдэн ширхэг) шилжүүлж, үйл ажиллагааны гүйцэтгэлийг тасалдуулахгүй болно. ямар ч ажлын байранд. Холимог аргын хувьд боловсруулалтын тасралтгүй байдлыг дараалсан аргаас, зэрэгцээ аргаас тухайн хэсгийг боловсруулсны дараа шууд үйл ажиллагаанаас ажил руу шилжүүлэх аргыг авна. Үйлдвэрлэлд нэвтрүүлэх холимог аргын тусламжтайгаар мөчлөгийн хугацааг томъёогоор тодорхойлно

кор .

хаана кор. - хамгийн богино ажиллагааны мөчлөг (зэргэлдээх үйл ажиллагааны хос тус бүрээс);

м-1тэгшитгэлийн тоо.

Хэрэв дараагийн үйлдэл нь өмнөхөөсөө илүү урт эсвэл цаг хугацаатай тэнцүү бол өмнөх үйлдлийн эхний хэсгийг боловсруулсны дараа энэ үйлдлийг нэг нэгээр нь эхлүүлнэ. Хэрэв эсрэгээр дараагийн үйл ажиллагаа нь өмнөхөөсөө богино байвал хэсэгчилсэн шилжүүлгийн цоорхой байна. Үүнээс урьдчилан сэргийлэхийн тулд ийм хэмжээний тээврийн нөөцийг хуримтлуулах шаардлагатай бөгөөд энэ нь дараагийн үйл ажиллагаанд ажиллахад хангалттай юм. График дээрээс энэ цэгийг бараг олохын тулд багцын сүүлчийн дэлгэрэнгүй мэдээллийг шилжүүлж, гүйцэтгэх хугацааг баруун тийш хойшлуулах шаардлагатай байна. Багцын бусад бүх хэсгүүдийг боловсруулах хугацааг график дээр зүүн тийш харуулав. Эхний хэсгийг боловсруулах эхлэл нь өмнөх үйл ажиллагааны тээврийн нөөцийг энэ үйл ажиллагаанд шилжүүлэх ёстой мөчийг харуулна.

Хэрэв хөрш зэргэлдээх үйлдлүүд үргэлжлэх хугацаандаа ижил байвал тэдгээрийн зөвхөн нэгийг нь богино эсвэл урт гэж хүлээн зөвшөөрдөг (Зураг 3).

Зураг 3

Т.сүүлчийн уур = 5 (10 + 20 + 10 + 30)-(5-1) (10 + 10 + 10) = 350-120 = 230 мин.

Үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацааг багасгах гол арга замууд нь:

1) Үйлдвэрлэсэн бүтцийн үйлдвэрлэлийн чадварыг сайжруулах, компьютер ашиглах, дэвшилтэт технологийн процессыг нэвтрүүлэх замаар үйлдвэрлэлийн бүтээгдэхүүний хөдөлмөрийн эрч хүчийг бууруулах.

2) оновчтой зохион байгуулалт хөдөлмөрийн үйл явц, ажлын байрыг мэргэшүүлэх, хамтран ажиллах, үйлдвэрлэлийн өргөн механикжуулалт, автоматжуулалтын үндсэн дээр зохион байгуулах, засвар үйлчилгээ хийх.

3) Зарчмуудыг оновчтой ашиглахад үндэслэн ажил дээрээ төлөвлөсөн болон төлөвлөөгүй янз бүрийн тасалдлыг багасгах шинжлэх ухааны байгууллагаүйлдвэрлэлийн үйл явц.

4) Даралт, температур, тасралтгүй процесс руу шилжих гэх мэт үр дүнд урвалын явц хурдасдаг.

5) Тээвэрлэлт, агуулах, хяналтын үйл явцыг боловсронгуй болгох, угсрах үйл явцтай уялдуулах.

Үйлдвэрлэлийн мөчлөгийн үргэлжлэх хугацааг багасгах нь үйлдвэрлэлийг зохион байгуулах ноцтой зорилтуудын нэг юм эргэлтэнд нөлөөлдөг эргэлтийн хөрөнгө, хөдөлмөрийн зардлыг бууруулах, хадгалах зайг багасгах, тээврийн хэрэгцээ гэх мэт.

Даалгавар

1 Үйлдвэрлэлийн процессын дараалсан, зэрэгцээ, дараалсан параллель хэлбэрийн 50 хэсгээс бүрдэх боловсруулалтын мөчлөгийн үргэлжлэх хугацааг тодорхойлно. Эд анги боловсруулах нь таван үйлдлээс бүрдэх бөгөөд үргэлжлэх хугацаа нь тус тусдаа мин байна: t 1 =2; t 2 =3; t 3 =4; t 4 =1; t 5 = 3. Хоёрдахь үйлдлийг хоёр машин дээр, бусад тус бүрийг нэг машин дээр гүйцэтгэдэг. Шилжүүлгийн багцын хэмжээ 4 ширхэг байна.

2 Үйлдвэрлэлийн процесст дараалсан, зэрэгцээ, дараалсан параллель хэлбэртэй 50 хэсгээс бүрдэх боловсруулалтын мөчлөгийн үргэлжлэх хугацааг тодорхойлох. Эд анги боловсруулах нь дөрвөн үйлдлээс бүрдэх бөгөөд үргэлжлэх хугацаа нь тус тусдаа мин байна: t 1 =1; t 2 =4; t 3 =2; t 4 = 6. Дөрөв дэх үйлдлийг хоёр машин дээр, бусад тус бүрийг нэг машин дээр гүйцэтгэдэг. Шилжүүлгийн багцын хэмжээ 5 ширхэг байна.

3 200 ширхэг хэсгүүдийн багцыг үйлдвэрлэлийн явцад зэрэгцээ дараалсан хөдөлгөөнөөр боловсруулдаг. Эд анги боловсруулах нь зургаан үйлдлээс бүрдэх бөгөөд үргэлжлэх хугацаа нь тус тусдаа мин байна: t 1 =8; t 2 =3; t 3 =27; t 4 =6; t 5 =4; t 6 = 20. Гурав дахь үйлдлийг гурван машин дээр, зургаа дахь нь хоёр дээр, бусад үйлдэл тус бүрийг нэг машин дээр гүйцэтгэдэг. Үйлдвэрлэлийн хөдөлгөөний зэрэгцээ дараалсан хувилбарыг зэрэгцээгээр сольсон тохиолдолд хэсэг хэсгүүдийн боловсруулах мөчлөгийн хугацаа хэрхэн өөрчлөгдөхийг тодорхойл. Шилжүүлгийн багцын хэмжээ 20 ширхэг байна.

4 Үйлдвэрлэлийн явцад 300 ширхэг багцыг зэрэгцээ дараалсан хөдөлгөөнөөр боловсруулдаг. Эд анги боловсруулах нь долоон үйлдлээс бүрдэх бөгөөд үргэлжлэх хугацаа нь тус тусдаа мин байна: t 1 =4; t 2 =5; t 3 =7; t 4 =3; t 5 =4; t 6 =5; t 7 = 6. Үйлдэл бүрийг нэг машин дээр гүйцэтгэдэг. Дамжуулах багц - 30 ширхэг. Үйлдвэрлэлийн технологийг сайжруулсны үр дүнд гурав дахь ажиллагааны үргэлжлэх хугацаа 3 минут, долоо дахь нь 2 минутаар буурсан байна. Багцын мөчлөг хэрхэн өөрчлөгдөж байгааг тодорхойл.

5 5 хэсгээс бүрдсэн хоосон зайг өгдөг. Багцыг 4 үйлдлээр дамжуулдаг: эхнийх нь 10 минут, хоёр дахь нь 20 минут, гурав дахь нь 10 минут, дөрөв дэх нь 30 минут болно. Дараалсан хөдөлгөөнтэй аналитик ба график аргыг ашиглан мөчлөгийн үргэлжлэх хугацааг тодорхойлох.

6 Дөрвөн хэсгээс бүрдсэн хоосон зайг өгдөг. Багцыг 4 үйлдлээр дамжуулдаг: эхнийх нь 5 минут, хоёр дахь нь 10 минут, гурав дахь нь 5 минут, дөрөв дэх нь 15 минут байна. Зэрэгцээ хөдөлгөөнөөр мөчлөгийн үргэлжлэх хугацааг аналитик болон графикаар тодорхойлно.

7 5 хэсгээс бүрдсэн хоосон зайг өгдөг. Багцыг 4 үйлдлээр дамжуулдаг: эхнийх нь 10 минут, хоёр дахь нь 20 минут, гурав дахь нь 10 минут, дөрөв дэх нь 30 минут болно. Зэрэгцээ параллель хөдөлгөөн хийх аналитик болон график аргыг ашиглан мөчлөгийн үргэлжлэх хугацааг тодорхойл.

8 180 ширхэг багцыг боловсруулах технологийн мөчлөгийн үргэлжлэх хугацааг тодорхойлох. түүний хөдөлгөөний зэрэгцээ ба дараалсан хувилбаруудтай. Боловсруулах график үүсгэх. Шилжүүлгийн багцын хэмжээ - 30 ширхэг. Үйл ажиллагааны ажлын цагийн тоо, цагийн хэм хэмжээ дараах байдалтай байна.

Өмнөх хэд хэдэн хэсэгт тайлбарласан бүх зүйл нь дотоод үйл явцын цаг хугацааны асуудлын талаар нэмэлт судалгаа хийх, практик хэрэглээнд бага хэмжээгээр чиглэсэн байв. Энэ цоорхойг нөхөхийн тулд түүний хувьслын талаархи статистик мэдээлэлд үндэслэн үйл явцын зөв цагийг тооцоолох аргуудын нэгийг авч үзье.

Нэг хэмжээст процессыг авч үзье, түүний төлөв нь бодит хувьсагч x-ээр тодорхойлогддог. Процессийн динамикийн ажиглалтыг t одон орны цаг хугацаанд хийсэн гэж үзье, тэгвэл t = tk ба x = xk, k = 1, ..., n нь ажиглалтын тогтмол моментууд ба тухайн төлөв байдлын харгалзах утгууд юм. үйл явц. Математикийн олон янзын аргууд байдаг бөгөөд тэдгээр нь цэгүүдийг (t k, Xk) дайран өнгөрөх эсвэл тэдэнд "хамгийн сайн" байдлаар хандах муруй барих боломжийг олгодог. Үүссэн x = x (t) функцууд нь бидний оюун ухаанд авч үзэж буй үйл явц нь огторгуйн биетүүдийн механик хөдөлгөөнөөс хамаардаг гэсэн ойлголтыг төрүүлдэг тул түүний төлөв байдлыг одон орны t цаг хугацаанд илэрхийлдэг. Ийм дүгнэлтийг тооцож болно; хэрэв үйл явцын цаашдын явцыг урьдчилан таамаглахад байнгын хүндрэл гараагүй бол. Тэнгэрийн биетүүдийн механик хөдөлгөөнтэй шууд холбоогүй олон тооны янз бүрийн процессын хувьд ажиглалтын интервалаас гадуур x = x (t) функцийг ашиглан олж авсан онолын таамаглал нь дараагийн туршилтын өгөгдлүүдээс ихээхэн хазайж эхэлдэг. Онол ба туршилтын хоорондох зөрүүгийн шалтгааныг ихэвчлэн амжилтгүй сонгосон боловсруулалтын аргаар тайлбарлахыг оролддог боловч асуудлын мөн чанар үүнд байхгүй байж магадгүй юм.

Бидний сонирхдог аливаа үйл явц Орчлон ертөнцөд явагддаг. Тэр мэдээж тэнгэрийн биетүүдийн хөдөлгөөний нөлөөг "мэдэрдэг". Гэсэн хэдий ч энэ нөлөө нь "хатуу биш", тодорхойлогдоогүй байж магадгүй юм. Энэ нь ялангуяа одон орон судлалын цаг хугацааны тодорхой интервалд үйл явцын төлөв өөрчлөгдөөгүй байдгаас илэрч болно. Үүнтэй холбогдуулан өмнө нь гадаад ертөнцөөс тусгаарлагдсан хаалттай хоосон өрөөний жишээг эргэн санацгаая. Өрөөнд ганцхан амьд нисэхийг зөвшөөрье. Хэдэн өдрийн дотор байшингийн нислэгийн системийн төлөв байдал нь ялаа хөдөлгөөнөөс хамаарна, учир нь байшингийн төлөв байдалд өөрчлөлт орохыг хүлээх боломжгүй юм. Үүний зэрэгцээ, ялаа зан төлөв нь одон орон судлалын цаг хугацаатай нягт холбоотой байдаг гэж төсөөлөхөд хэцүү байдаг.

Ийм удаан ухарсны дараа үйл явцын зөв цагийг тооцоолох алгоритмын тайлбар руу шилжье.

Энэхүү алгоритм дээр орон нутгийн максимумыг тооцоолох нэгжийг цаг хугацааны байгалийн хэмжүүр болгон сонгосон болно. Нэмж дурдахад, процессын зогсонги байдлын боломжит хэсгүүдийг харгалзан үздэг бөгөөд үүнд дээр дурдсанчлан зохих цаг зогсдог. Бид хоёр муж улсын таних тэмдгийн талаар зөвхөн хэмжилтийн нарийвчлалын хүрээнд ярьж чаддаг тул ирээдүйд э -ийн эерэг тоог ашигладаг - хэмжлийн зөвшөөрөгдөх алдаа.

Тиймээс, алгоритмын оролтын өгөгдөл нь натурал тоо, эерэг тоо 8, массив (tk) ба (xk), k = 1, ..., n юм. Програмчлалын тав тухтай байдлыг хангах үүднээс алгоритмыг дараалсан гүйцэтгэсэн дөрвөн модулийн хэлбэр.

Модуль 1, n, e, tk), (xk) өгөгдлийг ашиглан ерөнхий тохиолдолд 7 = (7+ X = (X t) шинэ массивууд болон маш тодорхой дагалдах массив P = (?) -ийг бүрдүүлж, 1 = 1,. .., т, т<Сп. Основное назначение этого модуля -- выявление в массиве x k) последовательностей идентичных состояний процесса, сохранение первых элементов в таких последовательностях и удаление всех остальных и, наконец, уменьшение по определенному, правилу исходного интервала наблюдения от t до на сумму тех промежутков времени, в которых процесс протекает стационарно.

Модуль 1 нь дараахь процедурыг агуулна.

p: = 1, m: = 0, k: = 1.

P.p -д 1, 2, тодорхой анхны утгатай тоолуурыг танилцуулж байна.

P.p -д 3, 4, тоолуурын утга 1 -ээр нэмэгдэнэ.

K ^ n нөхцлийг шалгана уу. Хэрэв сэтгэл хангалуун байвал 6 -р зүйл рүү, эс бөгөөс 11 -р зүйл рүү очно уу.

X k --x k = e тэгш бус байдлыг шалгана уу. Хэрэв энэ нь байвал 7 -р зүйл рүү, эс бөгөөс 9 -р зүйл рүү очно уу.

7.tii = ti - (tkl - tk), i = k1, ..., p.

Энэ процедур нь хэрэв алдааны хүрээнд Xk ба Xk 1-ийн утгыг ялгах боломжгүй бол tk-ээс эхлэн бүх цаг tki-tk-аар буурна гэсэн үг юм.

p = p. 4 -р зүйл рүү буцах.

ТВ = т к; X v: = x k; p = p v = v + l., i.e. T, X, P массивуудын элементүүдийг бүрдүүлж, дараагийн v утгыг өгнө.

  • 10. (t k, ..., t n AND (Xk, - X n) -ийг n - k 1 + 1 хэмжээсийн анхны массив болгон аваад 2 -р зүйл рүү буцна уу.
  • 11. m, (T), (X,) ба (P,), энд i = l, ..., m гэж хэвлэ. Төгсгөл.

P дагалдах массивын элементүүдийн утгыг тайлбарлая. Өмнөх текстээс үзвэл pk -ийн утга нь шууд дагаж буй массивын элементүүдийн тоотой тэнцүү бөгөөд x pi + -ээс ялгаатай байна. .. +, +, e -ээс бага. Мөн pi + ... + pm = n гэдгийг анхаарна уу.

Жишээ 1. Өгөгдсөн: n = 20, (/ *) = (2, 4, 7, 10, 12, 13, 15, 17, 20, 22, 24, 25,

  • 27, 30, 32, 33, 34, 35, 36) ба (x,) = (4, 4, 6, 6, 6, 3, 2, 4, 3, 3, 3, 2, 2, 4, 5) , 5,
  • 5, 4, 3), зураг үзнэ үү. 9, а.

Модулийн 1 -ийн үр дүнд бид m = 11,

(G) = (2, 3, 4, 6, 8, 11, 1-2, 15, 17, 18, 19); (X,) = (4, 6, 3, 2, 4, 3, 2, 4,5,4,3)

ба (d.) = (2, 4, 1, 1, 1.3, 2, 1.3, 1, 1), зураг үзнэ үү. 9, б.

Модуль 2.Үүний оролтын өгөгдөл нь натурал тоо m, түүнчлэн массив (7+ (XL), = 1, ..., t. Энэ модулийн массив (TJ нь цаг мөчүүдийг харуулдаг [TM a], 1 = 1 м (мл

Жишээ 2. m, (T b) ба (X,] утгуудыг өмнөх жишээнээс авсан болно.2 -р модулийг ажиллуулсны дараа бид ml = 3, m2 = 8, (U,) = (3, 8, 17), (T *) = (3, 4, 6, 8, 11, 12, 15, 17), мөн Зураг 9, b -ийг үзнэ үү.

Модуль 3.Оруулах өгөгдөл мл, м2, (TM n), 1 = 1, ..., мл, (T *), / 2 = 1, ..., rn2.

Энэ модуль нь томъёогоор массив (m (-g)) бүтээх зориулалттай

Хаана ТВ 6 [TMp, TMn + i]

M хувьсагч нь x хувьсагчийн өөрчлөлтөөс үүссэн өөрийн цаг хугацаа юм. Түүний байгалийн хэмжүүр нь орон нутгийн хамгийн их нэгж юм.

Жишээ 3. T 2) -ийн анхны өгөгдөл нь мл, м2 ITM, жишээ 2 дахь утгатай ижил байна. Тохирох тооцооллын дараа бид N = (0; 0.2; 0.6; 1; 1,33; 1,78; 2).

Модуль 4.(Xk) массиваас m -ийн утга ба x -ийн элементүүдийн хоорондох харилцан хамаарлыг тогтоох замаар үр дүнгийн гарцыг хэлбэржүүлнэ.

Жишээ 4. 2 ба 3 -р жишээний өгөгдөл дээр үндэслэн дараах үр дүнг гаргав. 9, дотор:

t: 0; 0.2; 0.6; 1; 1.33; 1.44;

x: 6; 3; 2; 4; 3T 0 2;

Ийнхүү авч үзсэн алгоритм нь одон орны цаг хугацааны хуваарьт бүртгэгдсэн үйл явцын төлөв байдлын өөрчлөлтийн талаархи мэдээлэлд үндэслэн үйл явцын зохих цаг хугацааны талаархи ойлголтыг боловсруулах боломжийг олгодог. Жишээлбэл, та орон нутгийн минималын дарааллыг тооцоолох эсвэл орон нутгийн максимум ба минимумаас бүрдсэн холимог дарааллыг тооцоолоход үндэслэсэн бусад алгоритмыг ашиглаж болох нь тодорхой байна. Туршилтын өгөгдлийг боловсруулахдаа та өөр сонголтыг туршиж үзэх хэрэгтэй. Хэрэв ямар нэгэн шалтгаанаар туршигч тодорхой цаг хугацааны аль нэгийг сонгож массивуудыг (m4 ба (xk) нэгэн зэрэг хүлээн авсан бол дараагийн шатанд туршилтын цэгүүдийг (m *, x) ойролцоо гаргахын тулд математикийн зарим аргыг ашиглах ёстой. ) x = x (t) процессын ойролцоо ертөнцийн шугам

Санал болгож буй алгоритмыг ашиглах хэтийн төлөвийг үнэлэхэд зориулагдсан тооцоолох туршилтын талаар дурдах нь сонирхолтой юм. Туршилтын материал болгон голын жилийн урсацын талаархи мэдээллийг сонгосон. Вахш (Тажикистан) өмнөх 40 жил. Тухайн хугацаанд нарны идэвхжилийн хамгийн түгээмэл хэрэглэгддэг интеграл индекс болох Чонын тооны динамикийн талаар мэдээлэл авсан. Сүүлийнх нь нарны идэвхжилийн процессын зөв цагийг хөгжүүлэх үндэс суурь болсон юм. Шинэ цаг үед голын зардлын талаархи мэдээллийг өөрчилсөн. Вахш, дараа нь ажиглалтын явцад усны урсгалын онолын хамаарлыг нарны идэвхжил зохих цаг хугацааны функц болгон өгсөн болно. Үр дүнгийн хуваарийн онцлог шинж чанар нь хамгийн их ба хамгийн бага зардлыг бараг үе үе авч явдаг явдал юм. Гэсэн хэдий ч зардал тогтмол хэвээр байдаггүй.

(үе үе идэвхжсэн тохиолдолд, эсвэл интерактив үйлдлийн хувьд хэрэглэгчийн эхний гаралтын системээр хариу өгөх хүртэл ажил дуусах хүртэл цаг хугацаа эхэлдэг); эсвэл хамгийн их болгох шударга ёс(Процесс бүрийн тэргүүлэх чиглэл, ажлын ачааллын дагуу процесс тус бүрийн процессортой тэнцэх хугацаа, эсвэл ерөнхийдөө цаг хугацааны харгалзах цэгүүд). Практик дээр эдгээр зорилгууд нь ихэвчлэн зөрчилддөг (жишээлбэл, дамжуулалт ба хоцролттой харьцуулахад), тиймээс хуваарь гаргагч зохих солилцоог хийх болно. Хэрэглэгчийн хэрэгцээ, даалгавраас хамааран давуу талыг дээр дурдсан асуудлуудын аль нэгээр нь хэмждэг.

OS / 360 ба залгамжлагчид

Aix

AIX хувилбар 4 -т урсгал төлөвлөх бодлогын гурван боломжит утга байдаг:

  • Нэгдүгээрт, эхнийх нь гарч ирэв: Энэ бодлогыг агуулсан хуваарийг төлөвлөсний дараа үүнийг дуусгах хүртэл гүйцэтгэдэг, хэрэв хаагдаагүй бол процессорын хяналтаас сайн дураараа татгалзах эсвэл дамжуулах нь илүү чухал үүрэг гүйцэтгэдэг. Зөвхөн тогтмол давуу эрхтэй урсгалууд FIFO -ийн хуваарь гаргах бодлоготой байж болно.
  • Дугуй Робин: Энэ нь AIX хувилбар 3 схемийн хуваарьтай төстэй бөгөөд 10 мс цагийн зүсэлт дээр суурилсан дугуй хэлбэртэй байна. PP утас нь цаг хугацааны төгсгөлд хяналттай байх үед ижил тэргүүлэх чиглэлтэй утасны дарааллын сүүл рүү шилждэг. Зөвхөн тогтмол тэргүүлэх чиглэлтэй утаснууд Дугуй Робиныг төлөвлөх бодлоготой байж болно.
  • БУСАД: Энэ бодлогыг хэрэгжүүлэхдээ POSIX1003.4a -р тодорхойлсон болно. AIX Хувилбар 4-д энэ бодлогыг RR-ийн эквивалент гэж тодорхойлдог бөгөөд энэ нь тогтмол бус тэргүүлэх чиглэлд хамаардаг. Тасалдал бүрт ажиллаж байгаа утаснуудын тэргүүлэх ач холбогдлыг дахин тооцоолох нь давуу тал нь өөр урсгалаас өндөр болсон тул утас нь хяналтаа алдаж болзошгүй гэсэн үг юм. Энэ бол AIX хувилбар 3 -ийн зан төлөв юм.

Урсгалууд нь одоогоор олон асинхрон процессоос бүрдсэн програмуудын сонирхлыг татдаг. Эдгээр програмууд нь олон урсгалтай бүтэц рүү хөрвүүлэгдсэн тохиолдолд системд бага зэргийн ачаалал өгөх боломжтой.

AIX 5 нь дараахь хуваарийн бодлогыг хэрэгжүүлдэг: FIFO, pivot, fair pivot. FIFO -ийн бодлого нь FIFO, FIFO2, FIFO3 гэсэн гурван өөр хэрэгжилтээс бүрдэнэ. Дугуй тойргийн бодлогыг AIX дээр SCHED_RR гэж нэрлэдэг бөгөөд шударга тойргийг SCHED_OTHER гэж нэрлэдэг.

Линукс

Линукс 2.4

Colivas -ийн бүтээсэн Brain Fuck Scheduler (BFS) нь CFS -ийн өөр хувилбар юм.

FreeBSD

FreeBSD нь 0-255 хүртэлх тэргүүлэх чиглэлтэй шаталсан санал хүсэлтийн дарааллыг ашигладаг. 0-63 нь тасалдалд, цөмийн дээд хагаст 64-127, бодит цагийн хэрэглэгчийн урсгалд 128-159, хэрэглэгчийн урсгалд 160-223, идэвхгүй хэрэглэгчийн урсгалд 224-255 нөөцлөгдсөн байна. Түүнчлэн Линукс шиг идэвхтэй дарааллын тохиргоог ашигладаг боловч сул зогсолттой байдаг.

Өмнөх алгоритмын шилжих хувилбар нь үлдсэн хамгийн бага хугацаа юм. Энэхүү алгоритмын дагуу хуваарь гаргагч нь гүйцэтгэх явцыг хамгийн бага үлдсэн хугацаанд сонгох болно. Энэ тохиолдолд даалгаврыг гүйцэтгэх хугацааг урьдчилан мэдэх шаардлагатай. Шинэ даалгавар ирэхэд түүний гүйцэтгэх нийт хугацааг одоогийн ажлын үлдсэн хугацаатай харьцуулж үздэг. Хэрэв шинэ даалгаврыг гүйцэтгэх хугацаа богино байвал одоогийн үйл явцыг зогсоож, хяналтыг шинэ даалгаварт шилжүүлнэ. Энэхүү схем нь богино хугацааны хүсэлтийг хурдан шуурхай гүйцэтгэх боломжийг танд олгоно.

Гурван түвшний төлөвлөлт

Багцын систем нь зураг дээр үзүүлсэн шиг гурван түвшний төлөвлөлтийг хэрэгжүүлэх боломжийг танд олгоно. Шинэ даалгаврууд системд ороход тэдгээрийг эхлээд диск дээр хадгалагдсан дараалалд байрлуулдаг. Оролт нэвтрэх төлөвлөгч ажлыг сонгож системд шилжүүлнэ. Үлдсэн ажлууд нь дараалалд үлддэг.

Даалгавар системд ормогц түүнд тохирох процесс үүсч, процессор руу нэвтрэх тэмцэлд шууд орох болно. Гэсэн хэдий ч хэт олон процесс байгаа бөгөөд бүгд санах ойд багтахгүй бол зарим нь диск рүү хөтлөгдөх болно. Хуваарилалтын хоёр дахь түвшин нь санах ойд ямар процессыг хадгалах, аль диск дээр хадгалах боломжтой болохыг тодорхойлдог. Үүнийг хийсэн санах ойн хуваарьлагч .

Санах ойн хуваарьлагч нь дискэн дээрх процессуудыг үе үе харж, алийг нь санах ойд шилжүүлэхээ шийддэг. Төлөвлөгөөг ашигласан шалгууруудын дунд дараахь зүйлс орно.

1. Процессийг диск рүү угааж эсвэл дискнээс ачаалснаас хойш хэр удсан бэ?

2. Уг процессор процессорыг хэр удаан ашиглаж байна вэ?

3. Процессийн хэмжээ хэд вэ (жижиг процессууд саад болохгүй)?

4. Үйл явцын ач холбогдол нь юу вэ?

Хуваарилалтын гурав дахь түвшин нь бэлэн байдалд байгаа процессуудын процессор руу нэвтрэх үүрэгтэй. "Төлөвлөгч" -ийн тухай яриа гарах үед энэ нь ихэвчлэн байдаг процессор хуваарьлагч ... Энэхүү хуваарьлагч нь нөхцөл байдалд тохирсон аливаа алгоритмыг тасалдалгүй, тасалдалгүйгээр ашигладаг. Бид эдгээр алгоритмын заримыг аль хэдийн авч үзсэн бөгөөд бусадтай нь танилцах болно.

Интерактив системд төлөвлөлт хийх.

Циклийн төлөвлөлт.

Хамгийн эртний, хамгийн энгийн, хамгийн шударга, хамгийн түгээмэл хэрэглэгддэг алгоритмуудын нэг бол дугуй хэлбэрийн хуваарь гаргах алгоритм юм. Процесс бүрт тодорхой хугацааны процессор гэж нэрлэгддэг тодорхой хугацааны интервал өгдөг. Хэрэв цаг хугацааны төгсгөлд процесс үргэлжилсээр байвал түүнийг цуцалж, хяналтыг өөр процесс руу шилжүүлнэ. Мэдээжийн хэрэг, хэрэв процесс эрт хаагдаж эсвэл гарвал хяналтын шилжилт яг тэр мөчид тохиолддог. Дугуй цагийн хуваарийг хэрэгжүүлэх нь маш энгийн. Хуваарьлагч нь зөвхөн процессуудын жагсаалтыг бэлэн байлгах хэрэгтэй. Процесс цаг хугацааны хязгаарт хүрсэн тохиолдолд жагсаалтын төгсгөлд илгээгдэнэ.

Энэхүү алгоритмын цорын ганц сонирхолтой зүйл бол квант урт юм. Нэг процессоос нөгөө процесс руу шилжихэд тодорхой хугацаа шаардагддаг - регистр, санах ойн картыг хадгалах, ачаалах, хүснэгт, жагсаалтыг шинэчлэх, санах ойн кэшийг хадгалах, дахин ачаалах гэх мэт үр ашгийг өгөх шаардлагатай байдаг, гэхдээ хэт их квант нь богино хугацааны хариу үйлдэл хийхэд хүргэдэг. интерактив асуултууд. 2 0 -5 0 мс орчим квант утга нь ихэвчлэн боломжийн буулт болдог.

Тэргүүлэх төлөвлөлт.

Циклийн хуваарь гаргах алгоритм дээр бүх процесс тэнцүү гэсэн чухал таамаглал байдаг. Олон тооны хэрэглэгчтэй компьютерийн нөхцөлд энэ нь тийм биш байж магадгүй юм. Жишээлбэл, их сургуульд эхлээд декануудад, дараа нь профессор, нарийн бичгийн дарга, цэвэрлэгч, дараа нь оюутнуудад үйлчлэх ёстой. Ийм гадаад хүчин зүйлийг харгалзан үзэх шаардлагатай байгаа нь тэргүүлэх төлөвлөлтөд хүргэдэг. Үндсэн санаа нь энгийн: процесс бүрт тэргүүлэх ач холбогдол өгч, хяналтыг хамгийн өндөр ач холбогдол бүхий бэлэн болсон процесс руу шилжүүлдэг.

Хэд хэдэн дараалал.

Эхний тэргүүлэх хуваарь гаргагчдын нэг нь цаг хугацааны хуваарьтай нийцтэй системд (CTSS) хэрэгжсэн. CTSS системийн гол асуудал нь хэт удаан процесс шилжих явдал байсан, учир нь IBM 7094 компьютерийн санах ойд ганцхан процесс байдаг. Шилжүүлэгч бүр одоогийн процессыг диск рүү хаяхыг хэлнэ

мөн дискнээс шинэ процесс унших. CTSS -ийн хөгжүүлэгчид процессороор хязгаарлагддаг процессууд нь жижиг зүсмэлүүдийг өгөхөөс илүү их цагийг хуваарилдаг бол үр ашиг өндөр байх болно гэдгийг хурдан ойлгосон. Энэ нь нэг талаас санах ойгоос диск рүү своп хийх тоог бууруулж, нөгөө талаас хариу өгөх хугацаа муудахад хүргэх болно.

Үүний үр дүнд тэргүүлэх зэрэглэлийн шийдлийг боловсруулсан болно. Анхаарал тавьдаг ангийн үйл явцад нэг квант, дараагийн ангийн үйл явцад хоёр квант, дараагийнх нь дөрвөн квант гэх мэт хуваарилагдсан болно. Процесс түүнд зориулагдсан бүх цаг дууссаны дараа энэ нь руу шилжсэн. доод анги.

Жишээлбэл, 100 квантын тооцоог хийх шаардлагатай процессыг авч үзье. Нэгдүгээрт, түүнд нэг квант өгөөд дараа нь диск рүү шахна. Дараагийн удаа тэрээр 2 квант, дараа нь 4, 8,16, 32, 64 авах болно, гэхдээ тэр 64 -ээс ердөө 37 -г ашигладаг. Энэ тохиолдолд түүнд 100 -ийн оронд зөвхөн 7 шилжүүлэг (анхны татан авалтыг оруулаад) хэрэгтэй болно. мөчлөгийн алгоритмыг ашиглан шаардлагатай болно. Нэмж дурдахад, та тэргүүлэх дараалалд орох тусам процесс бага багаар эхэлж, процессорыг богино процессуудад үлдээх болно.

"Хамгийн богино процесс бол дараагийнх"

Хамгийн богино даалгавар Эхний алгоритм нь багц боловсруулах систем дэх эргэлтийн дундаж хугацааг багасгадаг тул бид үүнийг интерактив системд ашиглахыг хүсч байна. Тодорхой хэмжээгээр энэ нь боломжтой. Интерактив процессууд нь ихэвчлэн "тушаалыг хүлээх, тушаалыг гүйцэтгэх, тушаалыг хүлээх, тушаалыг гүйцэтгэх ..." гэсэн хэв маягийг дагаж мөрддөг. хамгийн богино ажлыг эхлээд эхлүүлэх цаг. Ганц асуудал бол

хүлээгдэж буй үйл явцын аль нь хамгийн богино болохыг олж мэдэх.

Аргын нэг нь үйл явцын өмнөх зан төлөвт үндэслэн процессын үргэлжлэх хугацааг тооцоолоход суурилдаг. Энэ нь хамгийн богино тооцоолсон хугацаанаас эхэлнэ. Тушаалын гүйцэтгэлийн тооцоолсон хугацаа нь T 0, дараагийн хөөргөх хугацаа нь T 1 гэж үзье. Та эдгээр хугацааны aT 0 + (1 - a) T 1 -ийн жигнэсэн нийлбэрийг авч цаг хугацааны тооцоог сайжруулах боломжтой. Тохирох утгыг сонгосноор бид тооцоолох алгоритмыг өмнөх хөөргөлтүүдийг хурдан мартах эсвэл эсрэгээр нь удаан хугацаанд санаж чадна. A = 1/2 гэж авбал бид хэд хэдэн тооцооллыг авна.

T 0, T 0/2 + T 1/2, T 0/4 + T 1/4 + T 2/2, T 0/8 + T 1/8 + T 2/4 + T 3/2.

Гурван удаа эхлүүлсний дараа тооцооллын T 0 -ийн жин 1/8 болж буурна.

Дараагийн үнэ цэнийг өмнөх үнэ цэнийн жигнэсэн дундаж болон өмнөх тооцоогоор цувралаар тооцох аргыг ихэвчлэн хөгшрөлт гэж нэрлэдэг. Энэ аргыг өмнөх утгуудаас тооцоолох шаардлагатай олон тохиолдолд ашиглах боломжтой. Хөгшрөлтийг ойлгох хамгийн хялбар арга бол a = 1/2 байна. Алхам бүрт танд зөвхөн хэрэгтэй

одоогийн үнэлгээнд шинэ утга нэмж, нийлбэрийг хоёр дахин бууруулна (1 битийг баруун тийш шилжүүлснээр).

Баталгаатай төлөвлөлт.

Цагийн хуваарь гаргах үндсэн зарчим нь хэрэглэгчдэд бодит амлалт өгч, дараа нь түүнийг хэрэгжүүлэх явдал юм. Хийхэд хялбар, биелүүлэхэд хялбар нэг амлалт энд байна: хэрэв n хэрэглэгч тантай нэг процессор хуваалцвал танд 1 / n процессорын хүч өгнө.

Мөн нэг хэрэглэгчтэй, n процессортой системд тус бүр 1 / n процессорын циклийг авах болно.

Энэхүү амлалтаа биелүүлэхийн тулд процесс бүрийг үүсгэх үеэс эхлэн процессууд хоорондын CPU -ийн хуваарилалтыг систем хянах ёстой. Дараа нь систем нь боловсруулснаас хойших хугацааг n болгон хуваасан процесс гэх мэт процессийн эрхтэй нөөцийн хэмжээг тооцоолно. Одоо та процесст өгсөн хугацаа, түүний эрхтэй байх үеийн харьцааг тооцоолж болно. Үр дүнгийн 0.5 гэдэг нь тухайн процесст хуваарилагдах ёстой зүйлийн тал хувийг л эзэлж байгаа бөгөөд 2.0 нь тухайн процессоос хоёр дахин их мөнгө авсан гэсэн үг юм. Дараа нь процессыг хамгийн бага харьцаагаар эхлүүлнэ

энэ нь хамгийн ойрын хөршөөсөө том болохгүй.

Сугалааны төлөвлөлт.

Энэхүү алгоритм нь сугалааны тасалбарыг янз бүрийн эх сурвалж, түүний дотор процессор руу нэвтрэх процессд тараахад үндэслэдэг. Төлөвлөгч шийдвэр гаргах шаардлагатай бол сугалааны тасалбарыг санамсаргүй байдлаар сонгож, эзэмшигч нь нөөцөд нэвтрэх эрхтэй болно. CPU -ийн хандалтын хувьд "сугалаа" нь секундэд 50 удаа тохиолдож болох бөгөөд ялагч нь 20ms CPU -ийн цаг авах болно.

Ялах магадлалыг нэмэгдүүлэхийн тулд илүү чухал процессуудад нэмэлт тасалбар өгч болно. Хэрэв зөвхөн 100 тасалбар, тэдгээрийн 20 нь нэг процесс дээр явж байвал процессорын ажлын 20% -ийг авах болно. Тэргүүлэх зорилтот төлөвлөгчөөс ялгаатай нь 40 -ийн тэргүүлэх ач холбогдол гэж юу болохыг тооцоолоход хэцүү байдаг, сугалааны төлөвлөлтөд бүх зүйл ойлгомжтой байдаг. Процесс бүр өөрийн авсан тасалбарын хувьтай тэнцэх нөөцийн хувийг авах болно.

Сугалааны төлөвлөлт нь хэд хэдэн сонирхолтой шинж чанартай байдаг. Жишээлбэл, хэрэв процесс хийх явцад хэд хэдэн тасалбар авсан бол дараагийн сугалаанд түүний ялах магадлал тасалбарын тоотой пропорциональ байна.

Харилцан үйлчлэх үйл явц нь шаардлагатай бол тасалбар солилцох боломжтой. Тиймээс, хэрэв үйлчлүүлэгчийн процесс серверийн процесс руу мессеж илгээж, дараа нь блоклосон бол серверээ эхлүүлэх боломжийг нэмэгдүүлэхийн тулд бүх тасалбараа сервер процесс руу дамжуулж болно. Серверийн процесс дуусахад бүх тасалбарыг буцааж өгөх боломжтой.

Шударга төлөвлөлт.

Одоогийн байдлаар бид хэн дарга байхаас үл хамааран бүх үйл явцыг хянадаг гэж таамаглаж байна. Тиймээс, хэрэв 1 -р хэрэглэгч 9 процесс, 2 -р хэрэглэгч 1 процесс үүсгэвэл дугуй хуваарь эсвэл ижил ач холбогдол өгөх тохиолдолд 1 -р хэрэглэгч процессорын 90% -ийг, 2 -р хэрэглэгч зөвхөн 10 -ийг авах болно.

Ийм нөхцөл байдлаас зайлсхийхийн тулд зарим системүүд хуваарь гаргахаасаа өмнө процесс эзэмшигчид анхаарлаа хандуулдаг. Энэ загварт хэрэглэгч бүр процессорын тодорхой хувийг авдаг бөгөөд хуваарьлагч энэ баримтын дагуу үйл явцыг сонгодог. Хэрэв бидний жишээн дээр хэрэглэгчид тус бүр байсан

Процессорын 50% -ийг амласан бол тэд процессийн тооноос үл хамааран процессорын 50% -ийг авах болно.

Бодит цагийн системд хуваарь гаргах.

Бодит цагийн системд цаг хугацаа чухал үүрэг гүйцэтгэдэг. Ихэнхдээ нэг буюу хэд хэдэн гадны биет төхөөрөмжүүд оролтын дохио үүсгэдэг бөгөөд компьютер нь тодорхой хугацааны дотор тэдэнд зохих ёсоор хариу өгөх ёстой.

Бодит цагийн системийг дараахь байдлаар хуваадаг бодит цагийн хатуу системүүд , энэ нь даалгавар бүрийн хувьд эцсийн хугацаа байдаг гэсэн үг юм (тэдгээрийг биелүүлэх ёстой), ба бодит цагийн уян хатан системүүд Цагийн хуваарийг зөрчих нь хүсээгүй боловч хүлээн зөвшөөрөгдөхүйц зүйл юм. Аль ч тохиолдолд програм нь хэд хэдэн процессд хуваагддаг бөгөөд тус бүрийг урьдчилан таамаглах боломжтой байдаг. Эдгээр үйл явц нь ихэвчлэн богино бөгөөд ажлаа нэг секундын дотор дуусгадаг. Гадны дохио гарч ирэх үед хуваарь биелсэн эсэхийг төлөвлөгч өөрөө хариуцах ёстой.

Системийн хариу үйлдэл үзүүлэх ёстой гадаад үйл явдлыг хувааж болно үе үе(тогтмол давтамжтайгаар тохиолддог) ба үе үе биш(урьдчилан таамаглахын аргагүй үүссэн). Системийг боловсруулах ёстой үйл явдлын үе үе хэд хэдэн урсгал байж болно. Үйл явдал тус бүрийг боловсруулахад зарцуулсан хугацаанаас хамааран систем бүх үйл явдлыг цаг тухайд нь боловсруулах боломжгүй байж магадгүй юм.


Үүнтэй төстэй мэдээлэл.


Ихэнхдээ хөгжүүлэгчид, ялангуяа туршлагагүй хүмүүс даалгавраа биелүүлэх эцсийн хугацааг тогтоохыг хүсэхэд төөрдөг. Гэсэн хэдий ч төлөвлөх чадвар нь зөвхөн ажилд төдийгүй амьдралд тусалдаг маш хэрэгтэй бөгөөд шаардлагатай ур чадвар юм. Төслүүдийг цаг хугацаанд нь хэрхэн зөв төлөвлөж, хүргэх талаар хэрхэн сурах талаар бид мэргэжилтнүүдээс асуухаар ​​шийдлээ.

Өгүүллийн төгсгөлд товч дүгнэлтийг олж болно.

Хөгжүүлэгч нь даалгавар гүйцэтгэх хугацааг тооцоолохын тулд ихэвчлэн хэд хэдэн параметрийг харгалзан үзэх шаардлагатай байдаг.

  1. Ийм даалгавар гүйцэтгэх, энэ технологийн стек дээр ажиллаж байсан туршлагатай. Хэрэв та цоо шинэ зүйл хийх шаардлагатай бол үнэлгээнд онцгой анхаарах хэрэгтэй.
  2. Энэ үйлчлүүлэгчтэй ажиллах туршлага. Үйлчлүүлэгчийг таньж мэдсэнээр та зарим нэмэлт шаардлага, засварын хэмжээг урьдчилан таамаглах боломжтой.
  3. Ажиллах кодын чанар. Энэ бол хамгийн нөлөө бүхий хүчин зүйл бөгөөд үүнээс болж бүх зүйл маш хойшлогдож, ерөнхийдөө төлөвлөгөөний дагуу болохгүй байна. Хэрэв төсөлд туршилт байгаа бол хаа сайгүй зөвхөн тодорхой хамаарал байдаг бөгөөд функц нь маш сайн тусгаарлагдсан байдаг, бүх зүйл тийм ч аймаар биш юм. Хэрэв та хуучин кодтой тест хийхгүйгээр эсвэл шууд хамааралгүй хэт ачаалалтай кодтой харьцах нь хамаагүй муу болно. Ид шидийн функц (кодоос дуудлагын эцсийн стекийг харахад хэцүү үед) болон кодын давхардал (аливаа функцийг өөрчлөхийн тулд хэд хэдэн бие даасан хэсгийг засах шаардлагатай үед) гэх мэт зүйлс нь асуудлыг улам хүндрүүлж болзошгүй юм.

Ажлын цагийг хэрхэн зөв үнэлэх талаар сурахын тулд та байнга дасгал хийх хэрэгтэй. Ажлынхаа эхэнд би яг үүнийг хийсэн: Би хэн ч шаардлагагүй байсан ч гэсэн ирж буй аливаа ажлыг дуусгах цаг хугацааг тооцоолсон бөгөөд дараа нь би өөрийнхөө тооцоололд хэр үнэн зөв орж байгааг ажиглав. Даалгаврыг биелүүлэх явцад аль үйлдэл илүү их цаг хугацаа шаардагддаг болохыг би тэмдэглэв. Хэрэв ямар нэг зүйл нэр томъёог ихээхэн нэмэгдүүлсэн бол тэр энэ мөчийг санаж, дараагийн үнэлгээнд үүнийг анхаарч үзсэн болно.

Зөвхөн ажилд шаардагдах хугацааг бодитой үнэлэхийн тулд давагдашгүй хүчин зүйлийн нөхцөл байдлыг хангахын тулд бага хэмжээний маржин нэмэх шаардлагатай. Энэ нь ихэвчлэн үндсэн даалгаврыг гүйцэтгэсэн хувь гэж тооцогддог боловч энэ нь хүн бүрт өөр өөр байдаг: хэн нэгэн нь 20%-ийг, хэн нэгэн нь 10%, хэн нэгэн нь 50%-ийг нэмдэг.

Мөн эцсийн хугацааг зөрчсөн бүрийн дараа хугацаа алдсан шалтгааныг шинжлэх нь зүйтэй. Хэрэв танд хангалттай мэргэшил байхгүй бол сул тал дээрээ ажиллах хэрэгтэй. Хэрэв асуудал нь зохион байгуулалттай байсан бол - хэвийн ажилд юу саад болж байгааг ойлгох.

Доод түвшинг сурталчлах

, "Jet Infosystems" шинэлэг технологи, шийдлийн төвийн техникийн захирал

Олон тооны нийтлэлүүд нь ажлын үргэлжлэх хугацаа, бие даасан даалгавруудыг багтаасан төслийн нарийн төвөгтэй байдлыг үнэлэх аргуудад зориулагдсан болно. Гэсэн хэдий ч өнөөг хүртэл энэ нь төслийн багийн дотор болон үйлчлүүлэгчтэй харилцахдаа зөрчилдөөн үүсгэдэг.

Үнэлгээний гол туслах нь туршлага юм. Шинэ даалгаврыг аль хэдийн дууссан ажлуудтай уялдуулахыг хичээ. Хэрэв та тайлан гаргаж байгаа бол үүнтэй төстэй тайлан өмнө нь хэр удаан байсныг хараарай. Хэрэв та ямар нэгэн шинэ зүйл хийж байгаа бол түүнийг мэддэг хэсгүүдэд хувааж, үнэлэхийг хичээгээрэй. Хэрэв даалгавар цоо шинэ бол судлахад хэсэг хугацаа зарцуулаарай (бүр илүү сайн - энэ ажлыг даалгавар өгсөн хүнтэй зохицуулаарай).

Дагалдах үе шатуудад анхаарлаа хандуулаарай - хэрэв та үйлчилгээ хөгжүүлэх шаардлагатай бол нэгж туршилтыг (магадгүй зөвхөн нэгж биш) үнэлгээнд оруулах ёстой бөгөөд туршилтын өгөгдлийг бэлтгэхэд тодорхой хугацаа шаардагдана. Бусад үйлчилгээнүүдтэй нэгдэх талаар бодож үзээрэй. Өөртөө болон шалгагчдын тусламжтайгаар олж авсан алдаануудаа засахын тулд цаг гаргаарай. "Үл үзэгдэгч" ажлуудад маш их цаг үрэх боломжтой. Жишээлбэл, хөгжүүлэлтийн үнэлгээ байдаг бөгөөд туршилтын үнэлгээ байдаг боловч олдворыг туршилтанд шилжүүлэх нь индэр байрлуулахтай холбоотой байж болно. Тиймээс юу ч алдахгүйн тулд бүх үйл явцыг сэтгэн бодох нь чухал юм.

Хөдөлмөрийн эрч хүчийг тодорхойлсны дараа шинэ ажлын байрыг календарт оруулах шаардлагатай бөгөөд үүнтэй зэрэгцэн явагдаж байгаа бусад ажил, үйл ажиллагааны талаар мартаж болохгүй.

Төлөвлөгөө нь ашиггүй, гэхдээ төлөвлөх нь үнэлж баршгүй гэдгийг мартаж болохгүй. Төлөвлөгөөг цаг тухайд нь өөрчилж, хүн бүрийг сонирхож, цаг тухайд нь өргөжүүлж сур, ингэснээр хугацаа алдсан нь хэнд ч гайхах зүйл биш юм.

Доод түвшинг сурталчлах

Богино хэлбэрээр хариулах боломжгүй асуулт. Хэрэв энэ нь энгийн байсан бол эцсийн хугацаа алдахад асуудал үүсэхгүй.

Хөгжүүлэлтийн хугацааг илүү урьдчилан таамаглахын тулд эхлээд програмистууд байнга алдаа гаргадаг шалтгааныг ойлгох хэрэгтэй.

Эхний шалтгаан нь програмистын хийдэг ихэнх даалгавар нь нэг талаараа өвөрмөц байдаг. Энэ нь програмист ийм даалгаврыг анх удаа хийх магадлалтай юм. Тэр ажил хэр удаан үргэлжлэхийг сайн мэдэхгүй байна. Хэрэв энэ бол туршлагатай програмист бөгөөд үүнтэй ижил төстэй даалгавар гүйцэтгэх шаардлагатай байсан бол түүний үнэлгээ бодит байдалд ойртох болно.

Энгийн аналогийг ашиглахын тулд хэрэв та хэзээ ч шуудуу ухаж байгаагүй бол 30 см өргөн, 60 см гүн, 20 метр урт шуудуу ухахад яг хэдэн цаг шаардагдахыг хэлж чадахгүй. Хэрэв та өмнө нь ухаж байсан бол ажлын цагийг тооцоолохдоо тухайн ажлын үргэлжлэх хугацаатай ойролцоо байх болно.

Хоёрдахь шалтгаан нь програмистууд угаасаа өөдрөг үзэлтэй байдаг. Өөрөөр хэлбэл, даалгаврыг авч үзэх, хэрэгжүүлэх хувилбарыг сонгох, сайжруулалтыг үнэлэхийн тулд хөгжүүлэгч бүх зүйл хүссэнээрээ ажиллах болно гэж найдаж байна. Тэрээр замдаа тулгарах бэрхшээлийн талаар огт боддоггүй. Ихэнхдээ тэр тэднийг урьдчилан харж чаддаггүй. Жишээлбэл, програмист гуравдагч талын нээлттэй эхийн програм хангамжийн санг ашиглан хийж чадах ажил байдаг. Үнэлгээний шатанд тэр үүнийг интернетээс олж, тайлбарыг нь уншсан нь түүнд тохирсон байв. Тэр энэ номын санг ашиглахын тулд хийх ажлынхаа цар хүрээг зөв тооцоолсон. Гэхдээ энэ номын сан дахь түүний програм хангамжийн бүтээгдэхүүний орчинд алдаа гарна гэж тэр огт төсөөлөөгүй.

Хөгжүүлэгч нь номын сангийн ашиглалтыг код дээрээ оруулахаас гадна номын сан дахь алдааг засах шаардлагатай болно. Ихэнхдээ хөгжүүлэгч алдаагаа засах цаг өгдөггүй. Статистик мэдээллээс харахад алдааг шалгах, засах нь код бичихэд зарцуулсан цаг хугацааны 50 орчим хувийг эзэлдэг. Энэ зураг нь хөгжүүлэгчийн мэргэшил, хүрээлэн буй орчин, ашигласан хөгжлийн практик зэргээс хамаарна (жишээлбэл, нэгжийн туршилт нь энэ хугацааг эрс багасгаж, хөгжлийн даалгаврын нийт хугацаа / хөдөлмөрийн эрч хүч бага байх болно).

Хэрэв бид экскаватортой ижил төстэй зүйл рүү буцвал экскаватор хүрз хагарна гэж бодоогүй бөгөөд шинэ хайчлах ажилд хоёр цаг зарцуулах шаардлагатай болно.

Гурав дахь шалтгаан нь урьдчилан тооцоолоогүй шаардлага юм. Хэрэглэгчид програм хангамжийн хөгжүүлэлтийг харьцуулах дуртай материалын үйлдвэрлэлийн аль ч салбарт ийм шинэ шаардлага тавигддаггүй. 20 -оос 19 метрийн гүнийг ухаж, суваг шуудуугаар явахгүй, мөрний урт нь 97 сантиметр могой шиг байх ёстой гэсэн хүслийг захиалагчаас сонссон экскаватор хэрхэн өнгөрч байгааг төсөөлөөд үз дээ.

Энэ бүхэнтэй хэрхэн тэмцэх, ийм тодорхойгүй нөхцөлд хэрхэн амьдрах вэ? Тодорхой бус байдлыг багасгаж, цаг хугацааны нөөц бүрдүүлэх.

Хүлээлтээ бодит байдалд ойртуулах хамгийн хялбар арга бол "Pi" хэмээх хошин дүрмийг ашиглах явдал юм. Хөгжүүлэгчээс тооцоолол авсны дараа (цаг хугацаа эсвэл хөдөлмөрийн эрч хүчний хувьд) үүнийг Pi тоогоор үржүүлэх хэрэгтэй (= 3.14159). Илүү туршлагатай хөгжүүлэгч тооцоолол хийх тусам энэ коэффициент бага байх болно.

Анхны асуудлыг 4 цагаас илүүгүй хэмжээтэй жижиг асуудал болгон задлах дадлага хийх шаардлагатай байна. Илүү нарийвчлалтай задлах тусам тооцоолол нь хөдөлмөрийн бодит оролт / хугацаатай ойролцоо байх магадлал өндөр болно.
Хэрэв та нөөцийн хуваарилалт руу буцаж очвол энэ хугацааг төслийн төгсгөлд хуваарилах ёстой. Нөөц бүрдүүлж, үүрэг болгонд оруулах нь буруу практик юм. Паркинсоны "Ажил түүнд зориулагдсан бүх цагийг дүүргэдэг" хуулийг чанд мөрддөг.

Хэрэв та богино "нийт" -ийг нэгтгэн дүгнэвэл ажлын цагийг зөв тодорхойлохын тулд дараахь үйлдлүүд ашигтай байх болно.

  • ажлын задралыг гүйцэтгэх, даалгаврыг аль болох нарийвчилсан алхам болгон хуваах;
  • прототип хийх;
  • урьд өмнө тооцоолоогүй шаардлагын хэрэгжилтийг хязгаарлах. Энэ нь тэдгээрийг хийх ёсгүй гэсэн үг биш боловч эдгээр шаардлагыг тодруулж, тэдгээрийг хэрэгжүүлэх хугацаа, зардлыг өөрчлөх талаар захиалагчтай тохиролцохыг зөвлөж байна;
  • шийдлийг тогтворжуулах хугацааг харгалзан үзэх;
  • кодын чанарыг сайжруулах практикийг ашиглах, жишээлбэл, нэгжийн тест бичих;
  • ерөнхий нөөцийг бий болгох.

Хэрэв баримт нь таны тооцоолсноос 30%-иас давсан бол энэ нь маш сайн үр дүн гэдгийг санаарай.

Доод түвшинг сурталчлах

Хамгийн нарийвчлалтай үнэлэхийн тулд танд бодит хөгжлийн туршлага, тодорхой чиглэлээр туршлага хэрэгтэй. Гэхдээ ажлыг захиалагчид хүлээлгэн өгөхдөө төлөвлөлт, алдаа гаргахаас зайлсхийх ерөнхий дүрмүүд байдаг. Би эдгээр дүрмийг дараах байдлаар тайлбарлах болно.

Юуны өмнө та даалгаврыг ойлгох хэрэгтэй. Энэ нь ойлгомжтой мэт санагдаж байгаа бөгөөд цаг хугацаатай шууд холбоогүй ч үнэн хэрэгтээ энэ бол гол цэг юм. Ноцтой томоохон төслүүдэд ч гэсэн бүтэлгүйтэх, хугацаагаа хойшлуулах гол хүчин зүйлүүдийн нэг бол шаардлагыг тодорхойлох асуудал юм. Шинэхэн хөгжүүлэгчдийн хувьд харамсалтай нь энэ бол ноцтой асуудал юм - тэд TOR -ийг уншаагүй эсвэл маш сайн сонгож уншдаггүй, ойлгодоггүй (тэд арван онооноос тавыг нь цээжилж, бөглөсөн бөгөөд үр дүнг оруулахдаа үлдсэнийг нь санаж байсан). Буруу ойлгосон даалгаврыг цаг тухайд нь зөв хэрэгжүүлэх боломжгүй нь тодорхой байна.

Дараа нь - хөгжлийн цаг хугацааг өөрөө тооцоол. Програмчлалын онцлог нь яг ижил үүрэг даалгавар байдаггүй явдал юм. Энэ нь бидний ажлыг илүү сонирхолтой болгодог боловч цаг хугацаа нь илүү хэцүү байдаг. Задаргаа энд сайн ажилладаг, өөрөөр хэлбэл. нарийн төвөгтэй, өвөрмөц ажлыг жижиг, танил дэд ажлуудын дараалалд хуваах. Тэд тус бүрийг хэдэн цагийн дотор хангалттай тооцоолж болно. Бид дэд даалгаврын тооцоог нэмж, бүх асуудлын үнэлгээг авдаг.

Ерөнхийдөө энэ тооцоонд зөвхөн шууд кодлох зардлыг багтаасан болно. Энэ бол хөгжлийн хамгийн чухал хэсэг нь эргэлзээгүй, гэхдээ цорын ганц (гэхдээ ихэнхдээ тийм ч том биш) зүйлээс хол байна. Даалгаврыг бүрэн хэрэгжүүлэхэд техникийн тодорхойлолтыг уншиж, тодруулах, хамт ажиллагсад эсвэл үйлчлүүлэгчидтэй уулзах, дибаг хийх, турших, баримт бичгийг бүрдүүлэх, үр дүнг хүлээлгэн өгөх (үйлчлүүлэгчид үзүүлэх, түүний сэтгэгдлийг үндэслэн өөрчлөх боломжтой) орно. Эдгээр үйлдлүүдэд хэр их цаг хугацаа шаардагдахыг зөвхөн туршлага л хэлэх болно. Нэгдүгээрт, тооцоолохдоо тэдгээрийг анхаарч үзэхээ мартуузай, хамгийн сайн туршлагатай хамт олноос цаг хугацааны ойролцоо тооцоог асууж болно.

Тиймээс, бид кодчилсон хөдөлмөрийн зардлын тооцоог авч, нэмэлт ажлын зардлын тооцоог нэмж, даалгаврыг дуусгах цаг хугацааны хүссэн тооцооллыг авдаг. Гэхдээ энэ бүгд биш! Даалгаврыг дуусгахаар төлөвлөсөн огноог зааж өгөх шаардлагатай. Хөдөлмөрийн зардлыг (хэдэн цагаар) 8 цаг болгон хувааж, одоогийн огноонд нэмэх нь алдаа болно. Бодит амьдрал дээр хөгжүүлэгч хэзээ ч (сайн, бараг хэзээ ч) нэг тодорхой ажил дээр 100% ажилладаггүй. Та бусад ажилд цаг зарцуулах нь гарцаагүй - чухал боловч үндсэн ажилтай шууд холбоогүй болно. Жишээлбэл, хамт ажиллагсдад туслах, сургалт явуулах, тайлан бичих гэх мэт. Ихэвчлэн төлөвлөхдөө ажлын цагийн 60-70% -ийг одоогийн төсөл дээр шууд зарцуулдаг гэж үздэг. Нэмж дурдахад та даалгавар дээр тасралтгүй ажиллахаас сэргийлж болзошгүй саатлыг анхаарч үзэх хэрэгтэй. Жишээлбэл, хэрэв та бусад хүмүүстэй (хамт ажиллагсад, үйлчлүүлэгчид) харилцах шаардлагатай бол тэдний ажил эрхлэлт, ажлын хуваарь гэх мэтийг анхаарч үзээрэй.

Миний бодлоор эцсийн хугацааг тооцоолох, биелүүлэхэд бэрхшээл гарахаас зайлсхийхэд туслах үндсэн дүрмүүд энд байна. Нэмж дурдахад гол зүйл бол даалгаврыг хэрэгжүүлэх, үнэлгээ хийх чиглэлээр өөрсдийн туршлага хуримтлуулах явдал юм. Жишээлбэл, даалгавраа биелүүлсний дараа анхны тооцоогоо бодит цаг хугацаатай харьцуулж, ирээдүйнхээ талаар дүгнэлт хийх нь маш тустай. Мэдээжийн хэрэг, хэн нэгний туршлагыг судлах нь зүйтэй юм. Би С.Макконнелийн "Програм хангамжийн төсөл хэр үнэтэй вэ", С.Архипенковын "Програм хангамжийн төслийн менежментийн тухай лекцүүд" гэсэн номын сэдвээр зөвлөж байна.

Доод түвшинг сурталчлах

Эцсийн хугацааг үнэлэх, төлөвлөхдөө дараахь зүйлийг хийх шаардлагатай байна.

  1. Даалгаврыг ийм жижиг хэсэг болгон хөгжүүлэхэд хэр удаан хугацаа шаардагдах талаар тодорхой ойлголттой болохын тулд жижиг функциональ хэсгүүдэд хуваана.
  2. Задрахтай зэрэгцэн асуудлын мэдэгдэлд тайлбарлаагүй функциональ байдлын талаар нэмэлт асуулт гарч ирэх нь гарцаагүй. Энэ нь ажлын цар хүрээ, улмаар цаг хугацаатай шууд холбоотой тул ийм асуултанд хариулт авах шаардлагатай байна.
  3. Эцсийн үнэлгээнд эрсдэлийн тодорхой хувийг нэмнэ үү. Үүнийг эмпирик байдлаар тодорхойлдог. Та жишээ нь 10-15%-ийн эрсдэлээс эхэлж болно.
  4. Програмист хүн өдөрт хэдэн цаг хуваарилах хүсэлтэй байгаагаа ойлгоорой.
  5. Бид эцсийн тооцоог өдөрт хуваарилсан хэдэн цагийн хувиар хувааж, хэрэгжүүлэхэд шаардлагатай хоногийн тоог авдаг.
  6. Бид хуанли болон дуусгахын тулд шаардлагатай хэдэн өдөрт анхаарлаа хандуулдаг. Амралтын өдрүүд болон бусад өдрүүдэд програмист даалгавраа биелүүлж чадахгүй байх, мөн ажил эхлэх огноог харгалзан үздэг (хөгжүүлэгч тухайн өдөр ажиллахад үргэлж бэлэн байдаггүй). Тиймээс бид ажлын эхлэх, дуусах огноог олж авдаг.

Доод түвшинг сурталчлах

Манай компанид ажлын төлөвлөлт үргэлж хэд хэдэн үе шаттайгаар явагддаг. Бизнесийн хувьд бид тухайн жилийнхээ 5-6 стратегийн зорилтыг тодорхойлдог. Эдгээр нь параметрийг тодорхой хувиар нэмэгдүүлэхийн тулд өндөр түвшний даалгаварууд юм. Цаашилбал, компанийн янз бүрийн хэлтэсүүд нь мэдээллийн технологийн бүх багт бизнесийн даалгавар өгдөг. Эдгээр ажлуудыг гүйцэтгэх эцсийн хугацаа нь менежер, шинжээч, хөгжүүлэгч, шалгагч гэсэн багийн бүх гишүүдээс бүрддэг анхны тооцооллыг авдаг. Энэхүү үнэлгээг авсны дараа бизнес нь компанийн стратегийн зорилгыг харгалзан ажлуудаа нэн тэргүүнд тавьдаг. Стратегийн зорилтуудыг хөндлөн огтлох нь үүнд тусалдаг бөгөөд үүний тусламжтайгаар бид бүгдээрээ нийтлэг зүйлийн төлөө ажиллаж байгаа нь тодорхой болно, хэн нэгэн зөвхөн өөрийнхөө зүг чиглүүлж байгаа тохиолдолд ийм нөхцөл байдал байдаггүй. Бид нарийн тооцоолсон ажлуудаас спринт цуглуулдаг. Зарим багууд улирал тутамд, зарим нь сар бүр байдаг. Дараагийн спринтэд урьдчилсан байдлаар эрэмбэлэгдсэн хэд хэдэн ажлыг багууд үнэн зөв үнэлэх болно. Томоохон ажлуудыг доод түвшний ажлуудад хуваадаг бөгөөд тодорхой үүрэг гүйцэтгэгч тус бүрт нь үнэн зөв үнэлгээ өгдөг.

Энэ үе шатанд алдаа засахын тулд нэмэлт цаг нэмэхээ мартах нь чухал юм, учир нь юу ч хийдэггүй хүмүүс л андуурдаггүй. Үүнийг Бүтээгдэхүүн эзэмшигч болон бизнесийн үйлчлүүлэгчид сайн ойлгодог. Үүний зэрэгцээ шаардагдах хугацаа нь хангалттай байх ёстой: энгийн даалгавар өгөх хугацааг хэтэрхий урт болгосон хөгжүүлэгчийг хэн ч ойлгохгүй, шийдвэрээ зөвтгөхийг хүсэх болно. Хамгийн хэцүү зүйл бол яагаад рефактор хийхэд яагаад цаг хугацаа шаардагддагийг бизнест тайлбарлах явдал юм. Цаг хугацаа өнгөрөх тусам амжилтанд хүрч байгаад манай компанид талархаж байна, учир нь эцсийн эцэст дахин боловсруулалт хийх нь илүү хөнгөн дэд бүтцийг бий болгож, кодыг эмх цэгцэнд оруулдаг бөгөөд энэ нь системийн тогтвортой байдлыг нэмэгдүүлж, шинэ системийн хөгжлийг ихээхэн хурдасгадаг. функцууд.

Заримдаа үнэлгээ хийхэд алдаа гардаг. Миний бодлоор дэд бүтэц хөгжсөн томоохон компаниудын хөгжлийн хэлтэс үүнээс бүрэн зайлсхийх боломжгүй юм. Энэ тохиолдолд хөгжүүлэгч цаг тухайд нь юу болж байгааг менежердээ мэдэгдэх нь чухал бөгөөд тэрээр эргээд бизнесээ сэрэмжлүүлж, компанийн ерөнхий төлөвлөгөөнд ямар нэгэн зүйлийг "дахин тоглуулж" чадсан юм. Энэ горимд 3 хоногийн дотор 5 хоног шаардагдах зүйлийг хийх гэж улайран зүтгэж, улмаар ийм яаруу үйлдлээс үүдэн гарсан олон тооны алдаанд живэхээс илүү ажиллах нь илүү зөв юм.

Доод түвшинг сурталчлах

Асуултын хоёр хэсэгт өгсөн зөв хариулт [төслийг цаг тухайд нь хэрхэн зөв төлөвлөж, хэрэгжүүлэхээ сурах - Эд.] - туршлага. "Зэнийг мэдэх" өөр арга байхгүй. Шийдвэр гаргах онолын дагуу аливаа үнэн зөв дүгнэлтийг зөвхөн аль хэдийн бэлэн болсон хэд хэдэн өгөгдөлд дүн шинжилгээ хийсний үндсэн дээр хийж болно. Энэхүү өгөгдөл хэдий чинээ их байх тусам эцсийн урьдчилсан мэдээ, үнэлгээ илүү үнэн зөв болно.

Херберт Шоугийн хэлснээр: "Туршлага бол хүн өмнө нь ямар тэнэг байснаа мэддэг сургууль юм." Тиймээс маш энгийн дүгнэлт гарч байна: хэрэв програмист нь тухайн даалгавартай холбоотой туршлагатай бол түүнд "дэлгүүрийн хамт ажиллагсдынхаа" туршлагад найдаж болно.

Дараа нь шууд хуваарь гаргах нь хүмүүсийн маш муу, ялангуяа хөгжүүлэлт хийдэг ажил гэдгийг ойлгох хэрэгтэй. Хугацааг тооцоолохдоо анхны тооцоололд "залруулах хүчин зүйл" оруулах нь сайн практик юм. Энэхүү хэмжигдэхүүн нь хөгжүүлэгчийн туршлага, төслийн хүрээнд шийдсэн ажлуудын тодорхойгүй байдлын зэрэглэлээс хамааран 1.5-3 хооронд хэлбэлзэж болно.

Доод түвшинг сурталчлах

Хугацаа тодорхойлохдоо олон хүчин зүйлийг харгалзан үзэх нь чухал юм.

Жишээлбэл, ажлын туршлага. Та удахгүй хийх ажлын цар хүрээг хэр тодорхой төсөөлж байна вэ? Та өмнө нь ийм зүйл хийж байсан уу? Илүү их туршлага хуримтлуулах тусам ажил хурдан хийгдэх нь ойлгомжтой.

Зөв бичсэн техникийн даалгавар нь эцсийн хугацааг тодорхойлоход чухал үүрэг гүйцэтгэдэг. Үүнтэй холбогдуулан манай нутагт бүх зүйл маш хэцүү байдаг. Ихэнхдээ үйлчлүүлэгч өөрөө юу хүсч байгаагаа мэддэггүй тул нэг эсвэл хоёр өдөр нэмэлт цаг зарцуулахыг зөвлөж байна, гэхдээ үйлчлүүлэгчээс хүссэн үр дүнгийн талаар тодорхой ойлголт авахыг зөвлөж байна. Энэхүү үзэл бодол нь харилцан ашигтай байх нь чухал юм. Зөвхөн үүний дараа та хэмжээ, нөхцлийг тохиролцож эхлэх боломжтой.

Түүнчлэн, эрсдэлийг үргэлж оруулаарай. Эхлэгчдэд би тооцоолсон гүйцэтгэх хугацааг хоёр дахин үржүүлэхийг зөвлөж байна. Эцсийн эцэст, төслийг дараа нь оруулж, нэр хүндээ унагахаас илүүтэйгээр төслийг хугацаанаас нь өмнө хүргэж, үйлчлүүлэгчийн нүдэн дээр мэргэжилтэн болж өссөн нь дээр.

Доод түвшинг сурталчлах

Ерөнхий зөвлөмж бол хөгжүүлэгч нь даалгаврыг хэрхэн зөв задалж сурах, болзошгүй бэрхшээлийг үргэлж хайж олох, өөрийн туршлагад найдах, хэрэв заасан хугацаанд шийдвэрлэх боломжгүй бол үйлчлүүлэгчид болон хамт ажиллагсдад цаг тухайд нь анхааруулахаа мартуузай.

Тодорхой төлөвлөгөө гаргах нь тодорхой ажлын эцсийн хугацааг тогтоохоос хамаагүй хэцүү байдаг. Үүний зэрэгцээ, төслийг цаг тухайд нь хүргэх төдийгүй таны боловсруулсан систем нь бизнесийн асуудлыг зөв шийдэж байгаа эсэхийг шалгах нь чухал юм. Энд мэдээллийн технологийн багуудад RUP, MSF -ээс SCRUM болон бусад Agile формат хүртэл програм хангамж хөгжүүлэх янз бүрийн аргачлалууд тусалдаг. Багаж хэрэгслийг сонгох нь маш өргөн цар хүрээтэй бөгөөд манай олон үйлчлүүлэгчид бид төсөл дээр тэдэнтэй хэрхэн ажиллах, ямар зарчмуудыг баримтлахыг урьдчилан ойлгохыг хүсдэг.

Дашрамд дурдахад, энэ аргачлалын зарчим нь давталт бүрт үйлчлүүлэгчийн хүлээлтийг удирдаж, төслийг маш хурдан хэрэгжүүлэх боломжийг олгодог тул Agile сэдэв нь бизнес, тэр тусмаа олон нийтийн төслүүдэд хүртэл ойртож байна. Жишээлбэл, Agile багт үйлчлүүлэгчтэй хийх урт хугацааны хэлэлцүүлэг бараг байдаггүй. Унтраах жагсаалт гарч ирэх хурд гэх мэт шаардлагагүй техникийн дэлгэрэнгүй мэдээллийг тайлбарласан хэдэн арван хуудсыг март. Үйлчлүүлэгчдэд системийн завсрын хувилбарыг туршиж үзэх боломжийг өг, тэгвэл та бие биенээ ойлгоход илүү хялбар болно.

Agile баг бүх зүйлийг хамтад нь төлөвлөж, тодорхой асуудлыг шийдвэрлэхэд шаардагдах хөдөлмөрийн оновчтой түвшинг тодорхойлдог. Жишээлбэл, техникүүдийн нэгийг "Покер төлөвлөлт" гэж нэрлэдэг бөгөөд оролцогч бүр тодорхой даалгаварт шаардагдах ажлын ачааллын талаархи үнэлгээгээ нэрээ нууцалж өгдөг. Үүний дараа баг нь даалгаврын дундаж жинг түүхийн цэг эсвэл хүн-цагаар тодорхойлж, "хэнд юу дуртай вэ" гэсэн зарчмын дагуу даалгавруудыг хуваарилдаг. Үүний зэрэгцээ, баг өдөр бүр 15 минутын уулзалт хийхээр цуглардаг бөгөөд хүн бүр хэдхэн минутын дотор одоогийн даалгавар, түүний дотор үүссэн бэрхшээлийн талаар мэдээлдэг. Баг нь илэрсэн асуудлыг хурдан арилгадаг тул үйлчлүүлэгч програмистын ажлын дараагийн үе шатыг аль болох хурдан хардаг. Хөгжүүлэгчид багийг дахин татах хүсэлгүй, эсвэл өөрсдөө олох гэж дэмий оролдсоны улмаас даалгавраа гүйцэтгэх хугацааг хойшлуулдаггүй бөгөөд энэ нь үнэ цэнэтэй цагийг алддаг. Дашрамд хэлэхэд ийм мини статустай болсноор хөгжүүлэгчид өөрсдийгөө ажилдаа хариуцлагатай хандаж байгаагаа харуулахын тулд хамгийн сайн талыг харуулах хүсэлтэй байдаг. Энэ нь үнэхээр урам зориг өгч, өөрийгөө хүмүүжүүлдэг.