Chapter - 2 Sofware Process - Lim Lyheng - Norton
Chapter - 2 Sofware Process - Lim Lyheng - Norton
Powerpoint Templates 1
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
Chapter 2
Software Processes
2
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
Who know?
3
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
What’s Process?
Defines Who is doing What, When to
do it, and How to reach a certain goal.
4
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
What Is a Software Engineering Process?
A process defines Who is doing What, When and How in
the development of a software system
Roles and workflows
Work products
Milestones
Guideline
◦ …
A Software Development Process is the set of activities
needed to transform a user’s requirements into a software
system.
5
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Process vs. Product
Automation
Process
Tools
model
Template
Participants
People Project
Result
Product
6
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
An Effective Process ...
7
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Lightweight vs. Heavyweight Processes
8
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Process choice
Process used should depend on type of
product which is being developed
◦ For large systems, management is usually the
principal problem so you need a strictly
managed process. For smaller systems, more
informality is possible.
High costs may be incurred if you force an
inappropriate process on a development
team
9
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
10
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
11
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
12
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
What is SE Methodology?
SE Methodology is a
collection of procedures,
techniques, tools and
documentation aids that
help developers in their
efforts to understand
users, their socio-
technical environment,
their work practices and
their information needs.
13
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development
methodology
techniques models
Tools
14
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Various Type of Software Methodologies
There are about 55 Software development methodologies in
used. Here are some of the most popular one:
Classical Methodologies Modern Methodologies
1. Structured Development Agile
1. Waterfall Development 1. Scrum
2. Parallel Development 2. XP (Extreme
2. Rapid Application Development Programming)
1. Phased 3. Adaptive Software
2. Prototyping Development (ASD)
3. Throwaway Prototyping 4. Dynamic System
3. Evolutionary Software Process Development Method
(DSDM)
1. Incremental 5. Kaplan
2. Spiral 6. Lean
3. Win Win Spiral 7. Crystal
4. V-shaped 8. Featured Driven
5. RUP(Rational Unified Process) Development(FDD)
6. Adaptive SDLC
7. Tailored SDLC
15
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Waterfall Methodology
1970-Winston w.Royce
The Waterfall Model was developed as a
simple and disciplined method for systems
development.
Stresses a sequential and logical flow of
software development activities.
Detailed planning makes estimating easier.
More suitable for large, complex systems.
May also work well when the project team is
less experienced or less technically
competent .
16
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Waterfall Development Methodology
17
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Waterfall Strengths?
18
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Waterfall Deficiencies?
All requirements must be known upfront
Deliverables created for each phase are
considered frozen – inhibits flexibility
Can give a false impression of progress
Does not reflect problem-solving nature of
software development – iterations of
phases
Integration is one big bang at the end
Little opportunity for customer to preview
the system (until it may be too late)
19
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
When to use Waterfall Model?
Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new
platform.
20
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Parallel Development
Addresses problem of time gap between
proposal and delivery
Breaks project into parallel subproject
Integrates them at the end
21
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Parallel Development Methodology
22
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Pros and Cons of Parallel Development
Methodology
Pros Cons
Reduces Schedule Still uses paper
Time Documents
Less Chance of Sub-projects maybe
Rework difficult to integrate
23
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Rapid Application Development (RAD)
Methodology
Attempts to compress the analysis,
design, build, and test activities of the
SDLC into a series of short iterations
or development cycles.
24
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Rapid Application Development (RAD)
Methodology
Requirements planning phase (a workshop
utilizing structured discussion of business
problems)
User description phase – automated tools
capture information from users
Construction phase – productivity tools,
such as code generators, screen generators,
etc. inside a time-box. (“Do until done”)
Cutover phase -- installation of the system,
user acceptance testing and user training
25
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Rapid Application Development Methodology
26
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
RAD Strengths
Reduced cycle time and improved productivity
with fewer people means lower costs
Time-box approach mitigates cost and
schedule risk
Customer involved throughout the complete
cycle minimizes risk of not achieving customer
satisfaction and business needs
Focus moves from documentation to code
(WYSIWYG).
Uses modeling concepts to capture
information about business, data, and
processes.
27
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
RAD Weaknesses
Accelerated development process must give
quick responses to the user
Risk of never achieving closure
Hard to use with legacy systems
Requires a system that can be modularized
Developers and customers must be
committed to rapid-fire activities in an
abbreviated time frame.
28
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
When to use RAD
Reasonably well-known requirements
User involved throughout the life cycle
Project can be time-boxed
Functionality delivered in increments
High performance not required
Low technical risks
System can be modularized
29
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Three RAD Categories
1. Phased development
A series of versions developed
sequentially
2. Prototyping
System prototyping
3. Throw-away prototyping
Design prototyping
30
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Phased Development
31
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Phased Development
Break overall system into a series of
versions
Each version has Analysis, Design, and
Implementation
Output from one version is the input to
the next
Incorporate ideas, issues, lessons learned in
one version into the next version
32
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Phased Development-based Methodology
33
Pros and Cons of Phased Development
Methodology
Pros Cons
Users get a system to Users work with a
use quickly system that is
intentionally
incomplete
Users can identify Sub-projects maybe
additional needs for difficult to integrate
later versions
34
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Prototyping Methodology
Prototyping tests system concepts and provide an
opportunity to examine input, output, and user
interface before final decisions are made.
Early working version of an information system
Analysis, Design, Implementation are performed
concurrently
Start with a "quick-and-dirty" prototype
Provides minimal functionality
Repeat process, refining the prototype each time
Stop when prototype is a working system
35
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Prototyping Methodology
36
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
How Prototyping Works
37
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Pros and Cons of Prototyping Methodology
Pros Cons
Speeds up the development Important decisions might be
process significantly made too early, before
business or IT issues are
thoroughly understood
Users interact with Initial Design decisions may
Prototype very quickly be poor
39
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Throwaway Prototyping
40
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Pros and Cons of Throwaway
Prototyping Methodology
Pros Cons
Risks are minimized May take longer than
prototyping
Important issues are
understood before the
real system is built
41
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Incremental Model
Construct a partial implementation of a
total system
Then slowly add increased functionality
The incremental model prioritizes
requirements of the system and then
implements them in groups.
Each subsequent release of the system
adds function to the previous release,
until all designed functionality has been
implemented.
42
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Incremental Model
43
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Incremental Model Strengths
Develop high-risk or major functions first
Each release delivers an operational product
Customer can respond to each build
Uses “divide and conquer” breakdown of
tasks
Lowers initial delivery cost
Initial product delivery is faster
Customers get important functionality early
Risk of changing requirements is reduced
44
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Incremental Model Weaknesses
Requires good planning and design
Requires early definition of a complete
and fully functional system to allow for
the definition of increments
Well-defined module interfaces are
required (some will be developed long
before others)
Total cost of the complete system is not
lower
45
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
When to use the Incremental Model
Risk, funding, schedule, program complexity,
or need for early realization of benefits.
Most of the requirements are known up-
front but are expected to evolve over time
A need to get basic functionality to the
market early
On projects which have lengthy
development schedules
On a project with new technology
46
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Model
47
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Model
Adds risk analysis, and 4gl RAD
prototyping to the waterfall model
Each cycle involves the same
sequence of steps as the waterfall
process model
48
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Quadrant
Determine objectives, alternatives and constraints
49
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Quadrant
Evaluate alternatives, identify and resolve risks
50
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Quadrant
Develop next-level product
Typical activities:
◦ Create a design
◦ Review design
◦ Develop code
◦ Inspect code
◦ Test product
51
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Quadrant
Plan next phase
Typical activities
◦ Develop project plan
◦ Develop configuration management
plan
◦ Develop a test plan
◦ Develop an installation plan
52
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Model Strengths
Provides early indication of insurmountable
risks, without much cost
Users see the system early because of rapid
prototyping tools
Critical high-risk functions are developed first
The design does not have to be perfect
Users can be closely tied to all lifecycle steps
Early and frequent feedback from users
Cumulative costs assessed frequently
53
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Model Weaknesses
Time spent for evaluating risks too large for
small or low-risk projects
Time spent planning, resetting objectives, doing
risk analysis and prototyping may be excessive
The model is complex
Risk assessment expertise is required
Spiral may continue indefinitely
Developers must be reassigned during non-
development phase activities
May be hard to define objective, verifiable
milestones that indicate readiness to proceed
through the next iteration
54
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
When to use Spiral Model
When creation of a prototype is appropriate
When costs and risk evaluation is important
For medium to high-risk projects
Long-term project commitment unwise
because of potential changes to economic
priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and
exploration)
55
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
The WinWin Spiral model (1994)
56
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
The WinWin Spirla model (1994)
57
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
The WinWin Spirla model (1994)
58
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Introduction to Modern Software development
method
Classical methods of software development have
many disadvantages:
huge effort during the planning phase
poor requirements conversion in a rapid changing
environment
treatment of staff as a factor of production
New methods:
Agile Software Development Methodology
59
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Agile Methodology
Agile Methodologies are
known as lightweight
development methods based
on rapid development cycles
and flexible response to
changes in requirements.
60
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
What is Agile ?
Agile proponents believe
◦ Current software development processes are too heavyweight or
cumbersome
Too many things are done that are not directly related to software
product being produced
◦ Current software development is too rigid
Difficulty with incomplete or changing requirements
Short development cycles (Internet applications)
◦ More active customer involvement needed
focuses on process
61
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Contd…
Agile methods are considered
◦ Lightweight
◦ People-based rather than Plan-based
Several agile methods
◦ No single agile method
◦ XP most popular
No single definition
Agile Manifesto closest to a definition
◦ Set of principles
◦ Developed by Agile Alliance
62
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Agile Methodology
63
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Agile Methods
Agile methods:
◦ Scrum
◦ Extreme Programming
◦ Adaptive Software Development (ASD)
◦ Dynamic System Development Method (DSDM)
◦ Kanban
◦ Lean
◦ Crystal
◦ Featured Driven Development(FDD)
64
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Agile Manifesto
Agile Methodologies are also based on the
following principles:
Individuals and interactions over processes
and tools;
Working software over comprehensive
documentation;
Customer collaboration over contract
negotiation;
Responding to change over following a plan.
( http://www.agilemanifesto.org)
65
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Agile Methodology
The various agile methodologies share much
of the same philosophy, as well as many of
the same characteristics and practices.
But from an implementation standpoint, each
has its own recipe of practices, terminology,
and tactics. Here we have summarized a few
of the main agile software development
methodology contenders:
66
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Pros and Cons of Agile Methodologies
Pros Cons
Fast delivery of results Requires discipline
67
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
When to use Agile Model?
68
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Scrum
69
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Scrum in 100 words
Scrum is an agile process that allows us to focus
on delivering the highest business value in the
shortest time.
It allows us to rapidly and repeatedly inspect actual
working software (every two weeks to one
month).
The business sets the priorities. Our teams self-
manage to determine the best way to deliver the
highest priority features.
Every two weeks to a month anyone can see real
working software and decide to release it as is or
continue to enhance for another iteration.
70
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
How Scrum Works?
71
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Sequential vs. Overlapping Dev.
72
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Product Owner
Define the features of the product
Decide on release date and content
Be responsible for the profitability of the
product (ROI)
Prioritize features according to market
value
Adjust features and priority every
iteration, as needed
Accept or reject work results.
73
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
The Scrum Master
Represents management to the project
Responsible for enacting Scrum values and
practices
Removes impediments
Ensure that the team is fully functional and
productive
Enable close cooperation across all roles
and functions
Shield the team from external interferences
74
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Scrum Team
Typically 5-10 people
Cross-functional
◦ QA, Programmers, UI Designers, etc.
Members should be full-time
◦ May be exceptions (e.g., System Admin, etc.)
Teams are self-organizing
◦ What to do if a team self-organizes someone off the team??
◦ Ideally, no titles but rarely a possibility
Membership can change only between sprints
75
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spring Planning Meeting
Product Backlog
Team Capabilities
Sprint Goal
Sprint Planning
Business Conditions
Meeting
Sprint Backlog
Technology
Current Product
76
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Parameters Daily Scrum
◦ Daily
◦ 15-minutes
◦ Stand-up
◦ 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?
Chickens and pigs are invited
◦ Help avoid other unnecessary meetings
Only pigs can talk
77
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Daily Scrum
78
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Sprint Review Meeting
Team presents what it accomplished
during the sprint
Typically takes the form of a demo of
new features or underlying
architecture
Informal
◦ 2-hour prep time rule
Participants
◦ Customers
◦ Management
◦ Product Owner
◦ Other engineers
79
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Pros/Cons
Advantages Drawbacks
Completely developed “Undisciplined hacking”
and tested features in (no written
short iterations documentation)
Simplicity of the Violation of
process responsibility
Clearly defined rules Current mainly carried
Increasing productivity by the inventors
Self-organizing
each team member
carries a lot of
responsibility
Improved
communication
Combination with
Extreme Programming
80
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Extreme Programming - XP
For small-to-medium-sized teams developing
software with vague or rapidly changing
requirements
Coding is the key activity throughout a
software project
Communication among teammates is done
with code
Life cycle and behavior of complex objects
defined in test cases – again in code
81
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Extreme Programming
82
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Extreme programming
Perhaps the best-known and most widely
used agile method.
Extreme Programming (XP) takes an
‘extreme’ approach to iterative development.
◦ New versions may be built several times per day;
◦ Increments are delivered to customers every 2
weeks;
◦ All tests must be run for every build and the
build is only accepted if tests run successfully.
87
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
XP Practices (7 – 12)
7. Pair-programming -- all production code is written
with two programmers at one machine
8. Collective ownership – anyone can change any code
anywhere in the system at any time.
9. Continuous integration – integrate and build the
system many times a day – every time a task is
completed.
10. 40-hour week – work no more than 40 hours a
week as a rule
11. On-site customer – a user is on the team and
available full-time to answer questions
12. Coding standards – programmers write all code in
accordance with rules emphasizing communication
through the code
88
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
XP is “extreme” because
Commonsense practices taken to extreme levels
If code reviews are good, review code all the time (pair
programming)
If testing is good, everybody will test all the time
If simplicity is good, keep the system in the simplest
design that supports its current functionality. (simplest
thing that works)
If design is good, everybody will design daily
(refactoring)
If architecture is important, everybody will work at
defining and refining the architecture (metaphor)
If integration testing is important, build and integrate
test several times a day (continuous integration)
If short iterations are good, make iterations really, really
short (hours rather than weeks)
89
Which Methodology to Use?
90
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Quality
the degree to which the software satisfies
stated and implied requirements
Absence of system crashes
Correspondence between the software
and the users’ expectations
Performance to specified requirements
Quality must be controlled because it
lowers production speed, increases
maintenance costs and can adversely affect
business
91
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Quality Assurance Plan
The plan for quality assurance activities
should be in writing
Decide if a separate group should
perform the quality assurance activities
Some elements that should be
considered by the plan are: defect
tracking, unit testing, source-code
tracking, technical reviews, integration
testing and system testing.
92
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Quality Assurance Plan
1. Defect tracing – keeps track of each defect found, its
source, when it was detected, when it was resolved,
how it was resolved, etc
2. Unit testing – each individual module is tested
3. Source code tracing – step through source code line
by line
4. Technical reviews – completed work is reviewed by
peers
5. Integration testing -- exercise new code in
combination with code that already has been
integrated
6. System testing – execution of the software for the
purpose of finding defects.
93
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Engineering
Powerpoint Templates 94
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Engineering
End of Chapter 2
Powerpoint Templates 95
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)