Software development life cycles

From NoskeWiki
Jump to navigation Jump to search

About

NOTE: This page is a daughter page of: Programming interviews


A software development life cycle (SDLC), also referred to as the software development process, is a system/structure imposed on the development of a software product. There are several different models of SDLC, with each describing approaches to a variety of tasks or activities that take place during the process. On these pages I've taken very shorthand notes representing the "essence" of some of the most popular models:


System Development Lifecycle

  • Analysis
  • Design
  • Implementation
  • Testing
  • Evaluation

... acronym: a tide


Waterfall

  • Requirements .... (Analysis)
    • Design
      • Implementation
        • Verification .... (Testing)
          • Maintenance .... (Evaluation)

... in this model, each step begins only after the last has finished criticism: too simplistic


Prototyping

Is about creating software in planned "stages".

Throwaway prototyping: a common form whereby you may develop a rapid GUI which you know you'll probably dispose of/redo, but serves the purpose of getting complete requirments and early feedback from your customer.


Spiral Model

Combines prototyping with the waterfall model, whereby several prototypes are created, with each involving its own "waterfall like" planning and validation stages.


Agile Programming

A set of guidelines which use iterative development but suggests a lighter and more "people centric viewpoint" -> a model which values feedback over planning. Agile development also suggests strategies like "pair programming" (one person typing while other watches) and "extreme programming".



Links