This document discusses requirement engineering best practices and tools. It covers emerging trends in requirement engineering like globalization, scale, dynamic requirements, and requirement reuse. Some best practices discussed are iterative development, controlling changes, and verifying quality. Iterative development addresses risks early and encourages user feedback. Controlling changes is important when multiple teams are working in parallel. Verifying quality through testing exposes issues early. Finally, the document provides a link to browse requirement management tools.
1. J I M M A U N I V E R S I T Y
J I M M A I N S T I T U T E O F T E C H N O L O G Y
F A C U L T Y O F C O M P U T I N G A N D I N F O R M A T I C S
C H A P T E R E I G H T
REQUIREMENT ENGINEERING BEST
PRACTICES AND TOOLS
REQUIREMENTS ENGINEERING
1
2. Topics we will cover
Requirement engineering emerging trends
Best practices of requirement engineering
Requirement engineering tools
2
5. Globalization
Team members located in separate geographical
workspace.
Different culture and skills.
The distributed requirements needs:
Efforts to be gathered and managed.
Communicating these requirements among various
distributed parties.
Downstream activities such as design, implementation
and testing requires new RE methodologies to support
them.
5
6. Scale
Requirements from large scale systems involve a
considerable flow of requirements that need to be carefully
managed and evaluated.
Large scale systems characterized By:
Number of requirements
Number of people employing the system for different
purpose
Amount of requirements stored, accessed, manipulated,
and refined.
Number of connections and interdependencies among
software components.
6
7. Dynamic
Requirements Engineering is concerned with static
elicitation, representation, and analysis of
requirements.
Advances in technologies and systems that are highly
adaptive and dynamic with high rate of change.
7
8. Requirements Reuse
The reuse of existing and past requirements artifacts
for future usage is a common trend nowadays.
For an artifact to be reused it should have a standard
pattern such as context, domain, problem, properties
and consequences.
8
9. Best Practices of Requirement Engineering
The result is software
that is
On Time
On Budget
Meets/Exceeds Users
Needs
Project
Manager
Performance
Engineer
Release
Engineer
Analyst
Developer
Tester
Control Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Model
Visually Verify
Quality
9
10. Iterative Development
• Earliest iterations address greatest risks
• Each iteration produces an executable release
• Each iteration includes integration, test, and assessment!
• Objective Milestones: short-term focus; short term successes!
Iteration 1 Iteration 2 Iteration 3
10
12. Iterative Development Characteristics
► Critical risks are resolved before making large investments
► Initial iterations enable early user feedback
Easy to resolve problems early.
Encourages user feedback in meaningful ways
► Testing and integration are continuous – assures
successful integration (parts all fit)
Continuous testing.
► Objective milestones provide short-term focus
► Progress measured by assessing implementations
► Partial implementations can be deployed
Waterfall method – no delivery
Incremental development? May be some great values
in delivering key parts of application. Critical
components delivered first?
► No big-bang approach!
12
13. Enables and encourages user
feedback
Serious misunderstandings evident
early in the life cycle
Development focuses on critical
issues – break it down!
Objective assessment thru testing
and assessment
Inconsistencies detected early
Testing starts earlier – continuous!
Risks identified and addressed
early - via planned iterations!
Problems Addressed by Iterative Development
Root Causes Solutions
Insufficient requirements
Ambiguous
requirements
Brittle architectures
Overwhelming
complexity
Subjective assessment
Undetected
inconsistencies
Poor testing
Waterfall development
Uncontrolled change
Insufficient automation
13
14. 14
Without explicit control, parallel development leads to chaos!!!!
Control Changes
►Consider: we often have:
Multiple developers
Multiple teams
Multiple sites
Multiple iterations
Multiple releases
Multiple projects
Multiple platforms
May have multiple developers organized into different teams at multiple sites all
working
together on multiple iterations, releases, products, and platforms
(mostly based on the software architecture)
All at the same time!
15. 16
Problems Addressed by Controlling Changes
Requirements change;
workflow is defined and
repeatable
Change requests facilitate clear
communications
Isolated workspaces reduce
interference from parallel work
Change rate statistics are good
metrics for objectively
assessing project status
Workspaces contain all
artifacts, facilitating
consistency
Change propagation is
controlled
Changes maintained in a
robust, customizable system
Root Causes Solutions
Insufficient
requirements
Ambiguous
requirements
Brittle architectures
Overwhelming
complexity
Subjective assessment
Undetected
inconsistencies
Poor testing
Waterfall development
Uncontrolled change
Insufficient automation
16. 17
Problems Addressed by Verifying Quality
Testing provides objective
project status assessment
Objective assessment exposes
inconsistencies early
(continuous integration helps!)
Testing and verification are
focused on high risk areas
Defects are found earlier and
are less expensive to fix
(because ‘testing’ is
distributed…
Automated testing tools
provide testing for reliability,
functionality, and performance
Root Causes Solutions
Insufficient requirements
Ambiguous communications
Brittle architectures
Overwhelming complexity
Subjective assessment
Undetected
inconsistencies
Poor testing
Waterfall development
Uncontrolled change
Insufficient automation
17. Requirement engineering and management
tools
https://www.guru99.com/requirement-management-tools.html
Browse for requirement tools
18
18. Key Points
Requirement engineering emerging trends
Best practices of requirement engineering
Requirement engineering and management tools
19