• No results found

Softenr-3

N/A
N/A
Protected

Academic year: 2020

Share "Softenr-3"

Copied!
30
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Engineering

Software Process

(2)

Chapter-3: Agile Development

Objectives

Agile methods

Plan-driven and agile development

Extreme programming

Agile project management

Scaling agile methods

(3)

Rapid software development

Rapid development and delivery is now often

the most important requirement for software

systems

Businesses operate in a fast –changing requirement

and it is practically impossible to produce a set of

stable software requirements

Software has to evolve quickly to reflect changing

business needs.

(4)

Rapid software development

Rapid software development

Specification, design and implementation are

inter-leaved

System is developed as a series of versions with

stakeholders involved in version evaluation

User interfaces are often developed using an IDE

(5)

5

What is “Agility”?

Effective (rapid and adaptive) response to change

Effective communication among all stakeholders

Drawing the customer onto the team

Organizing a team so that it is in control of the work

performed

Yielding …

(6)

Plan-driven and agile processes

Plan-driven processes are processes where all of

the process activities are planned in advance and

progress is measured against this plan.

In agile processes, planning is incremental and it

is easier to change the process to reflect

changing customer requirements.

In practice, most practical processes include

(7)

Plan-driven and agile specification

(8)

Agile methods

Dissatisfaction with the overheads involved in software design

methods of the 1980s and 1990s led to the creation of agile

methods. These methods:

Focus on the code rather than the design

Are based on an iterative approach to software development

Are intended to deliver working software quickly and evolve this

quickly to meet changing requirements.

The aim of agile methods is to reduce overheads in the

(9)

9

(10)

Agile values

1. Individuals and Interactions Over Processes and Tools.

2. Working Software Over Comprehensive Documentation.

3. Customer Collaboration Over Contract Negotiation.

(11)

11

Agility Principles - I

1. Our highest priority is

to satisfy the customer

through early and continuous

delivery of valuable software.

2.

Welcome changing requirements

, even late in development. Agile processes

harness change for the customer's competitive advantage.

3.

Deliver working software frequently

, from a couple of weeks to a couple of

months, with a preference to the shorter timescale.

4. Business people and developers must

work together

daily throughout the

project.

5. Build projects around

motivated individuals

. Give them the environment

and support they need, and

trust

them to get the job done.

6. The most efficient and effective method of conveying information to and

(12)

Agility Principles - II

7.

Working software

is the primary

measure of progress.

8. Agile processes

promote sustainable development.

The sponsors,

developers, and users should be able to maintain a constant pace

indefinitely.

9.

Continuous attention

to technical excellence and good design

enhances agility.

10.

Simplicity

– the art of maximizing the amount of work not done – is

essential.

11. The best architectures, requirements, and designs emerge from

self–

organizing teams.

(13)

13

Human Factors

the process molds to the needs of the people

and team,

not

the other way around

key traits must exist among the people on an agile

team and the team itself:

Competence.

Common focus.

Collaboration.

Decision-making ability.

Fuzzy problem-solving ability.

Mutual trust and respect.

(14)

Problems with agile methods

It can be

difficult to keep the interest of customers

who are involved in the process.

Team members may be unsuited

to the intense

involvement that characterizes agile methods.

Prioritizing changes

can be difficult where there are

multiple stakeholders

.

Maintaining

simplicity requires extra work

.

Contracts

may be a problem as with other

(15)

15

Extreme Programming (XP)

The most widely used agile process, originally proposed by

Kent Beck

XP Planning

Begins with the creation of “

user stories

Agile team assesses each story and assigns a

cost

Stories are grouped to form a

deliverable increment

A

commitment

is made on delivery date

After the first increment “

project velocity

” is used to help

(16)
(17)

17

(18)

Extreme programming practices (a)

Principle or practice Description

Incremental planning Requirements are recorded on story cards and the stories to be

included in a release are determined by the time available and their relative priority. The developers break these stories into development ‘Tasks’.

Small releases The minimal useful set of functionality that provides business

value is developed first. Releases of the system are frequent and incrementally add functionality to the first release.

