Neville
Silverman

Visual Basic Programmer
Microsoft Access Database Programmer

Custom Built Software 
Sydney, Australia
Phone Australia
(02) 9453-0456

Software Development: Software Development Models

Software Development: Software Development ModelsThere are several different software development life cycle Models aimed at improving programmer productivity and software quality. The development team should adopt the most appropriate Model for their projects.

Of course there must also be effective project management to ensure that expectations are met for functionality, cost and delivery.

Software Development: The Waterfall Model

The waterfall Model is the traditional software development life cycle. This is where the developers follow these phases:

  • Requirements analysis
  • Software design
  • Implementation and Integration
  • Testing
  • Deployment
  • Maintenance

In the Waterfall Model, after each phase is finished, it proceeds to the next one. Reviews may occur at any stage, allowing for the possibility of change.

Software Development: The Spiral Model

The Spiral Model combines the waterfall Model, rapid prototyping and iterative risk analysis. It is suited to large-scale projects.

The risk analysis concentrates on the options and constraints in order to support software Re-use and quality.

Software Development: Iterative and Incremental Development

Iterative development of a software project starts with minimal functionality. The functionality is increased as the project advances. This will reveal issues early in the development cycle. The Iterative process will also reveal design goals when they are not clearly defined.

In each increment, a slice of functionality is delivered. The process then iteratively enhances the evolving versions until the system is implemented. The goal for the design of any iteration is to be simple, straightforward, and modular. The analysis of an iteration is based upon user feedback.

Software Development: Agile Methodology

The Agile Methodology uses iterative development as a basis but with a lighter and more people oriented perspective than traditional approaches. Agile processes use feedback, rather than planning, as the control mechanism. The feedback is driven by regular testing and releases of the evolving software.

The Agile Manifesto defines the attitudes for software development:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

All common sense – but see also the The human factor which I think is vital for successful software development.

Software Development: Just "Code and Fix"

The "Code and fix" development is not so much a Model, as a strategy for coping with management pressures. Programmers immediately begin producing code without much planning. When testing begins, the inevitable occurs – what is delivered is not what was wanted or is unmaintainable.

Software Development: Evolutionary Development Model

There is usually an existing computer system that needs enhancing. The Evolutionary Model allows for a gradual transition from an old system to the new.