SDLC: A framework that describes the activities performed at each stage of a software
development project.
Waterfall Model: For small projects where requirements are
very clear.
V Model: For big projects where there are a lot of enhance
ment.
Prototype Model: For small projects where requirements are
very clear or not clear.
I prefer V Model. V Model is the best one for testing. First verification will come after that validation its the
testers process. Both are important as i concern but most of all validation is some more best than verification. As i
choose validation because to release a quality product at the end validation is necessary so i like to do validation.
Waterfall Model is one of the most widely used Software Development Process.It is also called as "Linear Sequential model"
or the "classic life cycle" or iterative model. It is widely used in
the commercial development projects. It is called so because here, we
move to next phase(step) after getting input from previous phase, like
in a waterfall, water flows down to from the upper steps.
In this iterative waterfall model Software Development process is divided into five phases:-
a) SRS (Software Requirement Specifications)
b) System Design and Software Design
c) Implementation and Unit testing
d) Integration and System Testing
e) Operation and Maintenance
In this iterative waterfall model Software Development process is divided into five phases:-
a) SRS (Software Requirement Specifications)
b) System Design and Software Design
c) Implementation and Unit testing
d) Integration and System Testing
e) Operation and Maintenance
Lets discuss all these stages of waterfall model in detail.
Software Requirements Specifications:
This is the most crucial phase for the whole project, here project team along with the customer makes a detailed list of user requirements. The project team chalks out the functionality and limitations(if there are any) of the software they are developing, in detail. The document which contains all this information is called SRS, and it clearly and unambiguously indicates the requirements. A small amount of top-level analysis and design is also documented. This document is verified and endorsed by the customer before starting the project. SRS serves as the input for further phases.System Design and Software Design:
Using SRS as input, system design is done. System design included designing of software and hardware i.e. functionality of hardware and software is separated-out. After separation design of software modules(see what is modularity) is done.The design process translates requirements into representation of the software that can be assessed for quality before generation of code begins. At the same time test plan is prepared, test plan describes the various tests which will be carried out on the system after completion of development.Implementation and Unit Testing:
Now that we have system design, code generation begins. Code generation is conversion of design into machine-readable form. If designing of software and system is done well, code generation can be done easily. Software modules are now further divided into units. A unit is a logically separable part of the software. Testing of units can be done separately. In this phase unit testing is done by the developer itself, to ensure that there are no defects.Integration and System testing:
Now the units of the software are integrated together and a system is built. So we have a complete software at hand which is tested to check if it meets the functional and performance requirements of the customer. Testing is done, as per the steps defined in the test plan, to ensure defined input produces actual results which agree with the required results. A test report is generated which contains test results.Operation & maintenance:
Now that we have completed the tested software, we deliver it to the client. His feed-backs are taken and any changes,if required, are made in this phase. This phase goes on till the software is retired.
Outputs generated after each phase of Waterfall Model:
Requirements Specifications => SRS, Draft User Manual, Maintenance plan
System Design & Software design => System design document (Hardware and Software design documents), Interface design document, Unit test plan, System test plan
Implementation & Unit testing => Program code, Unit-test report
Integration & system testing => System test report, Final user manual, Working system
Operation & maintenance => No output
Requirements Specifications => SRS, Draft User Manual, Maintenance plan
System Design & Software design => System design document (Hardware and Software design documents), Interface design document, Unit test plan, System test plan
Implementation & Unit testing => Program code, Unit-test report
Integration & system testing => System test report, Final user manual, Working system
Operation & maintenance => No output
The Waterfall Model’s linear and sequential methodology does offer a project certain advantages and disadvantages.
Advantages of the Waterfall Model
- Simplistic to implement and execute for projects and/or company wide
- Limited demand on resources
- Large emphasis on documentation
Disadvantages of the Waterfall Model
- Completed phases cannot be revisited regardless if issues arise within a project
- Accurate requirement are never gather prior to the completion of the requirement phase due to the lack of clarification in regards to client’s desires.
- Small changes or errors that arise in applications may cause additional problems
- The client cannot change any requirements once the requirements phase has been completed leaving them no options for changes as they see their requirements changes as the customers desires change.
- Excess documentation
- Phases are cumbersome and slow moving
Advantages of Prototyping
- Active participation from users and customers
- Allows customers to change their mind in specifying requirements
- Customers get a better understanding of the system as it is developed
- Earlier bug/error detection
- Promotes communication with customers
- Prototype could be used as final production
- Reduced time needed to develop applications compared to the Waterfall method
Disadvantages of Prototyping
- Promotes constantly redefining project requirements that cause major system rewrites
- Potential for increased complexity of a system as scope of the system expands
- Customer could believe the prototype as the working version.
- Implementation compromises could increase the complexity when applying updates and or application fixes
No comments:
Post a Comment