Sie sind auf Seite 1von 18

Requirement Engineering -2

Requirement
• 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 speciation's.
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
organization's needs. Once a contract has been
awarded, the contractor must write a system dentition
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..
Types of Requirement
1-User Requirement
2-System Requirement
3-Software Specification
User Requrements
• Statements in natural language plus diagrams
of the services that the systems provides and
its operational constraints.
• User requirements, often referred to as user
needs, describe what the user does with the
system, such as what activities that users must
be able to perform. User requirements are
generally documented in a User Requirements
Document (URD) using narrative text.
System Requirement
• A structured document setting out detailed
descriptions of the system’s functions, services and
operational constraints. Defines what should be
implemented so may be part of 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
Specification
• A detailed, exact statement of particulars,
especially a statement prescribing materials,
dimensions, and quality of work for something
to be built, installed, or manufactured.
Functional and Non-Functional
Requrement
• Functional requirements concentrate on
achieving a task without paying attention to
the quality factors that users of a system
might expect implicitly. On the other hand,
non-functional requirements are about how
well a software/system should perform.

Example
• Users shall be able to log in using log in
screen.
• This requirement above is a basic functional
requirement.
• User credentials shall be checked within 0,1
seconds.
• This requirement above is a non-functional
requirement considering the PERFORMANCE
aspect of the system.
Non Functional
• Here is a list of quality factors that fall into the
non-functional area:
• Availability: A system’s availability, or “uptime,” is
the amount of time that it is operational and
available for use. This is specified because some
systems are designed with expected downtime
for activities like database upgrades and backups.
• Efficiency: Specifies how well the software
utilizes scarce resources: CPU cycles, disk space,
memory, bandwidth, etc.
Con…
• Flexibility: If the organization intends to increase
or extend the functionality of the software after it
is deployed, that should be planned from the
beginning; it influences choices made during the
design, development, testing, and deployment of
the system.
• Portability: Portability specifies the ease with
which the software can be installed on all
necessary platforms, and the platforms on which
it is expected to run.
Con…
• Integrity: Integrity requirements define the security
attributes of the system, restricting access to features or
data to certain users and protecting the privacy of data
entered into the software.
• Integrity involves maintaining the consistency, accuracy,
and trustworthiness of data over its entire life cycle. Data
must not be changed in transit, and steps must be taken to
ensure that data cannot be altered by unauthorized people
• Performance: The performance constraints specify the
timing characteristics of the software. Certain tasks or
features are more time-sensitive than others; the
nonfunctional requirements should identify those software
functions that have constraints on their performance.
Con…
• Reliability: Reliability specifies the capability of the
software to maintain its performance over time.
Unreliable software fails frequently, and certain tasks
are more sensitive to failure (for example, because
they cannot be restarted, or because they must be run
at a certain time).
• Reusability: Many systems are developed with the
ability to leverage common components across
multiple products. Reusability indicates the extent to
which software components should be designed in
such a way that they can be used in applications other
than the ones for which they were initially developed.
Con…
• Robustness: A robust system is able to handle
error conditions gracefully, without failure. This
includes a tolerance of invalid data, software
defects, and unexpected operating conditions.
• Scalability: Software that is scalable has the
ability to handle a wide variety of system
configuration sizes. The nonfunctional
requirements should specify the ways in which
the system may be expected to scale up (by
increasing hardware capacity, adding machines,
etc.)
Example of Scabiility
• Scalable software typically refers to
business applications that can adapt to support an
increasing amount of data or a growing number of
users. For example, a scalable database management
system (DBMS) should be able to efficiently expand as
more data is added to the database. Scalable Web
hosting software should make it easy to add new users
and new Web hosting accounts. They key is that the
software "grows" along with the increased usage. This
means scalable programs take up limited space and
resources for smaller uses, but can grow efficiently as
more demands are placed on the software.
Con..
• Usability: Ease-of-use requirements address
the factors that constitute the capacity of the
software to be understood, learned, and used
by its intended users.
• First Assignment- Marks 5

Das könnte Ihnen auch gefallen