Iterative and Incremental Software Development: A Comprehensive Guide, Exams of Computer Science

An in-depth exploration of iterative and incremental software development, including models such as the Incremental Model, V-Model, Spiral Model, Rational Unified Process, Rapid Application Development, and Agile Development. Learn about the benefits and challenges of each approach, as well as their applications in software development.

Typology: Exams

2019/2020

Uploaded on 10/12/2020

moazzam-kiani-1
moazzam-kiani-1 🇵🇰

5 documents

1 / 61

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CS-2223
Software Engineering-
1
(SE-1)
Lecture: 03
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d

Partial preview of the text

Download Iterative and Incremental Software Development: A Comprehensive Guide and more Exams Computer Science in PDF only on Docsity!

CS-

Software Engineering-

(SE-1)

Lecture: 03

Sequence [ Todays Agenda ]

Content of Lecture

  • Iterative and Incremental Development
  • Prototyping
  • V-Model
  • Spiral Model
  • Rational Unified Process
  • Rapid Application Development
  • Introduction to Agile Development
  • Introduction to Scrum and XP

Iterative and Incremental Model

The Incremental Model

Advantages of incremental model

1. Major advantage : it can result in better testing since testing

each increment is likely to be easier than testing the entire

system.

2. Similar to prototype each increment provides feed back

which is useful for determining further/final requirements of

the system.

3. Model proceeds in steps starting from the simple and key

aspects of the system.

4. A project control list is prepared that contains, in order, all

the tasks to be implemented in the final system; provides a

better control and progress monitoring of development.

The system grows incrementally (a little more is added each time) over time, iteration by iteration, and thus this approach is also known as iterative and incremental development There is neither a rush to code, nor a long drawn-out design step that attempts to perfect all details of the design before programming Work proceeds through a series of structured build- feedback-adapt cycles The result of each iteration is an executable but incomplete system; it is not ready to deliver into production Iterative and Incremental Development

Short is good!

Date slippage is illegal

If it seems that it will be difficult to meet the deadline, the recommended response is to remove tasks or requirements from the iteration, and include them in a future iteration, rather than slip the completion date Iteration Time-boxing (contd…)

Incremental development problems

  • (^) The process is not visible.
    • (^) – Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system.
  • (^) System structure tends to degrade as new increments are

added.

  • (^) – Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly.

Incremental development and delivery

- Incremental development - (^) – Develop the system in increments and evaluate each increment before proceeding to the development of the next increment; - (^) – Normal approach used in agile methods; - (^) – Evaluation done by user/customer proxy.

  • • Incremental delivery
    • (^) – Deploy an increment for use by end-users;
    • (^) – More realistic evaluation about practical use of software;
    • (^) – Difficult to implement for replacement systems as increments have less functionality than the system being replaced.

Software Prototyping Model

  • (^) A prototype is an initial version of a system used to demonstrate concepts and try out design options.
  • (^) A prototype can be used in:
    • The requirements engineering process to help with

requirements elicitation and validation;

  • In design processes to explore options and develop a UI

design ;

  • In the testing process to run back-to-back tests.

Benefits of prototyping

  • (^) Improved system usability.
  • A closer match to users’ real needs.
  • (^) Improved design quality.
  • (^) Improved maintainability.
  • (^) Reduced development effort.