Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Software Engineering

INT2208E
Lecture 03: Agile Software Development

1
Last class

• Software process models


• Process activities
• Change and Coping with change in SE

2
Homework - Discussion

• Explain why software testing should always be an incremental, staged


activity with examples. Are programmers the best people to test the
programs that they have developed? Why?
• Using an example, explain why the design activities of architectural design,
database design, interface design, and component design are
interdependent

3
Questions (20’)

• Explain why the plan-based methods (Waterfall, Incremental, or even


Prototype-based) are not sufficiently good to meet changing requirements.
• List and describe Agile fundamentals/principles.
• Explain why Agile methods are most appropriate for new software
development rather than software maintenance.

4
Plan-driven and agile development
Plan-based development

Requirements Requirements Design and


engineering specification implementation

Requirements change
requests

Agile development

Requirements Design and


engineering implementation

7
The principles of agile methods?

8
Extreme programming – An Agile Dev. Technique

Select user
Break down
stories for this Plan release
stories to tasks
release

Evaluate Release Develop/integrate/


system software test software

10
Extreme programming: Principles?

11
How Agile’s principles be reflected in the XP’s
principles?

14
XP: Good or bad?

15
Scrum – Agile project management

Scrum

Review work Select Plan Review


sprint Sprint
to be done items sprint

Product Potentially
Sprint
backlog shippable
backlog
software

16
Scrum benefits?

18
How should we scale agile methods? Why
and examples?

19
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.

21
Key points

• 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.

• Many practical development methods are a mixture of plan-based and


agile development.
• Scaling agile methods for large systems is difficult.
• Large systems need up-front design and some documentation and organizational practice may
conflict with the informality of agile approaches.

22
Next class: Requirement Engineering

• Functional and non-functional requirements


• Requirements engineering processes
• Requirements elicitation
• Requirements specification
• Requirements validation
• Requirements change
• Reading assignment: Ch. 4 (Software Engineering, 10th Edition,
Sommerville, Ian)
23

You might also like