5. Requirements from product development point of view
Requirement Category‘s Different points of view on system
Scalability
Stability
Performance
Security
„Functionality“
Performance
Stress
Usabilty „Stability
“ „scalability
“
6. Requirement Management continues…
Between 40% and 60% of software failures and defects are the result of poor
software management and requirements definition. In plain English, this means
that about half of the problems encountered could have been avoided by
making it clear, from the very beginning, what the customer expected from the
respective project. This is to say that the programming was fine and the
developers did their job well – only they did a different job from what they were
supposed to.
http://www.softwareprojects.org
Read also http://www.projectshrink.com/why-requirements-change-270.html
7. How to find requirements?
● You can find requirements from several sources: Users, Stakeholders,
Business and Development team and many others
● Requirements are trying to define nature of feature/system/solution
more specific than common written document does. This information
is helping development team to design a solution for a need
● There is several common methods to define and gather requirements.
– Traditional Requirement modeling (http://en.wikipedia.org/wiki/Requirements_management)
– RUP/UML based Use Case modeling (http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process)
– Agile XP oriented User Story’s (http://en.wikipedia.org/wiki/Agile_software_development)
● Your task is to figure out a small difference between them
Read more http://en.wikipedia.org/wiki/Requirements_management
8. Why we need requirements from testing point of view?
”Traditional Testing Levels”
„Test Engineers Area“
Customer Requirements Acceptance Testing
System Requirements System Testing
Design Requirements Integration Testing
„Developer's Area“
Component
Unit Testing
Requirements
Implementation
9. Feature
Feature
Feature is functionality of
product/software which
can be seen as one module
of whole product
Do some googling!!
Internal Flame kit has WLAN
Create a wiki page!!
support Internal Flame Kit has
touch screen user interface AboutUserStory
10. Who is defining a Feature?
I would like to have Ok!
Internal Flame Drum Kit What's a plan
Could you deliver it to us?
Actually We have several Nice looking feature propoals.
features for it here We have to do some evaluation
Customer
-Technology?
Idea#1 Idea#1
-Knowledge
-Resource
Idea#2
-Solution?
Idea#3 Idea#4 -Priority?
11. Is product a combination of features?
Standby Mode
Table Drum Mode
MIDI Support
Calory Counter
Touch Screen with single tap
Drum Metronome
12. Is product a combination of features?
Table Drum Mode Standby Mode
Calory Counter MIDI Support
Core Software
Drum Metronome Touch Screen with single tap
14. Feature example 1 (Invented on course 2009-2010)
Calory Counter:
Player can measure calories during training session. This can be
seen as exercise result in web service eg. Facebook application
Feature X * n
Energy usage
15. Feature example 2 (Invented on course 2009-2010)
Table Drummer:
Player drums table board instead of drum can. IFDK kit is able to
use DSP algorithm to detect correct drum sound from environment.
In training mode IFDK is trained to detect drum sounds for
environment.
Table Drum Mode
DSP
Algorithm
16. Customer/Business Requirements?
Touch Screen with single tap
Simple Training Mode
Drum Metronome Calory Counter MIDI Support
Table Drum Mode
Customer Type 1 Customer Type 2 Customer Type 3 Customer Type 4
Who are our target customers?
17. Customer Strategy
Touch Screen with single tap
Simple Training Mode
Calory Counter Drum Metronome Table Drum Mode MIDI Support
Primary Target Secondary Target
Customer Type 1 Customer Type 2 Customer Type 3 Customer Type 4
What is our key customer?
18. Features and release planning
TIME TO MARKET!! For Target Group 1
Feature: Simple Training Mode
Requirement Requirement USE CASE #1 User Story #1
Requirement Requirement USE CASE #2 User Story #2
Requirement Requirement USE CASE #3 User Story #3
TIME TO MARKET!! For Target Group 2
Feature Touch Screen with single tap
CORE/Platform Software Requirement Requirement USE CASE #1 User Story #1
Development Requirement Requirement USE CASE #2 User Story #2
Requirement Requirement USE CASE #3 User Story #3
TIME TO MARKET!! For Target Group 3
Feature: Table Drum mode
Requirement Requirement USE CASE #1
Requirement Requirement USE CASE #2
Requirement Requirement USE CASE #3
Release 0.1
Release 1.0 Release 1.1 Release 1.2
19. Simple Requirement Management Process
Problem Solution
Domain Domain
Feature X * n
Vision of
product Functional
Requirements
Non-Functional
Requirements Test Case
Defines
Use Cases
Design
documents &
User Storys
Customer/Marketing/ implementation
business
FEATURE
VISION/NEED/PROPOSAL
YOU!
Solution
Proposal
20. Traditional Requirement Modeling
• A requirement shall be a complete sentence.
• Sentence has to be understandable, measurable and
testable
• ReqId1 - Tractor has four wheels
• ReqId2 - Tractor has one exhaust pipe
• ReqId3 - Engine of tractor is capable of use flexi fuel
• ReqId4 – The tractor has a hook for trailer
• ReqId5- The tractor shall have a enhanced driving system
Google: requirement specification template and SRS
Software Requirement Specification
21. Functional and non-functional
requirements
Functional Non-Functional
Requirements Requirements
Functional Non-Functional
Requirement Requirement
How it works? "User can select application from ui How fast it is?
"Performance Requirement"
by using wheel button” How stable it is?
”Tractor Startup should take
”Tractor can be driven both minimum 10 seconds”
directions”
”Usability Requirement”
”User interface should be able to
control using simple wheel quide”
Do some googling!!
”The hook can last max 20Kkg
Create a wiki page!! trailer load”
AboutUserStory
22. Traditional Requirement Modelling and Features
Functionality
User Interface Design?
Functional
Requirements
Feature X Usability
Non-Functional Security
Requirements
Performance
Stability
.......
24. Non-Functional Requirement category
examples
Functionality Stability Security
Usabilty
Is our implementation
Is implementation Is our implementation
Implementation should
stable on situation like usable for target secure enough against
work like this way
zzzZZZ? customer? attack type xxx?
Performance Stress Scalability
How good performance our How much we can stress Maintenance
implementation provides our implentation without Is implementation
a problems? How our implementation is easy to maintain?
against competitor? scaling in situation X?
25. Simple Requirement Management Process
Problem Solution
Domain Domain
Feature X * n
Vision of
product Functional
Requirements
Non-Functional
Requirements Test Case
Defines
Use Cases
Design
documents &
User Storys
Customer implementation
FEATURE
VISION/NEED/PROPOSAL
YOU!
Solution
Proposal
26. Use Case
Use Cases
USE CASE
Use Case
Written scenario for action. Also execeptions included
Use Case: Open Application
A use case in software Actor: IFDK User
engineering and systems Step1: Gadget User touches home button
engineering, is a Step2: UI wakeup initiated (if standby)
description of steps or Step3: Home screen is activated
actions between a user (or Setp4: User browses applications specific icons using wheel button
"actor") and a software Step5. Icons are moving on screen left and right
system which leads the Step6: User selects application by pushing wheel button
user towards something
Step7: Application starts up <4 seconds
useful.[1]
Execptions:
Wikipedia 1. If application cannot start there will be note on screen about problem
27. Practice: Create Use Cases
Actor: Player
SYSTEM System: IFDK kit
UC Scenario: Standby mode after boot
1. User turn’s on IFDK by pressing
red button on front panel
2. Screen wil flash and show
welcome text ”Hello my friend!”
Use Case 3. User interface opens after
seconds
4. Screen will show three selection
buttons
5. After 30 seconds user inteface
goes to standby mode
Exeption:
ACTOR
If user activates screenby tapping it
standby counter will be reseted
28. Simple Requirement Management Process
Problem Solution
Domain Domain
Feature X * n
Vision of
product Functional
Requirements
Non-Functional
Requirements Test Case
Defines
Use Cases
Design
documents &
User Storys
Customer implementation
FEATURE
VISION/NEED/PROPOSAL
YOU!
Solution
Proposal
29. User Story
User Story
USER STORY
Do some googling!!
Simple phrase describes a need.
Create a wiki page!! This can lead to several other
storys!
AboutUserStory
"As user I would like to open
application easily"
"As a user I would like to use
wheel for simplify ui interaction"
"As a user I would like to initate
application fast enough"
"As a tractor driver I would like to
have enhanced driving system”
30. Agile Requirement Management
EpicStory0001
Epic Story As a Customer I would
like to have top
quality product
User Story UserStory0002
UserStory0001 Gadget should
have >30fps
As a user UI performace
I would like to
use product
Which is fast to
power on UserStory0003
Gadget should
Startup <5seconds
31. Practice: Create User Storys
USER STORY:
As a bad behavin person I cannot access IFDK using wlan without
encryption
How to test?
Acceptance Criteria?
USER STORY:
As a member of audience I can hear effect sound that player is having
electrical shocks
How to test?
Acceptance Criteria?
32. Use Case, User Story, Requirement
USER STORY USE CASE
Requirement
Measurable Simple phrase describes a need.
Testable This can lead to several other
storys! Written scenario for action. Also execeptions
included
Use Case: Open Application
Functional Actor: Gadget User
Requirement Step1: Gadget User touches home button
"User can select application from ui Step2: UI wakeup initiated (if standby)
"As user I would like to
by using wheel button" open application easily" Step3: Home screen is activated
Setp4: User browses applications specific icons
"As a user I would like to using wheel button
use wheel for simplify ui
Step5. Icons are moving on screen left and right
Non Functional interaction"
Requirement Step6: User selects application by pushing wheel
button
"As a user I would like to
"Performance Requirement" initate application fast Step7: Application starts up <4 seconds
enough" Execptions:
"Application Startup should 1. If application cannot start there will be note on
take minimum 4 seconds" screen about problem