A Software Development Methodology
or System 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 deliverables and artifacts that are created and completed by a project team to develop or maintain an application. The Systems Development Life Cycle (SDLC)
can be considered to be the oldest formalized methodology framework for building information systems, the main idea of the SDLC has been “to pursue the development of information systems in a very deliberate, structured and methodical way, requiring each stage of the life cycle from inception of the idea to delivery of the final system, to be carried out rigidly and sequentially” within the context of the framework being applied.
Every Software Development Methodology framework
acts as a basis for applying specific approaches to develop and maintain software. Several software development approaches have been used since the origin of information technology. These are
- Waterfall Model: The Waterfall Model is a sequential design process, often used in Software Development Processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis & Design, Execution, Testing and Maintenance.
The Waterfall Development Model originates in the manufacturing and construction industries: highly structured physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development. Read more
- Iterative Model: Iterative Model refers to the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering.
In Iterative Model the software designer and implementer can get valuable feedback from the users early in the project. The client and the contractor can compare if the software made matches the software specification, according to which the software program is built. It also allows the software engineer some insight into the accuracy of initial project estimates and whether the deadlines and milestones proposed can be successfully met. Read more
- Spiral Model: The Spiral Model is a Software Development Process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. It is a meta-model, a model that can be used by other models.
Spiral Model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects. Read more
- Agile Model: Agile Model is a group of Software Development Methodologies based on Iterative and Waterfall Development Model, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle.
Agile Model is focused on quick responses to change and continuous development. Read more