SDLC Flashcards
SDLC
Software Development Life Cycle is a framework that includes detailed steps of developing a software from inception to retirement. SDLC generally has 8 steps:
1. Planning
2. Analysis
3. Design
4. Development
5. Testing
6. Deployment
7. Production
8. Support/Maintenance
Planning
Core understanding of the existing system is important. Project Manager creates a solid plan for developing software. Planning is like creating a roadmap that will be followed to develop the system. Microsoft Project is usually used to write a plan. There are 3 reasons for planning:
I. Defining the system (define what should be in the system)
II. Defining the project plan (who, when – determine all these factors in detail).
III. Setup a project scope (everything needed to complete a project, including tasks, timeline, and resources)
Analysis
The Business Analysist and the client/stakeholders come up with the requirements (what, who, when). Any ambiguities must be resolved in this phase. Once requirements are clearly understood, the SRS (Software Requirement Specification) is created. SRS includes: Functional requirement and Non-functional requirement
Design
The ‘how’ is taken care of. Software architecture and technical lead creates a technical design according to the SRS. Technology, Language, Database, tools, Server etc. are decided on
Development
The developers start to develop the design according to the design and SRS. Usually Java or Python language is used to write the code
Testing
The testing team tests all the functions of the software and makes sure all the requirements are met. Testers ensure the entire system works without any bugs
Deployment
Once the product is developed, it is copied into other environments for testing
Generally there are 4 different environments:
Development (Developers create all coding)
Test (Tester test)
UAT (User Acceptance Test) (Replica of Production, where client tests and approves)
Production (Actual use of the software)
Production
The new software is deployed to Production environment for end-users to use, it is the step where the software is delivered to the client
Support
Troubleshooting or managing any issue after delivery like fixing bugs or enhancing functionalities etc. It is usually carried out by the production support team or developers