Requirement Engineering Lecture 1 and 2 - Chapter 1 - Introduction
Requirement Engineering Lecture 1 and 2 - Chapter 1 - Introduction
• Software requirements are the descriptions of the system services (essential &
desired) and constraints (on system operation and software development
process).
• Requirements are statements of what the system must do, how it must behave,
the properties it must exhibit, the qualities it must possess, and the constraints
that the system and its development must satisfy.
• The institute of electrical and electronics engineers (IEEE) defines a
requirement as - a condition or capability needed by a user to solve a problem
or achieve an objective.
• A user-level facility (e.g. The word processor must include a spell checking and
correction command)
• A very general system property (e.g. The system must ensure that personal
information is never made available without authorization)
• How to carry out some computation (e.g. The overall mark is computed by
adding the students exam, project & coursework marks based on the following
formula. Total = [2 * exam + 3*(project + coursework)]/5
• Constraint on the development of the system (e.g. The system must be
developed using java) etc..
• The most common reasons for project failures are not technical and table 1.1
identifies the main reasons why projects fail. The data is drawn from surveys
conducted by the standish group in 1995 and 1996.
• Incomplete requirements 13.1%
• Lack of user involvement 12.4%
• Lack of resources 10.6%
• Unrealistic expectations 9.9%
• Lack of executive support 9.3%
• Changing requirements/specifications 8.7%
• Lack of planning 8.1%
• Didn’t need it any longer 7.5%
Hence giving emphasis to requirements is crucial in any system dev’t.
04/09/2021 By Software Engineering Department 7
Types of Requirements
Software Requirements are classified as:
User Requirements
System Requirements
………………………………………………….
System Requirements are further classified as:
Functional Requirements
Non-Functional Requirements
• Define the overall qualities or attributes of the resulting system like: (security),
usability, reliability, performance & supportability
• NR specify system properties, such as reliability and safety.
• NR place restrictions on the product being developed, the development process,
and specify external constraints that the product must meet.
• Requirements that come from the application domain of the system and that reflect characteristics
of that domain.
• Domain requirements are not from specific needs of system users. They usually include specialized
terminologies or reference to domain concept - they are difficult to understand
• Implicitness is another problem with domain requirements. They may be new functional
requirements (may be defining specific computations) or can be constraints on existing
requirements.
• These are used to state the high-level business objective of the organization or
customer requesting the system or product.
• They are used to document main system features and functionalities without going
into their nitty-gritty (basic important) details.
• They are captured in a document describing the project vision and scope.
• A key factor in the success of a system is the extent to which the system supports
the business requirements and facilitates an organization in achieving them.
• The suppliers of the software product include individuals and teams that
are
• Are part of the organization that develops the software product or
• Are part of the organizations that distribute the software product or
• Are involved in other product delivery methods (for example,
outsourcing).
• System analysts, designers, developers etc are some examples among
suppliers
• Suppliers who pay for the development of the product are called client.