ICS 121: Feature Specifications
Overview
- What is feature specification?
- How to write feature specifications
- How to write better feature specifications
- Feature sets
What is a Feature Specification?
- A feature specification is a written description of a
feature of a system.
- A feature of a system is user-visible aspect of the system that
provides the user some benefit. Major features might appear in the
marketing material for the product. Smaller features should also be
described in detail in the SRS.
- Examples of features in MS Word:
- Spell checker
- Grammar checker
- Wizard to help make a document fit in fewer pages
- Widow and orphan protection: no paragraph has only a single
line of text continued on the next page
- A feature specification describes all the ways that the feature
can be used: it is not just one example. To describe all possible
uses, it should specify concepts and rules.
- There is an example feature specification in this
feature specification template.
How to Write Feature Specifications
- Start with a
feature specification template.
- First, have a firm understanding of the feature in mind.
- Second, give a descriptive name to the feature.
- Third, write a brief English description of the feature.
- Then, add "precise details" that state rules more formally.
Rules can be specified using mathematical notation, regular
expressions, tables, diagrams, decision trees, small mockups, or
whatever is appropriate to that feature.
- As you go, add notes to yourself and questions to come back to.
- Afterwards, fill in pragmatic information about the feature and
how it fits into your development plans:
- Priority
- Estimated effort and risk
- Feature areas are categories of features
- Links to use cases that require this feature
How to Write Better Feature Specifications
- Focus on those features that are high priority or high risk.
- Use more formal notations to express those features
- Choose the formal notation that fits the need:
- Constraints
- Database schema or entity-relationship diagrams
- Algebraic specifications
- Tiny mockups
- Pseudo code
- State-based specifications
- Decision trees and tables
- Flow charts and UML activity diagrams
Feature Sets
- "Feature set" documents help you plan the overall set of features in a product
- They are like a table of contents for the individual feature specifications
- Rather than just making a list, you can organize the features in
the feature set document so that missing or duplicate features are
clear.
- ReadySET feature set template
example use case templatesample test plan templateProject plan template