Lecture No. 9 + 10

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

Software Engineering

Agile Model
• The meaning of Agile is swift or versatile.“
• Agile process model" refers to a software development
approach based on iterative development.
• Agile methods break tasks into smaller iterations, or
parts do not directly involve long term planning.
• The project scope and requirements are laid down at
the beginning of the development process.
• Plans regarding the number of iterations, the duration
and the scope of each iteration are clearly defined in
advance.
• Each iteration is considered as a short time "frame" in
the Agile process model, which typically lasts from one
to four weeks.
• The division of the entire project into smaller parts
helps to minimize the project risk and to reduce the
overall project delivery time requirements.
• Each iteration involves a team working through a full
software development life cycle including planning,
requirements analysis, design, coding, and testing
before a working product is demonstrated to the client.
Phases of Agile Model
Following are the phases in the Agile model are as follows:

1) Requirements gathering
2) Design the requirements
3) Construction/ iteration
4) Testing/ Quality assurance
5) Deployment
6) Feedback
Requirements gathering:
 In this phase, you must define the requirements.
 You should explain business opportunities and plan the
time and effort needed to build the project.
 Based on this information, you can evaluate technical and
economic feasibility.

Design the requirements:


 When you have identified the project, work with
stakeholders to define requirements.
 You can use the user flow diagram or the high-level UML
diagram to show the work of new features and show how
it will apply to your existing system.
Construction/ iteration:
 When the team defines the requirements, the work
begins.
 Designers and developers start working on their project,
which aims to deploy a working product.
 The product will undergo various stages of improvement,
so it includes simple, minimal functionality.

Testing:
In this phase, the Quality Assurance team examines the
product's performance and looks for the bug.
Deployment:
In this phase, the team issues a product for the user's work
environment.

Feedback:
 After releasing the product, the last step is feedback.
 In this, the team receives feedback about the product and
works through the feedback.
Agile Testing Methods:
 Scrum
 Behavior-Driven Development (BDD)
 Exploratory Testing
 Acceptance Test-Driven Development (ATDD)
 Lean Software Development
 eXtreme Programming(XP)
 Feature Driven Development(FDD)
SCRUM
 It's a technique used to address complex issues and
deliver high-quality products simultaneously.
 If an urgent change is required, the team has the
flexibility to adjust.
 Effective collaboration and frequent communication
ensure the success of scrum.
There are three roles in it, and their responsibilities
are:

1) Scrum Master: The scrum can set up the


master team, arrange the meeting and remove
obstacles for the process.
2) Product owner: The product owner makes the
product backlog, prioritizes the delay and is
responsible for the distribution of functionality
on each repetition.
3) Scrum Team: The team manages its work and
organizes the work to complete the sprint or
cycle.
Behavior-Driven Development (BDD)

The following method in agile


testing is behavior-driven
development. The BDD enhances
the communication between the
project stakeholders to facilitate the
members adequately and
understood all the components
before the development process
begins.
Exploratory Testing
 Exploratory testing is a very significant part
of the agile test as it helps discover the
unknown risks from the software that a
simple testing approach could not have
noticed.
 To explore each aspect of the software
functionality, the test engineer creates
various test cases, executes different tests,
and records the process to learn it and
understand its particular flow.
Acceptance Test-Driven Development
(ATDD)
 Another methodology of agile testing
is Acceptance Test-Driven Development
(ATDD). The ATDD approach emphasizes the
customer's requirements by involving the
team members with different viewpoints.
 The team's members of development, testing,
and the customers come together in order to
develop the acceptance test from the
customer's perspective.
Lean Software Development
 Lean software development methodology follows the principle
"just in time production."
 The lean method indicates the increasing speed of software
development and reducing costs.
 Lean development can be summarized in seven phases.

1. Eliminating Waste
2. Amplifying learning
3. Accept commitment
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole
eXtreme Programming(XP)
 This type of methodology is used when customers are
constantly changing demands or requirements, or when they
are not sure about the system's performance.
 Extreme Programming which is denoted as XP. When there is a
continuous modification in the user requirements, we will go
for the extreme programming methodology.
 Just like other agile testing methodologies, Extreme
Programming is also a customer-centric methodology.
Feature Driven Development(FDD)
 This method focuses on "Designing and
Building" features.

 In contrast to other smart methods, FDD


describes the small steps of the work that
should be obtained separately per function.
When to use the Agile Model?

When frequent changes are required.


When a highly qualified and experienced team
is available.
When a customer is ready to have a meeting
with a software team all the time.
Advantage(Pros) of Agile Method
Frequent Delivery
Face-to-Face Communication with clients.
Efficient design and fulfils the business
requirement.
Anytime changes are acceptable.
It reduces total development time.
Disadvantages(Cons) of Agile Model
 Due to the shortage of formal documents, it
creates confusion and crucial decisions taken
throughout various phases can be misinterpreted
at any time by different team members.

 Due to the lack of proper documentation, once


the project completes and the developers
allotted to another project, maintenance of the
finished project can become a difficulty.

You might also like