6 Phases In Software Development Lifecycle (SDLC)
- Requirement/Information Gathering
- Analysis
- Design
- Coding/Implementation
- Testing
- Maintenance
1. Requirement/Information 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.
Requirement/Information Gathering Example: Banking project
- Sign up page
- Home page
- Account info page
- Contact page etc.
This is an overall requirement gathering.
2. Analysis
- 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.
Analysis 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:
1. 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. Overall, this functional flow diagram is actually a step-wise representation of software.
Functional Requirement
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
- Password
- 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.
Snapshot
- 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.
3. Design
- 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)
1. High-Level Design
- It contains the design of the working of the main module.
- It includes what and how any module does work.
- It is created by a design architect
2. Low-Level Design
- It includes the static logic of submodule.
- On sign-up page, sign-up is the main module and the rest fields like first name, last name, email, etc. are the sub-modules.
- It is created by front-end developer.
4. Implementation/Coding
- Coding means programming.
- One line of code is code.
- Multiple lines of code is called program.
- A set of programs written by a developer creates software.
Types of Developers
1. Front-End Developer: UI, functionality, and process is developed by the front-end developer.
2. Back End Developer: Data management, Data gathering, and Data security are done by the back end developer.
3. Full Stack Developer: A developer who works as front-end developer as well as back end developer is called full-stack developer.
5. Testing
- 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
1. 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 found coder has to solve it.
- Coder cannot send code to tester without doing white box testing.
- Coder check or test mostly positive scenarios only.
- White box testing has purpose to test correctness and completeness of the program.
2. Black Box Testing
- Black box testing is known as a system and function testing.
- This testing is done by tester.
- Overall functionality get checked in this type of testing.
- Tester check internal functionality depend upon external functionality.
Example:
- Tester checks whenever data sign up module got entered and users press signs 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 the field functionality by entering 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 or more than 10 digits.
3. 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.