Vous êtes sur la page 1sur 23

Introduction to Software Requirement Patterns

Stephen Withall www.withallyourequire.com

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?

What's the Problem?


Inadequate requirements are the biggest cause of unsatisfactory systems, we're repeatedly told The situation has not improved over time What's wrong, and what can we do about it?

1. Requirements are invariably patchy and incomplete: unbalanced. 2. Individual requirements are imprecise. The key is what the requirements actually say. 3. There's a gap between problem and solution. To fill the gap, requirements must get more technical. 4. Specifying everything from scratch every time is wasteful.

Imbalances in Requirements
We carve out order by leaving the disorderly parts out. William James Requirements usually specify some parts well and neglect others. 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.

Defining More of the Problem


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

Consequences of Inadequate Requirements


Managers and developers don't value requirements.
Requirements are regarded as delaying the 'real work. Developers feel free to deviate from requirements.

Methodologies that don't depend on requirements appear. Requirements are specified worse in future projects: a vicious circle. Business analyst jobs are put at risk. Ask: How easy is it for developers to build a bad system that satisfies the requirements?

What Are Patterns?


Each pattern describes a problem which occurs over and over again in our environment.Christopher Alexander

No situation is entirely novel: the bulk has been encountered before. Patterns save having to re-invent the wheel. When you encounter a problem, 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 Are Requirement Patterns?


A requirement pattern is an approach to specifying a particular type of requirement.

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

What Does a Requirement Pattern Contain?


1. Basic details: Related patterns, frequency, etc. 2. Applicability: When to use it (and when not to). 3. Discussion: How to approach the subject. 4. Content: Items of information to include. 5. Template(s): Fill-in-the-blanks requirement(s). 6. Example(s): Some real requirements. 7. Extra requirements: More to think about. 8. Considerations for development: Suggestions for software developers. 9. 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.

How Can Requirement Patterns Help?


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

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

How Do You Use Requirement Patterns?


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

Other Uses for Requirement Patterns

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

That's all for now! Thanks for your time.


Stephen Withall www.withallyourequire.com

Vous aimerez peut-être aussi