What is a requirement?

A requirement is a condition or capability that is necessary for a system to meet its objectives.

Are there different types of requirements?

Yes, although most people mean business requirements when the term requirement is used.  Business requirements are those requirements that describe what the system will do for the business user.

What other types of requirements are there?

There are many ways to categorize requirements that can be useful to the software developer.  The IEEE Standard Glossary of Software Engineering Terminology [Ref 4] includes definitions of six different types of requirements:

functional
design
implementation
interface
performance
physical

We think this number will grow significantly in the future and will also include operational, program, and other types of requirements.

What is a testable requirement?

A testable requirement is a requirement that is precisely and unambiguously defined.  This criteria will be met only if someone can write a test case that would validate whether or not the requirement has or has not been implemented correctly.  This is the source of the term "testable requirement."

Is the concept of a testable requirement new?

Testability has long been a standard for the quality of specified requirements.  The application of testable requirements to the "sizing" of a software system is new.

Why is it important to have a sizing measure?

The amount of effort required to develop a system is directly related to its size.  Estimating, identifying risk, measuring progress, and management reporting are a few of the uses of a sizing measure.

What other software sizing measures are there?

There are two widely used software sizing measures -- lines of code (LOC) and function points (FP).  Although each is a software sizing measure, they measure different things.  LOC is a measure of the size of a system that is built and is very dependent on the technology used to build the system.  FP is a measure of delivered functionality and relatively independent of the technology used to develop the system.

What is the primary problem with LOC?

The wide variety of programming languages available today makes it difficult to develop a LOC measure that is consistent across languages.  

What is the primary problem with function points?

Function points are not a natural byproduct of the software development process.  They require extra training and work to identify and count.  This increases the cost of using function points and discourages its use.  Moreover, function points are not intuitive.  It is difficult to visualize a function point.  Because of this, users and executive management think of function points as just more technical jargon and not as an indispensable business decision tool.

Why size with testable requirements?

We believe testable requirements is a natural, intuitive measure that does not have the problems inherent in either LOC or function points.  Moreover, it can be used to identify and manage risk in ways that are not possible with either LOC or function points.  

What are the disadvantages of testable requirements?

Testable requirements is a new sizing measure.  There is not a large body of industry data and experience with the measure.  If your goal is to benchmark, you will need to use function points in order to compare your results with industry experience.

Who is Mosaic, Inc.?

We are a software services firm that specializes in helping organizations reduce the risk of developing and maintaining software.  Our work in testable requirements is part of our efforts to find better ways to measure risk and help software managers quantify progress.  Our consultants have extensive software quality, methodology, measurement and testing experience.

Mosaic recently managed a joint research project with the Quality Assurance Institute (QAI).  The result of this project was QAI Research Report #8 -- Establishing A Software Defect Management Process [Ref 1].

What services does Mosaic offer?

Mosaic offers a wide variety of services in the areas of quality assurance, measurement, defect management, and testing.  We also offer a seminar on testable requirements to introduce organizations to the concept of measuring with testable requirements.

How can I learn more?

Email us or Contact us at:

Mosaic, Inc.
Software Risk Management Services
505 N Lake Shore Dr., Unit 2015
Chicago, IL 60611
(312) 836-1273
Mosaic Home Site:  www.mosaicinc.com