SYSTEM DEVELOPMENT LIFE CYCLE — How are the systems developed??? What is SDLC and how does it work???

Priyanthini Sivasubramaniyam
7 min readNov 24, 2022

--

System Development Life Cycle

In this digital era, all of us are using and dealing with several systems. Many of us are developing the systems too. All our day to day work has been improved and made easy with these systems. So I think it is really important for people to know at least some basic idea about the system and its development.

Therefore in this article I am going to be talking about systems, systems development and system development life cycle.

What is a system?

A system is a set of interrelated components that work together in order to complete certain tasks or to achieve certain goals. There will be several components that work together to reach a final aim or goal.

These systems can be categorized into three sub categories such as manual systems, semi-automated systems and (fully) automated systems.

Manual systems are the ones in which all the activities are performed manually, while automated systems are the systems where all the activities are completely automated. An automated system is a combination of software and hardware which perform all the tasks completely automatically without human interference even to provide inputs. Now what about these semi-automated systems? Yes, you might have guessed correctly. So these are the systems that perform certain tasks automatically while some of the tasks are done manually. In semi automated systems, most of the tasks are performed automatically while only few tasks are performed manually.

What is an Information System?

Information systems are the set of interrelated components that work together (system) to collect, process, store, analyze and disseminate information which will help for various strategic activities of the organization.

Okay, now you must have gained a clear idea on what a system is. So how are these systems being developed? What is system development? Is it just the programming of a system?

Let’s try to find answers for all these questions.

What is System Development?

System development is the complete process of creating and maintaining the systems beginning from the system requirements specifications to testing and maintenance of the system. It is not just programming or developing a system. But it depicts the whole process of developing and maintaining the system. System development should possess not only technical knowledge but also business knowledge along with management skills.

Systems Development Life Cycle (SDLC)

SDLC is the complete life cycle of a system. It is a process that depicts all the stages of system development which results in a completely new or modified system. A good and correctly followed SDLC must result in a system that meets all the requirements of the client, is completed within the given time frame as well as the allocated budget.

There are seven main stages in the SDLC which are called the “SDLC phases”. They are:

  • Planning phase
  • Analysis phase
  • Design phase
  • Development phase
  • Testing phase
  • Implementation phase
  • Maintenance phase

Now let us see what are these seven steps and what kind of activities are being done during each phase.

Planning Phase

Planning is the process of clearly identifying and defining the main problem to be solved, objectives of the project, tasks, necessary resources, time frame and expected budget. It is the phase in which the complete plan of the project/system development is defined. At the end of this phase a “Project Plan” document will be generated with all these identified tasks and activities that need to be accomplished along with the milestones, resources and deliverables.

Analysis Phase

With all the knowledge or background information gained from the previous planning phase, system development moves to the next phase which is called the analysis phase or Requirements Definition phase. In this phase project managers have to thoroughly analyze the system requirements or the clients’ expectations about the system. Project managers need to have a clear and detailed discussion of these requirements with the clients/users. Interviewing tool can be used to get these requirements from the client. Unclear requirements will lead to the great failure of system development. If you are going to modify an existing system then in this analysis phase you need to completely examine the existing system, interrogate the users of the existing system and gather the limitations of the existing system. This phase will deliver a complete “Business Requirements Specification” document.

Design Phase

The third phase is the design phase in which the complete designing of the system happens. From the previous phases you have gathered detailed description of the requirements as well as the diagrams. With all those, now you have to come up with proper documentation and the prototypes or layouts of your system which define the technical features of your system to be built. This includes HTML screen designs, UI designs, prototypes (any type) and UML schemas. From these designs the project supervisors will choose the definitive design that you are going to follow in order to develop your final system. It is a crucial part, because once you select and fix the design to be used in development, then you cannot change it at the latter stages.

Primary goal of this design phase is to transform all the specified requirements into complete and detailed system design specifications covering all the aspects of the system. Once the design is approved then it will be followed by the development team to develop the system. The deliverable of this phase is a complete “System Requirements Specification” (SRS) document.

Development Phase

After coming up with the designs, the project supervisor will choose a design to be progressed with. Now in this development phase, the real system is going to be developed. Development team has to follow up the design finalized by the design team. Development team members should possess not only the programming skills and the technical knowledge on software, hardware, databases and networks but also the business knowledge and documentation skills.

Developers have to choose the appropriate programming languages and tools in this phase. A fully functional real system will be the deliverable of this phase.

Testing Phase

After developing the system, you can not just implement it without testing. If you do so, then expect some long leaves or retirement plans from the company soon ;-D.

Testing phase is of high importance as this is where you will be checking and confirming that the system you built is working properly without any kind of issue. Ultimate goal of this testing phase is to prove to the clients that the system developed is meeting all the specified requirements and is free from bugs/ errors. Testers have to use some artificial data as inputs to test the system. Expected outputs and the actual outputs are compared and confirmed at the end of this testing process.

Simply the main purpose of this testing phase is to establish the confidence in the minds of clients that the system developed is “fit for purpose”. Testing can be performed manually, using test automation tools or in both ways. The two main activities included in the testing process are:

  • Writing proper test cases
  • Executing the test cases

Writing proper test cases is critical for the testers. Because test cases with low quality will reduce the quality of the testing process and you can not ensure that the system is completely error free and is functioning properly as expected. So testers must be very much careful in writing proper test cases.

Implementation Phase

This is the phase where the system goes live. This is also called the “Deployment Phase”. The system is deployed into the production environment or the system goes live into the real client’s environment. Users can start performing their operations with the system in this phase.

This is the phase where the new system replaces an existing system. This process of replacing the old system with the new system is called the “roll out”. This roll out can be categorized into four types as follows:

  • Pilot Rollout — system is rolled out to a specific group of users only to use the system and to find if anything is wrong.
  • Phased Rollout — new system is implemented incrementally or step by step. A phased migration might be conducted either by implementing the entire new system in some of the departments or business units or by implementing separate modules of the system independently till the completion of implementation.
  • Parallel Rollout — both the new system and the existing system are allowed to be accessed by the users at the same time. Here users have a great chance of using the existing system until they get used to the new system. But the issue will be with the cost of maintaining two systems in the production server at the same time.
  • Plunge/Big Bang Rollout — new system is immediately implemented into the user environment by removing the existing system. Here there is a risk of having issues as people do not have a proper time to get used to the new system.

Maintenance Phase

Once the system is implemented into the client environment, it does not mean that you do not need to deal with the system anymore. Even after the implementation of the system, the responsibility of maintaining the system will remain with you, the developers of the system.

After the system implementation, while it is in the client environment errors may arise. We can not say that the system is completely error free. There is no such system. So whenever there is a new error/bug/issue with the system, the developer team (support team may be) should be available for diagnosing and fixing the problem. This team should continuously maintain the system. In the maintenance phase the team which developed the system must continuously support the clients in running the system without any interruption and it is the phase where modifications and upgrades are made to the system in order to continuously meet the client requirements.

A completely functional system of highest quality and which meets all the customer expectations will be delivered at the end of an SDLC when all the above seven phases have been followed up and completed properly.

With this I am going to wrap up this article. Hope you have got a good understanding on what is a system, systems development and the SDLC.

Give me applause if this article finds you at the right time or if you think that my article is something useful. Next article will be published soon….

Thank you.

--

--

Priyanthini Sivasubramaniyam

Assistant Lecturer, University of Colombo School of Computing. Writing on Software Engineering and Marketing related topics. Sometimes on self improvement :-D