QEF home page
Definitions of Software Engineering Terms


Technical Documentation, Overviews, Tutorials, and Papers
Software Engineering Definitions
QEF Architecture
A Comparison of QEF and Make
A Cook's Tour of the QEF System
An Introductory Guide to QEF
The QEF Quick Reference Card
The QEF Specialist's Reference Card
Short descriptions of all the QEF tools
QEF Papers, Talks, and Presentations

Links to Definitions>
What is the Software Process
What is Software Configuration Management
What is a Version System
What is Software Construction
What is Software Process Automation
What is the QEF Software Process Automation System?
Top of Page What is the Software Process
The Software Process is the complete set of procedures needed to produce and maintain a software product. This process covers a great many stages, specification and design, implementation, building the programs and verifying the contents of the product. There is also the maintenance phase in which new features are added and bugs are fixed.
Top of Page What is Software Configuration Management
Configuration Management is a term from conventional manufacturing. The dictionary definition of a configuration is something that results from a particular arrangement of parts or components. In software, the parts are things such as program source code, images, and datafiles. A big difference for software is that all of these parts are different. When you make widgets you may use a million bolts, but they're all basically the same. If you lose one, you can easily get an equivalent part. In software, each part is unique and can't be replaced.

Once you have all of your software "parts", you have to arrange them to produce your product. Each part may have to go through a number of steps or transformations before being assembled into the final product. We are now talking about many thousands or million of steps to build a software product.

This combination of software parts plus processing steps is called a Software Configuration. If you sell several versions of your product, for example, a domestic version, export versions or a "lite" version, you will then have one Software Configuration for each version.

Top of Page What is a Version System
A version system is essentially an inventory system for software components. As discussed above, a large number of parts go into a software product. A version system stores all of these parts and records which part goes into which configuration of your product.

Version systems also deal with another peculiar aspect of software systems. A software component can change over time. In the first version of a product, you might have an image with a blue background. In the next release, the marketing department requests that it have a red background instead. The engineering department makes the change and records that change in the version system. We are still talking about the same part but it's a different version of the same part.

When the person building the product requests the set of parts from the version system for the new release, they will get the image with the red background. If there is a request to rebuild the older version of the product, then the builder will request the set of parts for that version and gets the image with the blue background.

Top of Page What is Software Construction
Software construction is the application of a set of procedures needed to assemble the product. Once you have the set of parts for a particular configuration, you need to apply this set of procedures. Such assemblies may involve many programs such as compilers, loaders, installation and configuration tools. This is software construction. There are a number of tools on the market that address some aspects of software construction but, for the most part, this aspect of configuration management is still largely manual, except for QEF.
Top of Page What is Software Process Automation
Software Process Automation is the automation of every aspect of the software process. Commercial version management systems automate retrieving the parts for your product and there is some support for software construction. A true software process automation system brings all of these pieces along all phases of the software process such as verification, auditing and testing, together into a single unified automated system.
Top of Page What is the QEF Software Process Automation System?
QEF is the only commercial product available today that addresses Software Process Automation. It can drive all phases of the software process. It integrates with the version management system, with the test and auditing tools, and can drive all of the construction processes within a unified framework. It is available on all major platforms from PCs through to mainframes, thereby providing a consistent solution across the entire range of a company's systems and eliminating the need to have different processes for different environments. Its flexible nature makes it suitable for projects ranging from small internal projects to major enterprise-wide applications and products.

Technical Documentation, Overviews, Tutorials, and Papers Software Engineering Definitions QEF Architecture A Comparison of QEF and Make A Cook's Tour of the QEF System An Introductory Guide to QEF The QEF Quick Reference Card
The QEF Specialist's Reference Card Short descriptions of all the QEF tools QEF Papers, Talks, and Presentations
definitions.qh - 1.11 - 03/10/24 QEF home page