Unit 2: �Software Processes �and� Agile Software Development�
Prepared by
Er. Binod Kumar Rajbhar
Er. Binod Kumar Rajbhar
1
8/13/2023
2.1 Software Process Models�
Er. Binod Kumar Rajbhar
2
8/13/2023
Er. Binod Kumar Rajbhar
3
8/13/2023
Waterfall Model�
Er. Binod Kumar Rajbhar
4
8/13/2023
The following illustration is a representation of the different phases of the Waterfall Model.�
Er. Binod Kumar Rajbhar
5
8/13/2023
Er. Binod Kumar Rajbhar
6
8/13/2023
Er. Binod Kumar Rajbhar
7
8/13/2023
Advantages�
Er. Binod Kumar Rajbhar
8
8/13/2023
Disadvantages�
Er. Binod Kumar Rajbhar
9
8/13/2023
Spiral Model�
Er. Binod Kumar Rajbhar
10
8/13/2023
It includes estimating the cost, schedule and resources for the iteration. It also involves understanding the system requirements for continuous communication between the system analyst and the customer
Identification of potential risk is done while risk mitigation strategy is planned and finalized
It includes testing, coding and deploying software at the customer site
Evaluation of software by the customer. Also, includes identifying and monitoring risks such as schedule slippage and cost overrun
Er. Binod Kumar Rajbhar
11
8/13/2023
Advantage and Disadvantage
Er. Binod Kumar Rajbhar
12
8/13/2023
Iterative Model�
Er. Binod Kumar Rajbhar
13
8/13/2023
The various phases of Iterative model are as follows:�
1. Requirement gathering & analysis: In this phase, requirements are gathered from customers and check by an analyst whether requirements will fulfil or not. Analyst checks that need will achieve within budget or not. After all of this, the software team skips to the next phase.
2. Design: In the design phase, team design the software by the different diagrams like Data Flow diagram, activity diagram, class diagram, state transition diagram, etc.
3. Implementation: In the implementation, requirements are written in the coding language and transformed into computer programmes which are called Software.
Er. Binod Kumar Rajbhar
14
8/13/2023
4. Testing: After completing the coding phase, software testing starts using different test methods. There are many test methods, but the most common are white box, black box, and grey box test methods.
5. Deployment: After completing all the phases, software is deployed to its work environment.
6. Review: In this phase, after the product deployment, review phase is performed to check the behavior and validity of the developed product. And if there are any error found then the process starts again from the requirement gathering.
7. Maintenance: In the maintenance phase, after deployment of the software in the working environment there may be some bugs, some errors or new updates are required. Maintenance involves debugging and new addition options.
Er. Binod Kumar Rajbhar
15
8/13/2023
2.2 Process activities�
Er. Binod Kumar Rajbhar
16
8/13/2023
2.3 Coping with change�
Er. Binod Kumar Rajbhar
17
8/13/2023
Two related approaches may be used to reduce the costs of rework:
Er. Binod Kumar Rajbhar
18
8/13/2023
two ways of coping with change and changing system requirements:
Er. Binod Kumar Rajbhar
19
8/13/2023
Agile methods
Er. Binod Kumar Rajbhar
20
8/13/2023
Agile Model
Er. Binod Kumar Rajbhar
21
8/13/2023
Phases of Agile Model:
Er. Binod Kumar Rajbhar
22
8/13/2023
1. 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.
2. 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.
3. 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.
4. Testing: In this phase, the Quality Assurance team examines the product's performance and looks for the bug.
Er. Binod Kumar Rajbhar
23
8/13/2023
5. Deployment: In this phase, the team issues a product for the user's work environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback about the product and works through the feedback.
When to use the Agile Model?
Er. Binod Kumar Rajbhar
24
8/13/2023
Advantage(Pros) of Agile Method:
Disadvantages(Cons) of Agile Model:
Er. Binod Kumar Rajbhar
25
8/13/2023
2.5Agile Development Techniques�
Er. Binod Kumar Rajbhar
26
8/13/2023
The Agile Software Development process typically consists of the following steps:�
Er. Binod Kumar Rajbhar
27
8/13/2023
Agile Software Development
Er. Binod Kumar Rajbhar
28
8/13/2023
Principles:
Er. Binod Kumar Rajbhar
29
8/13/2023
Example:
Example: Let’s go through an example to understand clearly how agile actually works. A Software company named ABC wants to make a new web browser for the latest release of its operating system. The deadline for the task is 10 months. The company’s head assigned two teams named Team A and Team B for this task. In order to motivate the teams, the company head says that the first team to develop the browser would be given a salary hike and a one-week full-sponsored travel plan. With the dreams of their wild travel fantasies, the two teams set out on the journey of the web browser. Team A decided to play by the book and decided to choose the Waterfall model for the development. Team B after a heavy discussion decided to take a leap of faith and choose Agile as their development model.
Er. Binod Kumar Rajbhar
30
8/13/2023
The Development plan of the Team A is as follows:
Er. Binod Kumar Rajbhar
31
8/13/2023
The Development plan for the Team B is as follows:
Er. Binod Kumar Rajbhar
32
8/13/2023
Er. Binod Kumar Rajbhar
33
8/13/2023
Advantages:
Er. Binod Kumar Rajbhar
34
8/13/2023
Disadvantages:
Er. Binod Kumar Rajbhar
35
8/13/2023
Difference between Traditional and Agile Software Development
Traditional Software Development
1. Requirements analysis
2. Design
3. Implementation
4. Coding and Testing
5. Maintenance
Er. Binod Kumar Rajbhar
36
8/13/2023
Er. Binod Kumar Rajbhar
37
8/13/2023
Advantages of Traditional Software Development
Er. Binod Kumar Rajbhar
38
8/13/2023
Disadvantages of Traditional Software Development�
Er. Binod Kumar Rajbhar
39
8/13/2023
Agile Software Development�
1. Planning
2. Requirement Analysis
3. Designing
4. Implementation
5. Testing
6. Deployment
Er. Binod Kumar Rajbhar
40
8/13/2023
Er. Binod Kumar Rajbhar
41
8/13/2023
Agile Software Development
Advantages of Agile Software Development�
Er. Binod Kumar Rajbhar
42
8/13/2023
Disadvantages of Agile Software Development�
Er. Binod Kumar Rajbhar
43
8/13/2023
Difference Between Traditional and Agile Software Development�
Traditional Software Development
Agile Software Development
Er. Binod Kumar Rajbhar
44
8/13/2023
2.6 Agile Project Management (APM) �
Er. Binod Kumar Rajbhar
45
8/13/2023
The 12 principles of Agile project management are as follows:
Er. Binod Kumar Rajbhar
46
8/13/2023
The 5 phases of APM�
Er. Binod Kumar Rajbhar
47
8/13/2023
The 5 phases of APM�
Er. Binod Kumar Rajbhar
48
8/13/2023
2.7 Scaling Agile Method
Er. Binod Kumar Rajbhar
49
8/13/2023
Er. Binod Kumar Rajbhar
50
8/13/2023
What does “scaling Agile” mean?�
Er. Binod Kumar Rajbhar
51
8/13/2023
Each of these components plays a role in scaling Agile successfully, but getting it “right” is a complex task. For that reason, many enterprises use a scaling Agile framework to guide their efforts.
Er. Binod Kumar Rajbhar
52
8/13/2023