Кіріспе

Конфигурацияны басқаруда (КМ) бағдарламалық қамтамасыз ету мен құжаттамаға енгізілген өзгерістерді (басқа нәрселермен қатар) бақылау қажет. Бұл нұсқаларды басқару деп аталады, ол бір ақпарат бірлігінің әр түрлі нұсқаларын басқарады. Нұсқаларды басқару КМ үшін маңызды болғанымен, оған толыққанды тең келмейді. Синхрондау модельдері, сондай-ақ конфигурацияны басқару модельдері (Фейлер, 1991) деп те аталады, жеке файлдарға бір уақытта, параллель түрде өзгерістер енгізу арқылы нұсқаларды басқаруға мүмкіндік беретін әдістерді сипаттайды.

Синхрондау үлгілері

Фейлер (1991) төменде қысқаша сипатталатын төрт түрлі синхронизация модельдері туралы хабарлайды.

Шығу/кіру

Тексеру/қабылдау үлгісінде файлдар репозиторийде жеке-жеке сақталады, олар қол жеткізілген кезде тексеріліп алынады және өзгерістер енгізілген кезде қайта тексеріледі. Бұл репозиторий файлдардың бірнеше нұсқасын сақтай алады. Бұл файлдар құжаттама немесе бастапқы код болуы мүмкін, сонымен қатар файлдар жиынтығы да болуы мүмкін, сондықтан енді конфигурациялық элемент (CI) термині қолданылады. Бір уақытта жасалған өзгерістерден туындаған қақтығыстарды болдырмау үшін негізгі механизм – құлыптау.

Құрамы

Композициялық модель – тексеру/есепке алу моделінің кеңейтілген түрі. Бұл модель әзірлеушілерге жеке файлдардың орнына конфигурациялармен жұмыс істеуге мүмкіндік береді. Тексеру/есепке алу моделі композициялық модельде толыққанды бейнеленгенімен, конфигурацияларды басқаруды жақсарту арқылы жаңартудың әртүрлі стратегияларын қолдануға болады. Конфигурация – жүйелік модель және нұсқа таңдау ережелері негізінде құрастырылады. Жүйелік модель қолданылатын файлдарды анықтайды, ал нұсқа таңдау ережелері файлдардың қай нұсқасын (мысалы, ең соңғы нұсқаларын немесе белгілі бір даму кезеңін) анықтайды.

Ұзақ операциялар

Ұзақ транзакциялар моделі жүйені логикалық өзгерістерден құралғандығын қарастыра отырып, кең көзқарас ұсынады. Оның негізгі назары осы өзгерістерді үйлестіру мен интеграциялауға бағытталған. Қорыта айтқанда, ол конфигурация нұсқаларын және файл нұсқаларын қолданады. Конфигурация өзгерту талабы негізінде жасалады, ал бұл талап жеке сақталады. Осы конфигурациядағы файлдарды тексеру/қолдану (check out/check in) моделі арқылы синхрондауға болады. Өзгеріс аяқталған соң, толық конфигурация репозиторийге сақталып, басқа өзгерістермен біріктіріледі.

Өзгеріс жиынтығы

Өзгерістер жиынтығы моделі де өзгеріс сұранымдары негізінде жұмыс істейді және ұзақ транзакциялар моделімен көптеген ортақ белгілері бар. Дегенмен, ол өзгерістердің бастапқы негізі ретінде белгілі бір конфигурациядан басталады. Бұл, кейіннен келіп түсетін тәуелсіз өзгеріс сұранымдарына сәйкес өзгертіледі. Өнімнің жаңа конфигурациялары бастапқы нұсқаға тәуелсіз сақталған өзгерістер жиынтығын қолдану арқылы құрылады. Осы жазбада мета-модельді (процесс деректерінің схемасы) қоса алғанда, тексеру/қайтару синхрондау моделі қарастырылады. Тексеру/қайтару моделі жоғарыда талқыланған басқа модельдердің құрамында болғандықтан, оны одан әрі кеңейте түсеміз. Толыққанды талқыланбаған мәселелер – қалған үш синхрондау моделі және КИ-ді (конфигурациялық элементтерді) нақты өңдеу, сондай-ақ осыған қатысты әдістер.

