SDLC Models
SDLC=> Software development life cycle
1. Requirements
2. Analysis
3. Design
4. Coding
5. Testing
6. Implementation/Maintanace/Acceptance
· The Requirements phase, in which the requirements for the software are gathered
and analyzed, to produce a complete and unambiguous specification of what the
software is required to do.
· Analysis- (Requirements gathering)
This is called Requirement analysis too. The Requirements phase, in which the requirements for the software are gathered and analyzed, to produce a complete and clear cut specification of what the software is required to do.
The requirements form the basis for all future work on the project, from design and development to testing and documentation, it is of the utmost importance that the Project Team create a complete and accurate representation of all requirements that the system must accommodate. Accurately identified requirements result from effective communication and collaboration among all members of the Project Team, and provide the best chance of creating a system that fully satisfies the needs of the Customers.
Design:
The software system design is produced from the results of the requirements phase. Architects have the ball in their court during this phase and this is the phase in which their focus lies. This is where the details on how the system will work is produced. Architecture, including hardware and software, communication, software design (UML is produced here) are all part of the deliverables of a design phase.
In this they Can use High level Design or Low level design.
Coding:
Code is produced from the deliverables of the design phase during implementation, and this is the longest phase of the software development life cycle. For a developer, this is the main focus of the life cycle because this is where the code is produced. Implementation my overlap with both the design and testing phases. Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase.
Testing:
During testing, the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase
Implementation/Maintanace/Acceptance
Successfully developed software will eventually become part of a product and enter a
maintenance phase, during which the software will undergo modification to correct
errors and to comply with changes to requirements. Like the initial development,
modifications will follow a software development lifecycle, but not necessarily using the
same lifecycle model as the initial development.
Throughout the maintenance phase, software tests have to be repeated, modified and
extended. The effort to revise and repeat tests consequently forms a major part of the
overall costs of developing and maintaining software.
The term regression testing is used to refer to the repetition of earlier successful tests in
order to make sure that changes to the software have not introduced side effects.
SDLC Models:
· Waterfall Model:
The waterfall model is a linear and sequential software development life cycle means once a phase of development is completed the development proceeds to the next phase and there is no turning back
2) Modified Waterfall Model:
3) Rapid Application Development Model:
The RAD Model is a structured step-by-step approach to developing systems. This rigid sequence of steps forces a user to “sign-off” after the completion of each specification before development can proceed to the next step. The requirements and design are then frozen and the system is coded, tested, and implemented. With such conventional methods, there is a long delay before the customer gets to see any results and the development process can take so long that the customer’s business could fundamentally change before the system is even ready for use.
4) Spiral Model:
There are four phases in the "Spiral Model" which are: Planning, Evaluation, Risk Analysis and Engineering. These four phases are iteratively followed one after other in order to eliminate all the problems, which were faced in "The Waterfall Model". Iterating the phases helps in understating the problems associated with a phase and dealing with those problems when the same phase is repeated next time, planning and developing strategies to be followed while iterating through the phases. The phases in "Spiral Model" are:
Plan: In this phase, the objectives, alternatives and constraints of the project are determined and are documented. The objectives and other specifications are fixed in order to decide which strategies/approaches to follow during the project life cycle.
Risk Analysis: This phase is the most important part of "Spiral Model". In this phase all possible (and available) alternatives, which can help in developing a cost effective project are analyzed and strategies are decided to use them. This phase has been added specially in order to identify and resolve all the possible risks in the project development. If risks indicate any kind of uncertainty in requirements, prototyping may be used to proceed with the available data and find out possible solution in order to deal with the potential changes in the requirements.
Engineering: In this phase, the actual development of the project is carried out. The output of this phase is passed through all the phases iteratively in order to obtain improvements in the same.
Customer Evaluation: In this phase, developed product is passed on to the customer in order to receive customer’s comments and suggestions which can help in identifying and resolving potential problems/errors in the software developed. This phase is very much similar to TESTING phase.
The process progresses in spiral sense to indicate iterative path followed, progressively more complete software is built as we go on iterating through all four phases. The first iteration in this model is considered to be most important, as in the first iteration almost all possible risk factors, constraints, requirements are identified and in the next iterations all known strategies are used to bring up a complete software system. The radical dimensions indicate evolution of the product towards a complete system.
Plan: In this phase, the objectives, alternatives and constraints of the project are determined and are documented. The objectives and other specifications are fixed in order to decide which strategies/approaches to follow during the project life cycle.
Risk Analysis: This phase is the most important part of "Spiral Model". In this phase all possible (and available) alternatives, which can help in developing a cost effective project are analyzed and strategies are decided to use them. This phase has been added specially in order to identify and resolve all the possible risks in the project development. If risks indicate any kind of uncertainty in requirements, prototyping may be used to proceed with the available data and find out possible solution in order to deal with the potential changes in the requirements.
Engineering: In this phase, the actual development of the project is carried out. The output of this phase is passed through all the phases iteratively in order to obtain improvements in the same.
Customer Evaluation: In this phase, developed product is passed on to the customer in order to receive customer’s comments and suggestions which can help in identifying and resolving potential problems/errors in the software developed. This phase is very much similar to TESTING phase.
The process progresses in spiral sense to indicate iterative path followed, progressively more complete software is built as we go on iterating through all four phases. The first iteration in this model is considered to be most important, as in the first iteration almost all possible risk factors, constraints, requirements are identified and in the next iterations all known strategies are used to bring up a complete software system. The radical dimensions indicate evolution of the product towards a complete system.
5) Big-bang Model:
Big bang adoption is the adoption type of the instant changeover, when everybody associated with the new system moves to the fully functioning new system on a given date (Eason, 1988).
When a new system needs to be implemented in an organization, there are three different ways to adopt this new system: The big bang adoption, phased adoption and parallel adoption. In case of parallel adoption the old and the new system are running parallel, so all the users can get used to the new system, and meanwhile do their work using the old system. Phased adoption means that the adoption will happen in several phases, so after each phase the system is a little nearer to be fully adopted. With the big bang adoption, the switch between using the old system and using the new system happens at one single date, the so called instant changeover of the system. Everybody starts to use the new system at the same date and the old system will not be used anymore from that moment on
The big bang adoption type is riskier than other adoption types because there are fewer learning opportunities incorporated in the approach, so quite some preparation is needed to get to the big bang (Eason, 1988). This preparation will be described below, illustrated by the process-data model of the big bang adoption.
When a new system needs to be implemented in an organization, there are three different ways to adopt this new system: The big bang adoption, phased adoption and parallel adoption. In case of parallel adoption the old and the new system are running parallel, so all the users can get used to the new system, and meanwhile do their work using the old system. Phased adoption means that the adoption will happen in several phases, so after each phase the system is a little nearer to be fully adopted. With the big bang adoption, the switch between using the old system and using the new system happens at one single date, the so called instant changeover of the system. Everybody starts to use the new system at the same date and the old system will not be used anymore from that moment on
The big bang adoption type is riskier than other adoption types because there are fewer learning opportunities incorporated in the approach, so quite some preparation is needed to get to the big bang (Eason, 1988). This preparation will be described below, illustrated by the process-data model of the big bang adoption.
6) Incremental Model:
The incremental model is an intuitive approach to the waterfall model. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed iterations. Each iteration passes through the requirements, design, implementation and testing phases.
A working version of software is produced during the first iteration, so you have working software early on during the software life cycle. Subsequent iterations build on the initial software produced during the first iteration.
7)Non-Incremental Method:
8) V-Model:
In V model SDLC, both the development activity and the testing activities start almost at the same time. The development team does design and development and test team does the test planning, scripting and testing. It is a parallel process for both development and testing.
9) Agile Process:
Agile methodology is used in an environment where client frequently changes his requirement. It involves more client interaction and testing effort.
Agile is software development methodology. It is very effective where Client frequently changes his requirement. Since it has more iteration so you can assure a solution that meets clients requirement. More than one build deployment for a project. It involves more client interaction and testing effort. There are two methods by which this methodology can be implemented:-
1- Scrum
2- Extreme Programming
Scrum: Each iteration would called a scrum which can be a 1-2 Months. In Scrum Client prioritize his requirements what he want first. If developer did not meets all the requirement which was being fixed for a particular scrum than rest of the development part would be transferred to the next scrum (would be delivered in the next build), means developer can't increase time decided for a scrum. Its fixed.
Extreme Programming (XP): here iteration period would be less then in scrum , which is being 2-4 weeks. Here developer prioritize what to do first on the basis of client requirement. This duration which was being fixed for a iteration, can be increase if the some development part is still pending. The build would deployed with having all the client needs. Thus iteration period is not fixed here it can be increase. but iteration should meets all the client's requirement in this build. More attention is required for testing in XP.
Comments
Post a Comment