SDLC is a process followed for a software project.
- Inputs from marketting, sales, domain experts
- Feasibility analysis
- Risk identification
- Output of technical feasibility is to identify technical approaches to implement project with minimum risks
- Define product requirements and get them approved by customer/s
- SRS document is created using DOORS, requirements are linked to output of planning and requirement analysis, risks from step (#1 Planning and Requirement Analysis)
- SRS is used to create DDS (Design document specification)
- Best architecture for the project
- DDS is reviewed for
- Risk assesment
- Product robustness ()
- Design modularity
- Budget and time constraints
- DDS clearly identifies
- All architectural modules
- Communication and data flow representations with external modules
- Internal design of the modules are clearly identified
- The code is developed according to the DDS
- If the design is performed in a detailed and an organized manner, code generation is accomplished without much hassle
- Developers must follow coding guidelines etc. MISRA
- Subset of all stages in modern SDLC models.
- Breaks product in a small incremental builds
- Builds are provided in iterations/sprints
- Each iteration/sprint is 1-2 weeks
- Each iteration involes cross functional teams working simultaneously on various areas like
- Planning
- Requirement analysis
- Design
- Coding
- Unit testing
- Accetance testing
- Individuals and interactions: Self organization and motivations are important. Interactions like co-location and pair programming.
- Working software: is best way to communicate requirements with customer, instead of documents only.
- Customer collaboration: Requirements cannot be gathered completely at the beginning of the project, customer interaction is important to get proper requirements
- Responding to change: Agile development is focused on quick responses to change