Сөздік

Нысанның анықтамасыVersionНысан – объектінің немесе ұғымның алдыңғы күйінен немесе жағдайынан өзгеше болатын күйі. Конфигурация элементі – нұсқауды басқаруға берілген бағдарламалық қамтамасыз ету элементі немесе құжат. КИ тобы да КИ ретінде анықталуы мүмкін (Crnkovic және басқалар, 2003). Конфигурация элементтерінің тарихы – нұсқауды белгілеуді жеңілдетуге арналған тұжырымдама. Версияға тән атрибуттарды барлық нұсқаларға ортақ атрибуттардан бөліп алады (Ван де Верд, 2005). Құжат – бағдарламалық жасақтаманы жасаудың көптеген түрлері. Бағдарламалық жасақтаманың архитектурасын, техникалық құжаттаманы, пайдаланушы нұсқаулықтарын және т.б. сипаттайтын құжаттарды қарастырыңыз. Көздік код файлы – адам оқи алатын компьютерлік бағдарламалау тілінде жазылған операторлардың кез келген тізбегі. Компьютерлік бағдарламаның көздік коды – адам оқи алатын формадан эквивалентті компьютерлік орындалатын формаға түрлендірілетін файлдар жиынтығы. Қойма – қойманы «жәшік» деп те атайды. Қоймада конфигурация элементінің бір толық нұсқасы ғана болады. Нұсқалар арасындағы айырмашылықтар әдетте дельта алгоритмі арқылы сақталады (Crnkovic, Asklund & Persson Dahlqvist, 2003). Нұсқаларды ұйымдастыру – КИ нұсқаларын әр түрлі жолдармен ұйымдастыруға болады. Бұл нұсқаларды ұйымдастыруды сипаттайтын ұғымдардың бастауы (Crnkovic және басқалар, 2003). Тармақ – параллель даму жолдары ретінде ұйымдастырылған нұсқалар (Crnkovic және басқалар, 2003). Түзету – реттілікпен ұйымдастырылған нұсқалар (Crnkovic және басқалар, 2003). Даму күйі – бағдарламалық жасақтаманың дамуы қаншалықты алға жылжуын және одан әрі қаншалықты даму қажет екенін көрсетеді. Өнімнің әрбір негізгі нұсқасы әдетте жаңа мүмкіндіктер қосылған кездегі кезеңнен өтеді (альфа кезеңі/күйі), содан кейін белсенді түрде түзетулер жасалатын кезеңнен (бета кезеңі/күйі) және соңында барлық маңызды қателер жойылған кездегі кезеңнен (тұрақты кезеңі/күйі) өтеді.

Шегіну/келу үлгісін әзірлеу

Бұл бөлімде тіркелу/шығу синхрондау моделі туралы толық мәлімет берілген.

Процесс-деректер диаграммасы

Жоғарыда көрсетілген процестік деректер диаграммасында тексеру/тексеру синхрондау моделінде қолданылатын әртүрлі ұғымдар және олардың орындалатын іс-әрекеттермен байланысы сипатталған. Метадеректер моделінің (суреттің оң жағында) орталық бөлігі – Конфигурациялық элемент. Ол бір немесе бірнеше репозиторийлерде сақталады және мысалы, бастапқы код файлы немесе басқа Конфигурациялық элементтердің жиынтығы болуы мүмкін. Репозиторийде файлдардың бірнеше тармақтары мен редакциялары болуы мүмкін. Бұл өз кезегінде конфигурациялық элементтерден тұрады. Мета-процесс моделі (суреттің сол жағында) тексеру және тексеру іс-әрекеттерінің процесін сипаттайды. Іс-әрекеттер төмендегі кестеде түсіндірілген.

