Software development life cycle or SDLC, is a process followed for a software development project.
It consists of a detailed plan describing how to develop, maintain, replace or enhance specific software product.
The software development life cycle defines a methodology for improving the quality of the overall software development process.
Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in the software development life cycle. It is performed by the members of the software development team with inputs from the customer, the sales department, market surveys and industry experts if necessary.
This information collected is assessed and put into a development plan in order to conduct a product feasibility study in the affordability, operational and technical areas. Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage.
The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks to the business.
Systems analysis, requirements definition
Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved by the customer.
This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle.
The SRS document also ensures that the development team designs and develops the software product according to the customer's needs and not according what the developers think the customer wants.
SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a Design Document Specification or DDS.
This DDS is reviewed by all the stakeholders in the project and based on various parameters such as risk assessment, product robustness, design modularity, budget and time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.
In this stage of SDLC the actual software development is stated. The software product is coded according to the specifications specified in the SRS and DDS documents.
The programming language is normally chosen that will best suite the requirements for the software being developed. The software development can have various development phases as well depending on the coding methodologies followed such as a SCRUM or AGILE approach.
This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC.
However, the testing stage refers to reporting of bugs and defects, correcting the reported bugs and retesting the software product, until the product reaches the quality standards defined in the SRS.
Acceptance, installation, deployment
Once the product is tested and ready to be deployed it is normally released in a BETA version.
Sometimes product deployment happens in stages depending on the specific business requirements. The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing).
Then based on the customers feedback, the product may be released as it is or with suggested enhancements in the targeting market segment. Once the product is released into a production environment, the maintenance phase begins to support and maintain the software product.
The missing 7th step - Security
Due to the demanding nature of software development, a proper security assessment is often overlooked and thus leaves many custom software products vulnerable to exploitation from hackers.
It's is essential that a software product undergo a thorough security assessment before being placed into production to ensure all exploitable vulnerabilities have been corrected.
The LIVEX Cyber security team specialized in vulnerability assessment and should be consulted before releasing a software product.
There are various software development life cycle models defined and designed which are followed during the software development process.
These models are also referred as Software Development Process Models", each process model follows a Series of steps unique to its type to ensure success in the process of software development.
Following are the most important and popular SDLC models followed in the software development industry:
Big Bang Model
Other related methodologies are Agile Model, RAD Model, Rapid Application Development and Prototyping Models.
The LIVEX Software development team is highly skilled in all areas of development and can develop the perfect software system for your business needs.