Sources of Reusable Requirements


When you want to learn to cook the perfect fried egg, one of the best ways to get started is to learn from someone whose fried eggs you admire. They tell you the egg should be less than five days old, and the butterslightly salted is bestshould be heated until it is golden but not brown. You break the egg, gently slide it into the bubbling butter, and then spoon the golden liquid over it until the white turns opaque. You serve the egg with a sprinkling of fresh coriander and offer the diner Tabasco sauce.

This is informal experience-related reuse of requirements; we do this when we ask questions of our colleagues. We want to learn from one person's experience so that we do not have to start our own endeavors from scratch. We might not always find out everything we want to know, and we might make changes to what we are told, but we use the information discovered to build on other people's knowledge.

Informal experiencerelated reuse of requirements: We do this when we ask questions of our colleagues. We want to learn from one person's experience so that we do not have to start our own endeavors from scratch.


More formal reusable requirements for the domain of fried-egg cookery come from cookbooks. For example, Jenny Baker, in her book Simple French Cuisine, instructs us to follow these steps:

"Heat sufficient oil . . . fry the tomatoes with a garlic clove . . . break the eggs on top and cook gently until set."

In Italian Food, Elizabeth David advises us to do this:

"Melt some butter . . . put in a slice of mozzarella . . . break two eggs into each dish . . . cover the pan while the eggs are cooking."

You can think of a cookbook as a requirements specificationit's just written for a different context of study than the one you are currently working on. Even though the preceding examples have some differences, both have aspects that could be reused as a starting point for writing a new recipe for fried eggs. This means once you know the context of your work, you can look for requirements specifications that deal with all or part of that context and use them as the source of potentially reusable requirements.

Once you know the context of your work, you can look for requirements specifications that deal with all or part of that context and use them as the source of potentially reusable requirements.


The examples we have used here come from a domain of cooking fried eggs. Within that domain, each writer has written her specification from a specific viewpoint. Elizabeth David focuses on cooking eggs the Italian way, whereas Jenny Baker writes about eggs in France. The two writers give you specific instructions for producing the desired result in a particular situationin other words, their recipes work just like a normal requirements specification.

Now let's stand back a little and look at an abstraction. In How to Cook: Book One, Delia Smith investigates the subject of egg cooking with a view toward learning as much as she can about the subject of eggs. She has made an abstraction of knowledge that is relevant regardless of whether you want to cook Italian, French, or Trinidadian egg dishes. Smith writes about how to tell whether an egg is fresh, how long to cook an egg, when to use oil, when to use butter, and so on. In terms of requirements engineering, we could say that she has built a domain model on the subject of eggs.

Three cookery writers who have made knowledge about cooking accessible and reusable are Elizabeth David, Jenny Baker, and Delia Smith. Any of the books by these writers can help you improve your cooking skills and enjoyment of food.

David, Elizabeth. Italian Food. Penguin Books, 1998.

Baker, Jenny. Simple French Cuisine. Faber & Faber, 1992.

Smith, Delia. How to Cook: Book One. BBC Worldwide, 1998.


A domain is a subject matter area. A domain model is a generic model of knowledge that applies to any product built for use in that domain. Consider the knowledge that Smith passes on about eggs. It is usable for almost any recipe (specification) that involves eggs. We see more about domain analysis later in this chapter.

You can reuse requirements or knowledge from any of the sources that we have discussed: colleagues' experiences, existing requirements specifications, and domain models. The only thing necessary is that you can recognize the reusable potential of anything you come across. Recognition itself requires that you perform abstractions, so as to see past the technology and procedures that are part of existing requirements. Abstraction also involves seeing past subject matters to find recyclable components. We have more on abstraction later in this chapter; for now, let's look at making use of the idea of patterns.




Mastering the Requirements Process
Mastering the Requirements Process (2nd Edition)
ISBN: 0321419499
EAN: 2147483647
Year: 2006
Pages: 371

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net