Іс-әрекет | Қосалқы іс-әрекет | Анықтама
------- | -------- | --------
Check Out | | Файлдар репозиторийден тікелей оқылмайды немесе өзгертілмейді. Тексеру осы іс-әрекеттерді сипаттайды.
КИ көшірмесі | | КИ-нің белгілі бір нұсқасы репозиторийден көшіріледі.
КИ-ді құлыптау | | Егер жазуға қол жеткізу қажет болса және КИ басқа біреумен құлыпталмаған болса, КИ құлыпталады. Әйтпесе, КИ-ді репозиторийге қайта жазу мүмкін емес (тек оқуға қол жеткізіледі).
КИ-ді өңдеу | | КИ-ді өңдейтін адам оған өзгерістер енгізеді. Бұл нұсқаны басқаруға қатысты ағымдағы метамодельдің шеңберінен тыс.
Check In | | КИ репозиторийге қайта орналастырылуы керек. Тексеру осы іс-әрекеттерді сипаттайды.
Версияны басқару стратегиясын таңдау | | Жаңа КИ версияны басқару стратегиясын қолдана отырып репозиторийге қайта орналастырылуы керек. Бұл КИ-ді репозиторийге қайта орналастыру үшін қолданылатын стратегияны таңдауды сипаттайды.
Жаңа тармақ құру | | КИ жаңа тармақтың басталуы ретінде таңдалады.
Жаңа редакция құру | | КИ басқа КИ-дің редакциясы ретінде таңдалады.
Даму күйін таңдау | | КИ белгілі бір даму күйінде деп анықталады.
КИ-ді жазу | | КИ репозиторийде сақталады.
КИ-ді ашу | | КИ-дің құлпы ашылады.

Бағалау

Feiler (1991) тексеру/тексеру синхрондау моделін бағалады. Оның ең айқын артықшылығы – пайдалану және түсіну оңайдығы. Дегенмен, осы қарапайымдық конфигурацияларды басқарудағы кемшіліктерге, мысалы, өнім нұсқаларын қадағалауда және бірнеше логикалық байланысты файлдардың нұсқа тарихын тексеруде көрінеді. Көптеген дамытушылармен жұмыс істегенде файлдарды құлыптау арқылы кезек беру механизмі нақты проблема тудырады, себебі құлыпталған файлдарды басқалар өзгерте алмайды.

Мысал

Тексеру/текстілеу синхрондау моделін түсіндіру үшін, осы бөлімде осы процестің қалай жұмыс істейтініне мысал келтірілген. Төмендегі суретте КИ-дың күй өзгерту диаграммасы көрсетілген. КИ алғаш рет жасалғанда, ол өзгертіліп, репозиторийде сақталады. Біреу КИ-ды ашуды сұрағанда, ол әзірлеушінің жеке компьютеріне көшіріледі (ескерту: кейбір жүйелерде өңдеу тікелей репозиторийде жүзеге асырылады. Дегенмен, көшіру қадамы – классикалық тексеру/текстілеу әдісі). Егер әзірлеуші де КИ-ды өңдеткісі келсе, ол құлыптауды сұрайды. Бұл КИ-ды ашу туралы сұраумен бірге, оны оқығаннан кейін де жасалуы мүмкін. Егер КИ әлі құлыпталмаған болса, құлыптау қойылады және оны әзірлеуші өзгерте алады. Өзгерістер енгізілгеннен кейін, ол қайтадан репозиторийге сақталады және құлыптан босатылады. Енді, жоғарыда айтылған әзірлеуші репозиторийдегі КИ-ды өңдеу үстінде деп есептейік. Сіз репозиторийден КИ-ды ашуды қалайсыз, сондықтан ол сіздің жеке дискіңізге көшіріледі. Сіз оны оқып, өзгертуді қалаған нәрселерді табасыз, сондықтан оны өңдеуге рұқсат сұрайсыз. Бірақ, КИ әлдеқашан құлыпталған, сондықтан оның босатылуын күтуіңіз керек немесе файлды жабылып, басқа КИ-ға көшуіңіз керек.