Sunteți pe pagina 1din 16

SDLC: Definition - What does Software Development Life Cycle (SDLC) mean?

The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. The life cycle defines a methodology for improving the quality of software and the overall development process. This term is also known as the software development process. Requirement analysis phase:

The members of a software development team must have a clear understanding of what the software product must do. The first step is to perform a thorough analysis of the clients current situation, careful to define the situation as precisely as possible.

This analysis may require examination of a current manual system being operated, or may need an appraisal of some computerized system to be performed. Once a clear picture of the current situation is obtained, then the question of What must the new product be able to do? may be answered. Design Phase: The logical design produced during the analysis is turned into a physical design - a detailed description of what is needed to solve the problem. How detailed should it be? Try assuming that after your design is finished, you are fatally injured by a falling elephant. Could your design be used by someone to successfully implement the solution? If not, it is not detailed enough. Also consider that you, as a solution designer, may not even be involved in the implementation! You may be hired solely to design the solution and another team will be responsible for implementing it. Your design must be self-explanatory and complete. Coding phase: The goal of the coding phase is to translate the design of the system into code in a given programming language. For a given design, the aim of this phase is to implement the design in the best possible manner. The coding phase affects both testing and maintenance profoundly. A well

written code reduces the testing and maintenance effort. Since the testing and maintenance cost of software are much higher than the coding cost, the goal of coding should be to reduce the testing and maintenance effort. Hence, during coding the focus should be on developing programs that are easy to write. Simplicity and clarity should be strived for, during the coding phase. Implementation The implementation stage of any project is a true display of the defining moments that make a project a success or a failure. The implementation stage is defined as "the system or system modifications being installed and made operational in a production environment. The phase is initiated after the system has been tested and accepted by the user. This phase continues until the system is operating in production in accordance with the defined user requirements" (DOJ, 1). While all of the planning that takes place in preparation of the implementation phase is critical, I am of the opinion that the implementation itself is equally as important.

Testing Phase The SDLC Testing phase is notionally designed to be carried out after system development is complete. The

testing phase measures the actual versus expected outcome of the system. Unlike quality control measures which are designed to evaluate a developed work product and include audits to assess cost of correcting defects, the goal of testing is to find defects through the execution of the system or software package.

Maintenance Phase: Maintenance includes all the activity after the installation of software that is performed to keep the system operational. As we have mentioned earlier, software often has design faults. The two major forms of maintenance activities are adaptive maintenance and corrective maintenance. It is generally agreed that for large systems, removing all the faults before delivery is extremely difficult and faults will be discovered long after the system is installed. As these faults are detected, they have to be removed. Maintenance activities related to fixing of errors fall under corrective maintenance. SDLC MODELS 1)Waterfall

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.

Advantages

Simple goal. Simple to understand and use. Clearly defined stages. Well understood milestones. Easy to arrange tasks. Process and results are Well documented. Easy to manage. Each phase has specific deliverable and a review.

Works well for projects where requirements are well understood. Works well when quality is more important then cost/schedule. Customers/End users already know about it.

Disadvantages

It is difficult to measure progress within stages. Cannot accommodate changing requirements. No working software is produced until late in the life cycle. Risk and uncertainty is high with this process model. Adjusting scope during the life cycle can end a project Not suitable for complex projects Not suitable for projects of long duration because in long running projects requirements are likely to change. Integration is done as a "big-bang at the very end, which doesn't allow to identify any technological or business bottleneck or challenges early. Users can only judge quality at the end. Attempt to go back 2 or more phases is very costly. Percentage completion of functionality can not be determined in mid of the project because every functionality is undergoing some phase.

Very risky, since one process can not start before finishing the other.

2)VMODEL: The V-model[2]represents a software development process(also applicable to hardware development) which may be considered an extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the codingphase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. The horizontal and vertical axes represents time or project completeness (left-to-right) and level of abstraction (coarsest-grain abstraction uppermost), respectively.

advantages of v model 1. Proactive defect tracking i.e defects r found at early stages even may be in the development phase before application is tested. 2. avoids the downward flow of the defect 3. reduces the cost for fixing the defect since defects will be found in early stages 4. it is a fast method disadvantages of v model It needs lot of resources and money. It needs an established process to implement.

It can be implemented by only some big companies

3)Incremental 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.

Advantages

Some working functionality can be developed quickly and early in the life cycle. Results are obtained early and periodically. Parallel development can be planned. Progress can be measured. Less costly to change the scope/requirements. Testing and debugging during smaller iteration is easy. Risks are identified and resolved during an iteration; and each iteration is an easily managed milestone. Easier to manage risk - High risk part is done first. With every increment operational product is delivered. Issues, challenges & risks identified from each increment can be utilized/applied to the next increment.

Disadvantages

More resources may be required. Although cost of change is lesser but it is not very suitable for changing requirements. More management attention is required. Each phase of an iteration is rigid with no overlaps. System architecture or design issues may arise because not all requirements are gathered. up front for the entire life cycle. Does not allow iterations within an increment. Defining increments may require definition of the complete system.

4)Spiral What is the Spiral Model? The Spiral Life Cycle Model is a type of iterative software development model which is generally implemented in high risk projects. It was first proposed by Boehm. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral.

Advantages

Changing requirements can be accommodated. Allows for extensive use of prototypes Requirements can be captured more accurately. Users see the system early. Development can be divided in to smaller parts and more risky parts can be developed earlier which helps better risk management.

Disadvantages

Management is more complex. End of project may not be known early. Not suitable for small or low risk projects (expensive for small projects).

Process is complex Spiral may go indefinitely. Large number of intermediate stages require excessive documentation.

=========================================

5)PROTOTYPING MODEL What is Prototyping Model SDLC? , a prototype is made first and based on it final product is developed. A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process. From this sample we learn and try to build a better final product. Please note that this prototype may or may not be completely different from the final system we are trying to develop.

Fig:Prototype model Advantages of Prototype model 1. Strong Dialogue between users and developers 2. Missing functionality can be identified easily

3. Confusing or difficult functions can be identified 4. Requirements validation, Quick implementation of, incomplete, but functional, application 5. May generate specifications for a production application 6. Environment to resolve unclear objectives 7. Encourages innovation and flexible designs

Disadvantages of Prototype model 1. Contract may be awarded without rigorous evaluation of Prototype 2. Identifying non-functional elements difficult to document 3. Incomplete application may cause application not to be used as the full system was designed 4. Incomplete or inadequate problem analysis 5. Client may be unknowledgeable 6. Approval process and requirement is not strict 7. Requirements may frequently change significantly

6)RAD (Rapid Application Development)

RAD is a linear sequential development process model that emphasis an extremely short development cycle. Rapid development is achieved by using a component based construction approach. The RAD model is useful if requirements are well understood and project scope is constrained (controlled ).

Advantages

Time to deliver is less. Changing requirements can be accommodated. Progress can be measured. Cycle time can be short with use of powerful RAD tools. Productivity with fewer people in short time. Use of tools and frameworks.

Disadvantages

Management complexity is more. Resource requirements may be more. Suitable for systems that are component based and scalable. Suitable only when requirements are well known. Requires user involvement throughout the life cycle. Suitable for project requiring shorter development times.

S-ar putea să vă placă și