System Development Life Cycle(SDLC)
System Development Life Cycle Phases:
This Phase is the most critical in the construction of a successful system. In this phase, we decide what exactly we want to do and which type of problems we have to face and how we can solve.
Activities done in this phase
Describing the objectives, resources and problems like costs and personnel.
Planning about how to make your product better than your competitors.
Planning about the ability of recommending alternative solutions after meeting with clients, suppliers, consultants and employees.
The outcome of the system planning phase is to define the various technical approaches that can be followed to implement the project successfully with minimum risks.
The aim of the System analysis phase is to detention the detail of each requirement and to make sure everyone understands the scope of the work and how each requirement is going to be fulfilled. System analysis is the most important and essential stage in SDLC. It is performed by the senior affiliates of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry.
Activities done in this phase
Determined end user’s requirements.
Documented end user’s expectations, and describe how that will perform.
Prototypes can be built to show the client what the end product will look like
Studying multiple use cases to describe each action that a user will take in the new system
It’s very important to maintain strong communication level with the clients to make sure you have a clear vision of the finished product and its function.
System Design helps in specifying hardware and system requirements and also helps in defining overall system construction.
The design phase comes after a good understanding of customer’s requirements, this phase defines the fundamentals of a system, the components, the security level, modules, architecture and the different interfaces and type of data that goes through the system.
Activities done in this phase
Select architectural design for system
Defines all the components that needs to be developed
Communications with third party services
User flows and database communications as well as front-end representations
Behavior of each components
A general system design can be done with a pen and a piece of paper to fix how the system will look like and how it will function, and then a detailed and extended system design is produced, and it will meet all functional and technical requirements, logically and physically.
Implementation and Deployment
In this phase, programming code is created. If the design is performed in a detailed and organized manner, code generation can be accomplished without much disturbance. In this phase the main focus for the developers. In this phase the actual coding and unit testing of the process by the development team.
Developers have to follow the coding guiding principle defined by their organization and programming tools like compilers, interpreters, debuggers and so on are used to generate the code. Different high-level programming languages such as C, C++, Pascal, Java, and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.
The system is ready to be deployed and installed on customer’s locations, ready to become running, live and productive, training may be required for end users to make sure they know how to use the system and to get familiar with it, the implementation phase may take a long time and that depends on the complexity of the system and the solution it presents.
This is the longest phase of the software development life cycle. The finished product here is input to the Testing phase.
System Testing and Integration
In this phase, brings different components and subsystems together to create the whole integrated system, and then Introducing the system to different inputs to obtain and analyze its outputs and behavior and the way it functions.
After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase, all types of functional testing like unit testing (know more..), integration testing, system testing, acceptance testing are done as well as non-functional testing are also done.
The testers aim to find defects within the system as well as verifying whether the application behaves as expected and according to what was documented in the requirements analysis phase. It is possible that defects are identified in the testing phase. Once a defect is found, testers inform the developers about the details of the issue and if it is a valid defect, developers will fix and create a new version of the software which needs to be verified again.
This is also one of the main phases of SLDC. Once when the customers start using the developed system then the actual problems come up and needs to be solved from time to time. In this phase, periodic maintenance for the system will be carried out to make sure that the system won’t become obsolete, this will include replacing the old hardware and continuously evaluating system’s performance, it also includes providing latest updates for certain components to make sure it meets the right standards and the latest technologies to face current security threats.
All the stages in the Software Development Life Cycle defined above are applicable to any software development methodology, it’s an iterative process for each project. It’s important to mention that excellent communication level should be maintained with the customer, and Prototypes are very important and helpful when it comes to meeting the requirements.
The duration and the activities in each phase depend on different models of system development life cycle came up from the idea of saving effort, money and time, in addition to minimizing the risk of not meeting the customer’s requirement at the end of project, some of these models are SDLC Iterative Model and SDLC Agile Model.