Requirements  

Engineering

"Basic Patterns"

Software Engineering

Dr. Jose María Alvarez-Rodríguez

 

Examples of Patterns

  • No unique

  • No all

  • They should be adapted depending on the  context

    • Domain
    • Requirement type
    • ...
  • They need a domain vocabulary: concepts and relationships

  • ...

Pattern #1

<system>  shall <action> 

  • The <system> can be the whole system, a subsystem or a component.
    • Car, braking subsystem, brake pedal, etc.
  • The action or capability  in simple future.

The car  shall speed up.

Pattern #2

<sytem> shall <action> <entity>

The car  shall brake when the brake pedal is pressed

Pattern #3

<system> shall allow <entity> to be  <state_X>

  • ...
  • The <state_X> represents a domain verb or concept.

The car shall allow the engine to be idle.

Pattern #4

<system> shall be <entity>

The car  shall be idle.

Pattern #5

<system> shall have <entity>

The car shall have a brake pedal.

Pattern #6

<system> shall have <quality_factor>  

by at least <quantity> <unit>

 

 

The heating subsystem shall have an availability

by at least 4 hours.

 

 

  • Magnitude and unit of measurement

 

Pattern #7

<system> shall have <quality_factor>  

of a maximum <quantity> <unit>

 

 

The heating subsytem  shall have an availability of a maximum  6 hours.

 

 

Pattern #8

<system> shall not <action>​ 

 

 

  • Negative requirements! (potentially infinite!)

The car shall not hibernate.

 

 

Pattern #9

<system> shall not <action> <entity>

 

 

The car shall not speed up when the brake pedal is pressed.

 

 

Pattern #10

<system> shall not allow <entity> to be in  <state_X>

 

 

The car shall not allow drivers to be driving without the seat-belt.

 

 

Pattern #11

<system> shall not allow  <action> <entity>

 

 

The car shall not allow changes in the engine controller.

 

 

Pattern #12

<user> shall be able to perform <action>

 

 

The driver shall be able to change the gear manually.

 

 

Pattern #13

<system> shall be in <state_X> <quantity> <unit>

 

 

The engine shall be in idle state after 5 minutes.

 

 

...more patterns?...

Design

  • Domain
  • Need
  • Vocabulary
  • Type of requirement
  • ...

Credits

Patterns and Requirements Engineering

By Jose María Alvarez

Patterns and Requirements Engineering

  • 1,379