Requirments Engineering
Table of contents
Types of requirements
Requirements are categorized into two, user requirements and system requirements, in simple terms, user requirements are abstract (general) while system requirements are detailed. User Requirements are written for the comprehension of customers or non-technical people, these requirements are written in natural language and/or diagrams to represent or describe the services of the System Requirements are written as a guide during the development process, they set out detailed descriptions of the systems functions, services and operational constraints. They should clearly and explicitly define what should be implemented. Examples User Requirement System Requirement
The system shall generate salaries for each employee
On the last day of each month, the total number of hours worked by each employee will be generated
The number of hours shall then be multiplied by the hourly rate of each employee to generate the salary Target Audience/readers User Requirement System Requirements Client Manager System end-users Client Engineers Contractor managers System Architects System end users (not mandated) Client Engineers System architects Software developers System requirements Now that we fully understand the difference between User Requirements and System requirements, for the remainder of these notes, we shall focus on System Requirements (the detailed ones) System requirements explicitly define what the system will do. These requirements can be broadly categorized into two. Functional and Non-function requirements. To fully understand the difference between functional and non-function requirements. We must first clearly understand what a requirement is, by definition, we said “Requirements describe the services that the system will provide to the user as well as the constraints under which the system will operate”. Notice that requirements consist of two parts, the services and the constraints.
Services are what the system will do for you, e.g. “the systems shall play a song”.
Constraints are boundaries under which the system should operate e.g. “The system will only play a song if the battery level is above 5%” Now that we know the 2 parts that make up a requirement:
Function requirements describe Services
Non-Functional Requirements describe Constraints Functional Requirements Describes the services that the system will provide, how the system will react to particular inputs and how the system will behave in particular situations, may also state what the system should not do. Non-function Requirements Describe the constraints (boundaries or limitations) on the services offered by the systems such as timing constraints, development constraints, laws, standards etc. Non-functional requirements can be categorized into 3;
Product Requirements: specifies behaviors of the delivered product e.g. reliability, execution speed etc.
Organizational Requirements: specifies the policies and procedures under which the systems should be bound or operate, e.g. process models, standards etc.
External requirements: species the factors that govern the environment in which the system will operate in, e.g. interoperability requirements, legislative requirements etc. Domain Requirements In addition to Functional and non-functional requirements, we also have Domain requirements.
Domain requirements specify the requirements of its environment of operation. For example, a train system must take note of the braking characteristics in different weather conditions. Domain requirements may describe new functional requirements or constraints of existing requirements, this is because they usually require specific computations of a particular occurrence in the operating environment, i.e. Weather. If Domain requirements are not satisfied, the system might not work even though it works just fine in other environments.