Page 102 -
P. 102

4.1   Functional and non-functional requirements  85



                                                                           Client Managers
                                                                           System End-Users
                                                         User
                                                      Requirements         Client Engineers
                                                                           Contractor Managers
                                                                           System Architects

                                                                            System End-Users
                     Figure 4.2 Readers                 System              Client Engineers
                     of different types               Requirements          System Architects
                     of requirements                                        Software Developers
                     specification




                                          should behave in particular situations. In some cases, the functional require-
                                          ments may also explicitly state what the system should not do.

                                       2.  Non-functional requirements These are constraints on the services or functions
                                          offered by the system. They include timing constraints, constraints on the devel-
                                          opment process, and constraints imposed by standards. Non-functional require-
                                          ments often apply to the system as a whole, rather than individual system
                                          features or services.

                                         In reality, the distinction between different types of requirement is not as clear-cut
                                       as these simple definitions suggest. A user requirement concerned with security,
                                       such as a statement limiting access to authorized users, may appear to be a non-
                                       functional requirement. However, when developed in more detail, this requirement
                                       may generate other requirements that are clearly functional, such as the need to
                                       include user authentication facilities in the system.
                                         This shows that requirements are not independent and that one requirement often
                                       generates or constrains other requirements. The system requirements therefore do not
                                       just specify the services or the features of the system that are required; they also specify
                                       the necessary functionality to ensure that these services/features are delivered properly.



                                4.1.1 Functional requirements

                                       The functional requirements for a system describe what the system should do. These
                                       requirements depend on the type of software being developed, the expected users of
                                       the software, and the general approach taken by the organization when writing
                                       requirements. When expressed as user requirements, functional requirements are
                                       usually described in an abstract way that can be understood by system users.
                                       However, more specific functional system requirements describe the system func-
                                       tions, its inputs and outputs, exceptions, etc., in detail.
                                         Functional system requirements vary from general requirements covering what
                                       the system should do to very specific requirements reflecting local ways of working
                                       or an organization’s existing systems. For example, here are examples of functional
   97   98   99   100   101   102   103   104   105   106   107