0% found this document useful (0 votes)
28 views95 pages

Chapter - 2 Sofware Process - Lim Lyheng - Norton

Uploaded by

Leng Hongmeng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views95 pages

Chapter - 2 Sofware Process - Lim Lyheng - Norton

Uploaded by

Leng Hongmeng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 95

Norton Software Development

Software Engineering (SE)


Lecturer :Lim Lyheng
Email: [email protected]

Tel: 011 588 297

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

What is Process? And why we study it?

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.

New or changed Software Engineering New or changed


requirements Process 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 ...

 Provides guidelines for efficient development of


quality software
 Reduces risk and increases predictability
 Captures and presents best practices
◦ Learn from other’s experiences
◦ Mentor on your desktop
◦ Extension of training material
 Promotes common vision and culture
 Provides roadmap for applying tools
 Delivers information on-line, at your finger tips

7
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Lightweight vs. Heavyweight Processes

Heavyweight Customizable Agile (Lightweight)


e.g., V-Process Framework e.g., eXtreme
e.g., Rational Programming (XP)
Unified
Process (RUP)

 Document driven  Focus on working code


 Elaborate workflow definitions rather than documentation
 Many different roles  Focus on direct communication
 Many checkpoints (between developers and
 High management overhead between developers and the customer)
 Highly bureaucratic  Low management overhead

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

The software process


 A structured set of activities required to develop a
software system
◦ Specification;
◦ Design;
◦ Validation;
◦ Evolution.
 A software process model is an abstract
representation of a process. It presents a
of a process from some particular perspective.

10
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development

Why process model so important?


 The goal of a software process model is to provide
guidance for systematically coordinating and controlling
the tasks that must be performed in order to achieve
the end product and the project objective.
◦ A set of tasks that need to be performed
◦ The input to and output from each task
◦ The preconditions and post-conditions for each task
◦ The sequence and flow of these tasks

11
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Norton Software Development

Why process model so important?

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

Relationship between components of a


methodologies

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?

 Easy to understand, easy to use


 Provides structure to inexperienced staff
 Milestones are well understood
 Sets requirements stability
 Good for management control (plan, staff, track)
 Works well when quality is more important than
cost or schedule

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

Incorporate special techniques and tools:


◦ CASE tools
◦ JAD sessions
◦ Fourth generation/visualization programming
languages
◦ Code generators

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

This methodology breaks the overall system


into a series of versions that are developed
sequentially.
The team categorizes the requirements into a
series of versions, then the most important
and fundamental requirements are bundled
into the first version of the system.
The analysis phase then leads into design and
implementation; however, only with the set
of requirements identified for version 1.
As each version is completed, the team
begins work on a new version.

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

 Aim: Quickly create something that shows


how the system (or a portion of it) will work
 Allow hands out interaction with system to
test requirements and key design features
◦ The user and developer work together to
develop a partially or fully functional system
as soon as possible.
◦ A prototype may be developed to discover
or refine system requirement specifications.

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

Users can identify needed


changes and refine real
requirements
38
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Throw away Prototyping Model

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

 Objectives: functionality, performance,


hardware/software interface, critical
success factors, etc.
 Alternatives: build, reuse, buy, sub-contract,
etc.
 Constraints: cost, schedule, interface, etc.

49
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
Spiral Quadrant
Evaluate alternatives, identify and resolve risks

 Study alternatives relative to objectives


and constraints
 Identify risks (lack of experience, new
technology, tight schedules, poor process,
etc.
 Resolve risks (evaluate if money could be
lost by continuing system development

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.

Based on one basic idea:


Requirements are so difficult to
define that they must evolved during
the period of development. This is
based on 80:20 Pareto principle.

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)

 Agile Alliance (www.agilealliance.org)


◦ A non-profit organization promotes agile
development

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

Works well in project Works best in small


with undefined
Pros or projects
Cons
changing requirements
Requires much user
input

67
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China)
When to use Agile Model?

 Both system developers and stakeholders alike


 they also get more freedom of time and options
than if the software was developed in a more
rigid sequential way.
 Having options gives them the ability to leave
important decisions until more or better data
or even entire hosting programs are available
 meaning the project can continue to move
forward without fear of reaching a sudden
standstill

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.

Requirements Design Code Test

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

 Is NOT a problem solving session


 Is NOT a way to collect information
about WHO is behind the schedule
 Is a meeting in which team members
make commitments to each other and to
the Scrum Master
 Is a good way for a Scrum Master to track
the progress of the Team

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.

Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China) 83


Recipe of XP
 The original XP recipe is based on four simple values – simplicity,
communication, feedback, and courage – and twelve supporting
practices:
◦ Planning Game
◦ Small Releases
◦ Customer Acceptance Tests
◦ Simple Design
◦ Pair Programming
◦ Test-Driven Development
◦ Refactoring
◦ Continuous Integration
◦ Collective Code Ownership
◦ Coding Standards
◦ Metaphor
◦ Sustainable Pace 84
Recipe of XP
 XP is a disciplined approach to delivering high-quality
software quickly and continuously. It promotes high
customer involvement, rapid feedback loops, continuous
testing, continuous planning, and close teamwork to deliver
working software at very frequent intervals, typically every
1-3 weeks.
 In XP, the "Customer" works very closely with the
development team to define and prioritize granular units of
functionality referred to as "User Stories".
 The development team estimates, plans, and delivers the
highest priority user stories in the form of working, tested
software on an iteration-by-iteration basis. In order to
maximize productivity, the practices provide a supportive,
lightweight framework to guide a team and ensure high-
quality software 85
XP and agile principles
 Incremental development is supported through
small, frequent system releases.
 Customer involvement means full-time customer
engagement with the team.
 People not process through pair programming,
collective ownership and a process that avoids long
working hours.
 Change supported through regular system
releases.
 Maintaining simplicity through constant refactoring
of code.
Lecturer: Mr. Lim Lyheng ( Mse in Computer Application Technology, China) 86
XP Practices (1-6)
1) Planning game – 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 cycle
3) Metaphor – all development is guided by a simple
shared story of how the whole system works
4) Simple design – system is designed as simply as
possible (extra complexity removed as soon as
found)
5) Testing – programmers continuously write unit tests;
customers write tests for features
6) Refactoring – programmers continuously restructure
the system without changing its behavior to remove
duplication and simplify

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)

You might also like