Introduction to Software Requirement Patterns

Stephen Withall

The Purpose of this Presentation
... is to introduce Software Requirement Patterns, which are a way to specify recurring and key types of requirements better and with less effort. Topics: 1. What's the problem? 2. What are patterns? 3. How can requirement patterns help? 4. What patterns are in the book? 5. How do you use requirement patterns?

To fill the gap. 3. Requirements are invariably patchy and incomplete: unbalanced. we're repeatedly told • The situation has not improved over time • What's wrong. Specifying everything from scratch every time is wasteful. Individual requirements are imprecise. 4. and what can we do about it? 1.What's the Problem? • Inadequate requirements are the biggest cause of unsatisfactory systems. The key is what the requirements actually say. There's a gap between problem and solution. requirements must get more technical. 2. .

• There is an inconsistent level of detail We concentrate on what's: Easy Visible Frequently used Needed now Functional We neglect what's: Difficult Obscure Rarely used Needed later Nonfunctional • We need to correct these imbalances.Imbalances in Requirements “We carve out order by leaving the disorderly parts out.” —William James • Requirements usually specify some parts well and neglect others. .

• We need to fill the gap on the problem side. .Defining More of the Problem • There's usually a big gap between the problem (requirements) and the solution (design and implementation).

– Developers feel free to deviate from requirements. • Business analyst jobs are put at risk. • Ask: How easy is it for developers to build a bad system that satisfies the requirements? . – Requirements are regarded as delaying the 'real work‘. • Methodologies that don't depend on requirements appear.Consequences of Inadequate Requirements • Managers and developers don't value requirements. • Requirements are specified worse in future projects: a vicious circle.

• When you encounter a problem. • Patterns save having to re-invent the wheel.”—Christopher Alexander • No situation is entirely novel: the bulk has been encountered before.What Are Patterns? “Each pattern describes a problem which occurs over and over again in our environment. pull out a pattern for guidance on how to tackle it. • Different species of patterns apply in different situations • Design patterns have been around for 15 years. .

what information you ought to convey. • Many types of requirement crop up over and over in all kinds of system (between 15% and 65%). and extra topics to consider. . • Requirement patterns aim to let you specify better systems more precisely with less effort.What Are Requirement Patterns? A requirement pattern is an approach to specifying a particular type of requirement. • A requirement pattern applies to an individual requirement. • A requirement pattern suggests how to tackle it.

Applicability: When to use it (and when not to). Template(s): Fill-in-the-blanks requirement(s). 6. Extra requirements: More to think about. Content: Items of information to include. 8. 4. 7. 3. 5. Considerations for development: Suggestions for software developers. 9. Basic details: Related patterns. frequency. Discussion: How to approach the subject. 2. etc. Example(s): Some real requirements. .What Does a Requirement Pattern Contain? 1. Considerations for testing: Advice for testers.

Miscellaneous Concepts Creating requirement patterns provided an opportunity to introduce more rigour. . Specific patterns also introduce their own concepts.

• Requirement patterns can pre-empt issues that managers. Sometimes an example can be copied in unchanged. to allow a business analyst to write more technical requirements. developers and testers might raise —to help a business analyst stay one step ahead. • More thought goes into each pattern than you can afford to devote to a particular requirement. • Requirement patterns explain technical issues. • Templates and examples let you write requirements faster and with more consistency.How Can Requirement Patterns Help? • Requirement patterns provide detailed guidance on situations that recur in all systems. .

The Requirement Patterns in the Book .

Fundamental Requirement Patterns .

Information Requirement Patterns .

Data Entity Requirement Patterns .

User Function Requirement Patterns .

Performance Requirement Patterns .

Flexibility Requirement Patterns .

Access Control Requirement Patterns .

Commercial Requirement Patterns .

• When specifying a requirement of a particular type. and extra areas to cover. • Requirement patterns can be used with agile methods. pull out a pattern for guidance on how to approach it. or write your own. • .How Do You Use Requirement Patterns? Use patterns to specify better requirements.. what to say. It's not that daunting! . • Scan list of patterns for topics you've missed. • Tailor patterns to suit your environment (or way of working). or quickly copy in a template or example and move on..

Developers can read suggestions on how to implement a requirement of this type. 3. Testers can find suggestions on how to test a requirement.Other Uses for Requirement Patterns 1. Reviewers can use patterns to check the quality and completeness of requirements. . 2.

withallyourequire. Stephen Withall www.That's all for now! Thanks for your .

Sign up to vote on this title
UsefulNot useful