9/16/2023
SOME TRUE PROBLEMS
• Using a software product that doesn’t let
you perform essential task is frustrating.
The Essential Software • Learning of functionality after the system
Requirement has just been implemented is again
frustrating.
LECTURE # 1 • Interruption for modifying the request
Chapter 1 – Karl Wiegers during the project to replace something
told before.
Chapter 1,2 - Reference
CONSIDERATION
• Expectation Gap
• Cost for change
• 40 – 60% errors in s/w due to
requirement process
Stakeholders RECAP
• Customers & User • Waterfall v/s Iterative
• Requirement / System Analyst
• Designers, Developers &Testers • SDLC
• Documentation Writers • FAST Methodology
• PM • RAD, IE, SAD, RUP
• Legal Staff –
• Manufacturing People, Sales, Marketing.. • Prototyping
• Subject Matter Experts / SME • Agile Methodology
1
9/16/2023
Initiation of Problems Initiation of Problems
• Project scope & vision not clearly defined • Ambiguities & missing information
• Busy customers • Signoff requirements but still change
• User surrogates • Requested changes get lost and the team
• Customers say all requirements critical & & user doesn’t know the status of
don’t prioritize
request
• Specs are satisfied but customer isn’t
RULE!!!!! WHAT ARE REQUIREMENTS ?
• Always document the requirement • Requirements are specifications of what
should be implemented. They are
descriptions of how the system should
behave or of a system property or
attribute. They may be a constraint on
the development process of the system.
LEVELS OF REQUIREMENTS REQUIREMENTS
• Three levels besides nonfunctional requirements • System requirements are a part of functional
• Business Requirements – High level objectives of requirements
org/customer who requested the system. • Business rules – policies, procedures, regulations
– WHAT ARE THE GOALS/ OBJECTIVES? • SRS – documents functional requirements & non
• User Requirements – Describe what the user will be functional requirements
able to do with the system
• Functional Requirements: Also called behavioral
requirements… Developers must build enable users
to do tasks
2
9/16/2023
NON FUNCTIONAL REQUIREMENTS Software requirements
• requirements: specify what to build
• Performance Goals & Quality Attributes – tell "what" and not "how"
• Quality Attributes – usability, portability, integrity, – tell the system design, not the software design
efficiency, robustness – tell the problem, not the solution (in detail)
• External Interfaces b/w system & outside world • What are some goals of doing requirements?
• Design & Implementation constraints 1. understand precisely what is required of the
• Even business rules software
2. communicate this understanding precisely to all
development parties
3. control production to ensure that system meets
specs (including changes)
Requirements abstraction Requirement roles to people
"If a company wishes to let a contract for a large software • roles of requirements
development project, it must define its needs in a sufficiently
abstract way that a solution is not pre-defined. The – customers: show what should be delivered;
requirements must be written so that several contractors can contractual base
bid for the contract, offering, perhaps, different ways of – managers: a scheduling / progess indicator
meeting the client organization's needs. Once a contract has
been awarded, the contractor must write a system definition – designers: provide a spec to design
for the client in more detail so that the client understands and – coders: list a range of acceptable implementations
can validate what the software will do. Both of these / output
documents may be called the requirements document for the
system." – QA / testers: provide a basis for testing, validation,
and verification
Classifying requirements Functional requirements
• Faulk doesn't like the normal way to classify • Examples of functional requirements:
requirements, which is the following:
– The user shall be able to search either all of the
– functional: map inputs to outputs
– nonfunctional: other constraints
initial set of databases or select a subset from it.
• performance, dependability, reusability, safety
• How does Faulk prefer to classify them? – The system shall provide appropriate viewers for
behavioral: everything about implementation
the user to read documents in the document
features, performance, security
can be objectively observed / measured store.
development quality attributes: things about internal
construction – Every order shall be allocated a unique identifier
flexibility, maintainability, reusability
(ORDER_ID) which the user shall be able to copy
subjective, relative; who says what design is more maintainable?
to the account’s permanent storage area.
3
9/16/2023
Non-functional requirements Non-functional requirements
Non-functional
• Examples of non-functional requirements: requir ements
– It shall be possible for all necessary
communication between the APSE and the user to Product Or ganizational External
be expressed in the standard ASCII character set. requir ements requir ements requirements
– The system development process and deliverable Ef ficiency
requir ements
Reliability
requir ements
Portability
requirements
Interoperability
requirements
Ethical
requirements
documents shall conform to the process and
deliverables defined in XYZCo-SP-STAN-95.
Usability Delivery Implementation Standards Legislative
requirements requirements requir ements requirements requirements
– The system shall not disclose any personal
information about customers apart from their Performance Space Privacy Safety
name and reference number to the operators of requirements requir ements requirements requirements
the system.
Requirements example Some requirement measures
Property Measure
• Identify the requirements in the following text Speed Processed transactions/second
User/Event response time
– We will implement our bank teller ATM software in Java. It Screen refresh time
should handle cash withdrawals and deposits in under 5 Size K Bytes
seconds wait time. It should be done in such a way that Number of RAM chips
we can adapt it to our other types of ATMs and machines Ease of use Training time
Number of help frames
for our bank. We will use encrypted network connections Reliability Mean time to failure
to avoid hackers spying on users' account information. Probability of unavailability
Rate of failure occurrence
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability Percentage of target dependent statements
Number of target systems
Essential difficulties Accidental difficulties
• What does "essential" difficulty mean? • What does "accidental" difficulty mean?
something that is hard about reqs, by nature something made difficult by writing reqs poorly
• What are some of the essential difficulties? • What are some of the accidental difficulties?
– comprehension: people don't know what they – written as an afterthought: devs write requirements after
want coding, instead of at beginning
– communication: hard to specify clearly what is – confused in purpose: has too much marketing info, too
wanted imprecise (to let the customer change it later), or has too
– control: can't see which requirements will much design/implementation info in it
dominate schedule – not designed to be useful: no time or thought put in;
– inseparable concerns: can't divide up problem, or makes requirements poor and useless
freeze from change
– lacks essential properties: incomplete
– must compromise on divide-and-conquer, and
make tough trade-offs
4
9/16/2023
Problem analysis, basic issues Requirements exercise
• This phase describes the problem that must • Let's sketch out some requirements for a bank ATM
be solved by the software we will produce software program. This is the software that appears
• elicit requirements from customer on the screen of the ATM and walks you through
– how might this be done? deposits and withdrawals.
• decompose problem into pieces With a partner, come up with 4 requirements for
• organize info, communicate to involved such software, that you think are important. Try to
parties be specific. Write them down and classify each as
• resolve conflicting needs functional/non-functional or
– what is an example of some conflicting needs? behavioral/development quality, to the best of your
ability. Then we'll discuss them together.
• know when to stop
END OF LECTURE # 1
-COMING UP!!!!!!
-Requirement Engineering Process
-Requirements from the customer perspective
- Good Practices for requirement engineering
27