A feature model is a visual representation of the various features within a software product or family of related products, showing which are mandatory and which are optional, to give the viewer an idea of available configurations. Feature models are useful in development as well as sales and can be laid out in a variety of ways. Most take the form of a diagram with standardized markings to make it easy to read the information as presented.
In product development, members of the development team can brainstorm to discuss what they want to include in a product or line of products. This can result in the creation of a feature model, a diagram showing the most important features and the various ways they could be configured. For example, a company making a suite of programs for use in office productivity might want a word professor, spreadsheet program, basic drawing program, and slideshow creation program. It could build a feature model showing these options in the software suite and various configurable features within each one.
One important consideration is which features must be included and which may be optional, including choices between two different features to accomplish the same function. For example, in an online store, security is necessary to encrypt customer information, so this is mandatory. The security system could work in several different ways with different levels of security, and these would be represented as “or” options branching off from the mandatory store security feature.
As product development progresses, a feature model can shift in response to changes made to the product. Team members can identify the need for additional features or may decide to cut features initially brainstormed in the early stages of development. They may determine which features should be integral as opposed to optional. This can include setting up different tiers, like a free version of a software product versus a paid version with more features, where the company wants to encourage people to try the free version and expand to the paid one.
Customers can look at a feature model when ordering customized software. The branching diagram offers a number of choices, allowing customers to configure it for their needs. A hospital ordering records software might want software with medical imaging integration, for example, or might want a billing function as well as a records function to streamline record-keeping. It can mix and match the features it wants within the flexible parameters to generate a custom order.