What is Software Development Life Cycle?
-
SDLC is a process used by the software industry to design, develop and test high quality software. The SDLC aims to produce a high-quality software that meets customer expectations, reaches completion within times and cost estimates.
-
It works effectively and efficiently in the current and planned information technology infrastructure, and is inexpensive to maintain and cost effective to enhance.
-
Also known as Software Development Process.
-
It is a process which any software organization follow to develop the proper high quality software satisfying the customer needs. It actually defines all the tasks that are required to develop and maintain software.
-
In SDLC, if some steps are not successful the project may fall back to an earlier step.
Process of SDLC -
A series of actions or steps taken in order to achieve a particular end.
Feasibility Study / Planning
-
Feasibility study involves analysis of the problem and it is the most important and fundamental stage.
-
In a software company, Every customer comes with the problem and we analyse that we are feasible or not to solve the customer's problems.
-
we estimate the rough idea of the resource requirement as well as estimate time for completion.
Types of Feasibility checks -
-
Economic - Can we complete the project within the budget or not?
-
Legal - Can we handle this project as cyber law and other regulatory framework / compliances.
-
Operation Feasibility - Can we create operations which is expected by the client?
-
Technical - Need to check whether the current computer system can support the software.
-
Schedule - Decide that the project can be completed within the given schedule or not.
Requirement Analysis
-
The aims of requirement analysis and specification phase is to understand the exact requirements of the customer and to document them properly.
-
This phase consist of two distinct activities - Requirement Gathering and Analysis, Requirement Specification.
Requirement Gathering and Analysis -
-
The goals of the requirement gathering activity is to collect all relevant information from the customer regarding the project to be developed.
-
The requiremnt analysis activity begun by all relevant data regarding the product to be developed from the users and from the customer through interviews and discussions.
-
This steps includes collecting maximum information from the client about the desired product. All details and specification must be discussed with the customer. The development team analyses the requirements keeping in view the design and coding of the software.
Requirement Specification / Documentation -
-
Requirement Document is very important activity after the requirement gathering and analysis. This is a way to represent the requirement in a consistent format.
-
During this activiy, the user requirements are systematically organized into a Software Requirement Specification (SRS) Documents.
-
Software Requirement Specifications should be written in natural language, in an unambigous manner that may also include charts, tables, DFD, decision tables and so on.
Business analysts will build a complete requirements specification to include -
-
Business rules
-
Security requirements (roles)
-
Use cases
-
Sample screen designs
-
Sample Reports
These requirements are approved by the customer prior to design work.
Design
-
The goal of the design phase is to transform the requirements specifed
in the SRS documents into a structure that is suitable for implementation in some programming languages. -
System design is the process of designing the architecture, modules, components and interface and data for a system to satisfy specified requirements.
-
The various phases can be involved in this phase - Algorithms, Flowchart, Pseudocode, DFD and ER Diagram.
Software designer will map requirements to two design types -
-
Logical Design
-
Physical Design
These designs will be reviewed by various departments for approval -
-
Software Development
-
Enterprise Architect
-
Operations
-
Customers
Coding
-
Programmers begin working on writing code to meet business requirements.
-
Programmers will look to reuse code from previous project to save time.
-
The system first developed in small programs called units / modules.
-
In the coding phase, tasks are divided into units / modules and assigned to the various developers.
-
It is the longest phase of the Software Development Life Cycle.
-
Unit Testing should begin at this point.
-
Many projects will begin to do demonstrations at this point.
Testing
-
Testing is an important part of the project because it helps to improve the quality of the project.
-
First the question is generated - "Why should we do the Testing?"
After the development of the software, there can be many defects in the system or system may not be working as they are expected. -
Software testing involves examining and checking the software, through different testing process. This is a critical step to ensure the system works properly.
The objective of these process can includes -
-
Verifying software completeness in regarding to functional / business requirements.
-
Identifying technical bugs / errors and ensuring the software is error free.
-
Assessing Usability, performance, security, localization, compatability and installation.
System may have multiple layers of testing -
-
Unit Test
-
Integration Test
-
Load Test
-
User Acceptance Test (UAT)
Deployment
-
In this step software is release to the production environment for users to being operations.
-
Complex systems may be rolled out in phases.
-
System outages may be require to perform software and hardware updates.
Operate / Maintain
-
Software maintenance is modification of a software product after delivery to correct faults, to improve performance or other attributes or to adopt the product to a modified environment,
-
Maintenance is the backbone of the software success.
-
When a software is developed, then software needs to be modified from time-to-time to keep it up to date with environment changes and changing the user requirements.
-
Now a days. the companies are paying more attention towards maintenance of their product.
-
Support Operations begin at this point to to ensure smooth operation of the system.
-
Help desk is usually formed to support users problems and questionsSoftware fixes are developed at this point.
-
Patching and maintenance operation begin.
Why is this referred to as cycle?
-
The entire process will repeat for major releases.
-
The process moves from step to step.
-
There is a feedback loop to accommodate changes and or failures.
Summary
-
The SDLC has multiple distinct steps.
-
It is a systematic process for building software that ensures the quality and correctness.
-
It consist of detailed plan which tells how to plan build and maimtain specific software.
-
Some steps may be repeated to accommodate changes or failures.
0 Comments:
Leave a Comments