You are on page 1of 5

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

You might also like