[go: up one dir, main page]

0% found this document useful (0 votes)
135 views22 pages

SE3 - Chapter 3 - Agile Software Development

This chapter discusses agile software development. It covers agile methods, techniques, and project management. Agile methods aim to rapidly develop working software through iterative development and frequent delivery. Techniques include user stories, frequent releases, and customer involvement. Scrum provides an agile project management framework centered around sprints. While effective for many systems, agile may not be suitable for large, integrated systems with extensive configuration requirements.

Uploaded by

Ahmed Dieaa
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)
135 views22 pages

SE3 - Chapter 3 - Agile Software Development

This chapter discusses agile software development. It covers agile methods, techniques, and project management. Agile methods aim to rapidly develop working software through iterative development and frequent delivery. Techniques include user stories, frequent releases, and customer involvement. Scrum provides an agile project management framework centered around sprints. While effective for many systems, agile may not be suitable for large, integrated systems with extensive configuration requirements.

Uploaded by

Ahmed Dieaa
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/ 22

Chapter 3

Agile Software
Development
2
Topics covered

Agile methods
Agile development techniques
Agile project management

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.

Plan-driven development is essential for some types of system but does


not meet these business needs.

4
Agile Development

❑Agile development methods emerged in the late 1990s whose aim was to
radically reduce the delivery time for working software systems
❑Program specification, design and implementation are inter-leaved.
❑The system is developed as a series of versions or increments with
stakeholders involved in version specification and evaluation.
❑Frequent delivery of new versions for evaluation.
❑Extensive tool support (e.g. automated testing tools) used to support
development.
❑Minimal documentation – focus on working code. 5
Plan-driven and Agile Development

6
Plan-driven and agile development
Plan-driven development

• A plan-driven approach to software engineering is based around separate


development stages with the outputs to be produced at each of these stages
planned in advance.
• Not necessarily waterfall model – plan-driven, incremental development is possible
• Iteration occurs within activities.

Agile development

• Specification, design, implementation and testing are inter-leaved and the outputs
from the development process are decided through a process of negotiation during
the software development process.

7
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 software process (e.g. by limiting
documentation) and to be able to respond quickly to changing requirements without
excessive rework.

8
The principles of agile methods
Principle Description

Customer involvement Customers should be closely involved throughout the development process.
Their role is provide and prioritize new system requirements and to evaluate the
iterations of the system.

Incremental delivery The software is developed in increments with the customer specifying the
requirements to be included in each increment.

People not process The skills of the development team should be recognized and exploited. Team
members should be left to develop their own ways of working without prescriptive
processes.

Embrace change Expect the system requirements to change and so design the system to
accommodate these changes.

Maintain simplicity Focus on simplicity in both the software being developed and in the
development process. Wherever possible, actively work to eliminate complexity
from the system.

9
Agile development
techniques

10
Extreme programming

 The best known and most widely used agile method.


 A very influential agile method, developed in the late 1990s, that introduced a
range of agile development techniques.
 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.

11
The extreme programming
release cycle

12
A ‘prescribing medication’ story

15
Examples of task cards for prescribing medication

16
Test case description for dose checking

21
Agile project management

 The principal responsibility of software project managers is to manage the project so


that the software is delivered on time and within the planned budget for the project.

 The standard approach to project management is plan-driven. Managers draw up a


plan for the project showing what should be delivered, when it should be delivered and
who will work on the development of the project deliverables.

 Agile project management requires a different approach, which is adapted to


incremental development and the practices used in agile methods.

22
Scrum

 Scrum is an agile method that focuses on managing iterative development rather


than specific agile practices.

 There are three phases in Scrum.


▪ The initial phase is an outline planning phase where you establish the general
objectives for the project and design the software architecture.
▪ This is followed by a series of sprint cycles, where each cycle develops an
increment of the system.
▪ The project closure phase wraps up the project, completes required
documentation such as system help frames and user manuals and assesses
the lessons learned from the project.

23
Scrum sprint cycle

24
Agile methods for large systems

 Large systems are usually collections of separate, communicating systems, where


separate teams develop each system. Frequently, these teams are working in different
places, sometimes in different time zones.

 Large systems are ‘brownfield systems’, that is they include and interact with a number
of existing systems. Many of the system requirements are concerned with this
interaction and so don’t really lend themselves to flexibility and incremental
development.

 Where several systems are integrated to create a system, a significant fraction of the
development is concerned with system configuration rather than original code
development.

25
Key points

 Agile methods are incremental development methods that focus on rapid software development,
frequent releases of the software, reducing process overheads by minimizing documentation and
producing high-quality code.
 Agile development practices include
▪ User stories for system specification
▪ Frequent releases of the software,
▪ Continuous software improvement
▪ Test-first development
▪ Customer participation in the development team.

 Scrum is an agile method that provides a project management framework.


▪ It is centred round a set of sprints, which are fixed time periods when a system increment is
developed. 26
THINK

 Explain why the rapid delivery and deployment of new systems is often more important
to businesses than the detailed functionality of these systems.
 Explain how the principles underlying agile methods lead to the accelerated
development and deployment of software.
 When would you recommend against the use of an agile method for developing a
software system?

27
TASK
Select one of the following systems then specify the software requirements :
 ATM

 Vending Machine

 Washing Machine

 Car Parking System

 Advanced employee management system

 Fingerprint voting system

 Weather forecasting system

 Android local train ticketing system

 Railway tracking and arrival time prediction system

 Opinion mining for social networking platforms

 Credit card fraud detection

 AI shopping system

 e-Learning platform
28
 Smart health prediction system
References

• Sommerville, I. (2011). Software engineering 9th Edition. ISBN-


10, 137035152, 18.

29

You might also like