The Waterfall Model
- Details
- Category: Life Cycle
- Published on Thursday, 13 October 2011 18:09
- Written by Kinda Strange
- Hits: 116
The waterfall model is one of the earliest models in which the phases are executed sequentially. Software development starts with the first stage, the moose down for the various stages until the last stage: implementing the software in a live environment. All stages are cascaded so that each stage will only start when all the tasks identified in the previous stage are complete. There is no overlap between the phases. The waterfall model is best suited for projects where time limit is not the primary requirement.
Scheduling can be done easily in the waterfall model due to the structure of phase completion. The start and end times of each phase can be clearly defined and no phase begins until after the completion of the previous phase.
The scope for revising a system created via the waterfall model is limited, as there is no returning to a phase once it has been completed. The waterfall model lacks the flexibility to handle changes or additions to the requirements. New requirements can only be incorporated into a future version of the system, resulting in increased project cost. 
Requirements
During the requirement analysis phase, the end user’s expectations and requirements for the project are determined and consolidated. The collected information is then verified for validity. After management confirmation, the requirement specification document is created, incorporating the requirements. This document functions as the input for the next phase of the waterfall model.
Design
The system design is created from analysis of the requirement specification document. Hardware and software requirements are identified and documented. The architecture of the system is defined as part of the system design specifications, and the system design specifications function as the input for the next phase of the waterfall model.
Coding
During this implementation phase, the system design specifications are analyzed and broken down into logical partitions and/or modules. The modules are then developed separately by independent development teams as subsystems (units) of the larger system. They are tested by the development teams that developed the units in a type of testing known as unit testing to verify that the units meet the system design specifications.
Testing
Integration testing is performed after integrating the components to find defects in interfaces and interactions among components. Component integration testing is the process of testing the interaction among components. System integration testing involves testing the system with other external systems. Testing is done at after every step of integrating smaller components to form larger units. At the higher levels, where the subsystems are integrated into a system, the testing is done by the testing team.
Maintenance
The operation and maintenance phase never ends. When the system is deployed, problems periodically arise that require resolution. The process of fixing the errors or bugs as they arise during the functional lifetime of the system is referred to as the maintenance phase.
Software Development Life Cycle
- Details
- Category: Life Cycle
- Published on Wednesday, 12 October 2011 15:32
- Written by Kinda Strange
- Hits: 111
The software development life cycle, SDLC, is a structured process for developing high-quality software applications and products. Specific tasks are performed in each phase, and the phases are carried out in a sequential manner. The output of the phase generally serves as the input to the next phase. Sometimes phases can be executed simultaneously.
One of the major advantages of SDLC is the detailed documentation of the development process. This improves troubleshooting, and makes it easier to reuse code for future projects.
There are a variety of SDLC models for different project requirements.
Planning
The planning phase determines the business value of the software. Project cost is estimated, and the return on investment is determined. Project plans detail the entire schedule of the project. Needed resources are documented, such as financial, manpower, hardware, and software. Once the plans are approved by management, the project is launched.
Analysis
In the analysis phase, requirements are gathered and analyzed to verify the factors such as clarity and completeness of the system, the ability to meet the requirements, and any dependency issues. After the analysis is complete, the requirements documented in detail. The requirements analysis phase defines the inputs to the system, their functions, and the outputs of this phase. The focus of the analysis phase is on defining what functions must be performed by the system, rather than how to perform the functions.
Design
In the design phase requirements and functionalities that were identified in the analysis phase or transformed into a detailed design specification. The specification defines how to meet functional requirements, and is used by the developers during the coding phase. The design phase breaks the requirements into modules that are identified as components of a complete system. All functional planning is done in this phase.
Development
In the development phase, design specifications are converted to a working model of the system. The development team develops and reviews programming modules, called components. The system is developed by dividing it into smaller components to help development teams work independently. After all the components are developed they are integrated with each other to form the complete system. In the development phase, developers also test components and the system against the specified requirements and document the results of the testing. This testing is also called system qualification testing, and is done to ensure that the system is ready for delivery to the testing.
Testing
In the testing phase various types of testing activities are performed to detect defects and improve the quality of the system be executed testing activities are based on the test plans created during the previous phase. Smaller components are tested first followed by larger components, before finally testing the system. The testing can also start with major components before moving on to the associated smaller components. The testing phase continues until all identified bugs are fixed by the development team. Once the testing is complete the system is approved for implementation.
Maintenance
The maintenance phase involves troubleshooting and help desk services. During this phase the development team helps support system users. It evolves providing the users with the latest updates made to the software, if any, and continues for as long as the software is used.


