A software development methodology is
a framework that is used to structure, plan, and control the process of
developing an information system - this includes the pre-definition
of specific deliverable and artifacts that are created and completed by a
project team to develop or maintain an application.
A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One software development methodology framework is not necessarily suitable for use by all projects. Each of the available methodology frameworks are best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.
These software development frameworks are often bound to some kind of organization, which further develops, supports the use, and promotes the methodology framework. The methodology framework is often defined in some kind of formal documentation.
Every software development methodology approach acts as a basis for applying specific frameworks to develop and maintain software. Several software development approaches have been used since the origin of information technology. Broadly these are:
1. Software development life cycle methodology
2. Agile methodology
There are many models under these methodologies:
1. Software development life cycle:
· Waterfall: a linear framework
· Spiral: a combined linear-iterative framework
· Prototyping: an iterative framework
· Rapid application development (RAD): an iterative framework
2. Agile methodology:
· Scrum
· Extreme programming
· Adaptive software development (ASD)
· Dynamic system development method (DSDM)
· Lean Software Development
- WaterFall:
- .Spiral: a combined linear-iterative framework
- . Prototyping: an iterative framework: Creating prototypes of software applications i.e. incomplete versions of the software program being developed
- . Iterative and Incremental Development: is any combination of both iterative design or iterative method and incremental build model for development.
- Rapid application development (RAD): Rapid application development (RAD) is a suite of software development methodology techniques used to expedite software application development. RAD uses predefined prototyping techniques and tools to produce software applications. It encompasses a graphical user interface (GUI) development environment, allowing end users to easily drag and drop required software application components.
About Agile methodologies we will discuss in detail in upcoming posts