UNIT-1 Agile 2
UNIT-1 Agile 2
DEVELOPMENT PROCESS
Dr Chaya Ravindra
LIFE CYCLE MODELS
1
SOFTWARE LIFE Conceptualiz
CYCLE
e
Specify
Retire
Design
Maintain
Deliver Code
Test
2
LIFE CYCLE MODEL
• A software life cycle model (also process model or SDLC):
–A descriptive and diagrammatic model of software life
cycle:
–Identifies all the activities undertaken during product
development,
–Establishes a precedence ordering among the different activities,
–Divides life cycle into phases.
4
LIFE CYCLE MODEL (CONT.)
6
LIFE CYCLE MODEL (CONT.)
7
LIFE CYCLE MODEL (CONT.)
8
LIFE CYCLE
MODEL (CONT.)
9
LIFE CYCLE MODEL (CONT.)
1
Phase Entry and Exit Criteria
•A life cycle model:
–defines entry and exit criteria for every
phase.
–A phase is considered to be complete:
•only when all its exit criteria are satisfied.
11
LIFE CYCLE MODEL (CONT.)
12
LIFE CYCLE MODEL: MILESTONES
13
Life Cycle and Project Management
•When a life cycle model is followed:
–The project manager can at any time fairly
accurately tell,
•At which stage (e.g., design, code, test,
etc.) the project is.
14
Project Management Without Life Cycle Model
• It becomes very difficult to track the progress of the project.
–The project manager would have to depend on the guesses
of the team members.
• This usually leads to a problem:
–known as the 99% complete syndrome.
15
PROJECT DELIVERABLES:
MYTH AND REALITY
Myth:
The only deliverable for a successful project is the working
program.
Reality:
Documentation of all aspects of software development are
needed to help in operation and maintenance.
16
• Many life cycle models have been proposed.
• We confine our attention to only a few commonly used models.
–Waterfall
–V model, Life Cycle Model (CONT.)
17
• Software life cycle (or software process):
–Series of identifiable stages that a software
product undergoes during its life time:
•Feasibility study
•Requirements analysis and specification,
•Design,
•Coding,
•Testing
Software Life Cycle
•Maintenance
.
18
CLASSICAL WATERFALL
MODEL
– Design, Design
Maintain
– Coding and unit testing,
Code
– Integration and system testing, Deliver
Test
– Maintenance.
1
9
CLASSICAL WATERFALL
Feasibility Study
MODEL
Req.
Analysis
Desi Simplest and most
gn intuitive
Coding
Testing
Maintena
nce
2
0
RELATIVE EFFORT FOR
PHASES
• Phases between feasibility study and 60
50
testing
40
– Called development phases. 30
Relative
• Among all life cycle phases 20
Effort
10
– Maintenance phase
consumes maximum 0
Maintnce
Design
Coding
Test
Req. Sp
effort.
• Among development
phases,
– Testing phase consumes
• Most organizations usually define:
– Standards on the outputs (deliverables) produced at the end of every phase
– Entry and exit criteria for every phase.
23
FEASIBILITY STUDYEconomic
feasibility
(also
called
cost/benef
it
feasibility)
24
• Main aim of feasibility study: determine whether developing the
software is:
– Financially worthwhile
Feasibility Study
– Technically feasible.
• Roughly understand what customer wants: First Step
– Data which would be input to the system,
– Processing needed on these data,
– Output data to be produced by the system,
– Various constraints on the behavior of the system.
25
• SPF Scheme for CFL
• CFL has a large number of employees, exceeding 50,000.
• Majority of these are casual labourers
• Mining being a risky profession:
– Casualties are high Case Study
• Though there is a PF:
– But settlement time is high
• There is a need of SPF:
– For faster disbursement of benefits
26
FEASIBILITY: CASE
STUDY
• Manager visits main office, finds out the
main functionalities required
• Visits mine site, finds out the data to be input
• Suggests alternate solutions
• Determines the best solution
• Presents to the CFL Officials
• Go/No-Go Decision
26
ACTIVITIES DURING
FEASIBILITY STUDY
•Work out an overall understanding of the problem.
•Formulate different solution strategies.
•Examine alternate solution strategies in terms of:
•resources required,
•cost of development, and
•development time.
28
•Perform a cost/benefit analysis:
–Determine which solution is the best.
–May also find that none of the solutions is
feasible due to: Activities during Feasibility Study
•high cost,
•resource constraints,
•technical reasons.
29
COST BENEFIT ANALYSIS (CBA)
30
THE BUSINESS
CASE • Benefits of delivered project
must outweigh costs
Benefit
s • Costs include:
Cost - Development
s - Operation
Rs • Benefits:
Rs
– Quantifiable
– Non-quantifiable
31
THE BUSINESS CASE
• Feasibility studies should help write a ‘business case’
• Should provide a justification for starting the project
• Should show that the benefits of the project will
exceed:
– Various costs
3. Business opportunity
- What difference will it make?
- What if we don’t do it?
4. Costs
- Should include the cost of development, implementation, training, change management, and operations.
5. Benefits
Benefits usually presented in terms of revenue generation and cost reductions.
6. Risks
- Identify risks.
- Explain how these will be managed.
3
3
CLASSICAL WATERFALL
Feasibility
Study MODEL
Req.
Analysis
Design
Codi
ng
Testing
Maintena
nce
34
TEST DRIVEN DEVELOPMENT (TDD)
1.TDD Process:
TDD involves writing tests before writing the actual code. The typical
cycle follows:
• Write a failing test: Create a test for the next piece of functionality
you want to implement. The test should initially fail since the code
hasn’t been written yet.
• Write the minimum code to pass the test: Implement just enough
functionality to pass the failing test.
• Refactor: Improve the code, optimizing it for readability,
maintainability, and performance, while ensuring that all tests still
pass.
• Repeat: The cycle continues for each small piece of functionality,
allowing incremental progress.
2.TEST-FIRST APPROACH:
1. Unit Testing – Tests a specific section of code to ensure the code does what it is
expected to do. The unit testing is performed by software developers during the
development phase. At this stage, a static code analysis, data flow analysis, code
coverage, and other software verification processes can be applied.
2. Static Code Analysis – This test is performed without actually running the
application after the build and unit testing. This analysis can help to find coding
errors and security holes, and it also can ensure conformance to coding
guidelines.
3. Static Application Security Testing (SAST) – This test is used to analyze
code against security violations such as XML External Entity Processing ,
SQL Injection and Cross Site Scripting. As soon as violations are detected, the
build will fail and any progress will be blocked in the pipeline. For further details,
see Security in every stage of CI/CD pipeline.
BUILDING
In the staging phase, full environments are created that mirror the eventual
production environment. The following tests are performed
1. Integration testing – Verifies the interfaces between components against
software design. Integration testing is an iterative process and facilitates
building robust interfaces and system integrity.
2. Component testing – Tests message passing between various components and
their outcomes. A key goal of this testing could be idempotency in component
testing. Tests can include extremely large data volumes, or edge situations and
abnormal inputs.
3. System testing – Tests the system end-to-end and verifies if the software
satisfies the business requirement. This might include testing the user interface
(UI), API, backend logic, and end state.
4.Performance testing – Determines the responsiveness and stability of a system as it
performs under a particular workload. Performance testing also is used to investigate,
measure, validate, or verify other quality attributes of the system, such as scalability,
reliability, and resource usage. Types of performance tests might include load tests, stress
tests, and spike tests. Performance tests are used for benchmarking against predefined
criteria.
5.Compliance testing – Checks whether the code change complies with the requirements of a
nonfunctional specification and/or regulations. It determines if you are implementing and
meeting the defined standards.
6.User acceptance testing – Validates the end-to-end business flow. This testing is performed
by an end user in a staging environment and confirms whether the system meets the
requirements of the requirement specification. Typically, customers employ alpha and beta
testing methodologies at this stage.
7.Dynamic Application Security Testing (DAST) - This type of testing is used to check for
security problems in an application while it is running. DAST tools evaluate the application by
attacking like a malicious user would from outside. For further details, see
Security in every stage of CI/CD pipeline
Requirements Analysis and Specification
•Aim of this phase:
–Understand the exact requirements of the customer,
–Document them properly.
•Consists of two distinct activities:
–Requirements gathering and analysis
–Requirements specification.
56
REQUIREMENTS ANALYSIS
AND SPECIFICATION
• Gather requirements data from the customer:
Analyze the collected data to understand what customer wants
•Remove requirements problems:
Inconsistencies
Anomalies
Incompleteness
• Organize into a Software Requirements Specification (SRS)
document.
35
REQUIREMENTS
GATHERING
•Gathering relevant data:
–Usually collected from the end-users through interviews and
discussions.
–Example: for a business accounting software:
•Interview all the accountants of the organization to find out their
requirements.
58
REQUIREMENTS ANALYSIS (CONT...)
–Why?
59
REQUIREMENTS
ANALYSIS (CONT...)
•Ambiguities and contradictions:
–must be identified
60
REQUIREMENT GATHERING
TECHNIQUES
CLASSICAL
Feasibility
WATERFALL
Study MODEL
Req.
Analysis
Desi
Design
gn
Codi
ng
Testing
Maintenan
ce
64
DESIGN
• During design phase requirements specification
is transformed into :
– A form suitable for implementation in some
programming language.
• Two commonly used design approaches:
–Traditional approach,
–Object oriented approach
6
5
TRADITIONAL DESIGN APPROACH
–Structured design
6
6
STRUCTURED DESIGN
root
• Departments, etc.
6
8
OBJECT ORIENTED
DESIGN (CONT.) • Object structure:
– Refined to obtain the detailed design.
– Better maintainability.
6
9
FUNCTIONAL REQUIREMENTS
1. These are the requirements that the end user specifically demands as basic facilities that
the system should offer. All these functionalities need to be necessarily incorporated into
the system as a part of the contract.
2. These are represented or stated in the form of input to be given to the system, the
operation performed and the output expected. They are the requirements stated by the
user which one can see directly in the final product, unlike the non-functional
requirements.
3. Example:
• What are the features that we need to design for this system?
• What are the edge cases we need to consider, if any, in our design?
NON-FUNCTIONAL REQUIREMENTS
These are the quality constraints that the system must satisfy according to the project contract.
The priority or extent to which these factors are implemented varies from one project to another.
They are also called non-behavioral requirements. They deal with issues like:
• Portability
• Security
• Maintainability
• Reliability
• Scalability
• Performance
• Reusability
• Flexibility
Example:
• Each request should be processed with the minimum latency?
• System should be highly valuable.
Feasibility
Study
REQ. ANALYSIS
Classical Waterfall
Design Model
Codi
ng
Testing
Maintena
nce
73
CODING AND UNIT
TESTING •During this phase:
–Each module of the design is coded,
–Each module is unit tested
•That is, tested independently as a stand alone unit, and
debugged.
74
Feasibility
Study
Req.
Analysis CLASSICAL WATERF
Design
MODEL
Codi
ng
Testin
Testing
g
Maintenan
ce
75
INTEGRATION AND
SYSTEM TESTING
• Different modules are integrated in a planned
manner:
–Modules are usually integrated through a
steps. of
number
M1 M2 M5 M7
• During each integration step,
M3 M4 M6
–the partially integrated system is tested.
M8
76
SYSTEM TESTING
• After all the modules have been successfully integrated and
tested:
77
Feasibility
Study
REQ. ANALYSIS
Design Classical Waterfall
Model
Codi
ng
Testing
Maintenan
Maintena
ce
nce
78
MAINTENANCE
•Maintenance of any software:
–Requires much more effort than the effort to develop
the product itself.
–Development effort to maintenance effort is typically
40:60.
79
TYPES OF
MAINTENANCE?
• Corrective maintenance:
– Correct errors which were not discovered during the product
development phases.
• Perfective maintenance:
– Improve implementation of the system
– enhance functionalities of the system.
• Adaptive maintenance:
– Port software to a new environment,
• e.g. to a new computer or to a new operating system.
80
ITERATIVE WATERFALL
MODEL
•Classical waterfall model is idealistic:
–Assumes that no defect is introduced during any
development activity.
–In practice:
•Defects do get introduced in almost every phase of
the life cycle.
81
ITERATIVE WATERFALL MODEL (CONT.)
–The later the phase in which the defect gets detected, the
more expensive is its removal --- why?
82
ITERATIVE WATERFALL
MODEL (CONT.)
– Redo some of the work done during that and all subsequent
phases.
Analysis
Design
Coding
Testing
Maintenance
56
PHASE CONTAINMENT OF
ERRORS (CONT...)
• Errors should be detected:
In the same phase in which they are introduced.
• For example:
If a design problem is detected in the design phase itself,
The problem can be taken care of much more easily
Than say if it is identified at the end of the integration and system testing
phase.
85
PHASE CONTAINMENT
OF ERRORS
• Reason: rework must be carried out not only to the design but also
to code and test phases.
• The principle of detecting errors as close to its point of introduction
as possible:
– is known as phase containment of errors.
• Iterative waterfall model is by far the most widely used model.
– Almost every other model is derived from the waterfall model.
86
Feasibility
ITERATIVE WATERFALL
Study MODEL (CONT.)
Req.
Analysis
Design
Coding
Testing
Maintenance
59
WATERFALL STRENGTHS
89
WHEN TO USE THE
WATERFALL MODEL?
• Requirements are well known and stable
• Technology is understood
• Development team have experience with similar
projects
62
CLASSICAL WATERFALL
MODEL (CONT.)
91
CLASSICAL WATERFALL
MODEL (CONT.)
92
V MODEL
7/18/202
0 93
V MODEL
• It is a variant of the Waterfall
– emphasizes verification and validation
– V&V activities are spread over the entire life cycle.
94
Production,
PROJECT PLANNING Operation &
Maintenance
Coding
95
V MODEL STEPS
• Planning
96
V MODEL: STRENGTHS
• Starting from early stages of software development:
• Easy to use
97
V MODEL
WEAKNESSES
• Does not support overlapping of phases
Production,
Project Operation &
Planning Maintenance
Coding
98
WHEN TO USE V MODEL
• Natural choice for systems requiring high reliability:
99
PROTOTYPING MODEL
7/18/202
0 10
PROTOTYPING MODEL
• A derivative of waterfall model. Prototype
Construction
Desig
development,
ng
– A working prototype of the system should first be built. Testin
g
10
REASONS FOR
PROTOTYPING
• Learning by doing: useful where requirements are
Prototype
only partially known Construction
Desig
• Improved communication n
Codi
ng
• Improved user involvement Testin
g
• Reduced need for documentation Maintenan
ce
Testing
• Prototype is built using several short-
cuts: Maintenan
ce
Test
Mainta
in
10
PROTOTYPING MODEL (CONT.)
• The developed prototype is submitted to the customer for Build
Prototype
Tes
t
prototype.
• The actual system is developed using the waterfall
model.
10
(CONT.
PROTOTYPING MODEL Prototype
)Construction
Testin
Maintenan
ce
feedbacks) serves as an animated requirements specification.
• Design and code for the prototype is usually thrown away:
–However, experience gathered from developing the prototype helps
a great deal while developing the actual software.
10
PROTOTYPING MODEL
(CONT.)
• Even though construction of a working prototype model involves
additional cost --- overall development cost usually lower for:
– Systems with unclear user requirements,
– Systems with unresolved technical issues.
• Many user requirements get properly defined and technical
issues get resolved:
– These would have appeared later as change requests and resulted in
incurring massive redesign costs.
10
PROTOTYPING:
ADVANTAGES
• The resulting software is usually more usable
• User needs are better accommodated
• The design is of higher quality
• The resulting software is easier to maintain
• Overall, the development incurs less cost
11
PROTOTYPING: DISADVANTAGES
• Susceptible to over-engineering:
11
Major difficulties of Waterfall-Based Models
1. DIFFICULTY IN ACCOMMODATING
CHANGE REQUESTS DURING
DEVELOPMENT.
40% of the requirements change during development
11
Major difficulties of Waterfall-Based Life Cycle Models
11
INCREMENTAL MODEL
7/18/2020
87
• “The basic idea… take advantage of what was being
learned during the development of earlier, incremental,
deliverable versions of the system. Learning comes
from both the development and use of the system…
Start with a simple implementation of a subset of the
software requirements and iteratively enhance the
evolving sequence of versions. At each version design
modifications are made along with adding new
functional capabilities. “ Victor Basili
88
• Key characteristics Incremental and Iterative
–Builds system incrementally Development (IID)
–Consists of a planned number of iterations
–Each iteration produces a working program
• Benefits
–Facilitates and manages changes
• Foundation of agile techniques and the basis for
–Rational Unified Process (RUP)
–Extreme Programming (XP)
11
CUSTOMER’S
PERSPECTIVE
C
A A A
B
B
B
11
INCREMENTAL MODEL
Requireme Split
ntsOutlin Featur Desig
into n
e es
11
INCREMENTAL MODEL: Split
REQUIREMENTS Featur
into
es
Requirements: High Level
Analysis
Slic
Slic
Slic
Slic
Slic
Slic
Slic
Slic
e
e
11
INCREMENTAL MODEL
• Waterfall: single release
• Iterative: many releases (increments)
–First increment: core functionality
–Successive increments: add/fix
functionality
–Final increment: the complete
product
• Each iteration: a short mini-project
with a separate lifecycle
12
INCREMENTAL DELIVERY
incremen Custome
design build install r
t Feedback
1
design Customer
incremen build install
t Feedback
incremen Customer
design build install
t
3 Feedback
12
THE INCREMENTAL
PROCESS
Identify System Objectives
Plann
incremen
ed Plan increments
delive
tal Incremental delivery plan
ry
Design increment
12
WHICH STEP FIRST?
• Some steps will be pre-requisite because of physical dependencies
• Others may be in any order
• Value to cost ratios may be used
– V/C where
12
V/C RATIOS: AN EXAMPLE
step value cost r atio
p r o fi t r e p o r t s 9 2 4.5 2nd
12
EVOLUTIONARY MODEL WITH
ITERATIONS
12
AN EVOLUTIONARY AND
ITERATIVE DEVELOPMENT
PROCESS...
• Recognizes the reality of changing requirements
–Capers Jones’s research on 8000 projects: 40% of final
requirements arrived after development had already begun
• Promotes early risk mitigation:
– Breaks down the system into mini-projects and focuses on the riskier
issues first.
– “plan a little, design a little, and code a little”
• Encourages all development participants to be involved earlier
on,:
12
EVOLUTIONARY MODEL
WITH ITERATION
• “A complex system will be most successful if implemented in
small steps… “retreat” to a previous successful step on
failure… opportunity to receive some feedback from the real
world before throwing in all resources… and you can correct
possible errors…” Tom Glib in Software Metrics
1
2
7
EVOLUTIONARY MODEL
WITH ITERATION
• Evolutionary iterative development implies that the
requirements, plan, estimates, and solution evolve or are refined
over the course of the iterations, rather than fully defined and
“frozen” in a major up-front specification effort before the
development iterations begin. Evolutionary methods are
consistent with the pattern of unpredictable discovery and
change in new product development.” Craig Larman
1
2
8
EVOLUTIONARY MODEL
1
2
9
ACTIVITIES IN AN
ITERATION
•Software developed over several “mini waterfalls”.
•The result of a single iteration:
–Ends with delivery of some tangible code
–An incremental improvement to the software ---
leads to evolutionary development
1
3
0
EVOLUTIONARY MODEL
WITH ITERATION
• Outcome of each iteration: tested, integrated, executable system
• Iteration length is short and fixed
– Usually between 2 and 6 weeks
•Successive versions:
–Functioning systems capable of performing some useful
work.
–A new release may include new functionality:
•Also existing functionality in the current release
might have been enhanced.
1
3
2
EVOLUTIONARY MODEL with user feedback:
• Evolves an initial implementation
– Multiple versions until the final version.
Initial
version
Specificati
Initial Intermedia
Rough te versio
Requireme on ns
nts
Final
Developme
versi
on
1
nt 3
3
ADVANTAGES OF
EVOLUTIONARY MODEL
• Users get a chance to experiment with a partially developed system:
– Much before the full working version is released,
1
3
4
ADVANTAGES OF
EVOLUTIONARY MODEL
• Better management of complexity by developing one increment at a
time.
1
3
6
EVOLUTIONARY MODEL:
PROBLEMS
• The process is intangible:
– No regular, well-defined deliverables.
• The process is unpredictable:
– Hard to manage, e.g., scheduling, workforce allocation, etc.
• Systems are rather poorly structured:
– Continual, unpredictable changes tend to degrade the software structure.
• Systems may not even converge to a final version.
1
3
7
RAD MODEL
1
7/18/2020 3
8
RAPID APPLICATION
DEVELOPMENT (RAD)
• Sometimes
MODEL referred to as the rapid prototyping
model.
• Major aims:
– Decrease the time taken and the cost incurred to develop
software systems.
– Facilitate accommodating change requests as early
as possible:
1
• Before large investments have been made in development and 3
9
IMPORTANT
UNDERLYING PRINCIPLE
• A way to reduce development time and cost, and yet
have flexibility to incorporate changes:
1
4
0
METHODOLOGY
•Plans are made for one increment at a time.
• The time planned for each iteration is called a time box.
•Each iteration (increment):
• Enhances the implemented functionality of the application
a little.
1
4
1
METHODOLOGY
1
4
5
•In prototyping model: Prototyping versus
RAD
• The developed prototype is primarily used to gain
insights into the solution
• Choose between alternatives
• Elicit customer feedback.
•The developed prototype:
1
• In contrast:
• In RAD the developed prototype evolves into
deliverable software.
1
4
8
RAD versus Iterative Waterfall Model
• The iterative waterfall model:
– Does not facilitate accommodating requirement change requests.
• Iterative waterfall model does have some important
advantages:
– Use of the iterative waterfall model leads to production of good
documentation.
– Also, the developed software usually has better quality and
reliability than that developed using RAD.
1
4
9
RAD
• Incremental VERSUS
development:
– EVOLUTIONARY MODEL
Occurs in both evolutionary and RAD models.
• However, in RAD:
– Each increment is a quick and dirty
prototype,
– Whereas in the evolutionary model each increment is
systematically developed using the iterative waterfall model.
• Also, RAD develops software in shorter increments:
– The incremental functionalities are fairly large in the
evolutionary
model. 1
5
0
UNIFIED
PROCESS
1
7/18/2020 5
1
UNIFIED PROCESS
• Developed Ivar Jacobson, Grady Booch and
James Rumbaugh
– Incremental and iterative
1
5
2
FOUR PHASES --- AND
ITERATIVE DEVELOPMENT AT
EVERY PHASE
•Inception Phase
•Elaboration Phase
•Construction Phase
•Transition Phase
1
5
3
UNIFIED PROCESS
ITERATIONS IN PHASES
The duration of and iteration may vary from two weeks or
less.
Iteration Iteration Iteration Iteration
s s s s
1
5
4
UNIFIED PROCESS
software
incremen
Communicati
t
on incepti
on
Deployme Planni
nt ng
transiti elaborati
on on
Constructi Modeli
on ng
constructi
on
1
5
5
UNIFIED PROCESS
WORK PRODUCTS
Inception Elaboration Construction Transition
phase phase phase phase SW
vision document use-case
initial use-case model design model increment
initial
model business analysis model SW beta test
requirements
case initial risk preliminary components reports user
list project plan model revised test plan feedback
prototype(s) risk list test ...
... preliminary procedure
manual test cases
... user manual
installation
manual
...
1
5
6
STRUCTURE OF RUP PROCESS
•Two dimensions.
•Horizontal axis:
– Represents time and shows the lifecycle aspects of the
process.
•Vertical axis:
– Represents core process workflows.
1
5
7
TWO DIMENSIONS OF
UNIFIED PROCESS
1
5
8
INCEPTION
ACTIVITIES
•Formulate scope of project
1
5
9
• Initial requirements capture
Customer
Evaluation Develop Next
of Level of
Prototype Product
Objective Setting (First Quadrant)
• Identify objectives of the phase,
• Examine the risks associated with these objectives.
– Risk:
•Any adverse circumstance that might
hamper successful completion of a
software project.
1
7/18/202 6
0 8
What is Agile Software Development?
• Agile: Easily moved, light, nimble, active software
processes
1
6
9
AGILE MODEL
• To overcome the shortcomings of the waterfall model of
development.
– Proposed in mid-1990s
• The agile model was primarily designed:
– To help projects to adapt to change requests
• In the agile model:
– The requirements are decomposed into many small incremental parts
that can be developed over one to four weeks each.
1
7
0
IDEOLOGY: AGILE
• MANIFESTO
Individuals and interactions over
– process and tools
• Working Software over
– comprehensive documentation
• Customer collaboration over
– contract negotiation
• Responding to change over http://www.agilemanifesto.org
– following a plan
1
7
1
• XP Agile Methodologies
• Scrum
• Unified process
• Crystal
• DSDM
• Lean
1
7
2
AGILE MODEL:
• User stories:
PRINCIPAL TECHNIQUES
– Simpler than use cases.
• Metaphors:
– Based on user stories, developers propose a common vision of what is
required.
• Spike:
– Simple program to explore potential solutions.
• Refactor:
– Restructure code without affecting behavior, improve efficiency, structure, etc.
146
AGILE
• At MODEL:
a time, only NITTY
one increment is planned, developed,
GRITTY
deployed at the customer site.
– No long-term plans are made.
1
7
4
METHODOLOGY
• Face-to-face communication favoured over written
documents.
• To facilitate face-to-face communication,
– Development team to share a single office space.
– Team size is deliberately kept small (5-9 people)
– This makes the agile model most suited to the development of
small projects.
1
7
5
Effectiveness
F A C E -TO -FA C E ofO A R D
AT W H I T E B F a c e -to -fa c e
c o n v e rs a tion M o d e ling
O p t i o n s
P h o n e
V i d e ota p e co n v e rs a tion
E m a i l
c o n v e r s a t i o n
A u d i o t a p e
D o c u m e nta tion
O p t i o n s
P a p e r
C o l d H ot
R i c h n e s s of C o m m u n i c a t i o n C h a n n e l
C o p y r i g h t 2 0 0 2 - 2 0 0 5 S cott W . A m b l e r
Original D i a g r a m C o p y r i g h t 2 0 0 2 Alistair
C o c k b u r n
1
7
6
AGILE MODEL:
• PRINCIPLES
The primary measure of progress:
– Incremental release of working software
• Important principles behind agile model:
– Frequent delivery of versions --- once every few weeks.
– Requirements change requests are easily accommodated.
– Close cooperation between customers and developers.
– Face-to-face communication among team members.
1
7
7
AGILE
• Travel light:
DOCUMENTATION
– You need far less documentation than you
think.
• Agile documents:
– Are concise
– Describe information that is less likely to change
– Describe “good things to know”
– Are sufficiently accurate, consistent, and detailed
• Valid reasons to document:
– Project stakeholders require it
– To define a contract model
– To support communication with an external group
– To think something through
151
AGILE SOFTWARE
REQUIREMENTS E a c h i t e r a t i o n i m p l e m e n t t h e
H ig h {
MANAGEMENT h i g h e s t - p r i o r i t y r e q u i r e m e n t s
P r io r ity
E a c h n e w r e q u i r e m e n t
is p r i o r i t i z e d a n d
a d d e d t o t h e s t a c k
R e q u i r e m e n t s m a y
b e r e p r i o r i t i z e d a t
a n y t i m e
R e q u i r e m e n t s m a y
b e r e m o v e d a t a n y
t i m e
L o w
P r io r ity R e q u ir e m e n t C o p y r i g h t 2 0 0 4 S c o t t W .
s A m b l e r
1
7
9
ADOPTION DETRACTORS
• Sketchy definitions, make it possible to have
– Inconsistent and diverse definitions
• High quality people skills required
• Short iterations inhibit long-term perspective
• Higher risks due to feature creep:
– Harder to manage feature creep and customer expectations
– Difficult to quantify cost, time, quality.
1
8
0
AGILE MODEL
SHORTCOMINGS
• Derives agility through developing tacit knowledge
within the team, rather than any formal document:
– Can be misinterpreted…
– External review difficult to get…
– When project is complete, and team disperses,
maintenance becomes difficult…
1
8
1
Agile Model versus Iterative Waterfall Model
• The waterfall model steps through in a planned sequence:
– Requirements-capture, analysis, design, coding, and testing .
• Progress is measured in terms of delivered artefacts:
– Requirement specifications, design documents, test plans, code
reviews, etc.
• In contrast agile model sequences:
– Delivery of working versions of a product in several increments.
1
8
2
Agile Model versus Iterative Waterfall Model
• As regards to similarity:
1
8
3
Agile versus RAD Model
• Agile model does not recommend developing
prototypes:
– Systematic development of each incremental feature
is emphasized.
• In contrast:
– RAD is based on designing quick-and-dirty prototypes, which
are then refined into production quality code.
1
8
4
AGILE VERSUS
EXPLORATORY
• Similarity:
PROGRAMMING
– Frequent re-evaluation of plans,
– Emphasis on face-to-face communication,
– Relatively sparse use of documents.
• Agile teams, however, do follow defined and
disciplined processes and carry out rigorous designs:
– This is in contrast to chaotic coding in exploratory
programming.
1
8
5
GRA
MMI
NG
(XP)
1
7/18/202 8
0 6
EXTREME PROGRAMMING MODEL
1
9
1
BEST PRACTICES
• Designing:
– Without proper design, a system implementation becomes too
complex
– The dependencies within the system become too numerous to
comprehend.
• Feedback:
– Feedback is important in learning customer
requirements.
1
9
2
• XP Planning
• Begins with the creation of “user stories”
• Agile team assesses each story and assigns a cost Extreme
• Stories are grouped to for a deliverable increment Programmin
• A commitment is made on delivery date
g Activities
• XP Design
• Follows the KIS principle
• Encourage the use of CRC cards
• For difficult design problems, suggests the creation of “spike solutions”—a
design prototype
• Encourages “refactoring”—an iterative refinement of the internal program
design
193
• XP Coding
• Recommends the construction of unit test cases before coding
commences (test-driven development)
• Encourages “pair programming” Extreme
Programmin
• XP Testing g Activities
• All unit tests are executed daily
• “Acceptance tests” are defined by the customer and executed to assess
customer visible functionalities
194
FULL LIST OF XP
1. PRACTICES
Planning – determine scope of the next release by combining business priorities and
technical estimates
2. Small releases – put a simple system into production, then release new versions in very
short cycles
3. Metaphor – all development is guided by a simple shared story of how the whole
system works
1
9
5
FULL LIST OF XP
7. PRACTICES
Refactoring – programmers continuously restructure the system
without changing its behavior to remove duplication and simplify
8. Pair-programming -- all production code is written with
two programmers at one machine
9. Collective ownership – anyone can change any code anywhere in
the system at any time.
10. Continuous integration – integrate and build the system many
times a day – every time a task is completed.
1
9
6
FULL LIST OF XP
PRACTICES
11. 40-hour week – work no more than 40 hours a week as a rule
12. On-site customer – a user is a part of the team and available full-
time to answer questions
1
9
7
EMPHASIZES TEST-DRIVEN
DEVELOPMENT (TDD)
• Based on user story develop test cases
• Implement a quick and dirty feature every couple of days:
– Get customer feedback
– Alter if necessary
– Refactor
• Take up next feature
1
9
8
Project Characteristics that Suggest Suitability
of Extreme Programming
• Projects involving new technology or research
projects.
– In this case, the requirements change rapidly and unforeseen
technical problems need to be resolved.
• Small projects:
– These are easily developed using extreme programming.
1
9
9
PRACTICE QUESTIONS
• What are the stages of iterative waterfall model?
• What are the disadvantages of the iterative waterfall model?
• Why has agile model become so popular?
• What difficulties might be faced if no life cycle model is
followed for a certain large project?
2
0
0
SUGGEST SUITABLE
• ALIFE CYCLE
software MODELinstitution to automate its:
for an academic
– Course registration and grading
– Fee collection
– Staff salary
– Purchase and store inventory
• The software would be developed by tailoring a similar software
that was developed for another educational institution:
– 70% reuse
– 10% new code and 20% modification
2
0
1
PRACTICE QUESTIONS
• Which types of risks can be better handled using the spiral
model compared to the prototyping model?
• Which type of process model is suitable for the following
projects:
– A customization software
– A payroll software for contract employees that would be add on
to an existing payroll software
2
0
2
PRACTICE QUESTIONS
• Which lifecycle model would you select for the following project
which has been awarded to us by a mobile phone vendor:
– A new mobile operating system by upgrading the existing operating
system
– Needs to work well efficiently with 4G systems
– Power usage minimization
– Directly upload backup data on a cloud infrastructure maintained
by the
mobile phone vendor
2
0
3
SCRUM
2
0
4
SCRUM: CHARACTERISTICS
• Self-organizing teams
2
0
5
DAILY
Scru
Sprint m
Sprin
planni t
ng
Scru revie
Sprint w
Product m Product
backlog backl increme
og nt
2
0
6
SPRINT
• Scrum projects progress in a series of “sprints”
– Analogous to XP iterations or time boxes
– Target duration is one month
• Software increment is designed, coded, and
tested during the sprint
• No changes entertained during a sprint
2
0
7
SCRUM
FRAMEWORK
• Roles : Product Owner, ScrumMaster, Team
2
0
8
KEY ROLES AND
RESPONSIBILITIES IN SCRUM
• Product
PROCESS Owner
– Acts on behalf of customers to represent their interests.
• Development Team
– Team of five-nine people with cross-functional skill sets.
• Scrum Master (aka Project Manager)
– Facilitates scrum process and resolves impediments at the team and
organization level by acting as a buffer between the team and outside
interference.
2
0
9
PRODUCT OWNER
2
1
0
THE SCRUM MASTER
2
1
1
SCRUM TEAM
• Typically 5-10 people
• Cross-functional
– QA, Programmers, UI Designers, etc.
• Teams are self-organizing
• Membership can change only between sprints
2
1
2
CEREMONIES
• Sprint Planning Meeting
• Sprint
• Daily Scrum
2
1
3
SPRINT PLANNING
• Goal is to produce Sprint Backlog
• Product owner works with the Team to negotiate what
Backlog Items the Team will work on in order to meet
Release Goals
• Scrum Master ensures Team agrees to realistic goals
2
1
4
• Sprint
Fundamental process flow of Scrum
• A month-long iteration, during which an incremental product
functionality completed
2
1
5
• Daily
DAILY SCRUM
• 15-minutes
• Stand-up meeting
• Not for problem solving
• Three questions:
1. What did you do yesterday
2. What will you do today?
3. What obstacles are in your way?
2
1
6
• Is NOT a problem solving session Daily Scrum
• Is NOT a way to collect information about WHO is behind the
schedule
2
1
9
PRODUCT BACKLOG
• Requirements for a system, expressed as a prioritized list
of Backlog Items
– Spreadsheet (typically)
2
2
0
Sample
Product
Backlog
2
2
1
SPRINT BACKLOG
• A subset of Product Backlog Items, which define the work for a Sprint
– Updated daily
2
2
2
AGILE TEAM PLANS ITS WORK
WHAT IS A USER STORY?
1. A user story is a requirement which defines what is required by the user as functionality.
A
During release planning, a rough estimate is given to a user story using relative scale as
points. During iteration planning, the story is broken down into tasks.
.
1. Relationship of User Stories and Tasks
• User story talks about what is to be done. It defines what a user needs.
• Task talks about how it is to be done. It defines how a functionality is to be
implemented.
• Stories are implemented by tasks. Each story is a collection of tasks.
• User story is divided into tasks when it is planned in current iteration.
• Tasks are estimated in hours, typically from 2 to 12 hours
SPRINT BACKLOG DURING
THE SPRINT
• Changes occur:
– Team adds new tasks whenever they need to in order to meet
the Sprint Goal
– Team can remove unnecessary tasks
– But: Sprint Backlog can only be updated by the team
2
2
9
SPRINT BURN DOWN
CHART
• Depicts the total Sprint Backlog hours remaining per day
• Shows the estimated amount of time to release
• Ideally should burn down to zero to the end of the Sprint
• Actually is not a straight line
2
3
0
SPRINT BURNDOWN
CHART
2
3
1
RELEASE BURNDOWN
•CHART
Will the final release be done on right time?
• X-axis: sprints
2
3
2
PRODUCT BURNDOWN
CHART
• Is a “big picture” view of project’s progress (all the
releases)
2
3
3
SCALABILITY OF SCRUM
• A typical Scrum team is 6-10 people
2
3
4
Faculty Name
Department Name 203
AGILE VS. PLAN-DRIVEN
1. PROCESSES
Small products and teams: 1. Large products and teams;
Scalability limited hard to scale down
2. Untested on safety-critical 2. Proven for highly critical
products products;
3. Good for dynamic, but 3. Good for stable:
expensive for stable But expensive for
environments. dynamic environments
4. Require experienced 4. Require only few
personnel throughout experienced
5. Personnel thrive on freedom personnel
and chaos 5. Personnel thrive on
structure
and order
AGILE ALM (APPLICATION LIFECYCLE
MANAGEMENT)
1. Resistance to Change: Some team members may be resistant to changing their current
development processes and tools, which can make it difficult to adopt Agile ALM.
2. Lack of Experience: Agile ALM requires a significant level of expertise and experience, and
many organizations may not have the necessary skills and knowledge to implement it
effectively.
3. Difficulty Managing Priorities: Agile ALM requires careful management of priorities and trade-
offs, and it can be challenging to balance competing demands and ensure that the most
important work is being prioritized.
4. Coordination Across Teams: Agile ALM involves a high degree of collaboration and coordination
between different teams, and it can be challenging to ensure that everyone is working
effectively together.
5. Difficulty Measuring Progress: Agile ALM relies heavily on metrics and data to track progress,
and it can be challenging to identify the right metrics and ensure that they are being
measured effectively.
6. Need for Ongoing Training and Support: Agile ALM requires ongoing training and support to
ensure that teams are using the tools and processes effectively and continuously improving
their practices.
AGILE ALM VS AGILE
3. Process Modelling: The information object defined in the data modeling phase are
transformed to achieve the data flow necessary to implement a business function.
Processing descriptions are created for adding, modifying, deleting, or retrieving a data
object.
5. Testing & Turnover: Many of the programming components have already been tested
since RAD emphasis reuse. This reduces the overall testing time. But the new part must be
tested, and all interfaces must be fully exercised
WHEN TO USE RAD MODEL
Unit-1
SYSTEMS MODELING,
CLUSTERING AND
VIRTUALIZATION
TEXT BOOKS AND REFERENCE BOOK
Text Book:
1. Cloud Computing: Principles and Paradigms by Rajkumar Buyya, James Broberg and
Andrzej
M.Goscinski, Wiley, 2011.
2) Distributed and Cloud Computing, Kai Hwang, Geoffery C.Fox, Jack J.Dongarra, Elsevier,
2012
REFERENCE BOOK:
1) Cloud Computing : A Practical Approach, Anthony T.Velte, Toby J.Velte, Robert Elsenpeter,
Tata McGraw Hill, rp2011.
2) Enterprise Cloud Computing, Gautam Shroff, Cambridge University Press, 2010.
3) Cloud Computing: Implementation, Management and Security, John W. Rittinghouse,
James
F.Ransome, CRC Press, rp2012.
4) Cloud Application Architectures: Building Applications and Infrastructure in the Cloud,
George Reese, O’Reilly, SPD, rp2011
COURSE OBJECTIVES
High-Performance Computing:
For many years, HPC systems emphasize the raw
speed performance. The speed of
HPC systems has increased from Gflops in
the early 1990s to now Pflops in 2010. This
improvement was driven mainly by the demands
from scientific, engineering, and
manufacturing communities
CLOUD COMPUTING
• The goal of distributed computing is to increase the performance and efficiency of the
system and ensure fault tolerance. In the below diagram, each processor has its own local
memory, and all the processors communicate with each other over a network
• INFRASTRUCTURE AS A SERVICE :
• Public Infrastructure as a Service providers commonly offer virtual servers
containing one or more CPUs, running several choices of operating
systems and a customized software stack. In addition, storage space and
communication facilities are often provided.
• Features
• IAAS offers a set of specialized features that can influence the cost benefit
ratio to be experienced by user applications when moved to the cloud.
• The most relevant features are:
• 1. Geographic distribution of data centers.
• 2. Variety of user interfaces and APIs to access the system.
• 3. Specialized components and services that aid Particular applications
(e.g.,
• load- balancers, firewalls).
• Cloud-centric integration solutions are being developed and
demonstrated for showcasing their capabilities for integrating
enterprise and cloud applications. Now with the arrival and
adoption of the transformative and disruptive paradigm of
cloud computing, every ICT products are being converted
into a collection of services to be delivered via the open
Internet In that line, the standards-compliant integration
suites are being transitioned into services so that any
integration need of any one from any part of the world, can
be easily, cheaply and rapidly
Aneka is a PaaS
• 1. Features multiple programming models allowing
developers to easily build their distributed applications
• 2. Provides resource provisioning facilities in a
seamless and dynamic fashion
• 3. Achieved by means of the resource provisioning
framework . A typical scenario that a medium or large
enterprise may encounter . Combines privately owned
resources with public rented resources to dynamically
increase the resource capacity to a larger scale
• 4. Private resources identify computing and storage
elements kept in the premises. They share similar
internal security and administrative policies
Platform as a services paas:
• Public Platform as a Service providers commonly
offer a development and deployment environment
that allow users to create and run their applications
with little or no concern to low- level details of the
platform. In addition, specific programming
languages and frameworks are made available in the
platform, as well as other services such as persistent
data storage and in memory caches.
Features
• Programming Models, Languages, and Frameworks:
Programming models made available by providers
define how users can express their applic.
ANEKA—INTEGRATION OF PRIVATE AND
PUBLIC CLOUDS
• Aneka is a software platform and a framework
for developing distributed applications on the
cloud. It harnesses the computing resources of
a heterogeneous network of workstations and
servers or data centers on demand.
• This can be a public cloud available to anyone
through the Internet, a private cloud
constituted by a set of nodes with restricted
access within an enterprise
• Aneka is essentially an implementation of the PaaS
model, and it provides a runtime environment for
executing applications by leveraging the underlying
infrastructure of the cloud. Developers can express
distributed applications by using the API contained in
the Software Development Kit (SDK) or by porting
existing legacy applications to the cloud.
• Such applications are executed on the Aneka
cloud, represented by a collection of nodes
connected through the network hosting the Aneka
container.
• The container is the building block of the
middleware and represents the runtime environment
for executing applications; it contains the core
functionalities of the