Cs8494 Software Engineering: Unit I Software Process and Agile Development
Cs8494 Software Engineering: Unit I Software Process and Agile Development
UNIT I
SOFTWARE PROCESS AND AGILE
DEVELOPMENT
II - CSE
UNIT I
SOFTWARE PROCESS AND AGILE
2 DEVELOPMENT
Introduction to Software Engineering,
Software Process, Perspective and Specialized
Process Models –Introduction to Agility-Agile
process-Extreme programming-XP Process.
TEXT BOOK:
What is Software?
Software is:
(1) instructions (computer programs) that when
executed provide desired features, function, and
performance;
(2) data structures that enable the programs to
adequately manipulate information and
(3) documentation that describes the operation and
use of the programs.
Introduction to Software Engineering
4
…
What is Software?
Software is developed or engineered, it is not
manufactured in the classical sense.
Software doesn't "wear out."
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
Software Applications
6
system software
application software
engineering/scientific software
embedded software
product-line software
AI software
Software—New Categories
7
computing community
Data mining
Grid computing
Cognitive machines
tools
methods
process model
a “quality” focus
• Sequence of activities
• Req. Development
Processes needed to produce the Processes • Software Design
system
• Software Construction
• Software Testing
• Development approach
Methods for expected quality Methods • Structured Methods
Copyright © 2014, Infosys Limited Confidential
outputs adhering budget • Object Oriented
and time Methods
Process
13
• To summarize: Process is
PROCESS
a sequence of steps
executed for a given
TRANSFORMATION
purpose INPUT OUTPUT
Process framework
oFramework activities
Work tasks
work products
milestones & deliverables
QA checkpoints
oUmbrella Activities
The Software Process…
15
Testing Measurement
Communication
Involves communication among the customer
and other stake holders; encompasses
requirements gathering
Planning
linear,
incremental, or
evolutionary
Waterfall Model
24
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
Waterfall Model with Feedback
26
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design Construction
Code
Test Deployment
Delivery
Support
Feedback
Incremental Model
27
Increment #1
Communication
Planning Modelin
g Constructio
n Deploymen
t
Increment #2
Communicatio
n Planning
Modeling Constructio
n
Deployment
Increment #3
Communication
Planning Modelin
g Constructio
n
Deployment
28
Prototyping Model
29
requirements
Focuses on those aspects of the software that
Potential Problems
The customer sees a "working version" of the software,
wants to stop all development and then buy the
prototype after a "few fixes" are made
Developers often make implementation compromises to
get the software running quickly (e.g., language choice,
user interface, inefficient algorithms)
Lesson learned
Define the rules up front on the final disposition of the
prototype before it is built
In most circumstances, plan to discard the prototype and
engineer the actual production software with a goal toward
quality
Prototyping Model ...
31
Quick
Planning
Communication
Start
Modeling
Quick
Deployment, Design
Delivery,
and Feedback
Construction
of Prototype
Spiral Model
32
of failure.
Combines iterative model, emphasizes risk
assessment, customer participation, prototyping,
and more
Spiral Model...
33
Planning
Risk Analysis / Resolution
Engineering activities
(design, code, test…)
Customer Evaluation
(errors, changes, new requirements…)
35
Model Disadvantage
Advantages s
Summarizing Models
36 • Limited or no scope for
Waterfall • Simple and Systematic accommodating new
• Disciplined Approach requirements
• Potential delay in
identifying risks
• Part of the product
is visible at early • Time consuming
Increment stage • Expensive at times
al • Scope for
accommodating new
requirements
• Requires good
• Model for other models expertise in risk
Spiral • Iterative and realistic management
• Model is not suitable
for fixed budget
projects
General Weaknesses of Evolutionary
Process Models
37
Requirements List
Priority 1 Priority 2 Priority 3 Priority 4
Analysis
Design
Code
Test
Product
ion
Agility and the Cost of Change
46
An Agile Process
47
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
Extreme Programming (XP)…
54
XP Coding
Recommends the construction of a unit test
for a story before coding commences
Encourages “pair programming”
XP Testing
refact oring
pair
programming
Release
soft wa re incre m e nt
unit t est
proje ct v e locit y com put e d co nt inuous int eg rat ion
?? ??