Professional Documents
Culture Documents
• Written statements that describe what must be proved to the customer to verify completion of a contract
• Communication to developers what the developed product must be, how it must behave, and how it must
perform
• Provided by customers
– Government (SETA)/Prime/Customer L3Harris
– L3Harris SE L3Harris Development Teams
– Including L3Harris subcontractors
Contractual
Written
We design products against the requirements, so we need to understand them
Provable
Indicates acceptable completion of a product
Requirements Software
Analysis Engineering Integration
and Test
Early Defect Correction Provides Significant Cost Avoidance
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 7
Requirements Stakeholders
• Users
• Customers
• Developers
• Engineers
• Designers
• Testers
• Managers
• Business Leaders
• Subcontractors
• Field Support Engineers
• Other interfacing systems
• …anyone involved in requirements definition, validation, development, review, verification
• Good requirements
– Are key to the development of a quality product that provides value to the customer
– Result from understanding the customer’s real needs
– Are only effective if properly specified and documented
The earlier and better the requirements analysis, the lower the program risk
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 24
When the customer does not provide requirements
Goals SRD/TRD
Other RFP
Documents
(“System
(“System Spec”
or
Spec”
or A-Spec)
A-Spec)
Most programs fall between Vague Goals and Good Customer Requirements
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 25
When the customer does not provide requirements
• A required behavior in the customer requirements set might need several system level requirements of
different types to satisfy it
• Example: “Add new addresses to the Address List”
– Satisfied by the following system level requirements:
– Functional (Behavior)
– Upon command, the system shall add new addresses to the neighborhood address list.
– Technology/standards (guidance / constraints)
– The system shall format new addresses in accordance with USPS address standards for formatting and abbreviations.
– Performance (measures)
– On completion of a new address entry by the operator, the system shall store a valid address within 200ms.
Question for the class: Are there hidden or implied additional requirements here?
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 27
Some Examples – 1
• Original requirement:
• “The system shall provide the operator the information needed to access appropriate analysis tools when a
signal is detected.”
– Specify what types of tools are available to select from
– Bound the possible number of “valid” tools – tie to a specific reference for a list of allowable selections.
– Be specific about the desired presentation format to the operator.
• The system shall be able to process incoming messages at a rate of four (4) per second.
– Define or eliminate the general term “process”.
– Replace with a specific interpretation of the scope of the requirement.
• Two Requirements:
– The system shall extract external message parameters from incoming signals of type XXX defined in Customer
Document V2345 V2.2 dated dddd.
– The system shall complete parameter extraction at a rate of at least four (4) messages per second, sustained for a period
of at least 10 seconds within a 60 second interval.
Note that additional technical detail has been added in deriving the new requirements.
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 29
Some Examples – 3
• Network analysis shall be performed using a Hewlett Packard Model 8149 analyzer.
– Operational requirement, not system oriented
– The COTS device may be obsolete when you need it
– Make the COTS device a customer-directed requirement, if possible
• The system shall provide network analysis tools, including the ACME Corporation Roadrunner Model, series
Z1P*.
* If the customer insists on a specific asset for use in the delivered product, the requirement must
define a specific asset baseline to preclude changes from “creeping” into the program product
requirements. This permits negotiation of a contract change if the customer-directed equipment is
not available when needed.
• The system shall determine the location of a target transmitter with an accuracy of 0.5 KM and be able to
classify signal emitters at a rate of about 100 per second.
• Two Requirements:
– The system shall determine the location of a ground-based target transmitter to within less than or equal to 0.5KM of its
actual location.
– The system shall classify signal emitters against the classifications defined in Customer Specification N5678 Version VV
dated dddd at rates up to at least 100 emitter classifications per second.
• When operated in accordance with the requirements of this specification, the system shall have a Mean Time
Between Failures (MTBF) greater than 5000 hours, in accordance with MIL-STD-XYZ, Revision NN dated
dddd.
• Two Requirements:
– The system shall assign classifications to signals as defined in Customer Classification Guide N3333.
– The system shall classify emitters with no more than 2 errors per 1000 classification operations, averaged over a sample
of 10,000 consecutive classification operations.
• The system shall accept valid operator identification numbers from 1 to 9999.
– Use customer defined set of identification numbers
– Include version/date of document
• The system shall accept only valid operator identification numbers as defined in Operations Order 11-3 dated
10 October 2004.
L3HARRIS
Functional Analysis
• Functional Decomposition
– Begin with the Context Diagram
– Partition the system functionality one level at a time
– Identify the highest level functions
– Requires a good understanding of all external inputs and outputs
– Generally a function will accept an external or intermediate input, transform it into an intermediate or external output
– Decompose to lower layers until sufficient detail available for allocation to the design
• Functional Composition
– Begin by identifying/defining detailed lower level functionality
– Group functions and allocate to the design
• Apply both techniques to improve results
– E.g., use Composition as a sanity check for Decomposition
Target Waveform
• Identify top level functions from the initial requirements set, CONOPS, et al
VHF Emitters
TSARS
– Functions are what the system does, not the system components that will be BCD Agency
Intel Support Data Intel Updates
BCD Agency
• Draw the top level functional block diagram Theater Prime Power
Command
– Name each function with a verb phrase and identifier (e.g., F1, F2, …) Security
• Ultimately, every product provides some utility to a consumer: use cases can help analyze
• Use case
– Contract between a stakeholder and the system regarding system behavior
– Also viewed as a User “goal” for the system
– Coherent story regarding how the system behaves during use
– Scenario from the user’s (or client’s) Point Of View
• Use cases reveal functional requirements
– UCs give rise to lower level functional requirements
– Functional requirements are only a subset of all requirements
• With Model Based SE, Use Cases provide requirements allocation to design
• Use cases align well with other modeling methods
Ivar Jacobson (yah-cob-son) first invented “use cases” in 1967, while working for
Ericsson in Sweden. He coined the Swedish term anvendningsfall, which roughly
means “situation of usage” or “usage case” when translated into English.
• Use cases describe system behaviors in response to actor Typical UC Description Template
(stakeholder) stimulus
– Primary stakeholders provide inputs to the system
– System responds – Use Case: <Name>
– Different sequences (scenarios) of behavior can take place, – Actor(s): <>
– Use case collects related scenarios
– Preconditions: <>
• A system may have a few to many use cases
– Post-conditions:<>
– Dependencies: <Other UCs>
– Includes: <other UCs>
– Description: <>
– Scenario: <Main/Sunny Day>
– Exception/Alternate Scenarios: <Index to
Main Scenario steps>
Equipment
Configuration 1400 ms includes the time
2 required for the COTS device to
HMI_5
Use Case
Equipment perform the change in
HMI CSCI
Configuration configuration and report the
(100 ms)
Use Case response
EM CSCI
(250 ms)
H/W Device
Equipment Performs
Status Command Allocati
Equipment
Collection o n to CO
Status
Use Case TS
22
HMI_2
EM CSCI
Display
(1400 ms)
Use Case
HMI CSCI
(250 ms)
Question: What if a COTS item requires more than the allocated response time?
L3HARRIS
Pitfall: Aggregation of Worst Cases
• During proposal
– Can lead to high cost and potential loss
– Challenge all proposal assumptions that increase cost of the design
• During program execution
– Can lead to cost and schedule overruns and increased life cycle costs
• Over-specifying performance
– Specifying requirements to match a preferred design rather than based on actual system need
– Writing VIDs to match a vendor spec sheet rather than the system need
– Don’t artificially increase requirements just because the design provides higher performance
• Holding too much margin
– “Everybody wants to hold a dB” – competing for margin leads to over-design
– Margin should be held and distributed from the system level
• Customers may over-specify requirements without realizing it
– Validate requirements, and try to understand the underlying rationale
– Challenge any seemingly invalid or excessive requirements
L3HARRIS
Requirements Do’s
• Don’t dally: get the more routine 80% - 90% of requirements work done quickly
– Focus key resources on requirements that need them
– Plan and work off TBx requirements
• Don’t combine requirements using words like: “and,” “or,” “also,” “with,” et al
• Avoid using “etc.,” which opens the way for interpretation
• Avoid terms that invoke possibilities: may, might, could, should, perhaps, and probably.
• Don’t use words that provide escape clauses
– except, if, when, unless, but, et al
• Avoid vague or undefined terms
– To the greatest extent possible, maximum, minimum, state-of-the-art, flexible, user friendly, efficient, several, improved,
adaptable, adequate, simple, et al
• Don’t introduce artificial constraints
L3HARRIS
STRUCTURE OF REQUIREMENTS STATEMENTS
L3HARRIS
Form of the Requirement Statement
verb auxiliary
Use careful consideration when choosing where to locate the condition phase
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 53
Example 2 – Unwanted Condition or State (Subsystem Level)
The System shall include two GFE 4.9 meter parabolic reflector antennas.
This is implementation, and therefore not desirable, but if mandated by the customer, then it
becomes a requirement on the contract.
L3HARRIS WRITING GOOD REQUIREMENTS COURSE T-401-007 56
Example 5 - Environmental
While exposed to the operational environment of Table 10, the System shall
meet the performance requirements of this specification.
L3HARRIS
CHARACTERISTICS OF GOOD REQUIREMENTS
• Correct (C8)
• Rules:
• Conforming (C9)
• Express each requirement only once
• In-Scope (L3Harris)
• Avoid implementation in the requirement – focus on what,
• No Implementation (L3Harris)
not how
• For requirements statements • Level of detail and content appropriate to the level of the
entity addressed
• Necessary (C1)
• System level – less detail; more focused on external actors
• Appropriate (C2)
– “The system shall provide an operator alert.”
• Unambiguous (C3)
• Subsystem level – more detail; more internally focused
• Complete (C4) – “The control subsystem shall send an over-temperature
message to the operator interface.”
• Singular (C5)
• Feasible (C6)
• Verifiable (C7) • Rules:
– Address requirement to the appropriate entity
• Correct (C8) – Express requirement at the appropriate level of detail
• Conforming (C9)
• In-Scope (L3Harris)
• No Implementation (L3Harris)
• For requirements statements • Understandable without the need for other information
• Necessary (C1) • Understandable in its own right without having to
understand a number of others
• Appropriate (C2)
• Guidance:
• Unambiguous (C3)
• Assumes an informed reader
• Complete (C4)
– Understands the program context at the level the requirement
• Singular (C5) is written
• Feasible (C6) • Ok to refer to specific sections of external documents
(ICDs, compliance documents) that are part of the contract
• Verifiable (C7)
• Use additional sentences, tables or graphics to help
• Correct (C8)
ensure complete understanding
• Conforming (C9)
• In-Scope (L3Harris)
• No Implementation (L3Harris)
• For requirements statements • Are the following Complete? If not, what information is
lacking?
• Necessary (C1)
• Appropriate (C2)
• 1. The mounting bracket shall be 6.7” wide.
• Unambiguous (C3)
• 2. The traffic simulation shall model traffic intersection red
• Complete (C4)
and green lights.
• Singular (C5)
• 3. The computer system shall communicate via the local
• Feasible (C6) Ethernet LAN.
• Verifiable (C7) • 4. The system shall operate from a 120VAC power supply.
• Correct (C8)
• Conforming (C9)
• In-Scope (L3Harris)
• No Implementation (L3Harris)
• For requirements statements • Are the following Singular? If not, restate them as singular
requirements
• Necessary (C1)
• Appropriate (C2)
• 1. The traffic simulation shall model and analyze vehicle
• Unambiguous (C3)
behavior at intersections, on-ramps, off-ramps and lane
• Complete (C4) closures.
• Singular (C5) • 2. The targeting system shall designate and range targets
• Feasible (C6) up to 10km distant.
• For requirements statements • Realizable with acceptable risk, within the applicable cost,
schedule, technical and other contractual constraints
• Necessary (C1)
• Appropriate (C2)
• Guidance:
• Unambiguous (C3)
• Seemingly non-feasible requirements may be the result of
• Complete (C4)
misinterpretation and miscommunication – validation can
• Singular (C5) help
• Feasible (C6) • Validate unrealistic requirements with the customer;
• Verifiable (C7) attempt to get them revised
• Conforming (C9)
• In-Scope (L3Harris)
• No Implementation (L3Harris)
• For requirements statements • Can verify that the completed entity satisfies the
requirement by one of the accepted methods: Inspection,
• Necessary (C1)
Analysis, Demonstration, Test
• Appropriate (C2)
• Unambiguous (C3)
• Guidance:
• Complete (C4)
• To be verifiable, requirement must be measurable
• Singular (C5)
• Common problems to watch for:
• Feasible (C6) – Unclear spec of behavior, conditions, states
• Verifiable (C7) – Imprecise ranges of acceptable performance
– Ambiguous terms used
• Correct (C8) – Not feasible
• Conforming (C9) • Be sure that the requirement actually states what you want
• In-Scope (L3Harris) to be verified
• No Implementation (L3Harris)
• For requirements statements • Discuss whether the following meet the Conforming
characteristic
• Necessary (C1)
• Appropriate (C2)
• 1. The system will be transported in C-130 or C-17 aircraft.
• Unambiguous (C3)
• 2. The system shall be capable of detecting target signals
• Complete (C4)
in the frequency range 1.0MHz to 5.0MHz.
• Singular (C5)
• 3. The system s.b.c.o. storage at temperatures from -25
• Feasible (C6) degrees to +125 degrees Fahrenheit.
• Verifiable (C7) • 4. The system shall meet the performance requirements of
• Correct this specification after storage, while properly packed, at
(C8)
temperatures from -25 degrees to +125 degrees
• Conforming (C9) Fahrenheit.
• In-Scope (L3Harris)
• No Implementation (L3Harris)
• Correct (C8)
• Conforming (C9)
• In-Scope (L3Harris)
• No Implementation (L3Harris)
• For requirements statements • Requirement statement should not constrain the developer
by specifying implementation details
• Necessary (C1)
• Appropriate (C2)
• Guidance:
• Unambiguous (C3)
• Requirement statement should focus on the “what” is
• Complete (C4)
needed, not on the “how” it is satisfied
• Singular (C5)
• BUT - If the customer mandates a particular
• Feasible (C6) implementation detail, then that is a real requirement
• Verifiable (C7) – Validate that this is actually the customer need
– Test whether other implementations also suffice; if so, negotiate
• Correct (C8) a revision
• Conforming (C9) • Product families may necessitate implementation
• In-Scope (L3Harris) requirements
• No Implementation (L3Harris)
• In-Scope (L3Harris)
• No Implementation (L3Harris)
L3HARRIS
INCOSE Characteristics of Good Requirements Sets
• For requirements sets / specs • Requirements set is realizable within cost, schedule,
technical and other contractual constraints
• Complete (C10)
• Consistent (C11)
• Guidance:
• Feasible (C11)
• A group of individually feasible requirements may not be
• Comprehensible (C13)
feasible in aggregate as a set
• Able to be Validated (C14)
• Example: An antenna is required to track Geosynchronous
orbits, deploy mounted on the back of a HMMVW and
using its power, and deliver 80dBW EIRP at Ku-band.
Individually, each is feasible, but the set probably is not.
• For requirements sets / specs • As a set, it is clear as to what is expected of the entity and
its relation to the system of which it is a part
• Complete (C10)
• Consistent (C11)
• Guidance:
• Feasible (C11)
• Provide sufficient context in the requirements set for the
• Comprehensible (C13)
overall understanding of the stakeholder audience
• Able to be Validated (C14)
• Organize and catalog the requirements set using a logical
and orderly method.
• Provide rationale in requirements attributes
• Include interface requirements and sufficiently detailed ICD
references
• For requirements sets / specs • Can be proved that the entity developed to meet this set of
requirements will satisfy the true needs
• Complete (C10)
• Consistent (C11)
• Guidance:
• Feasible (C11)
• Must be able to validate both individual requirements and
• Comprehensible (C13)
also the full set
• Able to be Validated (C14)
• Vet the requirements set against test cases that exercise
the system in day in the life scenarios
• Validation must include all requirements, including non-
functional as well as functional
• Ask: “Are we building the right system?”
L3HARRIS
Takeaway: Requirements Do’s
• Don’t combine requirements using words like: “and,” “or,” “also,” “with,” et al
• Don’t use “etc.,” which opens the way for interpretation
• Don’t use terms that invoke uncertainty or confusion
– may, might, could, should, perhaps, and probably
• Don’t use words that provide escape clauses
– except, if, when, unless, but, et al
• Don’t use vague or undefined terms
– to the greatest extent possible, maximum, minimum, state-of-the-art, flexible, user friendly, efficient, several, improved,
adaptable, adequate, simple, et al
• Don’t introduce artificial constraints
• Don’t introduce unnecessary performance enhancements in the requirements
• http://www.jot.fm/issues/issue_2003_07/column7/
• http://www.processimpact.com/articles/qualreqs.html
• http://www.dau.mil/pubscats/pubscats/atl/2005_09_10/turk_so05.pdf
• http://www.reqexperts.com//wp-content/uploads/2015/07/RequirementsExperts_RiskChecklist.pdf
• IEEE Std 1220-2005 Standard for Application and Management of the Systems Engineering Process
• http://www.reqexperts.com//wp-content/uploads/2015/07/RequirementsExperts_RiskChecklist.pdf
• ISO/IEC/IEEEE 15288:2015
• ISO/IEC/IEEE 29148– Software and systems engineering – Life cycle processes – Requirements engineering
L3HARRIS
INCOSE Rules for Writing Good Requirements
• Precision • Concision
– R1 – Use definite articles: “the” not ”a” – R11 – avoid superfluous infinitives (“be able to,” “be capable
– R2 – Use the active voice with the actor clearly identified of”)
– R3 – write at the appropriate layer (system, subsystem, CI) – R12 – use a separate clause for each condition and
– R4 – use only terms defined in the glossary qualification
– R5 – quantify requirements precisely • Non-ambiguity
– R6 – use appropriate units, with tolerances – R13 – Use correct grammar.
– R7 – avoid the use of adverbs – R14 – Use correct spelling.
– R8 – avoid vague terms (relevant, ancillary) – R15 – Use correct punctuation.
– R9 – avoid escape clauses (“so far as possible”) – R16 – Use the logical construct “X AND Y” instead of “both X
– R10 – avoid open ended clauses (etc., including but not limited to) AND Y.”
– R17 – Avoid the use of “X and/or Y.”
– R18 – Avoid the use of “/” except in units
• Singularity • Completeness
– R19 – Write a single, simple, single-thought, affirmative, – R26 – Avoid the use of pronouns.
declarative sentence, conditioned and qualified by relevant sub- – R27 – Avoid using headings to support explanation of
clauses. subordinate requirements.
– R20 – Avoid combinators such as “and,” “or,” “then,” “unless,”
“but,” “/,” “as well as,” “but also,” “however,” “whether,”
“meanwhile,” “whereas,” “on the other hand” and “otherwise.”
– R21 – Use an agreed typographical device to indicate the use of
propositional combinators for expressing a logical condition
within a requirement.
– R22 – Avoid phrases that indicate the purpose of the
requirement.
– R23 – Avoid parentheses and brackets containing subordinate
text.
– R24 – Enumerate sets of entities as explicit requirements
instead of using generalizations.
– R25 – When a requirement is related to complex behavior, refer
to the supporting diagram or model rather than a complex textual
description
• Realism • Abstraction
– R28 – Avoid using unachievable absolutes such as 100% – R33 – Avoid stating a solution – focus on the problem “what”
reliability or 100% availability. rather than the solution “how.”
• Conditions • Quantifiers
– R29 – State applicability conditions explicitly instead of leaving – R34 – Use “each” instead of “all,” “any” or “both” when universal
applicability to be inferred from the context. quantification is intended
– R30 – Express the propositional nature of a condition explicitly – R35 – Define the range of acceptable values associated with
instead of giving lists of conditions. quantities.
– R36 – Provide specific measurable performance targets.
• Uniqueness
– R37 – Define temporal dependencies explicitly instead of using
– R31 – Classify the requirement according to the aspects of the
indefinite temporal keywords.
problem or system it addresses.
– R32 – Express each requirement once and only once.
• Uniformity of Language
– R38 – Define a consistent set of terms to be used in requirement
statements in a glossary – avoid the use of synonyms.
– R39 – If acronyms are used in requirement statements, use a
consistent set of acronyms.
– R40 – Avoid the use of abbreviations in requirement statements.
– R41 – Use a project-wide style guide.
• Modularity
– R42 – Group mutually dependent requirements together.
– R43 – Group related requirements together.
– R44 – Conform to a defined structure or template.