What is software requirement engineering?
The requirement for a system are the description of what the system should do, the service or services that it provides and the constraints on its operation. The IEEE Standard Glossary of Software Engineering Terminology
- A condition or capability needed by a user to solve a problem or achieve an objective.
- A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.
- A documented representation of a condition or capability as in 1 or 2
The main types of requirements are:
- Functional Requirements.
- Performance Requirements.
- System Technical Requirements.
- Specifications.
What is a technical requirement?
Technical requirements are the technical issues that must be considered to successfully complete a project. These can include aspects such as performance, reliability, and availability.
Software Requirements1 Requirements are descriptions of the services that a software system must provide and the constraints under which it must operate Requirements can range from high-level abstract statements of services or system constraints to detailed mathematical functional specifications Requirements Engineering is the process of establishing the services that the customer requires from the system and the constraints under which it is to be developed and operated Requirements may serve a dual function: As the basis of a bid for a contract As the basis for the contract itself Requirements Documents “If a company wishes to let a contract for a large software development project it must define its needs in a sufficiently abstract way that a solution is not predefined. The requirements must be written so that several contractors can bid for the contract, offering, perhaps, different ways of meeting the client organisation’s needs. Once a contract has been awarded, the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do. Both of these documents may be called the requirements document for the system.” [A.M. Davis “Software Requirements: Objects, Functions and States”, Englewood Cliffs, 1993] 2.1 Types of Requirement User requirements Statements in natural language plus diagrams of the services that the systems provides and its operational contraints. Written for customers System requirements A structured document setting out detailed descriptions of the system services. 1These notes are based on those provided by Ian Sommerville on his “Software Engineering” text websi CS2 Software Engineering note 2 CS2Ah Autumn 2003 Written as a contract between client and contractor Software specification A detailed software description which can serve as a basis for a design or implementation. Written for developers 2.1.1 Example Definition and specifications User Requirements definition: The software must provide a means of representing and accessing external files created by other tools System Requirements specification: 1. The user should be provided with facilities to define the type of external files 2. Each external file type may have an associated tool which may be applied to the file 3. Each external file type may be represented as a specific icon on the user’s display 4. Facilities should be provided for the icon representing an external file to be defined by the user 5. When a user selects an icon representing an external file, the effect of that selection is to apply the tool associated with the type of external file to the file represented by the selected icon 2.2 Functional, non-functional and domain requirements Functional requirements Statements of services that the system should provide, how the system should react to particular inputs and how the system should behave in particular situations Non-functional requirements Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, et CS2 Software Engineering note 2 CS2Ah Autumn 2003 Domain requirements Requirements that come from the application domain of the system that reflect the characteristics of that domain May be functional or non-functional 2.2.1 Functional requirements Describe functionality or system services Depend on the type of software, expected users and the type of system where the software is used Functional user requirements may be high-level statements of what the system should do; functional system requirements should describe the system services in detail Examples The user shall be able to search either all of the initial set of databases or select a subset from it The system shall provide appropriate viewers for the user to read documents in the document store Every order shall be allocated a unique identifier (ORDER ID) which the user shall be able to copy to the account’s permanent storage area 2.2.2 Non-functional requirements Product requirements – Requirements which specify that the delivered product must behave in a particular way, e.g. execution speed, reliability etc. Organisational requirements – Requirements which are a consequence of organisational policies and procedures, e.g. process standards used, implementation requirements etc. External requirements – Requirements which arise from factors which are external to the system and its development process, e.g. interoperability requirements, legislative requireme CS2 Software Engineering note 2 CS2Ah Autumn 2003 Product requirements Non−functional requirements Portability requirements Usability requirements Reliability requirements Efficiency requirements Delivery requirements Implementation requirements Standards requirements Space requirements Performance requirements Organistational requirements requirements External Ethical requirements Interoperability requirements Legislative requirements Safety requirements Privacy requirements Figure 2.1: Non-functional Requirements
You must be logged in to post a comment.