Software Engineering: Iterative Refinement, Agile Development, and Waterfall Model, Quizzes of Environmental science

An overview of various software development processes, including Iterative Refinement, Agile Development, and the Waterfall Model. It covers the definitions, steps, and advantages of each approach. Students of Computer Science, particularly those specializing in Software Engineering, will find this document useful for understanding the different methods used in software development.

Typology: Quizzes

2019/2020

Uploaded on 01/17/2022

muhammad-sa-ad-bashir
muhammad-sa-ad-bashir 🇳🇬

1 document

1 / 28

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Cornell'University!
Compu1ng'and'Informa1on'Science
CS#5150#So(ware#Engineering#
3.##Examples#of#so(ware#development#processes#
William#Y.#Arms
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Partial preview of the text

Download Software Engineering: Iterative Refinement, Agile Development, and Waterfall Model and more Quizzes Environmental science in PDF only on Docsity!

Cornell University

Compu1ng and Informa1on Science

CS 5150 So(ware Engineering

3. Examples of so(ware development processes

William Y. Arms

DefiniBons: AcBvity and Sprint

Ac1vity An acBvity is a general term for any part of a project that takes place over Bme (also known as a task )

  • (^) Each step in the so(ware development process can be broken down into several acBviBes. Sprint A sprint is a set period of Bme during which a team completes part of a so(ware project.
  • (^) Each sprint will go through most or all of the process steps.
  • (^) A typical sprint might have a team of 6 to 8 people working for 2 to 4 weeks.

IteraBve Refinement

Requirements Design ImplementaBon Review Release

Discussion of IteraBve Refinement

This is a medium weight process with documentaBon created during the process. IteraBve refinement uses various techniques that enable the client to review the the planned system early during development:

  • User interface mock-up
  • Throw-away so(ware components
  • Dummy modules
  • Rapid prototyping
  • Successive refinement Get something working as quickly as possible, for client and user evaluaBon, but do not release it.

Spiral Development

Spiral development

  • Create a base system that has the overall structure of the final product with dummy stubs for missing components.
  • Create a comprehensive set of test cases for all completed components
  • Use a succession of sprints to develop new or improved components, each with a set of test cases. Add these components to the source code library.
  • On a daily cycle, build the enBre system from the source code library and run the complete set of test cases. With spiral development there is always a fully tested system, but the funcBonality is incomplete. Example Developing a new version of an operaBng system.

Spiral Development

New and improved components Repeat every day Source code library Test library Build enBre system from source Run enBre test suite

Agile Development (Original Version with Immediate Release)

  • The project is divided into a large number of small tasks, known as sprints.
  • For each sprint, a team works through a full so(ware development cycle including planning, requirements analysis, design, coding, tesBng, and acceptance tesBng, and release.
  • Each sprint is completed in a fixed Bme period, e.g., four weeks.
  • The size of an sprint is based on team size, e.g., 5-10 people. Sprint 1 Release Sprint 1 Sprint 2 (^) Sprint 3 Release Sprint 2 Release Sprint 3

Discussion of Agile Development

Varia1ons on agile so=ware development In pracBce it is rarely possible for every sprint to end with released so(ware, but so(ware development based on sprints has many advantages. Modern so(ware development includes a wide range of processes that are called “agile”. Other processes with names such as “heroic programming” or “scrum” use many of the same concepts. Characteris1cs

  • (^) Development of a project is divided into a large number of sprints.
  • (^) Each sprint ends with fully tested code.
  • (^) This is a lightweight process with minimal documentation created during the process. A general defini1on (from Wikipedia) Agile so(ware development describes a set of principles for so(ware development under which requirements and soluBons evolve through the collaboraBve effort of self-organizing cross-funcBonal teams.

Agile Development: Rework

The challenge of agile development The agile approach is excellent for the development or continual enhancement of a system within an established architecture. A high-level team must establish the overall architecture and coordinate the sprints. Rework With agile development the requirements and design of the overall system emerge incrementally.

  • Inevitably parts of some early sprints will need to be reworked.
  • This requires changes to code that has already been fully tested and may have been released. This is always awkward. If the volume of rework is large, it is more efficient not to fully polish each component, but to use iterative refinement to minimize the amount of rework.

SequenBal Development: The Waterfall Model

Requirements System design Program tesBng OperaBon & maintenance Program design ImplementaBon (coding) Acceptance & release Requirements Design ImplementaBon Feasibility study There are problems with this basic model and it is rarely used in pracBce.

Discussion of the Waterfall Model

A pure sequen1al model is impossible Examples:

  • A feasibility study cannot create a proposed budget and schedule without a preliminary study of the requirements and a tentaBve design.
  • Detailed design and implementaBon reveal gaps in the requirements specificaBon.
  • Requirements and/or technology may change during the development. The plan must allow for some form of iteraBon.

Modified Waterfall Model

Waterfall model with feedback This is bejer Requirements System design Program tesBng OperaBon & maintenance Program design ImplementaBon (coding) Acceptance & release Feasibility study

Contracts

Note about contracts for so=ware development Some organizaBons contract for so(ware development by placing separate contracts for each stage of the Waterfall Model or arrange for payment a(er each stage. This is a very bad pracBce.

Mixed Processes

In pracBce, many large projects use processes that mix aspects of the four types of so(ware process. For example:

  • (^) With spiral development, new components may be developed using any of the three other methods.
  • (^) User interfaces have to be tested with users. This forces iteraBve development, even within an agile or sequenBal process.