Software Development Lifecycle (SDLC)
- The Software Development Lifecycle (SDLC) is a process of building good software and its life cycle stages provide Quality and Correctness of good software. All the stages of the Software Development Lifecycle are important in themselves. One Wrong step in Lifecycle can create a big mistake in the development of Software.
- Software Development Lifecycle (SDLC) is a process followed for a software project, within a software organization.
Stages/Phases in Software Development Lifecycle (SDLC)
- Requirement/Information Gathering
1. Information/Requirement Gathering
- A business Analyst (BA) is responsible for information gathering.
- It is a requirement gathering from customers or Clients.
- Information gathering involves business requirement specification (BRS) which is prepared by Business Analyst (BA).
- Business requirement specification (BRS) is the bridge between the client and the team.
Business requirement specification (BRS)
Gather requirement example: Banking project
- Sign up page
- Home page
- Account info page
- Contact page etc.
This is an overall requirement for gathering
- A business Analyst (BA) involves in this process and here software requirement specification (SRS) document is made which is named Software/System Requirement Specification.
- Software requirement specification (SRS) is made after Business requirement specification (BRS).
- Software requirement specification (SRS) is a detailed document.
Software requirement specification (SRS)
Example: Sign up page should have Name, Number, Email, Password, etc.
This is the detailed specification which shows minor units of software.
Software requirement specification (SRS) documents include:
- Functional Flow Diagram.
- A functional flow diagram means the flow of our task.
- This shows how the relationship between each task.
- This gives a proper sequence of tasks.
Example: Facebook or any website
The function flow diagram looks like the above diagram.
Overall, this functional flow diagram is actually a step-wise representation of software.
Functional Requirement means attributes that are required to complete a specific function.
Now we have a signup function.
For sign-up, its requirements are:
- First name
- Last name
- Mobile number
- Submit button
Now for the first name requirement is:
- The name should be in characters.
- The name should not have numbers.
- It should not have spaces.
- It should not have special characters.
All kinds of requirements are fulfilled in this phase.
- It’s a visualization of the functionality before the development of the product.
- It is created by Business Analyst (BA).
- This gives an idea to the developer as to how the software will look like.
- Software requirement specification (SRS) send to all stakeholders or teams.
- When developers do coding, testers do test case design means writing test cases.
- Based on the requirements specified in Software requirement specification (SRS) a Design Document Specification (DDS) OR Technical Design Document (TDD) is proposed and documented.
- Here Technical Design Document (TDD) made which is divided into two levels.
Types of Technical Design Documents (TDD)
- High-Level Design (HLD)
- Low-Level Design (LLD)
It contains the design of the working of main
It includes the static logic of the submodule.
It includes what and how any module does
On sign up page, sign-up is the main module
It is created by a design architect
It is created by a front-end developer.
- Coding means programming.
- One line of code is code.
- Multiple lines of code are called programs.
- A set of programs written by a developer creates software.
Types of Developers
- Front-End Developer: UI, functionality, and process are developed by the front-end developer.
- Back-End Developer: Data management, Data gathering, and Data security are done by the back-end developer.
- Full Stack Developer: A developer who works as a front-end developer as well as back end developer is called a full stack developer.
- Testing is the process of checking the completeness and correctness of the software.
- Methods of Testing
- White Box Testing
- Black Box Testing
- Grey Box Testing
White Box Testing
- White box testing is done by a coder because code knowledge is required.
- It is also called as code-level testing/unit testing/clear box testing.
- In white box testing whenever the coder completes his code writing, he checks or compiles code then if any bug is found coder has to solve it.
- The coder cannot send code to the tester without doing white box testing.
- Coder checks or tests mostly positive scenarios only.
- White box testing has the purpose to test the correctness and completeness of the program.
Black Box Testing
- Black box testing is known as a system and function testing.
- This testing is done by a tester.
- Overall functionality gets checked in this type of testing.
- Testers check internal functionality depending upon external functionality.
The tester checks whenever the data sign-up module got entered and users press the sign-up button, this button is processed to store entered data. Tester check whether the data is stored correctly or not.
So here internal functionality is storing data and external functionality is filling up data in fields and submitting buttons process.
- Tester test the positive and negative scenarios.
- A positive scenario means if suppose we have a mobile number field with 10-digit functionality then as a tester we will check field functionality by entering a 10-digit number whether it works or not.
- A negative scenario means if suppose we have a mobile number field with 10-digit functionality then as a tester if we check with 9 digits or less as it should not accept more than 10 digits.
Grey Box Testing
- Grey box testing is a combination of both white box testing and black box testing.
- To do grey box testing, the tester needs programming knowledge.
- The role of the grey box tester is whenever the final software is handed over to the tester. The tester checks its functionality and if any fault occurs in the output of the function then the tester does not revert the system back to the developer, Instead of the tester himself solves or makes changes in the code. So knowledge of coding is required.
6. Deployment and Maintenance
- Once the product is tested and ready to be deployed it is released formally in the appropriate market (on a production server). Sometimes product deployment happens in stages as per the organization, business strategy.
- Maintenance means proving service after delivery (like bugs or improvement or enhancement) of the project.
- After delivery of any bug or enhancement occurs then all come under maintenance.
- Maintenance involves non-technical as well as technical support.
- Non-technical support is called BPO.
- Technical support is called KP.