HOME

TheInfoList



OR:

In
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, a freeze is a point in time in the development process after which the rules for making changes to the
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
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 Release may refer to: * Art release, the public distribution of an artistic production, such as a film, album, or song * Legal release, a legal instrument * News release, a communication directed at the news media * Release (ISUP), a code to iden ...
or the end of an
iteration Iteration is the repetition of a process in order to generate a (possibly unbounded) sequence of outcomes. Each repetition of the process is a single iteration, and the outcome of each iteration is then the starting point of the next 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 consequence In the social sciences, unintended consequences (sometimes unanticipated consequences or unforeseen consequences) are outcomes of a purposeful action that are not intended or foreseen. The term was popularised in the twentieth century by Ameri ...
s, 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.


Implementations

In development environments using
version control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
, 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.


See also

*
Feature complete A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impr ...
*
Software release life cycle A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...


References

{{DEFAULTSORT:Freeze (Software Engineering) Software project management Software release