What is VM(Version Management)?
Version management (VM) is the process of keeping track of different versions of software components or configuration items and the systems in which these components are used
What are VC’s (Version Control) systems?
Version control (VC) systems identify, store and control access to the different versions of components
What are the two types of VC systems?
Centralized systems, where there is a single master repository that maintains all versions of the software components that are being developed. Subversion is a widely used example of a centralized VC system.
Distributed systems, where multiple versions of the component repository exist at the same time.
What are the key features of version control systems?
· Version and release identification
· Change history recording
· Support for independent development
· Project support
· Storage management
What is a repository?
a central location in which data is stored and managed.
What are the benefit of a distributed VC?
· It provides a backup mechanism for the repository. If the repository is corrupted, work can continue and the project repository can be restored from local copies.
· It allows for off-line working so that developers can commit changes if they do not have a network connection.
· Project support is the default way of working. Developers can compile and test the entire system on their local machines and test the changes that they have made.
What is sytem building?
The process of creating a complete, executable system by compiling and linking the system components, external libraries, configuration files, etc
What are some build environments?
· The development system, which includes development tools such as compilers, source code editors, etc. Developers check out code from the version management system into a private workspace before making changes to the system.
· The build server, which is used to build definitive, executable versions of the system. Developers check-in code to the version management system before it is built. The system build may rely on external libraries that are not included in the version management system.
· The target environment, which is the platform on which the system executes.
What functionalities do the build systems include?
· Build script generation
· Version management system integration
· Minimal re-compilation
· Executable system creation
· Test automation
· Reporting
· Documentation generation
What is the process of agile building (continuous integration) ?
· Check out the mainline system from the version management system into the developer’s private workspace.
· Build the system and run automated tests to ensure that the built system passes all tests. If not, the build is broken and you should inform whoever checked in the last baseline system. They are responsible for repairing the problem.
· Make the changes to the system components.
· Build the system in the private workspace and rerun system tests. If the tests fail, continue editing.
· Once the system has passed its tests, check it into the build system but do not commit it as a new system baseline.
· Build the system on the build server and run the tests. You need to do this in case others have modified components since you checked out the system. If this is the case, check out the components that have failed and edit these so that tests pass on your private workspace.
· If the system passes its tests on the build system, then commit the changes you have made as a new baseline in the system mainline.
What are the advantages and disadvantages of agile building?
Advantages of continuous integration (Sommerville, 2016):
· It allows problems caused by the interactions between different developers to be discovered and repaired as soon as possible.
· The most recent system in the mainline is the definitive working system.
Disadvantages of continuous integration (Sommerville, 2016):
· If the system is very large, it may take a long time to build and test, especially if integration with other application systems is involved.
· If the development platform is different from the target platform, it may not be possible to run system tests in the developer’s private workspace.
What are the factors in change analysis?
· The consequences of not making the change
· The benefits of the change
· The number of users affected by the change
· The costs of making the change
· The product release cycle
What can a system release also include?
· Configuration files defining how the release should be configured for particular installations;
· Data files, such as files of error messages, that are needed for successful system operation;
· An installation program that is used to help install the system on target hardware;
· Electronic and paper documentation describing the system;
· Packaging and associated publicity that have been designed for that release.
What factors influence system release planning?
What is the release creation process?
· The executable code of the programs and all associated data files must be identified in the version control system.
· Configuration descriptions may have to be written for different hardware and operating systems.
· Update instructions may have to be written for customers who need to configure their own systems.
· Scripts for the installation program may have to be written.
· Web pages have to be created describing the release, with links to system documentation.
· When all information is available, an executable master image of the software must be prepared and handed over for distribution to customers or sales outlets.