Simple design Enough design is carried out to meet the current requirements

and no more.

Test-first development An automated unit test framework is used to write tests for a

(19)

Extreme programming practices (b)

Pair programming Developers work in pairs, checking each other’s work and

providing the support to always do a good job.

Collective ownership The pairs of developers work on all areas of the system, so that

no islands of expertise develop and all the developers take responsibility for all of the code. Anyone can change anything.

Continuous integration As soon as the work on a task is complete, it is integrated into

the whole system. After any such integration, all the unit tests in the system must pass.

Sustainable pace Large amounts of overtime are not considered acceptable as

the net effect is often to reduce code quality and medium term productivity

On-site customer A representative of the end-user of the system (the customer)

should be available full time for the use of the XP team. In an extreme programming process, the customer is a member of the development team and is responsible for bringing system requirements to the team for implementation.

(20)

Extreme Programming (XP)

unit test pair programming Release user stories values

acceptance test criteria

iteration plan simple design CRC cards spike solutions prototypes refactoring

For reference, here are the 12 Practices of

Extreme Programming

1.Coding Standards

2.Collective Ownership

3.Continuous Integration

4.On-Site Customer

5.Pair Programming

6.Planning Game

7.Refactoring

8.Short Releases

9.Simple Design

10.Sustainable Pace (40 Hour Week)

11.System Metaphor

(21)

21

Adaptive Software Development

Originally proposed by Jim Highsmith

ASD — distinguishing features

Mission-driven

planning

Component-based focus

Uses “

time-boxing

Explicit consideration of

risks

(22)
(23)

Adaptive Software Development

adaptive cycle planning uses mission statement project constraints basic requirements

time-boxed release plan

Requirements gathering J AD

mini-specs

components implemented/ tested focus groups for feedback formal technical reviews

postmortems

software increment

adjustments for subsequent cycles

(24)

Scrum

Originally proposed by Schwaber and Beedle

Scrum—distinguishing features

Development work is partitioned into “

packets

Testing and documentation are on-going

as the product

is constructed

Work occurs in “

sprints

” and is derived from a “

backlog

of existing requirements

Meetings are very short

and sometimes conducted

without chairs

(25)

time-Ref: http://www.dninfotech.com/Home/AgileTraining

(26)

Crystal

Proposed by Cockburn and Highsmith

Crystal—distinguishing features

Actually a

family of process models

that allow

maneuverability

” based on problem characteristics

Face-to-face communication

is emphasized

Suggests the use of “

reflection workshops

” to review the work

(27)

27

Feature Driven Development

Originally proposed by Peter Coad et al

FDD—distinguishing features

Emphasis is on defining

“features”

a

feature

“is a client-valued function that can be

implemented in two weeks or less.”

Uses a

feature template

• <action> the <result> <by | for | of | to> a(n) <object>

A

features list

is created and “

plan by feature

” is

conducted

(28)
(29)

Summary

(30)

Summary

S

oftware Process defines the methodology to

construct a software.

There are two types of model plan-driven and

Agile- models

Agile modelling includes all the stakeholders at

all stages providing the concept of

self-organizing teams.

Crystal, Scrum & XP are the examples of agile

References

Related documents

Newby indicated that he had no problem with the Department’s proposed language change.. O’Malley indicated that the language reflects the Department’s policy for a number

AND FURTHER THAT Council appoints Mayor Molnar, Councillor Parker and Councillor Gilvesy to the CAO Performance Review Committee; AND FURTHER THAT Council approves the proposed

As he peers over the berm, Goodman sees Charlie as he looks towards the wood line while he stands near

As we see in Table 1, Fisher vectors are much better in describing parts for fine-grained categorization than match- ing based descriptors like HOG.. Where HOG scores an ac- curacy

Query Processing Model in Esper (cont.) Event stream Query Sensors/Trace files Listener Event stream Query Event stream Event stream Query Query Listener Listener Query

The state Office of Environmental Health Hazard Assessment (OEHHA) on January 12 released proposed regulations to substantially revise Proposition 65 warning