Title: Software Requirements elicitation and natural language specification
1Software Requirements elicitation and natural
language specification
- BY
- Touseef Tahir
- touseeftahir_at_ciitlahore.edu.pk
2Lecture Agenda
- What are software requirements
- Why software requirements are important
- Levels of software requirements
- Categories of software requirements
- Requirement elicitation techniques
- Requirement specification in natural language
3Background knowledge
- Software engineering
- Software engineering phases
- Software development life cycle
4System Definition
- A set or arrangements of elements that are
organized to accomplish some predefined goal by
processing information. And the goal may be a
business function or to develop a product
function.
5System Engineering
Product Engineering
System
Requirement Engineering
Ananalysis
6System Elements
- What are the system elements?
- Software
- Hardware
- People
- Database
- Documentation
- Procedures
7System Hierarchy
- World View (Domains)
- Domain View (Elements)
- Elements View( Sub elements)
8Software Engineering Phases
- Vision focus on why
- Definition focus on what
- Development focus on how
- Maintenance focus on change
Vision
Definition
Development
Maintenance
9Software Requirements - Definition
- Requirements are ... A specification 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. -
Somerville 1997
10Requirements Parts (1)
- Requirements definition
- A statement in natural language plus diagrams of
the services the system provides and its
operational constraints. Written for customers - Requirements specification
- A structured document setting out detailed
descriptions of the system services. Written as a
contract between client and contractor. For
customers developers
11Requirement Engineering Phases
- Requirement Elicitation
- Requirement Analysis Negotiation
- Requirement Specification
- System Modeling
- Requirement Validation
- Requirement Management
12Role of Requirements
13Relationship of Software Requirements
14Why requirement engineering is important
- A survey on 8000 software projects
- Most of the projects failed due to incomplete
requirements - Cost to fix software errors
Requirements 1.0
Design 5.0
code 10.0
Testing 30.0
15Software Requirement in natural language
16Levels of software requirements
- Business requirements
- User/customer requirements
- Functional requirements
- Non-functional requirements
17An Example of Business Requirements
- An embedded system is to be developed for a kiosk
(booth). This system will be sold to the retail
stores and will be used by the store customers.
18An Example of Business Requirements
- For example, a business requirement to generate
maximum revenue from the kiosk would imply the
early implementation of features directly
associated with selling more products or services
to the customer, rather than glitzy features that
appeal to only a subset of customers.
19Kinds of requirements (Spell Checker)
- BR user will be able to correct spelling errors
in a document efficiently. - Spell checker is included as a feature
- UR finding spelling errors in the document and
decide whether to replace each misspelled word
with the one chosen from a list of suggested
words. - FR
- find and highlight misspelled words.
- Display a dialog box with suggested replacements
- Making global replacements
- NFR It must be integrated into the existing
word-processor which runs on windows platform.
20Levels of software requirements(Cont..)
- Functional Requirements
- Define the software functionalities the
developers must build into the product.
21Levels of software Requirements(Cont..)
- Non-Functional Requirements
- Regulations
- Standards
- Quality attributes
22Non-Functional Requirements(Cont..)
23Levels of software Requirements(Cont..)
24Levels of software Requirements(Cont..)
25Categories of software requirements
- Bespoke requirements
- Market Driven Requirements
Particular customer
market segments
26Software Requirements Elicitation
- ...the process of discovering the requirements
for a system by communication with stakeholders
and through the observation of them in their
domain - (Tony Gorschek)
27Elicitation Techniques
- Interviews
- Getting to know the present (domain, problems)
and ideas for future systems - - Hard to see the goals and critical issues,
subjective - Group interviews
- Stimulate each other, complete each other.
- - Censorship, domination (some people may not
get attention)
28Elicitation techniques (Cont)
- Observation
- Map current work, practices, processes
- - Critical issues seldom captured (e.g. you have
to be observing when something goes wrong),
usability issues seldom captured, time consuming
29Elicitation techniques (Cont)
- Task demonstrations
- Clarify what is done and how, current work.
- - Your presence and questions may influence the
user, critical issues seldom captured, usability
problems hard to capture
30Elicitation techniques (Cont)
- Questionnaires
- Gather information from many users (statistical
indications, views, opinions) - - Difficult to construct good questionnaires,
questions often interpreted differently, hard to
classify answers in open questions and closed
questions may be too narrow
31Elicitation techniques (Cont)
- Brainstorming
- Many ideas (none are rejected)
- - Many ideas (have to be sorted and
prioritized), hard to create a good atmosphere,
hard to get everybody involved, small groups,
time consuming
32Elicitation techniques (Cont)
- Use cases and Scenarios
- Concentration on the specific (rather than the
general) which can give greater accuracy - - Solution oriented (rather than problem
oriented),can result in a premature design of the
interface between the problem domain and the
solution
33Elicitation techniques (Cont)
- Prototyping
- Visualization, stimulate ideas, usability
centered, (can be combined with e.g. use cases) - - Solution oriented (premature design), is it
already done?!
34Software Requirement Specification
- Natural language specification
- RFC(Request For Comments) 2119
- Memorandum published by the Internet Engineering
Task Force (IETF)
35Problems with Natural Languages - 1
- Requirement specification in natural language
pose some problems which include - Lack of clarity
- Requirements confusion
- Requirements amalgamation
36Software requirement properties
- Complete
- Feasible
- Unambiguous
- Verifiable
- prioritized
- Traceable
- Consistent
- Not design
- Not combined
- Correct
37Complete
- Requirement
- The system shall play the sound alarm when the
door is opened. - The system shall play the sound C\alarm.wav
once, at the highest volume setting in the main
speaker for the building X when the door Y opens.
38complete(Cont..)
- Requirement (Amalgamation)
- When a user has entered the building, this shall
be registered in the entry log and the users
computer shall be booted. - When a user has entered the building, this
- shall be registered in the entry log.
- When a user has entered the building, the
- users computer shall be booted.
- The system shall register in the entry log
- when a user has entered the building.
39Feasible
- Implementable with current technical support
- Reality check while requirement elicitation
40Prioritization
- Assign an implementation priority
- Releases and software versions
- Microsoft word and notepad
- Methods of prioritization
- E-g 100 dollar method
41Verifiable
- Requirement
- The system shall respond quickly to user
interaction. - The system shall respond to user interaction
within maximum 2 seconds, minimum 0.2 seconds,
average 1 second (with a CPU load of 0.5).
42verifiable(Cont..)
- Requirement
- R11 When a user enters a correct code,
- the door shall open.
- When a user enters the code associated with
him/her on keypad K2 the door D2 shall unlock and
remain unlocked for 30 seconds.
43Traceable
- Backward-traceability Links requirements to their
sources in other documents or people - Forward-traceability Links requirements to the
design and implementation components
44Consistent
- No conflict
- Example
- System must monitor all temperatures in a
chemical reactor. - System should only monitor and log temperatures
below -200 C and above 4000 C.
45unambiguous
- Any two reader understand the requirement in same
way. - Example
- words such as "always," "never," "all, "or
"every. - Incomplete lists ending with "etc.," "and/or,"
and "TBD. - Vague words and phrases such as "generally,"
"normally," "to the greatest extent," and "where
practicable."
46References
- Software requirements objects and states by
Justice Gul M.LIB. - Software engineering (7th edition)by Sommerville
- Human aspects of software engineering by James E.
Tomayko and Orit hazzan - Introduction to software engineering by ronald
J.Leach - Software engineering theory and practice(2nd
edition) by Shari Lawrence Pfleeger - Requirements engineering processes and techniques
by Gerald kotonya and Ian sommerville
47Assignment
- Assignment 1
- Make the group of five members and conduct the
interview of a Head librarian. I will act as a
head librarian and you will have to ask me the
questions in order to know the problems. - During a meeting with a customer (me) you
shall acquire information about which system the
customer wants, and what requirements that the
customer poses on this system. You shall plan the
customer meeting and prepare how you intend to
get the required information from the customer.
You shall conduct the meeting in a professional
manner. You shall bring a printed paper to the
meeting where the names and rollno of all
participants are listed. - Â
- Assignment 2
- Make the observations about the working of
manual library system. Identify different
stakeholders and different scenarios of working.
48Assignment
- Write the requirements (in natural language) for
system described. - You are designing the software for a railway
crossing. A sensor on the rails detects when a
train is arriving and lowers the bars over the
road. The bars remains lowered until another
sensor detects that the train has passed or until
a signal from the Railway Control Centre (RCC) is
received. If the sensors malfunction, or if the
connection to the RCC is lost, the bars are
lowered and shall remain lowered until everything
is working again and they are reset from the RCC.
While the bar is being lowered or raised and
while the bar is in its lowered position, lights
will flash and a bell will ring
49Questions ?
50