What is a requirement?.
Brady Gaster asks what is a requirement?
It is hard to define a requirement. I can say that a requirement is something that is required for (in this case) a software system, but that is a circular definition. So instead, I'll say that a requirement is something that reflects a business need. By this definition not all requirements will be satisfied in code, some could be satisfied by a defined process or some sort of external intervention.
Most people have an intuitive sense of what a requirement is. But what most people do not necessarily know (but want to know!) are the attributes that a good requirement should have. These are the attributes a good requirement should possess:
- Atomic - cannot be broken down into smaller pieces
- Correct - technically and legally possible
- Complete - expresses a whole idea or statement
- Clear - unambiguous
- Consistency - does not conflict with other requirements
- Necessary - addresses an actual business or technical need
- Verifiable - you can test whether the requirement is implemented correctly or not
- Traceable - uniquely identified, and thus trackable
- Feasible - can accomplish it within cost and schedule constraints
- Design independent - does not impost a specific implementation
- Prioritized - the list is ranked in order of importance, taking into account dependencies amoung groups of requirements
- Modular - can be changed without excessive impact
Like all systems-oriented things, some of the attributes a good requirement has are defined in relationships with other requirements. For example, a requirement all by itself cannot be consistent with other requirements, it is only when compared to another requirement that it can be consistent.
Check out Karl Weigers book Software Requirements (2nd ed.). This book alone makes Microsoft Press a legitimate publisher. Also note that at the time of writing, this book is #5 in Kirkland, Washington (a couple of miles from Redmond). I'm guessing it is popular there for a reason. [Darrell Norton's Blog]
11:22:05 PM
|