Lecture 02
Lecture 02
Lecture 02
PRINCIPLES
an
agile project management methodology
that supports frequent releases in short
development cycles to improve software
quality and allow developers to respond
to changing customer requirements.
Values of extreme
programming methodology
Simplicity
Streamlined communication
Consistent, constructive feedback
Respect
Courage
When to use extreme
programming
Expect their system’s functionality to change every
few months.
Experience constantly changing requirements or work
with customers who aren’t sure what they want the
system to do.
Want to mitigate project risk, especially around tight
deadlines.
Include a small number of programmers (between 2
and 12 is preferable).
Are able to work closely with customers.
Are able to create automated unit and functional
tests.
Dynamic System Development
Spiral Model
The spiral model is similar to the incremental
development for a system, with more
emphasis placed on risk analysis.
The spiral model has four phases: Planning,
Design, Construct and Evaluation. A software
project repeatedly passes through these
phases in iterations (called Spirals in this
model).
Key points
Software processes are the activities involved
in producing a software system. Software
process models are abstract representations
of these processes.
General process models describe the
organization of software processes.
Examples of these general models include the
‘waterfall’ model, incremental development, and
reuse-oriented development.
Requirements engineering is the process of
developing a software specification.
Key points
Design and implementation processes are
concerned with transforming a requirements
specification into an executable software
system.
Software validation is the process of checking
that the system conforms to its specification
and that it meets the real needs of the users
of the system.
Key points
Software evolution takes place when you
change existing software systems to meet
new requirements. The software must evolve
to remain useful.
Processes should include activities such as
prototyping and incremental delivery to cope
with change.
Processes may be structured for iterative
development and delivery so that changes
may be made without disrupting the system
as a whole.