8Chapter1 • Introduction to Software Development
1.1.6Software Releases
Before you start selling any software product, it is officially released. This means that you
create a state of the software in your repository, make sure that it has been tested for functional-
ity and freeze the code. A version number is assigned to released software. After releasing the
software, development may continue but it will not make any change in the released software.
The development is usually carried on in a new branch and it may contain new features of the
product. The released software is updated only if a bug fixed version is released.
Usually companies assign incremental version numbers following some scheme when the
next release of the software is sent to market. The change in version number depends on whether
the new software contains a major change to the previous version or it contains bug fixes and
enhancement to existing functionality. Releases are also important because they are typically
compiled versions of a particular version of the code, and thus provide a stable set of binaries for
testing.
1.1.6.1Branches
In almost all serious software development projects, a revision or version control system is
used. This version control system keeps a record of changes in source code files and is usually
built in a tree-like structure. When software is released, the state of each file that is part of the
release should be recorded. Future developments are made by creating branches to this state.
Sometimes special branches may also be created that are solely used for bug fixing. CVS is dis-
cussed in detail in Chapter 6.
1.1.6.2Release Notes
Every software version contains release notes. These release notes are prepared by people
releasing the software version with the help of developers. Release notes show what happened in
this software version. Typically the information includes:
•Bug fixes
•New functionality
•Detail of new features added to the software
•Any bugs that are not yet fixed
•Future enhancements
•If a user needs a change in the configuration process, it is also mentioned in the release
notes
Typically a user should be given enough information to understand the new release
enhancements and decide whether an upgrade is required or not.
1.1.7Documentation
There are three broad categories of documentation related to software development pro-
cesses.