Академический Документы
Профессиональный Документы
Культура Документы
Requirement Engineering
Evolutionary Requirements
Requirements are capabilities and conditions to which the system and more broadly, the
project must conform. The UP promotes a set of best practices, one of which is managing the
requirements. I believe that the term "contextual practice" makes far more sense because what is
a "best practice" in some situations proves to be a "worst practice" in others (Scott Ambler).
Finding Requirements
Where do requirements come from?
Your project stakeholders,
Developers can SUGGEST requirements, but stakeholders need to adopt the
suggestions.
In fact it is the responsibility of project stakeholders to provide, clarify, specify, and
prioritize requirements
Furthermore, it is the right of project stakeholders that developers invest the time to
identify and understand those requirements
The RUP welcomes any requirements elicitation method that can add value and increase user
participation.
Requirement Categories
There are two basic requirement categories used across the industry
Behavioral
A behavioral requirement describes how a user will interact with a system (user interface
issues), how someone will use a system (usage), or how a system fulfills a business function
(business rules). Often referred to as functional requirements.
Non-behavioral
A non-behavioral requirement describes a technical feature of a system, features typically
pertaining to availability, security, performance, interoperability, dependability, and reliability.
Often referred to as "non-functional" requirements due to a bad naming decision made by the
IEEE. (non-functional implies that it doesn't do anything)
The distinction between behavioral and non-behavioral requirements is fuzzy. A performance
requirement (non-behavioral) describing the expected speed of data access is clearly technical in
nature but will also is reflected in the response time of the user interface, which affects usability
Page 2 of 8
Sara Hariri
and potential usage. Access control issues, such as who is allowed to access particular
information, is clearly a behavioral requirement although they are generally considered to be a
security issue which falls into the non-behavioral category. Dont allow yourself to get hung up
on issues such as this. The critical thing is to identify and understand a given requirement, if
you miss-categorize the requirement who really cares?
Why Requirements?
Inadequate, incomplete, erroneous, and ambiguous requirements are an ongoing source of
problems in systems development. Unsatisfactory requirements result in missed schedules,
budget overruns, and systems that are unresponsive to customer needs. Unacceptable results
are attributed to the poorly defined and ill-understood processes used to elicit, specify, analyze,
manage, and validate requirements.
Requirement Skills
RE Skills
Interviewing
Group work
Facilitation
Negotiation
Analytical
Problem solving
Presentation
Modeling
RE Knowledge
Domain knowledge
Experience with management and traceability tools
CASE tools
General modeling techniques
Inception
Elicitation
Elaboration
Negotiation
Page 3 of 8
Sara Hariri
5. Specification
6. Validation
7. Requirement Management
Elicitation Problems
Problems of Scope
You have to define the Scope of your system. You need to know all the boundaries and
what exactly the system aims to do. This is something that you come up with your
customer. If you do not define the boundaries of your system, later on you do not know
how to clarify what technical detail is out of scope. That means you will have problem
with your customer wanting more features, which is not within the scope of your
system.
Problems of Understanding
You need to have full understanding of your system. You will get familiar with the
system more in time. At first, you need to ask more questions and try to have more
detail information about the need of your customer. Not specific in details of the system
and therefore not detail and specific requirements will end up in not exact
understanding of the system and will end up with vague requirements which each side
of the project may have their own understandings of it. Your requirements need to be in
detail.
Problems of volatility
Requirements change during the time. You need to find the related requirements to the
one, which has changed, and correct them.
Purpose of Requirements
Serves as the basis of agreement among developers, customers, and users on the job to be done.
Requirements capture customer objectives, expectations, and constraints and ensures the
customers objectives are mutually understood. Serves as a tool to incorporate quality attributes
such as usability, maintainability, reliability. Requirements also provides contractual acceptance
criteria for acceptance testing of the delivered systems; establishes a baseline from which to
control system evolution. Furnishes a sound basis for resource estimation (cost, personnel,
quantity and skills, equipment, and time).
Page 4 of 8
Sara Hariri
Key Definitions
Requirement: A statement mandating that something must be accomplished,
transformed, produced, or provided.
Primary Requirement A requirement is primary if it is levied on a contractor/producer
under force of contract.
Derived Requirement A requirement that is further refined from a primary source
requirement or a higher level derived requirement. A derived requirement can also
result from choosing a specific implementation for a system element.
Need The lack of something requisite, desirable, or useful.
Expectation Something considered reasonable, due or necessary.
Constraint A requirement that imposes a restriction or limitation on the design or
implementation of a system, product, or component.
Want The larger set of customer desires from which needs are determined.
Needs
Missions
Expectations
Qualities
Priorities
Objectives
Capabilities
Goals
Characteristics
Properties
The requirements phase is complete when we have a complete description of the external
behavior of the software to be built. Requirements describe WHAT the system (or software) will
do without describing HOW it will be done.
Page 5 of 8
Sara Hariri
Types of Requirements
Functional
Performance
Environmental
Interface
Constraints
Failure
a system failure?
External
Specification Wording
Shall - Use whenever a binding specification is expressed
Should or May - Use to express non-mandatory provisions
Will - Use to express simple future or declaration of purpose on the part of the
contracting agency
And/Or, Either/Or Dont use
Could, Might, Possibly Dont use
Phrases including such as, "but not limited to" and "as a minimum" provide a basis for
expanding a requirement or adding future requirements.
The total number of weak phrases found in a document is an indication of the extent
that the specification is ambiguous and incomplete.
The + refers to
Requirement Documentation
The Agile community doesnt require a specific set of documentation nor a given format
for each suggested types. UP offers several optional requirements artifacts.
Use-Case Model typical user scenarios
Supplementary Specification all requirements not in the use cases
Glossary contains terminology and includes the concept of the data dictionary
Records requirements related to data, such as validation rules, acceptable values etc.
Vision Summarizes high-level requirements that are elaborated in the use-case model
and supplementary specification
Business rules requirements or policies that transcend the project these are required
by the domain or the business
Page 7 of 8
Sara Hariri
Page 8 of 8
Sara Hariri