Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка 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.