Бағдарламалық жасақтаманы дамыту процесінде тоқтау кезеңі
Freeze (software engineering)
Бағдарламалық жасақтаманы дамытудағы "тоқтату" кезеңі – код өзгертулерін шектеу арқылы шығарылымды жеделдету. Түрлері, мақсаты мен қағидалары туралы біліңіз.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Бағдарламалық жасақтаманы әзірлеу процесінің кезеңі
Stage in the software development process
Бағдарламалық инженерияда тоқтату – бұл даму процесіндегі бастапқы кодқа немесе байланысты ресурстарға өзгерістер енгізу қағидалары қатаңдайтын немесе осы қағидалар қолданылатын уақыт. Тоқтату жобаны шығаруға немесе итерацияны аяқтауға қарай өзгерістердің масштабын немесе жиілігін азайту арқылы ілгерілетуге көмектеседі және жоспарға сәйкес келуге қолданылуы мүмкін. Нақты қағидалар тоқтату түріне және қолданылатын даму процесіне байланысты; мысалы, олар тек қателерді түзетуге рұқсат беруді немесе өзгерістерді даму командасының басқа мүшелері мұқият қарағаннан кейін ғана рұқсат етуді қамтуы мүмкін. Сондай-ақ, егер қағидаларға қайшы келетін өзгеріс қажет болса, тоқтату кезеңін қайта бастау сияқты талаптарды да көрсетуі мүмкін. Тоқтатудың кең таралған түрлері:
In software engineering, a freeze is a point in time in the development process after which the rules for making changes to the source code or related resources become more strict, or the period during which those rules are applied. A freeze helps move the project forward towards a release or the end of an iteration by reducing the scale or frequency of changes, and may be used to help meet a roadmap. The exact rules depend on the type of freeze and the particular development process in use; for example, they may include only allowing changes which fix bugs, or allowing changes only after thorough review by other members of the development team. They may also specify what happens if a change contrary to the rules is required, such as restarting the freeze period. Common types of freezes are:
(Толық) спецификация тоқтатуы, онда қатысушы тараптар бағдарламалық жасақтама жобасының мүмкіндіктері тізіміне жаңа талаптарды, спецификацияларды немесе мүмкіндіктерді қоспауға келіседі, осылайша кодтау жұмысын бастайды. Жаңа мүмкіндіктерді қосу бойынша барлық жұмыстар тоқтатылған (толық) мүмкіндік тоқтатуы, күш-жігерді қателерді түзетуге және пайдаланушы тәжірибесін жақсартуға ауыстырады. Жаңа мүмкіндіктерді қосу бағдарламаның басқа бөліктеріне бұзылыс әсерін тигізуі мүмкін, себебі жаңа, сынақтан өтпеген бастапқы код немесе ресурстар енгізіледі және басқа мүмкіндіктермен өзара әрекеттеседі; осылайша, мүмкіндік тоқтатуы бағдарламаның тұрақтылығын арттыруға көмектеседі. Мысалы: «пайдаланушы интерфейсі мүмкіндігінің тоқтатуы» дегеніміз, кодтың пайдаланушы интерфейсі бөлігіне енгізілмейтін жаңа мүмкіндіктерге рұқсат етілмейді; қателерді түзетуге болады. Бағдарламаның бастапқы кодының бір бөлігіне немесе толығымен өзгерістер енгізуге рұқсат етілмейтін (толық) код тоқтатуы. Әсіресе ірі бағдарламалық жүйелерде бастапқы кодқа кез келген өзгеріс күтпеген салдарларға әкелуі мүмкін, жаңа қателерге себеп болуы мүмкін; сондықтан код тоқтатуы бағдарламаның дұрыс жұмыс істейтін бөлігі осылай жұмыс істей беруін қамтамасыз етуге көмектеседі. Код тоқтатуы көбінесе дамудың соңғы кезеңдерінде қолданылады, белгілі бір шығарылым немесе итерация сынақтан өтіп жатқанда, бірақ басқа бір бағдарламада даму кезінде бағдарламаның бір бөлігіне өзгерістер енгізуге тыйым салу үшін де қолданылуы мүмкін. Мысалы: «физика тоқтатуы» дегеніміз, кодтың физика бөлігіне ешқандай өзгеріс енгізілмейді.
A (complete) specification freeze, in which the parties involved decide not to add any new requirement, specification, or feature to the feature list of a software project, so as to begin coding work. A (complete) feature freeze, in which all work on adding new features is suspended, shifting the effort towards fixing bugs and improving the user experience. The addition of new features may have a disruptive effect on other parts of the program, due both to the introduction of new, untested source code or resources and to interactions with other features; thus, a feature freeze helps improve the program's stability. For example: "user interface feature freeze" means no more features will be permitted to the user interface portion of the code; bugs can still be fixed. A (complete) code freeze, in which no changes whatsoever are permitted to a portion or the entirety of the program's source code. Particularly in large software systems, any change to the source code may have unintended consequences, potentially introducing new bugs; thus, a code freeze helps ensure that a portion of the program that is known to work correctly will continue to do so. Code freezes are often employed in the final stages of development, when a particular release or iteration is being tested, but may also be used to prevent changes to one portion of a program while another is undergoing development. For example: "physics freeze" means no changes whatsoever will be permitted to the physics portion of the code.
Қолданылу
Версияны басқару қолданылатын даму орталарында тармақтануды пайдалану, тоңазыту салдарынан туындайтын дамудағы кешігулерді азайтуға көмектеседі. Мысалы, жобада бағдарламалық қамтамасының жаңа нұсқалары шығарылатын "тұрақты" тармақ және әзірлеушілер жаңа кодты қосатын бөлек "дамыту" тармағы болуы мүмкін. Тоңазытудың нәтижесі – дамыту тармағынан тұрақты тармаққа кейбір немесе барлық өзгерістерді көшіруге тыйым салу. Яғни, тоңазыту тек тұрақты тармаққа қатысты, ал әзірлеушілер дамыту тармағындағы жұмыстарын жалғастыра береді.
In development environments using version control, the use of branching can alleviate delays in development caused by freezes. For example, a project may have a "stable" branch from which new versions of the software are released, and a separate "development" branch in which the developers add new code. The effect of a freeze is then to prevent promotion of some or all changes from the development branch to the stable branch. In other words, the freeze applies only to the stable branch, and developers can continue their work on the development branch.