Software Development Methodology: A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system.
Most popular software development methodology is the Agile Software Development but we will learn few other models.
Software Development Life Cycle(SDLC): The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system.
Waterfall Model: Here the main theme is big design up front. The waterfall model was first defined by Winston W. Royce in 1970 and now just become a theoretical model. Royce’s original model is shown Below:
- Time spent early on making sure requirements and design are correct.
- Make sure each phase is 100% complete and absolutely correct before proceeding to the next phase.
- Program requirements should be set in stone before design begins.
- The program’s design should be perfect before people begin to implement the design.
- Excellent technical documentation is part of the deliverables and it is easier for new programmers to get up to speed during the maintenance phase.
- Design errors are captured before any software is written saving time during the implementation phase.
- The approach is very structured and it is easier to measure progress by reference to clearly defined milestones.
- The total cost of the project can be accurately estimated after the requirements have been defined (via the functional and user interface specifications).
- Testing is easier as it can be done by reference to the scenarios defined in the functional specification.
|Disadvantages of the waterfall method|
Agile Methodology: Agile development delivers a working application, free of all known bugs, at the end of each development iteration. The resulting alpha release is then delivered to the client for testing and feedback. Most developers practicing agile development will take between one and four weeks to deliver each alpha to the client.
The agile method emphasizes face-to-face or telephone contact between the developer and business experts rather than written documentation. Working software, rather than progress reports, communicates success to the client during the development process.
|Advantages of agile development|
|Disadvantages of agile development|