Module 2/5 · Weeks 4–6 · 27 h

Requirements and success criteria

UAT 493 Unmanned Aircraft Systems and Automation Technology Capstone Project I

About 90 minDraft, awaiting reviewLast updated 27 September 2026

Lesson

By the end of this module you will be able to

  1. Turn stakeholder needs into verifiable system requirements
  2. Check requirement quality against characteristics C1–C9 of the INCOSE Guide to Writing Requirements
  3. Prioritise with MoSCoW and check the effort share of the Must group
  4. Assign each requirement a verification method of inspection, analysis, demonstration or test

Prerequisites: UAT 493 module 1

Why this matters

“The system must detect cracks well” sounds clear, but on delivery day the team and the user may argue about what “well” means. A well-written requirement works like a contract: it says what must be built, how it will be measured and when it counts as done. ISO/IEC/IEEE 29148 and the INCOSE guidance give the principles for writing requirements that are used worldwide.

From needs to requirements

Four layers from top to bottom: stakeholder needs, such as knowing about damage before water leaks; system requirements, such as the system shall identify cracks of 5 cm or more; subsystem requirements, such as the camera shall give a GSD of no more than 2 cm; and verification methods inspection, analysis, demonstration and test
Figure 1. From needs to requirements and verification methods

Requirements are usually written in the pattern “[system] shall [do what] [under what condition] [measurable criterion]”, for example “The system shall identify canal bank cracks 5 cm wide or more with a recall of at least 0.90 on a test image set approved by the user.”

The INCOSE Guide to Writing Requirements, version 4 (2023), defines nine characteristics of an individual requirement: necessary, appropriate, unambiguous, complete, singular, feasible, verifiable, correct and conforming, plus a separate group of characteristics for a set of requirements, such as being complete and consistent.

Example 1. A first automated requirements check

The program looks for common symptoms: vague words, no numbers and several requirements in one (it can check only some characteristics; people still have to review the rest)

import re

VAGUE = ["user-friendly", "fast", "quickly", "adequate", "sufficient", "easy", "approximately",
         "as appropriate", "etc", "and/or", "good", "robust"]

requirements = {
    "R1": "The system shall detect canal bank cracks of 5 cm width or more with recall of at least 0.90.",
    "R2": "The system shall be user-friendly.",
    "R3": "The drone shall fly fast and take good photos.",
    "R4": "The system shall complete one 2 km inspection round in at most 15 minutes of flight.",
    "R5": "The system shall store images and send reports and alert the office.",
    "R6": "The system shall mark each defect with coordinates accurate to within 3 m.",
}
for rid, text in requirements.items():
    words = text.lower()
    issues = [f"vague '{w}'" for w in VAGUE if re.search(r"\b" + re.escape(w) + r"\b", words)]
    if not re.search(r"\d", text):
        issues.append("no measurable value")
    if words.count(" and ") >= 2 or words.count(" shall ") > 1:
        issues.append("several requirements in one")
    print(f"{rid}: {'ok' if not issues else '; '.join(issues)}")
R1: ok
R2: vague 'user-friendly'; no measurable value
R3: vague 'fast'; vague 'good'; no measurable value
R4: ok
R5: no measurable value; several requirements in one
R6: ok

R2 and R3 use words that cannot be measured. R5 combines three things in one requirement, so they cannot be verified separately; it should be split into three. R1, R4 and R6 pass this first check, but we still have to ask whether they are really necessary and feasible, which a program cannot answer.

Prioritising with MoSCoW

A project has limited time, so the team must know what it must have and what it can cut. The Agile Business Consortium’s MoSCoW method uses four groups:

  • Must have: the minimum set that must be delivered; without it the project has failed
  • Should have: important, but the system is still usable without it
  • Could have: desirable; this is the contingency when time runs short
  • Won’t have this time: agreed not to be done in this round, and recorded clearly

The guidance is that Must effort should not exceed 60%. Above that the project is at risk of failure because there is no contingency when problems arise.

Example 2. Checking the MoSCoW shares

