You are on page 1of 19

REQUIREMENTS ENGINEERING

JIMMA UNIVERSITY
JIMMA INSTITUTE OF TECHNOLOGY
FACULTY OF COMPUTING AND INFORMATICS

CHAPTER EIGHT
REQUIREMENT ENGINEERING BEST PRACTICES AND
TOOLS
Topics we will cover
2

 Requirement engineering emerging trends


 Best practices of requirement engineering
 Requirement engineering tools
Requirement Engineering Emerging trends
3

 Globalization
 Scale
 Dynamic
 Requirement Reuse
Requirement Engineering Emerging
trends
4

Discussion

Discuss
Globalization
Scale
Dynamic
Requirement Reuse
…..in terms of Software Engineering
Globalization
5

 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.
Scale
6

 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.
Dynamic
7

 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.
Requirements Reuse
8

 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.
Best Practices of Requirement
9
Engineering

The result is software


that is Performance
 On Time Engineer
 On Budget Analyst
 Meets/Exceeds Users
Needs
Project
Develop Iteratively
Manager
Developer
Use Model
Manage Verify
Requirements
Component
Architectures
Visually
Quality Tester

Control Changes Release


Engineer
Iterative Development
10
Iteration 1 Iteration 2 Iteration 3

 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!
Requirement Engineering Emerging
trends
11

Discussion

Discuss the characterstics of iterartive development?


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
Problems Addressed by Iterative Development
Root Causes Solutions
 Insufficient requirements Enables and encourages user
feedback
 Ambiguous
Serious misunderstandings evident
requirements
early in the life cycle
 Brittle architectures
 Overwhelming Development focuses on critical
complexity issues – break it down!
 Subjective assessment Objective assessment thru testing
 Undetected and assessment
inconsistencies
Inconsistencies detected early
 Poor testing
 Waterfall development Testing starts earlier – continuous!
 Uncontrolled change Risks identified and addressed
 Insufficient automation early - via planned iterations!

13
Control Changes
14

►Consider: we often have:


 Multiple developers

 Multiple teams

 Multiple sites All at the same time!

 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)
Without explicit control, parallel development leads to chaos!!!!
Problems Addressed by Controlling Changes
Root Causes Solutions
16
 Insufficient Requirements change; workflow is
defined and repeatable
requirements
 Ambiguous Change requests facilitate clear
communications
requirements
 Brittle architectures
Isolated workspaces reduce
 Overwhelming interference from parallel work
complexity Change rate statistics are good
metrics for objectively assessing
 Subjective assessment project status
 Undetected Workspaces contain all artifacts,
inconsistencies facilitating consistency
 Poor testing Change propagation is controlled
 Waterfall development Changes maintained in a robust,
customizable system
 Uncontrolled change
 Insufficient automation
Problems Addressed by Verifying Quality
Root Causes Solutions
17
 Insufficient requirements Testing provides objective
 Ambiguous communications project status assessment
 Brittle architectures Objective assessment exposes
 Overwhelming complexity inconsistencies early
 Subjective assessment (continuous integration
 Undetected helps!)
inconsistencies
Testing and verification are
focused on high risk areas
 Poor testing
 Waterfall development Defects are found earlier and
 Uncontrolled change are less expensive to fix
(because ‘testing’ is
distributed…
 Insufficient automation
Automated testing tools
provide testing for reliability,
Requirement engineering and management
tools
18

Browse for requirement tools

https://www.guru99.com/requirement-management-tools.html
Key Points
19

 Requirement engineering emerging trends


 Best practices of requirement engineering
 Requirement engineering and management tools
Any Question?

20

You might also like