Software Requirements and The Requirements Engineering Process - Lect 1
Software Requirements and The Requirements Engineering Process - Lect 1
10/28/2023
It is the descriptions of
It is about WHAT not Nothing can be said the services provided by
What is a HOW obvious a system and its
operational constraints
User requirement: A user found a new job announcement,I wants to add a new
position to the website so s/he can start working on doing the initial research and
apply to it
System requirement: A registered user on the academic jobs website should be able to
add a new position listing with the name of the school and academic unit, date of
posting, date of expiry, application deadline, and contact and application details. The
interaction fails if: the position is already listed, the application deadline is in the past,
position announcement is expired, or the contact information is missing. If fails, point
mistakes to user and ask the user to fix and resubmit.
Types of requirements
User Problems:
◼ Deliverables
◼ Elaborate the user requirements to get a precise, detailed and complete
version of them
◼ Used by designers and developers
◼ An important aspect is how to present/write system requirements
◼ Natural language is often used!
◼ The difference between user and system requirements must not be
thought as a detail
System
requirements
◼ Example: If sales for current month are below target sales, then
report is to be printed unless difference between target sales and
actual sales is less than half of difference between target sales and
actual sales in previous month, or if difference between target sales
and actual sales for the current month is less than 5%.
◼ Problems:
◼ Difficult to read
◼ Ambiguity: sales and actual sales, 5% of what?
System
◼ Incomplete: what if sales are above target sales?
requirements
Natural language (informal requirements)
• Reviled by academics
• But widely practiced: everybody can read them, finding a
better notation is hard
Formal specification
• Based on logic, state machines…
• Hard to understand for many people
Product behavior
Product requirements
External requirements
Example: Interoperability,
legislation, ethics
Non-functional requirements
Non-functional
requir ements
◼
Requirements documentation
Requirements validation
◼ Requirements management
Requirement engineering
Feasibility Requirements
study elicitation and
analysis
Requirements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
◼ It is done at first to decide whether or not
the project is worthwhile
Feasibility ◼ Look at different perspectives:
◼ Market analysis, financial, schedule, technical,
study resource, legal…
◼ Should make you aware of the risks
◼ Doing the study
◼ Consult information sources: managers,
software engineers, end users…
Feasibility ◼ Based on information collection (interviews,
study surveys, questionnaires…)
◼ Should be short (2-3 weeks)
◼ What if the system wasn’t implemented?
◼ What are current process problems?
◼ Do technical resources exist?
◼ What is the risk associated with the
technology?
◼ Is new technology needed? What skills?
Feasibility study ◼ How will the proposed project help?
◼ How does the proposed project
contribute to the overall objectives of the
organization?
◼ Have the benefits identified with the
system being identified clearly?
◼ What will be the integration
problems?
◼ What facilities must be supported by
the system?
◼ What is the risk associated with cost
and schedule?
Feasibility study ◼ What are the potential
disadvantages/advantages?
◼ Are there legal issues?
◼ Are there issues linked with the fact
that this is an offshore project?
◼ …