Introduction to Software development life cycle (SDLC):
SDLC stands for software development life cycle. It is also referred to as application development life cycle and/or system development life cycle. It is a systematic approach and a term used by the software engineer, information system, system engineering and development team in a software organization to solving a problem and/or a given task. This process consists of detailed plan about how to develop, test, maintain and replace specific software. It also defines the applied methodology for improving the quality of designed software and the overall software development process.
This software development life cycle process composed of several phases to design and develop cost effective, efficient and high quality software. These phases are used by a system analysis to develop a detailed information system through SDLC several phases. Economy study, Analysis, Design and Development, Implementation, Testing and Maintenance are the phases used by system/application development life cycle, which result develops a high quality system that meets user/customer requirements and expectations. By using these SDLC phases developers take care about the time schedule and cost estimates of overall software project development. The organization should have skilled professional to build the system through lifetime cycle. Information technology specialists have to plan the project of system development following one of the known project management standards then initialize, execute, and control and finally checkout to deliver the system.
Phases of Software development life cycle (SDLC):
There have several phases of software development life cycle, those are necessary required to develop an efficient and effective, reliable software project. The hierarchy of software development life cycle shown in figure (1).
Detail description about each phase of software development lifecycle:
SDLC Phase 1: Investigation or feasibility study:
The first and most important phase of SDLC is investigation or study about the feasibility of the system. The feasibility study of a developing project is sometimes used to present the project to upper management in a attempt to gain funding. A project is typically evaluated in three areas of feasibility studies;
- Economical feasibility study
- Operational feasibility study
- Technical feasibility study
This phase of SDLC is usually done by most skilled and experienced technical engineers in the organization. It defines the system to be developed based on the organization requirements. The project scope must be define and put into a project scope document. Next task of this phase is developing the project plan, which includes time schedule with detail of each task. Managing and monitoring the project plan, allows the project tracking which is also be the task of investigation phase of system development life cycle.
SDLC Phase 2: Analysis:
The next phase of lifecycle is analysis the customer problem and how to fix the customer requirement to solve the problem in best optimal way. This phase involves breaking down the system in different pieces and drawing diagrams to analyze the situations. Analyzing project objective, braking down functions in different modules that need to be created and attempt to engage users, hence definite requirements can be defined.
Requirement gathering sometimes require individual/team from client as well as service provider side to get a detailed and accurate requirements.
SDLC Phase 3: Design:
Third phase of software life cycle is design, it includes design blueprint of the developing system. It is done by designing the technical architecture of the system.
This phase includes designing the system model in GUI format, database design to placement of objects on GUI screen.
SDLC Phase 4: Development:
Forth phase is development or code generation as per the user/customer requirement. This phase takes the design phase output and translated it into machine readable form, this translation done by using code generation. If the design is perform in a detailed manner, code generation can be accomplished without much complication.
Code generation process used many different languages like machine level language, assembly level language and high level language like FORTORN, Pascal, C, C++, JAVA etc. and the programming tools like compilers, interpreters, debuggers, assembler etc. to convert these languages in to machine readable code. These programing languages are chosen as per the requirement of user/customer object.
SDLC Phase 5: Testing:
The generated code in the development phase is tested at various levels in the software testing. This phase is responsible to finding defects and bugs in the created code in previous phase of SDLC. This is a grey area as many different opinions exist, as to what the stages of testing are and how much if any iteration occurs in some of the unique software life cycle.
There are various types of testing performed to check the bug and error in the generated code are as follows;
Types of testing:
- Data set testing
- Unit testing
- System testing
- Integration testing
- Black box testing
- White box testing
- Module testing
- Regression testing
- Automation testing
- User acceptance testing
SDLC Phase 6: Implementation:
The systems are placed and used in the actual environment and the user guide is created, training is provided to the users of the system.
SDLC Phase 7: Maintenance:
The next phase of SDLC is maintenance of created software. The software will definitely undergo change once it is delivered to the customer. There can be many reasons for this change to occur. Change could happen because of some unexpected input values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to accommodate changes that could happen during the post implementation period.
Sometimes in the development of software life cycle one or more above phases becomes optional or included implicitly in others in some cases.