Software Requirement
Engineering (SWE – 205)
Software Engineering Department
Sir Syed University of Engineering & Technology Week # 6
Content
• Requirements engineering good practices
• Requirements development process framework
o Requirements elicitation, Requirements analysis, Requirements
specification, Requirements validation
Requirements engineering good practices
Requirements engineering good practices
Requirements engineering good practices
• Mention table lists nearly 46 practices, grouped into seven categories, that can help most
development teams do a better job on their requirements activities.
• These practices aren't suitable for every situation, so use good judgment, common sense,
and experience instead of ritualistically following a script.
• The people who perform or take a lead role in these practices will vary from practice to
practice and from project to project. The business analyst (BA) will play a major role with
many of them, but not every project has a BA. The product owner could perform some of
the practices on an agile project.
Framework for requirements development
Framework for requirements development
Framework for requirements development
• The figure suggests a process framework for requirements development that will work with
sensible adjustments for many projects.
• These steps are generally performed approximately in numerical sequence, but the process
is not strictly sequential.
• The first seven steps are typically performed once early in the project (although the team
will need to revisit priorities periodically).
• The remaining steps are performed for each release increment or iteration.
Requirements elicitation
Requirements Elicitation Process
Background Knowledge
Requirements Gathering
Requirements Classification
Requirements Conflict
Requirements Prioritization
Requirements elicitation Techniques
• Following are some practices that can help with eliciting the unlimited types of
requirements information.
Define vision and scope
Identify user classes and their characteristics
Select a product champion for each user class
Conduct focus groups with typical users
Work with user representatives to identify user requirements
Identify system events and responses
Hold elicitation interviews
Hold facilitated elicitation workshops
Requirements elicitation Techniques
Distribute questionnaires
Perform document analysis
Examine problem reports of current systems for requirement ideas
Reuse existing requirements
Requirements analysis
Requirements analysis
• Requirement Analysis, is the process of defining user expectations for a new software being
built or modified. It involves all the tasks that are conducted to identify the needs of
different stakeholders.
• Analysis includes decomposing high-level requirements into appropriate levels of detail,
building prototypes, evaluating feasibility, and negotiating priorities.
Requirements Analysis Techniques:
• Below is a list of different Requirements Analysis Techniques:
Model the application environment
Create user interface and technical prototypes
Analyze requirement feasibility
Prioritize the requirements
Create a data dictionary
Model the requirements
Analyze interfaces between your system and the outside world
Allocate requirements to subsystems
Requirements specification
Requirements specification
• Requirements specification process of writing down the user and system requirements into
a document. The requirements should be clear, easy to understand, complete and
consistent.
• Record the business requirements in a vision and scope document. User requirements
typically are represented in the form of use cases or user stories. Detailed software
functional and nonfunctional requirements are recorded in a software requirements
specification (SRS)
Requirements Specification Techniques
• Below is a list of different Requirements Specification Techniques:
Adopt requirement document templates
Uniquely label each requirement
Record business rules
Specify nonfunctional requirements
Requirements validation
Requirements validation
• Validation ensures that the requirements are correct, demonstrate the desired quality
characteristics, and will satisfy customer needs.
• Below is a list of different Requirements validation Techniques:
Review the requirements
Test the requirements
Define acceptance criteria
Simulate the requirements
Knowledge
Knowledge
• Because the requirements process is essential, all project stakeholders should understand
the concepts and practices of requirements engineering.
• Training can increase the expertise and comfort level of those who serve as analysts, but it
can't compensate for missing interpersonal skills or a lack of interest.
• Similarly, developers should receive grounding in the concepts and terminology of the
application domain.
Knowledge
Good practices in knowledge include:
• Train requirements analysts.
All team members of RE process should receive basic training in requirements engineering for several
days. Skills include patient, well organized, interpersonal and communication, understanding of the
application domain.
• Educate user representatives and managers about software requirements.
Users should receive one or two days of education about requirements engineering. The training will
help understanding the value of emphasizing requirements, the activities and deliverables involved,
and the risks of neglecting requirements processes.
• Train developers in application domain concepts.
To help them achieve a basic understanding of the application domain. This can reduce confusion,
miscommunication, and rework down the road.
• Create a project glossary.
Include synonyms, terms that can have multiple meanings, and terms that have both domain-specific
and everyday meanings. This will reduce misunderstandings.
Requirements Management
Requirements management
• The purpose of requirements management is to ensure that an organization documents,
verifies, and meets the needs and expectations of its customers and internal or external
stakeholders.
• Requirements management does not end with product release. From that point on, the
data coming in about the application’s acceptability is gathered and fed into the
Investigation phase of the next generation or release. Thus the process begins again.
• Many Managing tools used for managing software requirement, such as- Jama, Jira ,
Modern Requirements etc.
Requirements Management Techniques
• Below is a list of different Requirements Management Techniques:
Establish a requirements change control process
Perform impact analysis on requirements changes
Maintain a history of requirements changes
Track the status of each requirement
Track requirements issues
Use a requirements management tool
Project management
Project management
• Project management is the process of leading the work of a team to achieve goals and meet
success criteria at a specified time.
• The primary challenge of project management is to achieve all of the project goals within
the given constraints.
• All the project management types is that they focus on three important goals: time, quality,
and budget.
Approaches of project management
• Select an appropriate software development life cycle
• Plan requirements approach
• Base project plans on requirements
• Identify requirements decision makers
• Renegotiate project commitments when requirements change
• Analyze, document, and manage requirements-related risks