In this blog post we're going to talk about the software development life cycle.
So let's go ahead and get started.
What exactly is the software development lifecycle?
This is referred to as the SDF DLC, and it defines the general steps that are taken to build software by software development teams.
What SDLC defines?
It defines the responsibilities for team members during each step of the phase. Now, some of these steps may overlap, but they generally define the phases of the projects. Also, if some of the steps are not successful, the project may fall back to an earlier step.
So let's go ahead and look at the details of the steps of the SDLC.
what are the general steps of the SDLC?
The first step in the process is the feasibility study. The project team will want to answer some key questions at this point.
For example, can the project be completed on time and can it be completed within the existing budget that has been set aside for this particular project?
Also, with the existing staff, do you have the expertise in house to do this kind of project or are you going to have to hire out contractors? Another key decision that's made at this point is a buy versus build decision.
If you have the expertise in house and it's a custom type of software, do you go ahead and build that with internal staff, or is there an existing software package that you can buy off the shelf that meets your needs? So that's really it for the feasibility study.
Now Let's go ahead and move on to the next step.
The next step in the process is the requirements analysis. In this phase, business analysts will build a complete requirements specification that includes business rules for the system, security rules, and what different types of people are allowed particular access to the system.
You'll look at use cases, common scenarios of how people are going to use the system. They'll generate sample design screens and walk through that with the potential users to make sure that the system will meet their needs.
And also sample reports are important at this point because reports drive the kind of data that needs to be set into the system.
They're very important to design at this point so that you make sure that you don't overlook any details. Once you get to the coding or operational phase, and you find out that you've left out some data details, it becomes very expensive to rework and redesign the system.
These requirements need to be approved by the customer with a formal approval before work begins on the system. That's it for the requirements analysis.
The next step is the design phase. In this phase, software designers will map the detailed requirements into two major design types. The first is a logical design. That's how the general components will fit together, and what is the overall hierarchy of that design. The next type of design is a physical design, and this will be detailed things such as database schemas that lay out the individual fields and tables in the database and their relationship.
These designs will be reviewed by various departments, and it depends on the size of the company. But it will certainly be viewed by software development management and enterprise architects if there is an enterprise architecture, and most large companies have this type of capability also be looked at by operations personnel to make sure that they can operate the software and support it effectively.
And also these designs will be reviewed by the customer to make sure that everything has been accounted for so that's it for the design phase. Let's move on to the next step.
The next step is the coding phase, and this is the phase that we usually associate with software development.
So programmers will begin to work on writing code to meet specific business requirements. At this time, the code is highly targeted to meet specific requirements that are generated from the earlier steps. In addition, programmers will look to reuse code from previous projects to save time. Also, unit testing will begin at this point. So as programmers write individual pieces of code, they will build tests that they can run in an automated way to make sure that the system is functioning as expected.
And they'll layer these tests from the bottom up as they're building codes so that they can retest the system at any point. In addition, many projects will also begin to do demonstrations at this point to the customers. They want to make sure that the software is meeting the needs of the customers and that nothing is overlooked.
So nobody likes surprises, particularly at the end of the project. So that's really it for the coding phase.
The fifth step is the testing phase. So this is a critical step to ensure that the system works properly. We've seen lots of examples over recent years of systems that were deployed and weren't tested properly, and it's very difficult to recover from that.
Trying to operate the system that has lots of bugs, or perhaps it wasn't load tested properly and you get way more usage than you thought you were in.
The system begins to fail in multiple ways. So there are multiple layers of testing. The lowest level is the unit. Test and programmers will develop these while they're coding. Integration tests happen to test interfaces to other systems so as bigger components of the system are completed, integration testing will happen to make sure that those interfaces work properly.
The next type of testing is load testing to make sure that your system can support the anticipated number of users that are going on the system. There's been a number of high profile failures over the last few years where systems were rolled out with lengthy delays, performance problems, and a real lack of user confidence in the system when you see these types of problems.
Also, user acceptance testing happens where the actual users of the system will sit down before the system is released to make sure that it meets their needs. So that's really it for the testing phase.
Overlooking this phase can be very difficult to produce a quality product.
So enough time and money needs to be invested in testing to make sure that your system launches are going to be successful.
Again, that's it for the testing phase. Let's move on to the next step.
The next step is to deploy the software into production. So in this step, software is released to the production environment for the users to begin operations.
Complex systems may be rolled out in phases. If it's a really large system, maybe pieces of the system are rolled out one piece at a time in a phased approach to limit the risk of having too large of a system to roll out and having too many problems to address in that phase, system outages may be required to perform software and hardware updates.
A lot of times these types of deployments are done off hours. Maybe it's done on a holiday weekend or late at night or very early in the morning. So you want to deploy the software when there's very limited usage on the system, that's it for the deployment stage.
So the last step of the process is the operational and maintenance phase. Support operations will begin at this point to ensure the smooth operation of the system. A help desk is usually formed to support users and problems and questions as they happen, as well as operational support from the software and development teams.
Software fixes are developed at this point and routine patching and maintenance operations begin.
So things like patching, operating system updates, routine software updates, all these things occur during the operational and maintenance phase. So that's the last step of the process.
So let's go ahead and look at a wrap up of the SDLC
So why is the SDLC referred to as a cycle? The process moves from one step to the other, and there's also a feedback loop to accommodate changes and or failure.
So if you fail in one particular step, so maybe you run into problems and coding, you may have to move back to the requirements analysis phase to fix that. Also, the entire process will repeat itself for major releases.
So once you're in operation many of your users or your business will change and they anticipate new features that need to be developed for the system. So the entire process will start all the way over again for the next release. So that's really it for the software development cycle.
Note: Kamtech Associates Pvt. Ltd. has been recognized as one of Top Software Development Companies In India by DesignRush