effort = {  # requirement: (priority, estimated person-weeks)
    "R1 crack detection": ("Must", 6), "R4 round time": ("Must", 3), "R6 coordinates": ("Must", 2),
    "R5a store images": ("Should", 2), "R5b send report": ("Should", 3),
    "R5c alert office": ("Could", 2), "R7 night flight": ("Won't", 0), "R8 web dashboard": ("Could", 2),
}
total = sum(e for _, e in effort.values())
for group in ("Must", "Should", "Could"):
    share = sum(e for g, e in effort.values() if g == group) / total
    print(f"{group:<6} {share:.0%}")
must = sum(e for g, e in effort.values() if g == "Must") / total
print("Must share OK" if must <= 0.60 else "Must share too high: move items or cut scope")
Must   55%
Should 25%
Could  20%
Must share OK
A horizontal bar split into Must 55 percent, Should 25 percent and Could 20 percent. A dashed line at 60 percent marks the ceiling for Must. Below it reads Won't have this time, recorded but not done in this round
Figure 2. MoSCoW effort shares for the project

Verifying requirements

The NASA handbook lists four verification methods. Every requirement must have its method chosen when it is written; if you cannot think of a way to verify it, the requirement is not good enough yet.

MethodUsed whenExample
Inspectionchecked visually or from documentsregistration marking on the airframe
Analysiscalculated or simulatedendurance from the energy budget
Demonstrationoperation shown without detailed measurementthe user can open the report unaided
Testvalues measured under controlled conditionscoordinate accuracy against reference points

Module lab

Project deliverable: requirements document

  1. Turn the needs from module 1 into 15–25 system requirements in “shall” form, each with a measurable criterion
  2. Run Example 1 on your team’s requirements, fix those that are flagged, then have another team review them against C1–C9
  3. Prioritise with MoSCoW, estimate the effort and check that the Must group is no more than 60%
  4. Assign a verification method to every requirement (inspection, analysis, demonstration, test)
  5. Have stakeholders confirm the Must requirements, and record any changes

Common mistakes

Watch out

  • Using words that cannot be measured, such as fast, good or easy to use
  • Combining several things in one requirement
  • Writing a solution instead of a need, such as naming a camera model in a system-level requirement
  • Making everything a Must, leaving no contingency
  • Not choosing a verification method until test day

Summary

  • Requirements turn needs into “shall” statements with measurable criteria
  • Good requirements have INCOSE characteristics C1–C9, such as being unambiguous, singular and verifiable
  • MoSCoW sets priorities, and the Must group should not take more than 60% of the effort
  • Every requirement needs a verification method: inspection, analysis, demonstration or test

Check your understanding

  1. Which characteristic does “The system shall send reports quickly” violate, and how should it be fixed?
  2. A requirement uses “and” to join three actions. Which characteristic does it violate?
  3. Must work is 7 person-weeks out of a total of 10. Does it meet the MoSCoW guidance?
  4. Which verification method is used to check that the registration marking is on the airframe?
  5. What does “Won’t have this time” mean?
Answers
  1. It is not unambiguous and cannot be verified; it should state a time, such as “within 2 hours after landing”
  2. Singular; it should be split into three requirements
  3. No, because 70% is above 60%
  4. Inspection
  5. It is agreed not to be done in this round, and it is recorded so that the scope is clear

Key formulas

Effort share of the Must group

Key references

  1. INCOSE Requirements Working Group. (2023). Guide to writing requirements (Version 4, INCOSE-TP-2010-006-04). INCOSE. link
  2. International Organization for Standardization. (2018). Systems and software engineering — Life cycle processes — Requirements engineering (ISO/IEC/IEEE 29148:2018). link
  3. National Aeronautics and Space Administration. (2016). NASA systems engineering handbook (NASA/SP-2016-6105 Rev 2). link
  4. Agile Business Consortium. MoSCoW prioritisation. DSDM project framework. link
  5. INCOSE. (2023). INCOSE systems engineering handbook: A guide for system life cycle processes and activities (5th ed.). Wiley. link

Further reading

Study the assigned knowledge units in advance, review media and take the module quiz

In class / field

Team project work, advisor meetings and progress presentations

Learning evidence: Project milestone deliverables

Module quiz

This is a formative self-check, not a graded exam

Knowledge domain: Management, innovation and professional practice · Aircraft, structures and design