A key methodology in the creation of software and applications is the systems development life cycle (SDLC). The systems development life cycle is a term used in systems engineering, information systems, and software engineering to describe a process for planning, creating, testing, and deploying an information system. There are many phases involved in the systems development life cycle.
What are the Phases of the Systems Development Life Cycle (SDLC)?
SDLC Phase 1: Preliminary Analysis
What is the first step of the SDLC? Phase 1 of the systems development life cycle involves a preliminary analysis, an initial phase at the start of a project that determines whether the concept is viable; any proposed alternative solutions; the cost benefit evaluation; and finally the submission of the preliminary plan for recommendations. Before the preliminary analysis is complete, the developer performs feasibility studies to determine whether to fix the existing system or create a new system to replace the old.
The different components of the feasibility study include:
Operational Feasibility – measures how well a proposed system solves the problems, provides the required solutions, takes advantage of the opportunities identified during scope definition, and how the system satisfies the requirements identified in the requirements analysis phase of the system development life cycle.
Economic Feasibility – determines the positive economic benefits that the system will provide (cost benefit analysis).
Technical Feasibility – confirms the system will perform and verifies there are no production barriers.
Human Factors Feasibility – determines whether the system is relevant and can be managed by the end user.
What Is a Cost Benefit Analysis?
A cost benefit analysis (CBA) is a systematic approach to estimating the strengths and weaknesses of alternatives and is used to determine options that provide the best approach to achieve the most benefit.
What Are the Phases in a Cost Benefit Analysis?
The first phase is to compile a comprehensive list of all the costs and benefits associated with the system. Costs include direct and indirect costs, intangible costs, opportunity costs and cost of potential risks. Benefits include direct and indirect revenues and intangible benefits. The final step is to quantitatively compare the results of the aggregate costs and benefits to determine if the benefits outweigh the costs.
SDLC Phase 2: Systems Analysis
Phase 2 of the systems development life cycle defines the project goals broken down into defined functions and operation of the application. During this phase, facts are gathered and interpreted, problems are diagnosed, and improvements are recommended. There are several tools that can be used for systems analysis, and they include:
CASE (Computer Aided Systems/Software Engineering) – organizes and controls the development of software or systems through use of a computer-assisted method. Using CASE allows everyone to share a common view of the project and where it stands at each stage of development.
Requirements Gathering – provides alternative means to illustrate, explain, and specify exactly what must be delivered to meet business goals.
Structured Analysis and Design Technique (SADT) – helps people describe and understand systems through a diagrammatic notation. SADT can be used as a functional analysis tool of a given process, using successive levels of detail.
SDLC Phase 3: Systems Design
Phase 3 of the systems development life cycle describes the desired features and operations of the system. The objective of the systems design phase is to transform all requirements into detailed specifications covering all aspects of the system. It should also assess and plan for security risks. Finally, approval to progress to the development phase must be granted to complete the systems design phase.
SDLC Phase 4: Development
Phase 4 of the systems development life cycle is when code is written for the desired features and operations. Programming tools like compilers, interpreters, and language are used for coding. The objective of the development phase is to build the system, test and integrate the units into larger components, prepare the technical environment for the system, and finally get approval to progress to the integration and testing phase.
SDLC Phase 5: Integration and Testing
During Phase 5 of the systems development life cycle, the developer tests the system for bugs and errors to make it compliant and accurate. The integration and testing phase are usually carried out by a quality assurance professional. There are many different types of testing for a system including:
Path Testing – ensures that every path through a problem has been executed at least once.
Data Set Testing – separates the system into a training set and testing set then randomly samples the data to help ensure that the testing and training sets are similar.
Unit Testing – takes individual units of software source code and tests them to determine whether they are fit for use.
System Testing – conducts testing on a complete, integrated system to evaluate the system’s compliance with its specified requirements.
Integration Testing – combines and tests individual software modules as a group.
Black-Box Testing – examines the functionality of an application without peering into its internal structures or workings.
White-Box Testing – tests internal structures or workings of an application giving an internal perspective of the system.
Regression Testing – verifies that software that was previously developed and tested still performs correctly after it was changed or interfaced with other software.
Automation Testing – automates some repetitive tasks in a formalized testing process already in place.
User Acceptance Testing (UAT) – also known as beta-testing, tests software in the real world by the intended audience.
Software Performance Testing – determines how a system performs in terms of responsiveness and stability under a particular workload.
SDLC Phase 6: Acceptance, Installation, and Deployment
Phase 6 of the initial development state of the systems development life cycle puts the software into production and runs as needed. If it performs the tasks correctly and represents the system, the developer moves on to the next phase of maintenance.
During deployment of the system there are two processes of changeover:
Direct Changeover – one-to-one replacement of the old and new systems.
Parallel Run – both systems are executed simultaneously. If the data is identical between the manual process and the system, then the system is deployed.
SDLC Phase 7: Maintenance
Phase 7 of the systems development life cycle assesses and ensures that the system does not become obsolete. The objective of the maintenance phase of the system development life cycle is to manage all changes to the system to support the end user, monitor the system’s performance, perform required security activities, and finally move into the training and documentation for end user support.
SDLC Phase 8: Evaluation
Phase 8 of the systems development life cycle is the post-implementation review. This phase identifies whether the system meets the initial requirements and objectives. This is when the system is evaluated for weaknesses. The objective of the evaluation phase of the systems development life cycle is to deploy the system and train the system end users.
SDLC Phase 9: Disposal
Phase 9 of the systems development life cycle is when plans are initiated to discard system information, hardware, and software in a transition to a new system. It is important to dispose of system information discreetly and securely, as much of the information can be of a personal nature.
Importance of the Systems Development Life Cycle (SDLC)
If a problem is identified during any phase of the systems development life cycle, the developer may have to proceed through the life cycle phases once more. All phases of the systems development life cycle need to occur for the success of the app and satisfaction of its users.
Want to Become a Web Application Developer?
Interested in the phases of the systems development life cycle (SDLC)? Want to become a web application developer? The Hunter Business School Web Application Design and Development program has a class that teaches the system development Life cycle.
The system development life cycle component of the course introduces aspects of methodology, the unique phases, and the roles that IT professionals play in the various stages of a project. Students learn how to collect and document requirements, translate them to application design, and trace each project artifact to its original scope.