Designing System: Collecting non-functional requirements

September 08, 2022

How to do not miss any requirements?

Single, not spoken, obvious requirement can cross out software design in best case. In worst make product unusable and costly toy. How to not omit anything?

FURPS Model

Formulated by Robert B. Grady and Deborah L. Caswell in Book: Software Metrics: Establishing a Company-Wide Program1 FURPS model of quality requirements collecting

As it claimed

One reason the acronym FURPS is effective is that it is a silly mnemonic which is easy to remember. Using the FURPS model involves two steps: establishing priorities and making quality attributes measurable. Establishing priorities is important because of the tradeoffs involved between quality attributes. For example, adding a new function might improve functionality but decrease performance, usability, and/or reliability. Since each project has different priorities, it is necessary to make an early decision of what kind of quality is most important.

plantuml

How to use it

Following engineers from HP usage of FURPS consists of 2 steps

  • establish priorities to those areas
  • make quality attributes measurable

Giving priorities is important as long as introducing new functionalities can improve some attribues but dectrease others. Having them prioritized provides way to evaluate functionalities.

Second step - assign ways of measurement defined atrtribures is important to define for each stage of software development process

Example is presented following book1

FURPS Table TEST

plantuml


Profile picture

Written by Lukasz Czarny Developer on a path to Software Architect You should follow them on Twitter

© Software Architecture by Cases 2022